@ai-stack/payloadcms 3.0.0-beta.104.1 → 3.0.0-beta.65.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 (147) hide show
  1. package/README.md +2 -2
  2. package/dist/ai/{schemas → editor}/lexical.schema.d.ts +2 -2
  3. package/dist/ai/editor/lexical.schema.d.ts.map +1 -0
  4. package/dist/ai/editor/lexical.schema.js.map +1 -0
  5. package/dist/ai/models/anthropic/index.d.ts.map +1 -1
  6. package/dist/ai/models/anthropic/index.js +4 -43
  7. package/dist/ai/models/anthropic/index.js.map +1 -1
  8. package/dist/ai/models/elevenLabs/index.d.ts.map +1 -1
  9. package/dist/ai/models/elevenLabs/index.js +11 -1
  10. package/dist/ai/models/elevenLabs/index.js.map +1 -1
  11. package/dist/ai/models/index.d.ts.map +1 -1
  12. package/dist/ai/models/index.js +3 -3
  13. package/dist/ai/models/index.js.map +1 -1
  14. package/dist/ai/models/openai/index.js +3 -3
  15. package/dist/ai/models/openai/index.js.map +1 -1
  16. package/dist/ai/models/style.d.ts +2 -0
  17. package/dist/ai/models/style.d.ts.map +1 -0
  18. package/dist/ai/models/style.js +31 -0
  19. package/dist/ai/models/style.js.map +1 -0
  20. package/dist/ai/prompts.d.ts +6 -7
  21. package/dist/ai/prompts.d.ts.map +1 -1
  22. package/dist/ai/prompts.js +16 -21
  23. package/dist/ai/prompts.js.map +1 -1
  24. package/dist/ai/utils/generateSeedPrompt.d.ts.map +1 -1
  25. package/dist/ai/utils/generateSeedPrompt.js +5 -14
  26. package/dist/ai/utils/generateSeedPrompt.js.map +1 -1
  27. package/dist/collections/Instructions.d.ts.map +1 -1
  28. package/dist/collections/Instructions.js +13 -10
  29. package/dist/collections/Instructions.js.map +1 -1
  30. package/dist/defaults.d.ts +2 -3
  31. package/dist/defaults.d.ts.map +1 -1
  32. package/dist/defaults.js +2 -3
  33. package/dist/defaults.js.map +1 -1
  34. package/dist/endpoints/index.d.ts +1 -1
  35. package/dist/endpoints/index.d.ts.map +1 -1
  36. package/dist/endpoints/index.js +51 -17
  37. package/dist/endpoints/index.js.map +1 -1
  38. package/dist/exports/fields.d.ts +1 -3
  39. package/dist/exports/fields.d.ts.map +1 -1
  40. package/dist/exports/fields.js +0 -3
  41. package/dist/exports/fields.js.map +1 -1
  42. package/dist/fields/DescriptionField/DescriptionField.d.ts +2 -3
  43. package/dist/fields/DescriptionField/DescriptionField.d.ts.map +1 -1
  44. package/dist/fields/DescriptionField/DescriptionField.js +11 -14
  45. package/dist/fields/DescriptionField/DescriptionField.js.map +1 -1
  46. package/dist/fields/DescriptionField/DescriptionFieldComponent.d.ts +4 -0
  47. package/dist/fields/DescriptionField/DescriptionFieldComponent.d.ts.map +1 -0
  48. package/dist/fields/DescriptionField/DescriptionFieldComponent.js +18 -0
  49. package/dist/fields/DescriptionField/DescriptionFieldComponent.js.map +1 -0
  50. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js +1 -1
  51. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js.map +1 -1
  52. package/dist/fields/LexicalEditor/feature.server.d.ts +7 -1
  53. package/dist/fields/LexicalEditor/feature.server.d.ts.map +1 -1
  54. package/dist/fields/LexicalEditor/feature.server.js +11 -4
  55. package/dist/fields/LexicalEditor/feature.server.js.map +1 -1
  56. package/dist/fields/PromptEditorField/PromptEditorField.d.ts +1 -1
  57. package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -1
  58. package/dist/fields/PromptEditorField/PromptEditorField.js +51 -32
  59. package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
  60. package/dist/fields/SelectField/SelectField.d.ts +2 -9
  61. package/dist/fields/SelectField/SelectField.d.ts.map +1 -1
  62. package/dist/fields/SelectField/SelectField.js +23 -26
  63. package/dist/fields/SelectField/SelectField.js.map +1 -1
  64. package/dist/index.d.ts +2 -2
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +3 -3
  67. package/dist/index.js.map +1 -1
  68. package/dist/init.d.ts +1 -2
  69. package/dist/init.d.ts.map +1 -1
  70. package/dist/init.js +19 -35
  71. package/dist/init.js.map +1 -1
  72. package/dist/plugin.d.ts.map +1 -1
  73. package/dist/plugin.js +73 -96
  74. package/dist/plugin.js.map +1 -1
  75. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts +3 -1
  76. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -1
  77. package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
  78. package/dist/providers/InstructionsProvider/hook.d.ts +9 -0
  79. package/dist/providers/InstructionsProvider/hook.d.ts.map +1 -0
  80. package/dist/providers/InstructionsProvider/hook.js +17 -0
  81. package/dist/providers/InstructionsProvider/hook.js.map +1 -0
  82. package/dist/providers/InstructionsProvider/index.d.ts +5 -0
  83. package/dist/providers/InstructionsProvider/index.d.ts.map +1 -0
  84. package/dist/providers/InstructionsProvider/index.js +10 -0
  85. package/dist/providers/InstructionsProvider/index.js.map +1 -0
  86. package/dist/types.d.ts +1 -2
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/types.js.map +1 -1
  89. package/dist/ui/Actions/Actions.d.ts.map +1 -1
  90. package/dist/ui/Actions/Actions.js +48 -40
  91. package/dist/ui/Actions/Actions.js.map +1 -1
  92. package/dist/ui/Actions/hooks/highlight.module.scss +3 -0
  93. package/dist/ui/Actions/hooks/useGenerate.d.ts.map +1 -1
  94. package/dist/ui/Actions/hooks/useGenerate.js +10 -9
  95. package/dist/ui/Actions/hooks/useGenerate.js.map +1 -1
  96. package/dist/ui/Floatype/Floatype.d.ts +21 -0
  97. package/dist/ui/Floatype/Floatype.d.ts.map +1 -0
  98. package/dist/ui/Floatype/Floatype.js +245 -0
  99. package/dist/ui/Floatype/Floatype.js.map +1 -0
  100. package/dist/ui/Floatype/floatype.module.css +25 -0
  101. package/dist/utilities/getFieldBySchemaPath.d.ts +2 -2
  102. package/dist/utilities/getFieldBySchemaPath.d.ts.map +1 -1
  103. package/dist/utilities/getFieldBySchemaPath.js.map +1 -1
  104. package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
  105. package/dist/utilities/updateFieldsConfig.js +8 -18
  106. package/dist/utilities/updateFieldsConfig.js.map +1 -1
  107. package/package.json +33 -79
  108. package/dist/ai/schemas/lexical.schema.d.ts.map +0 -1
  109. package/dist/ai/schemas/lexical.schema.js.map +0 -1
  110. package/dist/exports/client.d.ts +0 -3
  111. package/dist/exports/client.d.ts.map +0 -1
  112. package/dist/exports/client.js +0 -4
  113. package/dist/exports/client.js.map +0 -1
  114. package/dist/libraries/autocomplete/AutocompleteTextArea.d.ts +0 -8
  115. package/dist/libraries/autocomplete/AutocompleteTextArea.d.ts.map +0 -1
  116. package/dist/libraries/autocomplete/AutocompleteTextArea.js +0 -437
  117. package/dist/libraries/autocomplete/AutocompleteTextArea.js.map +0 -1
  118. package/dist/libraries/autocomplete/AutocompleteTextArea.module.scss +0 -35
  119. package/dist/libraries/handlebars/asyncHandlebars.d.ts +0 -2
  120. package/dist/libraries/handlebars/asyncHandlebars.d.ts.map +0 -1
  121. package/dist/libraries/handlebars/asyncHandlebars.js +0 -5
  122. package/dist/libraries/handlebars/asyncHandlebars.js.map +0 -1
  123. package/dist/libraries/handlebars/helpers.d.ts +0 -2
  124. package/dist/libraries/handlebars/helpers.d.ts.map +0 -1
  125. package/dist/libraries/handlebars/helpers.js +0 -22
  126. package/dist/libraries/handlebars/helpers.js.map +0 -1
  127. package/dist/libraries/handlebars/helpersMap.d.ts +0 -12
  128. package/dist/libraries/handlebars/helpersMap.d.ts.map +0 -1
  129. package/dist/libraries/handlebars/helpersMap.js +0 -13
  130. package/dist/libraries/handlebars/helpersMap.js.map +0 -1
  131. package/dist/libraries/handlebars/replacePlaceholders.d.ts +0 -2
  132. package/dist/libraries/handlebars/replacePlaceholders.d.ts.map +0 -1
  133. package/dist/libraries/handlebars/replacePlaceholders.js +0 -8
  134. package/dist/libraries/handlebars/replacePlaceholders.js.map +0 -1
  135. package/dist/providers/InstructionsProvider/useInstructions.d.ts +0 -4
  136. package/dist/providers/InstructionsProvider/useInstructions.d.ts.map +0 -1
  137. package/dist/providers/InstructionsProvider/useInstructions.js +0 -38
  138. package/dist/providers/InstructionsProvider/useInstructions.js.map +0 -1
  139. package/dist/utilities/getFieldInfo.d.ts +0 -3
  140. package/dist/utilities/getFieldInfo.d.ts.map +0 -1
  141. package/dist/utilities/getFieldInfo.js +0 -14
  142. package/dist/utilities/getFieldInfo.js.map +0 -1
  143. package/dist/utilities/isPluginActivated.d.ts +0 -2
  144. package/dist/utilities/isPluginActivated.d.ts.map +0 -1
  145. package/dist/utilities/isPluginActivated.js +0 -5
  146. package/dist/utilities/isPluginActivated.js.map +0 -1
  147. /package/dist/ai/{schemas → editor}/lexical.schema.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Instructions.d.ts","sourceRoot":"","sources":["../../src/collections/Instructions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,SAAS,CAAA;AAoB3D,eAAO,MAAM,YAAY,EAAE,gBA4F1B,CAAA"}
1
+ {"version":3,"file":"Instructions.d.ts","sourceRoot":"","sources":["../../src/collections/Instructions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,SAAS,CAAA;AAsB3D,eAAO,MAAM,YAAY,EAAE,gBA6F1B,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import { GenerationModels } from '../ai/models/index.js';
2
2
  import { PLUGIN_INSTRUCTIONS_TABLE } from '../defaults.js';
3
+ import { PromptEditorField } from '../fields/PromptEditorField/PromptEditorField.js';
4
+ import { SelectField } from '../fields/SelectField/SelectField.js';
3
5
  const groupSettings = GenerationModels.reduce((fields, model)=>{
4
6
  if (model.settings) {
5
7
  fields.push(model.settings);
@@ -29,6 +31,7 @@ export const Instructions = {
29
31
  name: 'schema-path',
30
32
  type: 'text',
31
33
  admin: {
34
+ hidden: true,
32
35
  readOnly: true
33
36
  },
34
37
  unique: true
@@ -37,6 +40,7 @@ export const Instructions = {
37
40
  name: 'field-type',
38
41
  type: 'select',
39
42
  admin: {
43
+ hidden: true,
40
44
  readOnly: true
41
45
  },
42
46
  defaultValue: 'text',
@@ -65,13 +69,11 @@ export const Instructions = {
65
69
  type: 'select',
66
70
  admin: {
67
71
  components: {
68
- Field: {
69
- clientProps: {
70
- filterByField: 'field-type',
71
- options: modelOptions
72
- },
73
- path: '@ai-stack/payloadcms/fields#SelectField'
74
- }
72
+ Field: SelectField
73
+ },
74
+ custom: {
75
+ filterByField: 'field-type',
76
+ options: modelOptions
75
77
  }
76
78
  },
77
79
  label: 'Model',
@@ -80,14 +82,15 @@ export const Instructions = {
80
82
  label: option.label,
81
83
  value: option.value
82
84
  };
83
- })
85
+ }),
86
+ validate: ()=>true
84
87
  },
85
88
  {
86
89
  name: 'prompt',
87
90
  type: 'textarea',
88
91
  admin: {
89
92
  components: {
90
- Field: '@ai-stack/payloadcms/fields#PromptEditorField'
93
+ Field: PromptEditorField
91
94
  }
92
95
  }
93
96
  },
@@ -96,7 +99,7 @@ export const Instructions = {
96
99
  hooks: {
97
100
  beforeChange: [
98
101
  (req)=>{
99
- if (req.data['openai-gpt-object-settings']?.layout?.length === 0) {
102
+ if (req.data['openai-gpt-object-settings'].layout?.length === 0) {
100
103
  // TODO: why??
101
104
  req.data['openai-gpt-object-settings'].layout = '';
102
105
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/Instructions.ts"],"sourcesContent":["import type { CollectionConfig, GroupField } from 'payload'\n\nimport { GenerationModels } from '../ai/models/index.js'\nimport { PLUGIN_INSTRUCTIONS_TABLE } from '../defaults.js'\n\nconst groupSettings = GenerationModels.reduce((fields, model) => {\n if (model.settings) {\n fields.push(model.settings)\n }\n return fields\n}, [] as GroupField[])\n\nconst modelOptions = GenerationModels.map((model) => {\n return {\n fields: model.fields,\n label: model.name,\n value: model.id,\n }\n})\n\nexport const Instructions: CollectionConfig = {\n slug: PLUGIN_INSTRUCTIONS_TABLE,\n\n // TODO: Revisit permissions, better if end user can provide this\n access: {\n create: () => true,\n read: () => true,\n update: () => true,\n },\n admin: {\n hidden: true,\n },\n fields: [\n {\n name: 'schema-path',\n type: 'text',\n admin: {\n readOnly: true,\n },\n unique: true,\n },\n {\n name: 'field-type',\n type: 'select',\n admin: {\n readOnly: true,\n },\n defaultValue: 'text',\n label: 'Field type',\n options: [\n {\n label: 'text',\n value: 'text',\n },\n {\n label: 'textarea',\n value: 'textarea',\n },\n {\n label: 'upload',\n value: 'upload',\n },\n {\n label: 'richText',\n value: 'richText',\n },\n ],\n },\n {\n name: 'model-id',\n type: 'select',\n admin: {\n components: {\n Field: {\n clientProps: {\n filterByField: 'field-type',\n options: modelOptions,\n },\n path: '@ai-stack/payloadcms/fields#SelectField',\n },\n },\n },\n label: 'Model',\n options: modelOptions.map((option) => {\n return {\n label: option.label,\n value: option.value,\n }\n }),\n },\n {\n name: 'prompt',\n type: 'textarea',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/fields#PromptEditorField',\n },\n },\n },\n ...groupSettings,\n ],\n hooks: {\n beforeChange: [\n (req) => {\n if (req.data['openai-gpt-object-settings']?.layout?.length === 0) {\n // TODO: why??\n req.data['openai-gpt-object-settings'].layout = ''\n }\n return req.data\n },\n ],\n },\n}\n"],"names":["GenerationModels","PLUGIN_INSTRUCTIONS_TABLE","groupSettings","reduce","fields","model","settings","push","modelOptions","map","label","name","value","id","Instructions","slug","access","create","read","update","admin","hidden","type","readOnly","unique","defaultValue","options","components","Field","clientProps","filterByField","path","option","hooks","beforeChange","req","data","layout","length"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,yBAAyB,QAAQ,iBAAgB;AAE1D,MAAMC,gBAAgBF,iBAAiBG,MAAM,CAAC,CAACC,QAAQC;IACrD,IAAIA,MAAMC,QAAQ,EAAE;QAClBF,OAAOG,IAAI,CAACF,MAAMC,QAAQ;IAC5B;IACA,OAAOF;AACT,GAAG,EAAE;AAEL,MAAMI,eAAeR,iBAAiBS,GAAG,CAAC,CAACJ;IACzC,OAAO;QACLD,QAAQC,MAAMD,MAAM;QACpBM,OAAOL,MAAMM,IAAI;QACjBC,OAAOP,MAAMQ,EAAE;IACjB;AACF;AAEA,OAAO,MAAMC,eAAiC;IAC5CC,MAAMd;IAEN,iEAAiE;IACjEe,QAAQ;QACNC,QAAQ,IAAM;QACdC,MAAM,IAAM;QACZC,QAAQ,IAAM;IAChB;IACAC,OAAO;QACLC,QAAQ;IACV;IACAjB,QAAQ;QACN;YACEO,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLG,UAAU;YACZ;YACAC,QAAQ;QACV;QACA;YACEb,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLG,UAAU;YACZ;YACAE,cAAc;YACdf,OAAO;YACPgB,SAAS;gBACP;oBACEhB,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;aACD;QACH;QACA;YACED,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLO,YAAY;oBACVC,OAAO;wBACLC,aAAa;4BACXC,eAAe;4BACfJ,SAASlB;wBACX;wBACAuB,MAAM;oBACR;gBACF;YACF;YACArB,OAAO;YACPgB,SAASlB,aAAaC,GAAG,CAAC,CAACuB;gBACzB,OAAO;oBACLtB,OAAOsB,OAAOtB,KAAK;oBACnBE,OAAOoB,OAAOpB,KAAK;gBACrB;YACF;QACF;QACA;YACED,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLO,YAAY;oBACVC,OAAO;gBACT;YACF;QACF;WACG1B;KACJ;IACD+B,OAAO;QACLC,cAAc;YACZ,CAACC;gBACC,IAAIA,IAAIC,IAAI,CAAC,6BAA6B,EAAEC,QAAQC,WAAW,GAAG;oBAChE,cAAc;oBACdH,IAAIC,IAAI,CAAC,6BAA6B,CAACC,MAAM,GAAG;gBAClD;gBACA,OAAOF,IAAIC,IAAI;YACjB;SACD;IACH;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/collections/Instructions.ts"],"sourcesContent":["import type { CollectionConfig, GroupField } from 'payload'\n\nimport { GenerationModels } from '../ai/models/index.js'\nimport { PLUGIN_INSTRUCTIONS_TABLE } from '../defaults.js'\nimport { PromptEditorField } from '../fields/PromptEditorField/PromptEditorField.js'\nimport { SelectField } from '../fields/SelectField/SelectField.js'\n\nconst groupSettings = GenerationModels.reduce((fields, model) => {\n if (model.settings) {\n fields.push(model.settings)\n }\n return fields\n}, [] as GroupField[])\n\nconst modelOptions = GenerationModels.map((model) => {\n return {\n fields: model.fields,\n label: model.name,\n value: model.id,\n }\n})\n\nexport const Instructions: CollectionConfig = {\n slug: PLUGIN_INSTRUCTIONS_TABLE,\n\n // TODO: Revisit permissions, better if end user can provide this\n access: {\n create: () => true,\n read: () => true,\n update: () => true,\n },\n admin: {\n hidden: true,\n },\n fields: [\n {\n name: 'schema-path',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n unique: true,\n },\n {\n name: 'field-type',\n type: 'select',\n admin: {\n hidden: true,\n readOnly: true,\n },\n defaultValue: 'text',\n label: 'Field type',\n options: [\n {\n label: 'text',\n value: 'text',\n },\n {\n label: 'textarea',\n value: 'textarea',\n },\n {\n label: 'upload',\n value: 'upload',\n },\n {\n label: 'richText',\n value: 'richText',\n },\n ],\n },\n {\n name: 'model-id',\n type: 'select',\n admin: {\n components: {\n Field: SelectField,\n },\n custom: {\n filterByField: 'field-type',\n options: modelOptions,\n },\n },\n label: 'Model',\n options: modelOptions.map((option) => {\n return {\n label: option.label,\n value: option.value,\n }\n }),\n validate: () => true,\n },\n {\n name: 'prompt',\n type: 'textarea',\n admin: {\n components: {\n Field: PromptEditorField,\n },\n },\n },\n ...groupSettings,\n ],\n hooks: {\n beforeChange: [\n (req) => {\n if (req.data['openai-gpt-object-settings'].layout?.length === 0) {\n // TODO: why??\n req.data['openai-gpt-object-settings'].layout = ''\n }\n return req.data\n },\n ],\n },\n}\n"],"names":["GenerationModels","PLUGIN_INSTRUCTIONS_TABLE","PromptEditorField","SelectField","groupSettings","reduce","fields","model","settings","push","modelOptions","map","label","name","value","id","Instructions","slug","access","create","read","update","admin","hidden","type","readOnly","unique","defaultValue","options","components","Field","custom","filterByField","option","validate","hooks","beforeChange","req","data","layout","length"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,yBAAyB,QAAQ,iBAAgB;AAC1D,SAASC,iBAAiB,QAAQ,mDAAkD;AACpF,SAASC,WAAW,QAAQ,uCAAsC;AAElE,MAAMC,gBAAgBJ,iBAAiBK,MAAM,CAAC,CAACC,QAAQC;IACrD,IAAIA,MAAMC,QAAQ,EAAE;QAClBF,OAAOG,IAAI,CAACF,MAAMC,QAAQ;IAC5B;IACA,OAAOF;AACT,GAAG,EAAE;AAEL,MAAMI,eAAeV,iBAAiBW,GAAG,CAAC,CAACJ;IACzC,OAAO;QACLD,QAAQC,MAAMD,MAAM;QACpBM,OAAOL,MAAMM,IAAI;QACjBC,OAAOP,MAAMQ,EAAE;IACjB;AACF;AAEA,OAAO,MAAMC,eAAiC;IAC5CC,MAAMhB;IAEN,iEAAiE;IACjEiB,QAAQ;QACNC,QAAQ,IAAM;QACdC,MAAM,IAAM;QACZC,QAAQ,IAAM;IAChB;IACAC,OAAO;QACLC,QAAQ;IACV;IACAjB,QAAQ;QACN;YACEO,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLC,QAAQ;gBACRE,UAAU;YACZ;YACAC,QAAQ;QACV;QACA;YACEb,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLC,QAAQ;gBACRE,UAAU;YACZ;YACAE,cAAc;YACdf,OAAO;YACPgB,SAAS;gBACP;oBACEhB,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;aACD;QACH;QACA;YACED,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLO,YAAY;oBACVC,OAAO3B;gBACT;gBACA4B,QAAQ;oBACNC,eAAe;oBACfJ,SAASlB;gBACX;YACF;YACAE,OAAO;YACPgB,SAASlB,aAAaC,GAAG,CAAC,CAACsB;gBACzB,OAAO;oBACLrB,OAAOqB,OAAOrB,KAAK;oBACnBE,OAAOmB,OAAOnB,KAAK;gBACrB;YACF;YACAoB,UAAU,IAAM;QAClB;QACA;YACErB,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLO,YAAY;oBACVC,OAAO5B;gBACT;YACF;QACF;WACGE;KACJ;IACD+B,OAAO;QACLC,cAAc;YACZ,CAACC;gBACC,IAAIA,IAAIC,IAAI,CAAC,6BAA6B,CAACC,MAAM,EAAEC,WAAW,GAAG;oBAC/D,cAAc;oBACdH,IAAIC,IAAI,CAAC,6BAA6B,CAACC,MAAM,GAAG;gBAClD;gBACA,OAAOF,IAAIC,IAAI;YACjB;SACD;IACH;AACF,EAAC"}
@@ -1,10 +1,9 @@
1
1
  export declare const PLUGIN_NAME = "plugin-ai";
2
2
  export declare const PLUGIN_INSTRUCTIONS_TABLE = "plugin-ai-instructions";
3
- export declare const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = "plugin-ai-instructions-map";
3
+ export declare const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = "plugin-ai-plugin-ai-instructions-map";
4
4
  export declare const PLUGIN_LEXICAL_EDITOR_FEATURE = "plugin-ai-actions-feature";
5
5
  export declare const PLUGIN_API_ENDPOINT_BASE = "/plugin-ai";
6
6
  export declare const PLUGIN_API_ENDPOINT_GENERATE = "/plugin-ai/generate";
7
7
  export declare const PLUGIN_API_ENDPOINT_GENERATE_UPLOAD = "/plugin-ai/generate/upload";
8
- export declare const PLUGIN_DEFAULT_OPENAI_MODEL = "gpt-4o-mini";
9
- export declare const PLUGIN_DEFAULT_ANTHROPIC_MODEL = "claude-3-sonnet-20240229";
8
+ export declare const PLUGIN_DEFAULT_MODEL_NAME = "gpt-4o-mini";
10
9
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,cAAc,CAAA;AACtC,eAAO,MAAM,yBAAyB,2BAAgC,CAAA;AACtE,eAAO,MAAM,8BAA8B,+BAAqC,CAAA;AAChF,eAAO,MAAM,6BAA6B,8BAAmC,CAAA;AAG7E,eAAO,MAAM,wBAAwB,eAAoB,CAAA;AACzD,eAAO,MAAM,4BAA4B,wBAAyC,CAAA;AAClF,eAAO,MAAM,mCAAmC,+BAA2C,CAAA;AAG3F,eAAO,MAAM,2BAA2B,gBAAgB,CAAA;AACxD,eAAO,MAAM,8BAA8B,6BAA6B,CAAA"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,cAAc,CAAA;AACtC,eAAO,MAAM,yBAAyB,2BAAgC,CAAA;AACtE,eAAO,MAAM,8BAA8B,yCAAoD,CAAA;AAC/F,eAAO,MAAM,6BAA6B,8BAAmC,CAAA;AAG7E,eAAO,MAAM,wBAAwB,eAAoB,CAAA;AACzD,eAAO,MAAM,4BAA4B,wBAAyC,CAAA;AAClF,eAAO,MAAM,mCAAmC,+BAA2C,CAAA;AAG3F,eAAO,MAAM,yBAAyB,gBAAgB,CAAA"}
package/dist/defaults.js CHANGED
@@ -1,13 +1,12 @@
1
1
  export const PLUGIN_NAME = 'plugin-ai';
2
2
  export const PLUGIN_INSTRUCTIONS_TABLE = `${PLUGIN_NAME}-instructions`;
3
- export const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = `${PLUGIN_INSTRUCTIONS_TABLE}-map`;
3
+ export const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = `${PLUGIN_NAME}-${PLUGIN_INSTRUCTIONS_TABLE}-map`;
4
4
  export const PLUGIN_LEXICAL_EDITOR_FEATURE = `${PLUGIN_NAME}-actions-feature`;
5
5
  // Endpoint defaults
6
6
  export const PLUGIN_API_ENDPOINT_BASE = `/${PLUGIN_NAME}`;
7
7
  export const PLUGIN_API_ENDPOINT_GENERATE = `${PLUGIN_API_ENDPOINT_BASE}/generate`;
8
8
  export const PLUGIN_API_ENDPOINT_GENERATE_UPLOAD = `${PLUGIN_API_ENDPOINT_GENERATE}/upload`;
9
9
  // LLM Settings
10
- export const PLUGIN_DEFAULT_OPENAI_MODEL = `gpt-4o-mini`;
11
- export const PLUGIN_DEFAULT_ANTHROPIC_MODEL = `claude-3-sonnet-20240229`;
10
+ export const PLUGIN_DEFAULT_MODEL_NAME = `gpt-4o-mini`;
12
11
 
13
12
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.ts"],"sourcesContent":["export const PLUGIN_NAME = 'plugin-ai'\nexport const PLUGIN_INSTRUCTIONS_TABLE = `${PLUGIN_NAME}-instructions`\nexport const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = `${PLUGIN_INSTRUCTIONS_TABLE}-map`\nexport const PLUGIN_LEXICAL_EDITOR_FEATURE = `${PLUGIN_NAME}-actions-feature`\n\n// Endpoint defaults\nexport const PLUGIN_API_ENDPOINT_BASE = `/${PLUGIN_NAME}`\nexport const PLUGIN_API_ENDPOINT_GENERATE = `${PLUGIN_API_ENDPOINT_BASE}/generate`\nexport const PLUGIN_API_ENDPOINT_GENERATE_UPLOAD = `${PLUGIN_API_ENDPOINT_GENERATE}/upload`\n\n// LLM Settings\nexport const PLUGIN_DEFAULT_OPENAI_MODEL = `gpt-4o-mini`\nexport const PLUGIN_DEFAULT_ANTHROPIC_MODEL = `claude-3-sonnet-20240229`\n"],"names":["PLUGIN_NAME","PLUGIN_INSTRUCTIONS_TABLE","PLUGIN_INSTRUCTIONS_MAP_GLOBAL","PLUGIN_LEXICAL_EDITOR_FEATURE","PLUGIN_API_ENDPOINT_BASE","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_DEFAULT_OPENAI_MODEL","PLUGIN_DEFAULT_ANTHROPIC_MODEL"],"mappings":"AAAA,OAAO,MAAMA,cAAc,YAAW;AACtC,OAAO,MAAMC,4BAA4B,CAAC,EAAED,YAAY,aAAa,CAAC,CAAA;AACtE,OAAO,MAAME,iCAAiC,CAAC,EAAED,0BAA0B,IAAI,CAAC,CAAA;AAChF,OAAO,MAAME,gCAAgC,CAAC,EAAEH,YAAY,gBAAgB,CAAC,CAAA;AAE7E,oBAAoB;AACpB,OAAO,MAAMI,2BAA2B,CAAC,CAAC,EAAEJ,YAAY,CAAC,CAAA;AACzD,OAAO,MAAMK,+BAA+B,CAAC,EAAED,yBAAyB,SAAS,CAAC,CAAA;AAClF,OAAO,MAAME,sCAAsC,CAAC,EAAED,6BAA6B,OAAO,CAAC,CAAA;AAE3F,eAAe;AACf,OAAO,MAAME,8BAA8B,CAAC,WAAW,CAAC,CAAA;AACxD,OAAO,MAAMC,iCAAiC,CAAC,wBAAwB,CAAC,CAAA"}
1
+ {"version":3,"sources":["../src/defaults.ts"],"sourcesContent":["export const PLUGIN_NAME = 'plugin-ai'\nexport const PLUGIN_INSTRUCTIONS_TABLE = `${PLUGIN_NAME}-instructions`\nexport const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = `${PLUGIN_NAME}-${PLUGIN_INSTRUCTIONS_TABLE}-map`\nexport const PLUGIN_LEXICAL_EDITOR_FEATURE = `${PLUGIN_NAME}-actions-feature`\n\n// Endpoint defaults\nexport const PLUGIN_API_ENDPOINT_BASE = `/${PLUGIN_NAME}`\nexport const PLUGIN_API_ENDPOINT_GENERATE = `${PLUGIN_API_ENDPOINT_BASE}/generate`\nexport const PLUGIN_API_ENDPOINT_GENERATE_UPLOAD = `${PLUGIN_API_ENDPOINT_GENERATE}/upload`\n\n// LLM Settings\nexport const PLUGIN_DEFAULT_MODEL_NAME = `gpt-4o-mini`\n"],"names":["PLUGIN_NAME","PLUGIN_INSTRUCTIONS_TABLE","PLUGIN_INSTRUCTIONS_MAP_GLOBAL","PLUGIN_LEXICAL_EDITOR_FEATURE","PLUGIN_API_ENDPOINT_BASE","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_DEFAULT_MODEL_NAME"],"mappings":"AAAA,OAAO,MAAMA,cAAc,YAAW;AACtC,OAAO,MAAMC,4BAA4B,CAAC,EAAED,YAAY,aAAa,CAAC,CAAA;AACtE,OAAO,MAAME,iCAAiC,CAAC,EAAEF,YAAY,CAAC,EAAEC,0BAA0B,IAAI,CAAC,CAAA;AAC/F,OAAO,MAAME,gCAAgC,CAAC,EAAEH,YAAY,gBAAgB,CAAC,CAAA;AAE7E,oBAAoB;AACpB,OAAO,MAAMI,2BAA2B,CAAC,CAAC,EAAEJ,YAAY,CAAC,CAAA;AACzD,OAAO,MAAMK,+BAA+B,CAAC,EAAED,yBAAyB,SAAS,CAAC,CAAA;AAClF,OAAO,MAAME,sCAAsC,CAAC,EAAED,6BAA6B,OAAO,CAAC,CAAA;AAE3F,eAAe;AACf,OAAO,MAAME,4BAA4B,CAAC,WAAW,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
- import type { Endpoints } from '../types.js';
1
+ import { Endpoints } from '../types.js';
2
2
  export declare const endpoints: Endpoints;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,aAAa,CAAA;AAsE7D,eAAO,MAAM,SAAS,EAAE,SAsIvB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,SAAS,EAAE,MAAM,aAAa,CAAA;AAiHxD,eAAO,MAAM,SAAS,EAAE,SAwIvB,CAAA"}
@@ -1,22 +1,29 @@
1
- import { lexicalSchema } from '../ai/schemas/lexical.schema.js';
1
+ import Handlebars from 'handlebars';
2
+ import asyncHelpers from 'handlebars-async-helpers';
2
3
  import { GenerationModels } from '../ai/models/index.js';
3
4
  import { defaultPrompts } from '../ai/prompts.js';
4
5
  import { PLUGIN_API_ENDPOINT_GENERATE, PLUGIN_API_ENDPOINT_GENERATE_UPLOAD, PLUGIN_INSTRUCTIONS_TABLE, PLUGIN_NAME } from '../defaults.js';
5
- import { registerEditorHelper } from '../libraries/handlebars/helpers.js';
6
- import { handlebarsHelpersMap } from '../libraries/handlebars/helpersMap.js';
7
- import { replacePlaceholders } from '../libraries/handlebars/replacePlaceholders.js';
8
- const assignPrompt = async (action, { type, actionParams, context, field, layout, systemPrompt = '', template })=>{
6
+ import { getFieldBySchemaPath } from '../utilities/getFieldBySchemaPath.js';
7
+ import { lexicalToHTML } from '../utilities/lexicalToHTML.js';
8
+ import { lexicalSchema } from '../ai/editor/lexical.schema.js';
9
+ const asyncHandlebars = asyncHelpers(Handlebars);
10
+ const replacePlaceholders = (prompt, values)=>{
11
+ return asyncHandlebars.compile(prompt, {
12
+ trackIds: true
13
+ })(values);
14
+ };
15
+ const assignPrompt = async (action, { type, actionParams, context, field, systemPrompt = '', template, layout })=>{
9
16
  const prompt = await replacePlaceholders(template, context);
10
- const toLexicalHTML = type === 'richText' ? handlebarsHelpersMap.toHTML.name : '';
17
+ const toLexicalHTML = type === 'richText' ? 'toLexicalHTML' : '';
11
18
  const assignedPrompts = {
12
- layout,
13
19
  prompt,
14
- system: systemPrompt
20
+ system: systemPrompt,
21
+ layout
15
22
  };
16
23
  if (action === 'Compose') {
17
24
  return assignedPrompts;
18
25
  }
19
- const { layout: getLayout, system: getSystemPrompt } = defaultPrompts.find((p)=>p.name === action);
26
+ const { system: getSystemPrompt, layout: getLayout } = defaultPrompts.find((p)=>p.name === action);
20
27
  let updatedLayout = layout;
21
28
  if (getLayout) {
22
29
  updatedLayout = getLayout();
@@ -27,12 +34,38 @@ const assignPrompt = async (action, { type, actionParams, context, field, layout
27
34
  systemPrompt
28
35
  });
29
36
  return {
30
- layout: updatedLayout,
31
- // TODO: revisit this toLexicalHTML
32
37
  prompt: await replacePlaceholders(`{{${toLexicalHTML} ${field}}}`, context),
33
- system
38
+ system,
39
+ layout: updatedLayout
34
40
  };
35
41
  };
42
+ const registerEditorHelper = (payload, schemaPath)=>{
43
+ //TODO: add autocomplete ability using handlebars template on PromptEditorField and include custom helpers in dropdown
44
+ let fieldInfo = getFieldInfo(payload.collections, schemaPath);
45
+ const schemaPathChunks = schemaPath.split('.');
46
+ asyncHandlebars.registerHelper('toLexicalHTML', async function(content, options) {
47
+ const collectionSlug = schemaPathChunks[0];
48
+ const { ids } = options;
49
+ for (const id of ids){
50
+ //TODO: Find a better way to get schemaPath of defined field in prompt editor
51
+ const path = `${collectionSlug}.${id}`;
52
+ fieldInfo = getFieldInfo(payload.collections, path);
53
+ }
54
+ const html = await lexicalToHTML(content, fieldInfo.editor?.editorConfig);
55
+ return new asyncHandlebars.SafeString(html);
56
+ });
57
+ };
58
+ const getFieldInfo = (collections, schemaPath)=>{
59
+ let fieldInfo = null;
60
+ //TODO: Only run below for enabled collections
61
+ for(const collectionsKey in collections){
62
+ const collection = collections[collectionsKey];
63
+ fieldInfo = getFieldBySchemaPath(collection.config, schemaPath);
64
+ if (fieldInfo) {
65
+ return fieldInfo;
66
+ }
67
+ }
68
+ };
36
69
  export const endpoints = {
37
70
  textarea: {
38
71
  handler: async (req)=>{
@@ -43,7 +76,7 @@ export const endpoints = {
43
76
  if (!instructionId) {
44
77
  throw new Error(`Instruction ID is required for "${PLUGIN_NAME}" to work, please check your configuration`);
45
78
  }
46
- const instructions = await req.payload.findByID({
79
+ let instructions = await req.payload.findByID({
47
80
  id: instructionId,
48
81
  collection: PLUGIN_INSTRUCTIONS_TABLE
49
82
  });
@@ -72,17 +105,17 @@ export const endpoints = {
72
105
  actionParams,
73
106
  context: contextData,
74
107
  field: fieldName,
75
- layout: modelOptions.layout,
76
108
  systemPrompt: modelOptions.system,
77
- template: promptTemplate
109
+ template: promptTemplate,
110
+ layout: modelOptions.layout
78
111
  });
79
112
  console.log('Running handler with prompts:', prompts);
80
113
  return model.handler?.(prompts.prompt, {
81
114
  ...modelOptions,
82
115
  ...opt,
116
+ system: prompts.system,
83
117
  editorSchema,
84
- layout: prompts.layout,
85
- system: prompts.system
118
+ layout: prompts.layout
86
119
  }).catch((error)=>{
87
120
  console.error('Error: endpoint - generating text:', error);
88
121
  return new Response(JSON.stringify(error.message), {
@@ -126,6 +159,7 @@ export const endpoints = {
126
159
  data: result.data,
127
160
  file: result.file
128
161
  });
162
+ console.log('assetData', assetData);
129
163
  return new Response(JSON.stringify({
130
164
  result: {
131
165
  id: assetData.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/endpoints/index.ts"],"sourcesContent":["import type { PayloadRequest } from 'payload'\n\nimport type { ActionMenuItems, Endpoints } from '../types.js'\n\nimport { lexicalSchema } from '../ai/schemas/lexical.schema.js'\nimport { GenerationModels } from '../ai/models/index.js'\nimport { defaultPrompts } from '../ai/prompts.js'\nimport {\n PLUGIN_API_ENDPOINT_GENERATE,\n PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n PLUGIN_INSTRUCTIONS_TABLE,\n PLUGIN_NAME,\n} from '../defaults.js'\nimport { registerEditorHelper } from '../libraries/handlebars/helpers.js'\nimport { handlebarsHelpersMap } from '../libraries/handlebars/helpersMap.js'\nimport { replacePlaceholders } from '../libraries/handlebars/replacePlaceholders.js'\n\nconst assignPrompt = async (\n action: ActionMenuItems,\n {\n type,\n actionParams,\n context,\n field,\n layout,\n systemPrompt = '',\n template,\n }: {\n actionParams: Record<any, any>\n context: object\n field: string\n layout: string\n systemPrompt: string\n template: string\n type: string\n },\n) => {\n const prompt = await replacePlaceholders(template, context)\n const toLexicalHTML = type === 'richText' ? handlebarsHelpersMap.toHTML.name : ''\n const assignedPrompts = {\n layout,\n prompt,\n system: systemPrompt,\n }\n\n if (action === 'Compose') {\n return assignedPrompts\n }\n\n const { layout: getLayout, system: getSystemPrompt } = defaultPrompts.find(\n (p) => p.name === action,\n )\n\n let updatedLayout = layout\n if (getLayout) {\n updatedLayout = getLayout()\n }\n\n const system = getSystemPrompt({\n ...(actionParams || {}),\n prompt,\n systemPrompt,\n })\n\n return {\n layout: updatedLayout,\n // TODO: revisit this toLexicalHTML\n prompt: await replacePlaceholders(`{{${toLexicalHTML} ${field}}}`, context),\n system,\n }\n}\n\nexport const endpoints: Endpoints = {\n textarea: {\n handler: async (req: PayloadRequest) => {\n const data = await req.json?.()\n\n const { locale = 'en', options } = data\n const { action, actionParams, instructionId } = options\n const contextData = data.doc\n\n if (!instructionId) {\n throw new Error(\n `Instruction ID is required for \"${PLUGIN_NAME}\" to work, please check your configuration`,\n )\n }\n\n const instructions = await req.payload.findByID({\n id: instructionId,\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n })\n\n const { collections } = req.payload.config\n const collection = collections.find(\n (collection) => collection.slug === PLUGIN_INSTRUCTIONS_TABLE,\n )\n\n const { editorConfig: { schema: editorSchema = lexicalSchema() } = {} } =\n collection.custom || {}\n\n const { prompt: promptTemplate = '' } = instructions\n\n const schemaPath = instructions['schema-path'] as string\n const fieldName = schemaPath?.split('.').pop()\n\n registerEditorHelper(req.payload, schemaPath)\n\n const { defaultLocale, locales = [] } = req.payload.config.localization || {}\n const localeData = locales.find((l) => {\n return l.code === locale\n })\n\n const localeInfo = localeData?.label[defaultLocale] || locale\n\n //TODO: remove this\n const opt = {\n locale: localeInfo,\n modelId: instructions['model-id'],\n }\n\n const model = GenerationModels.find((model) => model.id === opt.modelId)\n const settingsName = model.settings?.name\n const modelOptions = instructions[settingsName] as {\n layout: string\n system: string\n }\n\n const prompts = await assignPrompt(action, {\n type: instructions['field-type'] as string,\n actionParams,\n context: contextData,\n field: fieldName,\n layout: modelOptions.layout,\n systemPrompt: modelOptions.system,\n template: promptTemplate as string,\n })\n\n console.log('Running handler with prompts:', prompts)\n return model\n .handler?.(prompts.prompt, {\n ...modelOptions,\n ...opt,\n editorSchema,\n layout: prompts.layout,\n system: prompts.system,\n })\n .catch((error) => {\n console.error('Error: endpoint - generating text:', error)\n return new Response(JSON.stringify(error.message), { status: 500 })\n })\n },\n method: 'post',\n path: PLUGIN_API_ENDPOINT_GENERATE,\n },\n upload: {\n handler: async (req: PayloadRequest) => {\n const data = await req.json?.()\n\n const { options } = data\n const { instructionId, uploadCollectionSlug } = options\n const contextData = data.doc\n\n let instructions = { 'model-id': '', prompt: '' }\n\n if (instructionId) {\n // @ts-expect-error\n instructions = await req.payload.findByID({\n id: instructionId,\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n })\n }\n\n const { prompt: promptTemplate = '' } = instructions\n const schemaPath = instructions['schema-path']\n\n registerEditorHelper(req.payload, schemaPath)\n\n const text = await replacePlaceholders(promptTemplate, contextData)\n const modelId = instructions['model-id']\n console.log('prompt text:', text)\n\n const model = GenerationModels.find((model) => model.id === modelId)\n const settingsName = model.settings?.name\n const modelOptions = instructions[settingsName] || {}\n console.log('modelOptions', modelOptions)\n\n const result = await model.handler?.(text, modelOptions)\n\n const assetData = await req.payload.create({\n collection: uploadCollectionSlug,\n data: result.data,\n file: result.file,\n })\n\n return new Response(\n JSON.stringify({\n result: {\n id: assetData.id,\n alt: assetData.alt,\n },\n }),\n )\n },\n method: 'post',\n path: PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n },\n}\n"],"names":["lexicalSchema","GenerationModels","defaultPrompts","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_INSTRUCTIONS_TABLE","PLUGIN_NAME","registerEditorHelper","handlebarsHelpersMap","replacePlaceholders","assignPrompt","action","type","actionParams","context","field","layout","systemPrompt","template","prompt","toLexicalHTML","toHTML","name","assignedPrompts","system","getLayout","getSystemPrompt","find","p","updatedLayout","endpoints","textarea","handler","req","data","json","locale","options","instructionId","contextData","doc","Error","instructions","payload","findByID","id","collection","collections","config","slug","editorConfig","schema","editorSchema","custom","promptTemplate","schemaPath","fieldName","split","pop","defaultLocale","locales","localization","localeData","l","code","localeInfo","label","opt","modelId","model","settingsName","settings","modelOptions","prompts","console","log","catch","error","Response","JSON","stringify","message","status","method","path","upload","uploadCollectionSlug","text","result","assetData","create","file","alt"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/endpoints/index.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { BasePayload, PayloadRequest } from 'payload'\n\nimport Handlebars from 'handlebars'\nimport asyncHelpers from 'handlebars-async-helpers'\n\nimport { ActionMenuItems, Endpoints } from '../types.js'\n\nimport { GenerationModels } from '../ai/models/index.js'\nimport { defaultPrompts } from '../ai/prompts.js'\nimport {\n PLUGIN_API_ENDPOINT_GENERATE,\n PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n PLUGIN_INSTRUCTIONS_TABLE,\n PLUGIN_NAME,\n} from '../defaults.js'\nimport { getFieldBySchemaPath } from '../utilities/getFieldBySchemaPath.js'\nimport { lexicalToHTML } from '../utilities/lexicalToHTML.js'\nimport { lexicalSchema } from '../ai/editor/lexical.schema.js'\nimport { generateText } from 'ai'\nimport { openai } from '@ai-sdk/openai'\n\nconst asyncHandlebars = asyncHelpers(Handlebars)\n\nconst replacePlaceholders = (prompt: string, values: object) => {\n return asyncHandlebars.compile(prompt, { trackIds: true })(values)\n}\n\nconst assignPrompt = async (\n action: ActionMenuItems,\n {\n type,\n actionParams,\n context,\n field,\n systemPrompt = '',\n template,\n layout,\n }: {\n actionParams: Record<any, any>\n context: object\n field: string\n systemPrompt: string\n template: string\n type: string\n layout: string\n },\n) => {\n const prompt = await replacePlaceholders(template, context)\n\n const toLexicalHTML = type === 'richText' ? 'toLexicalHTML' : ''\n\n const assignedPrompts = {\n prompt,\n system: systemPrompt,\n layout,\n }\n\n if (action === 'Compose') {\n return assignedPrompts\n }\n\n const { system: getSystemPrompt, layout: getLayout } = defaultPrompts.find(\n (p) => p.name === action,\n )\n\n let updatedLayout = layout\n if (getLayout) {\n updatedLayout = getLayout()\n }\n\n const system = getSystemPrompt({\n ...(actionParams || {}),\n prompt,\n systemPrompt,\n })\n\n return {\n prompt: await replacePlaceholders(`{{${toLexicalHTML} ${field}}}`, context),\n system,\n layout: updatedLayout,\n }\n}\n\nconst registerEditorHelper = (payload, schemaPath) => {\n //TODO: add autocomplete ability using handlebars template on PromptEditorField and include custom helpers in dropdown\n\n let fieldInfo = getFieldInfo(payload.collections, schemaPath)\n const schemaPathChunks = schemaPath.split('.')\n\n asyncHandlebars.registerHelper(\n 'toLexicalHTML',\n async function (content: SerializedEditorState, options) {\n const collectionSlug = schemaPathChunks[0]\n const { ids } = options\n for (const id of ids) {\n //TODO: Find a better way to get schemaPath of defined field in prompt editor\n const path = `${collectionSlug}.${id}`\n fieldInfo = getFieldInfo(payload.collections, path)\n }\n\n const html = await lexicalToHTML(content, fieldInfo.editor?.editorConfig)\n return new asyncHandlebars.SafeString(html)\n },\n )\n}\n\nconst getFieldInfo = (collections: BasePayload['collections'], schemaPath: string) => {\n let fieldInfo = null\n //TODO: Only run below for enabled collections\n for (const collectionsKey in collections) {\n const collection = collections[collectionsKey]\n fieldInfo = getFieldBySchemaPath(collection.config, schemaPath)\n if (fieldInfo) {\n return fieldInfo\n }\n }\n}\n\nexport const endpoints: Endpoints = {\n textarea: {\n handler: async (req: PayloadRequest) => {\n const data = await req.json?.()\n\n const { locale = 'en', options } = data\n const { action, actionParams, instructionId } = options\n const contextData = data.doc\n\n if (!instructionId) {\n throw new Error(\n `Instruction ID is required for \"${PLUGIN_NAME}\" to work, please check your configuration`,\n )\n }\n\n let instructions = await req.payload.findByID({\n id: instructionId,\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n })\n\n const { collections } = req.payload.config\n const collection = collections.find(\n (collection) => collection.slug === PLUGIN_INSTRUCTIONS_TABLE,\n )\n\n const { editorConfig: { schema: editorSchema = lexicalSchema() } = {} } =\n collection.custom || {}\n\n const { prompt: promptTemplate = '' } = instructions\n\n const schemaPath = instructions['schema-path'] as string\n const fieldName = schemaPath?.split('.').pop()\n\n registerEditorHelper(req.payload, schemaPath)\n\n const { defaultLocale, locales = [] } = req.payload.config.localization || {}\n const localeData = locales.find((l) => {\n return l.code === locale\n })\n\n const localeInfo = localeData?.label[defaultLocale] || locale\n\n //TODO: remove this\n const opt = {\n locale: localeInfo,\n modelId: instructions['model-id'],\n }\n\n const model = GenerationModels.find((model) => model.id === opt.modelId)\n const settingsName = model.settings?.name\n const modelOptions = instructions[settingsName] as {\n system: string\n layout: string\n }\n\n const prompts = await assignPrompt(action, {\n type: instructions['field-type'] as string,\n actionParams,\n context: contextData,\n field: fieldName,\n systemPrompt: modelOptions.system,\n template: promptTemplate as string,\n layout: modelOptions.layout,\n })\n\n console.log('Running handler with prompts:', prompts)\n return model\n .handler?.(prompts.prompt, {\n ...modelOptions,\n ...opt,\n system: prompts.system,\n editorSchema,\n layout: prompts.layout,\n })\n .catch((error) => {\n console.error('Error: endpoint - generating text:', error)\n return new Response(JSON.stringify(error.message), { status: 500 })\n })\n },\n method: 'post',\n path: PLUGIN_API_ENDPOINT_GENERATE,\n },\n upload: {\n handler: async (req: PayloadRequest) => {\n const data = await req.json?.()\n\n const { options } = data\n const { instructionId, uploadCollectionSlug } = options\n const contextData = data.doc\n\n let instructions = { 'model-id': '', prompt: '' }\n\n if (instructionId) {\n // @ts-expect-error\n instructions = await req.payload.findByID({\n id: instructionId,\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n })\n }\n\n const { prompt: promptTemplate = '' } = instructions\n const schemaPath = instructions['schema-path']\n\n registerEditorHelper(req.payload, schemaPath)\n\n const text = await replacePlaceholders(promptTemplate, contextData)\n const modelId = instructions['model-id']\n console.log('prompt text:', text)\n\n const model = GenerationModels.find((model) => model.id === modelId)\n const settingsName = model.settings?.name\n const modelOptions = instructions[settingsName] || {}\n console.log('modelOptions', modelOptions)\n\n const result = await model.handler?.(text, modelOptions)\n\n const assetData = await req.payload.create({\n collection: uploadCollectionSlug,\n data: result.data,\n file: result.file,\n })\n\n console.log('assetData', assetData)\n\n return new Response(\n JSON.stringify({\n result: {\n id: assetData.id,\n alt: assetData.alt,\n },\n }),\n )\n },\n method: 'post',\n path: PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n },\n}\n"],"names":["Handlebars","asyncHelpers","GenerationModels","defaultPrompts","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_INSTRUCTIONS_TABLE","PLUGIN_NAME","getFieldBySchemaPath","lexicalToHTML","lexicalSchema","asyncHandlebars","replacePlaceholders","prompt","values","compile","trackIds","assignPrompt","action","type","actionParams","context","field","systemPrompt","template","layout","toLexicalHTML","assignedPrompts","system","getSystemPrompt","getLayout","find","p","name","updatedLayout","registerEditorHelper","payload","schemaPath","fieldInfo","getFieldInfo","collections","schemaPathChunks","split","registerHelper","content","options","collectionSlug","ids","id","path","html","editor","editorConfig","SafeString","collectionsKey","collection","config","endpoints","textarea","handler","req","data","json","locale","instructionId","contextData","doc","Error","instructions","findByID","slug","schema","editorSchema","custom","promptTemplate","fieldName","pop","defaultLocale","locales","localization","localeData","l","code","localeInfo","label","opt","modelId","model","settingsName","settings","modelOptions","prompts","console","log","catch","error","Response","JSON","stringify","message","status","method","upload","uploadCollectionSlug","text","result","assetData","create","file","alt"],"mappings":"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"}
@@ -1,4 +1,2 @@
1
- export { PromptEditorField } from '../fields/PromptEditorField/PromptEditorField.js';
2
- export { SelectField } from '../fields/SelectField/SelectField.js';
3
- export { DescriptionField } from '../fields/DescriptionField/DescriptionField.js';
1
+ export {};
4
2
  //# sourceMappingURL=fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/exports/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/exports/fields.ts"],"names":[],"mappings":""}
@@ -1,5 +1,2 @@
1
- export { PromptEditorField } from '../fields/PromptEditorField/PromptEditorField.js';
2
- export { SelectField } from '../fields/SelectField/SelectField.js';
3
- export { DescriptionField } from '../fields/DescriptionField/DescriptionField.js';
4
1
 
5
2
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exports/fields.ts"],"sourcesContent":["export { PromptEditorField } from '../fields/PromptEditorField/PromptEditorField.js'\nexport { SelectField } from '../fields/SelectField/SelectField.js'\nexport { DescriptionField } from '../fields/DescriptionField/DescriptionField.js'\n"],"names":["PromptEditorField","SelectField","DescriptionField"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,mDAAkD;AACpF,SAASC,WAAW,QAAQ,uCAAsC;AAClE,SAASC,gBAAgB,QAAQ,iDAAgD"}
1
+ {"version":3,"sources":["../../src/exports/fields.ts"],"names":[],"mappings":""}
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
- import { FieldDescriptionClientProps } from 'payload';
3
- export declare const DescriptionField: React.FC<FieldDescriptionClientProps>;
1
+ import { DescriptionComponent } from 'payload';
2
+ export declare const DescriptionField: DescriptionComponent;
4
3
  //# sourceMappingURL=DescriptionField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DescriptionField.d.ts","sourceRoot":"","sources":["../../../src/fields/DescriptionField/DescriptionField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAErD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAOlE,CAAA"}
1
+ {"version":3,"file":"DescriptionField.d.ts","sourceRoot":"","sources":["../../../src/fields/DescriptionField/DescriptionField.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG9C,eAAO,MAAM,gBAAgB,EAAE,oBAW9B,CAAA"}
@@ -1,18 +1,15 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useFieldProps } from '@payloadcms/ui';
4
- import React from 'react';
5
- import { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js';
6
- import { Actions } from '../../ui/Actions/Actions.js';
7
- export const DescriptionField = (props)=>{
8
- const { schemaPath } = useFieldProps();
9
- const { id: instructionId } = useInstructions({
10
- path: schemaPath
11
- });
12
- return /*#__PURE__*/ _jsx(Actions, {
13
- descriptionProps: props,
14
- instructionId: instructionId
1
+ import { withMergedProps } from '@payloadcms/ui/shared';
2
+ import { DescriptionFieldComponent } from './DescriptionFieldComponent.js';
3
+ // @ts-ignore
4
+ export const DescriptionField = (options)=>{
5
+ const mergedPropsFunc = withMergedProps({
6
+ Component: DescriptionFieldComponent,
7
+ sanitizeServerOnlyProps: true,
8
+ toMergeIntoProps: options
15
9
  });
10
+ // TODO: Might use this in order to add field entry for Instructions on plugin Init
11
+ mergedPropsFunc.displayName = 'DescriptionField';
12
+ return mergedPropsFunc;
16
13
  };
17
14
 
18
15
  //# sourceMappingURL=DescriptionField.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/DescriptionField/DescriptionField.tsx"],"sourcesContent":["'use client'\n\nimport { useFieldProps } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\nimport { Actions } from '../../ui/Actions/Actions.js'\nimport { FieldDescriptionClientProps } from 'payload'\n\nexport const DescriptionField: React.FC<FieldDescriptionClientProps> = (props) => {\n const { schemaPath } = useFieldProps()\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n return <Actions descriptionProps={props} instructionId={instructionId} />\n}\n"],"names":["useFieldProps","React","useInstructions","Actions","DescriptionField","props","schemaPath","id","instructionId","path","descriptionProps"],"mappings":"AAAA;;AAEA,SAASA,aAAa,QAAQ,iBAAgB;AAC9C,OAAOC,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,0DAAyD;AACzF,SAASC,OAAO,QAAQ,8BAA6B;AAGrD,OAAO,MAAMC,mBAA0D,CAACC;IACtE,MAAM,EAAEC,UAAU,EAAE,GAAGN;IACvB,MAAM,EAAEO,IAAIC,aAAa,EAAE,GAAGN,gBAAgB;QAC5CO,MAAMH;IACR;IAEA,qBAAO,KAACH;QAAQO,kBAAkBL;QAAOG,eAAeA;;AAC1D,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/DescriptionField/DescriptionField.tsx"],"sourcesContent":["import { withMergedProps } from '@payloadcms/ui/shared'\n\nimport { DescriptionFieldComponent } from './DescriptionFieldComponent.js'\nimport { DescriptionComponent } from 'payload'\n\n// @ts-ignore\nexport const DescriptionField: DescriptionComponent = (options: any) => {\n const mergedPropsFunc = withMergedProps({\n Component: DescriptionFieldComponent,\n sanitizeServerOnlyProps: true,\n toMergeIntoProps: options,\n })\n\n // TODO: Might use this in order to add field entry for Instructions on plugin Init\n mergedPropsFunc.displayName = 'DescriptionField'\n\n return mergedPropsFunc\n}\n"],"names":["withMergedProps","DescriptionFieldComponent","DescriptionField","options","mergedPropsFunc","Component","sanitizeServerOnlyProps","toMergeIntoProps","displayName"],"mappings":"AAAA,SAASA,eAAe,QAAQ,wBAAuB;AAEvD,SAASC,yBAAyB,QAAQ,iCAAgC;AAG1E,aAAa;AACb,OAAO,MAAMC,mBAAyC,CAACC;IACrD,MAAMC,kBAAkBJ,gBAAgB;QACtCK,WAAWJ;QACXK,yBAAyB;QACzBC,kBAAkBJ;IACpB;IAEA,mFAAmF;IACnFC,gBAAgBI,WAAW,GAAG;IAE9B,OAAOJ;AACT,EAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FieldDescriptionProps } from 'payload';
2
+ import React from 'react';
3
+ export declare const DescriptionFieldComponent: React.FC<FieldDescriptionProps>;
4
+ //# sourceMappingURL=DescriptionFieldComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DescriptionFieldComponent.d.ts","sourceRoot":"","sources":["../../../src/fields/DescriptionField/DescriptionFieldComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAOrE,CAAA"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useFieldProps } from '@payloadcms/ui';
4
+ import React from 'react';
5
+ import { useInstructions } from '../../providers/InstructionsProvider/hook.js';
6
+ import { Actions } from '../../ui/Actions/Actions.js';
7
+ export const DescriptionFieldComponent = (props)=>{
8
+ const { schemaPath } = useFieldProps();
9
+ const { id: instructionId } = useInstructions({
10
+ path: schemaPath
11
+ });
12
+ return /*#__PURE__*/ _jsx(Actions, {
13
+ descriptionProps: props,
14
+ instructionId: instructionId
15
+ });
16
+ };
17
+
18
+ //# sourceMappingURL=DescriptionFieldComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/DescriptionField/DescriptionFieldComponent.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldDescriptionProps } from 'payload'\n\nimport { useFieldProps } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useInstructions } from '../../providers/InstructionsProvider/hook.js'\nimport { Actions } from '../../ui/Actions/Actions.js'\n\nexport const DescriptionFieldComponent: React.FC<FieldDescriptionProps> = (props) => {\n const { schemaPath } = useFieldProps()\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n return <Actions descriptionProps={props} instructionId={instructionId} />\n}\n"],"names":["useFieldProps","React","useInstructions","Actions","DescriptionFieldComponent","props","schemaPath","id","instructionId","path","descriptionProps"],"mappings":"AAAA;;AAIA,SAASA,aAAa,QAAQ,iBAAgB;AAC9C,OAAOC,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,+CAA8C;AAC9E,SAASC,OAAO,QAAQ,8BAA6B;AAErD,OAAO,MAAMC,4BAA6D,CAACC;IACzE,MAAM,EAAEC,UAAU,EAAE,GAAGN;IACvB,MAAM,EAAEO,IAAIC,aAAa,EAAE,GAAGN,gBAAgB;QAC5CO,MAAMH;IACR;IAEA,qBAAO,KAACH;QAAQO,kBAAkBL;QAAOG,eAAeA;;AAC1D,EAAC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useFieldProps } from '@payloadcms/ui';
3
- import { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js';
3
+ import { useInstructions } from '../../providers/InstructionsProvider/hook.js';
4
4
  import { Actions } from '../../ui/Actions/Actions.js';
5
5
  export const ActionsFeatureComponent = ()=>{
6
6
  const { schemaPath } = useFieldProps();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/LexicalEditor/ActionsFeatureComponent.tsx"],"sourcesContent":["import { useFieldProps } from '@payloadcms/ui'\n\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\nimport { Actions } from '../../ui/Actions/Actions.js'\n\nexport const ActionsFeatureComponent = () => {\n const { schemaPath } = useFieldProps()\n\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n return <Actions instructionId={instructionId} />\n}\n"],"names":["useFieldProps","useInstructions","Actions","ActionsFeatureComponent","schemaPath","id","instructionId","path"],"mappings":";AAAA,SAASA,aAAa,QAAQ,iBAAgB;AAE9C,SAASC,eAAe,QAAQ,0DAAyD;AACzF,SAASC,OAAO,QAAQ,8BAA6B;AAErD,OAAO,MAAMC,0BAA0B;IACrC,MAAM,EAAEC,UAAU,EAAE,GAAGJ;IAEvB,MAAM,EAAEK,IAAIC,aAAa,EAAE,GAAGL,gBAAgB;QAC5CM,MAAMH;IACR;IAEA,qBAAO,KAACF;QAAQI,eAAeA;;AACjC,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/LexicalEditor/ActionsFeatureComponent.tsx"],"sourcesContent":["import { useFieldProps } from '@payloadcms/ui'\n\nimport { useInstructions } from '../../providers/InstructionsProvider/hook.js'\nimport { Actions } from '../../ui/Actions/Actions.js'\n\nexport const ActionsFeatureComponent = () => {\n const { schemaPath } = useFieldProps()\n\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n return <Actions instructionId={instructionId} />\n}\n"],"names":["useFieldProps","useInstructions","Actions","ActionsFeatureComponent","schemaPath","id","instructionId","path"],"mappings":";AAAA,SAASA,aAAa,QAAQ,iBAAgB;AAE9C,SAASC,eAAe,QAAQ,+CAA8C;AAC9E,SAASC,OAAO,QAAQ,8BAA6B;AAErD,OAAO,MAAMC,0BAA0B;IACrC,MAAM,EAAEC,UAAU,EAAE,GAAGJ;IAEvB,MAAM,EAAEK,IAAIC,aAAa,EAAE,GAAGL,gBAAgB;QAC5CM,MAAMH;IACR;IAEA,qBAAO,KAACF;QAAQI,eAAeA;;AACjC,EAAC"}
@@ -1,2 +1,8 @@
1
- export declare const PayloadAiPluginLexicalEditorFeature: import("@payloadcms/richtext-lexical").FeatureProviderProviderServer<undefined, undefined, undefined>;
1
+ export declare const PayloadAiPluginLexicalEditorFeature: import("@payloadcms/richtext-lexical").FeatureProviderProviderServer<undefined, {
2
+ applyToFocusedEditor: any;
3
+ disableIfParentHasFixedToolbar: any;
4
+ }, {
5
+ applyToFocusedEditor: any;
6
+ disableIfParentHasFixedToolbar: any;
7
+ }>;
2
8
  //# sourceMappingURL=feature.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature.server.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/feature.server.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mCAAmC,uGAK9C,CAAA"}
1
+ {"version":3,"file":"feature.server.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/feature.server.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mCAAmC;;;;;;EAiB9C,CAAA"}
@@ -1,10 +1,17 @@
1
1
  import { createServerFeature } from '@payloadcms/richtext-lexical';
2
2
  import { PLUGIN_LEXICAL_EDITOR_FEATURE } from '../../defaults.js';
3
- import { isPluginActivated } from '../../utilities/isPluginActivated.js';
4
- const isActivated = isPluginActivated();
3
+ import { LexicalEditorFeatureClient } from './feature.client.js';
5
4
  export const PayloadAiPluginLexicalEditorFeature = createServerFeature({
6
- feature: {
7
- ClientFeature: isActivated ? '@ai-stack/payloadcms/client#LexicalEditorFeatureClient' : null
5
+ feature: ({ props })=>{
6
+ const sanitizedProps = {
7
+ applyToFocusedEditor: props?.applyToFocusedEditor === undefined ? false : props.applyToFocusedEditor,
8
+ disableIfParentHasFixedToolbar: props?.disableIfParentHasFixedToolbar === undefined ? false : props.disableIfParentHasFixedToolbar
9
+ };
10
+ return {
11
+ ClientFeature: LexicalEditorFeatureClient,
12
+ clientFeatureProps: sanitizedProps,
13
+ sanitizedServerFeatureProps: sanitizedProps
14
+ };
8
15
  },
9
16
  key: PLUGIN_LEXICAL_EDITOR_FEATURE
10
17
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/LexicalEditor/feature.server.ts"],"sourcesContent":["import { createServerFeature } from '@payloadcms/richtext-lexical'\n\nimport { PLUGIN_LEXICAL_EDITOR_FEATURE } from '../../defaults.js'\nimport { isPluginActivated } from '../../utilities/isPluginActivated.js'\n\nconst isActivated = isPluginActivated()\n\nexport const PayloadAiPluginLexicalEditorFeature = createServerFeature({\n feature: {\n ClientFeature: isActivated ? '@ai-stack/payloadcms/client#LexicalEditorFeatureClient' : null,\n },\n key: PLUGIN_LEXICAL_EDITOR_FEATURE,\n})\n"],"names":["createServerFeature","PLUGIN_LEXICAL_EDITOR_FEATURE","isPluginActivated","isActivated","PayloadAiPluginLexicalEditorFeature","feature","ClientFeature","key"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,+BAA8B;AAElE,SAASC,6BAA6B,QAAQ,oBAAmB;AACjE,SAASC,iBAAiB,QAAQ,uCAAsC;AAExE,MAAMC,cAAcD;AAEpB,OAAO,MAAME,sCAAsCJ,oBAAoB;IACrEK,SAAS;QACPC,eAAeH,cAAc,2DAA2D;IAC1F;IACAI,KAAKN;AACP,GAAE"}
1
+ {"version":3,"sources":["../../../src/fields/LexicalEditor/feature.server.ts"],"sourcesContent":["import { createServerFeature } from '@payloadcms/richtext-lexical'\n\nimport { PLUGIN_LEXICAL_EDITOR_FEATURE } from '../../defaults.js'\nimport { LexicalEditorFeatureClient } from './feature.client.js'\n\nexport const PayloadAiPluginLexicalEditorFeature = createServerFeature({\n feature: ({ props }: Record<any, any>) => {\n const sanitizedProps = {\n applyToFocusedEditor:\n props?.applyToFocusedEditor === undefined ? false : props.applyToFocusedEditor,\n disableIfParentHasFixedToolbar:\n props?.disableIfParentHasFixedToolbar === undefined\n ? false\n : props.disableIfParentHasFixedToolbar,\n }\n return {\n ClientFeature: LexicalEditorFeatureClient,\n clientFeatureProps: sanitizedProps,\n sanitizedServerFeatureProps: sanitizedProps,\n }\n },\n key: PLUGIN_LEXICAL_EDITOR_FEATURE,\n})\n"],"names":["createServerFeature","PLUGIN_LEXICAL_EDITOR_FEATURE","LexicalEditorFeatureClient","PayloadAiPluginLexicalEditorFeature","feature","props","sanitizedProps","applyToFocusedEditor","undefined","disableIfParentHasFixedToolbar","ClientFeature","clientFeatureProps","sanitizedServerFeatureProps","key"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,+BAA8B;AAElE,SAASC,6BAA6B,QAAQ,oBAAmB;AACjE,SAASC,0BAA0B,QAAQ,sBAAqB;AAEhE,OAAO,MAAMC,sCAAsCH,oBAAoB;IACrEI,SAAS,CAAC,EAAEC,KAAK,EAAoB;QACnC,MAAMC,iBAAiB;YACrBC,sBACEF,OAAOE,yBAAyBC,YAAY,QAAQH,MAAME,oBAAoB;YAChFE,gCACEJ,OAAOI,mCAAmCD,YACtC,QACAH,MAAMI,8BAA8B;QAC5C;QACA,OAAO;YACLC,eAAeR;YACfS,oBAAoBL;YACpBM,6BAA6BN;QAC/B;IACF;IACAO,KAAKZ;AACP,GAAE"}
@@ -1,4 +1,4 @@
1
- import type { TextareaFieldProps } from 'payload';
1
+ import type { TextareaFieldProps } from '@payloadcms/ui';
2
2
  import React from 'react';
3
3
  export declare const PromptEditorField: React.FC<TextareaFieldProps>;
4
4
  //# sourceMappingURL=PromptEditorField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptEditorField.d.ts","sourceRoot":"","sources":["../../../src/fields/PromptEditorField/PromptEditorField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4B1D,CAAA"}
1
+ {"version":3,"file":"PromptEditorField.d.ts","sourceRoot":"","sources":["../../../src/fields/PromptEditorField/PromptEditorField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGxD,OAAO,KAAyC,MAAM,OAAO,CAAA;AAM7D,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgE1D,CAAA"}