@payloadcms/richtext-lexical 4.0.0-internal.5f0cd13 → 4.0.0-internal.a0ef1b8

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.
Files changed (146) hide show
  1. package/dist/@types/assets.d.js +2 -0
  2. package/dist/@types/assets.d.js.map +1 -0
  3. package/dist/cell/rscEntry.d.ts.map +1 -1
  4. package/dist/cell/rscEntry.js +5 -5
  5. package/dist/cell/rscEntry.js.map +1 -1
  6. package/dist/exports/client/Field-VYBSMSRY.js +2 -0
  7. package/dist/exports/client/Field-VYBSMSRY.js.map +7 -0
  8. package/dist/exports/client/bundled.css +1 -1
  9. package/dist/exports/client/chunk-5VIL27GI.js +2 -0
  10. package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
  11. package/dist/exports/client/chunk-UD4DQ4AK.js +2 -0
  12. package/dist/exports/client/chunk-UD4DQ4AK.js.map +7 -0
  13. package/dist/exports/client/chunk-ZYXHC5CY.js +2 -0
  14. package/dist/exports/client/chunk-ZYXHC5CY.js.map +7 -0
  15. package/dist/exports/client/{component-HKTAZ77E.js → component-PHZQBOJE.js} +2 -2
  16. package/dist/exports/client/componentInline-R3EPNYWF.js +2 -0
  17. package/dist/exports/client/index.d.ts +1 -0
  18. package/dist/exports/client/index.d.ts.map +1 -1
  19. package/dist/exports/client/index.js +25 -25
  20. package/dist/exports/client/index.js.map +4 -4
  21. package/dist/exports/server/rsc.browser.d.ts +11 -0
  22. package/dist/exports/server/rsc.browser.d.ts.map +1 -0
  23. package/dist/exports/server/rsc.browser.js +10 -0
  24. package/dist/exports/server/rsc.browser.js.map +1 -0
  25. package/dist/features/blocks/client/component/index.d.ts +1 -0
  26. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  27. package/dist/features/blocks/client/component/index.js +15 -8
  28. package/dist/features/blocks/client/component/index.js.map +1 -1
  29. package/dist/features/blocks/client/componentInline/index.d.ts +1 -0
  30. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  31. package/dist/features/blocks/client/componentInline/index.js +14 -7
  32. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  33. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  34. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +1 -0
  35. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  36. package/dist/features/blocks/server/index.d.ts.map +1 -1
  37. package/dist/features/blocks/server/index.js +2 -2
  38. package/dist/features/blocks/server/index.js.map +1 -1
  39. package/dist/features/blocks/server/schema.d.ts +5 -5
  40. package/dist/features/blocks/server/schema.d.ts.map +1 -1
  41. package/dist/features/blocks/server/schema.js +26 -23
  42. package/dist/features/blocks/server/schema.js.map +1 -1
  43. package/dist/features/converters/lexicalToHtml/async/types.d.ts +13 -15
  44. package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
  45. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  46. package/dist/features/converters/lexicalToHtml/sync/types.d.ts +13 -15
  47. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  48. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  49. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +2 -2
  50. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  51. package/dist/features/converters/lexicalToJSX/Component/index.js +5 -4
  52. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  53. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +12 -14
  54. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  55. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  56. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +12 -14
  57. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
  58. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  59. package/dist/features/experimental_table/server/schema.d.ts.map +1 -1
  60. package/dist/features/experimental_table/server/schema.js +6 -3
  61. package/dist/features/experimental_table/server/schema.js.map +1 -1
  62. package/dist/features/link/server/schema.d.ts.map +1 -1
  63. package/dist/features/link/server/schema.js +10 -7
  64. package/dist/features/link/server/schema.js.map +1 -1
  65. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  66. package/dist/features/relationship/server/schema.js +5 -8
  67. package/dist/features/relationship/server/schema.js.map +1 -1
  68. package/dist/features/upload/client/component/index.css +2 -2
  69. package/dist/features/upload/server/schema.d.ts +4 -4
  70. package/dist/features/upload/server/schema.d.ts.map +1 -1
  71. package/dist/features/upload/server/schema.js +34 -18
  72. package/dist/features/upload/server/schema.js.map +1 -1
  73. package/dist/field/bundled.css +1 -1
  74. package/dist/field/clientEntry.d.ts +29 -0
  75. package/dist/field/clientEntry.d.ts.map +1 -0
  76. package/dist/field/clientEntry.js +86 -0
  77. package/dist/field/clientEntry.js.map +1 -0
  78. package/dist/field/index.css +9 -12
  79. package/dist/field/index.js +1 -1
  80. package/dist/field/index.js.map +1 -1
  81. package/dist/field/rscEntry.d.ts.map +1 -1
  82. package/dist/field/rscEntry.js +2 -0
  83. package/dist/field/rscEntry.js.map +1 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +47 -4
  86. package/dist/index.js.map +1 -1
  87. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  88. package/dist/lexical/LexicalEditor.js +36 -2
  89. package/dist/lexical/LexicalEditor.js.map +1 -1
  90. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  91. package/dist/lexical/LexicalProvider.js +22 -7
  92. package/dist/lexical/LexicalProvider.js.map +1 -1
  93. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  94. package/dist/lexical/config/client/loader.js +5 -1
  95. package/dist/lexical/config/client/loader.js.map +1 -1
  96. package/dist/types/builtInNodes.d.ts.map +1 -1
  97. package/dist/types/builtInNodes.js +17 -17
  98. package/dist/types/builtInNodes.js.map +1 -1
  99. package/dist/types/index.d.ts +16 -16
  100. package/dist/types/index.d.ts.map +1 -1
  101. package/dist/types/index.js.map +1 -1
  102. package/dist/types/jsonSchemaHelpers.d.ts +2 -0
  103. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -1
  104. package/dist/types/jsonSchemaHelpers.js +7 -3
  105. package/dist/types/jsonSchemaHelpers.js.map +1 -1
  106. package/dist/types/nodeTypes.d.ts +51 -9
  107. package/dist/types/nodeTypes.d.ts.map +1 -1
  108. package/dist/types/nodeTypes.js +3 -3
  109. package/dist/types/nodeTypes.js.map +1 -1
  110. package/dist/types/schema.d.ts.map +1 -1
  111. package/dist/types/schema.js +12 -2
  112. package/dist/types/schema.js.map +1 -1
  113. package/dist/utilities/buildEditorState.d.ts +17 -3
  114. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  115. package/dist/utilities/buildEditorState.js +8 -0
  116. package/dist/utilities/buildEditorState.js.map +1 -1
  117. package/dist/utilities/buildInitialState.d.ts +2 -1
  118. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  119. package/dist/utilities/buildInitialState.js.map +1 -1
  120. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  121. package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
  122. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  123. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
  124. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  125. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -7
  126. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  127. package/dist/utilities/fieldsDrawer/index.css +12 -0
  128. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
  129. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
  130. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
  131. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
  132. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  133. package/dist/utilities/generateImportMap.js +7 -3
  134. package/dist/utilities/generateImportMap.js.map +1 -1
  135. package/package.json +8 -7
  136. package/dist/exports/client/Field-G5Z2HM5Y.js +0 -2
  137. package/dist/exports/client/Field-G5Z2HM5Y.js.map +0 -7
  138. package/dist/exports/client/chunk-6QWQ7JV4.js +0 -2
  139. package/dist/exports/client/chunk-6QWQ7JV4.js.map +0 -7
  140. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  141. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  142. package/dist/exports/client/chunk-UAKNDD6R.js +0 -2
  143. package/dist/exports/client/chunk-UAKNDD6R.js.map +0 -7
  144. package/dist/exports/client/componentInline-D3A6OW76.js +0 -2
  145. /package/dist/exports/client/{component-HKTAZ77E.js.map → component-PHZQBOJE.js.map} +0 -0
  146. /package/dist/exports/client/{componentInline-D3A6OW76.js.map → componentInline-R3EPNYWF.js.map} +0 -0
@@ -2,12 +2,14 @@
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
5
- import { Form, FormSubmit, RenderFields, useDocumentForm, useDocumentInfo, useServerFunctions, useTranslation } from '@payloadcms/ui';
5
+ import { Form, RenderFields, useDocumentForm, useDocumentInfo, useServerFunctions } from '@payloadcms/ui';
6
6
  import { abortAndIgnore } from '@payloadcms/ui/shared';
7
7
  import { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared';
8
8
  import React, { useCallback, useEffect, useRef, useState } from 'react';
9
9
  import { v4 as uuid } from 'uuid';
10
10
  import { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js';
11
+ import { RegisterFormSubmit } from './useDrawerSubmit.js';
12
+ import './index.css';
11
13
  export const DrawerContent = ({
12
14
  data,
13
15
  featureKey,
@@ -15,11 +17,9 @@ export const DrawerContent = ({
15
17
  handleDrawerSubmit,
16
18
  schemaFieldsPathOverride,
17
19
  schemaPath,
18
- schemaPathSuffix
20
+ schemaPathSuffix,
21
+ submitRef
19
22
  }) => {
20
- const {
21
- t
22
- } = useTranslation();
23
23
  const {
24
24
  id,
25
25
  collectionSlug,
@@ -116,6 +116,7 @@ export const DrawerContent = ({
116
116
  }
117
117
  return /*#__PURE__*/_jsxs(Form, {
118
118
  beforeSubmit: [onChange],
119
+ className: "fields-drawer",
119
120
  disableValidationOnSubmit: true,
120
121
  fields: Array.isArray(fields) ? fields : [],
121
122
  initialState: initialState,
@@ -130,8 +131,8 @@ export const DrawerContent = ({
130
131
  parentSchemaPath: schemaFieldsPath,
131
132
  permissions: true,
132
133
  readOnly: !isEditable
133
- }), /*#__PURE__*/_jsx(FormSubmit, {
134
- children: t('fields:saveChanges')
134
+ }), /*#__PURE__*/_jsx(RegisterFormSubmit, {
135
+ submitRef: submitRef
135
136
  })]
136
137
  });
137
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useLexicalEditable","Form","FormSubmit","RenderFields","useDocumentForm","useDocumentInfo","useServerFunctions","useTranslation","abortAndIgnore","deepCopyObjectSimpleWithoutReactComponents","React","useCallback","useEffect","useRef","useState","v4","uuid","useEditorConfigContext","DrawerContent","data","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPath","schemaPathSuffix","t","id","collectionSlug","getDocPreferences","globalSlug","fields","parentDocumentFields","isEditable","onChangeAbortControllerRef","AbortController","initialState","setInitialState","fieldProps","featureClientSchemaMap","getFormState","schemaFieldsPath","controller","awaitInitialState","state","docPermissions","docPreferences","documentFormState","excludeFiles","initialBlockData","operation","readOnly","renderAllFields","signal","onChange","formState","prevFormState","current","initialBlockFormState","_jsxs","beforeSubmit","disableValidationOnSubmit","Array","isArray","onSubmit","_jsx","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions"],"sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n Form,\n FormSubmit,\n RenderFields,\n useDocumentForm,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\n\nexport const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n}) => {\n const { t } = useTranslation()\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n const { fields: parentDocumentFields } = useDocumentForm()\n const isEditable = useLexicalEditable()\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const {\n fieldProps: { featureClientSchemaMap },\n } = useEditorConfigContext()\n\n const { getFormState } = useServerFunctions()\n\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any = fieldMapOverride ?? featureClientSchemaMap[featureKey]?.[schemaFieldsPath] // Field Schema\n\n useEffect(() => {\n const controller = new AbortController()\n\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: data ?? {},\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n globalSlug,\n initialBlockData: data,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [\n schemaFieldsPath,\n id,\n data,\n getFormState,\n collectionSlug,\n isEditable,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n ])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }: { formState: FormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [\n getFormState,\n id,\n isEditable,\n collectionSlug,\n getDocPreferences,\n parentDocumentFields,\n globalSlug,\n schemaFieldsPath,\n ],\n )\n\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useLexicalEditable","Form","RenderFields","useDocumentForm","useDocumentInfo","useServerFunctions","abortAndIgnore","deepCopyObjectSimpleWithoutReactComponents","React","useCallback","useEffect","useRef","useState","v4","uuid","useEditorConfigContext","RegisterFormSubmit","DrawerContent","data","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPath","schemaPathSuffix","submitRef","id","collectionSlug","getDocPreferences","globalSlug","fields","parentDocumentFields","isEditable","onChangeAbortControllerRef","AbortController","initialState","setInitialState","fieldProps","featureClientSchemaMap","getFormState","schemaFieldsPath","controller","awaitInitialState","state","docPermissions","docPreferences","documentFormState","excludeFiles","initialBlockData","operation","readOnly","renderAllFields","signal","onChange","formState","prevFormState","current","initialBlockFormState","_jsxs","beforeSubmit","className","disableValidationOnSubmit","Array","isArray","onSubmit","_jsx","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions"],"sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n Form,\n RenderFields,\n useDocumentForm,\n useDocumentInfo,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\nimport { RegisterFormSubmit } from './useDrawerSubmit.js'\nimport './index.css'\n\nexport const DrawerContent: React.FC<\n {\n submitRef: React.RefObject<(() => void) | null>\n } & Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>\n> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n submitRef,\n}) => {\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n const { fields: parentDocumentFields } = useDocumentForm()\n const isEditable = useLexicalEditable()\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const {\n fieldProps: { featureClientSchemaMap },\n } = useEditorConfigContext()\n\n const { getFormState } = useServerFunctions()\n\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any = fieldMapOverride ?? featureClientSchemaMap[featureKey]?.[schemaFieldsPath] // Field Schema\n\n useEffect(() => {\n const controller = new AbortController()\n\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: data ?? {},\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n globalSlug,\n initialBlockData: data,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [\n schemaFieldsPath,\n id,\n data,\n getFormState,\n collectionSlug,\n isEditable,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n ])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }: { formState: FormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [\n getFormState,\n id,\n isEditable,\n collectionSlug,\n getDocPreferences,\n parentDocumentFields,\n globalSlug,\n schemaFieldsPath,\n ],\n )\n\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n className=\"fields-drawer\"\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <RegisterFormSubmit submitRef={submitRef} />\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ @layer payload-default {
2
+ .fields-drawer {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: var(--spacer-3);
6
+ padding: var(--spacer-2-5);
7
+ }
8
+
9
+ .fields-drawer .radio-group .field-description {
10
+ margin-top: var(--spacer-2);
11
+ }
12
+ }
@@ -0,0 +1,29 @@
1
+ import type { FC } from 'react';
2
+ import type React from 'react';
3
+ /**
4
+ * Shared logic for drawers that render their submit button in the drawer header.
5
+ *
6
+ * The header's `onClick` is defined outside the `Form` provider, so it cannot call
7
+ * `useForm().submit()` directly. This hook owns a ref to the form's `submit` function,
8
+ * which is populated from inside the form via `<RegisterFormSubmit submitRef={submitRef} />`.
9
+ *
10
+ * Returns the `headerActions` array to spread onto a `Drawer` and the `submitRef`
11
+ * to pass to `RegisterFormSubmit`.
12
+ */
13
+ export declare const useDrawerSubmit: () => {
14
+ headerActions: {
15
+ label: string;
16
+ onClick: () => void | undefined;
17
+ style: "primary";
18
+ }[];
19
+ submitRef: React.RefObject<(() => void) | null>;
20
+ };
21
+ /**
22
+ * Mounts inside a `<Form>` to populate `submitRef` (from `useDrawerSubmit`) with the form's
23
+ * `submit` function, allowing drawer header actions rendered outside the form's React tree
24
+ * to trigger submission.
25
+ */
26
+ export declare const RegisterFormSubmit: FC<{
27
+ submitRef: React.RefObject<(() => void) | null>;
28
+ }>;
29
+ //# sourceMappingURL=useDrawerSubmit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDrawerSubmit.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/useDrawerSubmit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;sCAEM,IAAI;CAcrC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC;IAClC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;CAChD,CAWA,CAAA"}
@@ -0,0 +1,97 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { useForm, useTranslation } from '@payloadcms/ui';
5
+ import { useEffect, useMemo, useRef } from 'react';
6
+ /**
7
+ * Shared logic for drawers that render their submit button in the drawer header.
8
+ *
9
+ * The header's `onClick` is defined outside the `Form` provider, so it cannot call
10
+ * `useForm().submit()` directly. This hook owns a ref to the form's `submit` function,
11
+ * which is populated from inside the form via `<RegisterFormSubmit submitRef={submitRef} />`.
12
+ *
13
+ * Returns the `headerActions` array to spread onto a `Drawer` and the `submitRef`
14
+ * to pass to `RegisterFormSubmit`.
15
+ */
16
+ export const useDrawerSubmit = () => {
17
+ const $ = _c(7);
18
+ const {
19
+ t
20
+ } = useTranslation();
21
+ const submitRef = useRef(null);
22
+ let t0;
23
+ if ($[0] !== t) {
24
+ t0 = t("fields:saveChanges");
25
+ $[0] = t;
26
+ $[1] = t0;
27
+ } else {
28
+ t0 = $[1];
29
+ }
30
+ let t1;
31
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
32
+ t1 = () => submitRef.current?.();
33
+ $[2] = t1;
34
+ } else {
35
+ t1 = $[2];
36
+ }
37
+ let t2;
38
+ if ($[3] !== t0) {
39
+ t2 = [{
40
+ label: t0,
41
+ onClick: t1,
42
+ style: "primary"
43
+ }];
44
+ $[3] = t0;
45
+ $[4] = t2;
46
+ } else {
47
+ t2 = $[4];
48
+ }
49
+ const headerActions = t2;
50
+ let t3;
51
+ if ($[5] !== headerActions) {
52
+ t3 = {
53
+ headerActions,
54
+ submitRef
55
+ };
56
+ $[5] = headerActions;
57
+ $[6] = t3;
58
+ } else {
59
+ t3 = $[6];
60
+ }
61
+ return t3;
62
+ };
63
+ /**
64
+ * Mounts inside a `<Form>` to populate `submitRef` (from `useDrawerSubmit`) with the form's
65
+ * `submit` function, allowing drawer header actions rendered outside the form's React tree
66
+ * to trigger submission.
67
+ */
68
+ export const RegisterFormSubmit = t0 => {
69
+ const $ = _c(4);
70
+ const {
71
+ submitRef
72
+ } = t0;
73
+ const {
74
+ submit
75
+ } = useForm();
76
+ let t1;
77
+ let t2;
78
+ if ($[0] !== submit || $[1] !== submitRef) {
79
+ t1 = () => {
80
+ submitRef.current = () => void submit();
81
+ return () => {
82
+ submitRef.current = null;
83
+ };
84
+ };
85
+ t2 = [submit, submitRef];
86
+ $[0] = submit;
87
+ $[1] = submitRef;
88
+ $[2] = t1;
89
+ $[3] = t2;
90
+ } else {
91
+ t1 = $[2];
92
+ t2 = $[3];
93
+ }
94
+ useEffect(t1, t2);
95
+ return null;
96
+ };
97
+ //# sourceMappingURL=useDrawerSubmit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDrawerSubmit.js","names":["c","_c","useForm","useTranslation","useEffect","useMemo","useRef","useDrawerSubmit","$","t","submitRef","t0","t1","Symbol","for","current","t2","label","onClick","style","headerActions","t3","RegisterFormSubmit","submit"],"sources":["../../../src/utilities/fieldsDrawer/useDrawerSubmit.ts"],"sourcesContent":["'use client'\nimport type { FC } from 'react'\nimport type React from 'react'\n\nimport { useForm, useTranslation } from '@payloadcms/ui'\nimport { useEffect, useMemo, useRef } from 'react'\n\n/**\n * Shared logic for drawers that render their submit button in the drawer header.\n *\n * The header's `onClick` is defined outside the `Form` provider, so it cannot call\n * `useForm().submit()` directly. This hook owns a ref to the form's `submit` function,\n * which is populated from inside the form via `<RegisterFormSubmit submitRef={submitRef} />`.\n *\n * Returns the `headerActions` array to spread onto a `Drawer` and the `submitRef`\n * to pass to `RegisterFormSubmit`.\n */\nexport const useDrawerSubmit = () => {\n const { t } = useTranslation()\n const submitRef = useRef<(() => void) | null>(null)\n\n const headerActions = useMemo(\n () => [\n {\n label: t('fields:saveChanges'),\n onClick: () => submitRef.current?.(),\n style: 'primary' as const,\n },\n ],\n [t],\n )\n\n return { headerActions, submitRef }\n}\n\n/**\n * Mounts inside a `<Form>` to populate `submitRef` (from `useDrawerSubmit`) with the form's\n * `submit` function, allowing drawer header actions rendered outside the form's React tree\n * to trigger submission.\n */\nexport const RegisterFormSubmit: FC<{\n submitRef: React.RefObject<(() => void) | null>\n}> = ({ submitRef }) => {\n const { submit } = useForm()\n\n useEffect(() => {\n submitRef.current = () => void submit()\n return () => {\n submitRef.current = null\n }\n }, [submit, submitRef])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,OAAO,EAAEC,cAAc,QAAQ;AACxC,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ;AAE3C;;;;;;;;;;AAUA,OAAO,MAAMC,eAAA,GAAkBA,CAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAC7B;IAAAQ;EAAA,IAAcN,cAAA;EACd,MAAAO,SAAA,GAAkBJ,MAAA,KAA4B;EAAA,IAAAK,EAAA;EAAA,IAAAH,CAAA,QAAAC,CAAA;IAKjCE,EAAA,GAAAF,CAAA,CAAE;IAAAD,CAAA,MAAAC,CAAA;IAAAD,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAJ,CAAA,QAAAK,MAAA,CAAAC,GAAA;IACAF,EAAA,GAAAA,CAAA,KAAMF,SAAA,CAAAK,OAAA;IAAiBP,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAR,CAAA,QAAAG,EAAA;IAH9BK,EAAA;MAAAC,KAAA,EAEKN,EAAE;MAAAO,OAAA,EACAN,EAAuB;MAAAO,KAAA,EACzB;IAAA;IAEVX,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAPH,MAAAY,aAAA,GACQJ,EAML;EACE,IAAAK,EAAA;EAAA,IAAAb,CAAA,QAAAY,aAAA;IAGEC,EAAA;MAAAD,aAAA;MAAAV;IAAA;IAA2BF,CAAA,MAAAY,aAAA;IAAAZ,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAAA,OAA3Ba,EAA2B;AAAA,CACpC;AAEA;;;;;AAKA,OAAO,MAAMC,kBAAA,GAERX,EAAA;EAAA,MAAAH,CAAA,GAAAP,EAAA;EAAC;IAAAS;EAAA,IAAAC,EAAa;EACjB;IAAAY;EAAA,IAAmBrB,OAAA;EAAA,IAAAU,EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAR,CAAA,QAAAe,MAAA,IAAAf,CAAA,QAAAE,SAAA;IAETE,EAAA,GAAAA,CAAA;MACRF,SAAA,CAAAK,OAAA,cAA+BQ,MAAA;MAAA;QAE7Bb,SAAA,CAAAK,OAAA;MAAA;IAAA;IAEDC,EAAA,IAACO,MAAA,EAAQb,SAAA;IAAUF,CAAA,MAAAe,MAAA;IAAAf,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAQ,EAAA;EAAA;IAAAJ,EAAA,GAAAJ,CAAA;IAAAQ,EAAA,GAAAR,CAAA;EAAA;EALtBJ,SAAA,CAAUQ,EAKV,EAAGI,EAAmB;EAAA;AAAA,CAGxB","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;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,eAAO,MAAM,oBAAoB,GAC9B,MAAM;IACL,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IACtC,kBAAkB,EAAE,wBAAwB,CAAA;CAC7C,KAAG,eAAe,CAAC,mBAAmB,CAiDtC,CAAA"}
1
+ {"version":3,"file":"generateImportMap.d.ts","sourceRoot":"","sources":["../../src/utilities/generateImportMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,eAAO,MAAM,oBAAoB,GAC9B,MAAM;IACL,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IACtC,kBAAkB,EAAE,wBAAwB,CAAA;CAC7C,KAAG,eAAe,CAAC,mBAAmB,CAoDtC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { genImportMapIterateFields } from 'payload';
2
+ import { isRSCEnabled } from 'payload/shared';
2
3
  export const getGenerateImportMap = args => ({
3
4
  addToImportMap,
4
5
  baseDir,
@@ -6,9 +7,12 @@ export const getGenerateImportMap = args => ({
6
7
  importMap,
7
8
  imports
8
9
  }) => {
9
- addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell');
10
- addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalField');
11
- addToImportMap('@payloadcms/richtext-lexical/rsc#LexicalDiffComponent');
10
+ if (isRSCEnabled()) {
11
+ addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell');
12
+ addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalField');
13
+ addToImportMap('@payloadcms/richtext-lexical/rsc#LexicalDiffComponent');
14
+ }
15
+ addToImportMap('@payloadcms/richtext-lexical/client#ClientEntryLexicalField');
12
16
  addToImportMap(args.lexicalEditorArgs?.views);
13
17
  for (const resolvedFeature of args.resolvedFeatureMap.values()) {
14
18
  if ('componentImports' in resolvedFeature) {
@@ -1 +1 @@
1
- {"version":3,"file":"generateImportMap.js","names":["genImportMapIterateFields","getGenerateImportMap","args","addToImportMap","baseDir","config","importMap","imports","lexicalEditorArgs","views","resolvedFeature","resolvedFeatureMap","values","componentImports","Array","isArray","Object","ClientFeature","nodes","length","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'\nimport type { LexicalEditorProps } from '../types/index.js'\n\nexport const getGenerateImportMap =\n (args: {\n lexicalEditorArgs?: LexicalEditorProps\n resolvedFeatureMap: ResolvedServerFeatureMap\n }): 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 addToImportMap(args.lexicalEditorArgs?.views)\n\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 (Array.isArray(resolvedFeature.componentImports)) {\n addToImportMap(resolvedFeature.componentImports)\n } else if (typeof resolvedFeature.componentImports === 'object') {\n addToImportMap(Object.values(resolvedFeature.componentImports))\n }\n }\n\n addToImportMap(resolvedFeature.ClientFeature)\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;AAK1C,OAAO,MAAMC,oBAAA,GACVC,IAAA,IAID,CAAC;EAAEC,cAAc;EAAEC,OAAO;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAO,CAAE;EACtDJ,cAAA,CAAe;EACfA,cAAA,CAAe;EACfA,cAAA,CAAe;EAEfA,cAAA,CAAeD,IAAA,CAAKM,iBAAiB,EAAEC,KAAA;EAEvC,KAAK,MAAMC,eAAA,IAAmBR,IAAA,CAAKS,kBAAkB,CAACC,MAAM,IAAI;IAC9D,IAAI,sBAAsBF,eAAA,EAAiB;MACzC,IAAI,OAAOA,eAAA,CAAgBG,gBAAgB,KAAK,YAAY;QAC1DH,eAAA,CAAgBG,gBAAgB,CAAC;UAC/BV,cAAA;UACAC,OAAA;UACAC,MAAA;UACAC,SAAA;UACAC;QACF;MACF,OAAO,IAAIO,KAAA,CAAMC,OAAO,CAACL,eAAA,CAAgBG,gBAAgB,GAAG;QAC1DV,cAAA,CAAeO,eAAA,CAAgBG,gBAAgB;MACjD,OAAO,IAAI,OAAOH,eAAA,CAAgBG,gBAAgB,KAAK,UAAU;QAC/DV,cAAA,CAAea,MAAA,CAAOJ,MAAM,CAACF,eAAA,CAAgBG,gBAAgB;MAC/D;IACF;IAEAV,cAAA,CAAeO,eAAA,CAAgBO,aAAa;IAE5C;;;IAGA,IAAIP,eAAA,CAAgBQ,KAAK,EAAEC,MAAA,EAAQ;MACjC,KAAK,MAAMC,IAAA,IAAQV,eAAA,CAAgBQ,KAAK,EAAE;QACxC,IAAI,OAAOE,IAAA,EAAMC,YAAA,KAAiB,YAAY;UAC5C;QACF;QACA,MAAMC,SAAA,GAAYF,IAAA,CAAKC,YAAY,CAAC,CAAC;QACrC,IAAIC,SAAA,EAAWH,MAAA,EAAQ;UACrBnB,yBAAA,CAA0B;YACxBG,cAAA;YACAC,OAAA;YACAC,MAAA;YACAkB,MAAA,EAAQD,SAAA;YACRhB,SAAA;YACAC;UACF;QACF;MACF;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"generateImportMap.js","names":["genImportMapIterateFields","isRSCEnabled","getGenerateImportMap","args","addToImportMap","baseDir","config","importMap","imports","lexicalEditorArgs","views","resolvedFeature","resolvedFeatureMap","values","componentImports","Array","isArray","Object","ClientFeature","nodes","length","node","getSubFields","subFields","fields"],"sources":["../../src/utilities/generateImportMap.tsx"],"sourcesContent":["import type { RichTextAdapter } from 'payload'\n\nimport { genImportMapIterateFields } from 'payload'\nimport { isRSCEnabled } from 'payload/shared'\n\nimport type { ResolvedServerFeatureMap } from '../features/typesServer.js'\nimport type { LexicalEditorProps } from '../types/index.js'\n\nexport const getGenerateImportMap =\n (args: {\n lexicalEditorArgs?: LexicalEditorProps\n resolvedFeatureMap: ResolvedServerFeatureMap\n }): RichTextAdapter['generateImportMap'] =>\n ({ addToImportMap, baseDir, config, importMap, imports }) => {\n if (isRSCEnabled()) {\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell')\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalField')\n addToImportMap('@payloadcms/richtext-lexical/rsc#LexicalDiffComponent')\n }\n addToImportMap('@payloadcms/richtext-lexical/client#ClientEntryLexicalField')\n\n addToImportMap(args.lexicalEditorArgs?.views)\n\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 (Array.isArray(resolvedFeature.componentImports)) {\n addToImportMap(resolvedFeature.componentImports)\n } else if (typeof resolvedFeature.componentImports === 'object') {\n addToImportMap(Object.values(resolvedFeature.componentImports))\n }\n }\n\n addToImportMap(resolvedFeature.ClientFeature)\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;AAC1C,SAASC,YAAY,QAAQ;AAK7B,OAAO,MAAMC,oBAAA,GACVC,IAAA,IAID,CAAC;EAAEC,cAAc;EAAEC,OAAO;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAO,CAAE;EACtD,IAAIP,YAAA,IAAgB;IAClBG,cAAA,CAAe;IACfA,cAAA,CAAe;IACfA,cAAA,CAAe;EACjB;EACAA,cAAA,CAAe;EAEfA,cAAA,CAAeD,IAAA,CAAKM,iBAAiB,EAAEC,KAAA;EAEvC,KAAK,MAAMC,eAAA,IAAmBR,IAAA,CAAKS,kBAAkB,CAACC,MAAM,IAAI;IAC9D,IAAI,sBAAsBF,eAAA,EAAiB;MACzC,IAAI,OAAOA,eAAA,CAAgBG,gBAAgB,KAAK,YAAY;QAC1DH,eAAA,CAAgBG,gBAAgB,CAAC;UAC/BV,cAAA;UACAC,OAAA;UACAC,MAAA;UACAC,SAAA;UACAC;QACF;MACF,OAAO,IAAIO,KAAA,CAAMC,OAAO,CAACL,eAAA,CAAgBG,gBAAgB,GAAG;QAC1DV,cAAA,CAAeO,eAAA,CAAgBG,gBAAgB;MACjD,OAAO,IAAI,OAAOH,eAAA,CAAgBG,gBAAgB,KAAK,UAAU;QAC/DV,cAAA,CAAea,MAAA,CAAOJ,MAAM,CAACF,eAAA,CAAgBG,gBAAgB;MAC/D;IACF;IAEAV,cAAA,CAAeO,eAAA,CAAgBO,aAAa;IAE5C;;;IAGA,IAAIP,eAAA,CAAgBQ,KAAK,EAAEC,MAAA,EAAQ;MACjC,KAAK,MAAMC,IAAA,IAAQV,eAAA,CAAgBQ,KAAK,EAAE;QACxC,IAAI,OAAOE,IAAA,EAAMC,YAAA,KAAiB,YAAY;UAC5C;QACF;QACA,MAAMC,SAAA,GAAYF,IAAA,CAAKC,YAAY,CAAC,CAAC;QACrC,IAAIC,SAAA,EAAWH,MAAA,EAAQ;UACrBpB,yBAAA,CAA0B;YACxBI,cAAA;YACAC,OAAA;YACAC,MAAA;YACAkB,MAAA,EAAQD,SAAA;YACRhB,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": "4.0.0-internal.5f0cd13",
3
+ "version": "4.0.0-internal.a0ef1b8",
4
4
  "description": "The officially supported Lexical richtext adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -59,8 +59,9 @@
59
59
  "default": "./dist/exports/plaintext/index.js"
60
60
  },
61
61
  "./rsc": {
62
- "import": "./dist/exports/server/rsc.js",
63
62
  "types": "./dist/exports/server/rsc.d.ts",
63
+ "browser": "./dist/exports/server/rsc.browser.js",
64
+ "import": "./dist/exports/server/rsc.js",
64
65
  "default": "./dist/exports/server/rsc.js"
65
66
  },
66
67
  "./lexical": {
@@ -373,8 +374,8 @@
373
374
  "react-error-boundary": "6.1.1",
374
375
  "ts-essentials": "10.0.3",
375
376
  "uuid": "14.0.0",
376
- "@payloadcms/translations": "4.0.0-internal.5f0cd13",
377
- "@payloadcms/ui": "4.0.0-internal.5f0cd13"
377
+ "@payloadcms/translations": "4.0.0-internal.a0ef1b8",
378
+ "@payloadcms/ui": "4.0.0-internal.a0ef1b8"
378
379
  },
379
380
  "devDependencies": {
380
381
  "@babel/cli": "7.27.2",
@@ -393,7 +394,7 @@
393
394
  "esbuild": "0.27.1",
394
395
  "esbuild-sass-plugin": "3.3.1",
395
396
  "swc-plugin-transform-remove-imports": "8.3.0",
396
- "payload": "4.0.0-internal.5f0cd13",
397
+ "payload": "4.0.0-internal.a0ef1b8",
397
398
  "@payloadcms/eslint-config": "3.28.0"
398
399
  },
399
400
  "peerDependencies": {
@@ -401,8 +402,8 @@
401
402
  "@faceless-ui/scroll-info": "2.0.0",
402
403
  "react": "^19.0.1 || ^19.1.2 || ^19.2.1",
403
404
  "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
404
- "@payloadcms/next": "4.0.0-internal.5f0cd13",
405
- "payload": "4.0.0-internal.5f0cd13"
405
+ "@payloadcms/next": "4.0.0-internal.a0ef1b8",
406
+ "payload": "4.0.0-internal.a0ef1b8"
406
407
  },
407
408
  "engines": {
408
409
  "node": ">=24.15.0"
@@ -1,2 +0,0 @@
1
- "use client";import{a as Be,e as Oe,g as $,h as K,j as Ie,k as Fe,l as $e,m as Ke,n as Se,o as Pe,p as je}from"./chunk-LH634DPU.js";import{a as Ae,b as P}from"./chunk-RJ5MAOKZ.js";import{jsx as L,jsxs as le}from"react/jsx-runtime";import{BulkUploadProvider as Zr,FieldDescription as en,FieldError as tn,FieldLabel as on,isFieldRTL as rn,RenderCustomComponent as At,useConfig as nn,useEditDepth as sn,useEffectEvent as ln,useField as an,useLocale as cn}from"@payloadcms/ui";import{mergeFieldStyles as un}from"@payloadcms/ui/shared";import{dequal as dn}from"dequal/lite";import Bt,{useCallback as Ot,useEffect as It,useMemo as fn,useState as Ft}from"react";import{ErrorBoundary as mn}from"react-error-boundary";import"./bundled.css";import{jsx as j}from"react/jsx-runtime";import{LexicalComposer as Vr}from"@lexical/react/LexicalComposer.js";import{useEditDepth as Wr}from"@payloadcms/ui";import*as _t from"react";import{useMemo as Yr}from"react";import{c as vr}from"react/compiler-runtime";import{jsx as C,jsxs as ie}from"react/jsx-runtime";import{useLexicalComposerContext as _r}from"@lexical/react/LexicalComposerContext.js";import{LexicalErrorBoundary as kr}from"@lexical/react/LexicalErrorBoundary.js";import{HistoryPlugin as Lr}from"@lexical/react/LexicalHistoryPlugin.js";import{OnChangePlugin as Dr}from"@lexical/react/LexicalOnChangePlugin.js";import{RichTextPlugin as Mr}from"@lexical/react/LexicalRichTextPlugin.js";import{useLexicalEditable as Ar}from"@lexical/react/useLexicalEditable";import{BLUR_COMMAND as Br,COMMAND_PRIORITY_LOW as Rt,FOCUS_COMMAND as Or}from"lexical";import*as Q from"react";import{useEffect as Ir,useState as Fr}from"react";import{jsx as ze}from"react/jsx-runtime";import"react";var z=({anchorElem:e,clientProps:t,plugin:o})=>o.position==="floatingAnchorElem"&&e?o.Component&&ze(o.Component,{anchorElem:e,clientProps:t}):o.Component&&ze(o.Component,{clientProps:t});import{c as zt}from"react/compiler-runtime";import{copyToClipboard as He}from"@lexical/clipboard";import{useLexicalComposerContext as Ht}from"@lexical/react/LexicalComposerContext.js";import{objectKlassEquals as Vt}from"@lexical/utils";import Ve from"bson-objectid";import{$getSelection as Wt,$isNodeSelection as Yt,COMMAND_PRIORITY_LOW as Gt,COPY_COMMAND as Ut}from"lexical";import{useEffect as Jt}from"react";var Te=e=>{if("fields"in e&&typeof e.fields=="object"&&e.fields!==null&&"id"in e.fields?e.fields.id=new Ve.default().toHexString():"id"in e&&(e.id=new Ve.default().toHexString()),e.children)for(let t of e.children)Te(t)};function We(){let e=zt(3),[t]=Ht(),o,r;return e[0]!==t?(o=()=>t.registerCommand(Ut,n=>{let c=Wt();if(Yt(c)){let s=c.getNodes()[0]?.exportJSON(),u=JSON.parse(JSON.stringify(s));Te(u);let d={namespace:t._config.namespace,nodes:[u]},m=JSON.stringify(d);return He(t,null,{"application/x-lexical-editor":m,"text/plain":""}).catch(qt),!0}return He(t,Vt(n,ClipboardEvent)?n:null).then(()=>{if(!(n instanceof ClipboardEvent)||!n.clipboardData)throw new Error("No clipboard event");let l=n.clipboardData.getData("application/x-lexical-editor");if(!l)return!0;let s=JSON.parse(l);for(let d of s.nodes)Te(d);let u=JSON.stringify(s);n.clipboardData.setData("application/x-lexical-editor",u)}).catch(l=>{throw n instanceof ClipboardEvent&&n.clipboardData?.setData("application/x-lexical-editor",""),l}),!0},Gt),r=[t],e[0]=t,e[1]=o,e[2]=r):(o=e[1],r=e[2]),Jt(o,r),null}function qt(e){throw e}import{c as Qt}from"react/compiler-runtime";import{useLexicalComposerContext as Xt}from"@lexical/react/LexicalComposerContext";import{$findMatchingParent as fe,mergeRegister as Zt}from"@lexical/utils";import{$createNodeSelection as eo,$getEditor as te,$getNearestNodeFromDOMNode as to,$getSelection as me,$isDecoratorNode as H,$isElementNode as Re,$isLineBreakNode as oo,$isNodeSelection as pe,$isRangeSelection as Ye,$isRootOrShadowRoot as ro,$isTextNode as no,$setSelection as Ge,CLICK_COMMAND as io,COMMAND_PRIORITY_LOW as Y,KEY_ARROW_DOWN_COMMAND as so,KEY_ARROW_UP_COMMAND as lo,KEY_BACKSPACE_COMMAND as ao,KEY_DELETE_COMMAND as co,SELECTION_CHANGE_COMMAND as uo}from"lexical";import{useEffect as fo}from"react";function Ue(){let e=Qt(3),[t]=Xt(),o=Eo,r,n;return e[0]!==t?(r=()=>Zt(t.registerCommand(io,xo,Y),t.registerCommand(co,o,Y),t.registerCommand(ao,o,Y),t.registerCommand(uo,yo,Y),t.registerCommand(lo,go,Y),t.registerCommand(so,mo,Y)),n=[t],e[0]=t,e[1]=r,e[2]=n):(r=e[1],n=e[2]),fo(r,n),null}function mo(e){let t=me();if(pe(t)){e.preventDefault();let l=t.getNodes()[0]?.getNextSibling();if(H(l)){let d=te().getElementByKey(l.getKey());return d&&oe({element:d,node:l}),!0}if(!Re(l))return!0;let s=l.getFirstDescendant()??l;return s&&(fe(s,ge)?.selectEnd(),e.preventDefault()),!0}if(!Ye(t))return!1;let r=(t.isBackward()?t.anchor:t.focus).getNode(),n=fe(r,po),c=n?.getNextSibling();if(!n||c!==Je(n))return!1;if(H(c)){let l=te().getElementByKey(c.getKey());if(l)return oe({element:l,node:c}),e.preventDefault(),!0}return!1}function po(e){return Je(e)!==null}function go(e){let t=me();if(pe(t)){let l=t.getNodes()[0]?.getPreviousSibling();if(H(l)){let d=te().getElementByKey(l.getKey());return d?(oe({element:d,node:l}),e.preventDefault(),!0):!1}if(!Re(l))return!1;let s=l.getLastDescendant()??l;return s?(fe(s,ge)?.selectStart(),e.preventDefault(),!0):!1}if(!Ye(t))return!1;let r=(t.isBackward()?t.anchor:t.focus).getNode(),n=fe(r,ho),c=n?.getPreviousSibling();if(!n||c!==qe(n))return!1;if(H(c)){let l=te().getElementByKey(c.getKey());if(l)return oe({element:l,node:c}),e.preventDefault(),!0}return!1}function ho(e){return qe(e)!==null}function yo(){let e=No();return document.querySelector(".decorator-selected")?.classList.remove("decorator-selected"),e?(e.element?.classList.add("decorator-selected"),!0):!1}function xo(e){document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");let t=bo(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"]')?Ge(null):oe(t),!0}function Eo(e){let t=me();return pe(t)?(e.preventDefault(),t.getNodes().forEach(Co),!0):!1}function Co(e){e.remove()}function bo(e){if(!(e.target instanceof HTMLElement))return;let t=e.target.closest('[data-lexical-decorator="true"]');if(!(t instanceof HTMLElement))return;let o=to(t);return H(o)?{element:t,node:o}:void 0}function No(){let e=me();if(!pe(e))return;let t=e.getNodes();if(t.length!==1)return;let o=t[0];return H(o)?{decorator:o,element:te().getElementByKey(o.getKey())}:void 0}function oe({element:e,node:t}){document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");let o=eo();o.add(t.getKey()),Ge(o),e.scrollIntoView({behavior:"smooth",block:"nearest"}),e.classList.add("decorator-selected")}function ge(e){if(H(e)&&!e.isInline())return!0;if(!Re(e)||ro(e))return!1;let t=e.getFirstChild(),o=t===null||oo(t)||no(t)||t.isInline();return!e.isInline()&&e.canBeEmpty()!==!1&&o}function Je(e){let t=e.getNextSibling();for(;t!==null;){if(ge(t))return t;t=t.getNextSibling()}return null}function qe(e){let t=e.getPreviousSibling();for(;t!==null;){if(ge(t))return t;t=t.getPreviousSibling()}return null}import{jsx as ve}from"react/jsx-runtime";import{useLexicalComposerContext as vo}from"@lexical/react/LexicalComposerContext.js";import{$createParagraphNode as _o,isHTMLElement as ko}from"lexical";import*as et from"react";import{useCallback as Lo,useEffect as Ze,useRef as Do,useState as Mo}from"react";import{createPortal as Ao}from"react-dom";var G=(e,t,o,r,n=50,c=25)=>{let l=0;if(e&&!e.contains(r)){let{bottom:s,left:u,right:d,top:m}=e.getBoundingClientRect(),a=m+window.scrollY,i=s+window.scrollY;if(o<a-c||o>i+c||t<u-n||t>d+n)return-1;(t<u||t>d)&&(l=t<u?t-u:t-d)}return l};import{$getNodeByKey as ye}from"lexical";function U(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 he(e){let t=(u,d)=>u?parseFloat(window.getComputedStyle(u)[d]):0,{marginBottom:o,marginTop:r}=window.getComputedStyle(e),n=t(e.previousElementSibling,"marginBottom"),c=t(e.nextElementSibling,"marginTop"),l=Math.max(parseFloat(r),n);return{marginBottom:Math.max(parseFloat(o),c),marginTop:l}}import{$getRoot as wo}from"lexical";function V(e){return e.getEditorState().read(()=>wo().getChildrenKeys())}var So=1,Po=-1,Qe=0,B={props:null,result:null};function To(e,t,o=20){let r=e.x-t.x,n=e.y-t.y;return r*r+n*n<=o*o}function J(e){let{anchorElem:t,cache_threshold:o=20,editor:r,fuzzy:n=!1,horizontalOffset:c=0,point:{x:l,y:s},startIndex:u=0,useEdgeAsDefault:d=!1}=e;if(o>0&&B.props&&B.result&&B.props.fuzzy===e.fuzzy&&B.props.horizontalOffset===e.horizontalOffset&&B.props.useEdgeAsDefault===e.useEdgeAsDefault&&To(B.props.point,e.point,o))return B.result;let m=t.getBoundingClientRect(),a=V(r),i={blockElem:null,blockNode:null,distance:1/0,foundAtIndex:-1,isFoundNodeEmptyParagraph:!1};return r.getEditorState().read(()=>{if(d){let p=r.getElementByKey(a[0]),g=r.getElementByKey(a[a.length-1]);if(p&&g){let[f,E]=[U(p),U(g)];if(s<f.top?(i.blockElem=p,i.distance=f.top-s,i.blockNode=ye(a[0]),i.foundAtIndex=0):s>E.bottom&&(i.distance=s-E.bottom,i.blockNode=ye(a[a.length-1]),i.blockElem=g,i.foundAtIndex=a.length-1),i?.blockElem)return{blockElem:null,isFoundNodeEmptyParagraph:!1}}}let x=u,y=Qe;for(;x>=0&&x<a.length;){let p=a[x],g=r.getElementByKey(p);if(g===null)break;let f=new K(l+c,s),E=Ke.fromDOMRect(U(g)),{marginBottom:h,marginTop:b}=he(g),_=E.generateNewRect({bottom:E.bottom+h,left:m.left,right:m.right,top:E.top-b}),{distance:w,isOnBottomSide:v,isOnTopSide:D}=_.distanceFromPoint(f);if(w===0){i.blockElem=g,i.blockNode=ye(p),i.foundAtIndex=x,i.distance=w,i.blockNode&&i.blockNode.getType()==="paragraph"&&i.blockNode.getTextContent()===""&&(!n&&!e.returnEmptyParagraphs&&(i.blockElem=null,i.blockNode=null),i.isFoundNodeEmptyParagraph=!0);break}else n&&w<i.distance&&(i.blockElem=g,i.blockNode=ye(p),i.distance=w,i.foundAtIndex=x);y===Qe&&(D?y=Po:v?y=So:y=1/0),x+=y}}),B.props=e,B.result={blockElem:i.blockElem,blockNode:i.blockNode,foundAtIndex:i.foundAtIndex,isFoundNodeEmptyParagraph:i.isFoundNodeEmptyParagraph},{blockElem:i.blockElem,blockNode:i.blockNode,foundAtIndex:i.foundAtIndex,isFoundNodeEmptyParagraph:i.isFoundNodeEmptyParagraph}}function xe(e,t){return!!e.closest(`.${t}`)}var Ro=["IMG","INPUT","TEXTAREA","SELECT","BUTTON","VIDEO","OBJECT","EMBED","IFRAME","HR"];function Xe(e){if(!e||Ro.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 Ee(e,t,o,r=0){if(!e){t.style.opacity="0",t.style.transform="translate(-10000px, -10000px)";return}let n=e.getBoundingClientRect(),c=window.getComputedStyle(e),l=t.getBoundingClientRect(),s=o.getBoundingClientRect(),u;if(["LexicalEditorTheme__block","LexicalEditorTheme__upload","LexicalEditorTheme__relationship"].some(a=>e.classList.contains(a)||e.firstElementChild?.classList.contains(a)))u=n.top+8-s.top;else{let a=Xe(e)?parseInt(c.lineHeight,10):0;u=n.top+(a-l.height)/2-s.top}let m=r;t.style.opacity="1",t.style.transform=`translate(${m}px, ${u}px)`}var Bo="add-block-menu",Ce=1/0;function Oo(e){return e===0?1/0:Ce>=0&&Ce<e?Ce:Math.floor(e/2)}function Io(e,t,o){let r=t.parentElement,{editorConfig:n}=P(),c=n?.admin?.hideGutter?-24:12,l=Do(null),[s,u]=Mo(null);Ze(()=>{function m(a){let i=a.target;if(!ko(i))return;let x=G(r,a.pageX,a.pageY,i);if(x===-1){u(null);return}if(xe(i,Bo))return;let y=V(e),{blockElem:p,blockNode:g,foundAtIndex:f}=J({anchorElem:t,cache_threshold:0,editor:e,horizontalOffset:-x,point:new K(a.x,a.y),returnEmptyParagraphs:!0,startIndex:Oo(y.length),useEdgeAsDefault:!1});Ce=f,p&&g&&(s?.node!==g||s?.elem!==p)&&u({elem:p,node:g})}return document?.addEventListener("mousemove",m),()=>{document?.removeEventListener("mousemove",m)}},[r,t,e,s]),Ze(()=>{l.current&&s?.node&&Ee(s?.elem,l.current,t,c)},[t,s,c]);let d=Lo(m=>{let a=s;a?.node&&(e.update(()=>{let i=!0;if((a?.node.getType()!=="paragraph"||a.node.getTextContent()!=="")&&(i=!1),!i){let x=_o();a?.node.insertAfter(x),setTimeout(()=>{a={elem:e.getElementByKey(x.getKey()),node:x},u(a)},0)}}),setTimeout(()=>{e.update(()=>{e.focus(),a?.node&&"select"in a.node&&typeof a.node.select=="function"&&a.node.select()})},1),setTimeout(()=>{e.dispatchCommand(Fe,{node:a?.node})},2),m.stopPropagation(),m.preventDefault())},[e,s]);return Ao(ve(et.Fragment,{children:ve("button",{"aria-label":"Add block",className:"icon add-block-menu",onClick:m=>{d(m)},ref:l,type:"button",children:ve("div",{className:o?"icon":""})})}),t)}function tt(e){let{anchorElem:t}=e,o=t===void 0?document.body:t,[r]=vo();return Io(r,o,r._editable)}import{jsx as be,jsxs as $o}from"react/jsx-runtime";import{useLexicalComposerContext as Ko}from"@lexical/react/LexicalComposerContext.js";import{eventFiles as nt}from"@lexical/rich-text";import{$getNearestNodeFromDOMNode as it,$getNodeByKey as jo,isHTMLElement as _e}from"lexical";import*as ut from"react";import{useEffect as ke,useRef as re,useState as st}from"react";import{createPortal as zo}from"react-dom";var ot=0,Fo=-24;var W=0;function rt(e,t,o,r,n,c,l,s,u,d=!1){let{height:m,top:a}=r.getBoundingClientRect(),{top:i,width:x}=l.getBoundingClientRect(),{marginBottom:y,marginTop:p}=he(r),g=a,f=c>=a+m/2+window.scrollY,E=!1;if(n?.elem)if(r!==n?.elem)(f&&n?.elem&&n?.elem===r.nextElementSibling||!f&&n?.elem&&n?.elem===r.previousElementSibling)&&(W++,W<200&&(E=!0));else{W++;let w=n?.boundingBox?.y,v=r.getBoundingClientRect().y;(f===n?.isBelow&&w===v||W<200)&&(E=!1)}if(E)return{isBelow:f,willStayInSamePosition:E};d?g+=m/2:f?g+=m+y/2:g-=p/2;let h=0;d||(f?h=-ot:h=ot);let b=g-i+h,_=Fo-t;return o.style.width=`calc(${x}px - ${e} - var(--spacer-5))`,o.style.opacity=".8",o.style.transform=`translate(${_}px, calc(${b}px - 2px))`,n?.elem&&(n.elem.style.opacity="",n?.elem===r?f?n.elem.style.marginTop="":n.elem.style.marginBottom="":(n.elem.style.marginBottom="",n.elem.style.marginTop="")),W=0,{isBelow:f,willStayInSamePosition:E}}var Ho="draggable-block-menu",lt="application/x-lexical-drag-block",ne=1/0;function at(e){return e===0?1/0:ne>=0&&ne<e?ne:Math.floor(e/2)}function Vo(e,t){let{transform:o}=t.style;e.setDragImage(t,0,0),setTimeout(()=>{t.style.transform=o})}function ct(e,t){e&&(e.style.opacity="0"),t&&(t.style.opacity="",t.style.marginBottom="",t.style.marginTop="")}function Wo(e,t,o){let r=t.parentElement,n=re(null),c=re(null),l=re(null),s=re(!1),u=re([]),[d,m]=st(null),[a,i]=st(null),{editorConfig:x}=P(),y=x?.admin?.hideGutter?-44:-8;ke(()=>{function f(E){let h=E.target;if(!_e(h))return;let b=G(r,E.pageX,E.pageY,h);if(b===-1){m(null);return}if(xe(h,Ho))return;let _=V(e),{blockElem:w,foundAtIndex:v,isFoundNodeEmptyParagraph:D}=J({anchorElem:t,cache_threshold:0,editor:e,horizontalOffset:-b,point:new K(E.x,E.y),startIndex:at(_.length),useEdgeAsDefault:!1,verbose:!1});ne=v,!(!w&&!D)&&d!==w&&m(w)}return document?.addEventListener("mousemove",f),()=>{document?.removeEventListener("mousemove",f)}},[r,t,e,d]),ke(()=>{n.current&&Ee(d,n.current,t,y)},[t,d,y]),ke(()=>{function f(h){if(!s.current)return!1;let[b]=nt(h);if(b)return!1;let{pageY:_,target:w}=h;if(!_e(w))return!1;let v=G(r,h.pageX,h.pageY,w,100,50),D=V(e),{blockElem:S,foundAtIndex:I,isFoundNodeEmptyParagraph:R}=J({anchorElem:t,editor:e,fuzzy:!0,horizontalOffset:-v,point:new K(h.x,h.y),startIndex:at(D.length),useEdgeAsDefault:!0,verbose:!0});ne=I;let F=c.current;if(S===null||F===null)return!1;if(h.preventDefault(),h.dataTransfer.dropEffect="move",d!==S){let{isBelow:k,willStayInSamePosition:M}=rt(x?.admin?.hideGutter?"0px":"var(--spacer-5)",y+(x?.admin?.hideGutter?n?.current?.getBoundingClientRect()?.width??0:-(n?.current?.getBoundingClientRect()?.width??0)),F,S,a,_,t,h,l,R);M||i({boundingBox:S.getBoundingClientRect(),elem:S,isBelow:k})}else a?.elem&&(ct(F,a.elem),i({boundingBox:S.getBoundingClientRect(),elem:S,isBelow:!1}));return!0}function E(h){if(!s.current)return!1;let[b]=nt(h);if(b)return!1;let{dataTransfer:_,pageY:w,target:v}=h,D=_?.getData(lt)||"";return e.update(()=>{let S=jo(D);if(!S||!_e(v))return!1;let I=G(r,h.pageX,h.pageY,v,100,50),{blockElem:R,isFoundNodeEmptyParagraph:F}=J({anchorElem:t,editor:e,fuzzy:!0,horizontalOffset:-I,point:new K(h.x,h.y),useEdgeAsDefault:!0});if(!R)return!1;let k=it(R);if(!k)return!1;if(k===S)return!0;let{height:M,top:ae}=U(R),Ne=w>=ae+M/2+window.scrollY;F?(k.insertBefore(S),k.remove()):Ne?k.insertAfter(S):k.insertBefore(S),d!==null&&m(null),document.querySelectorAll(".lexical-block-highlighter").forEach(T=>{T.remove()});let we=e.getElementByKey(S.getKey()),ce=setTimeout(()=>{let T=we?.getBoundingClientRect();if(!T)return;let N=document.createElement("div");N.className="lexical-block-highlighter",N.style.backgroundColor="var(--theme-elevation-1000",N.style.transition="opacity 0.5s ease-in-out",N.style.zIndex="1",N.style.pointerEvents="none",N.style.boxSizing="border-box",N.style.borderRadius="4px",N.style.position="absolute",document.body.appendChild(N),N.style.opacity="0.1",N.style.height=`${T.height+8}px`,N.style.width=`${T.width+8}px`,N.style.top=`${T.top+window.scrollY-4}px`,N.style.left=`${T.left-4}px`;let ue=setTimeout(()=>{N.style.opacity="0";let de=setTimeout(()=>{N.remove()},500);u.current.push(de)},1e3);u.current.push(ue)},120);u.current.push(ce)}),!0}return document.addEventListener("dragover",f),document.addEventListener("drop",E),()=>{document.removeEventListener("dragover",f),document.removeEventListener("drop",E),u.current.forEach(clearTimeout),u.current=[]}},[r,y,t,e,a,d,x?.admin?.hideGutter]);function p(f){let E=f.dataTransfer;if(!E||!d)return;Vo(E,d),E.effectAllowed="move";let h="";e.update(()=>{let b=it(d);b&&(h=b.getKey())}),s.current=!0,E.setData(lt,h)}function g(){s.current=!1,a?.elem&&ct(c.current,a?.elem)}return zo($o(ut.Fragment,{children:[be("button",{"aria-label":"Drag to move",className:"icon draggable-block-menu",draggable:!0,onDragEnd:g,onDragStart:p,ref:n,type:"button",children:be("div",{className:o?"icon":""})}),be("div",{className:"draggable-block-target-line",ref:c}),be("div",{className:"debug-highlight",ref:l})]}),t)}function dt(e){let{anchorElem:t}=e,o=t===void 0?document.body:t,[r]=Ko();return Wo(r,o,r._editable)}import{c as Yo}from"react/compiler-runtime";import{jsx as Le}from"react/jsx-runtime";import{useLexicalComposerContext as Go}from"@lexical/react/LexicalComposerContext";import{$createParagraphNode as Uo,$getRoot as Jo}from"lexical";import"react";var ft="insert-paragraph-at-end",mt=()=>{let e=Yo(2),[t]=Go(),{editorConfig:o}=P();if(o?.admin?.hideInsertParagraphAtEnd)return null;let r;return e[0]!==t?(r=Le("div",{"aria-label":"Insert Paragraph",className:ft,onClick:()=>{t.update(qo)},role:"button",tabIndex:0,children:Le("div",{className:`${ft}-inside`,children:Le("span",{children:"+"})})}),e[0]=t,e[1]=r):r=e[1],r};function qo(){let e=Uo();Jo().append(e),e.select()}import{c as Qo}from"react/compiler-runtime";import{useLexicalComposerContext as Xo}from"@lexical/react/LexicalComposerContext";import*as pt from"react";var gt=()=>{let e=Qo(4),{editorConfig:t}=P(),[o]=Xo(),r,n;return e[0]!==o||e[1]!==t.features.markdownTransformers?(r=()=>Be(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]),pt.useEffect(r,n),null};import{c as Zo}from"react/compiler-runtime";import{useLexicalComposerContext as er}from"@lexical/react/LexicalComposerContext.js";import{useEffect as tr}from"react";function ht(){let e=Zo(5),[t]=er(),{currentView:o,views:r}=$(),n,c;return e[0]!==o||e[1]!==t||e[2]!==r?(n=()=>{r&&(o==="default"?r.default?Se(t,r.default?.nodes):Pe(t):r[o]&&(Pe(t),Se(t,r[o]?.nodes)))},c=[t,r,o],e[0]=o,e[1]=t,e[2]=r,e[3]=n,e[4]=c):(n=e[3],c=e[4]),tr(n,c),null}import{useLexicalComposerContext as or}from"@lexical/react/LexicalComposerContext";import{$getSelection as rr,$isRangeSelection as nr,RootNode as ir}from"lexical";import{useEffect as sr}from"react";function yt(){let[e]=or();return sr(()=>e.registerNodeTransform(ir,t=>{let o=rr();if(nr(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 lr}from"@lexical/react/LexicalComposerContext";import{$getSelection as ar,COMMAND_PRIORITY_LOW as cr,SELECT_ALL_COMMAND as ur}from"lexical";import{useEffect as dr}from"react";function xt(){let[e]=lr();return dr(()=>e.registerCommand(ur,()=>{if(ar())return!1;let o=document.activeElement;return o instanceof HTMLInputElement&&o.select(),!0},cr),[e]),null}import{jsx as q,jsxs as Ct}from"react/jsx-runtime";import{useLexicalComposerContext as mr}from"@lexical/react/LexicalComposerContext.js";import{useTranslation as bt}from"@payloadcms/ui";import{useCallback as pr,useMemo as gr,useState as hr}from"react";import"react";import*as Nt from"react-dom";import{c as fr}from"react/compiler-runtime";import"react";function Et(e,t){let o=fr(4),{maxLength:r,minLength:n}=t,c=r===void 0?75:r,l=n===void 0?1:n,s;return o[0]!==c||o[1]!==l||o[2]!==e?(s=u=>{let{query:d}=u,m="[^"+e+Ie+"\\s]",i=new RegExp("(^|\\s|\\()(["+e+"]((?:"+m+"){0,"+c+"}))$").exec(d);if(i!==null){let x=i[1],y=i[3];if(y.length>=l)return{leadOffset:i.index+x.length,matchingString:y,replaceableString:i[2]}}return null},o[0]=c,o[1]=l,o[2]=e,o[3]=s):s=o[3],s}var O="slash-menu-popup";function yr({isSelected:e,item:t,onClick:o,onMouseEnter:r,ref:n}){let{fieldProps:{featureClientSchemaMap:c,schemaPath:l}}=P(),{i18n:s}=bt(),u=`${O}__item ${O}__item-${t.key}`;e&&(u+=` ${O}__item--selected`);let d=t.key;return t.label&&(d=typeof t.label=="function"?t.label({featureClientSchemaMap:c,i18n:s,schemaPath:l}):t.label),d.length>25&&(d=d.substring(0,25)+"..."),Ct("button",{"aria-selected":e,className:u,id:O+"__item-"+t.key,onClick:o,onMouseEnter:r,ref:n,role:"option",tabIndex:-1,type:"button",children:[t?.Icon&&q(t.Icon,{}),q("span",{className:`${O}__item-text`,children:d})]},t.key)}function wt({anchorElem:e=document.body}){let[t]=mr(),[o,r]=hr(null),{editorConfig:n}=P(),{i18n:c}=bt(),{fieldProps:{featureClientSchemaMap:l,schemaPath:s}}=P(),u=Et("/",{minLength:0}),d=pr(()=>{let a=[];for(let i of n.features.slashMenu.dynamicGroups)if(o){let x=i({editor:t,queryString:o});a=a.concat(x)}return a},[t,o,n?.features]),m=gr(()=>{let a=[];for(let i of n?.features.slashMenu.groups??[])a.push(i);if(o){let i=o.toLowerCase().replace(/[\s\-_]/g,"");a=a.map(y=>{let p=y.items.filter(g=>{let f=g.key;return g.label&&(f=typeof g.label=="function"?g.label({featureClientSchemaMap:l,i18n:c,schemaPath:s}):g.label),new RegExp(o,"gi").exec(f)||f.toLowerCase().replace(/[\s\-_]/g,"").includes(i)?!0:g.keywords!=null?g.keywords.some(h=>new RegExp(o,"gi").exec(h)?!0:h.toLowerCase().replace(/[\s\-_]/g,"").includes(i)):!1});return p.length?{...y,items:p}:null}),a=a.filter(y=>y!=null);let x=d();for(let y of x){let p=a.find(g=>g.key===y.key);p?a=a.filter(g=>g.key!==y.key):p={...y,items:[]},p?.items?.length&&(p.items=p.items.concat(p.items)),a.push(p)}}return a},[o,n?.features.slashMenu.groups,d,l,c,s]);return q($e,{anchorElem:e,groups:m,menuRenderFn:(a,{selectedItemKey:i,selectItemAndCleanUp:x,setSelectedItemKey:y})=>a.current&&m.length?Nt.createPortal(q("div",{className:O,"data-theme":"dark",children:m.map(p=>{let g=p.key;return p.label&&l&&(g=typeof p.label=="function"?p.label({featureClientSchemaMap:l,i18n:c,schemaPath:s}):p.label),Ct("div",{className:`${O}__group ${O}__group-${p.key}`,children:[q("div",{className:`${O}__group-title`,children:g}),p.items.map((f,E)=>q(yr,{index:E,isSelected:i===f.key,item:f,onClick:()=>{y(f.key),x(f)},onMouseEnter:()=>{y(f.key)},ref:h=>{f.ref={current:h}}},f.key))]},p.key)})}),a.current):null,onQueryChange:r,triggerFn:u})}import{c as xr}from"react/compiler-runtime";import{useLexicalComposerContext as Er}from"@lexical/react/LexicalComposerContext";import{TEXT_TYPE_TO_FORMAT as Cr,TextNode as br}from"lexical";import{useEffect as Nr}from"react";function St(e){let t=xr(6),{features:o}=e,[r]=Er(),n;t[0]!==r||t[1]!==o.enabledFormats?(n=()=>{let l=wr(o.enabledFormats);if(l.length!==0)return r.registerNodeTransform(br,s=>{l.forEach(u=>{s.hasFormat(u)&&s.toggleFormat(u)})})},t[0]=r,t[1]=o.enabledFormats,t[2]=n):n=t[2];let c;return t[3]!==r||t[4]!==o?(c=[r,o],t[3]=r,t[4]=o,t[5]=c):c=t[5],Nr(n,c),null}function wr(e){let t=Object.keys(Cr),o=new Set(e);return t.filter(r=>!o.has(r))}import{c as Sr}from"react/compiler-runtime";import{jsx as Pt}from"react/jsx-runtime";import{useLexicalComposerContext as Pr}from"@lexical/react/LexicalComposerContext";import{ContentEditable as Tr}from"@lexical/react/LexicalContentEditable.js";import{useTranslation as Rr}from"@payloadcms/ui";import"react";function Tt(e){let t=Sr(5),{className:o,editorConfig:r}=e,{t:n}=Rr(),[,c]=Pr(),{getTheme:l}=c,s;if(t[0]!==o||t[1]!==r?.admin?.placeholder||t[2]!==l||t[3]!==n){let u=l();s=Pt(Tr,{"aria-placeholder":n("lexical:general:placeholder"),className:o??"ContentEditable__root",placeholder:Pt("p",{className:u?.placeholder,children:r?.admin?.placeholder??n("lexical:general:placeholder")})}),t[0]=o,t[1]=r?.admin?.placeholder,t[2]=l,t[3]=n,t[4]=s}else s=t[4];return s}var vt=e=>{let t=vr(13),{editorConfig:o,editorContainerRef:r,isSmallWidthViewport:n,onChange:c,rtl:l}=e,s=P(),[u]=_r(),d=Ar(),[m,a]=Fr(null),i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=f=>{f!==null&&a(f)},t[0]=i):i=t[0];let x=i,y,p;t[1]!==u||t[2]!==s?(y=()=>{if(!s?.uuid){console.error("Lexical Editor must be used within an EditorConfigProvider");return}s?.parentEditor?.uuid&&s.parentEditor?.registerChild(s.uuid,s);let f=()=>{s.focusEditor(s)},E=()=>{s.blurEditor(s)},h=u.registerCommand(Or,()=>(f(),!0),Rt),b=u.registerCommand(Br,()=>(E(),!0),Rt);return()=>{h(),b(),s.parentEditor?.unregisterChild?.(s.uuid)}},p=[u,s],t[1]=u,t[2]=s,t[3]=y,t[4]=p):(y=t[3],p=t[4]),Ir(y,p);let g;return t[5]!==o||t[6]!==r||t[7]!==m||t[8]!==d||t[9]!==n||t[10]!==c||t[11]!==l?(g=ie(Q.Fragment,{children:[o.features.plugins?.map($r),ie("div",{className:"editor-container",dir:l?"rtl":void 0,ref:r,children:[o.features.plugins?.map(Kr),C(Mr,{contentEditable:C("div",{className:"editor-scroller",children:C("div",{className:"editor",ref:x,children:C(Tt,{editorConfig:o})})}),ErrorBoundary:kr}),C(yt,{}),d&&C(mt,{}),C(Ue,{}),C(We,{}),C(St,{features:o.features}),C(xt,{}),C(ht,{}),d&&C(Dr,{ignoreSelectionChange:!0,onChange:(f,E,h)=>{(!h.has("focus")||h.size>1)&&c?.(f,E,h)}}),m&&ie(Q.Fragment,{children:[!n&&d&&ie(Q.Fragment,{children:[o.admin?.hideDraggableBlockElement?null:C(dt,{anchorElem:m}),o.admin?.hideAddBlockButton?null:C(tt,{anchorElem:m})]}),o.features.plugins?.map(f=>{if(f.position==="floatingAnchorElem"&&!(f.desktopOnly===!0&&n))return C(z,{anchorElem:m,clientProps:f.clientProps,plugin:f},f.key)}),d&&C(Q.Fragment,{children:C(wt,{anchorElem:m})})]}),d&&ie(Q.Fragment,{children:[C(Lr,{}),o?.features?.markdownTransformers?.length>0&&C(gt,{})]}),o.features.plugins?.map(jr),o.features.plugins?.map(zr)]}),o.features.plugins?.map(Hr)]}),t[5]=o,t[6]=r,t[7]=m,t[8]=d,t[9]=n,t[10]=c,t[11]=l,t[12]=g):g=t[12],g};function $r(e){if(e.position==="aboveContainer")return C(z,{clientProps:e.clientProps,plugin:e},e.key)}function Kr(e){if(e.position==="top")return C(z,{clientProps:e.clientProps,plugin:e},e.key)}function jr(e){if(e.position==="normal")return C(z,{clientProps:e.clientProps,plugin:e},e.key)}function zr(e){if(e.position==="bottom")return C(z,{clientProps:e.clientProps,plugin:e},e.key)}function Hr(e){if(e.position==="belowContainer")return C(z,{clientProps:e.clientProps,plugin:e},e.key)}var kt=({children:e,providers:t})=>{if(!t?.length)return e;let o=t[0];return t.length>1?j(o,{children:j(kt,{providers:t.slice(1),children:e})}):j(o,{children:e})},Lt=e=>{let{composerKey:t,editorConfig:o,fieldProps:r,isSmallWidthViewport:n,onChange:c,readOnly:l,rtl:s,value:u}=e,{currentView:d,views:m}=$(),a=P(),i=Wr(),x=_t.useRef(null),y=Yr(()=>{if(u&&typeof u!="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(u));if(u&&Array.isArray(u)&&!("root"in u))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(u&&"jsonContent"in u)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");let p=m?.[d]?.nodes;return{editable:l!==!0,editorState:u!=null?JSON.stringify(u):void 0,namespace:o.lexical.namespace,nodes:je({editorConfig:o,nodeViews:p}),onError:g=>{throw g},theme:o.lexical.theme}},[o,m,d]);return y?j(Vr,{initialConfig:y,children:j(Ae,{editorConfig:o,editorContainerRef:x,fieldProps:r,parentContext:a?.editDepth===i?a:void 0,children:j(kt,{providers:o.features.providers,children:j(vt,{editorConfig:o,editorContainerRef:x,isSmallWidthViewport:n,onChange:c,rtl:s})})})},t+y.editable+d):j("p",{children:"Loading..."})};import{c as Gr}from"react/compiler-runtime";import{jsx as X,jsxs as Ur}from"react/jsx-runtime";import{ChevronIcon as Jr,Popup as qr,PopupList as Dt}from"@payloadcms/ui";import"react";function Mt(){let e=Gr(5),{currentView:t,setCurrentView:o,views:r}=$();if(!r||Object.keys(r).length===0)return null;let n,c;if(e[0]!==t||e[1]!==o||e[2]!==r){c=Symbol.for("react.early_return_sentinel");e:{let l=Object.keys(r);if(!l.some(Xr)){c=null;break e}let u=["default",...l.filter(Qr)],d=t.charAt(0).toUpperCase()+t.slice(1);n=X("div",{className:"lexical-view-selector",children:X(qr,{button:Ur("button",{className:"lexical-view-selector__button",type:"button",children:[X("span",{className:"lexical-view-selector__label",children:d}),X(Jr,{className:"lexical-view-selector__icon"})]}),buttonType:"custom",horizontalAlign:"left",render:m=>{let{close:a}=m;return X(Dt.ButtonGroup,{children:u.map(i=>{let x=i.charAt(0).toUpperCase()+i.slice(1);return X(Dt.Button,{active:i===t,disabled:i===t,onClick:()=>{o?.(i),a()},children:x},i)})})},size:"large"})})}e[0]=t,e[1]=o,e[2]=r,e[3]=n,e[4]=c}else n=e[3],c=e[4];return c!==Symbol.for("react.early_return_sentinel")?c:n}function Qr(e){return e!=="default"}function Xr(e){return e!=="default"}var se="rich-text-lexical",pn=e=>{let{editorConfig:t,field:o,field:{admin:{className:r,description:n,readOnly:c}={},label:l,localized:s,required:u},path:d,readOnly:m,schemaPath:a,validate:i}=e,x=m||c,y=cn(),{config:{localization:p}}=nn(),g=rn({fieldLocalized:s,locale:y,localizationConfig:p||void 0}),f=sn(),{isControlledByParent:E}=$(),h=Ot((A,ee)=>typeof i=="function"?i(A,{...ee,required:u}):!0,[i,u]),{customComponents:{AfterInput:b,BeforeInput:_,Description:w,Error:v,Label:D}={},disabled:S,initialValue:I,path:R,setValue:F,showError:k,value:M}=an({potentiallyStalePath:d,validate:h}),ae=x||S,[Z,Ne]=Ft(!1),[De,we]=Ft(),ce=Bt.useRef(I),T=Bt.useRef(M);It(()=>{let A=()=>{let ee=window.matchMedia("(max-width: 768px)").matches;ee!==Z&&Ne(ee)};return A(),window.addEventListener("resize",A),()=>{window.removeEventListener("resize",A)}},[Z]);let N=["field-type",se,r,k&&"error",ae&&`${se}--read-only`,t?.admin?.hideGutter!==!0&&!Z?`${se}--show-gutter`:null].filter(Boolean).join(" "),ue=`${R}.${f}`,de=Oe(),$t=Ot(A=>{de(()=>{let Me=A.toJSON();T.current=Me,F(Me)})},[F,de]),Kt=fn(()=>un(o),[o]),jt=ln(A=>{T.current!==M&&!dn(T.current!=null?JSON.parse(JSON.stringify(T.current)):T.current,M)&&(ce.current=A,T.current=M,we(new Date))});return It(()=>{Object.is(I,ce.current)||jt(I)},[I]),le("div",{className:N,"data-field-path":R,"data-field-schemapath":a,"data-lexical-view":t?.view,style:Kt,children:[le("div",{className:`${se}__label-row`,children:[D||L(on,{label:l,localized:s,path:R,required:u}),!E&&L(Mt,{})]}),le("div",{className:`${se}__wrap`,children:[L(At,{CustomComponent:v,Fallback:L(tn,{path:R,showError:k})}),le(mn,{fallbackRender:gn,onReset:()=>{},children:[_,L(Zr,{drawerSlugPrefix:`lexical-${R}`,children:L(Lt,{composerKey:ue,editorConfig:t,fieldProps:e,isSmallWidthViewport:Z,onChange:$t,readOnly:ae,rtl:g,value:M},JSON.stringify({path:R,rerenderProviderKey:De}))}),b]}),L(At,{CustomComponent:w,Fallback:L(en,{description:n,path:R})})]})]},ue)};function gn({error:e}){return le("div",{className:"errorBoundary",role:"alert",children:[L("p",{children:"Something went wrong:"}),L("pre",{style:{color:"red"},children:e instanceof Error?e.message:String(e)})]})}var Pl=pn;export{Pl as RichText};
2
- //# sourceMappingURL=Field-G5Z2HM5Y.js.map