@payloadcms/richtext-slate 3.0.0-canary.a5aaf21 → 3.0.0-canary.a6e7305

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 (44) hide show
  1. package/dist/data/populate.d.ts +3 -2
  2. package/dist/data/populate.d.ts.map +1 -1
  3. package/dist/data/populate.js +2 -1
  4. package/dist/data/populate.js.map +1 -1
  5. package/dist/data/recurseNestedFields.d.ts +3 -2
  6. package/dist/data/recurseNestedFields.d.ts.map +1 -1
  7. package/dist/data/recurseNestedFields.js +10 -1
  8. package/dist/data/recurseNestedFields.js.map +1 -1
  9. package/dist/data/richTextRelationshipPromise.d.ts +4 -3
  10. package/dist/data/richTextRelationshipPromise.d.ts.map +1 -1
  11. package/dist/data/richTextRelationshipPromise.js +8 -2
  12. package/dist/data/richTextRelationshipPromise.js.map +1 -1
  13. package/dist/exports/client/index.d.ts +1 -0
  14. package/dist/exports/client/index.d.ts.map +1 -1
  15. package/dist/exports/client/index.js +1 -0
  16. package/dist/exports/client/index.js.map +1 -1
  17. package/dist/field/buttons.scss +11 -10
  18. package/dist/field/elements/Button.js +2 -2
  19. package/dist/field/elements/Button.js.map +1 -1
  20. package/dist/field/elements/blockquote/index.scss +7 -5
  21. package/dist/field/elements/link/Element/index.scss +66 -64
  22. package/dist/field/elements/link/LinkDrawer/index.scss +39 -37
  23. package/dist/field/elements/ol/index.scss +5 -3
  24. package/dist/field/elements/relationship/Button/index.scss +6 -4
  25. package/dist/field/elements/relationship/Element/index.scss +73 -71
  26. package/dist/field/elements/ul/index.scss +5 -3
  27. package/dist/field/elements/upload/Button/index.scss +6 -4
  28. package/dist/field/elements/upload/Element/index.scss +116 -114
  29. package/dist/field/icons/IndentLeft/index.scss +12 -10
  30. package/dist/field/icons/IndentRight/index.scss +12 -10
  31. package/dist/field/icons/Link/index.scss +8 -6
  32. package/dist/field/icons/Relationship/index.scss +9 -7
  33. package/dist/field/icons/Upload/index.scss +8 -6
  34. package/dist/field/index.scss +167 -166
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/scss/app.scss +164 -163
  39. package/dist/scss/colors.scss +256 -254
  40. package/dist/scss/resets.scss +9 -7
  41. package/dist/scss/toastify.scss +42 -41
  42. package/dist/scss/toasts.scss +104 -103
  43. package/dist/scss/type.scss +80 -79
  44. package/package.json +7 -7
@@ -1,212 +1,213 @@
1
1
  @import '../scss/styles.scss';
2
+ @layer payload-default {
3
+ .rich-text {
4
+ margin-bottom: base(2);
5
+ display: flex;
6
+ flex-direction: column;
7
+ isolation: isolate;
2
8
 
3
- .rich-text {
4
- margin-bottom: base(2);
5
- display: flex;
6
- flex-direction: column;
7
- isolation: isolate;
8
-
9
- &__toolbar {
10
- @include blur-bg(var(--theme-elevation-0));
11
- margin-bottom: $baseline;
12
- border: $style-stroke-width-s solid var(--theme-elevation-150);
13
- position: sticky;
14
- z-index: 1;
15
- top: var(--doc-controls-height);
16
- }
9
+ &__toolbar {
10
+ @include blur-bg(var(--theme-elevation-0));
11
+ margin-bottom: $baseline;
12
+ border: $style-stroke-width-s solid var(--theme-elevation-150);
13
+ position: sticky;
14
+ z-index: 1;
15
+ top: var(--doc-controls-height);
16
+ }
17
+
18
+ &__toolbar-wrap {
19
+ padding: base(0.25);
20
+ display: flex;
21
+ flex-wrap: wrap;
22
+ align-items: stretch;
23
+ position: relative;
24
+ z-index: 1;
17
25
 
18
- &__toolbar-wrap {
19
- padding: base(0.25);
20
- display: flex;
21
- flex-wrap: wrap;
22
- align-items: stretch;
23
- position: relative;
24
- z-index: 1;
25
-
26
- &:after {
27
- content: ' ';
28
- opacity: 0.8;
29
- position: absolute;
30
- top: calc(100% + 1px);
31
- background: linear-gradient(var(--theme-elevation-0), transparent);
32
- display: block;
33
- left: -1px;
34
- right: -1px;
35
- height: base(1);
26
+ &:after {
27
+ content: ' ';
28
+ opacity: 0.8;
29
+ position: absolute;
30
+ top: calc(100% + 1px);
31
+ background: linear-gradient(var(--theme-elevation-0), transparent);
32
+ display: block;
33
+ left: -1px;
34
+ right: -1px;
35
+ height: base(1);
36
+ }
36
37
  }
37
- }
38
-
39
- &__editor {
40
- font-family: var(--font-serif);
41
- font-size: base(0.8);
42
- line-height: 1.5;
43
38
 
44
- *[data-slate-node='element'] {
45
- margin-top: 0.75em;
46
- position: relative;
39
+ &__editor {
40
+ font-family: var(--font-serif);
41
+ font-size: base(0.8);
47
42
  line-height: 1.5;
48
- letter-spacing: normal;
49
- }
50
43
 
51
- h1,
52
- h2,
53
- h3,
54
- h4,
55
- h5,
56
- h6 {
57
- font-weight: 700;
58
- letter-spacing: normal;
59
- }
44
+ *[data-slate-node='element'] {
45
+ margin-top: 0.75em;
46
+ position: relative;
47
+ line-height: 1.5;
48
+ letter-spacing: normal;
49
+ }
60
50
 
61
- h1[data-slate-node='element'] {
62
- font-size: base(1.4);
63
- margin-block: 0.5em 0.4em;
64
- line-height: base(1.2);
65
- letter-spacing: normal;
66
- }
51
+ h1,
52
+ h2,
53
+ h3,
54
+ h4,
55
+ h5,
56
+ h6 {
57
+ font-weight: 700;
58
+ letter-spacing: normal;
59
+ }
67
60
 
68
- h2[data-slate-node='element'] {
69
- font-size: base(1.25);
70
- margin-block: 0.55em 0.4em;
71
- line-height: base(1.2);
72
- letter-spacing: normal;
73
- }
61
+ h1[data-slate-node='element'] {
62
+ font-size: base(1.4);
63
+ margin-block: 0.5em 0.4em;
64
+ line-height: base(1.2);
65
+ letter-spacing: normal;
66
+ }
74
67
 
75
- h3[data-slate-node='element'] {
76
- font-size: base(1.1);
77
- margin-block: 0.6em 0.4em;
78
- line-height: base(1.3);
79
- letter-spacing: normal;
80
- }
68
+ h2[data-slate-node='element'] {
69
+ font-size: base(1.25);
70
+ margin-block: 0.55em 0.4em;
71
+ line-height: base(1.2);
72
+ letter-spacing: normal;
73
+ }
81
74
 
82
- h4[data-slate-node='element'] {
83
- font-size: base(1);
84
- margin-block: 0.65em 0.4em;
85
- line-height: base(1.4);
86
- letter-spacing: normal;
75
+ h3[data-slate-node='element'] {
76
+ font-size: base(1.1);
77
+ margin-block: 0.6em 0.4em;
78
+ line-height: base(1.3);
79
+ letter-spacing: normal;
80
+ }
81
+
82
+ h4[data-slate-node='element'] {
83
+ font-size: base(1);
84
+ margin-block: 0.65em 0.4em;
85
+ line-height: base(1.4);
86
+ letter-spacing: normal;
87
+ }
88
+
89
+ h5[data-slate-node='element'] {
90
+ font-size: base(0.9);
91
+ margin-block: 0.7em 0.4em;
92
+ line-height: base(1.5);
93
+ letter-spacing: normal;
94
+ }
95
+
96
+ h6[data-slate-node='element'] {
97
+ font-size: base(0.8);
98
+ margin-block: 0.75em 0.4em;
99
+ line-height: base(1.5);
100
+ }
87
101
  }
88
102
 
89
- h5[data-slate-node='element'] {
90
- font-size: base(0.9);
91
- margin-block: 0.7em 0.4em;
92
- line-height: base(1.5);
93
- letter-spacing: normal;
103
+ &--gutter {
104
+ .rich-text__editor {
105
+ padding-left: $baseline;
106
+ border-left: 1px solid var(--theme-elevation-100);
107
+ }
94
108
  }
95
109
 
96
- h6[data-slate-node='element'] {
97
- font-size: base(0.8);
98
- margin-block: 0.75em 0.4em;
99
- line-height: base(1.5);
110
+ &__input {
111
+ min-height: base(10);
100
112
  }
101
- }
102
113
 
103
- &--gutter {
104
- .rich-text__editor {
105
- padding-left: $baseline;
106
- border-left: 1px solid var(--theme-elevation-100);
114
+ &__wrap {
115
+ width: 100%;
116
+ position: relative;
107
117
  }
108
- }
109
118
 
110
- &__input {
111
- min-height: base(10);
112
- }
119
+ &__wrapper {
120
+ width: 100%;
121
+ }
113
122
 
114
- &__wrap {
115
- width: 100%;
116
- position: relative;
117
- }
123
+ &--read-only {
124
+ .rich-text__editor {
125
+ background: var(--theme-elevation-200);
126
+ color: var(--theme-elevation-450);
127
+ padding: base(0.5);
118
128
 
119
- &__wrapper {
120
- width: 100%;
121
- }
129
+ .popup button {
130
+ display: none;
131
+ }
132
+ }
122
133
 
123
- &--read-only {
124
- .rich-text__editor {
125
- background: var(--theme-elevation-200);
126
- color: var(--theme-elevation-450);
127
- padding: base(0.5);
134
+ .rich-text__toolbar {
135
+ pointer-events: none;
136
+ position: relative;
137
+ top: 0;
128
138
 
129
- .popup button {
130
- display: none;
139
+ &::after {
140
+ content: ' ';
141
+ position: absolute;
142
+ top: 0;
143
+ left: 0;
144
+ right: 0;
145
+ bottom: 0;
146
+ background-color: var(--theme-elevation-200);
147
+ opacity: 0.85;
148
+ z-index: 2;
149
+ backdrop-filter: unset;
150
+ }
131
151
  }
132
152
  }
133
153
 
134
- .rich-text__toolbar {
135
- pointer-events: none;
136
- position: relative;
137
- top: 0;
154
+ &__button {
155
+ @extend %btn-reset;
156
+ padding: base(0.25);
138
157
 
139
- &::after {
140
- content: ' ';
141
- position: absolute;
142
- top: 0;
143
- left: 0;
144
- right: 0;
145
- bottom: 0;
146
- background-color: var(--theme-elevation-200);
147
- opacity: 0.85;
148
- z-index: 2;
149
- backdrop-filter: unset;
158
+ svg {
159
+ @include color-svg(var(--theme-elevation-800));
160
+ width: base(0.75);
161
+ height: base(0.75);
150
162
  }
151
- }
152
- }
153
163
 
154
- &__button {
155
- @extend %btn-reset;
156
- padding: base(0.25);
164
+ &:hover {
165
+ background-color: var(--theme-elevation-100);
166
+ }
157
167
 
158
- svg {
159
- @include color-svg(var(--theme-elevation-800));
160
- width: base(0.75);
161
- height: base(0.75);
168
+ &__button--active,
169
+ &__button--active:hover {
170
+ background-color: var(--theme-elevation-150);
171
+ }
162
172
  }
163
173
 
164
- &:hover {
165
- background-color: var(--theme-elevation-100);
174
+ &__drawerIsOpen {
175
+ top: base(1);
166
176
  }
167
177
 
168
- &__button--active,
169
- &__button--active:hover {
170
- background-color: var(--theme-elevation-150);
171
- }
172
- }
173
-
174
- &__drawerIsOpen {
175
- top: base(1);
176
- }
177
-
178
- @include mid-break {
179
- &__toolbar {
180
- top: base(3);
181
- }
178
+ @include mid-break {
179
+ &__toolbar {
180
+ top: base(3);
181
+ }
182
182
 
183
- &__drawerIsOpen {
184
- top: base(1);
183
+ &__drawerIsOpen {
184
+ top: base(1);
185
+ }
185
186
  }
186
187
  }
187
- }
188
188
 
189
- [data-slate-node='element'] {
190
- margin-bottom: base(0.25);
191
- }
189
+ [data-slate-node='element'] {
190
+ margin-bottom: base(0.25);
191
+ }
192
192
 
193
- html[data-theme='light'] {
194
- .rich-text {
195
- &.error {
196
- .rich-text__editor,
197
- .rich-text__toolbar {
198
- @include lightInputError;
193
+ html[data-theme='light'] {
194
+ .rich-text {
195
+ &.error {
196
+ .rich-text__editor,
197
+ .rich-text__toolbar {
198
+ @include lightInputError;
199
+ }
199
200
  }
200
201
  }
201
202
  }
202
- }
203
203
 
204
- html[data-theme='dark'] {
205
- .rich-text {
206
- &.error {
207
- .rich-text__editor,
208
- .rich-text__toolbar {
209
- @include darkInputError;
204
+ html[data-theme='dark'] {
205
+ .rich-text {
206
+ &.error {
207
+ .rich-text__editor,
208
+ .rich-text__toolbar {
209
+ @include darkInputError;
210
+ }
210
211
  }
211
212
  }
212
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAI9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AASlD,wBAAgB,WAAW,CACzB,IAAI,EAAE,gBAAgB,GACrB,uBAAuB,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,CA6LvD;AAED,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,QAAQ,GACT,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAI9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AASlD,wBAAgB,WAAW,CACzB,IAAI,EAAE,gBAAgB,GACrB,uBAAuB,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,CA+LvD;AAED,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,QAAQ,GACT,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -117,7 +117,7 @@ export function slateEditor(args) {
117
117
  },
118
118
  hooks: {
119
119
  afterRead: [
120
- ({ context: _context, currentDepth, depth, draft, field: _field, fieldPromises, findMany, flattenLocales, overrideAccess, populationPromises, req, showHiddenFields, siblingData })=>{
120
+ ({ context: _context, currentDepth, depth, draft, field: _field, fieldPromises, findMany, flattenLocales, overrideAccess, populate, populationPromises, req, showHiddenFields, siblingData })=>{
121
121
  const context = _context;
122
122
  const field = _field;
123
123
  if (field.admin?.elements?.includes('relationship') || field.admin?.elements?.includes('upload') || field.admin?.elements?.includes('link') || !field?.admin?.elements) {
@@ -131,6 +131,7 @@ export function slateEditor(args) {
131
131
  findMany,
132
132
  flattenLocales,
133
133
  overrideAccess,
134
+ populateArg: populate,
134
135
  populationPromises,
135
136
  req,
136
137
  showHiddenFields,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["import type { Config, RichTextAdapterProvider } from 'payload'\n\nimport { sanitizeFields, withNullableJSONSchemaType } from 'payload'\n\nimport type { AdapterArguments } from './types.js'\n\nimport { richTextRelationshipPromise } from './data/richTextRelationshipPromise.js'\nimport { richTextValidate } from './data/validation.js'\nimport { elements as elementTypes } from './field/elements/index.js'\nimport { transformExtraFields } from './field/elements/link/utilities.js'\nimport { defaultLeaves as leafTypes } from './field/leaves/index.js'\nimport { getGenerateSchemaMap } from './generateSchemaMap.js'\n\nexport function slateEditor(\n args: AdapterArguments,\n): RichTextAdapterProvider<any[], AdapterArguments, any> {\n return async ({ config }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n if (!args.admin) {\n args.admin = {}\n }\n if (!args.admin.link) {\n args.admin.link = {}\n }\n if (!args.admin.link.fields) {\n args.admin.link.fields = []\n }\n args.admin.link.fields = await sanitizeFields({\n config: config as unknown as Config,\n fields: transformExtraFields(args.admin?.link?.fields, config),\n parentIsLocalized: false,\n validRelationships,\n })\n\n if (args?.admin?.upload?.collections) {\n for (const collection of Object.keys(args.admin.upload.collections)) {\n if (args?.admin?.upload?.collections[collection]?.fields) {\n args.admin.upload.collections[collection].fields = await sanitizeFields({\n config: config as unknown as Config,\n fields: args.admin?.upload?.collections[collection]?.fields,\n parentIsLocalized: false,\n validRelationships,\n })\n }\n }\n }\n\n return {\n CellComponent: '@payloadcms/richtext-slate/client#RichTextCell',\n FieldComponent: '@payloadcms/richtext-slate/client#RichTextField',\n generateComponentMap: {\n path: '@payloadcms/richtext-slate/generateComponentMap#getGenerateComponentMap',\n serverProps: args,\n },\n generateImportMap: ({ addToImportMap }) => {\n addToImportMap('@payloadcms/richtext-slate/client#RichTextCell')\n addToImportMap('@payloadcms/richtext-slate/client#RichTextField')\n addToImportMap('@payloadcms/richtext-slate/generateComponentMap#getGenerateComponentMap')\n Object.values(leafTypes).forEach((leaf) => {\n if (leaf.Button) {\n addToImportMap(leaf.Button)\n }\n if (leaf.Leaf) {\n addToImportMap(leaf.Leaf)\n }\n if (Array.isArray(leaf.plugins) && leaf.plugins?.length) {\n addToImportMap(leaf.plugins)\n }\n })\n args?.admin?.leaves?.forEach((leaf) => {\n if (typeof leaf === 'object') {\n if (leaf.Button) {\n addToImportMap(leaf.Button)\n }\n if (leaf.Leaf) {\n addToImportMap(leaf.Leaf)\n }\n if (Array.isArray(leaf.plugins) && leaf.plugins?.length) {\n addToImportMap(leaf.plugins)\n }\n }\n })\n\n Object.values(elementTypes).forEach((element) => {\n if (element.Button) {\n addToImportMap(element.Button)\n }\n if (element.Element) {\n addToImportMap(element.Element)\n }\n if (Array.isArray(element.plugins) && element.plugins?.length) {\n addToImportMap(element.plugins)\n }\n })\n\n args?.admin?.elements?.forEach((element) => {\n if (typeof element === 'object') {\n if (element.Button) {\n addToImportMap(element.Button)\n }\n if (element.Element) {\n addToImportMap(element.Element)\n }\n if (Array.isArray(element.plugins) && element.plugins?.length) {\n addToImportMap(element.plugins)\n }\n }\n })\n },\n generateSchemaMap: getGenerateSchemaMap(args),\n graphQLPopulationPromises({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n if (\n field.admin?.elements?.includes('relationship') ||\n field.admin?.elements?.includes('upload') ||\n field.admin?.elements?.includes('link') ||\n !field?.admin?.elements\n ) {\n richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n },\n hooks: {\n afterRead: [\n ({\n context: _context,\n currentDepth,\n depth,\n draft,\n field: _field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingData,\n }) => {\n const context: any = _context\n const field = _field as any\n if (\n field.admin?.elements?.includes('relationship') ||\n field.admin?.elements?.includes('upload') ||\n field.admin?.elements?.includes('link') ||\n !field?.admin?.elements\n ) {\n richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: siblingData,\n })\n }\n },\n ],\n },\n outputSchema: ({ isRequired }) => {\n return {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n },\n }\n },\n validate: richTextValidate,\n }\n }\n}\n\nexport type {\n AdapterArguments,\n ElementNode,\n RichTextCustomElement,\n RichTextCustomLeaf,\n RichTextElement,\n RichTextLeaf,\n RichTextPlugin,\n RichTextPluginComponent,\n SlateFieldProps,\n TextNode,\n} from './types.js'\n\nexport { nodeIsTextNode } from './types.js'\n"],"names":["sanitizeFields","withNullableJSONSchemaType","richTextRelationshipPromise","richTextValidate","elements","elementTypes","transformExtraFields","defaultLeaves","leafTypes","getGenerateSchemaMap","slateEditor","args","config","validRelationships","collections","map","c","slug","admin","link","fields","parentIsLocalized","upload","collection","Object","keys","CellComponent","FieldComponent","generateComponentMap","path","serverProps","generateImportMap","addToImportMap","values","forEach","leaf","Button","Leaf","Array","isArray","plugins","length","leaves","element","Element","generateSchemaMap","graphQLPopulationPromises","context","currentDepth","depth","draft","field","fieldPromises","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","includes","hooks","afterRead","_context","_field","siblingData","outputSchema","isRequired","type","items","validate","nodeIsTextNode"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["import type { Config, RichTextAdapterProvider } from 'payload'\n\nimport { sanitizeFields, withNullableJSONSchemaType } from 'payload'\n\nimport type { AdapterArguments } from './types.js'\n\nimport { richTextRelationshipPromise } from './data/richTextRelationshipPromise.js'\nimport { richTextValidate } from './data/validation.js'\nimport { elements as elementTypes } from './field/elements/index.js'\nimport { transformExtraFields } from './field/elements/link/utilities.js'\nimport { defaultLeaves as leafTypes } from './field/leaves/index.js'\nimport { getGenerateSchemaMap } from './generateSchemaMap.js'\n\nexport function slateEditor(\n args: AdapterArguments,\n): RichTextAdapterProvider<any[], AdapterArguments, any> {\n return async ({ config }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n if (!args.admin) {\n args.admin = {}\n }\n if (!args.admin.link) {\n args.admin.link = {}\n }\n if (!args.admin.link.fields) {\n args.admin.link.fields = []\n }\n args.admin.link.fields = await sanitizeFields({\n config: config as unknown as Config,\n fields: transformExtraFields(args.admin?.link?.fields, config),\n parentIsLocalized: false,\n validRelationships,\n })\n\n if (args?.admin?.upload?.collections) {\n for (const collection of Object.keys(args.admin.upload.collections)) {\n if (args?.admin?.upload?.collections[collection]?.fields) {\n args.admin.upload.collections[collection].fields = await sanitizeFields({\n config: config as unknown as Config,\n fields: args.admin?.upload?.collections[collection]?.fields,\n parentIsLocalized: false,\n validRelationships,\n })\n }\n }\n }\n\n return {\n CellComponent: '@payloadcms/richtext-slate/client#RichTextCell',\n FieldComponent: '@payloadcms/richtext-slate/client#RichTextField',\n generateComponentMap: {\n path: '@payloadcms/richtext-slate/generateComponentMap#getGenerateComponentMap',\n serverProps: args,\n },\n generateImportMap: ({ addToImportMap }) => {\n addToImportMap('@payloadcms/richtext-slate/client#RichTextCell')\n addToImportMap('@payloadcms/richtext-slate/client#RichTextField')\n addToImportMap('@payloadcms/richtext-slate/generateComponentMap#getGenerateComponentMap')\n Object.values(leafTypes).forEach((leaf) => {\n if (leaf.Button) {\n addToImportMap(leaf.Button)\n }\n if (leaf.Leaf) {\n addToImportMap(leaf.Leaf)\n }\n if (Array.isArray(leaf.plugins) && leaf.plugins?.length) {\n addToImportMap(leaf.plugins)\n }\n })\n args?.admin?.leaves?.forEach((leaf) => {\n if (typeof leaf === 'object') {\n if (leaf.Button) {\n addToImportMap(leaf.Button)\n }\n if (leaf.Leaf) {\n addToImportMap(leaf.Leaf)\n }\n if (Array.isArray(leaf.plugins) && leaf.plugins?.length) {\n addToImportMap(leaf.plugins)\n }\n }\n })\n\n Object.values(elementTypes).forEach((element) => {\n if (element.Button) {\n addToImportMap(element.Button)\n }\n if (element.Element) {\n addToImportMap(element.Element)\n }\n if (Array.isArray(element.plugins) && element.plugins?.length) {\n addToImportMap(element.plugins)\n }\n })\n\n args?.admin?.elements?.forEach((element) => {\n if (typeof element === 'object') {\n if (element.Button) {\n addToImportMap(element.Button)\n }\n if (element.Element) {\n addToImportMap(element.Element)\n }\n if (Array.isArray(element.plugins) && element.plugins?.length) {\n addToImportMap(element.plugins)\n }\n }\n })\n },\n generateSchemaMap: getGenerateSchemaMap(args),\n graphQLPopulationPromises({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n if (\n field.admin?.elements?.includes('relationship') ||\n field.admin?.elements?.includes('upload') ||\n field.admin?.elements?.includes('link') ||\n !field?.admin?.elements\n ) {\n richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n },\n hooks: {\n afterRead: [\n ({\n context: _context,\n currentDepth,\n depth,\n draft,\n field: _field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingData,\n }) => {\n const context: any = _context\n const field = _field as any\n if (\n field.admin?.elements?.includes('relationship') ||\n field.admin?.elements?.includes('upload') ||\n field.admin?.elements?.includes('link') ||\n !field?.admin?.elements\n ) {\n richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populateArg: populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: siblingData,\n })\n }\n },\n ],\n },\n outputSchema: ({ isRequired }) => {\n return {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n },\n }\n },\n validate: richTextValidate,\n }\n }\n}\n\nexport type {\n AdapterArguments,\n ElementNode,\n RichTextCustomElement,\n RichTextCustomLeaf,\n RichTextElement,\n RichTextLeaf,\n RichTextPlugin,\n RichTextPluginComponent,\n SlateFieldProps,\n TextNode,\n} from './types.js'\n\nexport { nodeIsTextNode } from './types.js'\n"],"names":["sanitizeFields","withNullableJSONSchemaType","richTextRelationshipPromise","richTextValidate","elements","elementTypes","transformExtraFields","defaultLeaves","leafTypes","getGenerateSchemaMap","slateEditor","args","config","validRelationships","collections","map","c","slug","admin","link","fields","parentIsLocalized","upload","collection","Object","keys","CellComponent","FieldComponent","generateComponentMap","path","serverProps","generateImportMap","addToImportMap","values","forEach","leaf","Button","Leaf","Array","isArray","plugins","length","leaves","element","Element","generateSchemaMap","graphQLPopulationPromises","context","currentDepth","depth","draft","field","fieldPromises","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","includes","hooks","afterRead","_context","_field","populate","siblingData","populateArg","outputSchema","isRequired","type","items","validate","nodeIsTextNode"],"mappings":"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"}