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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ export * from './client/index.js';
2
+ export * from './server/rsc.js';
3
+ //# sourceMappingURL=cssEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssEntry.d.ts","sourceRoot":"","sources":["../../src/exports/cssEntry.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,5 @@
1
+ // The purpose of this file is to export all modules that may contain SCSS.
2
+ // These will then be bundled into one CSS file by our bundler.
3
+ export * from './client/index.js';
4
+ export * from './server/rsc.js';
5
+ //# sourceMappingURL=cssEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssEntry.js","names":[],"sources":["../../src/exports/cssEntry.ts"],"sourcesContent":["// The purpose of this file is to export all modules that may contain SCSS.\n// These will then be bundled into one CSS file by our bundler.\n\nexport * from './client/index.js'\nexport * from './server/rsc.js'\n"],"mappings":"AAAA;AACA;AAEA,cAAc;AACd,cAAc","ignoreList":[]}
@@ -40,9 +40,9 @@ const RelationshipDrawerComponent = t0 => {
40
40
  } = t0;
41
41
  const [editor] = useLexicalComposerContext();
42
42
  let t1;
43
- if ($[0] !== enabledCollectionSlugs) {
43
+ if ($[0] !== enabledCollectionSlugs?.[0]) {
44
44
  t1 = () => enabledCollectionSlugs?.[0];
45
- $[0] = enabledCollectionSlugs;
45
+ $[0] = enabledCollectionSlugs?.[0];
46
46
  $[1] = t1;
47
47
  } else {
48
48
  t1 = $[1];
@@ -100,99 +100,197 @@ const ToolbarItem = t0 => {
100
100
  }
101
101
  return t2;
102
102
  };
103
- export const ToolbarDropdown = ({
104
- anchorElem,
105
- classNames,
106
- editor,
107
- group,
108
- Icon,
109
- itemsContainerClassNames,
110
- label,
111
- maxActiveItems,
112
- onActiveChange
113
- }) => {
114
- const [activeItemKeys, setActiveItemKeys] = React.useState([]);
115
- const [enabledItemKeys, setEnabledItemKeys] = React.useState([]);
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);
116
132
  const [enabledGroup, setEnabledGroup] = React.useState(true);
117
133
  const editorConfigContext = useEditorConfigContext();
118
134
  const {
119
135
  items,
120
136
  key: groupKey
121
137
  } = group;
122
- const updateStates = useCallback(() => {
123
- editor.getEditorState().read(() => {
124
- const selection = $getSelection();
125
- if (!selection) {
126
- return;
127
- }
128
- const _activeItemKeys = [];
129
- const _activeItems = [];
130
- const _enabledItemKeys = [];
131
- for (const item of items) {
132
- if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {
133
- const isActive = item.isActive({
134
- editor,
135
- editorConfigContext,
136
- selection
137
- });
138
- if (isActive) {
139
- _activeItemKeys.push(item.key);
140
- _activeItems.push(item);
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);
141
172
  }
142
173
  }
143
- if (item.isEnabled) {
144
- const isEnabled = item.isEnabled({
174
+ if (group.isEnabled) {
175
+ setEnabledGroup(group.isEnabled({
145
176
  editor,
146
177
  editorConfigContext,
147
178
  selection
179
+ }));
180
+ }
181
+ setActiveItemKeys(_activeItemKeys);
182
+ setEnabledItemKeys(_enabledItemKeys);
183
+ if (onActiveChange) {
184
+ onActiveChange({
185
+ activeItems: _activeItems
148
186
  });
149
- if (isEnabled) {
150
- _enabledItemKeys.push(item.key);
151
- }
152
- } else {
153
- _enabledItemKeys.push(item.key);
154
187
  }
155
- }
156
- if (group.isEnabled) {
157
- setEnabledGroup(group.isEnabled({
158
- editor,
159
- editorConfigContext,
160
- selection
161
- }));
162
- }
163
- setActiveItemKeys(_activeItemKeys);
164
- setEnabledItemKeys(_enabledItemKeys);
165
- if (onActiveChange) {
166
- onActiveChange({
167
- activeItems: _activeItems
168
- });
169
- }
170
- });
171
- }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange]);
172
- useEffect(() => {
173
- updateStates();
174
- }, [updateStates]);
175
- useEffect(() => {
176
- return mergeRegister(editor.registerUpdateListener(() => {
188
+ });
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(() => {
177
220
  updateStates();
178
221
  }));
179
- }, [editor, updateStates]);
180
- return /*#__PURE__*/_jsx(DropDown, {
181
- buttonAriaLabel: `${groupKey} dropdown`,
182
- buttonClassName: [baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])].filter(Boolean).join(' '),
183
- disabled: !enabledGroup,
184
- Icon: Icon,
185
- itemsContainerClassNames: [`${baseClass}-items`, ...(itemsContainerClassNames || [])],
186
- label: label,
187
- children: items.length ? items.map(item_0 => {
188
- return /*#__PURE__*/_jsx(ToolbarItem, {
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, {
189
271
  active: activeItemKeys.includes(item_0.key),
190
- anchorElem: anchorElem,
191
- editor: editor,
272
+ anchorElem,
273
+ editor,
192
274
  enabled: enabledItemKeys.includes(item_0.key),
193
275
  item: item_0
194
- }, item_0.key);
195
- }) : null
196
- }, groupKey);
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;
197
295
  };
198
296
  //# 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","activeItemKeys","setActiveItemKeys","useState","enabledItemKeys","setEnabledItemKeys","enabledGroup","setEnabledGroup","editorConfigContext","items","groupKey","updateStates","getEditorState","read","selection","_activeItemKeys","_activeItems","_enabledItemKeys","isActive","push","isEnabled","activeItems","registerUpdateListener","buttonAriaLabel","buttonClassName","filter","Boolean","join","disabled","map","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","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,5 +1,6 @@
1
1
  import type { RichTextFieldDiffServerComponent } from 'payload';
2
2
  import './htmlDiff/index.scss';
3
3
  import './index.scss';
4
+ import '../bundled.css';
4
5
  export declare const LexicalDiffComponent: RichTextFieldDiffServerComponent;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/field/Diff/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAA;AAM/D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,cAAc,CAAA;AAcrB,eAAO,MAAM,oBAAoB,EAAE,gCAmDlC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/field/Diff/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAA;AAM/D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,cAAc,CAAA;AACrB,OAAO,gBAAgB,CAAA;AAcvB,eAAO,MAAM,oBAAoB,EAAE,gCAmDlC,CAAA"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getTranslation } from '@payloadcms/translations';
3
3
  import { FieldDiffLabel } from '@payloadcms/ui/rsc';
4
4
  import React from 'react';
5
+ import '../bundled.css';
5
6
  import { convertLexicalToHTMLAsync } from '../../features/converters/lexicalToHtml/async/index.js';
6
7
  import { getPayloadPopulateFn } from '../../features/converters/utilities/payloadPopulateFn.js';
7
8
  import { LinkDiffHTMLConverterAsync } from './converters/link.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","FieldDiffLabel","React","convertLexicalToHTMLAsync","getPayloadPopulateFn","LinkDiffHTMLConverterAsync","ListItemDiffHTMLConverterAsync","RelationshipDiffHTMLConverterAsync","UnknownDiffHTMLConverterAsync","UploadDiffHTMLConverterAsync","HtmlDiff","baseClass","LexicalDiffComponent","args","comparisonValue","field","i18n","locale","versionValue","converters","defaultConverters","req","payloadPopulateFn","currentDepth","depth","comparisonHTML","data","populate","versionHTML","diffHTML","oldHTML","newHTML","getSideBySideContents","_jsxs","className","_jsx","label","dangerouslySetInnerHTML","__html"],"sources":["../../../src/field/Diff/index.tsx"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { RichTextFieldDiffServerComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDiffLabel } from '@payloadcms/ui/rsc'\nimport React from 'react'\n\nimport './htmlDiff/index.scss'\nimport './index.scss'\n\nimport type { HTMLConvertersFunctionAsync } from '../../features/converters/lexicalToHtml/async/types.js'\n\nimport { convertLexicalToHTMLAsync } from '../../features/converters/lexicalToHtml/async/index.js'\nimport { getPayloadPopulateFn } from '../../features/converters/utilities/payloadPopulateFn.js'\nimport { LinkDiffHTMLConverterAsync } from './converters/link.js'\nimport { ListItemDiffHTMLConverterAsync } from './converters/listitem/index.js'\nimport { RelationshipDiffHTMLConverterAsync } from './converters/relationship/index.js'\nimport { UnknownDiffHTMLConverterAsync } from './converters/unknown/index.js'\nimport { UploadDiffHTMLConverterAsync } from './converters/upload/index.js'\nimport { HtmlDiff } from './htmlDiff/index.js'\nconst baseClass = 'lexical-diff'\n\nexport const LexicalDiffComponent: RichTextFieldDiffServerComponent = async (args) => {\n const { comparisonValue, field, i18n, locale, versionValue } = args\n\n const converters: HTMLConvertersFunctionAsync = ({ defaultConverters }) => ({\n ...defaultConverters,\n ...LinkDiffHTMLConverterAsync({}),\n ...ListItemDiffHTMLConverterAsync,\n ...UploadDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n ...RelationshipDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n ...UnknownDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n })\n\n const payloadPopulateFn = await getPayloadPopulateFn({\n currentDepth: 0,\n depth: 1,\n req: args.req,\n })\n const comparisonHTML = await convertLexicalToHTMLAsync({\n converters,\n data: comparisonValue as SerializedEditorState,\n populate: payloadPopulateFn,\n })\n\n const versionHTML = await convertLexicalToHTMLAsync({\n converters,\n data: versionValue as SerializedEditorState,\n populate: payloadPopulateFn,\n })\n\n const diffHTML = new HtmlDiff(comparisonHTML, versionHTML)\n\n const [oldHTML, newHTML] = diffHTML.getSideBySideContents()\n\n return (\n <div className={baseClass}>\n <FieldDiffLabel>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {'label' in field &&\n typeof field.label !== 'function' &&\n getTranslation(field.label || '', i18n)}\n </FieldDiffLabel>\n <div className={`${baseClass}__diff-container`}>\n {oldHTML && (\n <div className={`${baseClass}__diff-old`} dangerouslySetInnerHTML={{ __html: oldHTML }} />\n )}\n {newHTML && (\n <div className={`${baseClass}__diff-new`} dangerouslySetInnerHTML={{ __html: newHTML }} />\n )}\n </div>\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAOlB,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,oBAAoB,QAAQ;AACrC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,8BAA8B,QAAQ;AAC/C,SAASC,kCAAkC,QAAQ;AACnD,SAASC,6BAA6B,QAAQ;AAC9C,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,QAAQ,QAAQ;AACzB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,oBAAA,GAAyD,MAAOC,IAAA;EAC3E,MAAM;IAAEC,eAAe;IAAEC,KAAK;IAAEC,IAAI;IAAEC,MAAM;IAAEC;EAAY,CAAE,GAAGL,IAAA;EAE/D,MAAMM,UAAA,GAA0CA,CAAC;IAAEC;EAAiB,CAAE,MAAM;IAC1E,GAAGA,iBAAiB;IACpB,GAAGf,0BAAA,CAA2B,CAAC,EAAE;IACjC,GAAGC,8BAA8B;IACjC,GAAGG,4BAAA,CAA6B;MAAEO,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI,EAAE;IACnE,GAAGd,kCAAA,CAAmC;MAAES,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI,EAAE;IACzE,GAAGb,6BAAA,CAA8B;MAAEQ,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI;EACpE;EAEA,MAAMC,iBAAA,GAAoB,MAAMlB,oBAAA,CAAqB;IACnDmB,YAAA,EAAc;IACdC,KAAA,EAAO;IACPH,GAAA,EAAKR,IAAA,CAAKQ;EACZ;EACA,MAAMI,cAAA,GAAiB,MAAMtB,yBAAA,CAA0B;IACrDgB,UAAA;IACAO,IAAA,EAAMZ,eAAA;IACNa,QAAA,EAAUL;EACZ;EAEA,MAAMM,WAAA,GAAc,MAAMzB,yBAAA,CAA0B;IAClDgB,UAAA;IACAO,IAAA,EAAMR,YAAA;IACNS,QAAA,EAAUL;EACZ;EAEA,MAAMO,QAAA,GAAW,IAAInB,QAAA,CAASe,cAAA,EAAgBG,WAAA;EAE9C,MAAM,CAACE,OAAA,EAASC,OAAA,CAAQ,GAAGF,QAAA,CAASG,qBAAqB;EAEzD,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWvB,SAAA;4BACdsB,KAAA,CAAChC,cAAA;iBACEgB,MAAA,iBAAUkB,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGvB,SAAA,gBAAyB;kBAAGM;UAC1D,WAAWF,KAAA,IACV,OAAOA,KAAA,CAAMqB,KAAK,KAAK,cACvBpC,cAAA,CAAee,KAAA,CAAMqB,KAAK,IAAI,IAAIpB,IAAA;qBAEtCiB,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGvB,SAAA,kBAA2B;iBAC3CmB,OAAA,iBACCK,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGvB,SAAA,YAAqB;QAAE0B,uBAAA,EAAyB;UAAEC,MAAA,EAAQR;QAAQ;UAEtFC,OAAA,iBACCI,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGvB,SAAA,YAAqB;QAAE0B,uBAAA,EAAyB;UAAEC,MAAA,EAAQP;QAAQ;;;;AAK/F","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","FieldDiffLabel","React","convertLexicalToHTMLAsync","getPayloadPopulateFn","LinkDiffHTMLConverterAsync","ListItemDiffHTMLConverterAsync","RelationshipDiffHTMLConverterAsync","UnknownDiffHTMLConverterAsync","UploadDiffHTMLConverterAsync","HtmlDiff","baseClass","LexicalDiffComponent","args","comparisonValue","field","i18n","locale","versionValue","converters","defaultConverters","req","payloadPopulateFn","currentDepth","depth","comparisonHTML","data","populate","versionHTML","diffHTML","oldHTML","newHTML","getSideBySideContents","_jsxs","className","_jsx","label","dangerouslySetInnerHTML","__html"],"sources":["../../../src/field/Diff/index.tsx"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { RichTextFieldDiffServerComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDiffLabel } from '@payloadcms/ui/rsc'\nimport React from 'react'\n\nimport './htmlDiff/index.scss'\nimport './index.scss'\nimport '../bundled.css'\n\nimport type { HTMLConvertersFunctionAsync } from '../../features/converters/lexicalToHtml/async/types.js'\n\nimport { convertLexicalToHTMLAsync } from '../../features/converters/lexicalToHtml/async/index.js'\nimport { getPayloadPopulateFn } from '../../features/converters/utilities/payloadPopulateFn.js'\nimport { LinkDiffHTMLConverterAsync } from './converters/link.js'\nimport { ListItemDiffHTMLConverterAsync } from './converters/listitem/index.js'\nimport { RelationshipDiffHTMLConverterAsync } from './converters/relationship/index.js'\nimport { UnknownDiffHTMLConverterAsync } from './converters/unknown/index.js'\nimport { UploadDiffHTMLConverterAsync } from './converters/upload/index.js'\nimport { HtmlDiff } from './htmlDiff/index.js'\nconst baseClass = 'lexical-diff'\n\nexport const LexicalDiffComponent: RichTextFieldDiffServerComponent = async (args) => {\n const { comparisonValue, field, i18n, locale, versionValue } = args\n\n const converters: HTMLConvertersFunctionAsync = ({ defaultConverters }) => ({\n ...defaultConverters,\n ...LinkDiffHTMLConverterAsync({}),\n ...ListItemDiffHTMLConverterAsync,\n ...UploadDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n ...RelationshipDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n ...UnknownDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n })\n\n const payloadPopulateFn = await getPayloadPopulateFn({\n currentDepth: 0,\n depth: 1,\n req: args.req,\n })\n const comparisonHTML = await convertLexicalToHTMLAsync({\n converters,\n data: comparisonValue as SerializedEditorState,\n populate: payloadPopulateFn,\n })\n\n const versionHTML = await convertLexicalToHTMLAsync({\n converters,\n data: versionValue as SerializedEditorState,\n populate: payloadPopulateFn,\n })\n\n const diffHTML = new HtmlDiff(comparisonHTML, versionHTML)\n\n const [oldHTML, newHTML] = diffHTML.getSideBySideContents()\n\n return (\n <div className={baseClass}>\n <FieldDiffLabel>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {'label' in field &&\n typeof field.label !== 'function' &&\n getTranslation(field.label || '', i18n)}\n </FieldDiffLabel>\n <div className={`${baseClass}__diff-container`}>\n {oldHTML && (\n <div className={`${baseClass}__diff-old`} dangerouslySetInnerHTML={{ __html: oldHTML }} />\n )}\n {newHTML && (\n <div className={`${baseClass}__diff-new`} dangerouslySetInnerHTML={{ __html: newHTML }} />\n )}\n </div>\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,OAAO;AAIP,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,oBAAoB,QAAQ;AACrC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,8BAA8B,QAAQ;AAC/C,SAASC,kCAAkC,QAAQ;AACnD,SAASC,6BAA6B,QAAQ;AAC9C,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,QAAQ,QAAQ;AACzB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,oBAAA,GAAyD,MAAOC,IAAA;EAC3E,MAAM;IAAEC,eAAe;IAAEC,KAAK;IAAEC,IAAI;IAAEC,MAAM;IAAEC;EAAY,CAAE,GAAGL,IAAA;EAE/D,MAAMM,UAAA,GAA0CA,CAAC;IAAEC;EAAiB,CAAE,MAAM;IAC1E,GAAGA,iBAAiB;IACpB,GAAGf,0BAAA,CAA2B,CAAC,EAAE;IACjC,GAAGC,8BAA8B;IACjC,GAAGG,4BAAA,CAA6B;MAAEO,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI,EAAE;IACnE,GAAGd,kCAAA,CAAmC;MAAES,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI,EAAE;IACzE,GAAGb,6BAAA,CAA8B;MAAEQ,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI;EACpE;EAEA,MAAMC,iBAAA,GAAoB,MAAMlB,oBAAA,CAAqB;IACnDmB,YAAA,EAAc;IACdC,KAAA,EAAO;IACPH,GAAA,EAAKR,IAAA,CAAKQ;EACZ;EACA,MAAMI,cAAA,GAAiB,MAAMtB,yBAAA,CAA0B;IACrDgB,UAAA;IACAO,IAAA,EAAMZ,eAAA;IACNa,QAAA,EAAUL;EACZ;EAEA,MAAMM,WAAA,GAAc,MAAMzB,yBAAA,CAA0B;IAClDgB,UAAA;IACAO,IAAA,EAAMR,YAAA;IACNS,QAAA,EAAUL;EACZ;EAEA,MAAMO,QAAA,GAAW,IAAInB,QAAA,CAASe,cAAA,EAAgBG,WAAA;EAE9C,MAAM,CAACE,OAAA,EAASC,OAAA,CAAQ,GAAGF,QAAA,CAASG,qBAAqB;EAEzD,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWvB,SAAA;4BACdsB,KAAA,CAAChC,cAAA;iBACEgB,MAAA,iBAAUkB,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGvB,SAAA,gBAAyB;kBAAGM;UAC1D,WAAWF,KAAA,IACV,OAAOA,KAAA,CAAMqB,KAAK,KAAK,cACvBpC,cAAA,CAAee,KAAA,CAAMqB,KAAK,IAAI,IAAIpB,IAAA;qBAEtCiB,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGvB,SAAA,kBAA2B;iBAC3CmB,OAAA,iBACCK,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGvB,SAAA,YAAqB;QAAE0B,uBAAA,EAAyB;UAAEC,MAAA,EAAQR;QAAQ;UAEtFC,OAAA,iBACCI,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGvB,SAAA,YAAqB;QAAE0B,uBAAA,EAAyB;UAAEC,MAAA,EAAQP;QAAQ;;;;AAK/F","ignoreList":[]}