@payloadcms/richtext-slate 3.0.0-canary.ff8c8fd → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/cell/rscEntry.d.ts +8 -0
  2. package/dist/cell/rscEntry.d.ts.map +1 -0
  3. package/dist/cell/rscEntry.js +51 -0
  4. package/dist/cell/rscEntry.js.map +1 -0
  5. package/dist/data/populate.d.ts +3 -2
  6. package/dist/data/populate.d.ts.map +1 -1
  7. package/dist/data/populate.js +2 -1
  8. package/dist/data/populate.js.map +1 -1
  9. package/dist/data/recurseNestedFields.d.ts +3 -2
  10. package/dist/data/recurseNestedFields.d.ts.map +1 -1
  11. package/dist/data/recurseNestedFields.js +10 -1
  12. package/dist/data/recurseNestedFields.js.map +1 -1
  13. package/dist/data/richTextRelationshipPromise.d.ts +4 -3
  14. package/dist/data/richTextRelationshipPromise.d.ts.map +1 -1
  15. package/dist/data/richTextRelationshipPromise.js +8 -2
  16. package/dist/data/richTextRelationshipPromise.js.map +1 -1
  17. package/dist/data/validation.d.ts.map +1 -1
  18. package/dist/data/validation.js +3 -1
  19. package/dist/data/validation.js.map +1 -1
  20. package/dist/exports/client/index.d.ts +4 -3
  21. package/dist/exports/client/index.d.ts.map +1 -1
  22. package/dist/exports/client/index.js +4 -3
  23. package/dist/exports/client/index.js.map +1 -1
  24. package/dist/exports/server/rsc.d.ts +3 -0
  25. package/dist/exports/server/rsc.d.ts.map +1 -0
  26. package/dist/exports/server/rsc.js +4 -0
  27. package/dist/exports/server/rsc.js.map +1 -0
  28. package/dist/field/RichText.d.ts.map +1 -1
  29. package/dist/field/RichText.js +38 -52
  30. package/dist/field/RichText.js.map +1 -1
  31. package/dist/field/buttons.scss +11 -10
  32. package/dist/field/createFeatureMap.d.ts +2 -2
  33. package/dist/field/createFeatureMap.d.ts.map +1 -1
  34. package/dist/field/createFeatureMap.js +15 -4
  35. package/dist/field/createFeatureMap.js.map +1 -1
  36. package/dist/field/elements/Button.js +2 -2
  37. package/dist/field/elements/Button.js.map +1 -1
  38. package/dist/field/elements/blockquote/index.scss +7 -5
  39. package/dist/field/elements/h3/Heading3.d.ts.map +1 -1
  40. package/dist/field/elements/h3/Heading3.js.map +1 -1
  41. package/dist/field/elements/h4/Heading4.d.ts.map +1 -1
  42. package/dist/field/elements/h4/Heading4.js.map +1 -1
  43. package/dist/field/elements/h5/Heading5.d.ts.map +1 -1
  44. package/dist/field/elements/h5/Heading5.js.map +1 -1
  45. package/dist/field/elements/h6/Heading6.d.ts.map +1 -1
  46. package/dist/field/elements/h6/Heading6.js.map +1 -1
  47. package/dist/field/elements/isActive.d.ts.map +1 -1
  48. package/dist/field/elements/isActive.js +3 -1
  49. package/dist/field/elements/isActive.js.map +1 -1
  50. package/dist/field/elements/isLastSelectedElementEmpty.d.ts.map +1 -1
  51. package/dist/field/elements/isLastSelectedElementEmpty.js +3 -1
  52. package/dist/field/elements/isLastSelectedElementEmpty.js.map +1 -1
  53. package/dist/field/elements/isListActive.d.ts.map +1 -1
  54. package/dist/field/elements/isListActive.js +6 -2
  55. package/dist/field/elements/isListActive.js.map +1 -1
  56. package/dist/field/elements/link/Button/index.d.ts +3 -1
  57. package/dist/field/elements/link/Button/index.d.ts.map +1 -1
  58. package/dist/field/elements/link/Button/index.js +20 -16
  59. package/dist/field/elements/link/Button/index.js.map +1 -1
  60. package/dist/field/elements/link/Element/index.d.ts.map +1 -1
  61. package/dist/field/elements/link/Element/index.js +28 -20
  62. package/dist/field/elements/link/Element/index.js.map +1 -1
  63. package/dist/field/elements/link/Element/index.scss +66 -64
  64. package/dist/field/elements/link/LinkDrawer/index.d.ts.map +1 -1
  65. package/dist/field/elements/link/LinkDrawer/index.js +49 -43
  66. package/dist/field/elements/link/LinkDrawer/index.js.map +1 -1
  67. package/dist/field/elements/link/LinkDrawer/index.scss +39 -37
  68. package/dist/field/elements/link/LinkDrawer/types.d.ts +1 -0
  69. package/dist/field/elements/link/LinkDrawer/types.d.ts.map +1 -1
  70. package/dist/field/elements/link/LinkDrawer/types.js.map +1 -1
  71. package/dist/field/elements/ol/index.scss +5 -3
  72. package/dist/field/elements/relationship/Button/index.scss +6 -4
  73. package/dist/field/elements/relationship/Element/index.d.ts +1 -7
  74. package/dist/field/elements/relationship/Element/index.d.ts.map +1 -1
  75. package/dist/field/elements/relationship/Element/index.js.map +1 -1
  76. package/dist/field/elements/relationship/Element/index.scss +73 -71
  77. package/dist/field/elements/toggleList.d.ts.map +1 -1
  78. package/dist/field/elements/toggleList.js +6 -2
  79. package/dist/field/elements/toggleList.js.map +1 -1
  80. package/dist/field/elements/ul/index.scss +5 -3
  81. package/dist/field/elements/upload/Button/index.scss +6 -4
  82. package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts.map +1 -1
  83. package/dist/field/elements/upload/Element/UploadDrawer/index.js +67 -57
  84. package/dist/field/elements/upload/Element/UploadDrawer/index.js.map +1 -1
  85. package/dist/field/elements/upload/Element/index.d.ts +1 -7
  86. package/dist/field/elements/upload/Element/index.d.ts.map +1 -1
  87. package/dist/field/elements/upload/Element/index.js +28 -24
  88. package/dist/field/elements/upload/Element/index.js.map +1 -1
  89. package/dist/field/elements/upload/Element/index.scss +116 -114
  90. package/dist/field/icons/IndentLeft/index.scss +12 -10
  91. package/dist/field/icons/IndentRight/index.scss +12 -10
  92. package/dist/field/icons/Link/index.scss +8 -6
  93. package/dist/field/icons/Relationship/index.scss +9 -7
  94. package/dist/field/icons/Upload/index.scss +8 -6
  95. package/dist/field/index.d.ts.map +1 -1
  96. package/dist/field/index.js +16 -14
  97. package/dist/field/index.js.map +1 -1
  98. package/dist/field/index.scss +167 -166
  99. package/dist/field/rscEntry.d.ts +7 -0
  100. package/dist/field/rscEntry.d.ts.map +1 -0
  101. package/dist/field/rscEntry.js +131 -0
  102. package/dist/field/rscEntry.js.map +1 -0
  103. package/dist/field/types.d.ts +5 -6
  104. package/dist/field/types.d.ts.map +1 -1
  105. package/dist/field/types.js.map +1 -1
  106. package/dist/generateSchemaMap.d.ts.map +1 -1
  107. package/dist/generateSchemaMap.js +30 -5
  108. package/dist/generateSchemaMap.js.map +1 -1
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +12 -9
  111. package/dist/index.js.map +1 -1
  112. package/dist/scss/app.scss +164 -163
  113. package/dist/scss/colors.scss +256 -254
  114. package/dist/scss/resets.scss +9 -7
  115. package/dist/scss/toastify.scss +42 -41
  116. package/dist/scss/toasts.scss +104 -103
  117. package/dist/scss/type.scss +80 -79
  118. package/dist/types.d.ts +6 -2
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/types.js.map +1 -1
  121. package/dist/utilities/SlatePropsProvider.d.ts +11 -0
  122. package/dist/utilities/SlatePropsProvider.d.ts.map +1 -0
  123. package/dist/utilities/SlatePropsProvider.js +21 -0
  124. package/dist/utilities/SlatePropsProvider.js.map +1 -0
  125. package/dist/utilities/useSlatePlugin.d.ts.map +1 -1
  126. package/dist/utilities/useSlatePlugin.js +3 -2
  127. package/dist/utilities/useSlatePlugin.js.map +1 -1
  128. package/license.md +22 -0
  129. package/package.json +27 -19
  130. package/dist/cell/index.d.ts +0 -4
  131. package/dist/cell/index.d.ts.map +0 -1
  132. package/dist/cell/index.js +0 -14
  133. package/dist/cell/index.js.map +0 -1
  134. package/dist/generateComponentMap.d.ts +0 -4
  135. package/dist/generateComponentMap.d.ts.map +0 -1
  136. package/dist/generateComponentMap.js +0 -92
  137. package/dist/generateComponentMap.js.map +0 -1
@@ -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
  }
@@ -0,0 +1,7 @@
1
+ import type { ClientComponentProps, FieldPaths, ServerComponentProps } from 'payload';
2
+ import React from 'react';
3
+ import type { AdapterArguments } from '../types.js';
4
+ export declare const RscEntrySlateField: React.FC<{
5
+ args: AdapterArguments;
6
+ } & ClientComponentProps & Pick<FieldPaths, 'path'> & ServerComponentProps>;
7
+ //# sourceMappingURL=rscEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rscEntry.d.ts","sourceRoot":"","sources":["../../src/field/rscEntry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAGpB,UAAU,EAEX,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAItC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAA6C,MAAM,aAAa,CAAA;AAQ9F,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CACvC;IACE,IAAI,EAAE,gBAAgB,CAAA;CACvB,GAAG,oBAAoB,GACtB,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GACxB,oBAAoB,CA8KvB,CAAA"}
@@ -0,0 +1,131 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
3
+ import { createClientFields, deepCopyObjectSimple } from 'payload';
4
+ import React from 'react';
5
+ // eslint-disable-next-line payload/no-imports-from-exports-dir
6
+ import { RichTextField } from '../exports/client/index.js';
7
+ import { elements as elementTypes } from '../field/elements/index.js';
8
+ import { defaultLeaves as leafTypes } from '../field/leaves/index.js';
9
+ import { linkFieldsSchemaPath } from './elements/link/shared.js';
10
+ import { uploadFieldsSchemaPath } from './elements/upload/shared.js';
11
+ export const RscEntrySlateField = ({ args, clientField, forceRender, i18n, path, payload, readOnly, renderedBlocks, schemaPath })=>{
12
+ const componentMap = new Map();
13
+ const clientProps = {
14
+ schemaPath
15
+ };
16
+ (args?.admin?.leaves || Object.values(leafTypes)).forEach((leaf)=>{
17
+ let leafObject;
18
+ if (typeof leaf === 'object' && leaf !== null) {
19
+ leafObject = leaf;
20
+ } else if (typeof leaf === 'string' && leafTypes[leaf]) {
21
+ leafObject = leafTypes[leaf];
22
+ }
23
+ if (leafObject) {
24
+ const LeafButton = leafObject.Button;
25
+ const LeafComponent = leafObject.Leaf;
26
+ componentMap.set(`leaf.button.${leafObject.name}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
27
+ clientProps: clientProps,
28
+ Component: LeafButton,
29
+ importMap: payload.importMap
30
+ }));
31
+ componentMap.set(`leaf.component.${leafObject.name}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
32
+ clientProps: clientProps,
33
+ Component: LeafComponent,
34
+ importMap: payload.importMap
35
+ }));
36
+ if (Array.isArray(leafObject.plugins)) {
37
+ leafObject.plugins.forEach((Plugin, i)=>{
38
+ componentMap.set(`leaf.plugin.${leafObject.name}.${i}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
39
+ clientProps: clientProps,
40
+ Component: Plugin,
41
+ importMap: payload.importMap
42
+ }));
43
+ });
44
+ }
45
+ }
46
+ });
47
+ (args?.admin?.elements || Object.values(elementTypes)).forEach((el)=>{
48
+ let element;
49
+ if (typeof el === 'object' && el !== null) {
50
+ element = el;
51
+ } else if (typeof el === 'string' && elementTypes[el]) {
52
+ element = elementTypes[el];
53
+ }
54
+ if (element) {
55
+ const ElementButton = element.Button;
56
+ const ElementComponent = element.Element;
57
+ if (ElementButton) {
58
+ componentMap.set(`element.button.${element.name}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
59
+ clientProps: clientProps,
60
+ Component: ElementButton,
61
+ importMap: payload.importMap
62
+ }));
63
+ }
64
+ componentMap.set(`element.component.${element.name}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
65
+ clientProps: clientProps,
66
+ Component: ElementComponent,
67
+ importMap: payload.importMap
68
+ }));
69
+ if (Array.isArray(element.plugins)) {
70
+ element.plugins.forEach((Plugin, i)=>{
71
+ componentMap.set(`element.plugin.${element.name}.${i}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
72
+ clientProps: clientProps,
73
+ Component: Plugin,
74
+ importMap: payload.importMap
75
+ }));
76
+ });
77
+ }
78
+ switch(element.name){
79
+ case 'link':
80
+ {
81
+ let clientFields = deepCopyObjectSimple(args.admin?.link?.fields);
82
+ clientFields = createClientFields({
83
+ clientFields,
84
+ defaultIDType: payload.config.db.defaultIDType,
85
+ fields: args.admin?.link?.fields,
86
+ i18n,
87
+ importMap: payload.importMap
88
+ });
89
+ componentMap.set(linkFieldsSchemaPath, clientFields);
90
+ break;
91
+ }
92
+ case 'relationship':
93
+ break;
94
+ case 'upload':
95
+ {
96
+ const uploadEnabledCollections = payload.config.collections.filter(({ admin: { enableRichTextRelationship, hidden }, upload })=>{
97
+ if (hidden === true) {
98
+ return false;
99
+ }
100
+ return enableRichTextRelationship && Boolean(upload) === true;
101
+ });
102
+ uploadEnabledCollections.forEach((collection)=>{
103
+ if (args?.admin?.upload?.collections[collection.slug]?.fields) {
104
+ let clientFields = deepCopyObjectSimple(args?.admin?.upload?.collections[collection.slug]?.fields);
105
+ clientFields = createClientFields({
106
+ clientFields,
107
+ defaultIDType: payload.config.db.defaultIDType,
108
+ fields: args?.admin?.upload?.collections[collection.slug]?.fields,
109
+ i18n,
110
+ importMap: payload.importMap
111
+ });
112
+ componentMap.set(`${uploadFieldsSchemaPath}.${collection.slug}`, clientFields);
113
+ }
114
+ });
115
+ break;
116
+ }
117
+ }
118
+ }
119
+ });
120
+ return /*#__PURE__*/ _jsx(RichTextField, {
121
+ componentMap: Object.fromEntries(componentMap),
122
+ field: clientField,
123
+ forceRender: forceRender,
124
+ path: path,
125
+ readOnly: readOnly,
126
+ renderedBlocks: renderedBlocks,
127
+ schemaPath: schemaPath
128
+ });
129
+ };
130
+
131
+ //# sourceMappingURL=rscEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/field/rscEntry.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n Field,\n FieldPaths,\n RichTextFieldClient,\n ServerComponentProps } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { createClientFields, deepCopyObjectSimple } from 'payload'\nimport React from 'react'\n\nimport type { AdapterArguments, RichTextCustomElement, RichTextCustomLeaf } from '../types.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { RichTextField } from '../exports/client/index.js'\nimport { elements as elementTypes } from '../field/elements/index.js'\nimport { defaultLeaves as leafTypes } from '../field/leaves/index.js'\nimport { linkFieldsSchemaPath } from './elements/link/shared.js'\nimport { uploadFieldsSchemaPath } from './elements/upload/shared.js'\nexport const RscEntrySlateField: React.FC<\n {\n args: AdapterArguments\n } & ClientComponentProps &\n Pick<FieldPaths, 'path'> &\n ServerComponentProps\n> = ({\n args,\n clientField,\n forceRender,\n i18n,\n path,\n payload,\n readOnly,\n renderedBlocks,\n schemaPath,\n}) => {\n const componentMap: Map<string, ClientField[] | React.ReactNode> = new Map()\n\n const clientProps = {\n schemaPath,\n }\n\n ;(args?.admin?.leaves || Object.values(leafTypes)).forEach((leaf) => {\n let leafObject: RichTextCustomLeaf\n\n if (typeof leaf === 'object' && leaf !== null) {\n leafObject = leaf\n } else if (typeof leaf === 'string' && leafTypes[leaf]) {\n leafObject = leafTypes[leaf]\n }\n\n if (leafObject) {\n const LeafButton = leafObject.Button\n const LeafComponent = leafObject.Leaf\n\n componentMap.set(\n `leaf.button.${leafObject.name}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={LeafButton}\n importMap={payload.importMap}\n />,\n )\n\n componentMap.set(\n `leaf.component.${leafObject.name}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={LeafComponent}\n importMap={payload.importMap}\n />,\n )\n\n if (Array.isArray(leafObject.plugins)) {\n leafObject.plugins.forEach((Plugin, i) => {\n componentMap.set(\n `leaf.plugin.${leafObject.name}.${i}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={Plugin}\n importMap={payload.importMap}\n />,\n )\n })\n }\n }\n })\n ;(args?.admin?.elements || Object.values(elementTypes)).forEach((el) => {\n let element: RichTextCustomElement\n\n if (typeof el === 'object' && el !== null) {\n element = el\n } else if (typeof el === 'string' && elementTypes[el]) {\n element = elementTypes[el]\n }\n\n if (element) {\n const ElementButton = element.Button\n const ElementComponent = element.Element\n\n if (ElementButton) {\n componentMap.set(\n `element.button.${element.name}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={ElementButton}\n importMap={payload.importMap}\n />,\n )\n }\n componentMap.set(\n `element.component.${element.name}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={ElementComponent}\n importMap={payload.importMap}\n />,\n )\n\n if (Array.isArray(element.plugins)) {\n element.plugins.forEach((Plugin, i) => {\n componentMap.set(\n `element.plugin.${element.name}.${i}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={Plugin}\n importMap={payload.importMap}\n />,\n )\n })\n }\n\n switch (element.name) {\n case 'link': {\n let clientFields = deepCopyObjectSimple(\n args.admin?.link?.fields,\n ) as unknown as ClientField[]\n clientFields = createClientFields({\n clientFields,\n defaultIDType: payload.config.db.defaultIDType,\n fields: args.admin?.link?.fields as Field[],\n i18n,\n importMap: payload.importMap,\n })\n\n componentMap.set(linkFieldsSchemaPath, clientFields)\n\n break\n }\n\n case 'relationship':\n break\n\n case 'upload': {\n const uploadEnabledCollections = payload.config.collections.filter(\n ({ admin: { enableRichTextRelationship, hidden }, upload }) => {\n if (hidden === true) {\n return false\n }\n\n return enableRichTextRelationship && Boolean(upload) === true\n },\n )\n\n uploadEnabledCollections.forEach((collection) => {\n if (args?.admin?.upload?.collections[collection.slug]?.fields) {\n let clientFields = deepCopyObjectSimple(\n args?.admin?.upload?.collections[collection.slug]?.fields,\n ) as unknown as ClientField[]\n clientFields = createClientFields({\n clientFields,\n defaultIDType: payload.config.db.defaultIDType,\n fields: args?.admin?.upload?.collections[collection.slug]?.fields,\n i18n,\n importMap: payload.importMap,\n })\n\n componentMap.set(`${uploadFieldsSchemaPath}.${collection.slug}`, clientFields)\n }\n })\n\n break\n }\n }\n }\n })\n\n return (\n <RichTextField\n componentMap={Object.fromEntries(componentMap)}\n field={clientField as RichTextFieldClient}\n forceRender={forceRender}\n path={path}\n readOnly={readOnly}\n renderedBlocks={renderedBlocks}\n schemaPath={schemaPath}\n />\n )\n}\n"],"names":["RenderServerComponent","createClientFields","deepCopyObjectSimple","React","RichTextField","elements","elementTypes","defaultLeaves","leafTypes","linkFieldsSchemaPath","uploadFieldsSchemaPath","RscEntrySlateField","args","clientField","forceRender","i18n","path","payload","readOnly","renderedBlocks","schemaPath","componentMap","Map","clientProps","admin","leaves","Object","values","forEach","leaf","leafObject","LeafButton","Button","LeafComponent","Leaf","set","name","Component","importMap","Array","isArray","plugins","Plugin","i","el","element","ElementButton","ElementComponent","Element","clientFields","link","fields","defaultIDType","config","db","uploadEnabledCollections","collections","filter","enableRichTextRelationship","hidden","upload","Boolean","collection","slug","fromEntries","field"],"mappings":";AAQA,SAASA,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,kBAAkB,EAAEC,oBAAoB,QAAQ,UAAS;AAClE,OAAOC,WAAW,QAAO;AAIzB,+DAA+D;AAC/D,SAASC,aAAa,QAAQ,6BAA4B;AAC1D,SAASC,YAAYC,YAAY,QAAQ,6BAA4B;AACrE,SAASC,iBAAiBC,SAAS,QAAQ,2BAA0B;AACrE,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,sBAAsB,QAAQ,8BAA6B;AACpE,OAAO,MAAMC,qBAMT,CAAC,EACHC,IAAI,EACJC,WAAW,EACXC,WAAW,EACXC,IAAI,EACJC,IAAI,EACJC,OAAO,EACPC,QAAQ,EACRC,cAAc,EACdC,UAAU,EACX;IACC,MAAMC,eAA6D,IAAIC;IAEvE,MAAMC,cAAc;QAClBH;IACF;IAEER,CAAAA,MAAMY,OAAOC,UAAUC,OAAOC,MAAM,CAACnB,UAAS,EAAGoB,OAAO,CAAC,CAACC;QAC1D,IAAIC;QAEJ,IAAI,OAAOD,SAAS,YAAYA,SAAS,MAAM;YAC7CC,aAAaD;QACf,OAAO,IAAI,OAAOA,SAAS,YAAYrB,SAAS,CAACqB,KAAK,EAAE;YACtDC,aAAatB,SAAS,CAACqB,KAAK;QAC9B;QAEA,IAAIC,YAAY;YACd,MAAMC,aAAaD,WAAWE,MAAM;YACpC,MAAMC,gBAAgBH,WAAWI,IAAI;YAErCb,aAAac,GAAG,CACd,CAAC,YAAY,EAAEL,WAAWM,IAAI,CAAC,CAAC,gBAChC,KAACpC;gBACCuB,aAAaA;gBACbc,WAAWN;gBACXO,WAAWrB,QAAQqB,SAAS;;YAIhCjB,aAAac,GAAG,CACd,CAAC,eAAe,EAAEL,WAAWM,IAAI,CAAC,CAAC,gBACnC,KAACpC;gBACCuB,aAAaA;gBACbc,WAAWJ;gBACXK,WAAWrB,QAAQqB,SAAS;;YAIhC,IAAIC,MAAMC,OAAO,CAACV,WAAWW,OAAO,GAAG;gBACrCX,WAAWW,OAAO,CAACb,OAAO,CAAC,CAACc,QAAQC;oBAClCtB,aAAac,GAAG,CACd,CAAC,YAAY,EAAEL,WAAWM,IAAI,CAAC,CAAC,EAAEO,EAAE,CAAC,gBACrC,KAAC3C;wBACCuB,aAAaA;wBACbc,WAAWK;wBACXJ,WAAWrB,QAAQqB,SAAS;;gBAGlC;YACF;QACF;IACF;IACE1B,CAAAA,MAAMY,OAAOnB,YAAYqB,OAAOC,MAAM,CAACrB,aAAY,EAAGsB,OAAO,CAAC,CAACgB;QAC/D,IAAIC;QAEJ,IAAI,OAAOD,OAAO,YAAYA,OAAO,MAAM;YACzCC,UAAUD;QACZ,OAAO,IAAI,OAAOA,OAAO,YAAYtC,YAAY,CAACsC,GAAG,EAAE;YACrDC,UAAUvC,YAAY,CAACsC,GAAG;QAC5B;QAEA,IAAIC,SAAS;YACX,MAAMC,gBAAgBD,QAAQb,MAAM;YACpC,MAAMe,mBAAmBF,QAAQG,OAAO;YAExC,IAAIF,eAAe;gBACjBzB,aAAac,GAAG,CACd,CAAC,eAAe,EAAEU,QAAQT,IAAI,CAAC,CAAC,gBAChC,KAACpC;oBACCuB,aAAaA;oBACbc,WAAWS;oBACXR,WAAWrB,QAAQqB,SAAS;;YAGlC;YACAjB,aAAac,GAAG,CACd,CAAC,kBAAkB,EAAEU,QAAQT,IAAI,CAAC,CAAC,gBACnC,KAACpC;gBACCuB,aAAaA;gBACbc,WAAWU;gBACXT,WAAWrB,QAAQqB,SAAS;;YAIhC,IAAIC,MAAMC,OAAO,CAACK,QAAQJ,OAAO,GAAG;gBAClCI,QAAQJ,OAAO,CAACb,OAAO,CAAC,CAACc,QAAQC;oBAC/BtB,aAAac,GAAG,CACd,CAAC,eAAe,EAAEU,QAAQT,IAAI,CAAC,CAAC,EAAEO,EAAE,CAAC,gBACrC,KAAC3C;wBACCuB,aAAaA;wBACbc,WAAWK;wBACXJ,WAAWrB,QAAQqB,SAAS;;gBAGlC;YACF;YAEA,OAAQO,QAAQT,IAAI;gBAClB,KAAK;oBAAQ;wBACX,IAAIa,eAAe/C,qBACjBU,KAAKY,KAAK,EAAE0B,MAAMC;wBAEpBF,eAAehD,mBAAmB;4BAChCgD;4BACAG,eAAenC,QAAQoC,MAAM,CAACC,EAAE,CAACF,aAAa;4BAC9CD,QAAQvC,KAAKY,KAAK,EAAE0B,MAAMC;4BAC1BpC;4BACAuB,WAAWrB,QAAQqB,SAAS;wBAC9B;wBAEAjB,aAAac,GAAG,CAAC1B,sBAAsBwC;wBAEvC;oBACF;gBAEA,KAAK;oBACH;gBAEF,KAAK;oBAAU;wBACb,MAAMM,2BAA2BtC,QAAQoC,MAAM,CAACG,WAAW,CAACC,MAAM,CAChE,CAAC,EAAEjC,OAAO,EAAEkC,0BAA0B,EAAEC,MAAM,EAAE,EAAEC,MAAM,EAAE;4BACxD,IAAID,WAAW,MAAM;gCACnB,OAAO;4BACT;4BAEA,OAAOD,8BAA8BG,QAAQD,YAAY;wBAC3D;wBAGFL,yBAAyB3B,OAAO,CAAC,CAACkC;4BAChC,IAAIlD,MAAMY,OAAOoC,QAAQJ,WAAW,CAACM,WAAWC,IAAI,CAAC,EAAEZ,QAAQ;gCAC7D,IAAIF,eAAe/C,qBACjBU,MAAMY,OAAOoC,QAAQJ,WAAW,CAACM,WAAWC,IAAI,CAAC,EAAEZ;gCAErDF,eAAehD,mBAAmB;oCAChCgD;oCACAG,eAAenC,QAAQoC,MAAM,CAACC,EAAE,CAACF,aAAa;oCAC9CD,QAAQvC,MAAMY,OAAOoC,QAAQJ,WAAW,CAACM,WAAWC,IAAI,CAAC,EAAEZ;oCAC3DpC;oCACAuB,WAAWrB,QAAQqB,SAAS;gCAC9B;gCAEAjB,aAAac,GAAG,CAAC,CAAC,EAAEzB,uBAAuB,CAAC,EAAEoD,WAAWC,IAAI,CAAC,CAAC,EAAEd;4BACnE;wBACF;wBAEA;oBACF;YACF;QACF;IACF;IAEA,qBACE,KAAC7C;QACCiB,cAAcK,OAAOsC,WAAW,CAAC3C;QACjC4C,OAAOpD;QACPC,aAAaA;QACbE,MAAMA;QACNE,UAAUA;QACVC,gBAAgBA;QAChBC,YAAYA;;AAGlB,EAAC"}
@@ -1,21 +1,20 @@
1
- import type { MappedComponent } from 'payload';
2
1
  import type { RichTextPlugin, SlateFieldProps } from '../types.js';
3
2
  export type EnabledFeatures = {
4
3
  elements: {
5
4
  [name: string]: {
6
- Button: MappedComponent;
7
- Element: MappedComponent;
5
+ Button: React.ReactNode;
6
+ Element: React.ReactNode;
8
7
  name: string;
9
8
  };
10
9
  };
11
10
  leaves: {
12
11
  [name: string]: {
13
- Button: MappedComponent;
14
- Leaf: MappedComponent;
12
+ Button: React.ReactNode;
13
+ Leaf: React.ReactNode;
15
14
  name: string;
16
15
  };
17
16
  };
18
- plugins: MappedComponent[];
17
+ plugins: React.ReactNode[];
19
18
  };
20
19
  export type LoadedSlateFieldProps = {
21
20
  elements: EnabledFeatures['elements'];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,eAAe,CAAA;YACvB,OAAO,EAAE,eAAe,CAAA;YACxB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,MAAM,EAAE;QACN,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,eAAe,CAAA;YACvB,IAAI,EAAE,eAAe,CAAA;YACrB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,OAAO,EAAE,eAAe,EAAE,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IACrC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,EAAE,cAAc,EAAE,CAAA;CAC1B,GAAG,eAAe,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,SAAS,CAAA;YACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;YACxB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,MAAM,EAAE;QACN,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,SAAS,CAAA;YACvB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;YACrB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IACrC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,EAAE,cAAc,EAAE,CAAA;CAC1B,GAAG,eAAe,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/field/types.ts"],"sourcesContent":["import type { MappedComponent } from 'payload'\n\nimport type { RichTextPlugin, SlateFieldProps } from '../types.js'\n\nexport type EnabledFeatures = {\n elements: {\n [name: string]: {\n Button: MappedComponent\n Element: MappedComponent\n name: string\n }\n }\n leaves: {\n [name: string]: {\n Button: MappedComponent\n Leaf: MappedComponent\n name: string\n }\n }\n plugins: MappedComponent[]\n}\n\nexport type LoadedSlateFieldProps = {\n elements: EnabledFeatures['elements']\n leaves: EnabledFeatures['leaves']\n plugins: RichTextPlugin[]\n} & SlateFieldProps\n"],"names":[],"mappings":"AAsBA,WAImB"}
1
+ {"version":3,"sources":["../../src/field/types.ts"],"sourcesContent":["import type { RichTextPlugin, SlateFieldProps } from '../types.js'\n\nexport type EnabledFeatures = {\n elements: {\n [name: string]: {\n Button: React.ReactNode\n Element: React.ReactNode\n name: string\n }\n }\n leaves: {\n [name: string]: {\n Button: React.ReactNode\n Leaf: React.ReactNode\n name: string\n }\n }\n plugins: React.ReactNode[]\n}\n\nexport type LoadedSlateFieldProps = {\n elements: EnabledFeatures['elements']\n leaves: EnabledFeatures['leaves']\n plugins: RichTextPlugin[]\n} & SlateFieldProps\n"],"names":[],"mappings":"AAoBA,WAImB"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateSchemaMap.d.ts","sourceRoot":"","sources":["../src/generateSchemaMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,eAAe,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,YAAY,CAAA;AAMzE,eAAO,MAAM,oBAAoB,SACxB,gBAAgB,KAAG,eAAe,CAAC,mBAAmB,CAoD5D,CAAA"}
1
+ {"version":3,"file":"generateSchemaMap.d.ts","sourceRoot":"","sources":["../src/generateSchemaMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,eAAe,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,YAAY,CAAA;AAMzE,eAAO,MAAM,oBAAoB,SACxB,gBAAgB,KAAG,eAAe,CAAC,mBAAmB,CAwE5D,CAAA"}
@@ -1,7 +1,8 @@
1
+ import { traverseFields } from '@payloadcms/ui/utilities/buildFieldSchemaMap/traverseFields';
1
2
  import { elements as elementTypes } from './field/elements/index.js';
2
3
  import { linkFieldsSchemaPath } from './field/elements/link/shared.js';
3
4
  import { uploadFieldsSchemaPath } from './field/elements/upload/shared.js';
4
- export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=>{
5
+ export const getGenerateSchemaMap = (args)=>({ config, i18n, schemaMap, schemaPath })=>{
5
6
  (args?.admin?.elements || Object.values(elementTypes)).forEach((el)=>{
6
7
  let element;
7
8
  if (typeof el === 'object' && el !== null) {
@@ -13,9 +14,24 @@ export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=
13
14
  switch(element.name){
14
15
  case 'link':
15
16
  {
16
- schemaMap.set(`${schemaPath}.${linkFieldsSchemaPath}`, args.admin?.link?.fields);
17
+ if (args.admin?.link?.fields) {
18
+ schemaMap.set(`${schemaPath}.${linkFieldsSchemaPath}`, {
19
+ fields: args.admin?.link?.fields
20
+ });
21
+ // generate schema map entries for sub-fields using traverseFields
22
+ traverseFields({
23
+ config,
24
+ fields: args.admin?.link?.fields,
25
+ i18n,
26
+ parentIndexPath: '',
27
+ parentSchemaPath: `${schemaPath}.${linkFieldsSchemaPath}`,
28
+ schemaMap
29
+ });
30
+ }
17
31
  break;
18
32
  }
33
+ case 'relationship':
34
+ break;
19
35
  case 'upload':
20
36
  {
21
37
  const uploadEnabledCollections = config.collections.filter(({ admin: { enableRichTextRelationship, hidden }, upload })=>{
@@ -26,13 +42,22 @@ export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=
26
42
  });
27
43
  uploadEnabledCollections.forEach((collection)=>{
28
44
  if (args?.admin?.upload?.collections[collection.slug]?.fields) {
29
- schemaMap.set(`${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`, args?.admin?.upload?.collections[collection.slug]?.fields);
45
+ schemaMap.set(`${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`, {
46
+ fields: args?.admin?.upload?.collections[collection.slug]?.fields
47
+ });
48
+ // generate schema map entries for sub-fields using traverseFields
49
+ traverseFields({
50
+ config,
51
+ fields: args?.admin?.upload?.collections[collection.slug]?.fields,
52
+ i18n,
53
+ parentIndexPath: '',
54
+ parentSchemaPath: `${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`,
55
+ schemaMap
56
+ });
30
57
  }
31
58
  });
32
59
  break;
33
60
  }
34
- case 'relationship':
35
- break;
36
61
  }
37
62
  }
38
63
  });