@payloadcms/richtext-lexical 3.41.0-canary.2 → 3.41.0-internal.72eae46

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,7 +2,7 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import React, { useCallback, useEffect } from 'react';
5
+ import React, { useCallback, useDeferredValue, useEffect, useMemo } from 'react';
6
6
  const baseClass = 'toolbar-popup__dropdown';
7
7
  import { mergeRegister } from '@lexical/utils';
8
8
  import { useTranslation } from '@payloadcms/ui';
@@ -100,197 +100,103 @@ const ToolbarItem = t0 => {
100
100
  }
101
101
  return t2;
102
102
  };
103
- export const ToolbarDropdown = t0 => {
104
- const $ = _c(36);
105
- const {
106
- anchorElem,
107
- classNames,
108
- editor,
109
- group,
110
- Icon,
111
- itemsContainerClassNames,
112
- label,
113
- maxActiveItems,
114
- onActiveChange
115
- } = t0;
116
- let t1;
117
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
118
- t1 = [];
119
- $[0] = t1;
120
- } else {
121
- t1 = $[0];
122
- }
123
- const [activeItemKeys, setActiveItemKeys] = React.useState(t1);
124
- let t2;
125
- if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
126
- t2 = [];
127
- $[1] = t2;
128
- } else {
129
- t2 = $[1];
130
- }
131
- const [enabledItemKeys, setEnabledItemKeys] = React.useState(t2);
132
- const [enabledGroup, setEnabledGroup] = React.useState(true);
103
+ const MemoToolbarItem = /*#__PURE__*/React.memo(ToolbarItem);
104
+ export const ToolbarDropdown = ({
105
+ anchorElem,
106
+ classNames,
107
+ editor,
108
+ group,
109
+ Icon,
110
+ itemsContainerClassNames,
111
+ label,
112
+ maxActiveItems,
113
+ onActiveChange
114
+ }) => {
115
+ const [toolbarState, setToolbarState] = React.useState({
116
+ activeItemKeys: [],
117
+ enabledGroup: true,
118
+ enabledItemKeys: []
119
+ });
120
+ const deferredToolbarState = useDeferredValue(toolbarState);
133
121
  const editorConfigContext = useEditorConfigContext();
134
122
  const {
135
123
  items,
136
124
  key: groupKey
137
125
  } = group;
138
- let t3;
139
- if ($[2] !== editor || $[3] !== editorConfigContext || $[4] !== group || $[5] !== items || $[6] !== maxActiveItems || $[7] !== onActiveChange) {
140
- t3 = () => {
141
- editor.getEditorState().read(() => {
142
- const selection = $getSelection();
143
- if (!selection) {
144
- return;
145
- }
146
- const _activeItemKeys = [];
147
- const _activeItems = [];
148
- const _enabledItemKeys = [];
149
- for (const item of items) {
150
- if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {
151
- const isActive = item.isActive({
152
- editor,
153
- editorConfigContext,
154
- selection
155
- });
156
- if (isActive) {
157
- _activeItemKeys.push(item.key);
158
- _activeItems.push(item);
159
- }
160
- }
161
- if (item.isEnabled) {
162
- const isEnabled = item.isEnabled({
163
- editor,
164
- editorConfigContext,
165
- selection
166
- });
167
- if (isEnabled) {
168
- _enabledItemKeys.push(item.key);
169
- }
170
- } else {
171
- _enabledItemKeys.push(item.key);
126
+ const updateStates = useCallback(() => {
127
+ editor.getEditorState().read(() => {
128
+ const selection = $getSelection();
129
+ if (!selection) {
130
+ return;
131
+ }
132
+ const _activeItemKeys = [];
133
+ const _activeItems = [];
134
+ const _enabledItemKeys = [];
135
+ for (const item of items) {
136
+ if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {
137
+ const isActive = item.isActive({
138
+ editor,
139
+ editorConfigContext,
140
+ selection
141
+ });
142
+ if (isActive) {
143
+ _activeItemKeys.push(item.key);
144
+ _activeItems.push(item);
172
145
  }
173
146
  }
174
- if (group.isEnabled) {
175
- setEnabledGroup(group.isEnabled({
147
+ if (item.isEnabled) {
148
+ const isEnabled = item.isEnabled({
176
149
  editor,
177
150
  editorConfigContext,
178
151
  selection
179
- }));
180
- }
181
- setActiveItemKeys(_activeItemKeys);
182
- setEnabledItemKeys(_enabledItemKeys);
183
- if (onActiveChange) {
184
- onActiveChange({
185
- activeItems: _activeItems
186
152
  });
153
+ if (isEnabled) {
154
+ _enabledItemKeys.push(item.key);
155
+ }
156
+ } else {
157
+ _enabledItemKeys.push(item.key);
187
158
  }
159
+ }
160
+ setToolbarState({
161
+ activeItemKeys: _activeItemKeys,
162
+ enabledGroup: group.isEnabled ? group.isEnabled({
163
+ editor,
164
+ editorConfigContext,
165
+ selection
166
+ }) : true,
167
+ enabledItemKeys: _enabledItemKeys
168
+ });
169
+ if (onActiveChange) {
170
+ onActiveChange({
171
+ activeItems: _activeItems
172
+ });
173
+ }
174
+ });
175
+ }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange]);
176
+ useEffect(() => {
177
+ return mergeRegister(editor.registerUpdateListener(() => {
178
+ requestIdleCallback(() => {
179
+ updateStates();
188
180
  });
189
- };
190
- $[2] = editor;
191
- $[3] = editorConfigContext;
192
- $[4] = group;
193
- $[5] = items;
194
- $[6] = maxActiveItems;
195
- $[7] = onActiveChange;
196
- $[8] = t3;
197
- } else {
198
- t3 = $[8];
199
- }
200
- const updateStates = t3;
201
- let t4;
202
- let t5;
203
- if ($[9] !== updateStates) {
204
- t4 = () => {
205
- updateStates();
206
- };
207
- t5 = [updateStates];
208
- $[9] = updateStates;
209
- $[10] = t4;
210
- $[11] = t5;
211
- } else {
212
- t4 = $[10];
213
- t5 = $[11];
214
- }
215
- useEffect(t4, t5);
216
- let t6;
217
- let t7;
218
- if ($[12] !== editor || $[13] !== updateStates) {
219
- t6 = () => mergeRegister(editor.registerUpdateListener(() => {
220
- updateStates();
221
181
  }));
222
- t7 = [editor, updateStates];
223
- $[12] = editor;
224
- $[13] = updateStates;
225
- $[14] = t6;
226
- $[15] = t7;
227
- } else {
228
- t6 = $[14];
229
- t7 = $[15];
230
- }
231
- useEffect(t6, t7);
232
- const t8 = `${groupKey} dropdown`;
233
- const t9 = `${baseClass}-${groupKey}`;
234
- let t10;
235
- if ($[16] !== classNames) {
236
- t10 = classNames || [];
237
- $[16] = classNames;
238
- $[17] = t10;
239
- } else {
240
- t10 = $[17];
241
- }
242
- let t11;
243
- if ($[18] !== t10 || $[19] !== t9) {
244
- t11 = [baseClass, t9, ...t10].filter(Boolean);
245
- $[18] = t10;
246
- $[19] = t9;
247
- $[20] = t11;
248
- } else {
249
- t11 = $[20];
250
- }
251
- const t12 = t11.join(" ");
252
- const t13 = !enabledGroup;
253
- let t14;
254
- if ($[21] !== itemsContainerClassNames) {
255
- t14 = itemsContainerClassNames || [];
256
- $[21] = itemsContainerClassNames;
257
- $[22] = t14;
258
- } else {
259
- t14 = $[22];
260
- }
261
- let t15;
262
- if ($[23] !== Icon || $[24] !== activeItemKeys || $[25] !== anchorElem || $[26] !== editor || $[27] !== enabledItemKeys || $[28] !== groupKey || $[29] !== items || $[30] !== label || $[31] !== t12 || $[32] !== t13 || $[33] !== t14 || $[34] !== t8) {
263
- t15 = _jsx(DropDown, {
264
- buttonAriaLabel: t8,
265
- buttonClassName: t12,
266
- disabled: t13,
267
- Icon,
268
- itemsContainerClassNames: [`${baseClass}-items`, ...t14],
269
- label,
270
- children: items.length ? items.map(item_0 => _jsx(ToolbarItem, {
271
- active: activeItemKeys.includes(item_0.key),
272
- anchorElem,
273
- editor,
274
- enabled: enabledItemKeys.includes(item_0.key),
275
- item: item_0
276
- }, item_0.key)) : null
277
- }, groupKey);
278
- $[23] = Icon;
279
- $[24] = activeItemKeys;
280
- $[25] = anchorElem;
281
- $[26] = editor;
282
- $[27] = enabledItemKeys;
283
- $[28] = groupKey;
284
- $[29] = items;
285
- $[30] = label;
286
- $[31] = t12;
287
- $[32] = t13;
288
- $[33] = t14;
289
- $[34] = t8;
290
- $[35] = t15;
291
- } else {
292
- t15 = $[35];
293
- }
294
- return t15;
182
+ }, [editor, updateStates]);
183
+ const renderedItems = useMemo(() => {
184
+ return items?.length ? items.map(item_0 => /*#__PURE__*/_jsx(MemoToolbarItem, {
185
+ active: deferredToolbarState.activeItemKeys.includes(item_0.key),
186
+ anchorElem: anchorElem,
187
+ editor: editor,
188
+ enabled: deferredToolbarState.enabledItemKeys.includes(item_0.key),
189
+ item: item_0
190
+ }, item_0.key)) : null;
191
+ }, [items, deferredToolbarState, anchorElem, editor]);
192
+ return /*#__PURE__*/_jsx(DropDown, {
193
+ buttonAriaLabel: `${groupKey} dropdown`,
194
+ buttonClassName: [baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])].filter(Boolean).join(' '),
195
+ disabled: !deferredToolbarState.enabledGroup,
196
+ Icon: Icon,
197
+ itemsContainerClassNames: [`${baseClass}-items`, ...(itemsContainerClassNames || [])],
198
+ label: label,
199
+ children: renderedItems
200
+ }, groupKey);
295
201
  };
296
202
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","baseClass","mergeRegister","useTranslation","$getSelection","useEditorConfigContext","DropDown","DropDownItem","ToolbarItem","t0","$","active","anchorElem","editor","enabled","item","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","Component","t2","_jsx","key","title","croppedTitle","label","length","substring","Icon","ChildComponent","undefined","tooltip","children","className","ToolbarDropdown","classNames","group","itemsContainerClassNames","maxActiveItems","onActiveChange","Symbol","for","activeItemKeys","setActiveItemKeys","useState","enabledItemKeys","setEnabledItemKeys","enabledGroup","setEnabledGroup","editorConfigContext","items","groupKey","t3","getEditorState","read","selection","_activeItemKeys","_activeItems","_enabledItemKeys","isActive","push","isEnabled","activeItems","updateStates","t4","t5","t6","t7","registerUpdateListener","t8","t9","t10","t11","filter","Boolean","t12","join","t13","t14","t15","buttonAriaLabel","buttonClassName","disabled","map","item_0","includes"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"sourcesContent":["'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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useDeferredValue","useEffect","useMemo","baseClass","mergeRegister","useTranslation","$getSelection","useEditorConfigContext","DropDown","DropDownItem","ToolbarItem","t0","$","active","anchorElem","editor","enabled","item","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","Component","t2","_jsx","key","title","croppedTitle","label","length","substring","Icon","ChildComponent","undefined","tooltip","children","className","MemoToolbarItem","memo","ToolbarDropdown","classNames","group","itemsContainerClassNames","maxActiveItems","onActiveChange","toolbarState","setToolbarState","useState","activeItemKeys","enabledGroup","enabledItemKeys","deferredToolbarState","editorConfigContext","items","groupKey","updateStates","getEditorState","read","selection","_activeItemKeys","_activeItems","_enabledItemKeys","isActive","push","isEnabled","activeItems","registerUpdateListener","requestIdleCallback","renderedItems","map","includes","buttonAriaLabel","buttonClassName","filter","Boolean","join","disabled"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useDeferredValue, useEffect, useMemo } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { useTranslation } from '@payloadcms/ui'\nimport { $getSelection } from 'lexical'\n\nimport type { ToolbarDropdownGroup, ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { 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\nconst MemoToolbarItem = React.memo(ToolbarItem)\n\nexport const ToolbarDropdown = ({\n anchorElem,\n classNames,\n editor,\n group,\n Icon,\n itemsContainerClassNames,\n label,\n maxActiveItems,\n onActiveChange,\n}: {\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n group: ToolbarDropdownGroup\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n /**\n * Maximum number of active items allowed. This is a performance optimization to prevent\n * unnecessary item active checks when the maximum number of active items is reached.\n */\n maxActiveItems?: number\n onActiveChange?: ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => void\n}) => {\n const [toolbarState, setToolbarState] = React.useState<{\n activeItemKeys: string[]\n enabledGroup: boolean\n enabledItemKeys: string[]\n }>({\n activeItemKeys: [],\n enabledGroup: true,\n enabledItemKeys: [],\n })\n const deferredToolbarState = useDeferredValue(toolbarState)\n\n const editorConfigContext = useEditorConfigContext()\n const { items, key: groupKey } = group\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const _activeItemKeys: string[] = []\n const _activeItems: ToolbarGroupItem[] = []\n const _enabledItemKeys: string[] = []\n\n for (const item of items) {\n if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (isActive) {\n _activeItemKeys.push(item.key)\n _activeItems.push(item)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (isEnabled) {\n _enabledItemKeys.push(item.key)\n }\n } else {\n _enabledItemKeys.push(item.key)\n }\n }\n\n setToolbarState({\n activeItemKeys: _activeItemKeys,\n enabledGroup: group.isEnabled\n ? group.isEnabled({ editor, editorConfigContext, selection })\n : true,\n enabledItemKeys: _enabledItemKeys,\n })\n\n if (onActiveChange) {\n onActiveChange({ activeItems: _activeItems })\n }\n })\n }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n requestIdleCallback(() => {\n updateStates()\n })\n }),\n )\n }, [editor, updateStates])\n\n const renderedItems = useMemo(() => {\n return items?.length\n ? items.map((item) => (\n <MemoToolbarItem\n active={deferredToolbarState.activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={deferredToolbarState.enabledItemKeys.includes(item.key)}\n item={item}\n key={item.key}\n />\n ))\n : null\n }, [items, deferredToolbarState, anchorElem, editor])\n\n return (\n <DropDown\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n disabled={!deferredToolbarState.enabledGroup}\n Icon={Icon}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {renderedItems}\n </DropDown>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,WAAW,EAAEC,gBAAgB,EAAEC,SAAS,EAAEC,OAAO,QAAQ;AAEzE,MAAMC,SAAA,GAAY;AAIlB,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAI9B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,QAAQ,EAAEC,YAAY,QAAQ;AAGvC,MAAMC,WAAA,GAAcC,EAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAAC;IAAAgB,MAAA;IAAAC,UAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC;EAAA,IAAAN,EAYpB;EACC;IAAAO;EAAA,IAAiBb,cAAA;EACjB;IAAAc,UAAA,EAAAC;EAAA,IAEIb,sBAAA;EADU;IAAAc,sBAAA;IAAAC;EAAA,IAAAF,EAAsC;EAAA,IAGhDH,IAAA,CAAAM,SAAA;IAAA,IAAAC,EAAA;IAAA,IAAAZ,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAI,OAAA,IAAAJ,CAAA,QAAAK,IAAA;MAEAO,EAAA,GAAAP,IAAA,EAAAM,SAAA,IACEE,IAAA,CAACR,IAAA,CAAAM,SAAA;QAAAV,MAAA;QAAAC,UAAA;QAAAC,MAAA;QAAAC,OAAA;QAAAC;MAAA,GAMMA,IAAA,CAAAS,GAAQ;MAAAd,CAAA,MAAAC,MAAA;MAAAD,CAAA,MAAAE,UAAA;MAAAF,CAAA,MAAAG,MAAA;MAAAH,CAAA,MAAAI,OAAA;MAAAJ,CAAA,MAAAK,IAAA;MAAAL,CAAA,MAAAY,EAAA;IAAA;MAAAA,EAAA,GAAAZ,CAAA;IAAA;IAAA,OAPjBY,EAOiB;EAAA;EAMrB,IAAAG,KAAA,GAAYV,IAAA,CAAAS,GAAA;EACZ,IAAAE,YAAA;EAA2B,IACvBX,IAAA,CAAAY,KAAA;IAAA,IAAAL,EAAA;IAAA,IAAAZ,CAAA,QAAAS,sBAAA,IAAAT,CAAA,QAAAM,IAAA,IAAAN,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAU,UAAA;MAEAE,EAAA,UAAOP,IAAA,CAAAY,KAAA,KAAe,aAClBZ,IAAA,CAAAY,KAAA;QAAAR,sBAAA;QAAAH,IAAA;QAAAI;MAAA,CAAsD,IACtDL,IAAA,CAAAY,KAAU;MAAAjB,CAAA,MAAAS,sBAAA;MAAAT,CAAA,MAAAM,IAAA;MAAAN,CAAA,MAAAK,IAAA;MAAAL,CAAA,MAAAU,UAAA;MAAAV,CAAA,OAAAY,EAAA;IAAA;MAAAA,EAAA,GAAAZ,CAAA;IAAA;IAHhBe,KAAA,CAAAA,CAAA,CACEA,EAEc;EAHhB;EAAA,IAMEA,KAAA,CAAAG,MAAA,KAAe;IACjBF,YAAA,CAAAA,CAAA,CAAeD,KAAA,CAAAI,SAAA,MAAmB,IAAM;EAAxC;IAEAH,YAAA,CAAAA,CAAA,CAAeD,KAAA;EAAf;EAAA,IAAAH,EAAA;EAAA,IAAAZ,CAAA,SAAAC,MAAA,IAAAD,CAAA,SAAAgB,YAAA,IAAAhB,CAAA,SAAAG,MAAA,IAAAH,CAAA,SAAAI,OAAA,IAAAJ,CAAA,SAAAK,IAAA,IAAAL,CAAA,SAAAe,KAAA;IAIAH,EAAA,GAAAC,IAAA,CAAAhB,YAAA;MAAAI,MAAA;MAAAE,MAAA;MAAAC,OAAA;MAAAgB,IAAA,EAIQf,IAAA,EAAAgB,cAAA,GAAuBR,IAAA,CAACR,IAAA,CAAAgB,cAAA,IAAmB,IAAAC,SAAM;MAAAjB,IAAA;MAAAkB,OAAA,EAG9CR,KAAA;MAAAS,QAAA,EAETX,IAAA,CAAC;QAAAY,SAAA,EAAe;QAAAD,QAAA,EAAQR;MAAA,C;OAHnBX,IAAA,CAAAS,GAAQ;IAAAd,CAAA,OAAAC,MAAA;IAAAD,CAAA,OAAAgB,YAAA;IAAAhB,CAAA,OAAAG,MAAA;IAAAH,CAAA,OAAAI,OAAA;IAAAJ,CAAA,OAAAK,IAAA;IAAAL,CAAA,OAAAe,KAAA;IAAAf,CAAA,OAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,OANfY,EAMe;AAAA,CAMnB;AAEA,MAAMc,eAAA,gBAAkBxC,KAAA,CAAMyC,IAAI,CAAC7B,WAAA;AAEnC,OAAO,MAAM8B,eAAA,GAAkBA,CAAC;EAC9B1B,UAAU;EACV2B,UAAU;EACV1B,MAAM;EACN2B,KAAK;EACLV,IAAI;EACJW,wBAAwB;EACxBd,KAAK;EACLe,cAAc;EACdC;AAAc,CAef;EACC,MAAM,CAACC,YAAA,EAAcC,eAAA,CAAgB,GAAGjD,KAAA,CAAMkD,QAAQ,CAInD;IACDC,cAAA,EAAgB,EAAE;IAClBC,YAAA,EAAc;IACdC,eAAA,EAAiB;EACnB;EACA,MAAMC,oBAAA,GAAuBpD,gBAAA,CAAiB8C,YAAA;EAE9C,MAAMO,mBAAA,GAAsB9C,sBAAA;EAC5B,MAAM;IAAE+C,KAAK;IAAE5B,GAAA,EAAK6B;EAAQ,CAAE,GAAGb,KAAA;EAEjC,MAAMc,YAAA,GAAezD,WAAA,CAAY;IAC/BgB,MAAA,CAAO0C,cAAc,GAAGC,IAAI,CAAC;MAC3B,MAAMC,SAAA,GAAYrD,aAAA;MAClB,IAAI,CAACqD,SAAA,EAAW;QACd;MACF;MAEA,MAAMC,eAAA,GAA4B,EAAE;MACpC,MAAMC,YAAA,GAAmC,EAAE;MAC3C,MAAMC,gBAAA,GAA6B,EAAE;MAErC,KAAK,MAAM7C,IAAA,IAAQqC,KAAA,EAAO;QACxB,IAAIrC,IAAA,CAAK8C,QAAQ,KAAK,CAACnB,cAAA,IAAkBgB,eAAA,CAAgB9B,MAAM,GAAGc,cAAa,GAAI;UACjF,MAAMmB,QAAA,GAAW9C,IAAA,CAAK8C,QAAQ,CAAC;YAAEhD,MAAA;YAAQsC,mBAAA;YAAqBM;UAAU;UACxE,IAAII,QAAA,EAAU;YACZH,eAAA,CAAgBI,IAAI,CAAC/C,IAAA,CAAKS,GAAG;YAC7BmC,YAAA,CAAaG,IAAI,CAAC/C,IAAA;UACpB;QACF;QACA,IAAIA,IAAA,CAAKgD,SAAS,EAAE;UAClB,MAAMA,SAAA,GAAYhD,IAAA,CAAKgD,SAAS,CAAC;YAAElD,MAAA;YAAQsC,mBAAA;YAAqBM;UAAU;UAC1E,IAAIM,SAAA,EAAW;YACbH,gBAAA,CAAiBE,IAAI,CAAC/C,IAAA,CAAKS,GAAG;UAChC;QACF,OAAO;UACLoC,gBAAA,CAAiBE,IAAI,CAAC/C,IAAA,CAAKS,GAAG;QAChC;MACF;MAEAqB,eAAA,CAAgB;QACdE,cAAA,EAAgBW,eAAA;QAChBV,YAAA,EAAcR,KAAA,CAAMuB,SAAS,GACzBvB,KAAA,CAAMuB,SAAS,CAAC;UAAElD,MAAA;UAAQsC,mBAAA;UAAqBM;QAAU,KACzD;QACJR,eAAA,EAAiBW;MACnB;MAEA,IAAIjB,cAAA,EAAgB;QAClBA,cAAA,CAAe;UAAEqB,WAAA,EAAaL;QAAa;MAC7C;IACF;EACF,GAAG,CAAC9C,MAAA,EAAQsC,mBAAA,EAAqBX,KAAA,EAAOY,KAAA,EAAOV,cAAA,EAAgBC,cAAA,CAAe;EAE9E5C,SAAA,CAAU;IACR,OAAOG,aAAA,CACLW,MAAA,CAAOoD,sBAAsB,CAAC;MAC5BC,mBAAA,CAAoB;QAClBZ,YAAA;MACF;IACF;EAEJ,GAAG,CAACzC,MAAA,EAAQyC,YAAA,CAAa;EAEzB,MAAMa,aAAA,GAAgBnE,OAAA,CAAQ;IAC5B,OAAOoD,KAAA,EAAOxB,MAAA,GACVwB,KAAA,CAAMgB,GAAG,CAAErD,MAAA,iBACTQ,IAAA,CAACa,eAAA;MACCzB,MAAA,EAAQuC,oBAAA,CAAqBH,cAAc,CAACsB,QAAQ,CAACtD,MAAA,CAAKS,GAAG;MAC7DZ,UAAA,EAAYA,UAAA;MACZC,MAAA,EAAQA,MAAA;MACRC,OAAA,EAASoC,oBAAA,CAAqBD,eAAe,CAACoB,QAAQ,CAACtD,MAAA,CAAKS,GAAG;MAC/DT,IAAA,EAAMA;OACDA,MAAA,CAAKS,GAAG,KAGjB;EACN,GAAG,CAAC4B,KAAA,EAAOF,oBAAA,EAAsBtC,UAAA,EAAYC,MAAA,CAAO;EAEpD,oBACEU,IAAA,CAACjB,QAAA;IACCgE,eAAA,EAAiB,GAAGjB,QAAA,WAAmB;IACvCkB,eAAA,EAAiB,CAACtE,SAAA,EAAW,GAAGA,SAAA,IAAaoD,QAAA,EAAU,E,IAAMd,UAAA,IAAc,EAAE,EAAE,CAC5EiC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;IACRC,QAAA,EAAU,CAACzB,oBAAA,CAAqBF,YAAY;IAC5ClB,IAAA,EAAMA,IAAA;IACNW,wBAAA,EAA0B,CAAC,GAAGxC,SAAA,QAAiB,E,IAAMwC,wBAAA,IAA4B,EAAE,EAAE;IAErFd,KAAA,EAAOA,KAAA;cAENwC;KAHId,QAAA;AAMX","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"generateImportMap.d.ts","sourceRoot":"","sources":["../../src/utilities/generateImportMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAE1E,eAAO,MAAM,oBAAoB,SACxB;IAAE,kBAAkB,EAAE,wBAAwB,CAAA;CAAE,KAAG,eAAe,CAAC,mBAAmB,CA2D5F,CAAA"}
1
+ {"version":3,"file":"generateImportMap.d.ts","sourceRoot":"","sources":["../../src/utilities/generateImportMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAA;AAIhE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAE1E,eAAO,MAAM,oBAAoB,SACxB;IAAE,kBAAkB,EAAE,wBAAwB,CAAA;CAAE,KAAG,eAAe,CAAC,mBAAmB,CA0D5F,CAAA"}
@@ -1,7 +1,5 @@
1
1
  import { genImportMapIterateFields } from 'payload';
2
- export const getGenerateImportMap = args =>
3
- // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
4
- ({
2
+ export const getGenerateImportMap = args => ({
5
3
  addToImportMap,
6
4
  baseDir,
7
5
  config,
@@ -1 +1 @@
1
- {"version":3,"file":"generateImportMap.js","names":["genImportMapIterateFields","getGenerateImportMap","args","addToImportMap","baseDir","config","importMap","imports","resolvedFeature","resolvedFeatureMap","values","componentImports","Array","isArray","length","forEach","component","Object","ClientComponent","ClientFeature","nodes","node","getSubFields","subFields","fields"],"sources":["../../src/utilities/generateImportMap.tsx"],"sourcesContent":["import type { RichTextAdapter } from 'payload'\n\nimport { genImportMapIterateFields } from 'payload'\n\nimport type { ResolvedServerFeatureMap } from '../features/typesServer.js'\n\nexport const getGenerateImportMap =\n (args: { resolvedFeatureMap: ResolvedServerFeatureMap }): RichTextAdapter['generateImportMap'] =>\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n ({ addToImportMap, baseDir, config, importMap, imports }) => {\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell')\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalField')\n addToImportMap('@payloadcms/richtext-lexical/rsc#LexicalDiffComponent')\n\n // iterate just through args.resolvedFeatureMap.values()\n for (const resolvedFeature of args.resolvedFeatureMap.values()) {\n if ('componentImports' in resolvedFeature) {\n if (typeof resolvedFeature.componentImports === 'function') {\n resolvedFeature.componentImports({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n })\n } else if (\n Array.isArray(resolvedFeature.componentImports) &&\n resolvedFeature.componentImports?.length\n ) {\n resolvedFeature.componentImports.forEach((component) => {\n addToImportMap(component)\n })\n } else if (typeof resolvedFeature.componentImports === 'object') {\n for (const component of Object.values(resolvedFeature.componentImports)) {\n addToImportMap(component)\n }\n }\n }\n\n const ClientComponent = resolvedFeature.ClientFeature\n if (ClientComponent) {\n addToImportMap(ClientComponent)\n }\n\n /*\n Now run for all possible sub-fields\n */\n if (resolvedFeature.nodes?.length) {\n for (const node of resolvedFeature.nodes) {\n if (typeof node?.getSubFields !== 'function') {\n continue\n }\n const subFields = node.getSubFields({})\n if (subFields?.length) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: subFields,\n importMap,\n imports,\n })\n }\n }\n }\n }\n }\n"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ;AAI1C,OAAO,MAAMC,oBAAA,GACVC,IAAA;AACD;AACA,CAAC;EAAEC,cAAc;EAAEC,OAAO;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAO,CAAE;EACtDJ,cAAA,CAAe;EACfA,cAAA,CAAe;EACfA,cAAA,CAAe;EAEf;EACA,KAAK,MAAMK,eAAA,IAAmBN,IAAA,CAAKO,kBAAkB,CAACC,MAAM,IAAI;IAC9D,IAAI,sBAAsBF,eAAA,EAAiB;MACzC,IAAI,OAAOA,eAAA,CAAgBG,gBAAgB,KAAK,YAAY;QAC1DH,eAAA,CAAgBG,gBAAgB,CAAC;UAC/BR,cAAA;UACAC,OAAA;UACAC,MAAA;UACAC,SAAA;UACAC;QACF;MACF,OAAO,IACLK,KAAA,CAAMC,OAAO,CAACL,eAAA,CAAgBG,gBAAgB,KAC9CH,eAAA,CAAgBG,gBAAgB,EAAEG,MAAA,EAClC;QACAN,eAAA,CAAgBG,gBAAgB,CAACI,OAAO,CAAEC,SAAA;UACxCb,cAAA,CAAea,SAAA;QACjB;MACF,OAAO,IAAI,OAAOR,eAAA,CAAgBG,gBAAgB,KAAK,UAAU;QAC/D,KAAK,MAAMK,SAAA,IAAaC,MAAA,CAAOP,MAAM,CAACF,eAAA,CAAgBG,gBAAgB,GAAG;UACvER,cAAA,CAAea,SAAA;QACjB;MACF;IACF;IAEA,MAAME,eAAA,GAAkBV,eAAA,CAAgBW,aAAa;IACrD,IAAID,eAAA,EAAiB;MACnBf,cAAA,CAAee,eAAA;IACjB;IAEA;;;IAGA,IAAIV,eAAA,CAAgBY,KAAK,EAAEN,MAAA,EAAQ;MACjC,KAAK,MAAMO,IAAA,IAAQb,eAAA,CAAgBY,KAAK,EAAE;QACxC,IAAI,OAAOC,IAAA,EAAMC,YAAA,KAAiB,YAAY;UAC5C;QACF;QACA,MAAMC,SAAA,GAAYF,IAAA,CAAKC,YAAY,CAAC,CAAC;QACrC,IAAIC,SAAA,EAAWT,MAAA,EAAQ;UACrBd,yBAAA,CAA0B;YACxBG,cAAA;YACAC,OAAA;YACAC,MAAA;YACAmB,MAAA,EAAQD,SAAA;YACRjB,SAAA;YACAC;UACF;QACF;MACF;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"generateImportMap.js","names":["genImportMapIterateFields","getGenerateImportMap","args","addToImportMap","baseDir","config","importMap","imports","resolvedFeature","resolvedFeatureMap","values","componentImports","Array","isArray","length","forEach","component","Object","ClientComponent","ClientFeature","nodes","node","getSubFields","subFields","fields"],"sources":["../../src/utilities/generateImportMap.tsx"],"sourcesContent":["import type { PayloadComponent, RichTextAdapter } from 'payload'\n\nimport { genImportMapIterateFields } from 'payload'\n\nimport type { ResolvedServerFeatureMap } from '../features/typesServer.js'\n\nexport const getGenerateImportMap =\n (args: { resolvedFeatureMap: ResolvedServerFeatureMap }): RichTextAdapter['generateImportMap'] =>\n ({ addToImportMap, baseDir, config, importMap, imports }) => {\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell')\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalField')\n addToImportMap('@payloadcms/richtext-lexical/rsc#LexicalDiffComponent')\n\n // iterate just through args.resolvedFeatureMap.values()\n for (const resolvedFeature of args.resolvedFeatureMap.values()) {\n if ('componentImports' in resolvedFeature) {\n if (typeof resolvedFeature.componentImports === 'function') {\n resolvedFeature.componentImports({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n })\n } else if (\n Array.isArray(resolvedFeature.componentImports) &&\n resolvedFeature.componentImports?.length\n ) {\n resolvedFeature.componentImports.forEach((component) => {\n addToImportMap(component)\n })\n } else if (typeof resolvedFeature.componentImports === 'object') {\n for (const component of Object.values(resolvedFeature.componentImports)) {\n addToImportMap(component as PayloadComponent)\n }\n }\n }\n\n const ClientComponent = resolvedFeature.ClientFeature\n if (ClientComponent) {\n addToImportMap(ClientComponent)\n }\n\n /*\n Now run for all possible sub-fields\n */\n if (resolvedFeature.nodes?.length) {\n for (const node of resolvedFeature.nodes) {\n if (typeof node?.getSubFields !== 'function') {\n continue\n }\n const subFields = node.getSubFields({})\n if (subFields?.length) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: subFields,\n importMap,\n imports,\n })\n }\n }\n }\n }\n }\n"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ;AAI1C,OAAO,MAAMC,oBAAA,GACVC,IAAA,IACD,CAAC;EAAEC,cAAc;EAAEC,OAAO;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAO,CAAE;EACtDJ,cAAA,CAAe;EACfA,cAAA,CAAe;EACfA,cAAA,CAAe;EAEf;EACA,KAAK,MAAMK,eAAA,IAAmBN,IAAA,CAAKO,kBAAkB,CAACC,MAAM,IAAI;IAC9D,IAAI,sBAAsBF,eAAA,EAAiB;MACzC,IAAI,OAAOA,eAAA,CAAgBG,gBAAgB,KAAK,YAAY;QAC1DH,eAAA,CAAgBG,gBAAgB,CAAC;UAC/BR,cAAA;UACAC,OAAA;UACAC,MAAA;UACAC,SAAA;UACAC;QACF;MACF,OAAO,IACLK,KAAA,CAAMC,OAAO,CAACL,eAAA,CAAgBG,gBAAgB,KAC9CH,eAAA,CAAgBG,gBAAgB,EAAEG,MAAA,EAClC;QACAN,eAAA,CAAgBG,gBAAgB,CAACI,OAAO,CAAEC,SAAA;UACxCb,cAAA,CAAea,SAAA;QACjB;MACF,OAAO,IAAI,OAAOR,eAAA,CAAgBG,gBAAgB,KAAK,UAAU;QAC/D,KAAK,MAAMK,SAAA,IAAaC,MAAA,CAAOP,MAAM,CAACF,eAAA,CAAgBG,gBAAgB,GAAG;UACvER,cAAA,CAAea,SAAA;QACjB;MACF;IACF;IAEA,MAAME,eAAA,GAAkBV,eAAA,CAAgBW,aAAa;IACrD,IAAID,eAAA,EAAiB;MACnBf,cAAA,CAAee,eAAA;IACjB;IAEA;;;IAGA,IAAIV,eAAA,CAAgBY,KAAK,EAAEN,MAAA,EAAQ;MACjC,KAAK,MAAMO,IAAA,IAAQb,eAAA,CAAgBY,KAAK,EAAE;QACxC,IAAI,OAAOC,IAAA,EAAMC,YAAA,KAAiB,YAAY;UAC5C;QACF;QACA,MAAMC,SAAA,GAAYF,IAAA,CAAKC,YAAY,CAAC,CAAC;QACrC,IAAIC,SAAA,EAAWT,MAAA,EAAQ;UACrBd,yBAAA,CAA0B;YACxBG,cAAA;YACAC,OAAA;YACAC,MAAA;YACAmB,MAAA,EAAQD,SAAA;YACRjB,SAAA;YACAC;UACF;QACF;MACF;IACF;EACF;AACF","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/richtext-lexical",
3
- "version": "3.41.0-canary.2",
3
+ "version": "3.41.0-internal.72eae46",
4
4
  "description": "The officially supported Lexical richtext adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -368,8 +368,8 @@
368
368
  "react-error-boundary": "4.1.2",
369
369
  "ts-essentials": "10.0.3",
370
370
  "uuid": "10.0.0",
371
- "@payloadcms/translations": "3.41.0-canary.2",
372
- "@payloadcms/ui": "3.41.0-canary.2"
371
+ "@payloadcms/translations": "3.41.0-internal.72eae46",
372
+ "@payloadcms/ui": "3.41.0-internal.72eae46"
373
373
  },
374
374
  "devDependencies": {
375
375
  "@babel/cli": "7.27.2",
@@ -388,16 +388,16 @@
388
388
  "esbuild": "0.25.5",
389
389
  "esbuild-sass-plugin": "3.3.1",
390
390
  "swc-plugin-transform-remove-imports": "4.0.4",
391
- "payload": "3.41.0-canary.2",
392
- "@payloadcms/eslint-config": "3.28.0"
391
+ "@payloadcms/eslint-config": "3.28.0",
392
+ "payload": "3.41.0-internal.72eae46"
393
393
  },
394
394
  "peerDependencies": {
395
395
  "@faceless-ui/modal": "3.0.0-beta.2",
396
396
  "@faceless-ui/scroll-info": "2.0.0",
397
397
  "react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
398
398
  "react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
399
- "@payloadcms/next": "3.41.0-canary.2",
400
- "payload": "3.41.0-canary.2"
399
+ "@payloadcms/next": "3.41.0-internal.72eae46",
400
+ "payload": "3.41.0-internal.72eae46"
401
401
  },
402
402
  "engines": {
403
403
  "node": "^18.20.2 || >=20.9.0"