@payloadcms/richtext-lexical 3.34.0-canary.3 → 3.34.0-canary.5

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/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/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/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/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/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/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/UploadNode.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"],
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 { $isElementNode, $isRangeSelection, FORMAT_ELEMENT_COMMAND } from 'lexical'\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\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)) {\n if (node.getFormatType() === 'left') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent)) {\n if (parent.getFormatType() === '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)) {\n if (node.getFormatType() === 'center') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent)) {\n if (parent.getFormatType() === '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)) {\n if (node.getFormatType() === 'right') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent)) {\n if (parent.getFormatType() === '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)) {\n if (node.getFormatType() === 'justify') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent)) {\n if (parent.getFormatType() === '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\nexport const AlignFeatureClient = createClientFeature({\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 { 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 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", "'use client'\nimport type { EditorConfig, LexicalEditor, LexicalNode } from 'lexical'\n\nimport ObjectID from 'bson-objectid'\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 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 new BlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\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 {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport ObjectID from 'bson-objectid'\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> = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n fields: BlockFields<TBlockFields>\n type: 'block'\n },\n SerializedDecoratorBlockNode\n>\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 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 new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\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 {\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 { deepCopyObjectSimpleWithoutReactComponents, reduceFieldsToValues } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\n\nconst baseClass = 'lexical-block'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { getTranslation } from '@payloadcms/translations'\nimport { $getNodeByKey } from 'lexical'\nimport {\n type BlocksFieldClient,\n type ClientBlock,\n type CollapsedPreferences,\n type FormState,\n} from 'payload'\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 { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport './index.scss'\nimport { $isBlockNode } from '../nodes/BlocksNode.js'\nimport { 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 formData: BlockFields\n readonly nodeKey: string\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { cacheBuster, 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 permissions,\n readOnly,\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\n const { getFormState } = useServerFunctions()\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${formData.blockType}.fields`\n\n const [initialState, setInitialState] = React.useState<false | FormState | undefined>(() => {\n return initialLexicalFormState?.[formData.id]?.formState\n ? {\n ...initialLexicalFormState?.[formData.id]?.formState,\n blockName: {\n initialValue: formData.blockName,\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n },\n }\n : false\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,\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,\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 globalSlug,\n initialBlockData: formData,\n operation: 'update',\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),\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 = formData.blockType\n\n node.setFields(newData, true)\n }\n })\n\n setInitialState(state)\n setCustomLabel(state._components?.customComponents?.BlockLabel)\n setCustomBlock(state._components?.customComponents?.Block)\n }\n }\n\n if (formData && !initialState) {\n void awaitInitialState()\n }\n\n return () => {\n abortAndIgnore(abortController)\n }\n }, [\n getFormState,\n schemaFieldsPath,\n id,\n formData,\n editor,\n nodeKey,\n initialState,\n collectionSlug,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\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.${formData.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 formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\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),\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 = formData.blockType\n node.setFields(newData, true)\n }\n })\n }, 0)\n\n if (submit) {\n setCustomLabel(newFormState._components?.customComponents?.BlockLabel)\n setCustomBlock(newFormState._components?.customComponents?.Block)\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 formData.blockType,\n parentDocumentFields,\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={readOnly}\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 [blockDisplayName, readOnly, t, toggleDrawer],\n )\n\n const RemoveButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={parentLexicalRichTextField?.admin?.readOnly || false}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeBlock()\n }}\n round\n tooltip=\"Remove Block\"\n />\n ),\n [parentLexicalRichTextField?.admin?.readOnly, removeBlock],\n )\n\n const BlockCollapsible = useMemo(\n () =>\n ({\n children,\n disableBlockName,\n editButton,\n errorCount,\n fieldHasErrors,\n Label,\n removeButton,\n }: {\n children?: React.ReactNode\n disableBlockName?: boolean\n editButton?: boolean\n errorCount?: number\n fieldHasErrors?: boolean\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n }) => (\n <div className={baseClass + ' ' + baseClass + '-' + formData.blockType}>\n <Collapsible\n className={[\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ].join(' ')}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n <div className={`${baseClass}__block-header`}>\n {(Label ?? CustomLabel) ? (\n (Label ?? CustomLabel)\n ) : (\n <div>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`}\n pillStyle=\"white\"\n >\n {blockDisplayName ?? formData?.blockType}\n </Pill>\n {!disableBlockName && (\n <SectionTitle\n path=\"blockName\"\n readOnly={parentLexicalRichTextField?.admin?.readOnly || false}\n />\n )}\n\n {fieldHasErrors && (\n <ErrorPill count={errorCount ?? 0} i18n={i18n} withMessage />\n )}\n </div>\n )}\n\n <div>\n {(CustomBlock && editButton !== false) || (!CustomBlock && editButton) ? (\n <EditButton />\n ) : null}\n {removeButton !== false && editor.isEditable() ? <RemoveButton /> : null}\n </div>\n </div>\n }\n isCollapsed={isCollapsed}\n key={0}\n onToggle={(incomingCollapsedState) => {\n onCollapsedChange(incomingCollapsedState)\n setIsCollapsed(incomingCollapsedState)\n }}\n >\n {children}\n </Collapsible>\n </div>\n ),\n [\n CustomBlock,\n CustomLabel,\n EditButton,\n RemoveButton,\n blockDisplayName,\n editor,\n formData.blockType,\n i18n,\n isCollapsed,\n onCollapsedChange,\n parentLexicalRichTextField?.admin?.readOnly,\n ],\n )\n\n const clientBlockFields = clientBlock?.fields ?? []\n\n const BlockDrawer = useMemo(\n () => () => (\n <EditDepthProvider>\n <Drawer\n className={''}\n slug={drawerSlug}\n title={t(`lexical:blocks:inlineBlocks:${formData?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n >\n {initialState ? (\n <>\n <RenderFields\n fields={clientBlockFields}\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={false}\n />\n <FormSubmit programmaticSubmit={true}>{t('fields:saveChanges')}</FormSubmit>\n </>\n ) : null}\n </Drawer>\n </EditDepthProvider>\n ),\n [\n initialState,\n drawerSlug,\n blockDisplayName,\n t,\n clientBlock?.fields,\n schemaFieldsPath,\n permissions,\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={clientBlockFields}\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 = formData.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={clientBlockFields}\n initialState={initialState}\n nodeKey={nodeKey}\n RemoveButton={RemoveButton}\n />\n </Form>\n )\n }, [\n BlockCollapsible,\n BlockDrawer,\n CustomBlock,\n clientBlockFields,\n RemoveButton,\n EditButton,\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=\"lexical-block-not-found\">\n Error: Block '{formData.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 { ClientField, FormState } from 'payload'\n\nimport { RenderFields, useFormSubmitted } from '@payloadcms/ui'\nimport React, { createContext, useMemo } from 'react'\n\ntype Props = {\n baseClass: string\n BlockDrawer: React.FC\n Collapsible: React.FC<{\n children?: React.ReactNode\n editButton?: boolean\n errorCount?: number\n fieldHasErrors?: boolean\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n }>\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<{\n children?: React.ReactNode\n editButton?: boolean\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n }>\n EditButton?: React.FC\n initialState: false | FormState | undefined\n\n nodeKey?: string\n RemoveButton?: React.FC\n}\n\nconst BlockComponentContext = createContext<BlockComponentContextType>({\n initialState: false,\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<Props> = (props) => {\n const {\n BlockDrawer,\n Collapsible,\n CustomBlock,\n EditButton,\n errorCount,\n formSchema,\n initialState,\n nodeKey,\n RemoveButton,\n } = props\n\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const CollapsibleWithErrorProps = useMemo(\n () =>\n (props: {\n children?: React.ReactNode\n editButton?: boolean\n\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n }) => (\n <Collapsible\n editButton={props.editButton}\n errorCount={errorCount}\n fieldHasErrors={fieldHasErrors}\n Label={props.Label}\n removeButton={props.removeButton}\n >\n {props.children}\n </Collapsible>\n ),\n [Collapsible, fieldHasErrors, errorCount],\n )\n\n return CustomBlock ? (\n <BlockComponentContext\n value={{\n BlockCollapsible: CollapsibleWithErrorProps,\n EditButton,\n initialState,\n nodeKey,\n RemoveButton,\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 />\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", "'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 // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParentOrThrow()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n INSERT_INLINE_BLOCK_COMMAND,\n (fields) => {\n if (targetNodeKey) {\n const node = $getNodeByKey(targetNodeKey)\n\n if (!node || !$isInlineBlockNode(node)) {\n return false\n }\n\n node.setFields(fields as BlockFields)\n\n setTargetNodeKey(null)\n return true\n }\n\n const inlineBlockNode = $createInlineBlockNode(fields as BlockFields)\n 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", "'use client'\n\nimport type { HeadingTagType } from '@lexical/rich-text'\n\nimport { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text'\nimport { $setBlocksType } from '@lexical/selection'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.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 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", "'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 Spread,\n} from 'lexical'\nimport type * as React from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, createCommand, DecoratorNode } from 'lexical'\n\n/**\n * Serialized representation of a horizontal rule node. Serialized = converted to JSON. This is what is stored in the database / in the lexical editor state.\n */\nexport type SerializedHorizontalRuleNode = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'horizontalrule'\n },\n SerializedLexicalNode\n>\n\nexport const INSERT_HORIZONTAL_RULE_COMMAND: LexicalCommand<void> = createCommand(\n 'INSERT_HORIZONTAL_RULE_COMMAND',\n)\n\n/**\n * This node is a DecoratorNode. DecoratorNodes allow you to render React components in the editor.\n *\n * They need both createDom and decorate functions. createDom => outside of the html. decorate => React Component inside of the html.\n *\n * If we used DecoratorBlockNode instead, we would only need a decorate method\n */\nexport class HorizontalRuleServerNode extends DecoratorNode<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 { BaseSelection, ElementNode, LexicalNode } from 'lexical'\n\nimport { $findMatchingParent } from '@lexical/utils'\nimport {\n $isElementNode,\n $isRangeSelection,\n INDENT_CONTENT_COMMAND,\n OUTDENT_CONTENT_COMMAND,\n} 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 if (!nodes?.length) {\n return false\n }\n let atLeastOneNodeCanOutdent = false\n const isIndentable = (node: LexicalNode): node is ElementNode =>\n $isElementNode(node) && node.canIndent()\n for (const node of nodes) {\n if (isIndentable(node)) {\n if (node.getIndent() <= 0) {\n return false\n } else {\n atLeastOneNodeCanOutdent = true\n }\n }\n }\n\n if (!atLeastOneNodeCanOutdent) {\n if (\n $pointsAncestorMatch(selection, (node) => isIndentable(node) && node.getIndent() > 0)\n ) {\n return true\n }\n }\n return atLeastOneNodeCanOutdent\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 if (!nodes?.length) {\n return false\n }\n if (nodes.some((node) => disabledNodes?.includes(node.getType()))) {\n return false\n }\n return !$pointsAncestorMatch(selection, (node) =>\n (disabledNodes ?? []).includes(node.getType()),\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\nfunction $pointsAncestorMatch(\n selection: BaseSelection,\n fn: (node: LexicalNode) => boolean,\n): boolean {\n return (\n $isRangeSelection(selection) &&\n (!!$findMatchingParent(selection.anchor.getNode(), fn) ||\n !!$findMatchingParent(selection.focus.getNode(), fn))\n )\n}\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 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 }, [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 newTab: false,\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 LinkNode({\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 AutoLinkNode({ 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 { $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 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\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(`${config.serverURL}${config.routes.api}/${collection}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\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 {editor.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 * */\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\n if (!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 new URL(url)\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 { 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 if (!featureProviderMap.has('unorderedList') && !featureProviderMap.has('orderedList')) {\n plugins.push({\n Component: LexicalListPlugin,\n position: 'normal',\n })\n }\n\n return {\n markdownTransformers: [CHECK_LIST],\n nodes:\n featureProviderMap.has('unorderedList') || featureProviderMap.has('orderedList')\n ? []\n : [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 { Spread } from 'lexical'\n\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../typesClient.js'\n\nexport type SerializedListItemNode = Spread<\n {\n checked?: boolean\n type: 'listitem'\n },\n _SerializedListItemNode\n>\n\nexport type SerializedListNode = Spread<\n {\n checked?: boolean\n type: 'list'\n },\n _SerializedListNode\n>\n\nexport const LexicalListPlugin: PluginComponent<undefined> = () => {\n return <ListPlugin />\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 { 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 return {\n markdownTransformers: [ORDERED_LIST],\n nodes: featureProviderMap.has('orderedList') ? [] : [ListNode, ListItemNode],\n plugins: featureProviderMap.has('orderedList')\n ? []\n : [\n {\n Component: LexicalListPlugin,\n position: 'normal',\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 { 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 UnknownConvertedNode({\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 new UnknownConvertedNode({\n data,\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 { 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 UnknownConvertedNode({\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 new UnknownConvertedNode({\n data,\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'\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 <RichText converters={defaultJSXConverters} data={editorState} />\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; blockType: 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 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 (\n <img alt={uploadDoc.filename} height={uploadDoc.height} src={url} width={uploadDoc.width} />\n )\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\n alt={uploadDoc?.filename}\n height={uploadDoc?.height}\n key={'image'}\n src={url}\n width={uploadDoc?.width}\n />,\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 style.paddingInlineStart = `${Number(node.indent) * 2}em`\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", "'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 {\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n} from 'lexical'\nimport type { JSX } from 'react'\n\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 new RelationshipNode({\n data,\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 {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { CollectionSlug, DataFromCollectionSlug } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.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 = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'relationship'\n} & Spread<RelationshipData, SerializedDecoratorBlockNode>\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 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 new RelationshipServerNode({\n data,\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 { useConfig } from '@payloadcms/ui'\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'\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 const {\n config: { collections },\n } = useConfig()\n\n let enabledRelations: null | string[] = null\n\n if (clientProps?.enabledCollections) {\n enabledRelations = clientProps?.enabledCollections\n } else if (clientProps?.disabledCollections) {\n enabledRelations = collections\n .filter(({ slug }) => !clientProps?.disabledCollections?.includes(slug))\n .map(({ slug }) => slug)\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 // Insert relationship node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(relationshipNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParentOrThrow()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor])\n\n return <RelationshipDrawer enabledCollectionSlugs={enabledRelations} />\n}\n", "'use client'\nimport type { ListDrawerProps } from '@payloadcms/ui'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\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 { EnabledRelationshipsCondition } from '../utils/EnabledRelationshipsCondition.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: null | string[]\n}\n\nconst RelationshipDrawerComponent: React.FC<Props> = ({ enabledCollectionSlugs }) => {\n const [editor] = useLexicalComposerContext()\n const [selectedCollectionSlug, setSelectedCollectionSlug] = useState(\n () => enabledCollectionSlugs?.[0],\n )\n const [replaceNodeKey, setReplaceNodeKey] = useState<null | string>(null)\n\n const { closeListDrawer, isListDrawerOpen, ListDrawer, openListDrawer } = useLexicalListDrawer({\n collectionSlugs: enabledCollectionSlugs ? enabledCollectionSlugs : undefined,\n selectedCollection: selectedCollectionSlug,\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\nexport const RelationshipDrawer = (props: Props): React.ReactNode => {\n return (props?.enabledCollectionSlugs?.length ?? -1) > 0 ? ( // If enabledCollectionSlugs it overrides what EnabledRelationshipsCondition is doing\n <RelationshipDrawerComponent {...props} />\n ) : (\n <EnabledRelationshipsCondition {...props}>\n <RelationshipDrawerComponent {...props} />\n </EnabledRelationshipsCondition>\n )\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 { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\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 { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport './index.scss'\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 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 className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`} key={group.key}>\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\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 {editor.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\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, useEffect, useState } from 'react'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport './index.scss'\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 [enabled, setEnabled] = useState<boolean>(true)\n const [active, setActive] = useState<boolean>(false)\n const [className, setClassName] = useState<string>(baseClass)\n const editorConfigContext = useEditorConfigContext()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n if (item.isActive) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (active !== isActive) {\n setActive(isActive)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (enabled !== isEnabled) {\n setEnabled(isEnabled)\n }\n }\n })\n }, [active, editor, editorConfigContext, enabled, item])\n\n useEffect(() => {\n updateStates()\n }, [updateStates])\n\n useEffect(() => {\n document.addEventListener('mouseup', updateStates)\n return () => {\n document.removeEventListener('mouseup', updateStates)\n }\n }, [updateStates])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updateStates()\n }),\n )\n }, [editor, updateStates])\n\n useEffect(() => {\n setClassName(\n [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-` + item.key : '',\n ]\n .filter(Boolean)\n .join(' '),\n )\n }, [enabled, active, className, item.key])\n\n return (\n <button\n className={className}\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 return true\n }\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 type=\"button\"\n >\n {children}\n </button>\n )\n}\n", "'use client'\nimport React, { useCallback, useEffect } 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 { DropDown, DropDownItem } from './DropDown.js'\nimport './index.scss'\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 key={item.key}\n tooltip={title}\n >\n <span className=\"text\">{croppedTitle}</span>\n </DropDownItem>\n )\n}\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 [activeItemKeys, setActiveItemKeys] = React.useState<string[]>([])\n const [enabledItemKeys, setEnabledItemKeys] = React.useState<string[]>([])\n const [enabledGroup, setEnabledGroup] = React.useState<boolean>(true)\n const editorConfigContext = useEditorConfigContext()\n const { items, key: groupKey } = group\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 if (group.isEnabled) {\n setEnabledGroup(group.isEnabled({ editor, editorConfigContext, selection }))\n }\n setActiveItemKeys(_activeItemKeys)\n setEnabledItemKeys(_enabledItemKeys)\n\n if (onActiveChange) {\n onActiveChange({ activeItems: _activeItems })\n }\n })\n }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange])\n\n useEffect(() => {\n updateStates()\n }, [updateStates])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updateStates()\n }),\n )\n }, [editor, updateStates])\n\n return (\n <DropDown\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n disabled={!enabledGroup}\n Icon={Icon}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {items.length\n ? items.map((item) => {\n return (\n <ToolbarItem\n active={activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabledItemKeys.includes(item.key)}\n item={item}\n key={item.key}\n />\n )\n })\n : null}\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 tooltip,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n Icon: React.ReactNode\n item: ToolbarGroupItem\n tooltip?: string\n}): React.ReactNode {\n const [className, setClassName] = useState<string>(baseClass)\n\n useEffect(() => {\n setClassName(\n [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n )\n }, [enabled, active, className, 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 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 Icon,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\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 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 { 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 { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport './index.scss'\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 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\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 || !editor.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 $deleteTableColumn__EXPERIMENTAL,\n $deleteTableRow__EXPERIMENTAL,\n $getNodeTriplet,\n $getTableCellNodeFromLexicalNode,\n $getTableColumnIndexFromTableCellNode,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumn__EXPERIMENTAL,\n $insertTableRow__EXPERIMENTAL,\n $isTableCellNode,\n $isTableSelection,\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 $createParagraphNode,\n $getRoot,\n $getSelection,\n $isElementNode,\n $isParagraphNode,\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 $cellContainsEmptyParagraph(cell: TableCellNode): boolean {\n if (cell.getChildrenSize() !== 1) {\n return false\n }\n const firstChild = cell.getFirstChildOrThrow()\n if (!$isParagraphNode(firstChild) || !firstChild.isEmpty()) {\n return false\n }\n return true\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 // Get all selected cells and compute the total area\n const nodes = selection.getNodes()\n const tableCells = nodes.filter($isTableCellNode)\n\n if (tableCells.length === 0) {\n return\n }\n\n // Find the table node\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCells[0] as TableCellNode)\n const [gridMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n\n // Find the boundaries of the selection including merged cells\n let minRow = Infinity\n let maxRow = -Infinity\n let minCol = Infinity\n let maxCol = -Infinity\n\n // First pass: find the actual boundaries considering merged cells\n const processedCells = new Set()\n for (const row of gridMap) {\n for (const mapCell of row) {\n if (!mapCell || !mapCell.cell) {\n continue\n }\n\n const cellKey = mapCell.cell.getKey()\n if (processedCells.has(cellKey)) {\n continue\n }\n\n if (tableCells.some((cell) => cell.is(mapCell.cell))) {\n processedCells.add(cellKey)\n // Get the actual position of this cell in the grid\n const cellStartRow = mapCell.startRow\n const cellStartCol = mapCell.startColumn\n const cellRowSpan = mapCell.cell.__rowSpan || 1\n const cellColSpan = mapCell.cell.__colSpan || 1\n\n // Update boundaries considering the cell's actual position and span\n minRow = Math.min(minRow, cellStartRow)\n maxRow = Math.max(maxRow, cellStartRow + cellRowSpan - 1)\n minCol = Math.min(minCol, cellStartCol)\n maxCol = Math.max(maxCol, cellStartCol + cellColSpan - 1)\n }\n }\n }\n\n // Validate boundaries\n if (minRow === Infinity || minCol === Infinity) {\n return\n }\n\n // The total span of the merged cell\n const totalRowSpan = maxRow - minRow + 1\n const totalColSpan = maxCol - minCol + 1\n\n // Use the top-left cell as the target cell\n const targetCellMap = gridMap?.[minRow]?.[minCol]\n if (!targetCellMap?.cell) {\n return\n }\n const targetCell = targetCellMap.cell\n\n // Set the spans for the target cell\n targetCell.setColSpan(totalColSpan)\n targetCell.setRowSpan(totalRowSpan)\n\n // Move content from other cells to the target cell\n const seenCells = new Set([targetCell.getKey()])\n\n // Second pass: merge content and remove other cells\n for (let row = minRow; row <= maxRow; row++) {\n for (let col = minCol; col <= maxCol; col++) {\n const mapCell = gridMap?.[row]?.[col]\n if (!mapCell?.cell) {\n continue\n }\n\n const currentCell = mapCell.cell\n const key = currentCell.getKey()\n\n if (!seenCells.has(key)) {\n seenCells.add(key)\n const isEmpty = $cellContainsEmptyParagraph(currentCell)\n if (!isEmpty) {\n targetCell.append(...currentCell.getChildren())\n }\n currentCell.remove()\n }\n }\n }\n\n // Ensure target cell has content\n if (targetCell.getChildrenSize() === 0) {\n targetCell.append($createParagraphNode())\n }\n\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 $insertTableRow__EXPERIMENTAL(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 $insertTableColumn__EXPERIMENTAL(shouldInsertAfter)\n }\n onClose()\n })\n },\n [editor, onClose, selectionCounts.columns],\n )\n\n const deleteTableRowAtSelection = useCallback(() => {\n editor.update(() => {\n $deleteTableRow__EXPERIMENTAL()\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 $deleteTableColumn__EXPERIMENTAL()\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 } 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' },\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' },\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 {\n $getTableAndElementByKey,\n $getTableColumnIndexFromTableCellNode,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumn__EXPERIMENTAL,\n $insertTableRow__EXPERIMENTAL,\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 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 $insertTableRow__EXPERIMENTAL()\n setShownRow(false)\n } else {\n $insertTableColumn__EXPERIMENTAL()\n setShownColumn(false)\n }\n }\n })\n }\n\n if (!editor?.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 [editor] = useLexicalComposerContext()\n if (!editor?.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} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.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 { 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}\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 { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type { DOMConversionMap, DOMConversionOutput, LexicalNode, Spread } 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 { UploadData } from '../../server/nodes/UploadNode.js'\n\nimport { isGoogleDocCheckboxImg, UploadServerNode } from '../../server/nodes/UploadNode.js'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nfunction $convertUploadElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadNode extends 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: $convertUploadElement,\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: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n override decorate(): JSX.Element {\n return <RawUploadComponent data={this.__data} nodeKey={this.getKey()} />\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 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", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type {\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 ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\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 * 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 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\nfunction $convertUploadServerElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadServerNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class 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: $convertUploadServerElement,\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: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\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 decorate(): JSX.Element {\n // @ts-expect-error\n return <RawUploadComponent data={this.__data} format={this.__format} nodeKey={this.getKey()} />\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n element.setAttribute('data-lexical-upload-id', String(this.__data?.value))\n element.setAttribute('data-lexical-upload-relation-to', this.__data?.relationTo)\n\n return { element }\n }\n\n 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'\nimport type { LexicalCommand } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, mergeRegister } from '@lexical/utils'\nimport { useConfig } from '@payloadcms/ui'\nimport {\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n COMMAND_PRIORITY_EDITOR,\n createCommand,\n} from 'lexical'\nimport React, { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../index.js'\n\nimport { UploadDrawer } from '../drawer/index.js'\nimport { $createUploadNode, UploadNode } from '../nodes/UploadNode.js'\n\nexport type InsertUploadPayload = Readonly<Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>>\n\nexport const INSERT_UPLOAD_COMMAND: LexicalCommand<InsertUploadPayload> =\n createCommand('INSERT_UPLOAD_COMMAND')\n\nexport const UploadPlugin: PluginComponent<UploadFeaturePropsClient> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n const {\n config: { collections },\n } = useConfig()\n\n useEffect(() => {\n if (!editor.hasNodes([UploadNode])) {\n throw new Error('UploadPlugin: UploadNode not registered on editor')\n }\n\n return mergeRegister(\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 // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(uploadNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // Delete the node it it's an empty paragraph and it has at least one sibling, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n !focusNode.__first &&\n (focusNode.__prev || focusNode.__next)\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor])\n\n return <UploadDrawer enabledCollectionSlugs={collections.map(({ slug }) => slug)} />\n}\n", "'use client'\nimport type { ListDrawerProps } from '@payloadcms/ui'\nimport type { LexicalEditor } from 'lexical'\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 { EnabledRelationshipsCondition } from '../../../relationship/client/utils/EnabledRelationshipsCondition.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: string[]\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 = (props: Props): React.ReactNode => {\n return (\n <EnabledRelationshipsCondition\n {...props}\n FallbackComponent={UploadDrawerComponentFallback}\n uploads\n >\n <UploadDrawerComponent {...props} />\n </EnabledRelationshipsCondition>\n )\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 [_featureKey, clientFeature] of Object.entries(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 finalLexicalEditorConfig = lexicalEditorConfig\n ? lexicalEditorConfig\n : defaultEditorLexicalConfig\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: finalLexicalEditorConfig,\n },\n })\n\n setFinalSanitizedEditorConfig(\n sanitizeClientEditorConfig(resolvedClientFeatures, finalLexicalEditorConfig, admin),\n )\n }, [\n lexicalEditorConfig,\n admin,\n finalSanitizedEditorConfig,\n clientFeatures,\n featureClientImportMap,\n featureClientSchemaMap,\n field,\n config,\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 codeHighlight: {\n atrule: 'LexicalEditorTheme__tokenAttr',\n attr: 'LexicalEditorTheme__tokenAttr',\n boolean: 'LexicalEditorTheme__tokenProperty',\n builtin: 'LexicalEditorTheme__tokenSelector',\n cdata: 'LexicalEditorTheme__tokenComment',\n char: 'LexicalEditorTheme__tokenSelector',\n class: 'LexicalEditorTheme__tokenFunction',\n 'class-name': 'LexicalEditorTheme__tokenFunction',\n comment: 'LexicalEditorTheme__tokenComment',\n constant: 'LexicalEditorTheme__tokenProperty',\n deleted: 'LexicalEditorTheme__tokenProperty',\n doctype: 'LexicalEditorTheme__tokenComment',\n entity: 'LexicalEditorTheme__tokenOperator',\n function: 'LexicalEditorTheme__tokenFunction',\n important: 'LexicalEditorTheme__tokenVariable',\n inserted: 'LexicalEditorTheme__tokenSelector',\n keyword: 'LexicalEditorTheme__tokenAttr',\n namespace: 'LexicalEditorTheme__tokenVariable',\n number: 'LexicalEditorTheme__tokenProperty',\n operator: 'LexicalEditorTheme__tokenOperator',\n prolog: 'LexicalEditorTheme__tokenComment',\n property: 'LexicalEditorTheme__tokenProperty',\n punctuation: 'LexicalEditorTheme__tokenPunctuation',\n regex: 'LexicalEditorTheme__tokenVariable',\n selector: 'LexicalEditorTheme__tokenSelector',\n string: 'LexicalEditorTheme__tokenSelector',\n symbol: 'LexicalEditorTheme__tokenProperty',\n tag: 'LexicalEditorTheme__tokenProperty',\n url: 'LexicalEditorTheme__tokenOperator',\n variable: 'LexicalEditorTheme__tokenVariable',\n },\n embedBlock: {\n base: 'LexicalEditorTheme__embedBlock',\n focus: 'LexicalEditorTheme__embedBlockFocus',\n },\n hashtag: 'LexicalEditorTheme__hashtag',\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 inlineImage: 'LexicalEditor__inline-image',\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 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: 'editor-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 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 }\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 featureProviderMap: ClientFeatureProviderMap = new Map()\n for (const feature of unSanitizedEditorConfig.features) {\n featureProviderMap.set(feature.clientFeatureProps.featureKey, feature)\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 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 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 // 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 { useBlockComponentContext } from '../BlockContent.js'\n\nexport const BlockCollapsible: React.FC<{\n children?: React.ReactNode\n editButton?: boolean\n\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n}> = ({ children, editButton, Label, removeButton }) => {\n const { BlockCollapsible } = useBlockComponentContext()\n\n return BlockCollapsible ? (\n <BlockCollapsible editButton={editButton} Label={Label} removeButton={removeButton}>\n {children}\n </BlockCollapsible>\n ) : 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"],
5
- "mappings": "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",
6
- "names": ["slashMenuBasicGroupWithItems", "items", "key", "label", "i18n", "t", "$isElementNode", "$isRangeSelection", "FORMAT_ELEMENT_COMMAND", "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", "toolbarGroups", "toolbarAlignGroupWithItems", "ChildComponent", "AlignLeftIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isElementNode", "getFormatType", "parent", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "FORMAT_ELEMENT_COMMAND", "order", "AlignCenterIcon", "AlignRightIcon", "AlignJustifyIcon", "AlignFeatureClient", "createClientFeature", "toolbarFixed", "groups", "toolbarInline", "$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", "ObjectID", "DecoratorBlockNode", "ObjectID", "ServerBlockNode", "__cacheBuster", "__fields", "constructor", "cacheBuster", "fields", "format", "key", "clone", "node", "__format", "__key", "getType", "importDOM", "importJSON", "serializedNode", "version", "data", "$createServerBlockNode", "setFormat", "isInline", "decorate", "editor", "config", "exportDOM", "element", "document", "createElement", "text", "createTextNode", "getTextContent", "append", "exportJSON", "type", "getFields", "getCacheBuster", "getLatest", "setFields", "preventFormStateUpdate", "writable", "getWritable", "id", "default", "toHexString", "Button", "Collapsible", "Drawer", "EditDepthProvider", "ErrorPill", "Form", "formatDrawerSlug", "FormSubmit", "Pill", "RenderFields", "SectionTitle", "useConfig", "useDocumentForm", "useDocumentInfo", "useEditDepth", "useFormSubmitted", "useServerFunctions", "useTranslation", "abortAndIgnore", "deepCopyObjectSimpleWithoutReactComponents", "reduceFieldsToValues", "React", "useCallback", "useEffect", "useMemo", "useRef", "useLexicalComposerContext", "getTranslation", "$getNodeByKey", "v4", "uuid", "c", "_c", "RenderFields", "useFormSubmitted", "React", "createContext", "BlockComponentContext", "initialState", "useBlockComponentContext", "use", "BlockContent", "props", "$", "BlockDrawer", "Collapsible", "CustomBlock", "EditButton", "errorCount", "formSchema", "nodeKey", "RemoveButton", "fieldHasErrors", "t0", "t1", "props_0", "_jsx", "editButton", "Label", "removeButton", "children", "CollapsibleWithErrorProps", "t2", "_jsxs", "value", "BlockCollapsible", "fields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "permissions", "removeEmptyArrayValues", "fields", "key", "field", "Array", "isArray", "rows", "disableFormData", "baseClass", "BlockComponent", "props", "cacheBuster", "formData", "nodeKey", "submitted", "useFormSubmitted", "id", "collectionSlug", "globalSlug", "useDocumentInfo", "fieldProps", "featureClientSchemaMap", "field", "parentLexicalRichTextField", "initialLexicalFormState", "permissions", "readOnly", "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", "getFormState", "useServerFunctions", "schemaFieldsPath", "blockType", "initialState", "setInitialState", "formState", "blockName", "initialValue", "passesCondition", "valid", "value", "hasMounted", "prevCacheBuster", "useEffect", "current", "CustomLabel", "setCustomLabel", "customComponents", "BlockLabel", "CustomBlock", "setCustomBlock", "Block", "abortController", "state", "data", "docPermissions", "docPreferences", "documentFormState", "deepCopyObjectSimpleWithoutReactComponents", "initialBlockData", "operation", "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", "Object", "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", "className", "disabled", "el", "icon", "onClick", "e", "preventDefault", "stopPropagation", "onMouseDown", "round", "size", "tooltip", "label", "RemoveButton", "admin", "BlockCollapsible", "children", "disableBlockName", "editButton", "fieldHasErrors", "Label", "removeButton", "Collapsible", "join", "collapsibleStyle", "header", "_jsxs", "Pill", "pillStyle", "SectionTitle", "path", "ErrorPill", "count", "withMessage", "isEditable", "onToggle", "incomingCollapsedState", "clientBlockFields", "BlockDrawer", "EditDepthProvider", "Drawer", "title", "_Fragment", "RenderFields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "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", "formData", "getFields", "nodeKey", "getKey", "exportJSON", "id", "ObjectID", "default", "toHexString", "$isBlockNode", "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", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "$isParagraphNode", "getTextContentSize", "getParentOrThrow", "getChildren", "filter", "_temp", "length", "remove", "COMMAND_PRIORITY_EDITOR", "INSERT_INLINE_BLOCK_COMMAND", "fields", "node_0", "$getNodeByKey", "node", "$isInlineBlockNode", "setFields", "inlineBlockNode", "$createInlineBlockNode", "$insertNodes", "$isRootOrShadowRoot", "$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", "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", "$createHeadingNode", "$isHeadingNode", "HeadingNode", "$setBlocksType", "$getSelection", "$isRangeSelection", "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", "sanitizedClientFeatureProps", "slashMenu", "groups", "length", "slashMenuBasicGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "$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", "$isRangeSelection", "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", "event", "preventDefault", "dispatchCommand", "shiftKey", "undefined", "registerNodeTransform", "node", "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", "length", "atLeastOneNodeCanOutdent", "isIndentable", "node", "$isElementNode", "canIndent", "getIndent", "$pointsAncestorMatch", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "OUTDENT_CONTENT_COMMAND", "undefined", "order", "IndentIncreaseIcon", "some", "includes", "getType", "INDENT_CONTENT_COMMAND", "IndentFeatureClient", "createClientFeature", "props", "plugins", "Component", "IndentPlugin", "position", "sanitizedClientFeatureProps", "toolbarFixed", "groups", "toolbarInline", "fn", "$isRangeSelection", "$findMatchingParent", "anchor", "getNode", "focus", "$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", "$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", "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", "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", "serverURL", "api", "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", "isEditable", "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", "absoluteRegExp", "test", "relativeOrAnchorRegExp", "URL", "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", "newTab", "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", "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", "has", "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", "markdownTransformers", "ORDERED_LIST", "nodes", "has", "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", "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", "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", "url", "mimeType", "startsWith", "_jsx", "href", "rel", "filename", "sizes", "Object", "keys", "length", "alt", "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", "RichText", "converters", "defaultJSXConverters", "data", "DebugJsxConverterFeatureClient", "createClientFeature", "plugins", "Component", "RichTextPlugin", "position", "$isNodeSelection", "RelationshipIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "clipPath", "d", "stroke", "strokeLinecap", "strokeLinejoin", "id", "transform", "React", "DecoratorBlockNode", "$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", "decorate", "_editor", "_config", "exportDOM", "element", "document", "createElement", "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", "$isRelationshipNode", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "useConfig", "$getPreviousSelection", "$getSelection", "$isParagraphNode", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "useEffect", "c", "_c", "useLexicalComposerContext", "$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", "t1", "selectedCollectionSlug", "useState", "setReplaceNodeKey", "t2", "undefined", "t3", "collectionSlugs", "selectedCollection", "closeListDrawer", "ListDrawer", "openListDrawer", "useLexicalListDrawer", "t4", "t5", "registerCommand", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "payload", "nodeKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "t6", "t7", "collectionSlug", "doc", "id", "onSelect", "_jsx", "RelationshipDrawer", "props", "length", "EnabledRelationshipsCondition", "INSERT_RELATIONSHIP_COMMAND", "createCommand", "RelationshipPlugin", "t0", "$", "_c", "clientProps", "editor", "useLexicalComposerContext", "config", "t1", "useConfig", "collections", "enabledRelations", "enabledCollections", "disabledCollections", "t2", "t3", "t4", "slug", "includes", "filter", "map", "_temp", "hasNodes", "RelationshipNode", "Error", "registerCommand", "_temp3", "COMMAND_PRIORITY_EDITOR", "useEffect", "_jsx", "RelationshipDrawer", "enabledCollectionSlugs", "slug_0", "_temp2", "node", "$isParagraphNode", "payload", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "relationshipNode", "$createRelationshipNode", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "getTextContentSize", "getParentOrThrow", "getChildren", "length", "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", "useScrollInfo", "useThrottledEffect", "useTranslation", "React", "useMemo", "c", "_c", "mergeRegister", "$addUpdateTag", "$getSelection", "useEffect", "useState", "baseClass", "ToolbarButton", "t0", "$", "_c", "children", "editor", "item", "enabled", "setEnabled", "useState", "active", "setActive", "className", "setClassName", "editorConfigContext", "useEditorConfigContext", "t1", "getEditorState", "read", "selection", "$getSelection", "isActive", "isEnabled", "updateStates", "t2", "t3", "useEffect", "t4", "t5", "document", "addEventListener", "removeEventListener", "t6", "t7", "mergeRegister", "registerUpdateListener", "t8", "key", "filter", "Boolean", "join", "t9", "t10", "focus", "update", "_temp", "onSelect", "t11", "_jsx", "onClick", "onMouseDown", "_temp2", "type", "$addUpdateTag", "e", "preventDefault", "c", "_c", "React", "useCallback", "useEffect", "mergeRegister", "useTranslation", "$getSelection", "Button", "$addUpdateTag", "isDOMNode", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "createPortal", "baseClass", "DropDownContext", "createContext", "DropDownItem", "active", "children", "editor", "enabled", "Icon", "item", "tooltip", "className", "setClassName", "key", "filter", "Boolean", "join", "ref", "dropDownContext", "use", "Error", "registerItem", "current", "_jsx", "buttonStyle", "disabled", "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", "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", "tooltip", "children", "className", "ToolbarDropdown", "classNames", "group", "itemsContainerClassNames", "maxActiveItems", "onActiveChange", "activeItemKeys", "setActiveItemKeys", "React", "useState", "enabledItemKeys", "setEnabledItemKeys", "enabledGroup", "setEnabledGroup", "editorConfigContext", "items", "groupKey", "updateStates", "useCallback", "getEditorState", "read", "selection", "$getSelection", "_activeItemKeys", "_activeItems", "_enabledItemKeys", "isActive", "push", "isEnabled", "activeItems", "useEffect", "mergeRegister", "registerUpdateListener", "DropDown", "buttonAriaLabel", "buttonClassName", "filter", "Boolean", "join", "disabled", "map", "includes", "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", "y", "useScrollInfo", "parentToolbarElem", "useMemo", "disableIfParentHasFixedToolbar", "sibling", "editorContainerRef", "current", "previousElementSibling", "classList", "contains", "useThrottledEffect", "currentToolbarElem", "currentRect", "getBoundingClientRect", "parentRect", "bottom", "top", "remove", "add", "onFocus", "event", "stopPropagation", "ref", "isEditable", "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", "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", "isComposing", "$isRangeSelection", "getTextContent", "nodes", "getNodes", "foundNodeWithText", "node", "$isTextNode", "rawTextContent", "replace", "updatePopup", "registerRootListener", "isEditable", "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", "$deleteTableColumn__EXPERIMENTAL", "$deleteTableRow__EXPERIMENTAL", "$getNodeTriplet", "$getTableCellNodeFromLexicalNode", "$getTableColumnIndexFromTableCellNode", "$getTableNodeFromLexicalNodeOrThrow", "$getTableRowIndexFromTableCellNode", "$insertTableColumn__EXPERIMENTAL", "$insertTableRow__EXPERIMENTAL", "$isTableCellNode", "$isTableSelection", "$unmergeCell", "getTableElement", "getTableObserverFromTableElement", "TableCellHeaderStates", "TableCellNode", "mergeRegister", "useScrollInfo", "$createParagraphNode", "$getSelection", "$isElementNode", "$isParagraphNode", "$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", "$cellContainsEmptyParagraph", "getChildrenSize", "firstChild", "getFirstChildOrThrow", "$isParagraphNode", "isEmpty", "$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", "length", "gridMap", "$computeTableMapSkipCellCheck", "minRow", "Infinity", "maxRow", "minCol", "maxCol", "processedCells", "Set", "row", "mapCell", "cellKey", "has", "some", "add", "cellStartRow", "startRow", "cellStartCol", "startColumn", "cellRowSpan", "cellColSpan", "Math", "min", "max", "totalRowSpan", "totalColSpan", "targetCellMap", "targetCell", "setColSpan", "setRowSpan", "seenCells", "col", "currentCell", "key", "append", "getChildren", "remove", "$createParagraphNode", "unmergeTableCellsAtSelection", "$unmergeCell", "insertTableRowAtSelection", "shouldInsertAfter", "i", "$insertTableRow__EXPERIMENTAL", "insertTableColumnAtSelection", "$insertTableColumn__EXPERIMENTAL", "deleteTableRowAtSelection", "$deleteTableRow__EXPERIMENTAL", "deleteTableAtSelection", "deleteTableColumnAtSelection", "$deleteTableColumn__EXPERIMENTAL", "toggleTableRowIsHeader", "tableRowIndex", "$getTableRowIndexFromTableCellNode", "rowCells", "newStyle", "getHeaderStyles", "TableCellHeaderStates", "ROW", "setHeaderStyles", "toggleTableColumnIsHeader", "tableColumnIndex", "$getTableColumnIndexFromTableCellNode", "columnCells", "COLUMN", "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", "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", "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", "t1", "createPortal", "c", "_c", "useLexicalComposerContext", "$getTableAndElementByKey", "$getTableColumnIndexFromTableCellNode", "$getTableRowIndexFromTableCellNode", "$insertTableColumn__EXPERIMENTAL", "$insertTableRow__EXPERIMENTAL", "$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", "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", "offsetLeft", "top", "editorElemY", "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", "$insertTableRow__EXPERIMENTAL", "$insertTableColumn__EXPERIMENTAL", "isEditable", "_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", "DecoratorBlockNode", "ObjectID", "$applyNodeReplacement", "isGoogleDocCheckboxImg", "img", "parentElement", "tagName", "previousSibling", "getAttribute", "$convertUploadServerElement", "domNode", "hasAttribute", "id", "relationTo", "node", "$createUploadServerNode", "data", "fields", "value", "src", "startsWith", "UploadServerNode", "__data", "constructor", "format", "key", "clone", "__format", "__key", "getType", "importDOM", "conversion", "priority", "importJSON", "serializedNode", "version", "default", "toHexString", "importedData", "setFormat", "isInline", "decorate", "_jsx", "RawUploadComponent", "nodeKey", "getKey", "exportDOM", "element", "document", "createElement", "setAttribute", "String", "exportJSON", "getData", "type", "getLatest", "setData", "writable", "getWritable", "updateDOM", "RawUploadComponent", "lazy", "then", "module", "default", "UploadComponent", "$convertUploadElement", "domNode", "hasAttribute", "id", "getAttribute", "relationTo", "node", "$createUploadNode", "data", "fields", "value", "img", "src", "startsWith", "isGoogleDocCheckboxImg", "UploadNode", "UploadServerNode", "clone", "getType", "importDOM", "conversion", "priority", "importJSON", "serializedNode", "version", "ObjectID", "toHexString", "importedData", "setFormat", "format", "decorate", "_jsx", "__data", "nodeKey", "getKey", "exportJSON", "$applyNodeReplacement", "$isUploadNode", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "mergeRegister", "useConfig", "$getPreviousSelection", "$getSelection", "$isParagraphNode", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "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", "props", "EnabledRelationshipsCondition", "FallbackComponent", "toast", "error", "INSERT_UPLOAD_COMMAND", "createCommand", "UploadPlugin", "t0", "$", "_c", "editor", "useLexicalComposerContext", "config", "t1", "useConfig", "collections", "t2", "t3", "hasNodes", "UploadNode", "Error", "mergeRegister", "registerCommand", "payload", "update", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "uploadNode", "$createUploadNode", "data", "id", "fields", "relationTo", "value", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "$isParagraphNode", "__first", "__prev", "__next", "remove", "COMMAND_PRIORITY_EDITOR", "useEffect", "t4", "_jsx", "UploadDrawer", "enabledCollectionSlugs", "map", "_temp", "slug", "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", "codeHighlight", "atrule", "attr", "boolean", "builtin", "cdata", "char", "class", "comment", "constant", "deleted", "doctype", "entity", "function", "important", "inserted", "keyword", "namespace", "number", "operator", "prolog", "property", "punctuation", "regex", "selector", "string", "symbol", "tag", "url", "variable", "embedBlock", "base", "focus", "hashtag", "heading", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "hrSelected", "indent", "inlineImage", "link", "list", "checklist", "listitem", "listitemChecked", "listitemUnchecked", "nested", "olDepth", "ul", "ltr", "mark", "markOverlap", "paragraph", "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", "featureProvider", "features", "clientFeatureProps", "featureKey", "order", "undefined", "Error", "sort", "a", "b", "featureProviderMap", "Map", "feature", "set", "resolvedFeatures", "loaded", "key", "sanitizeClientFeatures", "features", "sanitized", "enabledFeatures", "enabledFormats", "markdownTransformers", "nodes", "plugins", "providers", "slashMenu", "dynamicGroups", "groups", "toolbarFixed", "toolbarInline", "size", "forEach", "feature", "length", "concat", "enableFormats", "push", "node", "plugin", "i", "clientProps", "sanitizedClientFeatureProps", "Component", "key", "position", "group", "foundGroup", "find", "sanitizedGroup", "filter", "items", "optionGroup", "transformer", "allNodes", "allTransformers", "sort", "a", "b", "order", "sanitizeClientEditorConfig", "resolvedClientFeatureMap", "lexical", "admin", "resolvedFeatureMap", "RichTextEditor", "lazy", "then", "module", "default", "RichText", "RichTextField", "props", "$", "_c", "admin", "t0", "clientFeatures", "featureClientImportMap", "featureClientSchemaMap", "field", "lexicalEditorConfig", "t1", "schemaPath", "t2", "undefined", "defaultEditorLexicalConfig", "config", "useConfig", "finalSanitizedEditorConfig", "setFinalSanitizedEditorConfig", "useState", "t3", "t4", "featureProvidersLocal", "_featureKey", "clientFeature", "Object", "entries", "clientFeatureProvider", "push", "clientFeatureProps", "finalLexicalEditorConfig", "resolvedClientFeatures", "loadClientFeatures", "name", "unSanitizedEditorConfig", "features", "lexical", "sanitizeClientEditorConfig", "useEffect", "t5", "_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", "c", "_c", "BlockCollapsible", "t0", "$", "_c", "children", "editButton", "Label", "removeButton", "useBlockComponentContext", "t1", "_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"]
5
+ "mappings": "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",
6
+ "names": ["slashMenuBasicGroupWithItems", "items", "key", "label", "i18n", "t", "$isElementNode", "$isRangeSelection", "FORMAT_ELEMENT_COMMAND", "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", "toolbarGroups", "toolbarAlignGroupWithItems", "ChildComponent", "AlignLeftIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isElementNode", "getFormatType", "parent", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "FORMAT_ELEMENT_COMMAND", "order", "AlignCenterIcon", "AlignRightIcon", "AlignJustifyIcon", "AlignFeatureClient", "createClientFeature", "toolbarFixed", "groups", "toolbarInline", "$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", "ObjectID", "DecoratorBlockNode", "ObjectID", "ServerBlockNode", "__cacheBuster", "__fields", "constructor", "cacheBuster", "fields", "format", "key", "clone", "node", "__format", "__key", "getType", "importDOM", "importJSON", "serializedNode", "version", "data", "$createServerBlockNode", "setFormat", "isInline", "decorate", "editor", "config", "exportDOM", "element", "document", "createElement", "text", "createTextNode", "getTextContent", "append", "exportJSON", "type", "getFields", "getCacheBuster", "getLatest", "setFields", "preventFormStateUpdate", "writable", "getWritable", "id", "default", "toHexString", "Button", "Collapsible", "Drawer", "EditDepthProvider", "ErrorPill", "Form", "formatDrawerSlug", "FormSubmit", "Pill", "RenderFields", "SectionTitle", "useConfig", "useDocumentForm", "useDocumentInfo", "useEditDepth", "useFormSubmitted", "useServerFunctions", "useTranslation", "abortAndIgnore", "deepCopyObjectSimpleWithoutReactComponents", "reduceFieldsToValues", "React", "useCallback", "useEffect", "useMemo", "useRef", "useLexicalComposerContext", "getTranslation", "$getNodeByKey", "v4", "uuid", "c", "_c", "RenderFields", "useFormSubmitted", "React", "createContext", "BlockComponentContext", "initialState", "useBlockComponentContext", "use", "BlockContent", "props", "$", "BlockDrawer", "Collapsible", "CustomBlock", "EditButton", "errorCount", "formSchema", "nodeKey", "RemoveButton", "fieldHasErrors", "t0", "t1", "props_0", "_jsx", "editButton", "Label", "removeButton", "children", "CollapsibleWithErrorProps", "t2", "_jsxs", "value", "BlockCollapsible", "fields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "permissions", "removeEmptyArrayValues", "fields", "key", "field", "Array", "isArray", "rows", "disableFormData", "baseClass", "BlockComponent", "props", "cacheBuster", "formData", "nodeKey", "submitted", "useFormSubmitted", "id", "collectionSlug", "globalSlug", "useDocumentInfo", "fieldProps", "featureClientSchemaMap", "field", "parentLexicalRichTextField", "initialLexicalFormState", "permissions", "readOnly", "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", "getFormState", "useServerFunctions", "schemaFieldsPath", "blockType", "initialState", "setInitialState", "formState", "blockName", "initialValue", "passesCondition", "valid", "value", "hasMounted", "prevCacheBuster", "useEffect", "current", "CustomLabel", "setCustomLabel", "customComponents", "BlockLabel", "CustomBlock", "setCustomBlock", "Block", "abortController", "state", "data", "docPermissions", "docPreferences", "documentFormState", "deepCopyObjectSimpleWithoutReactComponents", "initialBlockData", "operation", "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", "Object", "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", "className", "disabled", "el", "icon", "onClick", "e", "preventDefault", "stopPropagation", "onMouseDown", "round", "size", "tooltip", "label", "RemoveButton", "admin", "BlockCollapsible", "children", "disableBlockName", "editButton", "fieldHasErrors", "Label", "removeButton", "Collapsible", "join", "collapsibleStyle", "header", "_jsxs", "Pill", "pillStyle", "SectionTitle", "path", "ErrorPill", "count", "withMessage", "isEditable", "onToggle", "incomingCollapsedState", "clientBlockFields", "BlockDrawer", "EditDepthProvider", "Drawer", "title", "_Fragment", "RenderFields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "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", "formData", "getFields", "nodeKey", "getKey", "exportJSON", "id", "ObjectID", "default", "toHexString", "$isBlockNode", "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", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "$isParagraphNode", "getTextContentSize", "getParentOrThrow", "getChildren", "filter", "_temp", "length", "remove", "COMMAND_PRIORITY_EDITOR", "INSERT_INLINE_BLOCK_COMMAND", "fields", "node_0", "$getNodeByKey", "node", "$isInlineBlockNode", "setFields", "inlineBlockNode", "$createInlineBlockNode", "$insertNodes", "$isRootOrShadowRoot", "$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", "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", "$createHeadingNode", "$isHeadingNode", "HeadingNode", "$setBlocksType", "$getSelection", "$isRangeSelection", "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", "sanitizedClientFeatureProps", "slashMenu", "groups", "length", "slashMenuBasicGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "$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", "$isRangeSelection", "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", "event", "preventDefault", "dispatchCommand", "shiftKey", "undefined", "registerNodeTransform", "node", "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", "length", "atLeastOneNodeCanOutdent", "isIndentable", "node", "$isElementNode", "canIndent", "getIndent", "$pointsAncestorMatch", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "OUTDENT_CONTENT_COMMAND", "undefined", "order", "IndentIncreaseIcon", "some", "includes", "getType", "INDENT_CONTENT_COMMAND", "IndentFeatureClient", "createClientFeature", "props", "plugins", "Component", "IndentPlugin", "position", "sanitizedClientFeatureProps", "toolbarFixed", "groups", "toolbarInline", "fn", "$isRangeSelection", "$findMatchingParent", "anchor", "getNode", "focus", "$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", "$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", "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", "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", "serverURL", "api", "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", "isEditable", "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", "absoluteRegExp", "test", "relativeOrAnchorRegExp", "URL", "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", "newTab", "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", "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", "has", "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", "markdownTransformers", "ORDERED_LIST", "nodes", "has", "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", "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", "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", "url", "mimeType", "startsWith", "_jsx", "href", "rel", "filename", "sizes", "Object", "keys", "length", "alt", "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", "RichText", "converters", "defaultJSXConverters", "data", "DebugJsxConverterFeatureClient", "createClientFeature", "plugins", "Component", "RichTextPlugin", "position", "$isNodeSelection", "RelationshipIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "clipPath", "d", "stroke", "strokeLinecap", "strokeLinejoin", "id", "transform", "React", "DecoratorBlockNode", "$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", "decorate", "_editor", "_config", "exportDOM", "element", "document", "createElement", "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", "$isRelationshipNode", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "useConfig", "$getPreviousSelection", "$getSelection", "$isParagraphNode", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "useEffect", "c", "_c", "useLexicalComposerContext", "$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", "t1", "selectedCollectionSlug", "useState", "setReplaceNodeKey", "t2", "undefined", "t3", "collectionSlugs", "selectedCollection", "closeListDrawer", "ListDrawer", "openListDrawer", "useLexicalListDrawer", "t4", "t5", "registerCommand", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "payload", "nodeKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "t6", "t7", "collectionSlug", "doc", "id", "onSelect", "_jsx", "RelationshipDrawer", "props", "length", "EnabledRelationshipsCondition", "INSERT_RELATIONSHIP_COMMAND", "createCommand", "RelationshipPlugin", "t0", "$", "_c", "clientProps", "editor", "useLexicalComposerContext", "config", "t1", "useConfig", "collections", "enabledRelations", "enabledCollections", "disabledCollections", "t2", "t3", "t4", "slug", "includes", "filter", "map", "_temp", "hasNodes", "RelationshipNode", "Error", "registerCommand", "_temp3", "COMMAND_PRIORITY_EDITOR", "useEffect", "_jsx", "RelationshipDrawer", "enabledCollectionSlugs", "slug_0", "_temp2", "node", "$isParagraphNode", "payload", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "relationshipNode", "$createRelationshipNode", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "getTextContentSize", "getParentOrThrow", "getChildren", "length", "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", "useScrollInfo", "useThrottledEffect", "useTranslation", "React", "useMemo", "c", "_c", "mergeRegister", "$addUpdateTag", "$getSelection", "useEffect", "useState", "baseClass", "ToolbarButton", "t0", "$", "_c", "children", "editor", "item", "enabled", "setEnabled", "useState", "active", "setActive", "className", "setClassName", "editorConfigContext", "useEditorConfigContext", "t1", "getEditorState", "read", "selection", "$getSelection", "isActive", "isEnabled", "updateStates", "t2", "t3", "useEffect", "t4", "t5", "document", "addEventListener", "removeEventListener", "t6", "t7", "mergeRegister", "registerUpdateListener", "t8", "key", "filter", "Boolean", "join", "t9", "t10", "focus", "update", "_temp", "onSelect", "t11", "_jsx", "onClick", "onMouseDown", "_temp2", "type", "$addUpdateTag", "e", "preventDefault", "c", "_c", "React", "useEffect", "mergeRegister", "useTranslation", "$getSelection", "Button", "$addUpdateTag", "isDOMNode", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "createPortal", "baseClass", "DropDownContext", "createContext", "DropDownItem", "active", "children", "editor", "enabled", "Icon", "item", "tooltip", "className", "setClassName", "key", "filter", "Boolean", "join", "ref", "dropDownContext", "use", "Error", "registerItem", "current", "_jsx", "buttonStyle", "disabled", "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", "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", "tooltip", "children", "className", "ToolbarDropdown", "classNames", "group", "itemsContainerClassNames", "maxActiveItems", "onActiveChange", "Symbol", "for", "activeItemKeys", "setActiveItemKeys", "React", "useState", "enabledItemKeys", "setEnabledItemKeys", "enabledGroup", "setEnabledGroup", "editorConfigContext", "items", "groupKey", "t3", "getEditorState", "read", "selection", "$getSelection", "_activeItemKeys", "_activeItems", "_enabledItemKeys", "isActive", "push", "isEnabled", "activeItems", "updateStates", "t4", "t5", "useEffect", "t6", "t7", "mergeRegister", "registerUpdateListener", "t8", "t9", "t10", "t11", "filter", "Boolean", "t12", "join", "t13", "t14", "t15", "DropDown", "buttonAriaLabel", "buttonClassName", "disabled", "map", "item_0", "includes", "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", "y", "useScrollInfo", "parentToolbarElem", "useMemo", "disableIfParentHasFixedToolbar", "sibling", "editorContainerRef", "current", "previousElementSibling", "classList", "contains", "useThrottledEffect", "currentToolbarElem", "currentRect", "getBoundingClientRect", "parentRect", "bottom", "top", "remove", "add", "onFocus", "event", "stopPropagation", "ref", "isEditable", "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", "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", "isComposing", "$isRangeSelection", "getTextContent", "nodes", "getNodes", "foundNodeWithText", "node", "$isTextNode", "rawTextContent", "replace", "updatePopup", "registerRootListener", "isEditable", "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", "$deleteTableColumn__EXPERIMENTAL", "$deleteTableRow__EXPERIMENTAL", "$getNodeTriplet", "$getTableCellNodeFromLexicalNode", "$getTableColumnIndexFromTableCellNode", "$getTableNodeFromLexicalNodeOrThrow", "$getTableRowIndexFromTableCellNode", "$insertTableColumn__EXPERIMENTAL", "$insertTableRow__EXPERIMENTAL", "$isTableCellNode", "$isTableSelection", "$unmergeCell", "getTableElement", "getTableObserverFromTableElement", "TableCellHeaderStates", "TableCellNode", "mergeRegister", "useScrollInfo", "$createParagraphNode", "$getSelection", "$isElementNode", "$isParagraphNode", "$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", "$cellContainsEmptyParagraph", "getChildrenSize", "firstChild", "getFirstChildOrThrow", "$isParagraphNode", "isEmpty", "$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", "length", "gridMap", "$computeTableMapSkipCellCheck", "minRow", "Infinity", "maxRow", "minCol", "maxCol", "processedCells", "Set", "row", "mapCell", "cellKey", "has", "some", "add", "cellStartRow", "startRow", "cellStartCol", "startColumn", "cellRowSpan", "cellColSpan", "Math", "min", "max", "totalRowSpan", "totalColSpan", "targetCellMap", "targetCell", "setColSpan", "setRowSpan", "seenCells", "col", "currentCell", "key", "append", "getChildren", "remove", "$createParagraphNode", "unmergeTableCellsAtSelection", "$unmergeCell", "insertTableRowAtSelection", "shouldInsertAfter", "i", "$insertTableRow__EXPERIMENTAL", "insertTableColumnAtSelection", "$insertTableColumn__EXPERIMENTAL", "deleteTableRowAtSelection", "$deleteTableRow__EXPERIMENTAL", "deleteTableAtSelection", "deleteTableColumnAtSelection", "$deleteTableColumn__EXPERIMENTAL", "toggleTableRowIsHeader", "tableRowIndex", "$getTableRowIndexFromTableCellNode", "rowCells", "newStyle", "getHeaderStyles", "TableCellHeaderStates", "ROW", "setHeaderStyles", "toggleTableColumnIsHeader", "tableColumnIndex", "$getTableColumnIndexFromTableCellNode", "columnCells", "COLUMN", "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", "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", "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", "t1", "createPortal", "c", "_c", "useLexicalComposerContext", "$getTableAndElementByKey", "$getTableColumnIndexFromTableCellNode", "$getTableRowIndexFromTableCellNode", "$insertTableColumn__EXPERIMENTAL", "$insertTableRow__EXPERIMENTAL", "$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", "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", "$insertTableRow__EXPERIMENTAL", "$insertTableColumn__EXPERIMENTAL", "isEditable", "_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", "DecoratorBlockNode", "ObjectID", "$applyNodeReplacement", "isGoogleDocCheckboxImg", "img", "parentElement", "tagName", "previousSibling", "getAttribute", "$convertUploadServerElement", "domNode", "hasAttribute", "id", "relationTo", "node", "$createUploadServerNode", "data", "fields", "value", "src", "startsWith", "UploadServerNode", "__data", "constructor", "format", "key", "clone", "__format", "__key", "getType", "importDOM", "conversion", "priority", "importJSON", "serializedNode", "version", "default", "toHexString", "importedData", "setFormat", "isInline", "decorate", "_jsx", "RawUploadComponent", "nodeKey", "getKey", "exportDOM", "element", "document", "createElement", "setAttribute", "String", "exportJSON", "getData", "type", "getLatest", "setData", "writable", "getWritable", "updateDOM", "RawUploadComponent", "lazy", "then", "module", "default", "UploadComponent", "$convertUploadElement", "domNode", "hasAttribute", "id", "getAttribute", "relationTo", "node", "$createUploadNode", "data", "fields", "value", "img", "src", "startsWith", "isGoogleDocCheckboxImg", "UploadNode", "UploadServerNode", "clone", "getType", "importDOM", "conversion", "priority", "importJSON", "serializedNode", "version", "ObjectID", "toHexString", "importedData", "setFormat", "format", "decorate", "_jsx", "__data", "nodeKey", "getKey", "exportJSON", "$applyNodeReplacement", "$isUploadNode", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "mergeRegister", "useConfig", "$getPreviousSelection", "$getSelection", "$isParagraphNode", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "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", "props", "EnabledRelationshipsCondition", "FallbackComponent", "toast", "error", "INSERT_UPLOAD_COMMAND", "createCommand", "UploadPlugin", "t0", "$", "_c", "editor", "useLexicalComposerContext", "config", "t1", "useConfig", "collections", "t2", "t3", "hasNodes", "UploadNode", "Error", "mergeRegister", "registerCommand", "payload", "update", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "uploadNode", "$createUploadNode", "data", "id", "fields", "relationTo", "value", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "$isParagraphNode", "__first", "__prev", "__next", "remove", "COMMAND_PRIORITY_EDITOR", "useEffect", "t4", "_jsx", "UploadDrawer", "enabledCollectionSlugs", "map", "_temp", "slug", "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", "codeHighlight", "atrule", "attr", "boolean", "builtin", "cdata", "char", "class", "comment", "constant", "deleted", "doctype", "entity", "function", "important", "inserted", "keyword", "namespace", "number", "operator", "prolog", "property", "punctuation", "regex", "selector", "string", "symbol", "tag", "url", "variable", "embedBlock", "base", "focus", "hashtag", "heading", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "hrSelected", "indent", "inlineImage", "link", "list", "checklist", "listitem", "listitemChecked", "listitemUnchecked", "nested", "olDepth", "ul", "ltr", "mark", "markOverlap", "paragraph", "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", "featureProvider", "features", "clientFeatureProps", "featureKey", "order", "undefined", "Error", "sort", "a", "b", "featureProviderMap", "Map", "feature", "set", "resolvedFeatures", "loaded", "key", "sanitizeClientFeatures", "features", "sanitized", "enabledFeatures", "enabledFormats", "markdownTransformers", "nodes", "plugins", "providers", "slashMenu", "dynamicGroups", "groups", "toolbarFixed", "toolbarInline", "size", "forEach", "feature", "length", "concat", "enableFormats", "push", "node", "plugin", "i", "clientProps", "sanitizedClientFeatureProps", "Component", "key", "position", "group", "foundGroup", "find", "sanitizedGroup", "filter", "items", "optionGroup", "transformer", "allNodes", "allTransformers", "sort", "a", "b", "order", "sanitizeClientEditorConfig", "resolvedClientFeatureMap", "lexical", "admin", "resolvedFeatureMap", "RichTextEditor", "lazy", "then", "module", "default", "RichText", "RichTextField", "props", "$", "_c", "admin", "t0", "clientFeatures", "featureClientImportMap", "featureClientSchemaMap", "field", "lexicalEditorConfig", "t1", "schemaPath", "t2", "undefined", "defaultEditorLexicalConfig", "config", "useConfig", "finalSanitizedEditorConfig", "setFinalSanitizedEditorConfig", "useState", "t3", "t4", "featureProvidersLocal", "_featureKey", "clientFeature", "Object", "entries", "clientFeatureProvider", "push", "clientFeatureProps", "finalLexicalEditorConfig", "resolvedClientFeatures", "loadClientFeatures", "name", "unSanitizedEditorConfig", "features", "lexical", "sanitizeClientEditorConfig", "useEffect", "t5", "_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", "c", "_c", "BlockCollapsible", "t0", "$", "_c", "children", "editButton", "Label", "removeButton", "useBlockComponentContext", "t1", "_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"]
7
7
  }