@payloadcms/richtext-slate 3.0.0-alpha.47 → 3.0.0-alpha.49

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 (64) hide show
  1. package/dist/field/RichText.d.ts +3 -1
  2. package/dist/field/RichText.d.ts.map +1 -1
  3. package/dist/field/RichText.js +10 -5
  4. package/dist/field/RichText.js.map +1 -1
  5. package/dist/field/elements/Button.js +1 -1
  6. package/dist/field/elements/Button.js.map +1 -1
  7. package/dist/field/elements/EnabledRelationshipsCondition.d.ts.map +1 -1
  8. package/dist/field/elements/EnabledRelationshipsCondition.js +2 -1
  9. package/dist/field/elements/EnabledRelationshipsCondition.js.map +1 -1
  10. package/dist/field/elements/isBlockElement.d.ts +1 -1
  11. package/dist/field/elements/isBlockElement.d.ts.map +1 -1
  12. package/dist/field/elements/link/Button/index.d.ts.map +1 -1
  13. package/dist/field/elements/link/Button/index.js +9 -4
  14. package/dist/field/elements/link/Button/index.js.map +1 -1
  15. package/dist/field/elements/link/Element/index.d.ts.map +1 -1
  16. package/dist/field/elements/link/Element/index.js +11 -1
  17. package/dist/field/elements/link/Element/index.js.map +1 -1
  18. package/dist/field/elements/link/LinkDrawer/index.d.ts.map +1 -1
  19. package/dist/field/elements/link/LinkDrawer/index.js +18 -10
  20. package/dist/field/elements/link/LinkDrawer/index.js.map +1 -1
  21. package/dist/field/elements/link/LinkDrawer/types.d.ts +1 -1
  22. package/dist/field/elements/link/LinkDrawer/types.d.ts.map +1 -1
  23. package/dist/field/elements/link/LinkDrawer/types.js.map +1 -1
  24. package/dist/field/elements/relationship/Button/index.d.ts.map +1 -1
  25. package/dist/field/elements/relationship/Button/index.js +2 -1
  26. package/dist/field/elements/relationship/Button/index.js.map +1 -1
  27. package/dist/field/elements/relationship/Element/index.d.ts +1 -1
  28. package/dist/field/elements/relationship/Element/index.d.ts.map +1 -1
  29. package/dist/field/elements/relationship/Element/index.js +6 -1
  30. package/dist/field/elements/relationship/Element/index.js.map +1 -1
  31. package/dist/field/elements/upload/Button/index.d.ts.map +1 -1
  32. package/dist/field/elements/upload/Button/index.js +2 -1
  33. package/dist/field/elements/upload/Button/index.js.map +1 -1
  34. package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts +3 -3
  35. package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts.map +1 -1
  36. package/dist/field/elements/upload/Element/UploadDrawer/index.js +15 -7
  37. package/dist/field/elements/upload/Element/UploadDrawer/index.js.map +1 -1
  38. package/dist/field/elements/upload/Element/index.d.ts +1 -1
  39. package/dist/field/elements/upload/Element/index.d.ts.map +1 -1
  40. package/dist/field/elements/upload/Element/index.js +10 -2
  41. package/dist/field/elements/upload/Element/index.js.map +1 -1
  42. package/dist/field/index.d.ts +1 -1
  43. package/dist/field/index.d.ts.map +1 -1
  44. package/dist/field/index.js +4 -4
  45. package/dist/field/index.js.map +1 -1
  46. package/dist/field/providers/ElementButtonProvider.d.ts +1 -1
  47. package/dist/field/providers/ElementButtonProvider.d.ts.map +1 -1
  48. package/dist/field/providers/ElementButtonProvider.js.map +1 -1
  49. package/dist/field/providers/ElementProvider.d.ts +1 -1
  50. package/dist/field/providers/ElementProvider.d.ts.map +1 -1
  51. package/dist/field/providers/ElementProvider.js.map +1 -1
  52. package/dist/field/providers/LeafButtonProvider.d.ts +1 -1
  53. package/dist/field/providers/LeafButtonProvider.d.ts.map +1 -1
  54. package/dist/field/providers/LeafButtonProvider.js.map +1 -1
  55. package/dist/field/providers/LeafProvider.d.ts +1 -1
  56. package/dist/field/providers/LeafProvider.d.ts.map +1 -1
  57. package/dist/field/providers/LeafProvider.js.map +1 -1
  58. package/dist/generateComponentMap.d.ts.map +1 -1
  59. package/dist/generateComponentMap.js +1 -3
  60. package/dist/generateComponentMap.js.map +1 -1
  61. package/dist/utilities/useSlatePlugin.js +3 -3
  62. package/dist/utilities/useSlatePlugin.js.map +1 -1
  63. package/package.json +7 -13
  64. package/src/index.tsx +82 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generateComponentMap.tsx"],"sourcesContent":["import type { RichTextAdapter } from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { translations } from '@payloadcms/translations/client'\nimport { mapFields } from '@payloadcms/ui/utilities'\nimport { sanitizeFields } from 'payload/config'\nimport React from 'react'\n\nimport type { AdapterArguments, RichTextCustomElement, RichTextCustomLeaf } from './types.js'\n\nimport { elements as elementTypes } from './field/elements/index.js'\nimport { linkFieldsSchemaPath } from './field/elements/link/shared.js'\nimport { transformExtraFields } from './field/elements/link/utilities.js'\nimport { uploadFieldsSchemaPath } from './field/elements/upload/shared.js'\nimport { defaultLeaves as leafTypes } from './field/leaves/index.js'\n\nexport const getGenerateComponentMap =\n (args: AdapterArguments): RichTextAdapter['generateComponentMap'] =>\n ({ config }) => {\n const componentMap = new Map()\n\n const i18n = initI18n({ config: config.i18n, context: 'client', translations })\n const validRelationships = config.collections.map((c) => c.slug) || []\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(`leaf.button.${leafObject.name}`, <LeafButton />)\n componentMap.set(`leaf.component.${leafObject.name}`, <LeafComponent />)\n\n if (Array.isArray(leafObject.plugins)) {\n leafObject.plugins.forEach((Plugin, i) => {\n componentMap.set(`leaf.plugin.${leafObject.name}.${i}`, <Plugin />)\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) componentMap.set(`element.button.${element.name}`, <ElementButton />)\n componentMap.set(`element.component.${element.name}`, <ElementComponent />)\n\n if (Array.isArray(element.plugins)) {\n element.plugins.forEach((Plugin, i) => {\n componentMap.set(`element.plugin.${element.name}.${i}`, <Plugin />)\n })\n }\n\n switch (element.name) {\n case 'link': {\n const linkFields = sanitizeFields({\n config,\n fields: transformExtraFields(args.admin?.link?.fields, config, i18n),\n validRelationships,\n })\n\n const mappedFields = mapFields({\n config,\n fieldSchema: linkFields,\n permissions: {},\n readOnly: false,\n })\n\n componentMap.set(linkFieldsSchemaPath, mappedFields)\n\n break\n }\n\n case 'upload': {\n const uploadEnabledCollections = 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 const uploadFields = sanitizeFields({\n config,\n fields: args?.admin?.upload?.collections[collection.slug]?.fields,\n validRelationships,\n })\n\n const mappedFields = mapFields({\n config,\n fieldSchema: uploadFields,\n permissions: {},\n readOnly: false,\n })\n\n componentMap.set(`${uploadFieldsSchemaPath}.${collection.slug}`, mappedFields)\n }\n })\n\n break\n }\n\n case 'relationship':\n break\n }\n }\n })\n\n return componentMap\n }\n"],"names":["initI18n","translations","mapFields","sanitizeFields","React","elements","elementTypes","linkFieldsSchemaPath","transformExtraFields","uploadFieldsSchemaPath","defaultLeaves","leafTypes","getGenerateComponentMap","args","config","componentMap","Map","i18n","context","validRelationships","collections","map","c","slug","admin","leaves","Object","values","forEach","leaf","leafObject","LeafButton","Button","LeafComponent","Leaf","set","name","Array","isArray","plugins","Plugin","i","el","element","ElementButton","ElementComponent","Element","linkFields","fields","link","mappedFields","fieldSchema","permissions","readOnly","uploadEnabledCollections","filter","enableRichTextRelationship","hidden","upload","Boolean","collection","uploadFields"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/generateComponentMap.tsx"],"sourcesContent":["import type { RichTextAdapter } from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { translations } from '@payloadcms/translations/client'\nimport { mapFields } from '@payloadcms/ui/utilities/buildComponentMap'\nimport { sanitizeFields } from 'payload/config'\nimport React from 'react'\n\nimport type { AdapterArguments, RichTextCustomElement, RichTextCustomLeaf } from './types.js'\n\nimport { elements as elementTypes } from './field/elements/index.js'\nimport { linkFieldsSchemaPath } from './field/elements/link/shared.js'\nimport { transformExtraFields } from './field/elements/link/utilities.js'\nimport { uploadFieldsSchemaPath } from './field/elements/upload/shared.js'\nimport { defaultLeaves as leafTypes } from './field/leaves/index.js'\n\nexport const getGenerateComponentMap =\n (args: AdapterArguments): RichTextAdapter['generateComponentMap'] =>\n ({ config }) => {\n const componentMap = new Map()\n\n const i18n = initI18n({ config: config.i18n, context: 'client', translations })\n const validRelationships = config.collections.map((c) => c.slug) || []\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(`leaf.button.${leafObject.name}`, <LeafButton />)\n componentMap.set(`leaf.component.${leafObject.name}`, <LeafComponent />)\n\n if (Array.isArray(leafObject.plugins)) {\n leafObject.plugins.forEach((Plugin, i) => {\n componentMap.set(`leaf.plugin.${leafObject.name}.${i}`, <Plugin />)\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) componentMap.set(`element.button.${element.name}`, <ElementButton />)\n componentMap.set(`element.component.${element.name}`, <ElementComponent />)\n\n if (Array.isArray(element.plugins)) {\n element.plugins.forEach((Plugin, i) => {\n componentMap.set(`element.plugin.${element.name}.${i}`, <Plugin />)\n })\n }\n\n switch (element.name) {\n case 'link': {\n const linkFields = sanitizeFields({\n config,\n fields: transformExtraFields(args.admin?.link?.fields, config, i18n),\n validRelationships,\n })\n\n const mappedFields = mapFields({\n config,\n fieldSchema: linkFields,\n readOnly: false,\n })\n\n componentMap.set(linkFieldsSchemaPath, mappedFields)\n\n break\n }\n\n case 'upload': {\n const uploadEnabledCollections = 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 const uploadFields = sanitizeFields({\n config,\n fields: args?.admin?.upload?.collections[collection.slug]?.fields,\n validRelationships,\n })\n\n const mappedFields = mapFields({\n config,\n fieldSchema: uploadFields,\n readOnly: false,\n })\n\n componentMap.set(`${uploadFieldsSchemaPath}.${collection.slug}`, mappedFields)\n }\n })\n\n break\n }\n\n case 'relationship':\n break\n }\n }\n })\n\n return componentMap\n }\n"],"names":["initI18n","translations","mapFields","sanitizeFields","React","elements","elementTypes","linkFieldsSchemaPath","transformExtraFields","uploadFieldsSchemaPath","defaultLeaves","leafTypes","getGenerateComponentMap","args","config","componentMap","Map","i18n","context","validRelationships","collections","map","c","slug","admin","leaves","Object","values","forEach","leaf","leafObject","LeafButton","Button","LeafComponent","Leaf","set","name","Array","isArray","plugins","Plugin","i","el","element","ElementButton","ElementComponent","Element","linkFields","fields","link","mappedFields","fieldSchema","readOnly","uploadEnabledCollections","filter","enableRichTextRelationship","hidden","upload","Boolean","collection","uploadFields"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { useFieldPath } from '@payloadcms/ui/forms';
2
- import { useAddClientFunction } from '@payloadcms/ui/providers';
1
+ import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider';
2
+ import { useAddClientFunction } from '@payloadcms/ui/providers/ClientFunction';
3
3
  export const useSlatePlugin = (key, plugin)=>{
4
- const { schemaPath } = useFieldPath();
4
+ const { schemaPath } = useFieldProps();
5
5
  useAddClientFunction(`slatePlugin.${schemaPath}.${key}`, plugin);
6
6
  };
7
7
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/useSlatePlugin.tsx"],"sourcesContent":["import type { Editor } from 'slate'\n\nimport { useFieldPath } from '@payloadcms/ui/forms'\nimport { useAddClientFunction } from '@payloadcms/ui/providers'\n\ntype Plugin = (editor: Editor) => Editor\n\nexport const useSlatePlugin = (key: string, plugin: Plugin) => {\n const { schemaPath } = useFieldPath()\n\n useAddClientFunction(`slatePlugin.${schemaPath}.${key}`, plugin)\n}\n"],"names":["useFieldPath","useAddClientFunction","useSlatePlugin","key","plugin","schemaPath"],"mappings":"AAEA,SAASA,YAAY,QAAQ,uBAAsB;AACnD,SAASC,oBAAoB,QAAQ,2BAA0B;AAI/D,OAAO,MAAMC,iBAAiB,CAACC,KAAaC;IAC1C,MAAM,EAAEC,UAAU,EAAE,GAAGL;IAEvBC,qBAAqB,CAAC,YAAY,EAAEI,WAAW,CAAC,EAAEF,IAAI,CAAC,EAAEC;AAC3D,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/useSlatePlugin.tsx"],"sourcesContent":["import type { Editor } from 'slate'\n\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { useAddClientFunction } from '@payloadcms/ui/providers/ClientFunction'\n\ntype Plugin = (editor: Editor) => Editor\n\nexport const useSlatePlugin = (key: string, plugin: Plugin) => {\n const { schemaPath } = useFieldProps()\n\n useAddClientFunction(`slatePlugin.${schemaPath}.${key}`, plugin)\n}\n"],"names":["useFieldProps","useAddClientFunction","useSlatePlugin","key","plugin","schemaPath"],"mappings":"AAEA,SAASA,aAAa,QAAQ,0CAAyC;AACvE,SAASC,oBAAoB,QAAQ,0CAAyC;AAI9E,OAAO,MAAMC,iBAAiB,CAACC,KAAaC;IAC1C,MAAM,EAAEC,UAAU,EAAE,GAAGL;IAEvBC,qBAAqB,CAAC,YAAY,EAAEI,WAAW,CAAC,EAAEF,IAAI,CAAC,EAAEC;AAC3D,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/richtext-slate",
3
- "version": "3.0.0-alpha.47",
3
+ "version": "3.0.0-alpha.49",
4
4
  "description": "The officially supported Slate richtext adapter for Payload",
5
5
  "repository": "https://github.com/payloadcms/payload",
6
6
  "license": "MIT",
@@ -21,22 +21,16 @@
21
21
  "devDependencies": {
22
22
  "@types/node": "20.5.7",
23
23
  "@types/react": "18.2.15",
24
+ "@payloadcms/ui": "3.0.0-alpha.49",
24
25
  "@payloadcms/eslint-config": "1.1.1",
25
- "@payloadcms/ui": "3.0.0-alpha.47",
26
- "payload": "3.0.0-alpha.47"
26
+ "payload": "3.0.0-alpha.49"
27
27
  },
28
28
  "peerDependencies": {
29
- "payload": "3.0.0-alpha.47",
30
- "@payloadcms/ui": "3.0.0-alpha.47",
31
- "@payloadcms/translations": "3.0.0-alpha.47"
32
- },
33
- "exports": {
34
- ".": {
35
- "import": "./dist/index.js",
36
- "require": "./dist/index.js",
37
- "types": "./dist/index.d.ts"
38
- }
29
+ "@payloadcms/translations": "3.0.0-alpha.49",
30
+ "payload": "3.0.0-alpha.49",
31
+ "@payloadcms/ui": "3.0.0-alpha.49"
39
32
  },
33
+ "exports": null,
40
34
  "publishConfig": {
41
35
  "registry": "https://registry.npmjs.org/"
42
36
  },
package/src/index.tsx ADDED
@@ -0,0 +1,82 @@
1
+ import type { RichTextAdapter } from 'payload/types'
2
+
3
+ import { withNullableJSONSchemaType } from 'payload/utilities'
4
+
5
+ import type { AdapterArguments } from './types.js'
6
+
7
+ import { RichTextCell } from './cell/index.js'
8
+ import { richTextRelationshipPromise } from './data/richTextRelationshipPromise.js'
9
+ import { richTextValidate } from './data/validation.js'
10
+ import { RichTextField } from './field/index.js'
11
+ import { getGenerateComponentMap } from './generateComponentMap.js'
12
+ import { getGenerateSchemaMap } from './generateSchemaMap.js'
13
+
14
+ export function slateEditor(args: AdapterArguments): RichTextAdapter<any[], AdapterArguments, any> {
15
+ return {
16
+ CellComponent: RichTextCell,
17
+ FieldComponent: RichTextField,
18
+ generateComponentMap: getGenerateComponentMap(args),
19
+ generateSchemaMap: getGenerateSchemaMap(args),
20
+ outputSchema: ({ isRequired }) => {
21
+ return {
22
+ type: withNullableJSONSchemaType('array', isRequired),
23
+ items: {
24
+ type: 'object',
25
+ },
26
+ }
27
+ },
28
+ populationPromise({
29
+ context,
30
+ currentDepth,
31
+ depth,
32
+ field,
33
+ findMany,
34
+ flattenLocales,
35
+ overrideAccess,
36
+ populationPromises,
37
+ req,
38
+ showHiddenFields,
39
+ siblingDoc,
40
+ }) {
41
+ if (
42
+ field.admin?.elements?.includes('relationship') ||
43
+ field.admin?.elements?.includes('upload') ||
44
+ field.admin?.elements?.includes('link') ||
45
+ !field?.admin?.elements
46
+ ) {
47
+ return richTextRelationshipPromise({
48
+ context,
49
+ currentDepth,
50
+ depth,
51
+ field,
52
+ findMany,
53
+ flattenLocales,
54
+ overrideAccess,
55
+ populationPromises,
56
+ req,
57
+ showHiddenFields,
58
+ siblingDoc,
59
+ })
60
+ }
61
+ return null
62
+ },
63
+ validate: richTextValidate,
64
+ }
65
+ }
66
+
67
+ export { ElementButton } from './field/elements/Button.js'
68
+
69
+ export { toggleElement } from './field/elements/toggle.js'
70
+ export { LeafButton } from './field/leaves/Button.js'
71
+ export type {
72
+ AdapterArguments,
73
+ ElementNode,
74
+ FieldProps,
75
+ RichTextCustomElement,
76
+ RichTextCustomLeaf,
77
+ RichTextElement,
78
+ RichTextLeaf,
79
+ TextNode,
80
+ } from './types.js'
81
+
82
+ export { nodeIsTextNode } from './types.js'