@ai-stack/payloadcms 3.0.0-beta.95.2 → 3.2.3-beta

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 (195) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +25 -16
  3. package/dist/ai/models/anthropic/generateRichText.d.ts.map +1 -1
  4. package/dist/ai/models/anthropic/generateRichText.js +2 -2
  5. package/dist/ai/models/anthropic/generateRichText.js.map +1 -1
  6. package/dist/ai/models/anthropic/index.d.ts.map +1 -1
  7. package/dist/ai/models/anthropic/index.js +8 -32
  8. package/dist/ai/models/anthropic/index.js.map +1 -1
  9. package/dist/ai/models/elevenLabs/generateVoice.d.ts +1 -1
  10. package/dist/ai/models/elevenLabs/index.d.ts.map +1 -1
  11. package/dist/ai/models/elevenLabs/index.js +4 -3
  12. package/dist/ai/models/elevenLabs/index.js.map +1 -1
  13. package/dist/ai/models/openai/generateImage.d.ts +1 -1
  14. package/dist/ai/models/openai/generateImage.d.ts.map +1 -1
  15. package/dist/ai/models/openai/generateImage.js +0 -1
  16. package/dist/ai/models/openai/generateImage.js.map +1 -1
  17. package/dist/ai/models/openai/generateRichText.d.ts +1 -1
  18. package/dist/ai/models/openai/generateRichText.d.ts.map +1 -1
  19. package/dist/ai/models/openai/generateRichText.js +16 -9
  20. package/dist/ai/models/openai/generateRichText.js.map +1 -1
  21. package/dist/ai/models/openai/generateVoice.d.ts +1 -1
  22. package/dist/ai/models/openai/index.d.ts.map +1 -1
  23. package/dist/ai/models/openai/index.js +9 -35
  24. package/dist/ai/models/openai/index.js.map +1 -1
  25. package/dist/ai/prompts.d.ts +1 -1
  26. package/dist/ai/prompts.d.ts.map +1 -1
  27. package/dist/ai/prompts.js +6 -3
  28. package/dist/ai/prompts.js.map +1 -1
  29. package/dist/ai/schemas/lexicalJsonSchema.d.ts +371 -0
  30. package/dist/ai/schemas/lexicalJsonSchema.d.ts.map +1 -0
  31. package/dist/ai/schemas/lexicalJsonSchema.js +650 -0
  32. package/dist/ai/schemas/lexicalJsonSchema.js.map +1 -0
  33. package/dist/ai/utils/generateFileNameByPrompt.js.map +1 -1
  34. package/dist/ai/utils/systemGenerate.d.ts +5 -0
  35. package/dist/ai/utils/systemGenerate.d.ts.map +1 -0
  36. package/dist/ai/utils/{generateSeedPrompt.js → systemGenerate.js} +2 -2
  37. package/dist/ai/utils/systemGenerate.js.map +1 -0
  38. package/dist/collections/Instructions.d.ts +1 -1
  39. package/dist/collections/Instructions.d.ts.map +1 -1
  40. package/dist/collections/Instructions.js +177 -85
  41. package/dist/collections/Instructions.js.map +1 -1
  42. package/dist/defaults.d.ts +1 -1
  43. package/dist/defaults.d.ts.map +1 -1
  44. package/dist/defaults.js +1 -1
  45. package/dist/defaults.js.map +1 -1
  46. package/dist/endpoints/fetchFields.d.ts +3 -0
  47. package/dist/endpoints/fetchFields.d.ts.map +1 -0
  48. package/dist/endpoints/fetchFields.js +21 -0
  49. package/dist/endpoints/fetchFields.js.map +1 -0
  50. package/dist/endpoints/index.d.ts.map +1 -1
  51. package/dist/endpoints/index.js +12 -18
  52. package/dist/endpoints/index.js.map +1 -1
  53. package/dist/exports/fields.d.ts +2 -1
  54. package/dist/exports/fields.d.ts.map +1 -1
  55. package/dist/exports/fields.js +2 -1
  56. package/dist/exports/fields.js.map +1 -1
  57. package/dist/fields/ComposeField/ComposeField.d.ts +3 -0
  58. package/dist/fields/ComposeField/ComposeField.d.ts.map +1 -0
  59. package/dist/fields/ComposeField/ComposeField.js +24 -0
  60. package/dist/fields/ComposeField/ComposeField.js.map +1 -0
  61. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts +2 -0
  62. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -0
  63. package/dist/fields/LexicalEditor/ComposeFeatureComponent.js +28 -0
  64. package/dist/fields/LexicalEditor/ComposeFeatureComponent.js.map +1 -0
  65. package/dist/fields/LexicalEditor/feature.client.d.ts +4 -1
  66. package/dist/fields/LexicalEditor/feature.client.d.ts.map +1 -1
  67. package/dist/fields/LexicalEditor/feature.client.js +19 -7
  68. package/dist/fields/LexicalEditor/feature.client.js.map +1 -1
  69. package/dist/fields/PromptEditorField/PromptEditorField.d.ts +2 -2
  70. package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -1
  71. package/dist/fields/PromptEditorField/PromptEditorField.js +4 -8
  72. package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
  73. package/dist/fields/SelectField/SelectField.d.ts +3 -2
  74. package/dist/fields/SelectField/SelectField.d.ts.map +1 -1
  75. package/dist/fields/SelectField/SelectField.js +2 -3
  76. package/dist/fields/SelectField/SelectField.js.map +1 -1
  77. package/dist/index.d.ts +1 -6
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +1 -6
  80. package/dist/index.js.map +1 -1
  81. package/dist/init.d.ts +2 -1
  82. package/dist/init.d.ts.map +1 -1
  83. package/dist/init.js +22 -21
  84. package/dist/init.js.map +1 -1
  85. package/dist/libraries/autocomplete/AutocompleteTextArea.js +9 -7
  86. package/dist/libraries/autocomplete/AutocompleteTextArea.js.map +1 -1
  87. package/dist/libraries/handlebars/asyncHandlebars.js +1 -1
  88. package/dist/libraries/handlebars/asyncHandlebars.js.map +1 -1
  89. package/dist/libraries/handlebars/helpers.js.map +1 -1
  90. package/dist/plugin.d.ts.map +1 -1
  91. package/dist/plugin.js +56 -41
  92. package/dist/plugin.js.map +1 -1
  93. package/dist/providers/FieldProvider/FieldProvider.d.ts +15 -0
  94. package/dist/providers/FieldProvider/FieldProvider.d.ts.map +1 -0
  95. package/dist/providers/FieldProvider/FieldProvider.js +33 -0
  96. package/dist/providers/FieldProvider/FieldProvider.js.map +1 -0
  97. package/dist/providers/FieldProvider/useFieldProps.d.ts +6 -0
  98. package/dist/providers/FieldProvider/useFieldProps.d.ts.map +1 -0
  99. package/dist/providers/FieldProvider/useFieldProps.js +12 -0
  100. package/dist/providers/FieldProvider/useFieldProps.js.map +1 -0
  101. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts +5 -1
  102. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -1
  103. package/dist/providers/InstructionsProvider/InstructionsProvider.js +12 -7
  104. package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
  105. package/dist/providers/InstructionsProvider/useInstructions.d.ts +2 -2
  106. package/dist/providers/InstructionsProvider/useInstructions.d.ts.map +1 -1
  107. package/dist/providers/InstructionsProvider/useInstructions.js +17 -4
  108. package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -1
  109. package/dist/types.d.ts +11 -41
  110. package/dist/types.d.ts.map +1 -1
  111. package/dist/types.js +1 -4
  112. package/dist/types.js.map +1 -1
  113. package/dist/ui/Compose/Compose.d.ts +9 -0
  114. package/dist/ui/Compose/Compose.d.ts.map +1 -0
  115. package/dist/ui/{Actions/Actions.js → Compose/Compose.js} +51 -40
  116. package/dist/ui/Compose/Compose.js.map +1 -0
  117. package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts.map +1 -1
  118. package/dist/ui/{Actions → Compose}/UndoRedoActions.js +15 -2
  119. package/dist/ui/Compose/UndoRedoActions.js.map +1 -0
  120. package/dist/ui/{Actions/actions.module.scss → Compose/compose.module.css} +7 -7
  121. package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts +1 -1
  122. package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts.map +1 -1
  123. package/dist/ui/{Actions → Compose}/hooks/menu/Item.js +2 -2
  124. package/dist/ui/{Actions → Compose}/hooks/menu/Item.js.map +1 -1
  125. package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts.map +1 -0
  126. package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.js +11 -11
  127. package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -0
  128. package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts +8 -8
  129. package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts.map +1 -1
  130. package/dist/ui/{Actions → Compose}/hooks/menu/items.js.map +1 -1
  131. package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.d.ts +1 -1
  132. package/dist/ui/Compose/hooks/menu/itemsMap.d.ts.map +1 -0
  133. package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.js +1 -2
  134. package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -0
  135. package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.d.ts +2 -1
  136. package/dist/ui/Compose/hooks/menu/useMenu.d.ts.map +1 -0
  137. package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.js +16 -4
  138. package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -0
  139. package/dist/ui/{Actions → Compose}/hooks/useGenerate.d.ts +4 -1
  140. package/dist/ui/Compose/hooks/useGenerate.d.ts.map +1 -0
  141. package/dist/ui/{Actions → Compose}/hooks/useGenerate.js +58 -34
  142. package/dist/ui/Compose/hooks/useGenerate.js.map +1 -0
  143. package/dist/ui/Compose/hooks/useHistory.d.ts.map +1 -0
  144. package/dist/ui/{Actions → Compose}/hooks/useHistory.js +6 -3
  145. package/dist/ui/Compose/hooks/useHistory.js.map +1 -0
  146. package/dist/utilities/editorSchemaValidator.d.ts +3 -0
  147. package/dist/utilities/editorSchemaValidator.d.ts.map +1 -0
  148. package/dist/utilities/editorSchemaValidator.js +31 -0
  149. package/dist/utilities/editorSchemaValidator.js.map +1 -0
  150. package/dist/utilities/setSafeLexicalState.d.ts +2 -2
  151. package/dist/utilities/setSafeLexicalState.d.ts.map +1 -1
  152. package/dist/utilities/setSafeLexicalState.js +5 -12
  153. package/dist/utilities/setSafeLexicalState.js.map +1 -1
  154. package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
  155. package/dist/utilities/updateFieldsConfig.js +18 -6
  156. package/dist/utilities/updateFieldsConfig.js.map +1 -1
  157. package/package.json +35 -64
  158. package/dist/ai/schemas/lexical.schema.d.ts +0 -31
  159. package/dist/ai/schemas/lexical.schema.d.ts.map +0 -1
  160. package/dist/ai/schemas/lexical.schema.js +0 -102
  161. package/dist/ai/schemas/lexical.schema.js.map +0 -1
  162. package/dist/ai/utils/generateSeedPrompt.d.ts +0 -5
  163. package/dist/ai/utils/generateSeedPrompt.d.ts.map +0 -1
  164. package/dist/ai/utils/generateSeedPrompt.js.map +0 -1
  165. package/dist/fields/DescriptionField/DescriptionField.d.ts +0 -4
  166. package/dist/fields/DescriptionField/DescriptionField.d.ts.map +0 -1
  167. package/dist/fields/DescriptionField/DescriptionField.js +0 -18
  168. package/dist/fields/DescriptionField/DescriptionField.js.map +0 -1
  169. package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts +0 -2
  170. package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts.map +0 -1
  171. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js +0 -15
  172. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js.map +0 -1
  173. package/dist/ui/Actions/Actions.d.ts +0 -5
  174. package/dist/ui/Actions/Actions.d.ts.map +0 -1
  175. package/dist/ui/Actions/Actions.js.map +0 -1
  176. package/dist/ui/Actions/UndoRedoActions.js.map +0 -1
  177. package/dist/ui/Actions/hooks/menu/TranslateMenu.d.ts.map +0 -1
  178. package/dist/ui/Actions/hooks/menu/TranslateMenu.js.map +0 -1
  179. package/dist/ui/Actions/hooks/menu/itemsMap.d.ts.map +0 -1
  180. package/dist/ui/Actions/hooks/menu/itemsMap.js.map +0 -1
  181. package/dist/ui/Actions/hooks/menu/useMenu.d.ts.map +0 -1
  182. package/dist/ui/Actions/hooks/menu/useMenu.js.map +0 -1
  183. package/dist/ui/Actions/hooks/useGenerate.d.ts.map +0 -1
  184. package/dist/ui/Actions/hooks/useGenerate.js.map +0 -1
  185. package/dist/ui/Actions/hooks/useHistory.d.ts.map +0 -1
  186. package/dist/ui/Actions/hooks/useHistory.js.map +0 -1
  187. package/dist/utilities/jsonToZod.d.ts +0 -3
  188. package/dist/utilities/jsonToZod.d.ts.map +0 -1
  189. package/dist/utilities/jsonToZod.js +0 -33
  190. package/dist/utilities/jsonToZod.js.map +0 -1
  191. /package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts +0 -0
  192. /package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.d.ts +0 -0
  193. /package/dist/ui/{Actions → Compose}/hooks/menu/items.js +0 -0
  194. /package/dist/ui/{Actions → Compose}/hooks/menu/menu.module.scss +0 -0
  195. /package/dist/ui/{Actions → Compose}/hooks/useHistory.d.ts +0 -0
@@ -0,0 +1,650 @@
1
+ export const documentSchema = {
2
+ type: 'object',
3
+ $schema: 'http://json-schema.org/draft-07/schema#',
4
+ additionalProperties: false,
5
+ definitions: {
6
+ // Text Node (Leaf Node)
7
+ TextNode: {
8
+ type: 'object',
9
+ additionalProperties: false,
10
+ properties: {
11
+ type: {
12
+ type: 'string',
13
+ enum: [
14
+ 'text'
15
+ ]
16
+ },
17
+ detail: {
18
+ type: 'number',
19
+ description: 'Text detail flags',
20
+ enum: [
21
+ 0,
22
+ 1,
23
+ 2,
24
+ 3
25
+ ],
26
+ examples: [
27
+ {
28
+ description: 'No special details',
29
+ value: 0
30
+ },
31
+ {
32
+ description: 'Directionless',
33
+ value: 1
34
+ },
35
+ {
36
+ description: 'Unmergeable',
37
+ value: 2
38
+ },
39
+ {
40
+ description: 'Directionless + Unmergeable',
41
+ value: 3
42
+ }
43
+ ]
44
+ },
45
+ direction: {
46
+ type: [
47
+ 'string',
48
+ 'null'
49
+ ],
50
+ enum: [
51
+ 'ltr',
52
+ null
53
+ ]
54
+ },
55
+ format: {
56
+ type: 'number',
57
+ description: `Format flags for text:
58
+ 0 = No format
59
+ 1 = Bold
60
+ 2 = Italic
61
+ 3 = Bold + Italic (1|2)
62
+ 4 = Strikethrough
63
+ 8 = Underline
64
+ 9 = Bold + Underline (1|8)
65
+ 16 = Code
66
+ 32 = Subscript
67
+ 64 = Superscript
68
+ 128 = Highlight
69
+
70
+ Formats can be combined using binary OR (|).
71
+ Example combinations:
72
+ - Bold + Italic = 1|2 = 3
73
+ - Bold + Underline = 1|8 = 9
74
+ - Italic + Underline = 2|8 = 10
75
+ - Bold + Italic + Underline = 1|2|8 = 11`
76
+ },
77
+ indent: {
78
+ type: 'number'
79
+ },
80
+ mode: {
81
+ type: 'number',
82
+ description: 'Text mode flags',
83
+ enum: [
84
+ 0,
85
+ 1,
86
+ 2
87
+ ],
88
+ examples: [
89
+ {
90
+ description: 'Normal text',
91
+ value: 0
92
+ },
93
+ {
94
+ description: 'Token text',
95
+ value: 1
96
+ },
97
+ {
98
+ description: 'Segmented text',
99
+ value: 2
100
+ }
101
+ ]
102
+ },
103
+ style: {
104
+ type: 'string',
105
+ description: 'CSS style string (e.g., "color: red; font-size: 12px;")'
106
+ },
107
+ text: {
108
+ type: 'string'
109
+ },
110
+ version: {
111
+ type: 'number'
112
+ }
113
+ },
114
+ required: [
115
+ 'type',
116
+ 'text',
117
+ 'format',
118
+ 'style',
119
+ 'mode',
120
+ 'detail',
121
+ 'direction',
122
+ 'indent',
123
+ 'version'
124
+ ]
125
+ },
126
+ // Styled Table Cell Node
127
+ TableCellNode: {
128
+ type: 'object',
129
+ additionalProperties: false,
130
+ properties: {
131
+ type: {
132
+ type: 'string',
133
+ enum: [
134
+ 'tablecell'
135
+ ]
136
+ },
137
+ children: {
138
+ type: 'array',
139
+ items: {
140
+ $ref: '#/definitions/TextNode'
141
+ }
142
+ },
143
+ colSpan: {
144
+ type: 'number'
145
+ },
146
+ direction: {
147
+ type: [
148
+ 'string',
149
+ 'null'
150
+ ],
151
+ enum: [
152
+ 'ltr',
153
+ null
154
+ ]
155
+ },
156
+ headerState: {
157
+ type: 'number'
158
+ },
159
+ indent: {
160
+ type: 'number'
161
+ },
162
+ version: {
163
+ type: 'number'
164
+ },
165
+ width: {
166
+ type: [
167
+ 'null'
168
+ ],
169
+ enum: [
170
+ null
171
+ ]
172
+ }
173
+ },
174
+ required: [
175
+ 'type',
176
+ 'children',
177
+ 'headerState',
178
+ 'colSpan',
179
+ 'width',
180
+ 'direction',
181
+ 'indent',
182
+ 'version'
183
+ ]
184
+ },
185
+ // Styled Table Row Node
186
+ TableRowNode: {
187
+ type: 'object',
188
+ additionalProperties: false,
189
+ properties: {
190
+ type: {
191
+ type: 'string',
192
+ enum: [
193
+ 'tablerow'
194
+ ]
195
+ },
196
+ children: {
197
+ type: 'array',
198
+ items: {
199
+ $ref: '#/definitions/TableCellNode'
200
+ }
201
+ },
202
+ height: {
203
+ type: 'number'
204
+ }
205
+ },
206
+ required: [
207
+ 'type',
208
+ 'children',
209
+ 'height'
210
+ ]
211
+ },
212
+ // Styled Table Node
213
+ TableNode: {
214
+ type: 'object',
215
+ additionalProperties: false,
216
+ properties: {
217
+ type: {
218
+ type: 'string',
219
+ enum: [
220
+ 'table'
221
+ ]
222
+ },
223
+ children: {
224
+ type: 'array',
225
+ items: {
226
+ $ref: '#/definitions/TableRowNode'
227
+ }
228
+ }
229
+ },
230
+ required: [
231
+ 'type',
232
+ 'children'
233
+ ]
234
+ },
235
+ // Heading Node
236
+ HeadingNode: {
237
+ type: 'object',
238
+ additionalProperties: false,
239
+ properties: {
240
+ type: {
241
+ type: 'string',
242
+ enum: [
243
+ 'heading'
244
+ ]
245
+ },
246
+ children: {
247
+ type: 'array',
248
+ items: {
249
+ anyOf: [
250
+ {
251
+ $ref: '#/definitions/TextNode'
252
+ },
253
+ {
254
+ $ref: '#/definitions/LinkNode'
255
+ }
256
+ ]
257
+ }
258
+ },
259
+ direction: {
260
+ type: [
261
+ 'string',
262
+ 'null'
263
+ ],
264
+ enum: [
265
+ 'ltr',
266
+ null
267
+ ]
268
+ },
269
+ indent: {
270
+ type: 'number'
271
+ },
272
+ tag: {
273
+ type: 'string',
274
+ enum: [
275
+ 'h1',
276
+ 'h2',
277
+ 'h3'
278
+ ]
279
+ },
280
+ version: {
281
+ type: 'number'
282
+ }
283
+ },
284
+ required: [
285
+ 'type',
286
+ 'tag',
287
+ 'children',
288
+ 'direction',
289
+ 'indent',
290
+ 'version'
291
+ ]
292
+ },
293
+ // Paragraph Node
294
+ ParagraphNode: {
295
+ type: 'object',
296
+ additionalProperties: false,
297
+ properties: {
298
+ type: {
299
+ type: 'string',
300
+ enum: [
301
+ 'paragraph'
302
+ ]
303
+ },
304
+ children: {
305
+ type: 'array',
306
+ items: {
307
+ anyOf: [
308
+ {
309
+ $ref: '#/definitions/TextNode'
310
+ },
311
+ {
312
+ $ref: '#/definitions/LinkNode'
313
+ },
314
+ {
315
+ $ref: '#/definitions/CodeNode'
316
+ }
317
+ ]
318
+ }
319
+ },
320
+ direction: {
321
+ type: [
322
+ 'string',
323
+ 'null'
324
+ ],
325
+ enum: [
326
+ 'ltr',
327
+ null
328
+ ]
329
+ },
330
+ format: {
331
+ type: 'string',
332
+ enum: [
333
+ 'start',
334
+ 'center',
335
+ 'right'
336
+ ]
337
+ },
338
+ indent: {
339
+ type: 'number'
340
+ },
341
+ textFormat: {
342
+ type: 'number'
343
+ },
344
+ textStyle: {
345
+ type: 'string',
346
+ description: 'CSS style string (e.g., "color: red; font-size: 12px;")'
347
+ },
348
+ version: {
349
+ type: 'number'
350
+ }
351
+ },
352
+ required: [
353
+ 'type',
354
+ 'children',
355
+ 'direction',
356
+ 'format',
357
+ 'indent',
358
+ 'textFormat',
359
+ 'textStyle',
360
+ 'version'
361
+ ]
362
+ },
363
+ // Link Node
364
+ LinkNode: {
365
+ type: 'object',
366
+ additionalProperties: false,
367
+ properties: {
368
+ type: {
369
+ type: 'string',
370
+ enum: [
371
+ 'link'
372
+ ]
373
+ },
374
+ children: {
375
+ type: 'array',
376
+ items: {
377
+ $ref: '#/definitions/TextNode'
378
+ }
379
+ },
380
+ url: {
381
+ type: 'string'
382
+ }
383
+ },
384
+ required: [
385
+ 'type',
386
+ 'url',
387
+ 'children'
388
+ ]
389
+ },
390
+ // List Item Node
391
+ ListItemNode: {
392
+ type: 'object',
393
+ additionalProperties: false,
394
+ properties: {
395
+ type: {
396
+ type: 'string',
397
+ enum: [
398
+ 'listitem'
399
+ ]
400
+ },
401
+ children: {
402
+ type: 'array',
403
+ items: {
404
+ anyOf: [
405
+ {
406
+ $ref: '#/definitions/ParagraphNode'
407
+ },
408
+ {
409
+ $ref: '#/definitions/ListNode'
410
+ }
411
+ ]
412
+ }
413
+ }
414
+ },
415
+ required: [
416
+ 'type',
417
+ 'children'
418
+ ]
419
+ },
420
+ // List Node
421
+ ListNode: {
422
+ type: 'object',
423
+ additionalProperties: false,
424
+ properties: {
425
+ type: {
426
+ type: 'string',
427
+ enum: [
428
+ 'list'
429
+ ]
430
+ },
431
+ children: {
432
+ type: 'array',
433
+ items: {
434
+ $ref: '#/definitions/ListItemNode'
435
+ }
436
+ },
437
+ listType: {
438
+ type: 'string',
439
+ enum: [
440
+ 'bullet',
441
+ 'number'
442
+ ]
443
+ }
444
+ },
445
+ required: [
446
+ 'type',
447
+ 'listType',
448
+ 'children'
449
+ ]
450
+ },
451
+ // Quote Node
452
+ QuoteNode: {
453
+ type: 'object',
454
+ additionalProperties: false,
455
+ properties: {
456
+ type: {
457
+ type: 'string',
458
+ enum: [
459
+ 'quote'
460
+ ]
461
+ },
462
+ children: {
463
+ type: 'array',
464
+ items: {
465
+ anyOf: [
466
+ {
467
+ $ref: '#/definitions/TextNode'
468
+ },
469
+ {
470
+ $ref: '#/definitions/ParagraphNode'
471
+ }
472
+ ]
473
+ }
474
+ }
475
+ },
476
+ required: [
477
+ 'type',
478
+ 'children'
479
+ ]
480
+ },
481
+ // Code Node
482
+ CodeNode: {
483
+ type: 'object',
484
+ additionalProperties: false,
485
+ properties: {
486
+ type: {
487
+ type: 'string',
488
+ enum: [
489
+ 'code'
490
+ ]
491
+ },
492
+ code: {
493
+ type: 'string'
494
+ },
495
+ language: {
496
+ type: 'string'
497
+ }
498
+ },
499
+ required: [
500
+ 'type',
501
+ 'code',
502
+ 'language'
503
+ ]
504
+ },
505
+ // Horizontal Rule Node
506
+ HorizontalRuleNode: {
507
+ type: 'object',
508
+ additionalProperties: false,
509
+ properties: {
510
+ type: {
511
+ type: 'string',
512
+ enum: [
513
+ 'horizontalrule'
514
+ ]
515
+ }
516
+ },
517
+ required: [
518
+ 'type'
519
+ ]
520
+ },
521
+ // Image Node
522
+ ImageNode: {
523
+ type: 'object',
524
+ additionalProperties: false,
525
+ properties: {
526
+ type: {
527
+ type: 'string',
528
+ enum: [
529
+ 'image'
530
+ ]
531
+ },
532
+ alt: {
533
+ type: 'string'
534
+ },
535
+ caption: {
536
+ type: 'array',
537
+ items: {
538
+ $ref: '#/definitions/TextNode'
539
+ }
540
+ },
541
+ src: {
542
+ type: 'string'
543
+ }
544
+ },
545
+ required: [
546
+ 'type',
547
+ 'src',
548
+ 'alt',
549
+ 'caption'
550
+ ]
551
+ },
552
+ // Root Node
553
+ RootNode: {
554
+ type: 'object',
555
+ additionalProperties: false,
556
+ properties: {
557
+ type: {
558
+ type: 'string',
559
+ enum: [
560
+ 'root'
561
+ ]
562
+ },
563
+ children: {
564
+ type: 'array',
565
+ items: {
566
+ anyOf: [
567
+ {
568
+ $ref: '#/definitions/TextNode'
569
+ },
570
+ {
571
+ $ref: '#/definitions/HeadingNode'
572
+ },
573
+ {
574
+ $ref: '#/definitions/ParagraphNode'
575
+ },
576
+ {
577
+ $ref: '#/definitions/LinkNode'
578
+ },
579
+ {
580
+ $ref: '#/definitions/ListNode'
581
+ },
582
+ {
583
+ $ref: '#/definitions/QuoteNode'
584
+ },
585
+ {
586
+ $ref: '#/definitions/CodeNode'
587
+ },
588
+ {
589
+ $ref: '#/definitions/HorizontalRuleNode'
590
+ },
591
+ {
592
+ $ref: '#/definitions/ImageNode'
593
+ },
594
+ {
595
+ $ref: '#/definitions/TableNode'
596
+ }
597
+ ]
598
+ }
599
+ },
600
+ direction: {
601
+ type: [
602
+ 'string',
603
+ 'null'
604
+ ],
605
+ enum: [
606
+ 'ltr',
607
+ null
608
+ ]
609
+ },
610
+ indent: {
611
+ type: 'number'
612
+ },
613
+ version: {
614
+ type: 'number'
615
+ }
616
+ },
617
+ required: [
618
+ 'type',
619
+ 'children',
620
+ 'direction',
621
+ 'indent',
622
+ 'version'
623
+ ]
624
+ }
625
+ },
626
+ properties: {
627
+ root: {
628
+ $ref: '#/definitions/RootNode'
629
+ }
630
+ },
631
+ required: [
632
+ 'root'
633
+ ]
634
+ };
635
+ export const lexicalJsonSchema = (customNodes = [])=>{
636
+ const schema = JSON.parse(JSON.stringify(documentSchema));
637
+ // Add custom nodes to the Node definition
638
+ if (customNodes.length > 0) {
639
+ customNodes.forEach((customNode, index)=>{
640
+ const customNodeName = `CustomNode${index + 1}`;
641
+ schema.definitions[customNodeName] = customNode;
642
+ schema.definitions.Node.oneOf.push({
643
+ $ref: `#/definitions/${customNodeName}`
644
+ });
645
+ });
646
+ }
647
+ return schema;
648
+ };
649
+
650
+ //# sourceMappingURL=lexicalJsonSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/ai/schemas/lexicalJsonSchema.ts"],"sourcesContent":["export const documentSchema = {\n type: 'object',\n $schema: 'http://json-schema.org/draft-07/schema#',\n additionalProperties: false,\n definitions: {\n // Text Node (Leaf Node)\n TextNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['text'] },\n detail: {\n type: 'number',\n description: 'Text detail flags',\n enum: [\n 0, // No details\n 1, // IS_DIRECTIONLESS\n 2, // IS_UNMERGEABLE\n 3, // IS_DIRECTIONLESS + IS_UNMERGEABLE\n ],\n examples: [\n { description: 'No special details', value: 0 },\n { description: 'Directionless', value: 1 },\n { description: 'Unmergeable', value: 2 },\n { description: 'Directionless + Unmergeable', value: 3 },\n ],\n },\n direction: {\n type: ['string', 'null'],\n enum: ['ltr', null],\n },\n format: {\n type: 'number',\n description: `Format flags for text:\n 0 = No format\n 1 = Bold\n 2 = Italic\n 3 = Bold + Italic (1|2)\n 4 = Strikethrough\n 8 = Underline\n 9 = Bold + Underline (1|8)\n 16 = Code\n 32 = Subscript\n 64 = Superscript\n 128 = Highlight\n \n Formats can be combined using binary OR (|).\n Example combinations:\n - Bold + Italic = 1|2 = 3\n - Bold + Underline = 1|8 = 9\n - Italic + Underline = 2|8 = 10\n - Bold + Italic + Underline = 1|2|8 = 11`,\n },\n indent: { type: 'number' },\n mode: {\n type: 'number',\n description: 'Text mode flags',\n enum: [\n 0, // Normal\n 1, // Token\n 2, // Segmented\n ],\n examples: [\n { description: 'Normal text', value: 0 },\n { description: 'Token text', value: 1 },\n { description: 'Segmented text', value: 2 },\n ],\n },\n style: {\n type: 'string',\n description: 'CSS style string (e.g., \"color: red; font-size: 12px;\")',\n },\n text: { type: 'string' },\n version: { type: 'number' },\n },\n required: [\n 'type',\n 'text',\n 'format',\n 'style',\n 'mode',\n 'detail',\n 'direction',\n 'indent',\n 'version',\n ],\n },\n // Styled Table Cell Node\n TableCellNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['tablecell'] },\n children: {\n type: 'array',\n items: {\n $ref: '#/definitions/TextNode',\n },\n },\n colSpan: { type: 'number' },\n direction: {\n type: ['string', 'null'],\n enum: ['ltr', null],\n },\n headerState: { type: 'number' },\n indent: { type: 'number' },\n version: { type: 'number' },\n width: {\n type: ['null'],\n enum: [null],\n },\n },\n required: [\n 'type',\n 'children',\n 'headerState',\n 'colSpan',\n 'width',\n 'direction',\n 'indent',\n 'version',\n ],\n },\n // Styled Table Row Node\n TableRowNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['tablerow'] },\n children: {\n type: 'array',\n items: {\n $ref: '#/definitions/TableCellNode',\n },\n },\n height: { type: 'number' },\n },\n required: ['type', 'children', 'height'],\n },\n // Styled Table Node\n TableNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['table'] },\n children: {\n type: 'array',\n items: {\n $ref: '#/definitions/TableRowNode',\n },\n },\n },\n required: ['type', 'children'],\n },\n // Heading Node\n HeadingNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['heading'] },\n children: {\n type: 'array',\n items: {\n anyOf: [{ $ref: '#/definitions/TextNode' }, { $ref: '#/definitions/LinkNode' }],\n },\n },\n direction: {\n type: ['string', 'null'],\n enum: ['ltr', null],\n },\n indent: { type: 'number' },\n tag: { type: 'string', enum: ['h1', 'h2', 'h3'] },\n version: { type: 'number' },\n },\n required: ['type', 'tag', 'children', 'direction', 'indent', 'version'],\n },\n // Paragraph Node\n ParagraphNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['paragraph'] },\n children: {\n type: 'array',\n items: {\n anyOf: [\n { $ref: '#/definitions/TextNode' },\n { $ref: '#/definitions/LinkNode' },\n { $ref: '#/definitions/CodeNode' },\n ],\n },\n },\n direction: {\n type: ['string', 'null'],\n enum: ['ltr', null],\n },\n format: { type: 'string', enum: ['start', 'center', 'right'] },\n indent: { type: 'number' },\n textFormat: { type: 'number' },\n textStyle: {\n type: 'string',\n description: 'CSS style string (e.g., \"color: red; font-size: 12px;\")',\n },\n version: { type: 'number' },\n },\n required: [\n 'type',\n 'children',\n 'direction',\n 'format',\n 'indent',\n 'textFormat',\n 'textStyle',\n 'version',\n ],\n },\n // Link Node\n LinkNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['link'] },\n children: {\n type: 'array',\n items: {\n $ref: '#/definitions/TextNode',\n },\n },\n url: { type: 'string' },\n },\n required: ['type', 'url', 'children'],\n },\n // List Item Node\n ListItemNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['listitem'] },\n children: {\n type: 'array',\n items: {\n anyOf: [{ $ref: '#/definitions/ParagraphNode' }, { $ref: '#/definitions/ListNode' }],\n },\n },\n },\n required: ['type', 'children'],\n },\n // List Node\n ListNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['list'] },\n children: {\n type: 'array',\n items: {\n $ref: '#/definitions/ListItemNode',\n },\n },\n listType: { type: 'string', enum: ['bullet', 'number'] },\n },\n required: ['type', 'listType', 'children'],\n },\n // Quote Node\n QuoteNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['quote'] },\n children: {\n type: 'array',\n items: {\n anyOf: [{ $ref: '#/definitions/TextNode' }, { $ref: '#/definitions/ParagraphNode' }],\n },\n },\n },\n required: ['type', 'children'],\n },\n // Code Node\n CodeNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['code'] },\n code: { type: 'string' },\n language: { type: 'string' },\n },\n required: ['type', 'code', 'language'],\n },\n // Horizontal Rule Node\n HorizontalRuleNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['horizontalrule'] },\n },\n required: ['type'],\n },\n // Image Node\n ImageNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['image'] },\n alt: { type: 'string' },\n caption: {\n type: 'array',\n items: {\n $ref: '#/definitions/TextNode',\n },\n },\n src: { type: 'string' },\n },\n required: ['type', 'src', 'alt', 'caption'],\n },\n // Root Node\n RootNode: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', enum: ['root'] },\n children: {\n type: 'array',\n items: {\n anyOf: [\n { $ref: '#/definitions/TextNode' },\n { $ref: '#/definitions/HeadingNode' },\n { $ref: '#/definitions/ParagraphNode' },\n { $ref: '#/definitions/LinkNode' },\n { $ref: '#/definitions/ListNode' },\n { $ref: '#/definitions/QuoteNode' },\n { $ref: '#/definitions/CodeNode' },\n { $ref: '#/definitions/HorizontalRuleNode' },\n { $ref: '#/definitions/ImageNode' },\n { $ref: '#/definitions/TableNode' },\n ],\n },\n },\n direction: {\n type: ['string', 'null'],\n enum: ['ltr', null],\n },\n indent: { type: 'number' },\n version: { type: 'number' },\n },\n required: ['type', 'children', 'direction', 'indent', 'version'],\n },\n },\n properties: {\n root: {\n $ref: '#/definitions/RootNode',\n },\n },\n required: ['root'],\n}\n\nexport const lexicalJsonSchema = (customNodes = []) => {\n const schema = JSON.parse(JSON.stringify(documentSchema))\n\n // Add custom nodes to the Node definition\n if (customNodes.length > 0) {\n customNodes.forEach((customNode, index) => {\n const customNodeName = `CustomNode${index + 1}`\n schema.definitions[customNodeName] = customNode\n schema.definitions.Node.oneOf.push({ $ref: `#/definitions/${customNodeName}` })\n })\n }\n\n return schema\n}\n"],"names":["documentSchema","type","$schema","additionalProperties","definitions","TextNode","properties","enum","detail","description","examples","value","direction","format","indent","mode","style","text","version","required","TableCellNode","children","items","$ref","colSpan","headerState","width","TableRowNode","height","TableNode","HeadingNode","anyOf","tag","ParagraphNode","textFormat","textStyle","LinkNode","url","ListItemNode","ListNode","listType","QuoteNode","CodeNode","code","language","HorizontalRuleNode","ImageNode","alt","caption","src","RootNode","root","lexicalJsonSchema","customNodes","schema","JSON","parse","stringify","length","forEach","customNode","index","customNodeName","Node","oneOf","push"],"mappings":"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"}