@payloadcms/richtext-lexical 3.80.0-internal.cdd7ef7 → 3.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/client/Field-OIMYWB22.js +2 -0
- package/dist/exports/client/Field-OIMYWB22.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/index.js +1 -1
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +13 -1
- package/dist/field/Field.js.map +1 -1
- package/dist/field/bundled.css +1 -1
- package/dist/lexical/LexicalEditor.d.ts +1 -1
- package/dist/lexical/LexicalEditor.d.ts.map +1 -1
- package/dist/lexical/LexicalEditor.js +8 -5
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/LexicalProvider.d.ts +1 -0
- package/dist/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/lexical/LexicalProvider.js +3 -1
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/package.json +6 -6
- package/dist/exports/client/Field-HJGV32KA.js +0 -2
- package/dist/exports/client/Field-HJGV32KA.js.map +0 -7
|
@@ -4,5 +4,5 @@ import './LexicalEditor.scss';
|
|
|
4
4
|
export declare const LexicalEditor: React.FC<{
|
|
5
5
|
editorContainerRef: React.RefObject<HTMLDivElement | null>;
|
|
6
6
|
isSmallWidthViewport: boolean;
|
|
7
|
-
} & Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>>;
|
|
7
|
+
} & Pick<LexicalProviderProps, 'editorConfig' | 'onChange' | 'rtl'>>;
|
|
8
8
|
//# sourceMappingURL=LexicalEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LexicalEditor.d.ts","sourceRoot":"","sources":["../../src/lexical/LexicalEditor.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAGhE,OAAO,sBAAsB,CAAA;AAc7B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAClC;IACE,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC1D,oBAAoB,EAAE,OAAO,CAAA;CAC9B,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"LexicalEditor.d.ts","sourceRoot":"","sources":["../../src/lexical/LexicalEditor.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAGhE,OAAO,sBAAsB,CAAA;AAc7B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAClC;IACE,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC1D,oBAAoB,EAAE,OAAO,CAAA;CAC9B,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,UAAU,GAAG,KAAK,CAAC,CAqKpE,CAAA"}
|
|
@@ -25,12 +25,13 @@ import { SlashMenuPlugin } from './plugins/SlashMenu/index.js';
|
|
|
25
25
|
import { TextPlugin } from './plugins/TextPlugin/index.js';
|
|
26
26
|
import { LexicalContentEditable } from './ui/ContentEditable.js';
|
|
27
27
|
export const LexicalEditor = props => {
|
|
28
|
-
const $ = _c(
|
|
28
|
+
const $ = _c(13);
|
|
29
29
|
const {
|
|
30
30
|
editorConfig,
|
|
31
31
|
editorContainerRef,
|
|
32
32
|
isSmallWidthViewport,
|
|
33
|
-
onChange
|
|
33
|
+
onChange,
|
|
34
|
+
rtl
|
|
34
35
|
} = props;
|
|
35
36
|
const editorConfigContext = useEditorConfigContext();
|
|
36
37
|
const [editor] = useLexicalComposerContext();
|
|
@@ -90,10 +91,11 @@ export const LexicalEditor = props => {
|
|
|
90
91
|
}
|
|
91
92
|
useEffect(t1, t2);
|
|
92
93
|
let t3;
|
|
93
|
-
if ($[5] !== editorConfig || $[6] !== editorContainerRef || $[7] !== floatingAnchorElem || $[8] !== isEditable || $[9] !== isSmallWidthViewport || $[10] !== onChange) {
|
|
94
|
+
if ($[5] !== editorConfig || $[6] !== editorContainerRef || $[7] !== floatingAnchorElem || $[8] !== isEditable || $[9] !== isSmallWidthViewport || $[10] !== onChange || $[11] !== rtl) {
|
|
94
95
|
t3 = _jsxs(React.Fragment, {
|
|
95
96
|
children: [editorConfig.features.plugins?.map(_temp), _jsxs("div", {
|
|
96
97
|
className: "editor-container",
|
|
98
|
+
dir: rtl ? "rtl" : undefined,
|
|
97
99
|
ref: editorContainerRef,
|
|
98
100
|
children: [editorConfig.features.plugins?.map(_temp2), _jsx(RichTextPlugin, {
|
|
99
101
|
contentEditable: _jsx("div", {
|
|
@@ -149,9 +151,10 @@ export const LexicalEditor = props => {
|
|
|
149
151
|
$[8] = isEditable;
|
|
150
152
|
$[9] = isSmallWidthViewport;
|
|
151
153
|
$[10] = onChange;
|
|
152
|
-
$[11] =
|
|
154
|
+
$[11] = rtl;
|
|
155
|
+
$[12] = t3;
|
|
153
156
|
} else {
|
|
154
|
-
t3 = $[
|
|
157
|
+
t3 = $[12];
|
|
155
158
|
}
|
|
156
159
|
return t3;
|
|
157
160
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LexicalEditor.js","names":["c","_c","useLexicalComposerContext","LexicalErrorBoundary","HistoryPlugin","OnChangePlugin","RichTextPlugin","useLexicalEditable","BLUR_COMMAND","COMMAND_PRIORITY_LOW","FOCUS_COMMAND","React","useEffect","useState","useEditorConfigContext","EditorPlugin","ClipboardPlugin","DecoratorPlugin","AddBlockHandlePlugin","DraggableBlockPlugin","InsertParagraphAtEndPlugin","MarkdownShortcutPlugin","NormalizeSelectionPlugin","SelectAllPlugin","SlashMenuPlugin","TextPlugin","LexicalContentEditable","LexicalEditor","props","$","editorConfig","editorContainerRef","isSmallWidthViewport","onChange","editorConfigContext","editor","isEditable","floatingAnchorElem","setFloatingAnchorElem","t0","Symbol","for","_floatingAnchorElem","onRef","t1","t2","uuid","console","error","parentEditor","registerChild","handleFocus","focusEditor","handleBlur","blurEditor","unregisterFocus","registerCommand","unregisterBlur","unregisterChild","t3","_jsxs","Fragment","children","features","plugins","map","_temp","className","ref","_temp2","_jsx","contentEditable","ignoreSelectionChange","editorState","editor_0","tags","has","size","admin","hideDraggableBlockElement","anchorElem","hideAddBlockButton","plugin_1","plugin","position","desktopOnly","clientProps","key","markdownTransformers","length","_temp3","_temp4","_temp5","plugin_0","plugin_2","plugin_3","plugin_4"],"sources":["../../src/lexical/LexicalEditor.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary.js'\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin.js'\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin.js'\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'\nimport * as React from 'react'\nimport { useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { useEditorConfigContext } from './config/client/EditorConfigProvider.js'\nimport './LexicalEditor.scss'\nimport { EditorPlugin } from './EditorPlugin.js'\nimport { ClipboardPlugin } from './plugins/ClipboardPlugin/index.js'\nimport { DecoratorPlugin } from './plugins/DecoratorPlugin/index.js'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { InsertParagraphAtEndPlugin } from './plugins/InsertParagraphAtEnd/index.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { NormalizeSelectionPlugin } from './plugins/NormalizeSelection/index.js'\nimport { SelectAllPlugin } from './plugins/SelectAllPlugin/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { TextPlugin } from './plugins/TextPlugin/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\nexport const LexicalEditor: React.FC<\n {\n editorContainerRef: React.RefObject<HTMLDivElement | null>\n isSmallWidthViewport: boolean\n } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>\n> = (props) => {\n const { editorConfig, editorContainerRef, isSmallWidthViewport, onChange } = props\n const editorConfigContext = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem)\n }\n }\n\n useEffect(() => {\n if (!editorConfigContext?.uuid) {\n console.error('Lexical Editor must be used within an EditorConfigProvider')\n return\n }\n if (editorConfigContext?.parentEditor?.uuid) {\n editorConfigContext.parentEditor?.registerChild(editorConfigContext.uuid, editorConfigContext)\n }\n\n const handleFocus = () => {\n editorConfigContext.focusEditor(editorConfigContext)\n }\n\n const handleBlur = () => {\n editorConfigContext.blurEditor(editorConfigContext)\n }\n\n const unregisterFocus = editor.registerCommand<MouseEvent>(\n FOCUS_COMMAND,\n () => {\n handleFocus()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n const unregisterBlur = editor.registerCommand<MouseEvent>(\n BLUR_COMMAND,\n () => {\n handleBlur()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n return () => {\n unregisterFocus()\n unregisterBlur()\n editorConfigContext.parentEditor?.unregisterChild?.(editorConfigContext.uuid)\n }\n }, [editor, editorConfigContext])\n\n return (\n <React.Fragment>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'aboveContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n <div className=\"editor-container\" ref={editorContainerRef}>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'top') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef}>\n <LexicalContentEditable editorConfig={editorConfig} />\n </div>\n </div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n <NormalizeSelectionPlugin />\n {isEditable && <InsertParagraphAtEndPlugin />}\n <DecoratorPlugin />\n <ClipboardPlugin />\n <TextPlugin features={editorConfig.features} />\n <SelectAllPlugin />\n {isEditable && (\n <OnChangePlugin\n // Selection changes can be ignored here, reducing the\n // frequency that the FieldComponent and Payload receive updates.\n // Selection changes are only needed if you are saving selection state\n ignoreSelectionChange\n onChange={(editorState, editor, tags) => {\n // Ignore any onChange event triggered by focus only\n if (!tags.has('focus') || tags.size > 1) {\n if (onChange != null) {\n onChange(editorState, editor, tags)\n }\n }\n }}\n />\n )}\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && isEditable && (\n <React.Fragment>\n {editorConfig.admin?.hideDraggableBlockElement ? null : (\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n )}\n {editorConfig.admin?.hideAddBlockButton ? null : (\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\n )}\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (\n plugin.position === 'floatingAnchorElem' &&\n !(plugin.desktopOnly === true && isSmallWidthViewport)\n ) {\n return (\n <EditorPlugin\n anchorElem={floatingAnchorElem}\n clientProps={plugin.clientProps}\n key={plugin.key}\n plugin={plugin}\n />\n )\n }\n })}\n {isEditable && (\n <React.Fragment>\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {isEditable && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'normal') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'bottom') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n </div>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'belowContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"LexicalEditor.js","names":["c","_c","useLexicalComposerContext","LexicalErrorBoundary","HistoryPlugin","OnChangePlugin","RichTextPlugin","useLexicalEditable","BLUR_COMMAND","COMMAND_PRIORITY_LOW","FOCUS_COMMAND","React","useEffect","useState","useEditorConfigContext","EditorPlugin","ClipboardPlugin","DecoratorPlugin","AddBlockHandlePlugin","DraggableBlockPlugin","InsertParagraphAtEndPlugin","MarkdownShortcutPlugin","NormalizeSelectionPlugin","SelectAllPlugin","SlashMenuPlugin","TextPlugin","LexicalContentEditable","LexicalEditor","props","$","editorConfig","editorContainerRef","isSmallWidthViewport","onChange","rtl","editorConfigContext","editor","isEditable","floatingAnchorElem","setFloatingAnchorElem","t0","Symbol","for","_floatingAnchorElem","onRef","t1","t2","uuid","console","error","parentEditor","registerChild","handleFocus","focusEditor","handleBlur","blurEditor","unregisterFocus","registerCommand","unregisterBlur","unregisterChild","t3","_jsxs","Fragment","children","features","plugins","map","_temp","className","dir","undefined","ref","_temp2","_jsx","contentEditable","ignoreSelectionChange","editorState","editor_0","tags","has","size","admin","hideDraggableBlockElement","anchorElem","hideAddBlockButton","plugin_1","plugin","position","desktopOnly","clientProps","key","markdownTransformers","length","_temp3","_temp4","_temp5","plugin_0","plugin_2","plugin_3","plugin_4"],"sources":["../../src/lexical/LexicalEditor.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary.js'\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin.js'\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin.js'\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'\nimport * as React from 'react'\nimport { useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { useEditorConfigContext } from './config/client/EditorConfigProvider.js'\nimport './LexicalEditor.scss'\nimport { EditorPlugin } from './EditorPlugin.js'\nimport { ClipboardPlugin } from './plugins/ClipboardPlugin/index.js'\nimport { DecoratorPlugin } from './plugins/DecoratorPlugin/index.js'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { InsertParagraphAtEndPlugin } from './plugins/InsertParagraphAtEnd/index.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { NormalizeSelectionPlugin } from './plugins/NormalizeSelection/index.js'\nimport { SelectAllPlugin } from './plugins/SelectAllPlugin/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { TextPlugin } from './plugins/TextPlugin/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\nexport const LexicalEditor: React.FC<\n {\n editorContainerRef: React.RefObject<HTMLDivElement | null>\n isSmallWidthViewport: boolean\n } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange' | 'rtl'>\n> = (props) => {\n const { editorConfig, editorContainerRef, isSmallWidthViewport, onChange, rtl } = props\n const editorConfigContext = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem)\n }\n }\n\n useEffect(() => {\n if (!editorConfigContext?.uuid) {\n console.error('Lexical Editor must be used within an EditorConfigProvider')\n return\n }\n if (editorConfigContext?.parentEditor?.uuid) {\n editorConfigContext.parentEditor?.registerChild(editorConfigContext.uuid, editorConfigContext)\n }\n\n const handleFocus = () => {\n editorConfigContext.focusEditor(editorConfigContext)\n }\n\n const handleBlur = () => {\n editorConfigContext.blurEditor(editorConfigContext)\n }\n\n const unregisterFocus = editor.registerCommand<MouseEvent>(\n FOCUS_COMMAND,\n () => {\n handleFocus()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n const unregisterBlur = editor.registerCommand<MouseEvent>(\n BLUR_COMMAND,\n () => {\n handleBlur()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n return () => {\n unregisterFocus()\n unregisterBlur()\n editorConfigContext.parentEditor?.unregisterChild?.(editorConfigContext.uuid)\n }\n }, [editor, editorConfigContext])\n\n return (\n <React.Fragment>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'aboveContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n <div className=\"editor-container\" dir={rtl ? 'rtl' : undefined} ref={editorContainerRef}>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'top') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef}>\n <LexicalContentEditable editorConfig={editorConfig} />\n </div>\n </div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n <NormalizeSelectionPlugin />\n {isEditable && <InsertParagraphAtEndPlugin />}\n <DecoratorPlugin />\n <ClipboardPlugin />\n <TextPlugin features={editorConfig.features} />\n <SelectAllPlugin />\n {isEditable && (\n <OnChangePlugin\n // Selection changes can be ignored here, reducing the\n // frequency that the FieldComponent and Payload receive updates.\n // Selection changes are only needed if you are saving selection state\n ignoreSelectionChange\n onChange={(editorState, editor, tags) => {\n // Ignore any onChange event triggered by focus only\n if (!tags.has('focus') || tags.size > 1) {\n if (onChange != null) {\n onChange(editorState, editor, tags)\n }\n }\n }}\n />\n )}\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && isEditable && (\n <React.Fragment>\n {editorConfig.admin?.hideDraggableBlockElement ? null : (\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n )}\n {editorConfig.admin?.hideAddBlockButton ? null : (\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\n )}\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (\n plugin.position === 'floatingAnchorElem' &&\n !(plugin.desktopOnly === true && isSmallWidthViewport)\n ) {\n return (\n <EditorPlugin\n anchorElem={floatingAnchorElem}\n clientProps={plugin.clientProps}\n key={plugin.key}\n plugin={plugin}\n />\n )\n }\n })}\n {isEditable && (\n <React.Fragment>\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {isEditable && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'normal') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'bottom') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n </div>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'belowContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ export type LexicalProviderProps = {
|
|
|
9
9
|
isSmallWidthViewport: boolean;
|
|
10
10
|
onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void;
|
|
11
11
|
readOnly: boolean;
|
|
12
|
+
rtl?: boolean;
|
|
12
13
|
value: SerializedEditorState;
|
|
13
14
|
};
|
|
14
15
|
export declare const LexicalProvider: React.FC<LexicalProviderProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LexicalProvider.d.ts","sourceRoot":"","sources":["../../src/lexical/LexicalProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AASpE,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,2BAA2B,CAAA;IACzC,UAAU,EAAE,yBAAyB,CAAA;IACrC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACtF,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,qBAAqB,CAAA;CAC7B,CAAA;AAwBD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"LexicalProvider.d.ts","sourceRoot":"","sources":["../../src/lexical/LexicalProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AASpE,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,2BAA2B,CAAA;IACzC,UAAU,EAAE,yBAAyB,CAAA;IACrC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACtF,QAAQ,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,qBAAqB,CAAA;CAC7B,CAAA;AAwBD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAkF1D,CAAA"}
|
|
@@ -36,6 +36,7 @@ export const LexicalProvider = props => {
|
|
|
36
36
|
isSmallWidthViewport,
|
|
37
37
|
onChange,
|
|
38
38
|
readOnly,
|
|
39
|
+
rtl,
|
|
39
40
|
value
|
|
40
41
|
} = props;
|
|
41
42
|
const parentContext = useEditorConfigContext();
|
|
@@ -90,7 +91,8 @@ export const LexicalProvider = props => {
|
|
|
90
91
|
editorConfig: editorConfig,
|
|
91
92
|
editorContainerRef: editorContainerRef,
|
|
92
93
|
isSmallWidthViewport: isSmallWidthViewport,
|
|
93
|
-
onChange: onChange
|
|
94
|
+
onChange: onChange,
|
|
95
|
+
rtl: rtl
|
|
94
96
|
})
|
|
95
97
|
})
|
|
96
98
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LexicalProvider.js","names":["LexicalComposer","useEditDepth","React","useMemo","EditorConfigProvider","useEditorConfigContext","LexicalEditor","LexicalEditorComponent","getEnabledNodes","NestProviders","children","providers","length","Component","_jsx","slice","LexicalProvider","props","composerKey","editorConfig","fieldProps","isSmallWidthViewport","onChange","readOnly","value","parentContext","editDepth","editorContainerRef","useRef","initialConfig","Error","JSON","stringify","Array","isArray","editable","editorState","undefined","namespace","lexical","nodes","onError","error","theme","features"],"sources":["../../src/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport { useEditDepth } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n isSmallWidthViewport: boolean\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({\n children,\n providers,\n}: {\n children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n providers: any[]\n}) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const {
|
|
1
|
+
{"version":3,"file":"LexicalProvider.js","names":["LexicalComposer","useEditDepth","React","useMemo","EditorConfigProvider","useEditorConfigContext","LexicalEditor","LexicalEditorComponent","getEnabledNodes","NestProviders","children","providers","length","Component","_jsx","slice","LexicalProvider","props","composerKey","editorConfig","fieldProps","isSmallWidthViewport","onChange","readOnly","rtl","value","parentContext","editDepth","editorContainerRef","useRef","initialConfig","Error","JSON","stringify","Array","isArray","editable","editorState","undefined","namespace","lexical","nodes","onError","error","theme","features"],"sources":["../../src/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport { useEditDepth } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n isSmallWidthViewport: boolean\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n rtl?: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({\n children,\n providers,\n}: {\n children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n providers: any[]\n}) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const {\n composerKey,\n editorConfig,\n fieldProps,\n isSmallWidthViewport,\n onChange,\n readOnly,\n rtl,\n value,\n } = props\n\n const parentContext = useEditorConfigContext()\n\n const editDepth = useEditDepth()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n // useMemo for the initialConfig that depends on readOnly and value\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (value && typeof value !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(value),\n )\n }\n\n if (value && Array.isArray(value) && !('root' in value)) {\n throw new Error(\n 'You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (value && 'jsonContent' in value) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n return {\n editable: readOnly !== true,\n editorState: value != null ? JSON.stringify(value) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig }),\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n // Important: do not add readOnly and value to the dependencies array. This will cause the entire lexical editor to re-render if the document is saved, which will\n // cause the editor to lose focus.\n }, [editorConfig])\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n // We need to add initialConfig.editable to the key to force a re-render when the readOnly prop changes.\n // Without it, there were cases where lexical editors inside drawers turn readOnly initially - a few miliseconds later they turn editable, but the editor does not re-render and stays readOnly.\n return (\n <LexicalComposer initialConfig={initialConfig} key={composerKey + initialConfig.editable}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n /**\n * Parent editor is not truly the parent editor, if the current editor is part of a drawer and the parent editor is the main editor.\n */\n parentContext={parentContext?.editDepth === editDepth ? parentContext : undefined}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n isSmallWidthViewport={isSmallWidthViewport}\n onChange={onChange}\n rtl={rtl}\n />\n </NestProviders>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/richtext-lexical",
|
|
3
|
-
"version": "3.80.0
|
|
3
|
+
"version": "3.80.0",
|
|
4
4
|
"description": "The officially supported Lexical richtext adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -374,8 +374,8 @@
|
|
|
374
374
|
"react-error-boundary": "4.1.2",
|
|
375
375
|
"ts-essentials": "10.0.3",
|
|
376
376
|
"uuid": "10.0.0",
|
|
377
|
-
"@payloadcms/
|
|
378
|
-
"@payloadcms/
|
|
377
|
+
"@payloadcms/ui": "3.80.0",
|
|
378
|
+
"@payloadcms/translations": "3.80.0"
|
|
379
379
|
},
|
|
380
380
|
"devDependencies": {
|
|
381
381
|
"@babel/cli": "7.27.2",
|
|
@@ -395,15 +395,15 @@
|
|
|
395
395
|
"esbuild-sass-plugin": "3.3.1",
|
|
396
396
|
"swc-plugin-transform-remove-imports": "8.3.0",
|
|
397
397
|
"@payloadcms/eslint-config": "3.28.0",
|
|
398
|
-
"payload": "3.80.0
|
|
398
|
+
"payload": "3.80.0"
|
|
399
399
|
},
|
|
400
400
|
"peerDependencies": {
|
|
401
401
|
"@faceless-ui/modal": "3.0.0",
|
|
402
402
|
"@faceless-ui/scroll-info": "2.0.0",
|
|
403
403
|
"react": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
404
404
|
"react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
405
|
-
"@payloadcms/next": "3.80.0
|
|
406
|
-
"payload": "3.80.0
|
|
405
|
+
"@payloadcms/next": "3.80.0",
|
|
406
|
+
"payload": "3.80.0"
|
|
407
407
|
},
|
|
408
408
|
"engines": {
|
|
409
409
|
"node": "^18.20.2 || >=20.9.0"
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{a as ke,e as Te,f as F,h as De,i as Le,j as ve,k as Me,l as _e}from"./chunk-EZX4YW7S.js";import{a as we,b as R}from"./chunk-BZZVLW4U.js";import{jsx as B,jsxs as ge}from"react/jsx-runtime";import{BulkUploadProvider as _n,FieldDescription as An,FieldError as Bn,FieldLabel as On,RenderCustomComponent as St,useEditDepth as In,useEffectEvent as Fn,useField as $n}from"@payloadcms/ui";import{mergeFieldStyles as Kn}from"@payloadcms/ui/shared";import{dequal as Hn}from"dequal/lite";import Pt,{useCallback as Rt,useEffect as wt,useMemo as jn,useState as kt}from"react";import{ErrorBoundary as zn}from"react-error-boundary";import"./bundled.css";import{jsx as $}from"react/jsx-runtime";import{LexicalComposer as Ln}from"@lexical/react/LexicalComposer.js";import{useEditDepth as vn}from"@payloadcms/ui";import*as Ct from"react";import{useMemo as Mn}from"react";import{c as pn}from"react/compiler-runtime";import{jsx as E,jsxs as te}from"react/jsx-runtime";import{useLexicalComposerContext as gn}from"@lexical/react/LexicalComposerContext.js";import{LexicalErrorBoundary as hn}from"@lexical/react/LexicalErrorBoundary.js";import{HistoryPlugin as yn}from"@lexical/react/LexicalHistoryPlugin.js";import{OnChangePlugin as xn}from"@lexical/react/LexicalOnChangePlugin.js";import{RichTextPlugin as En}from"@lexical/react/LexicalRichTextPlugin.js";import{useLexicalEditable as Cn}from"@lexical/react/useLexicalEditable";import{BLUR_COMMAND as bn,COMMAND_PRIORITY_LOW as xt,FOCUS_COMMAND as Nn}from"lexical";import*as J from"react";import{useEffect as Sn,useState as Pn}from"react";import{jsx as Ae}from"react/jsx-runtime";import"react";var K=({anchorElem:e,clientProps:t,plugin:o})=>o.position==="floatingAnchorElem"&&e?o.Component&&Ae(o.Component,{anchorElem:e,clientProps:t}):o.Component&&Ae(o.Component,{clientProps:t});import{c as Lt}from"react/compiler-runtime";import{copyToClipboard as Be}from"@lexical/clipboard";import{useLexicalComposerContext as vt}from"@lexical/react/LexicalComposerContext.js";import{objectKlassEquals as Mt}from"@lexical/utils";import Oe from"bson-objectid";import{$getSelection as _t,$isNodeSelection as At,COMMAND_PRIORITY_LOW as Bt,COPY_COMMAND as Ot}from"lexical";import{useEffect as It}from"react";var xe=e=>{if("fields"in e&&typeof e.fields=="object"&&e.fields!==null&&"id"in e.fields?e.fields.id=new Oe.default().toHexString():"id"in e&&(e.id=new Oe.default().toHexString()),e.children)for(let t of e.children)xe(t)};function Ie(){let e=Lt(3),[t]=vt(),o,r;return e[0]!==t?(o=()=>t.registerCommand(Ot,n=>{let d=_t();if(At(d)){let s=d.getNodes()[0]?.exportJSON(),c=JSON.parse(JSON.stringify(s));xe(c);let u={namespace:t._config.namespace,nodes:[c]},y=JSON.stringify(u);return Be(t,null,{"application/x-lexical-editor":y,"text/plain":""}).catch(Ft),!0}return Be(t,Mt(n,ClipboardEvent)?n:null).then(()=>{if(!(n instanceof ClipboardEvent)||!n.clipboardData)throw new Error("No clipboard event");let i=n.clipboardData.getData("application/x-lexical-editor");if(!i)return!0;let s=JSON.parse(i);for(let u of s.nodes)xe(u);let c=JSON.stringify(s);n.clipboardData.setData("application/x-lexical-editor",c)}).catch(i=>{throw n instanceof ClipboardEvent&&n.clipboardData?.setData("application/x-lexical-editor",""),i}),!0},Bt),r=[t],e[0]=t,e[1]=o,e[2]=r):(o=e[1],r=e[2]),It(o,r),null}function Ft(e){throw e}import{c as $t}from"react/compiler-runtime";import{useLexicalComposerContext as Kt}from"@lexical/react/LexicalComposerContext";import{$findMatchingParent as ne,mergeRegister as Ht}from"@lexical/utils";import{$createNodeSelection as jt,$getEditor as X,$getNearestNodeFromDOMNode as zt,$getSelection as re,$isDecoratorNode as H,$isElementNode as Ee,$isLineBreakNode as Wt,$isNodeSelection as ie,$isRangeSelection as Fe,$isRootOrShadowRoot as Yt,$isTextNode as Vt,$setSelection as $e,CLICK_COMMAND as Gt,COMMAND_PRIORITY_LOW as W,KEY_ARROW_DOWN_COMMAND as Ut,KEY_ARROW_UP_COMMAND as Jt,KEY_BACKSPACE_COMMAND as qt,KEY_DELETE_COMMAND as Qt,SELECTION_CHANGE_COMMAND as Xt}from"lexical";import{useEffect as Zt}from"react";function Ke(){let e=$t(3),[t]=Kt(),o=so,r,n;return e[0]!==t?(r=()=>Ht(t.registerCommand(Gt,io,W),t.registerCommand(Qt,o,W),t.registerCommand(qt,o,W),t.registerCommand(Xt,ro,W),t.registerCommand(Jt,oo,W),t.registerCommand(Ut,eo,W)),n=[t],e[0]=t,e[1]=r,e[2]=n):(r=e[1],n=e[2]),Zt(r,n),null}function eo(e){let t=re();if(ie(t)){e.preventDefault();let i=t.getNodes()[0]?.getNextSibling();if(H(i)){let u=X().getElementByKey(i.getKey());return u&&Z({element:u,node:i}),!0}if(!Ee(i))return!0;let s=i.getFirstDescendant()??i;return s&&(ne(s,se)?.selectEnd(),e.preventDefault()),!0}if(!Fe(t))return!1;let r=(t.isBackward()?t.anchor:t.focus).getNode(),n=ne(r,to),d=n?.getNextSibling();if(!n||d!==He(n))return!1;if(H(d)){let i=X().getElementByKey(d.getKey());if(i)return Z({element:i,node:d}),e.preventDefault(),!0}return!1}function to(e){return He(e)!==null}function oo(e){let t=re();if(ie(t)){let i=t.getNodes()[0]?.getPreviousSibling();if(H(i)){let u=X().getElementByKey(i.getKey());return u?(Z({element:u,node:i}),e.preventDefault(),!0):!1}if(!Ee(i))return!1;let s=i.getLastDescendant()??i;return s?(ne(s,se)?.selectStart(),e.preventDefault(),!0):!1}if(!Fe(t))return!1;let r=(t.isBackward()?t.anchor:t.focus).getNode(),n=ne(r,no),d=n?.getPreviousSibling();if(!n||d!==je(n))return!1;if(H(d)){let i=X().getElementByKey(d.getKey());if(i)return Z({element:i,node:d}),e.preventDefault(),!0}return!1}function no(e){return je(e)!==null}function ro(){let e=co();return document.querySelector(".decorator-selected")?.classList.remove("decorator-selected"),e?(e.element?.classList.add("decorator-selected"),!0):!1}function io(e){document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");let t=ao(e);if(!t)return!0;let{target:o}=e;return!(o instanceof HTMLElement)||o.isContentEditable||o.closest('button, textarea, input, .react-select, .code-editor, .no-select-decorator, [role="button"]')?$e(null):Z(t),!0}function so(e){let t=re();return ie(t)?(e.preventDefault(),t.getNodes().forEach(lo),!0):!1}function lo(e){e.remove()}function ao(e){if(!(e.target instanceof HTMLElement))return;let t=e.target.closest('[data-lexical-decorator="true"]');if(!(t instanceof HTMLElement))return;let o=zt(t);return H(o)?{element:t,node:o}:void 0}function co(){let e=re();if(!ie(e))return;let t=e.getNodes();if(t.length!==1)return;let o=t[0];return H(o)?{decorator:o,element:X().getElementByKey(o.getKey())}:void 0}function Z({element:e,node:t}){document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");let o=jt();o.add(t.getKey()),$e(o),e.scrollIntoView({behavior:"smooth",block:"nearest"}),e.classList.add("decorator-selected")}function se(e){if(H(e)&&!e.isInline())return!0;if(!Ee(e)||Yt(e))return!1;let t=e.getFirstChild(),o=t===null||Wt(t)||Vt(t)||t.isInline();return!e.isInline()&&e.canBeEmpty()!==!1&&o}function He(e){let t=e.getNextSibling();for(;t!==null;){if(se(t))return t;t=t.getNextSibling()}return null}function je(e){let t=e.getPreviousSibling();for(;t!==null;){if(se(t))return t;t=t.getPreviousSibling()}return null}import{jsx as Ce}from"react/jsx-runtime";import{useLexicalComposerContext as ho}from"@lexical/react/LexicalComposerContext.js";import{$createParagraphNode as yo,isHTMLElement as xo}from"lexical";import*as Ve from"react";import{useCallback as Eo,useEffect as Ye,useRef as Co,useState as bo}from"react";import{createPortal as No}from"react-dom";var Y=(e,t,o,r,n=50,d=25)=>{let i=0;if(e&&!e.contains(r)){let{bottom:s,left:c,right:u,top:y}=e.getBoundingClientRect(),l=y+window.scrollY,a=s+window.scrollY;if(o<l-d||o>a+d||t<c-n||t>u+n)return-1;(t<c||t>u)&&(i=t<c?t-c:t-u)}return i};import{$getNodeByKey as ae}from"lexical";function V(e){let t=e.getBoundingClientRect(),o=getComputedStyle(e).getPropertyValue("transform");if(!o||o==="none")return t;let r=o.split(",").pop();return t.y=t.y-Number(r?.replace(")","")),t}function le(e){let t=(c,u)=>c?parseFloat(window.getComputedStyle(c)[u]):0,{marginBottom:o,marginTop:r}=window.getComputedStyle(e),n=t(e.previousElementSibling,"marginBottom"),d=t(e.nextElementSibling,"marginTop"),i=Math.max(parseFloat(r),n);return{marginBottom:Math.max(parseFloat(o),d),marginTop:i}}import{$getRoot as uo}from"lexical";function j(e){return e.getEditorState().read(()=>uo().getChildrenKeys())}var mo=1,fo=-1,ze=0,_={props:null,result:null};function po(e,t,o=20){let r=e.x-t.x,n=e.y-t.y;return r*r+n*n<=o*o}function G(e){let{anchorElem:t,cache_threshold:o=20,editor:r,fuzzy:n=!1,horizontalOffset:d=0,point:{x:i,y:s},startIndex:c=0,useEdgeAsDefault:u=!1}=e;if(o>0&&_.props&&_.result&&_.props.fuzzy===e.fuzzy&&_.props.horizontalOffset===e.horizontalOffset&&_.props.useEdgeAsDefault===e.useEdgeAsDefault&&po(_.props.point,e.point,o))return _.result;let y=t.getBoundingClientRect(),l=j(r),a={blockElem:null,blockNode:null,distance:1/0,foundAtIndex:-1,isFoundNodeEmptyParagraph:!1};return r.getEditorState().read(()=>{if(u){let g=r.getElementByKey(l[0]),m=r.getElementByKey(l[l.length-1]);if(g&&m){let[p,f]=[V(g),V(m)];if(s<p.top?(a.blockElem=g,a.distance=p.top-s,a.blockNode=ae(l[0]),a.foundAtIndex=0):s>f.bottom&&(a.distance=s-f.bottom,a.blockNode=ae(l[l.length-1]),a.blockElem=m,a.foundAtIndex=l.length-1),a?.blockElem)return{blockElem:null,isFoundNodeEmptyParagraph:!1}}}let h=c,x=ze;for(;h>=0&&h<l.length;){let g=l[h],m=r.getElementByKey(g);if(m===null)break;let p=new F(i+d,s),f=Me.fromDOMRect(V(m)),{marginBottom:C,marginTop:k}=le(m),P=f.generateNewRect({bottom:f.bottom+C,left:y.left,right:y.right,top:f.top-k}),{distance:b,isOnBottomSide:w,isOnTopSide:N}=P.distanceFromPoint(p);if(b===0){a.blockElem=m,a.blockNode=ae(g),a.foundAtIndex=h,a.distance=b,a.blockNode&&a.blockNode.getType()==="paragraph"&&a.blockNode.getTextContent()===""&&(!n&&!e.returnEmptyParagraphs&&(a.blockElem=null,a.blockNode=null),a.isFoundNodeEmptyParagraph=!0);break}else n&&b<a.distance&&(a.blockElem=m,a.blockNode=ae(g),a.distance=b,a.foundAtIndex=h);x===ze&&(N?x=fo:w?x=mo:x=1/0),h+=x}}),_.props=e,_.result={blockElem:a.blockElem,blockNode:a.blockNode,foundAtIndex:a.foundAtIndex,isFoundNodeEmptyParagraph:a.isFoundNodeEmptyParagraph},{blockElem:a.blockElem,blockNode:a.blockNode,foundAtIndex:a.foundAtIndex,isFoundNodeEmptyParagraph:a.isFoundNodeEmptyParagraph}}function ce(e,t){return!!e.closest(`.${t}`)}var go=["IMG","INPUT","TEXTAREA","SELECT","BUTTON","VIDEO","OBJECT","EMBED","IFRAME","HR"];function We(e){if(!e||go.includes(e.tagName)||e.offsetHeight===0||e.offsetWidth===0)return!1;let t=window.getComputedStyle(e);return!(t.display==="table-cell"||t.position==="absolute"||t.visibility==="hidden"||t.opacity==="0")}function de(e,t,o,r=0){if(!e){t.style.opacity="0",t.style.transform="translate(-10000px, -10000px)";return}let n=e.getBoundingClientRect(),d=window.getComputedStyle(e),i=t.getBoundingClientRect(),s=o.getBoundingClientRect(),c;if(["LexicalEditorTheme__block","LexicalEditorTheme__upload","LexicalEditorTheme__relationship"].some(l=>e.classList.contains(l)||e.firstElementChild?.classList.contains(l)))c=n.top+8-s.top;else{let l=We(e)?parseInt(d.lineHeight,10):0;c=n.top+(l-i.height)/2-s.top}let y=r;t.style.opacity="1",t.style.transform=`translate(${y}px, ${c}px)`}var So="add-block-menu",ue=1/0;function Po(e){return e===0?1/0:ue>=0&&ue<e?ue:Math.floor(e/2)}function Ro(e,t,o){let r=t.parentElement,{editorConfig:n}=R(),d=n?.admin?.hideGutter?-24:12,i=Co(null),[s,c]=bo(null);Ye(()=>{function y(l){let a=l.target;if(!xo(a))return;let h=Y(r,l.pageX,l.pageY,a);if(h===-1){c(null);return}if(ce(a,So))return;let x=j(e),{blockElem:g,blockNode:m,foundAtIndex:p}=G({anchorElem:t,cache_threshold:0,editor:e,horizontalOffset:-h,point:new F(l.x,l.y),returnEmptyParagraphs:!0,startIndex:Po(x.length),useEdgeAsDefault:!1});ue=p,g&&m&&(s?.node!==m||s?.elem!==g)&&c({elem:g,node:m})}return document?.addEventListener("mousemove",y),()=>{document?.removeEventListener("mousemove",y)}},[r,t,e,s]),Ye(()=>{i.current&&s?.node&&de(s?.elem,i.current,t,d)},[t,s,d]);let u=Eo(y=>{let l=s;l?.node&&(e.update(()=>{let a=!0;if((l?.node.getType()!=="paragraph"||l.node.getTextContent()!=="")&&(a=!1),!a){let h=yo();l?.node.insertAfter(h),setTimeout(()=>{l={elem:e.getElementByKey(h.getKey()),node:h},c(l)},0)}}),setTimeout(()=>{e.update(()=>{e.focus(),l?.node&&"select"in l.node&&typeof l.node.select=="function"&&l.node.select()})},1),setTimeout(()=>{e.dispatchCommand(Le,{node:l?.node})},2),y.stopPropagation(),y.preventDefault())},[e,s]);return No(Ce(Ve.Fragment,{children:Ce("button",{"aria-label":"Add block",className:"icon add-block-menu",onClick:y=>{u(y)},ref:i,type:"button",children:Ce("div",{className:o?"icon":""})})}),t)}function Ge(e){let{anchorElem:t}=e,o=t===void 0?document.body:t,[r]=ho();return Ro(r,o,r._editable)}import{jsx as me,jsxs as ko}from"react/jsx-runtime";import{useLexicalComposerContext as To}from"@lexical/react/LexicalComposerContext.js";import{eventFiles as qe}from"@lexical/rich-text";import{$getNearestNodeFromDOMNode as Qe,$getNodeByKey as Do,isHTMLElement as be}from"lexical";import*as ot from"react";import{useEffect as Ne,useRef as fe,useState as Xe}from"react";import{createPortal as Lo}from"react-dom";var Ue=0,wo=-24;var z=0;function Je(e,t,o,r,n,d,i,s,c,u=!1){let{height:y,top:l}=r.getBoundingClientRect(),{top:a,width:h}=i.getBoundingClientRect(),{marginBottom:x,marginTop:g}=le(r),m=l,p=d>=l+y/2+window.scrollY,f=!1;if(n?.elem)if(r!==n?.elem)(p&&n?.elem&&n?.elem===r.nextElementSibling||!p&&n?.elem&&n?.elem===r.previousElementSibling)&&(z++,z<200&&(f=!0));else{z++;let b=n?.boundingBox?.y,w=r.getBoundingClientRect().y;(p===n?.isBelow&&b===w||z<200)&&(f=!1)}if(f)return{isBelow:p,willStayInSamePosition:f};u?m+=y/2:p?m+=y+x/2:m-=g/2;let C=0;u||(p?C=-Ue:C=Ue);let k=m-a+C,P=wo-t;return o.style.width=`calc(${h}px - ${e})`,o.style.opacity=".8",o.style.transform=`translate(${P}px, calc(${k}px - 2px))`,n?.elem&&(n.elem.style.opacity="",n?.elem===r?p?n.elem.style.marginTop="":n.elem.style.marginBottom="":(n.elem.style.marginBottom="",n.elem.style.marginTop="")),z=0,{isBelow:p,willStayInSamePosition:f}}var vo="draggable-block-menu",Ze="application/x-lexical-drag-block",ee=1/0;function et(e){return e===0?1/0:ee>=0&&ee<e?ee:Math.floor(e/2)}function Mo(e,t){let{transform:o}=t.style;e.setDragImage(t,0,0),setTimeout(()=>{t.style.transform=o})}function tt(e,t){e&&(e.style.opacity="0"),t&&(t.style.opacity="",t.style.marginBottom="",t.style.marginTop="")}function _o(e,t,o){let r=t.parentElement,n=fe(null),d=fe(null),i=fe(null),s=fe(!1),[c,u]=Xe(null),[y,l]=Xe(null),{editorConfig:a}=R(),h=a?.admin?.hideGutter?-44:-8;Ne(()=>{function m(p){let f=p.target;if(!be(f))return;let C=Y(r,p.pageX,p.pageY,f);if(C===-1){u(null);return}if(ce(f,vo))return;let k=j(e),{blockElem:P,foundAtIndex:b,isFoundNodeEmptyParagraph:w}=G({anchorElem:t,cache_threshold:0,editor:e,horizontalOffset:-C,point:new F(p.x,p.y),startIndex:et(k.length),useEdgeAsDefault:!1,verbose:!1});ee=b,!(!P&&!w)&&c!==P&&u(P)}return document?.addEventListener("mousemove",m),()=>{document?.removeEventListener("mousemove",m)}},[r,t,e,c]),Ne(()=>{n.current&&de(c,n.current,t,h)},[t,c,h]),Ne(()=>{function m(f){if(!s.current)return!1;let[C]=qe(f);if(C)return!1;let{pageY:k,target:P}=f;if(!be(P))return!1;let b=Y(r,f.pageX,f.pageY,P,100,50),w=j(e),{blockElem:N,foundAtIndex:v,isFoundNodeEmptyParagraph:O}=G({anchorElem:t,editor:e,fuzzy:!0,horizontalOffset:-b,point:new F(f.x,f.y),startIndex:et(w.length),useEdgeAsDefault:!0,verbose:!0});ee=v;let T=d.current;if(N===null||T===null)return!1;if(c!==N){let{isBelow:D,willStayInSamePosition:q}=Je(a?.admin?.hideGutter?"0px":"3rem",h+(a?.admin?.hideGutter?n?.current?.getBoundingClientRect()?.width??0:-(n?.current?.getBoundingClientRect()?.width??0)),T,N,y,k,t,f,i,O);f.preventDefault(),q||l({boundingBox:N.getBoundingClientRect(),elem:N,isBelow:D})}else y?.elem&&(tt(T,y.elem),l({boundingBox:N.getBoundingClientRect(),elem:N,isBelow:!1}));return!0}function p(f){if(!s.current)return!1;let[C]=qe(f);if(C)return!1;let{dataTransfer:k,pageY:P,target:b}=f,w=k?.getData(Ze)||"";return e.update(()=>{let N=Do(w);if(!N||!be(b))return!1;let v=Y(r,f.pageX,f.pageY,b,100,50),{blockElem:O,isFoundNodeEmptyParagraph:T}=G({anchorElem:t,editor:e,fuzzy:!0,horizontalOffset:-v,point:new F(f.x,f.y),useEdgeAsDefault:!0});if(!O)return!1;let D=Qe(O);if(!D)return!1;if(D===N)return!0;let{height:q,top:he}=V(O),I=P>=he+q/2+window.scrollY;T?(D.insertBefore(N),D.remove()):I?D.insertAfter(N):D.insertBefore(N),c!==null&&u(null),document.querySelectorAll(".lexical-block-highlighter").forEach(L=>{L.remove()});let oe=e.getElementByKey(N.getKey());setTimeout(()=>{let L=oe?.getBoundingClientRect();if(!L)return;let S=document.createElement("div");S.className="lexical-block-highlighter",S.style.backgroundColor="var(--theme-elevation-1000",S.style.transition="opacity 0.5s ease-in-out",S.style.zIndex="1",S.style.pointerEvents="none",S.style.boxSizing="border-box",S.style.borderRadius="4px",S.style.position="absolute",document.body.appendChild(S),S.style.opacity="0.1",S.style.height=`${L.height+8}px`,S.style.width=`${L.width+8}px`,S.style.top=`${L.top+window.scrollY-4}px`,S.style.left=`${L.left-4}px`,setTimeout(()=>{S.style.opacity="0",setTimeout(()=>{S.remove()},500)},1e3)},120)}),!0}return document.addEventListener("dragover",m),document.addEventListener("drop",p),()=>{document.removeEventListener("dragover",m),document.removeEventListener("drop",p)}},[r,h,t,e,y,c,a?.admin?.hideGutter]);function x(m){let p=m.dataTransfer;if(!p||!c)return;Mo(p,c);let f="";e.update(()=>{let C=Qe(c);C&&(f=C.getKey())}),s.current=!0,p.setData(Ze,f)}function g(){s.current=!1,y?.elem&&tt(d.current,y?.elem)}return Lo(ko(ot.Fragment,{children:[me("button",{"aria-label":"Drag to move",className:"icon draggable-block-menu",draggable:!0,onDragEnd:g,onDragStart:x,ref:n,type:"button",children:me("div",{className:o?"icon":""})}),me("div",{className:"draggable-block-target-line",ref:d}),me("div",{className:"debug-highlight",ref:i})]}),t)}function nt(e){let{anchorElem:t}=e,o=t===void 0?document.body:t,[r]=To();return _o(r,o,r._editable)}import{c as Ao}from"react/compiler-runtime";import{jsx as Se}from"react/jsx-runtime";import{useLexicalComposerContext as Bo}from"@lexical/react/LexicalComposerContext";import{$createParagraphNode as Oo,$getRoot as Io}from"lexical";import"react";var rt="insert-paragraph-at-end",it=()=>{let e=Ao(2),[t]=Bo(),{editorConfig:o}=R();if(o?.admin?.hideInsertParagraphAtEnd)return null;let r;return e[0]!==t?(r=Se("div",{"aria-label":"Insert Paragraph",className:rt,onClick:()=>{t.update(Fo)},role:"button",tabIndex:0,children:Se("div",{className:`${rt}-inside`,children:Se("span",{children:"+"})})}),e[0]=t,e[1]=r):r=e[1],r};function Fo(){let e=Oo();Io().append(e),e.select()}import{c as $o}from"react/compiler-runtime";import{useLexicalComposerContext as Ko}from"@lexical/react/LexicalComposerContext";import*as st from"react";var lt=()=>{let e=$o(4),{editorConfig:t}=R(),[o]=Ko(),r,n;return e[0]!==o||e[1]!==t.features.markdownTransformers?(r=()=>ke(o,t.features.markdownTransformers??[]),n=[o,t.features.markdownTransformers],e[0]=o,e[1]=t.features.markdownTransformers,e[2]=r,e[3]=n):(r=e[2],n=e[3]),st.useEffect(r,n),null};import{useLexicalComposerContext as Ho}from"@lexical/react/LexicalComposerContext";import{$getSelection as jo,$isRangeSelection as zo,RootNode as Wo}from"lexical";import{useEffect as Yo}from"react";function at(){let[e]=Ho();return Yo(()=>e.registerNodeTransform(Wo,t=>{let o=jo();if(zo(o)){let r=o.anchor.getNode(),n=o.focus.getNode();(!r.isAttached()||!n.isAttached())&&(t.selectEnd(),console.warn("updateEditor: selection has been moved to the end of the editor because the previously selected nodes have been removed and selection wasn't moved to another node. Ensure selection changes after removing/replacing a selected node."))}return!1}),[e]),null}import{useLexicalComposerContext as Vo}from"@lexical/react/LexicalComposerContext";import{$getSelection as Go,COMMAND_PRIORITY_LOW as Uo,SELECT_ALL_COMMAND as Jo}from"lexical";import{useEffect as qo}from"react";function ct(){let[e]=Vo();return qo(()=>e.registerCommand(Jo,()=>{if(Go())return!1;let o=document.activeElement;return o instanceof HTMLInputElement&&o.select(),!0},Uo),[e]),null}import{jsx as U,jsxs as ut}from"react/jsx-runtime";import{useLexicalComposerContext as Xo}from"@lexical/react/LexicalComposerContext.js";import{useTranslation as mt}from"@payloadcms/ui";import{useCallback as Zo,useMemo as en,useState as tn}from"react";import"react";import*as ft from"react-dom";import{c as Qo}from"react/compiler-runtime";import"react";function dt(e,t){let o=Qo(4),{maxLength:r,minLength:n}=t,d=r===void 0?75:r,i=n===void 0?1:n,s;return o[0]!==d||o[1]!==i||o[2]!==e?(s=c=>{let{query:u}=c,y="[^"+e+De+"\\s]",a=new RegExp("(^|\\s|\\()(["+e+"]((?:"+y+"){0,"+d+"}))$").exec(u);if(a!==null){let h=a[1],x=a[3];if(x.length>=i)return{leadOffset:a.index+h.length,matchingString:x,replaceableString:a[2]}}return null},o[0]=d,o[1]=i,o[2]=e,o[3]=s):s=o[3],s}var A="slash-menu-popup";function on({isSelected:e,item:t,onClick:o,onMouseEnter:r,ref:n}){let{fieldProps:{featureClientSchemaMap:d,schemaPath:i}}=R(),{i18n:s}=mt(),c=`${A}__item ${A}__item-${t.key}`;e&&(c+=` ${A}__item--selected`);let u=t.key;return t.label&&(u=typeof t.label=="function"?t.label({featureClientSchemaMap:d,i18n:s,schemaPath:i}):t.label),u.length>25&&(u=u.substring(0,25)+"..."),ut("button",{"aria-selected":e,className:c,id:A+"__item-"+t.key,onClick:o,onMouseEnter:r,ref:n,role:"option",tabIndex:-1,type:"button",children:[t?.Icon&&U(t.Icon,{}),U("span",{className:`${A}__item-text`,children:u})]},t.key)}function pt({anchorElem:e=document.body}){let[t]=Xo(),[o,r]=tn(null),{editorConfig:n}=R(),{i18n:d}=mt(),{fieldProps:{featureClientSchemaMap:i,schemaPath:s}}=R(),c=dt("/",{minLength:0}),u=Zo(()=>{let l=[];for(let a of n.features.slashMenu.dynamicGroups)if(o){let h=a({editor:t,queryString:o});l=l.concat(h)}return l},[t,o,n?.features]),y=en(()=>{let l=[];for(let a of n?.features.slashMenu.groups??[])l.push(a);if(o){l=l.map(h=>{let x=h.items.filter(g=>{let m=g.key;return g.label&&(m=typeof g.label=="function"?g.label({featureClientSchemaMap:i,i18n:d,schemaPath:s}):g.label),new RegExp(o,"gi").exec(m)?!0:g.keywords!=null?g.keywords.some(p=>new RegExp(o,"gi").exec(p)):!1});return x.length?{...h,items:x}:null}),l=l.filter(h=>h!=null);let a=u();for(let h of a){let x=l.find(g=>g.key===h.key);x?l=l.filter(g=>g.key!==h.key):x={...h,items:[]},x?.items?.length&&(x.items=x.items.concat(x.items)),l.push(x)}}return l},[o,n?.features.slashMenu.groups,u,i,d,s]);return U(ve,{anchorElem:e,groups:y,menuRenderFn:(l,{selectedItemKey:a,selectItemAndCleanUp:h,setSelectedItemKey:x})=>l.current&&y.length?ft.createPortal(U("div",{className:A,children:y.map(g=>{let m=g.key;return g.label&&i&&(m=typeof g.label=="function"?g.label({featureClientSchemaMap:i,i18n:d,schemaPath:s}):g.label),ut("div",{className:`${A}__group ${A}__group-${g.key}`,children:[U("div",{className:`${A}__group-title`,children:m}),g.items.map((p,f)=>U(on,{index:f,isSelected:a===p.key,item:p,onClick:()=>{x(p.key),h(p)},onMouseEnter:()=>{x(p.key)},ref:C=>{p.ref={current:C}}},p.key))]},g.key)})}),l.current):null,onQueryChange:r,triggerFn:c})}import{c as nn}from"react/compiler-runtime";import{useLexicalComposerContext as rn}from"@lexical/react/LexicalComposerContext";import{TEXT_TYPE_TO_FORMAT as sn,TextNode as ln}from"lexical";import{useEffect as an}from"react";function gt(e){let t=nn(6),{features:o}=e,[r]=rn(),n;t[0]!==r||t[1]!==o.enabledFormats?(n=()=>{let i=cn(o.enabledFormats);if(i.length!==0)return r.registerNodeTransform(ln,s=>{i.forEach(c=>{s.hasFormat(c)&&s.toggleFormat(c)})})},t[0]=r,t[1]=o.enabledFormats,t[2]=n):n=t[2];let d;return t[3]!==r||t[4]!==o?(d=[r,o],t[3]=r,t[4]=o,t[5]=d):d=t[5],an(n,d),null}function cn(e){let t=Object.keys(sn),o=new Set(e);return t.filter(r=>!o.has(r))}import{c as dn}from"react/compiler-runtime";import{jsx as ht}from"react/jsx-runtime";import{useLexicalComposerContext as un}from"@lexical/react/LexicalComposerContext";import{ContentEditable as mn}from"@lexical/react/LexicalContentEditable.js";import{useTranslation as fn}from"@payloadcms/ui";import"react";function yt(e){let t=dn(5),{className:o,editorConfig:r}=e,{t:n}=fn(),[,d]=un(),{getTheme:i}=d,s;if(t[0]!==o||t[1]!==r?.admin?.placeholder||t[2]!==i||t[3]!==n){let c=i();s=ht(mn,{"aria-placeholder":n("lexical:general:placeholder"),className:o??"ContentEditable__root",placeholder:ht("p",{className:c?.placeholder,children:r?.admin?.placeholder??n("lexical:general:placeholder")})}),t[0]=o,t[1]=r?.admin?.placeholder,t[2]=i,t[3]=n,t[4]=s}else s=t[4];return s}var Et=e=>{let t=pn(12),{editorConfig:o,editorContainerRef:r,isSmallWidthViewport:n,onChange:d}=e,i=R(),[s]=gn(),c=Cn(),[u,y]=Pn(null),l;t[0]===Symbol.for("react.memo_cache_sentinel")?(l=m=>{m!==null&&y(m)},t[0]=l):l=t[0];let a=l,h,x;t[1]!==s||t[2]!==i?(h=()=>{if(!i?.uuid){console.error("Lexical Editor must be used within an EditorConfigProvider");return}i?.parentEditor?.uuid&&i.parentEditor?.registerChild(i.uuid,i);let m=()=>{i.focusEditor(i)},p=()=>{i.blurEditor(i)},f=s.registerCommand(Nn,()=>(m(),!0),xt),C=s.registerCommand(bn,()=>(p(),!0),xt);return()=>{f(),C(),i.parentEditor?.unregisterChild?.(i.uuid)}},x=[s,i],t[1]=s,t[2]=i,t[3]=h,t[4]=x):(h=t[3],x=t[4]),Sn(h,x);let g;return t[5]!==o||t[6]!==r||t[7]!==u||t[8]!==c||t[9]!==n||t[10]!==d?(g=te(J.Fragment,{children:[o.features.plugins?.map(Rn),te("div",{className:"editor-container",ref:r,children:[o.features.plugins?.map(wn),E(En,{contentEditable:E("div",{className:"editor-scroller",children:E("div",{className:"editor",ref:a,children:E(yt,{editorConfig:o})})}),ErrorBoundary:hn}),E(at,{}),c&&E(it,{}),E(Ke,{}),E(Ie,{}),E(gt,{features:o.features}),E(ct,{}),c&&E(xn,{ignoreSelectionChange:!0,onChange:(m,p,f)=>{(!f.has("focus")||f.size>1)&&d?.(m,p,f)}}),u&&te(J.Fragment,{children:[!n&&c&&te(J.Fragment,{children:[o.admin?.hideDraggableBlockElement?null:E(nt,{anchorElem:u}),o.admin?.hideAddBlockButton?null:E(Ge,{anchorElem:u})]}),o.features.plugins?.map(m=>{if(m.position==="floatingAnchorElem"&&!(m.desktopOnly===!0&&n))return E(K,{anchorElem:u,clientProps:m.clientProps,plugin:m},m.key)}),c&&E(J.Fragment,{children:E(pt,{anchorElem:u})})]}),c&&te(J.Fragment,{children:[E(yn,{}),o?.features?.markdownTransformers?.length>0&&E(lt,{})]}),o.features.plugins?.map(kn),o.features.plugins?.map(Tn)]}),o.features.plugins?.map(Dn)]}),t[5]=o,t[6]=r,t[7]=u,t[8]=c,t[9]=n,t[10]=d,t[11]=g):g=t[11],g};function Rn(e){if(e.position==="aboveContainer")return E(K,{clientProps:e.clientProps,plugin:e},e.key)}function wn(e){if(e.position==="top")return E(K,{clientProps:e.clientProps,plugin:e},e.key)}function kn(e){if(e.position==="normal")return E(K,{clientProps:e.clientProps,plugin:e},e.key)}function Tn(e){if(e.position==="bottom")return E(K,{clientProps:e.clientProps,plugin:e},e.key)}function Dn(e){if(e.position==="belowContainer")return E(K,{clientProps:e.clientProps,plugin:e},e.key)}var bt=({children:e,providers:t})=>{if(!t?.length)return e;let o=t[0];return t.length>1?$(o,{children:$(bt,{providers:t.slice(1),children:e})}):$(o,{children:e})},Nt=e=>{let{composerKey:t,editorConfig:o,fieldProps:r,isSmallWidthViewport:n,onChange:d,readOnly:i,value:s}=e,c=R(),u=vn(),y=Ct.useRef(null),l=Mn(()=>{if(s&&typeof s!="object")throw new Error("The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: "+JSON.stringify(s));if(s&&Array.isArray(s)&&!("root"in s))throw new Error("You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/lexical/migration#migration-via-migration-script-recommended");if(s&&"jsonContent"in s)throw new Error("You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/lexical/migration#migrating-from-payload-plugin-lexical");return{editable:i!==!0,editorState:s!=null?JSON.stringify(s):void 0,namespace:o.lexical.namespace,nodes:_e({editorConfig:o}),onError:a=>{throw a},theme:o.lexical.theme}},[o]);return l?$(Ln,{initialConfig:l,children:$(we,{editorConfig:o,editorContainerRef:y,fieldProps:r,parentContext:c?.editDepth===u?c:void 0,children:$(bt,{providers:o.features.providers,children:$(Et,{editorConfig:o,editorContainerRef:y,isSmallWidthViewport:n,onChange:d})})})},t+l.editable):$("p",{children:"Loading..."})};var pe="rich-text-lexical",Wn=e=>{let{editorConfig:t,field:o,field:{admin:{className:r,description:n,readOnly:d}={},label:i,localized:s,required:c},path:u,readOnly:y,validate:l}=e,a=y||d,h=In(),x=Rt((M,Q)=>typeof l=="function"?l(M,{...Q,required:c}):!0,[l,c]),{customComponents:{AfterInput:g,BeforeInput:m,Description:p,Error:f,Label:C}={},disabled:k,initialValue:P,path:b,setValue:w,showError:N,value:v}=$n({potentiallyStalePath:u,validate:x}),O=a||k,[T,D]=kt(!1),[q,he]=kt(),ye=Pt.useRef(P),I=Pt.useRef(v);wt(()=>{let M=()=>{let Q=window.matchMedia("(max-width: 768px)").matches;Q!==T&&D(Q)};return M(),window.addEventListener("resize",M),()=>{window.removeEventListener("resize",M)}},[T]);let Pe=[pe,"field-type",r,N&&"error",O&&`${pe}--read-only`,t?.admin?.hideGutter!==!0&&!T?`${pe}--show-gutter`:null].filter(Boolean).join(" "),oe=`${b}.${h}`,L=Te(),S=Rt(M=>{L(()=>{let Re=M.toJSON();I.current=Re,w(Re)})},[w,L]),Tt=jn(()=>Kn(o),[o]),Dt=Fn(M=>{I.current!==v&&!Hn(I.current!=null?JSON.parse(JSON.stringify(I.current)):I.current,v)&&(ye.current=M,I.current=v,he(new Date))});return wt(()=>{Object.is(P,ye.current)||Dt(P)},[P]),ge("div",{className:Pe,style:Tt,children:[B(St,{CustomComponent:f,Fallback:B(Bn,{path:b,showError:N})}),C||B(On,{label:i,localized:s,path:b,required:c}),ge("div",{className:`${pe}__wrap`,children:[ge(zn,{fallbackRender:Yn,onReset:()=>{},children:[m,B(_n,{drawerSlugPrefix:b,children:B(Nt,{composerKey:oe,editorConfig:t,fieldProps:e,isSmallWidthViewport:T,onChange:S,readOnly:O,value:v},JSON.stringify({path:b,rerenderProviderKey:q}))}),g]}),B(St,{CustomComponent:p,Fallback:B(An,{description:n,path:b})})]})]},oe)};function Yn({error:e}){return ge("div",{className:"errorBoundary",role:"alert",children:[B("p",{children:"Something went wrong:"}),B("pre",{style:{color:"red"},children:e.message})]})}var Fs=Wn;export{Fs as RichText};
|
|
2
|
-
//# sourceMappingURL=Field-HJGV32KA.js.map
|