@ai-stack/payloadcms 3.0.0-beta.95.2 → 3.2.1-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 (186) hide show
  1. package/LICENSE.md +2 -2
  2. package/README.md +19 -17
  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/generateRichText.js +2 -2
  15. package/dist/ai/models/openai/generateRichText.js.map +1 -1
  16. package/dist/ai/models/openai/generateVoice.d.ts +1 -1
  17. package/dist/ai/models/openai/index.d.ts.map +1 -1
  18. package/dist/ai/models/openai/index.js +9 -35
  19. package/dist/ai/models/openai/index.js.map +1 -1
  20. package/dist/ai/prompts.d.ts +1 -1
  21. package/dist/ai/prompts.d.ts.map +1 -1
  22. package/dist/ai/prompts.js +6 -3
  23. package/dist/ai/prompts.js.map +1 -1
  24. package/dist/ai/schemas/lexicalJsonSchema.d.ts +2 -0
  25. package/dist/ai/schemas/lexicalJsonSchema.d.ts.map +1 -0
  26. package/dist/ai/schemas/lexicalJsonSchema.js +317 -0
  27. package/dist/ai/schemas/lexicalJsonSchema.js.map +1 -0
  28. package/dist/ai/utils/generateFileNameByPrompt.js.map +1 -1
  29. package/dist/ai/utils/systemGenerate.d.ts +5 -0
  30. package/dist/ai/utils/systemGenerate.d.ts.map +1 -0
  31. package/dist/ai/utils/{generateSeedPrompt.js → systemGenerate.js} +2 -2
  32. package/dist/ai/utils/systemGenerate.js.map +1 -0
  33. package/dist/collections/Instructions.d.ts +1 -1
  34. package/dist/collections/Instructions.d.ts.map +1 -1
  35. package/dist/collections/Instructions.js +177 -85
  36. package/dist/collections/Instructions.js.map +1 -1
  37. package/dist/defaults.d.ts +1 -1
  38. package/dist/defaults.d.ts.map +1 -1
  39. package/dist/defaults.js +1 -1
  40. package/dist/defaults.js.map +1 -1
  41. package/dist/endpoints/fetchFields.d.ts +3 -0
  42. package/dist/endpoints/fetchFields.d.ts.map +1 -0
  43. package/dist/endpoints/fetchFields.js +21 -0
  44. package/dist/endpoints/fetchFields.js.map +1 -0
  45. package/dist/endpoints/index.d.ts.map +1 -1
  46. package/dist/endpoints/index.js +12 -18
  47. package/dist/endpoints/index.js.map +1 -1
  48. package/dist/exports/fields.d.ts +2 -1
  49. package/dist/exports/fields.d.ts.map +1 -1
  50. package/dist/exports/fields.js +2 -1
  51. package/dist/exports/fields.js.map +1 -1
  52. package/dist/fields/ComposeField/ComposeField.d.ts +3 -0
  53. package/dist/fields/ComposeField/ComposeField.d.ts.map +1 -0
  54. package/dist/fields/ComposeField/ComposeField.js +24 -0
  55. package/dist/fields/ComposeField/ComposeField.js.map +1 -0
  56. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts +2 -0
  57. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -0
  58. package/dist/fields/LexicalEditor/ComposeFeatureComponent.js +28 -0
  59. package/dist/fields/LexicalEditor/ComposeFeatureComponent.js.map +1 -0
  60. package/dist/fields/LexicalEditor/feature.client.d.ts +4 -1
  61. package/dist/fields/LexicalEditor/feature.client.d.ts.map +1 -1
  62. package/dist/fields/LexicalEditor/feature.client.js +15 -7
  63. package/dist/fields/LexicalEditor/feature.client.js.map +1 -1
  64. package/dist/fields/PromptEditorField/PromptEditorField.d.ts +2 -2
  65. package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -1
  66. package/dist/fields/PromptEditorField/PromptEditorField.js +4 -8
  67. package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
  68. package/dist/fields/SelectField/SelectField.d.ts +3 -2
  69. package/dist/fields/SelectField/SelectField.d.ts.map +1 -1
  70. package/dist/fields/SelectField/SelectField.js +2 -3
  71. package/dist/fields/SelectField/SelectField.js.map +1 -1
  72. package/dist/index.d.ts +1 -6
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +1 -6
  75. package/dist/index.js.map +1 -1
  76. package/dist/init.d.ts +2 -1
  77. package/dist/init.d.ts.map +1 -1
  78. package/dist/init.js +22 -21
  79. package/dist/init.js.map +1 -1
  80. package/dist/libraries/autocomplete/AutocompleteTextArea.js +9 -7
  81. package/dist/libraries/autocomplete/AutocompleteTextArea.js.map +1 -1
  82. package/dist/libraries/handlebars/asyncHandlebars.js +1 -1
  83. package/dist/libraries/handlebars/asyncHandlebars.js.map +1 -1
  84. package/dist/libraries/handlebars/helpers.js.map +1 -1
  85. package/dist/plugin.d.ts.map +1 -1
  86. package/dist/plugin.js +30 -41
  87. package/dist/plugin.js.map +1 -1
  88. package/dist/providers/FieldProvider/FieldProvider.d.ts +15 -0
  89. package/dist/providers/FieldProvider/FieldProvider.d.ts.map +1 -0
  90. package/dist/providers/FieldProvider/FieldProvider.js +33 -0
  91. package/dist/providers/FieldProvider/FieldProvider.js.map +1 -0
  92. package/dist/providers/FieldProvider/useFieldProps.d.ts +6 -0
  93. package/dist/providers/FieldProvider/useFieldProps.d.ts.map +1 -0
  94. package/dist/providers/FieldProvider/useFieldProps.js +12 -0
  95. package/dist/providers/FieldProvider/useFieldProps.js.map +1 -0
  96. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts +5 -1
  97. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -1
  98. package/dist/providers/InstructionsProvider/InstructionsProvider.js +12 -7
  99. package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
  100. package/dist/providers/InstructionsProvider/useInstructions.d.ts +2 -2
  101. package/dist/providers/InstructionsProvider/useInstructions.d.ts.map +1 -1
  102. package/dist/providers/InstructionsProvider/useInstructions.js +17 -4
  103. package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -1
  104. package/dist/types.d.ts +9 -41
  105. package/dist/types.d.ts.map +1 -1
  106. package/dist/types.js +1 -4
  107. package/dist/types.js.map +1 -1
  108. package/dist/ui/Compose/Compose.d.ts +9 -0
  109. package/dist/ui/Compose/Compose.d.ts.map +1 -0
  110. package/dist/ui/{Actions/Actions.js → Compose/Compose.js} +49 -39
  111. package/dist/ui/Compose/Compose.js.map +1 -0
  112. package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts.map +1 -1
  113. package/dist/ui/{Actions → Compose}/UndoRedoActions.js +15 -2
  114. package/dist/ui/Compose/UndoRedoActions.js.map +1 -0
  115. package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts +1 -1
  116. package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts.map +1 -1
  117. package/dist/ui/{Actions → Compose}/hooks/menu/Item.js +2 -2
  118. package/dist/ui/{Actions → Compose}/hooks/menu/Item.js.map +1 -1
  119. package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts.map +1 -0
  120. package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.js +11 -11
  121. package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -0
  122. package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts +8 -8
  123. package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts.map +1 -1
  124. package/dist/ui/{Actions → Compose}/hooks/menu/items.js.map +1 -1
  125. package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.d.ts +1 -1
  126. package/dist/ui/Compose/hooks/menu/itemsMap.d.ts.map +1 -0
  127. package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.js +1 -2
  128. package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -0
  129. package/dist/ui/Compose/hooks/menu/useMenu.d.ts.map +1 -0
  130. package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.js +2 -1
  131. package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -0
  132. package/dist/ui/{Actions → Compose}/hooks/useGenerate.d.ts +3 -1
  133. package/dist/ui/Compose/hooks/useGenerate.d.ts.map +1 -0
  134. package/dist/ui/{Actions → Compose}/hooks/useGenerate.js +19 -24
  135. package/dist/ui/Compose/hooks/useGenerate.js.map +1 -0
  136. package/dist/ui/Compose/hooks/useHistory.d.ts.map +1 -0
  137. package/dist/ui/{Actions → Compose}/hooks/useHistory.js +6 -3
  138. package/dist/ui/Compose/hooks/useHistory.js.map +1 -0
  139. package/dist/utilities/setSafeLexicalState.d.ts +2 -2
  140. package/dist/utilities/setSafeLexicalState.d.ts.map +1 -1
  141. package/dist/utilities/setSafeLexicalState.js +5 -12
  142. package/dist/utilities/setSafeLexicalState.js.map +1 -1
  143. package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
  144. package/dist/utilities/updateFieldsConfig.js +18 -6
  145. package/dist/utilities/updateFieldsConfig.js.map +1 -1
  146. package/package.json +33 -60
  147. package/dist/ai/schemas/lexical.schema.d.ts +0 -31
  148. package/dist/ai/schemas/lexical.schema.d.ts.map +0 -1
  149. package/dist/ai/schemas/lexical.schema.js +0 -102
  150. package/dist/ai/schemas/lexical.schema.js.map +0 -1
  151. package/dist/ai/utils/generateSeedPrompt.d.ts +0 -5
  152. package/dist/ai/utils/generateSeedPrompt.d.ts.map +0 -1
  153. package/dist/ai/utils/generateSeedPrompt.js.map +0 -1
  154. package/dist/fields/DescriptionField/DescriptionField.d.ts +0 -4
  155. package/dist/fields/DescriptionField/DescriptionField.d.ts.map +0 -1
  156. package/dist/fields/DescriptionField/DescriptionField.js +0 -18
  157. package/dist/fields/DescriptionField/DescriptionField.js.map +0 -1
  158. package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts +0 -2
  159. package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts.map +0 -1
  160. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js +0 -15
  161. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js.map +0 -1
  162. package/dist/ui/Actions/Actions.d.ts +0 -5
  163. package/dist/ui/Actions/Actions.d.ts.map +0 -1
  164. package/dist/ui/Actions/Actions.js.map +0 -1
  165. package/dist/ui/Actions/UndoRedoActions.js.map +0 -1
  166. package/dist/ui/Actions/hooks/menu/TranslateMenu.d.ts.map +0 -1
  167. package/dist/ui/Actions/hooks/menu/TranslateMenu.js.map +0 -1
  168. package/dist/ui/Actions/hooks/menu/itemsMap.d.ts.map +0 -1
  169. package/dist/ui/Actions/hooks/menu/itemsMap.js.map +0 -1
  170. package/dist/ui/Actions/hooks/menu/useMenu.d.ts.map +0 -1
  171. package/dist/ui/Actions/hooks/menu/useMenu.js.map +0 -1
  172. package/dist/ui/Actions/hooks/useGenerate.d.ts.map +0 -1
  173. package/dist/ui/Actions/hooks/useGenerate.js.map +0 -1
  174. package/dist/ui/Actions/hooks/useHistory.d.ts.map +0 -1
  175. package/dist/ui/Actions/hooks/useHistory.js.map +0 -1
  176. package/dist/utilities/jsonToZod.d.ts +0 -3
  177. package/dist/utilities/jsonToZod.d.ts.map +0 -1
  178. package/dist/utilities/jsonToZod.js +0 -33
  179. package/dist/utilities/jsonToZod.js.map +0 -1
  180. /package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts +0 -0
  181. /package/dist/ui/{Actions/actions.module.scss → Compose/compose.module.scss} +0 -0
  182. /package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.d.ts +0 -0
  183. /package/dist/ui/{Actions → Compose}/hooks/menu/items.js +0 -0
  184. /package/dist/ui/{Actions → Compose}/hooks/menu/menu.module.scss +0 -0
  185. /package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.d.ts +0 -0
  186. /package/dist/ui/{Actions → Compose}/hooks/useHistory.d.ts +0 -0
@@ -1,13 +1,13 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEditorConfigContext } from '@payloadcms/richtext-lexical/client';
4
- import { Popup, useDocumentDrawer, useField, useFieldProps } from '@payloadcms/ui';
4
+ import { FieldDescription, Popup, useDocumentDrawer, useField } from '@payloadcms/ui';
5
5
  import React, { useCallback, useEffect, useRef, useState } from 'react';
6
6
  import { PLUGIN_INSTRUCTIONS_TABLE } from '../../defaults.js';
7
7
  import { setSafeLexicalState } from '../../utilities/setSafeLexicalState.js';
8
8
  import { PluginIcon } from '../Icons/Icons.js';
9
9
  import { UndoRedoActions } from './UndoRedoActions.js';
10
- import styles from './actions.module.scss';
10
+ import styles from './compose.module.scss';
11
11
  import { useMenu } from './hooks/menu/useMenu.js';
12
12
  import { useGenerate } from './hooks/useGenerate.js';
13
13
  function findParentWithClass(element, className) {
@@ -22,12 +22,12 @@ function findParentWithClass(element, className) {
22
22
  // Recursively call the function on the parent element
23
23
  return findParentWithClass(element.parentElement, className);
24
24
  }
25
- export const Actions = ({ descriptionProps = {}, instructionId })=>{
25
+ export const Compose = ({ descriptionProps, instructionId })=>{
26
26
  const [DocumentDrawer, _, { closeDrawer, openDrawer }] = useDocumentDrawer({
27
27
  id: instructionId,
28
28
  collectionSlug: PLUGIN_INSTRUCTIONS_TABLE
29
29
  });
30
- const { type: fieldType, path: pathFromContext, schemaPath } = useFieldProps();
30
+ const { field: { type: fieldType }, path: pathFromContext, schemaPath } = descriptionProps || {};
31
31
  const { editor: lexicalEditor, editorContainerRef } = useEditorConfigContext();
32
32
  // Below snippet is used to show/hide the actions menu on AI enabled fields
33
33
  const [input, setInput] = useState(null);
@@ -70,7 +70,9 @@ export const Actions = ({ descriptionProps = {}, instructionId })=>{
70
70
  actionsRef
71
71
  ]);
72
72
  const [isProcessing, setIsProcessing] = useState(false);
73
- const { generate, isLoading } = useGenerate();
73
+ const { generate, isLoading } = useGenerate({
74
+ instructionId
75
+ });
74
76
  const { ActiveComponent, Menu } = useMenu({
75
77
  onCompose: async ()=>{
76
78
  console.log('Composing...');
@@ -113,14 +115,14 @@ export const Actions = ({ descriptionProps = {}, instructionId })=>{
113
115
  });
114
116
  },
115
117
  onTranslate: async (data)=>{
116
- console.log('Translating...', data);
118
+ console.log('Translating...');
117
119
  await generate({
118
120
  action: 'Translate',
119
121
  params: data
120
122
  });
121
123
  }
122
124
  });
123
- const { setValue, value } = useField({
125
+ const { setValue } = useField({
124
126
  path: pathFromContext
125
127
  });
126
128
  const setIfValueIsLexicalState = useCallback((val)=>{
@@ -129,41 +131,49 @@ export const Actions = ({ descriptionProps = {}, instructionId })=>{
129
131
  }
130
132
  // DO NOT PROVIDE lexicalEditor as a dependency, it freaks out and does not update the editor after first undo/redo
131
133
  }, []);
132
- return /*#__PURE__*/ _jsx(React.Fragment, {
133
- children: /*#__PURE__*/ _jsxs("label", {
134
- className: `${styles.actions}`,
135
- onClick: (e)=>e.preventDefault(),
136
- ref: actionsRef,
137
- children: [
138
- /*#__PURE__*/ _jsx(DocumentDrawer, {
139
- onSave: ()=>{
140
- closeDrawer();
141
- }
142
- }),
143
- /*#__PURE__*/ _jsx(Popup, {
144
- button: /*#__PURE__*/ _jsx(PluginIcon, {
134
+ return /*#__PURE__*/ _jsxs(React.Fragment, {
135
+ children: [
136
+ /*#__PURE__*/ _jsxs("label", {
137
+ className: `${styles.actions}`,
138
+ onClick: (e)=>e.preventDefault(),
139
+ ref: actionsRef,
140
+ role: "presentation",
141
+ children: [
142
+ /*#__PURE__*/ _jsx(DocumentDrawer, {
143
+ onSave: ()=>{
144
+ closeDrawer();
145
+ }
146
+ }),
147
+ /*#__PURE__*/ _jsx(Popup, {
148
+ button: /*#__PURE__*/ _jsx(PluginIcon, {
149
+ isLoading: isProcessing || isLoading
150
+ }),
151
+ render: ({ close })=>{
152
+ return /*#__PURE__*/ _jsx(Menu, {
153
+ isLoading: isProcessing || isLoading,
154
+ onClose: close
155
+ });
156
+ },
157
+ verticalAlign: "bottom"
158
+ }),
159
+ /*#__PURE__*/ _jsx(ActiveComponent, {
145
160
  isLoading: isProcessing || isLoading
146
161
  }),
147
- render: ({ close })=>{
148
- return /*#__PURE__*/ _jsx(Menu, {
149
- isLoading: isProcessing || isLoading,
150
- onClose: close
151
- });
152
- },
153
- verticalAlign: "bottom"
154
- }),
155
- /*#__PURE__*/ _jsx(ActiveComponent, {
156
- isLoading: isProcessing || isLoading
157
- }),
158
- /*#__PURE__*/ _jsx(UndoRedoActions, {
159
- onChange: (val)=>{
160
- setValue(val);
161
- setIfValueIsLexicalState(val);
162
- }
162
+ /*#__PURE__*/ _jsx(UndoRedoActions, {
163
+ onChange: (val)=>{
164
+ setValue(val);
165
+ setIfValueIsLexicalState(val);
166
+ }
167
+ })
168
+ ]
169
+ }),
170
+ descriptionProps ? /*#__PURE__*/ _jsx("div", {
171
+ children: /*#__PURE__*/ _jsx(FieldDescription, {
172
+ ...descriptionProps
163
173
  })
164
- ]
165
- })
174
+ }) : null
175
+ ]
166
176
  });
167
177
  };
168
178
 
169
- //# sourceMappingURL=Actions.js.map
179
+ //# sourceMappingURL=Compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/ui/Compose/Compose.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldDescriptionServerProps } from 'payload'\nimport type { FC } from 'react'\n\nimport { useEditorConfigContext } from '@payloadcms/richtext-lexical/client'\nimport { FieldDescription, Popup, useDocumentDrawer, useField } from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { PLUGIN_INSTRUCTIONS_TABLE } from '../../defaults.js'\nimport { setSafeLexicalState } from '../../utilities/setSafeLexicalState.js'\nimport { PluginIcon } from '../Icons/Icons.js'\nimport { UndoRedoActions } from './UndoRedoActions.js'\nimport styles from './compose.module.scss'\nimport { useMenu } from './hooks/menu/useMenu.js'\nimport { useGenerate } from './hooks/useGenerate.js'\n\nfunction findParentWithClass(element, className) {\n // Base case: if the element is null or we've reached the top of the DOM\n if (!element || element === document.body) {\n return null\n }\n\n // Check if the current element has the class we're looking for\n if (element.classList.contains(className)) {\n return element\n }\n\n // Recursively call the function on the parent element\n return findParentWithClass(element.parentElement, className)\n}\n\ntype ComposeProps = {\n descriptionProps?: FieldDescriptionServerProps\n instructionId: string\n}\n\nexport const Compose: FC<ComposeProps> = ({ descriptionProps, instructionId }) => {\n const [DocumentDrawer, _, { closeDrawer, openDrawer }] = useDocumentDrawer({\n id: instructionId,\n collectionSlug: PLUGIN_INSTRUCTIONS_TABLE,\n })\n\n const {\n field: { type: fieldType },\n path: pathFromContext,\n schemaPath,\n } = descriptionProps || {} as FieldDescriptionServerProps\n const { editor: lexicalEditor, editorContainerRef } = useEditorConfigContext()\n\n // Below snippet is used to show/hide the actions menu on AI enabled fields\n const [input, setInput] = useState(null)\n const actionsRef = useRef(null)\n\n // Set input element for current field\n useEffect(() => {\n if (!actionsRef.current) return\n\n const fieldId = `field-${pathFromContext.replace(/\\./g, '__')}`\n const inputElement = document.getElementById(fieldId)\n\n if (!inputElement && fieldType === 'richText') {\n setInput(editorContainerRef.current)\n } else {\n actionsRef.current.setAttribute('for', fieldId)\n setInput(inputElement)\n }\n }, [pathFromContext, schemaPath, actionsRef, editorContainerRef])\n\n // Show or hide actions menu on field\n useEffect(() => {\n if (!input || !actionsRef.current) return\n\n actionsRef.current.classList.add(styles.actions_hidden)\n input.addEventListener('click', (event) => {\n document.querySelectorAll('.ai-plugin-active')?.forEach((element) => {\n const actionElement = element.querySelector(`.${styles.actions}`)\n if (actionElement) {\n actionElement.classList.add(styles.actions_hidden)\n element.classList.remove('ai-plugin-active')\n }\n })\n\n actionsRef.current.classList.remove(styles.actions_hidden)\n const parentWithClass = findParentWithClass(event.target, 'field-type')\n parentWithClass.classList.add('ai-plugin-active')\n })\n }, [input, actionsRef])\n\n const [isProcessing, setIsProcessing] = useState(false)\n const { generate, isLoading } = useGenerate({instructionId})\n\n const { ActiveComponent, Menu } = useMenu({\n onCompose: async () => {\n console.log('Composing...')\n setIsProcessing(true)\n await generate({\n action: 'Compose',\n }).finally(() => {\n setIsProcessing(false)\n })\n },\n onExpand: async () => {\n console.log('Expanding...')\n await generate({\n action: 'Expand',\n })\n },\n onProofread: async () => {\n console.log('Proofreading...')\n await generate({\n action: 'Proofread',\n })\n },\n onRephrase: async () => {\n console.log('Rephrasing...')\n await generate({\n action: 'Rephrase',\n })\n },\n onSettings: openDrawer,\n onSimplify: async () => {\n console.log('Simplifying...')\n await generate({\n action: 'Simplify',\n })\n },\n onSummarize: async () => {\n console.log('Summarizing...')\n await generate({\n action: 'Summarize',\n })\n },\n onTranslate: async (data) => {\n console.log('Translating...')\n await generate({\n action: 'Translate',\n params: data,\n })\n },\n })\n\n const { setValue } = useField<string>({\n path: pathFromContext,\n })\n\n const setIfValueIsLexicalState = useCallback((val: any) => {\n if (val.root && lexicalEditor) {\n setSafeLexicalState(JSON.stringify(val), lexicalEditor)\n }\n\n // DO NOT PROVIDE lexicalEditor as a dependency, it freaks out and does not update the editor after first undo/redo\n }, [])\n\n return (\n <React.Fragment>\n <label\n className={`${styles.actions}`}\n onClick={(e) => e.preventDefault()}\n ref={actionsRef}\n role=\"presentation\"\n >\n <DocumentDrawer\n onSave={() => {\n closeDrawer()\n }}\n />\n <Popup\n button={<PluginIcon isLoading={isProcessing || isLoading} />}\n render={({ close }) => {\n return <Menu isLoading={isProcessing || isLoading} onClose={close} />\n }}\n verticalAlign=\"bottom\"\n />\n <ActiveComponent isLoading={isProcessing || isLoading} />\n <UndoRedoActions\n onChange={(val) => {\n setValue(val)\n setIfValueIsLexicalState(val)\n }}\n />\n </label>\n {/*Render incoming description field*/}\n {descriptionProps ? (\n <div>\n <FieldDescription {...descriptionProps} />\n </div>\n ) : null}\n </React.Fragment>\n )\n}\n"],"names":["useEditorConfigContext","FieldDescription","Popup","useDocumentDrawer","useField","React","useCallback","useEffect","useRef","useState","PLUGIN_INSTRUCTIONS_TABLE","setSafeLexicalState","PluginIcon","UndoRedoActions","styles","useMenu","useGenerate","findParentWithClass","element","className","document","body","classList","contains","parentElement","Compose","descriptionProps","instructionId","DocumentDrawer","_","closeDrawer","openDrawer","id","collectionSlug","field","type","fieldType","path","pathFromContext","schemaPath","editor","lexicalEditor","editorContainerRef","input","setInput","actionsRef","current","fieldId","replace","inputElement","getElementById","setAttribute","add","actions_hidden","addEventListener","event","querySelectorAll","forEach","actionElement","querySelector","actions","remove","parentWithClass","target","isProcessing","setIsProcessing","generate","isLoading","ActiveComponent","Menu","onCompose","console","log","action","finally","onExpand","onProofread","onRephrase","onSettings","onSimplify","onSummarize","onTranslate","data","params","setValue","setIfValueIsLexicalState","val","root","JSON","stringify","Fragment","label","onClick","e","preventDefault","ref","role","onSave","button","render","close","onClose","verticalAlign","onChange","div"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UndoRedoActions.d.ts","sourceRoot":"","sources":["../../../src/ui/Actions/UndoRedoActions.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,iBAAkB;IAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,4CAuCjF,CAAA"}
1
+ {"version":3,"file":"UndoRedoActions.d.ts","sourceRoot":"","sources":["../../../src/ui/Compose/UndoRedoActions.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,iBAAkB;IAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,4CA0DjF,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useHistory } from './hooks/useHistory.js';
3
- import React, { useCallback } from 'react';
3
+ import React, { useCallback, useEffect, useState } from 'react';
4
4
  export const UndoRedoActions = ({ onChange })=>{
5
5
  const { canRedo, canUndo, redo, undo } = useHistory();
6
6
  const redoHistoryValue = useCallback((event)=>{
@@ -21,19 +21,32 @@ export const UndoRedoActions = ({ onChange })=>{
21
21
  }, [
22
22
  undo
23
23
  ]);
24
- if (!canUndo && !canRedo) return null;
24
+ // Delay rendering until the client-side hydration is complete
25
+ const [isMounted, setIsMounted] = useState(false);
26
+ useEffect(()=>{
27
+ setIsMounted(true);
28
+ }, []);
29
+ if (!isMounted || !canUndo && !canRedo) return null;
25
30
  return /*#__PURE__*/ _jsxs(_Fragment, {
26
31
  children: [
27
32
  /*#__PURE__*/ _jsx("button", {
28
33
  onClick: undoHistoryValue,
29
34
  type: "button",
30
35
  disabled: !canUndo,
36
+ className: `btn btn--size-small btn--style-secondary ${!canUndo && 'btn--disabled'}`,
37
+ style: {
38
+ marginBlock: 0
39
+ },
31
40
  children: "Undo"
32
41
  }),
33
42
  /*#__PURE__*/ _jsx("button", {
34
43
  onClick: redoHistoryValue,
35
44
  type: "button",
36
45
  disabled: !canRedo,
46
+ className: `btn btn--size-small btn--style-secondary ${!canRedo && 'btn--disabled'}`,
47
+ style: {
48
+ marginBlock: 0
49
+ },
37
50
  children: "Redo"
38
51
  })
39
52
  ]
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/ui/Compose/UndoRedoActions.tsx"],"sourcesContent":["import { useHistory } from './hooks/useHistory.js'\nimport React, { MouseEventHandler, useCallback, useEffect, useState } from 'react'\n\nexport const UndoRedoActions = ({ onChange }: { onChange: (val: unknown) => void }) => {\n const { canRedo, canUndo, redo, undo } = useHistory()\n\n const redoHistoryValue = useCallback<MouseEventHandler>(\n (event) => {\n event.stopPropagation()\n\n const value = redo()\n if (value) {\n onChange(value)\n }\n },\n [redo],\n )\n\n const undoHistoryValue = useCallback<MouseEventHandler>(\n (event) => {\n event.stopPropagation()\n\n const value = undo()\n if (value) {\n onChange(value)\n }\n },\n [undo],\n )\n\n // Delay rendering until the client-side hydration is complete\n const [isMounted, setIsMounted] = useState(false)\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n if (!isMounted || (!canUndo && !canRedo)) return null\n\n return (\n <>\n <button\n onClick={undoHistoryValue}\n type=\"button\"\n disabled={!canUndo}\n className={`btn btn--size-small btn--style-secondary ${!canUndo && 'btn--disabled'}`}\n style={{ marginBlock: 0 }}\n >\n Undo\n </button>\n <button\n onClick={redoHistoryValue}\n type=\"button\"\n disabled={!canRedo}\n className={`btn btn--size-small btn--style-secondary ${!canRedo && 'btn--disabled'}`}\n style={{ marginBlock: 0 }}\n >\n Redo\n </button>\n </>\n )\n}\n"],"names":["useHistory","React","useCallback","useEffect","useState","UndoRedoActions","onChange","canRedo","canUndo","redo","undo","redoHistoryValue","event","stopPropagation","value","undoHistoryValue","isMounted","setIsMounted","button","onClick","type","disabled","className","style","marginBlock"],"mappings":";AAAA,SAASA,UAAU,QAAQ,wBAAuB;AAClD,OAAOC,SAA4BC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElF,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,QAAQ,EAAwC;IAChF,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAGV;IAEzC,MAAMW,mBAAmBT,YACvB,CAACU;QACCA,MAAMC,eAAe;QAErB,MAAMC,QAAQL;QACd,IAAIK,OAAO;YACTR,SAASQ;QACX;IACF,GACA;QAACL;KAAK;IAGR,MAAMM,mBAAmBb,YACvB,CAACU;QACCA,MAAMC,eAAe;QAErB,MAAMC,QAAQJ;QACd,IAAII,OAAO;YACTR,SAASQ;QACX;IACF,GACA;QAACJ;KAAK;IAGR,8DAA8D;IAC9D,MAAM,CAACM,WAAWC,aAAa,GAAGb,SAAS;IAE3CD,UAAU;QACRc,aAAa;IACf,GAAG,EAAE;IAEL,IAAI,CAACD,aAAc,CAACR,WAAW,CAACD,SAAU,OAAO;IAEjD,qBACE;;0BACE,KAACW;gBACCC,SAASJ;gBACTK,MAAK;gBACLC,UAAU,CAACb;gBACXc,WAAW,CAAC,yCAAyC,EAAE,CAACd,WAAW,iBAAiB;gBACpFe,OAAO;oBAAEC,aAAa;gBAAE;0BACzB;;0BAGD,KAACN;gBACCC,SAASR;gBACTS,MAAK;gBACLC,UAAU,CAACd;gBACXe,WAAW,CAAC,yCAAyC,EAAE,CAACf,WAAW,iBAAiB;gBACpFgB,OAAO;oBAAEC,aAAa;gBAAE;0BACzB;;;;AAKP,EAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import type { BaseItemProps } from '../../../../types.js';
3
3
  export declare const Item: React.FC<BaseItemProps>;
4
- export declare const createMenuItem: (IconComponent: any, initialText: any) => React.MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
4
+ export declare const createMenuItem: (IconComponent: any, initialText: any) => React.MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
5
5
  //# sourceMappingURL=Item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Actions/hooks/menu/Item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAA;AAEnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKzD,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAaxC,CAAA;AAED,eAAO,MAAM,cAAc,mIACyC,aAAa,6CAM7E,CAAA"}
1
+ {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Compose/hooks/menu/Item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAA;AAEnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKzD,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAaxC,CAAA;AAED,eAAO,MAAM,cAAc,mIACyC,aAAa,6CAM7E,CAAA"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { memo } from 'react';
3
3
  import { ArrowIcon } from '../../../Icons/Icons.js';
4
4
  import styles from './menu.module.scss';
5
- export const Item = /*#__PURE__*/ memo(({ children, disabled, onClick, isActive, ...rest })=>/*#__PURE__*/ _jsx("span", {
5
+ export const Item = /*#__PURE__*/ memo(({ children, disabled, isActive, onClick, ...rest })=>/*#__PURE__*/ _jsx("span", {
6
6
  className: styles.generate_button + ' ' + (isActive ? styles.active : ''),
7
7
  "data-disabled": disabled,
8
8
  onClick: !disabled ? onClick : null,
@@ -11,7 +11,7 @@ export const Item = /*#__PURE__*/ memo(({ children, disabled, onClick, isActive,
11
11
  ...rest,
12
12
  children: children
13
13
  }));
14
- export const createMenuItem = (IconComponent, initialText)=>/*#__PURE__*/ memo(({ children, disabled, hideIcon, onClick, isMenu, ...rest })=>/*#__PURE__*/ _jsxs(Item, {
14
+ export const createMenuItem = (IconComponent, initialText)=>/*#__PURE__*/ memo(({ children, disabled, hideIcon, isMenu, onClick, ...rest })=>/*#__PURE__*/ _jsxs(Item, {
15
15
  disabled: disabled,
16
16
  onClick: onClick,
17
17
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/ui/Actions/hooks/menu/Item.tsx"],"sourcesContent":["import React, { memo } from 'react'\n\nimport type { BaseItemProps } from '../../../../types.js'\n\nimport { ArrowIcon } from '../../../Icons/Icons.js'\nimport styles from './menu.module.scss'\n\nexport const Item: React.FC<BaseItemProps> = memo(\n ({ children, disabled, onClick, isActive, ...rest }) => (\n <span\n className={styles.generate_button + ' ' + (isActive ? styles.active : '')}\n data-disabled={disabled}\n onClick={!disabled ? onClick : null}\n onKeyDown={!disabled ? onClick : null}\n role=\"presentation\"\n {...rest}\n >\n {children}\n </span>\n ),\n)\n\nexport const createMenuItem = (IconComponent, initialText) =>\n memo(({ children, disabled, hideIcon, onClick, isMenu, ...rest }: BaseItemProps) => (\n <Item disabled={disabled} onClick={onClick} {...rest}>\n {hideIcon || <IconComponent size={18} />}\n {children || <span className={styles.text}>{initialText}</span>}\n {isMenu && <ArrowIcon size={18} />}\n </Item>\n ))\n"],"names":["React","memo","ArrowIcon","styles","Item","children","disabled","onClick","isActive","rest","span","className","generate_button","active","data-disabled","onKeyDown","role","createMenuItem","IconComponent","initialText","hideIcon","isMenu","size","text"],"mappings":";AAAA,OAAOA,SAASC,IAAI,QAAQ,QAAO;AAInC,SAASC,SAAS,QAAQ,0BAAyB;AACnD,OAAOC,YAAY,qBAAoB;AAEvC,OAAO,MAAMC,qBAAgCH,KAC3C,CAAC,EAAEI,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,EAAE,GAAGC,MAAM,iBACjD,KAACC;QACCC,WAAWR,OAAOS,eAAe,GAAG,MAAOJ,CAAAA,WAAWL,OAAOU,MAAM,GAAG,EAAC;QACvEC,iBAAeR;QACfC,SAAS,CAACD,WAAWC,UAAU;QAC/BQ,WAAW,CAACT,WAAWC,UAAU;QACjCS,MAAK;QACJ,GAAGP,IAAI;kBAEPJ;QAGN;AAED,OAAO,MAAMY,iBAAiB,CAACC,eAAeC,4BAC5ClB,KAAK,CAAC,EAAEI,QAAQ,EAAEC,QAAQ,EAAEc,QAAQ,EAAEb,OAAO,EAAEc,MAAM,EAAE,GAAGZ,MAAqB,iBAC7E,MAACL;YAAKE,UAAUA;YAAUC,SAASA;YAAU,GAAGE,IAAI;;gBACjDW,0BAAY,KAACF;oBAAcI,MAAM;;gBACjCjB,0BAAY,KAACK;oBAAKC,WAAWR,OAAOoB,IAAI;8BAAGJ;;gBAC3CE,wBAAU,KAACnB;oBAAUoB,MAAM;;;YAE9B"}
1
+ {"version":3,"sources":["../../../../../src/ui/Compose/hooks/menu/Item.tsx"],"sourcesContent":["import React, { memo } from 'react'\n\nimport type { BaseItemProps } from '../../../../types.js'\n\nimport { ArrowIcon } from '../../../Icons/Icons.js'\nimport styles from './menu.module.scss'\n\nexport const Item: React.FC<BaseItemProps> = memo(\n ({ children, disabled, isActive, onClick, ...rest }) => (\n <span\n className={styles.generate_button + ' ' + (isActive ? styles.active : '')}\n data-disabled={disabled}\n onClick={!disabled ? onClick : null}\n onKeyDown={!disabled ? onClick : null}\n role=\"presentation\"\n {...rest}\n >\n {children}\n </span>\n ),\n)\n\nexport const createMenuItem = (IconComponent, initialText) =>\n memo(({ children, disabled, hideIcon, isMenu, onClick, ...rest }: BaseItemProps) => (\n <Item disabled={disabled} onClick={onClick} {...rest}>\n {hideIcon || <IconComponent size={18} />}\n {children || <span className={styles.text}>{initialText}</span>}\n {isMenu && <ArrowIcon size={18} />}\n </Item>\n ))\n"],"names":["React","memo","ArrowIcon","styles","Item","children","disabled","isActive","onClick","rest","span","className","generate_button","active","data-disabled","onKeyDown","role","createMenuItem","IconComponent","initialText","hideIcon","isMenu","size","text"],"mappings":";AAAA,OAAOA,SAASC,IAAI,QAAQ,QAAO;AAInC,SAASC,SAAS,QAAQ,0BAAyB;AACnD,OAAOC,YAAY,qBAAoB;AAEvC,OAAO,MAAMC,qBAAgCH,KAC3C,CAAC,EAAEI,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,EAAE,GAAGC,MAAM,iBACjD,KAACC;QACCC,WAAWR,OAAOS,eAAe,GAAG,MAAOL,CAAAA,WAAWJ,OAAOU,MAAM,GAAG,EAAC;QACvEC,iBAAeR;QACfE,SAAS,CAACF,WAAWE,UAAU;QAC/BO,WAAW,CAACT,WAAWE,UAAU;QACjCQ,MAAK;QACJ,GAAGP,IAAI;kBAEPJ;QAGN;AAED,OAAO,MAAMY,iBAAiB,CAACC,eAAeC,4BAC5ClB,KAAK,CAAC,EAAEI,QAAQ,EAAEC,QAAQ,EAAEc,QAAQ,EAAEC,MAAM,EAAEb,OAAO,EAAE,GAAGC,MAAqB,iBAC7E,MAACL;YAAKE,UAAUA;YAAUE,SAASA;YAAU,GAAGC,IAAI;;gBACjDW,0BAAY,KAACF;oBAAcI,MAAM;;gBACjCjB,0BAAY,KAACK;oBAAKC,WAAWR,OAAOoB,IAAI;8BAAGJ;;gBAC3CE,wBAAU,KAACnB;oBAAUoB,MAAM;;;YAE9B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranslateMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Compose/hooks/menu/TranslateMenu.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa;;6CA0EzB,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState } from 'react';
3
2
  import locales from 'locale-codes';
4
- import { Translate } from './items.js';
3
+ import React, { useState } from 'react';
5
4
  import { Item } from './Item.js';
5
+ import { Translate } from './items.js';
6
6
  import styles from './menu.module.scss';
7
7
  export const TranslateMenu = ({ onClick })=>{
8
8
  const [show, setShow] = useState(false);
@@ -20,12 +20,12 @@ export const TranslateMenu = ({ onClick })=>{
20
20
  },
21
21
  children: [
22
22
  /*#__PURE__*/ _jsx(Translate, {
23
+ isActive: show,
24
+ isMenu: true,
23
25
  onClick: ()=>{
24
26
  setShow(!show);
25
27
  },
26
- onMouseEnter: ()=>setShow(true),
27
- isMenu: true,
28
- isActive: show
28
+ onMouseEnter: ()=>setShow(true)
29
29
  }),
30
30
  /*#__PURE__*/ _jsx("div", {
31
31
  className: styles.hoverMenu,
@@ -36,15 +36,13 @@ export const TranslateMenu = ({ onClick })=>{
36
36
  /*#__PURE__*/ _jsx(Item, {
37
37
  onClick: ()=>{},
38
38
  style: {
39
- position: 'sticky',
40
- top: 0,
39
+ background: 'transparent',
41
40
  padding: '0 0 5px 0',
42
- background: 'transparent'
41
+ position: 'sticky',
42
+ top: 0
43
43
  },
44
44
  children: /*#__PURE__*/ _jsx("input", {
45
45
  className: styles.menuInput,
46
- placeholder: 'Search...',
47
- onFocus: ()=>setInputFocus(true),
48
46
  onBlur: ()=>setInputFocus(false),
49
47
  onChange: (event)=>{
50
48
  const value = event.target.value;
@@ -52,7 +50,9 @@ export const TranslateMenu = ({ onClick })=>{
52
50
  const lowerCaseValue = value.toLowerCase();
53
51
  return l.name.toLowerCase().startsWith(lowerCaseValue) || l.location.toLowerCase().startsWith(lowerCaseValue) || l.tag.toLowerCase().startsWith(lowerCaseValue);
54
52
  }));
55
- }
53
+ },
54
+ onFocus: ()=>setInputFocus(true),
55
+ placeholder: "Search..."
56
56
  })
57
57
  }),
58
58
  languages.map((locale)=>{
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/ui/Compose/hooks/menu/TranslateMenu.tsx"],"sourcesContent":["import locales from 'locale-codes'\nimport React, { useState } from 'react'\n\nimport { Item } from './Item.js'\nimport { Translate } from './items.js'\nimport styles from './menu.module.scss'\n\nexport const TranslateMenu = ({ onClick }) => {\n const [show, setShow] = useState(false)\n\n const filteredLocales = locales.all.filter((a) => {\n return a.tag && a.location\n })\n\n const [languages, setLanguages] = useState(filteredLocales)\n const [inputFocus, setInputFocus] = useState(false)\n\n return (\n <div\n className={styles.menu}\n onMouseLeave={() => {\n if (!inputFocus) {\n setShow(false)\n }\n }}\n >\n <Translate\n isActive={show}\n isMenu\n onClick={() => {\n setShow(!show)\n }}\n onMouseEnter={() => setShow(true)}\n />\n <div className={styles.hoverMenu} data-show={show}>\n <div className={`${styles.menu} ${styles.subMenu}`}>\n <Item\n onClick={() => {}}\n style={{\n background: 'transparent',\n padding: '0 0 5px 0',\n position: 'sticky',\n top: 0,\n }}\n >\n <input\n className={styles.menuInput}\n onBlur={() => setInputFocus(false)}\n onChange={(event) => {\n const value = event.target.value\n setLanguages(\n filteredLocales.filter((l) => {\n const lowerCaseValue = value.toLowerCase()\n return (\n l.name.toLowerCase().startsWith(lowerCaseValue) ||\n l.location.toLowerCase().startsWith(lowerCaseValue) ||\n l.tag.toLowerCase().startsWith(lowerCaseValue)\n )\n }),\n )\n }}\n onFocus={() => setInputFocus(true)}\n placeholder=\"Search...\"\n />\n </Item>\n {languages.map((locale) => {\n return (\n <Item\n key={locale.tag}\n onClick={() => {\n onClick({ locale: locale.tag })\n }}\n >\n <span className={styles.ellipsis}>{`${locale.location} (${locale.tag})`}</span>\n </Item>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n"],"names":["locales","React","useState","Item","Translate","styles","TranslateMenu","onClick","show","setShow","filteredLocales","all","filter","a","tag","location","languages","setLanguages","inputFocus","setInputFocus","div","className","menu","onMouseLeave","isActive","isMenu","onMouseEnter","hoverMenu","data-show","subMenu","style","background","padding","position","top","input","menuInput","onBlur","onChange","event","value","target","l","lowerCaseValue","toLowerCase","name","startsWith","onFocus","placeholder","map","locale","span","ellipsis"],"mappings":";AAAA,OAAOA,aAAa,eAAc;AAClC,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,IAAI,QAAQ,YAAW;AAChC,SAASC,SAAS,QAAQ,aAAY;AACtC,OAAOC,YAAY,qBAAoB;AAEvC,OAAO,MAAMC,gBAAgB,CAAC,EAAEC,OAAO,EAAE;IACvC,MAAM,CAACC,MAAMC,QAAQ,GAAGP,SAAS;IAEjC,MAAMQ,kBAAkBV,QAAQW,GAAG,CAACC,MAAM,CAAC,CAACC;QAC1C,OAAOA,EAAEC,GAAG,IAAID,EAAEE,QAAQ;IAC5B;IAEA,MAAM,CAACC,WAAWC,aAAa,GAAGf,SAASQ;IAC3C,MAAM,CAACQ,YAAYC,cAAc,GAAGjB,SAAS;IAE7C,qBACE,MAACkB;QACCC,WAAWhB,OAAOiB,IAAI;QACtBC,cAAc;YACZ,IAAI,CAACL,YAAY;gBACfT,QAAQ;YACV;QACF;;0BAEA,KAACL;gBACCoB,UAAUhB;gBACViB,MAAM;gBACNlB,SAAS;oBACPE,QAAQ,CAACD;gBACX;gBACAkB,cAAc,IAAMjB,QAAQ;;0BAE9B,KAACW;gBAAIC,WAAWhB,OAAOsB,SAAS;gBAAEC,aAAWpB;0BAC3C,cAAA,MAACY;oBAAIC,WAAW,GAAGhB,OAAOiB,IAAI,CAAC,CAAC,EAAEjB,OAAOwB,OAAO,EAAE;;sCAChD,KAAC1B;4BACCI,SAAS,KAAO;4BAChBuB,OAAO;gCACLC,YAAY;gCACZC,SAAS;gCACTC,UAAU;gCACVC,KAAK;4BACP;sCAEA,cAAA,KAACC;gCACCd,WAAWhB,OAAO+B,SAAS;gCAC3BC,QAAQ,IAAMlB,cAAc;gCAC5BmB,UAAU,CAACC;oCACT,MAAMC,QAAQD,MAAME,MAAM,CAACD,KAAK;oCAChCvB,aACEP,gBAAgBE,MAAM,CAAC,CAAC8B;wCACtB,MAAMC,iBAAiBH,MAAMI,WAAW;wCACxC,OACEF,EAAEG,IAAI,CAACD,WAAW,GAAGE,UAAU,CAACH,mBAChCD,EAAE3B,QAAQ,CAAC6B,WAAW,GAAGE,UAAU,CAACH,mBACpCD,EAAE5B,GAAG,CAAC8B,WAAW,GAAGE,UAAU,CAACH;oCAEnC;gCAEJ;gCACAI,SAAS,IAAM5B,cAAc;gCAC7B6B,aAAY;;;wBAGfhC,UAAUiC,GAAG,CAAC,CAACC;4BACd,qBACE,KAAC/C;gCAECI,SAAS;oCACPA,QAAQ;wCAAE2C,QAAQA,OAAOpC,GAAG;oCAAC;gCAC/B;0CAEA,cAAA,KAACqC;oCAAK9B,WAAWhB,OAAO+C,QAAQ;8CAAG,GAAGF,OAAOnC,QAAQ,CAAC,EAAE,EAAEmC,OAAOpC,GAAG,CAAC,CAAC,CAAC;;+BALlEoC,OAAOpC,GAAG;wBAQrB;;;;;;AAKV,EAAC"}
@@ -1,9 +1,9 @@
1
- export declare const Proofread: import("react").MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
2
- export declare const Rephrase: import("react").MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
3
- export declare const Translate: import("react").MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
4
- export declare const Expand: import("react").MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
5
- export declare const Summarize: import("react").MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
6
- export declare const Simplify: import("react").MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
7
- export declare const Compose: import("react").MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
8
- export declare const Settings: import("react").MemoExoticComponent<({ children, disabled, hideIcon, onClick, isMenu, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
1
+ export declare const Proofread: import("react").MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
2
+ export declare const Rephrase: import("react").MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
3
+ export declare const Translate: import("react").MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
4
+ export declare const Expand: import("react").MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
5
+ export declare const Summarize: import("react").MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
6
+ export declare const Simplify: import("react").MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
7
+ export declare const Compose: import("react").MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
8
+ export declare const Settings: import("react").MemoExoticComponent<({ children, disabled, hideIcon, isMenu, onClick, ...rest }: import("../../../../types.js").BaseItemProps) => import("react/jsx-runtime").JSX.Element>;
9
9
  //# sourceMappingURL=items.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Actions/hooks/menu/items.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,SAAS,4LAA8C,CAAA;AACpE,eAAO,MAAM,QAAQ,4LAA2C,CAAA;AAChE,eAAO,MAAM,SAAS,4LAA6C,CAAA;AACnE,eAAO,MAAM,MAAM,4LAA0C,CAAA;AAC7D,eAAO,MAAM,SAAS,4LAA6C,CAAA;AACnE,eAAO,MAAM,QAAQ,4LAA0C,CAAA;AAC/D,eAAO,MAAM,OAAO,4LAA4C,CAAA;AAChE,eAAO,MAAM,QAAQ,4LAAuC,CAAA"}
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Compose/hooks/menu/items.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,SAAS,4LAA8C,CAAA;AACpE,eAAO,MAAM,QAAQ,4LAA2C,CAAA;AAChE,eAAO,MAAM,SAAS,4LAA6C,CAAA;AACnE,eAAO,MAAM,MAAM,4LAA0C,CAAA;AAC7D,eAAO,MAAM,SAAS,4LAA6C,CAAA;AACnE,eAAO,MAAM,QAAQ,4LAA0C,CAAA;AAC/D,eAAO,MAAM,OAAO,4LAA4C,CAAA;AAChE,eAAO,MAAM,QAAQ,4LAAuC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/ui/Actions/hooks/menu/items.tsx"],"sourcesContent":["import {\n DocsAddOnIcon,\n EditNoteIcon,\n SegmentIcon,\n SpellCheckIcon,\n StylusNoteIcon,\n SummarizeIcon,\n TranslateIcon,\n TuneIcon,\n} from '../../../Icons/Icons.js'\nimport { createMenuItem } from './Item.js'\n\nexport const Proofread = createMenuItem(SpellCheckIcon, 'Proofread')\nexport const Rephrase = createMenuItem(EditNoteIcon, 'Rephrase')\nexport const Translate = createMenuItem(TranslateIcon, 'Translate')\nexport const Expand = createMenuItem(DocsAddOnIcon, 'Expand')\nexport const Summarize = createMenuItem(SummarizeIcon, 'Summarize')\nexport const Simplify = createMenuItem(SegmentIcon, 'Simplify')\nexport const Compose = createMenuItem(StylusNoteIcon, 'Compose')\nexport const Settings = createMenuItem(TuneIcon, 'Settings')\n"],"names":["DocsAddOnIcon","EditNoteIcon","SegmentIcon","SpellCheckIcon","StylusNoteIcon","SummarizeIcon","TranslateIcon","TuneIcon","createMenuItem","Proofread","Rephrase","Translate","Expand","Summarize","Simplify","Compose","Settings"],"mappings":"AAAA,SACEA,aAAa,EACbC,YAAY,EACZC,WAAW,EACXC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,aAAa,EACbC,QAAQ,QACH,0BAAyB;AAChC,SAASC,cAAc,QAAQ,YAAW;AAE1C,OAAO,MAAMC,YAAYD,eAAeL,gBAAgB,aAAY;AACpE,OAAO,MAAMO,WAAWF,eAAeP,cAAc,YAAW;AAChE,OAAO,MAAMU,YAAYH,eAAeF,eAAe,aAAY;AACnE,OAAO,MAAMM,SAASJ,eAAeR,eAAe,UAAS;AAC7D,OAAO,MAAMa,YAAYL,eAAeH,eAAe,aAAY;AACnE,OAAO,MAAMS,WAAWN,eAAeN,aAAa,YAAW;AAC/D,OAAO,MAAMa,UAAUP,eAAeJ,gBAAgB,WAAU;AAChE,OAAO,MAAMY,WAAWR,eAAeD,UAAU,YAAW"}
1
+ {"version":3,"sources":["../../../../../src/ui/Compose/hooks/menu/items.tsx"],"sourcesContent":["import {\n DocsAddOnIcon,\n EditNoteIcon,\n SegmentIcon,\n SpellCheckIcon,\n StylusNoteIcon,\n SummarizeIcon,\n TranslateIcon,\n TuneIcon,\n} from '../../../Icons/Icons.js'\nimport { createMenuItem } from './Item.js'\n\nexport const Proofread = createMenuItem(SpellCheckIcon, 'Proofread')\nexport const Rephrase = createMenuItem(EditNoteIcon, 'Rephrase')\nexport const Translate = createMenuItem(TranslateIcon, 'Translate')\nexport const Expand = createMenuItem(DocsAddOnIcon, 'Expand')\nexport const Summarize = createMenuItem(SummarizeIcon, 'Summarize')\nexport const Simplify = createMenuItem(SegmentIcon, 'Simplify')\nexport const Compose = createMenuItem(StylusNoteIcon, 'Compose')\nexport const Settings = createMenuItem(TuneIcon, 'Settings')\n"],"names":["DocsAddOnIcon","EditNoteIcon","SegmentIcon","SpellCheckIcon","StylusNoteIcon","SummarizeIcon","TranslateIcon","TuneIcon","createMenuItem","Proofread","Rephrase","Translate","Expand","Summarize","Simplify","Compose","Settings"],"mappings":"AAAA,SACEA,aAAa,EACbC,YAAY,EACZC,WAAW,EACXC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,aAAa,EACbC,QAAQ,QACH,0BAAyB;AAChC,SAASC,cAAc,QAAQ,YAAW;AAE1C,OAAO,MAAMC,YAAYD,eAAeL,gBAAgB,aAAY;AACpE,OAAO,MAAMO,WAAWF,eAAeP,cAAc,YAAW;AAChE,OAAO,MAAMU,YAAYH,eAAeF,eAAe,aAAY;AACnE,OAAO,MAAMM,SAASJ,eAAeR,eAAe,UAAS;AAC7D,OAAO,MAAMa,YAAYL,eAAeH,eAAe,aAAY;AACnE,OAAO,MAAMS,WAAWN,eAAeN,aAAa,YAAW;AAC/D,OAAO,MAAMa,UAAUP,eAAeJ,gBAAgB,WAAU;AAChE,OAAO,MAAMY,WAAWR,eAAeD,UAAU,YAAW"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import type React from 'react';
2
2
  import type { ActionMenuItems, BaseItemProps } from '../../../../types.js';
3
3
  type MenuItemsMapType = {
4
4
  component: React.FC<BaseItemProps>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemsMap.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Compose/hooks/menu/itemsMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAK1E,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,gBAAgB,EAoB1C,CAAA"}
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
- import { Compose, Expand, Proofread, Rephrase, Settings, Simplify, Summarize } from './items.js';
3
1
  import { TranslateMenu } from './TranslateMenu.js';
2
+ import { Compose, Expand, Proofread, Rephrase, Settings, Simplify, Summarize } from './items.js';
4
3
  export const menuItemsMap = [
5
4
  {
6
5
  name: 'Proofread',
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/ui/Compose/hooks/menu/itemsMap.ts"],"sourcesContent":["import type React from 'react'\n\nimport type { ActionMenuItems, BaseItemProps } from '../../../../types.js'\n\nimport { TranslateMenu } from './TranslateMenu.js'\nimport { Compose, Expand, Proofread, Rephrase, Settings, Simplify, Summarize } from './items.js'\n\ntype MenuItemsMapType = {\n component: React.FC<BaseItemProps>\n excludedFor?: string[]\n loadingText?: string\n name: ActionMenuItems\n}\n\nexport const menuItemsMap: MenuItemsMapType[] = [\n { name: 'Proofread', component: Proofread, excludedFor: ['upload'], loadingText: 'Proofreading' },\n { name: 'Rephrase', component: Rephrase, excludedFor: ['upload'], loadingText: 'Rephrasing' },\n {\n name: 'Translate',\n component: TranslateMenu,\n excludedFor: ['upload'],\n loadingText: 'Translating',\n },\n { name: 'Expand', component: Expand, excludedFor: ['upload', 'text'], loadingText: 'Expanding' },\n {\n // Turned off - WIP\n name: 'Summarize',\n component: Summarize,\n excludedFor: ['upload', 'text', 'richText'],\n loadingText: 'Summarizing',\n },\n { name: 'Simplify', component: Simplify, excludedFor: ['upload'], loadingText: 'Simplifying' },\n { name: 'Compose', component: Compose, loadingText: 'Composing' },\n { name: 'Settings', component: Settings },\n]\n"],"names":["TranslateMenu","Compose","Expand","Proofread","Rephrase","Settings","Simplify","Summarize","menuItemsMap","name","component","excludedFor","loadingText"],"mappings":"AAIA,SAASA,aAAa,QAAQ,qBAAoB;AAClD,SAASC,OAAO,EAAEC,MAAM,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,aAAY;AAShG,OAAO,MAAMC,eAAmC;IAC9C;QAAEC,MAAM;QAAaC,WAAWP;QAAWQ,aAAa;YAAC;SAAS;QAAEC,aAAa;IAAe;IAChG;QAAEH,MAAM;QAAYC,WAAWN;QAAUO,aAAa;YAAC;SAAS;QAAEC,aAAa;IAAa;IAC5F;QACEH,MAAM;QACNC,WAAWV;QACXW,aAAa;YAAC;SAAS;QACvBC,aAAa;IACf;IACA;QAAEH,MAAM;QAAUC,WAAWR;QAAQS,aAAa;YAAC;YAAU;SAAO;QAAEC,aAAa;IAAY;IAC/F;QACE,mBAAmB;QACnBH,MAAM;QACNC,WAAWH;QACXI,aAAa;YAAC;YAAU;YAAQ;SAAW;QAC3CC,aAAa;IACf;IACA;QAAEH,MAAM;QAAYC,WAAWJ;QAAUK,aAAa;YAAC;SAAS;QAAEC,aAAa;IAAc;IAC7F;QAAEH,MAAM;QAAWC,WAAWT;QAASW,aAAa;IAAY;IAChE;QAAEH,MAAM;QAAYC,WAAWL;IAAS;CACzC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Compose/hooks/menu/useMenu.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAoB1E,eAAO,MAAM,OAAO,eAAgB,aAAa;;;;;;;;CAyEhD,CAAA"}
@@ -1,10 +1,11 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useField, useFieldProps } from '@payloadcms/ui';
3
+ import { useField } from '@payloadcms/ui';
4
4
  import React, { useEffect, useMemo, useState } from 'react';
5
5
  import { Compose, Proofread, Rephrase } from './items.js';
6
6
  import { menuItemsMap } from './itemsMap.js';
7
7
  import styles from './menu.module.scss';
8
+ import { useFieldProps } from '../../../../providers/FieldProvider/useFieldProps.js';
8
9
  const getActiveComponent = (ac)=>{
9
10
  switch(ac){
10
11
  case 'Proofread':
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/ui/Compose/hooks/menu/useMenu.tsx"],"sourcesContent":["'use client'\n\nimport { useField } from '@payloadcms/ui'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport type { ActionMenuItems, UseMenuEvents } from '../../../../types.js'\n\nimport { Compose, Proofread, Rephrase } from './items.js'\nimport { menuItemsMap } from './itemsMap.js'\nimport styles from './menu.module.scss'\nimport { useFieldProps } from '../../../../providers/FieldProvider/useFieldProps.js'\n\nconst getActiveComponent = (ac) => {\n switch (ac) {\n case 'Proofread':\n return Proofread\n case 'Rephrase':\n return Rephrase\n case 'Compose':\n return Compose\n default:\n return Rephrase\n }\n}\n\nexport const useMenu = (menuEvents: UseMenuEvents) => {\n const { type: fieldType, path: pathFromContext } = useFieldProps()\n const field = useField({ path: pathFromContext })\n const [activeComponent, setActiveComponent] = useState<ActionMenuItems>('Rephrase')\n\n const { initialValue, value } = field\n\n useEffect(() => {\n if (!value) {\n setActiveComponent('Compose')\n return\n }\n\n if (menuItemsMap.some((i) => i.excludedFor?.includes(fieldType))) {\n setActiveComponent('Compose')\n return\n }\n\n if (typeof value === 'string' && value !== initialValue) {\n setActiveComponent('Proofread')\n } else {\n setActiveComponent('Rephrase')\n }\n }, [initialValue, value, fieldType])\n\n const MemoizedActiveComponent = useMemo(() => {\n return ({ isLoading }) => {\n const ActiveComponent = getActiveComponent(activeComponent)\n const activeItem = menuItemsMap.find((i) => i.name === activeComponent)\n return (\n <ActiveComponent disabled={isLoading} hideIcon onClick={menuEvents[`on${activeComponent}`]}>\n {isLoading && activeItem.loadingText}\n </ActiveComponent>\n )\n }\n }, [activeComponent, menuEvents])\n\n const filteredMenuItems = useMemo(\n () =>\n menuItemsMap.filter((i) => i.name !== activeComponent && !i.excludedFor?.includes(fieldType)),\n [activeComponent, fieldType],\n )\n\n const MemoizedMenu = useMemo(() => {\n return ({ isLoading, onClose }) => (\n <div className={styles.menu}>\n {filteredMenuItems.map((i) => {\n const Action = i.component\n return (\n <Action\n disabled={isLoading}\n key={i.name}\n onClick={(data) => {\n if (i.name !== 'Settings') {\n setActiveComponent(i.name)\n }\n\n menuEvents[`on${i.name}`](data)\n onClose()\n }}\n >\n {isLoading && i.loadingText}\n </Action>\n )\n })}\n </div>\n )\n }, [filteredMenuItems, menuEvents])\n\n return {\n ActiveComponent: MemoizedActiveComponent,\n Menu: MemoizedMenu,\n }\n}\n"],"names":["useField","React","useEffect","useMemo","useState","Compose","Proofread","Rephrase","menuItemsMap","styles","useFieldProps","getActiveComponent","ac","useMenu","menuEvents","type","fieldType","path","pathFromContext","field","activeComponent","setActiveComponent","initialValue","value","some","i","excludedFor","includes","MemoizedActiveComponent","isLoading","ActiveComponent","activeItem","find","name","disabled","hideIcon","onClick","loadingText","filteredMenuItems","filter","MemoizedMenu","onClose","div","className","menu","map","Action","component","data","Menu"],"mappings":"AAAA;;AAEA,SAASA,QAAQ,QAAQ,iBAAgB;AACzC,OAAOC,SAASC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAO;AAI3D,SAASC,OAAO,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,aAAY;AACzD,SAASC,YAAY,QAAQ,gBAAe;AAC5C,OAAOC,YAAY,qBAAoB;AACvC,SAASC,aAAa,QAAQ,uDAAsD;AAEpF,MAAMC,qBAAqB,CAACC;IAC1B,OAAQA;QACN,KAAK;YACH,OAAON;QACT,KAAK;YACH,OAAOC;QACT,KAAK;YACH,OAAOF;QACT;YACE,OAAOE;IACX;AACF;AAEA,OAAO,MAAMM,UAAU,CAACC;IACtB,MAAM,EAAEC,MAAMC,SAAS,EAAEC,MAAMC,eAAe,EAAE,GAAGR;IACnD,MAAMS,QAAQnB,SAAS;QAAEiB,MAAMC;IAAgB;IAC/C,MAAM,CAACE,iBAAiBC,mBAAmB,GAAGjB,SAA0B;IAExE,MAAM,EAAEkB,YAAY,EAAEC,KAAK,EAAE,GAAGJ;IAEhCjB,UAAU;QACR,IAAI,CAACqB,OAAO;YACVF,mBAAmB;YACnB;QACF;QAEA,IAAIb,aAAagB,IAAI,CAAC,CAACC,IAAMA,EAAEC,WAAW,EAAEC,SAASX,aAAa;YAChEK,mBAAmB;YACnB;QACF;QAEA,IAAI,OAAOE,UAAU,YAAYA,UAAUD,cAAc;YACvDD,mBAAmB;QACrB,OAAO;YACLA,mBAAmB;QACrB;IACF,GAAG;QAACC;QAAcC;QAAOP;KAAU;IAEnC,MAAMY,0BAA0BzB,QAAQ;QACtC,OAAO,CAAC,EAAE0B,SAAS,EAAE;YACnB,MAAMC,kBAAkBnB,mBAAmBS;YAC3C,MAAMW,aAAavB,aAAawB,IAAI,CAAC,CAACP,IAAMA,EAAEQ,IAAI,KAAKb;YACvD,qBACE,KAACU;gBAAgBI,UAAUL;gBAAWM,QAAQ;gBAACC,SAAStB,UAAU,CAAC,CAAC,EAAE,EAAEM,iBAAiB,CAAC;0BACvFS,aAAaE,WAAWM,WAAW;;QAG1C;IACF,GAAG;QAACjB;QAAiBN;KAAW;IAEhC,MAAMwB,oBAAoBnC,QACxB,IACEK,aAAa+B,MAAM,CAAC,CAACd,IAAMA,EAAEQ,IAAI,KAAKb,mBAAmB,CAACK,EAAEC,WAAW,EAAEC,SAASX,aACpF;QAACI;QAAiBJ;KAAU;IAG9B,MAAMwB,eAAerC,QAAQ;QAC3B,OAAO,CAAC,EAAE0B,SAAS,EAAEY,OAAO,EAAE,iBAC5B,KAACC;gBAAIC,WAAWlC,OAAOmC,IAAI;0BACxBN,kBAAkBO,GAAG,CAAC,CAACpB;oBACtB,MAAMqB,SAASrB,EAAEsB,SAAS;oBAC1B,qBACE,KAACD;wBACCZ,UAAUL;wBAEVO,SAAS,CAACY;4BACR,IAAIvB,EAAEQ,IAAI,KAAK,YAAY;gCACzBZ,mBAAmBI,EAAEQ,IAAI;4BAC3B;4BAEAnB,UAAU,CAAC,CAAC,EAAE,EAAEW,EAAEQ,IAAI,EAAE,CAAC,CAACe;4BAC1BP;wBACF;kCAECZ,aAAaJ,EAAEY,WAAW;uBAVtBZ,EAAEQ,IAAI;gBAajB;;IAGN,GAAG;QAACK;QAAmBxB;KAAW;IAElC,OAAO;QACLgB,iBAAiBF;QACjBqB,MAAMT;IACR;AACF,EAAC"}
@@ -3,7 +3,9 @@ type ActionCallbackParams = {
3
3
  action: ActionMenuItems;
4
4
  params?: unknown;
5
5
  };
6
- export declare const useGenerate: () => {
6
+ export declare const useGenerate: ({ instructionId }: {
7
+ instructionId: string;
8
+ }) => {
7
9
  generate: (options?: ActionCallbackParams) => Promise<void | Response>;
8
10
  isLoading: boolean;
9
11
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGenerate.d.ts","sourceRoot":"","sources":["../../../../src/ui/Compose/hooks/useGenerate.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAA;AAY1E,KAAK,oBAAoB,GAAG;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEzE,eAAO,MAAM,WAAW,sBAAuB;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE;yBAmKnD,oBAAoB;;CAoBxC,CAAA"}
@@ -1,33 +1,31 @@
1
1
  import { useEditorConfigContext } from '@payloadcms/richtext-lexical/client';
2
- import { useConfig, useDocumentInfo, useField, useFieldProps, useForm, useLocale } from '@payloadcms/ui';
2
+ import { useConfig, useField, useForm, useLocale } from '@payloadcms/ui';
3
+ import { jsonSchema } from 'ai';
3
4
  import { useCompletion, experimental_useObject as useObject } from 'ai/react';
4
- import { useCallback, useEffect } from 'react';
5
- import { PLUGIN_API_ENDPOINT_GENERATE, PLUGIN_API_ENDPOINT_GENERATE_UPLOAD, PLUGIN_INSTRUCTIONS_TABLE } from '../../../defaults.js';
6
- import { useInstructions } from '../../../providers/InstructionsProvider/useInstructions.js';
7
- import { getFieldBySchemaPath } from '../../../utilities/getFieldBySchemaPath.js';
8
- import { jsonSchemaToZod } from '../../../utilities/jsonToZod.js';
5
+ import { useCallback, useEffect, useMemo } from 'react';
6
+ import { PLUGIN_API_ENDPOINT_GENERATE, PLUGIN_API_ENDPOINT_GENERATE_UPLOAD, PLUGIN_INSTRUCTIONS_TABLE, PLUGIN_NAME } from '../../../defaults.js';
7
+ import { useFieldProps } from '../../../providers/FieldProvider/useFieldProps.js';
9
8
  import { setSafeLexicalState } from '../../../utilities/setSafeLexicalState.js';
10
9
  import { useHistory } from './useHistory.js';
11
- //TODO: DONATION IDEA - Add a url to donate in cli when user installs the plugin and uses it for couple of times.
12
- export const useGenerate = ()=>{
13
- const { type, path: pathFromContext, schemaPath } = useFieldProps();
10
+ export const useGenerate = ({ instructionId })=>{
11
+ const { type, path: pathFromContext } = useFieldProps();
14
12
  const editorConfigContext = useEditorConfigContext();
15
13
  const { editor } = editorConfigContext;
16
- const { docConfig } = useDocumentInfo();
14
+ const { config } = useConfig();
15
+ const { routes: { api }, serverURL } = config;
17
16
  const { setValue } = useField({
18
17
  path: pathFromContext
19
18
  });
20
19
  const { set: setHistory } = useHistory();
21
- const { id: instructionId } = useInstructions({
22
- path: schemaPath
23
- });
24
20
  const { getData } = useForm();
25
21
  const localFromContext = useLocale();
26
22
  const { config: { collections } } = useConfig();
27
23
  const collection = collections.find((collection)=>collection.slug === PLUGIN_INSTRUCTIONS_TABLE);
28
- const { custom: { editorConfig } = {} } = collection.admin;
29
- const { schema: DocumentSchema = {} } = editorConfig || {};
30
- const lexicalZodSchema = jsonSchemaToZod(DocumentSchema);
24
+ const { custom: { [PLUGIN_NAME]: { editorConfig = {} } = {} } = {} } = collection.admin;
25
+ const { schema: editorSchema = {} } = editorConfig;
26
+ const memoizedSchema = useMemo(()=>jsonSchema(editorSchema), [
27
+ editorSchema
28
+ ]);
31
29
  const { isLoading: loadingObject, object, stop, submit } = useObject({
32
30
  api: `/api${PLUGIN_API_ENDPOINT_GENERATE}`,
33
31
  onError: (error)=>{
@@ -41,7 +39,7 @@ export const useGenerate = ()=>{
41
39
  console.log('onFinish: result ', result);
42
40
  }
43
41
  },
44
- schema: lexicalZodSchema
42
+ schema: memoizedSchema
45
43
  });
46
44
  useEffect(()=>{
47
45
  if (!object) return;
@@ -57,7 +55,7 @@ export const useGenerate = ()=>{
57
55
  object
58
56
  ]);
59
57
  const { complete, completion, isLoading: loadingCompletion } = useCompletion({
60
- api: `/api${PLUGIN_API_ENDPOINT_GENERATE}`,
58
+ api: `${serverURL}${api}${PLUGIN_API_ENDPOINT_GENERATE}`,
61
59
  onError: (error)=>{
62
60
  console.error('Error generating text:', error);
63
61
  },
@@ -112,14 +110,12 @@ export const useGenerate = ()=>{
112
110
  ]);
113
111
  const generateUpload = useCallback(async ()=>{
114
112
  const doc = getData();
115
- const fieldInfo = getFieldBySchemaPath(docConfig, schemaPath);
116
- return fetch(`/api${PLUGIN_API_ENDPOINT_GENERATE_UPLOAD}`, {
113
+ return fetch(`${serverURL}${api}${PLUGIN_API_ENDPOINT_GENERATE_UPLOAD}`, {
117
114
  body: JSON.stringify({
118
115
  doc,
119
116
  locale: localFromContext?.code,
120
117
  options: {
121
- instructionId,
122
- uploadCollectionSlug: fieldInfo.relationTo || 'media'
118
+ instructionId
123
119
  }
124
120
  }),
125
121
  credentials: 'include',
@@ -145,8 +141,7 @@ export const useGenerate = ()=>{
145
141
  }, [
146
142
  getData,
147
143
  localFromContext?.code,
148
- instructionId,
149
- setValue
144
+ instructionId
150
145
  ]);
151
146
  const generate = useCallback(async (options)=>{
152
147
  if (type === 'richText') {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/ui/Compose/hooks/useGenerate.ts"],"sourcesContent":["import { useEditorConfigContext } from '@payloadcms/richtext-lexical/client'\nimport { useConfig, useField, useForm, useLocale } from '@payloadcms/ui'\nimport { jsonSchema } from 'ai'\nimport { useCompletion, experimental_useObject as useObject } from 'ai/react'\nimport { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ActionMenuItems, GenerateTextarea } from '../../../types.js'\n\nimport {\n PLUGIN_API_ENDPOINT_GENERATE,\n PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n PLUGIN_INSTRUCTIONS_TABLE,\n PLUGIN_NAME,\n} from '../../../defaults.js'\nimport { useFieldProps } from '../../../providers/FieldProvider/useFieldProps.js'\nimport { setSafeLexicalState } from '../../../utilities/setSafeLexicalState.js'\nimport { useHistory } from './useHistory.js'\n\ntype ActionCallbackParams = { action: ActionMenuItems; params?: unknown }\n\nexport const useGenerate = ({ instructionId }: { instructionId: string }) => {\n const { type, path: pathFromContext } = useFieldProps()\n const editorConfigContext = useEditorConfigContext()\n const { editor } = editorConfigContext\n\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n\n const { setValue } = useField<string>({\n path: pathFromContext,\n })\n\n const { set: setHistory } = useHistory()\n\n const { getData } = useForm()\n const localFromContext = useLocale()\n const {\n config: { collections },\n } = useConfig()\n\n const collection = collections.find((collection) => collection.slug === PLUGIN_INSTRUCTIONS_TABLE)\n const { custom: { [PLUGIN_NAME]: { editorConfig = {} } = {} } = {} } = collection.admin\n const { schema: editorSchema = {} } = editorConfig\n\n const memoizedSchema = useMemo(() => jsonSchema(editorSchema), [editorSchema])\n\n const {\n isLoading: loadingObject,\n object,\n stop, // TODO: Implement this function\n submit,\n } = useObject({\n api: `/api${PLUGIN_API_ENDPOINT_GENERATE}`,\n onError: (error) => {\n console.error('Error generating object:', error)\n },\n onFinish: (result) => {\n if (result.object) {\n setHistory(result.object)\n setValue(result.object)\n } else {\n console.log('onFinish: result ', result)\n }\n },\n schema: memoizedSchema,\n })\n\n useEffect(() => {\n if (!object) return\n\n requestAnimationFrame(() => {\n if (!editor) {\n setValue(object)\n return\n }\n\n // Currently this is being used as setValue for RichText component does not render new changes right away.\n setSafeLexicalState(object, editor)\n })\n }, [object])\n\n const {\n complete,\n completion,\n isLoading: loadingCompletion,\n } = useCompletion({\n api: `${serverURL}${api}${PLUGIN_API_ENDPOINT_GENERATE}`,\n onError: (error) => {\n console.error('Error generating text:', error)\n },\n onFinish: (prompt, result) => {\n setHistory(result)\n },\n streamProtocol: 'data',\n })\n\n useEffect(() => {\n if (!completion) return\n\n requestAnimationFrame(() => {\n setValue(completion)\n })\n }, [completion])\n\n const streamObject = useCallback(\n ({ action = 'Compose', params }: ActionCallbackParams) => {\n const doc = getData()\n const options = {\n action,\n actionParams: params,\n instructionId,\n }\n\n submit({\n doc,\n locale: localFromContext?.code,\n options,\n })\n },\n [getData, localFromContext?.code, instructionId],\n )\n\n const streamText = useCallback(\n async ({ action = 'Compose', params }: ActionCallbackParams) => {\n const doc = getData()\n\n const options = {\n action,\n actionParams: params,\n instructionId,\n }\n\n await complete('', {\n body: {\n doc,\n locale: localFromContext?.code,\n options,\n },\n })\n },\n [getData, localFromContext?.code, instructionId],\n )\n\n const generateUpload = useCallback(async () => {\n const doc = getData()\n\n return fetch(`${serverURL}${api}${PLUGIN_API_ENDPOINT_GENERATE_UPLOAD}`, {\n body: JSON.stringify({\n doc,\n locale: localFromContext?.code,\n options: {\n instructionId,\n },\n } satisfies Parameters<GenerateTextarea>[0]),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n .then(async (uploadResponse) => {\n if (uploadResponse.ok) {\n const { result } = await uploadResponse.json()\n if (!result) throw new Error('generateUpload: Something went wrong')\n\n setValue(result?.id)\n setHistory(result?.id)\n } else {\n const { errors = [] } = await uploadResponse.json()\n const errStr = errors.map((error) => error.message).join(', ')\n throw new Error(errStr)\n }\n return uploadResponse\n })\n .catch((error) => {\n console.error('Error generating your upload', error)\n })\n }, [getData, localFromContext?.code, instructionId])\n\n const generate = useCallback(\n async (options?: ActionCallbackParams) => {\n if (type === 'richText') {\n return streamObject(options)\n }\n\n if (['text', 'textarea'].includes(type)) {\n return streamText(options)\n }\n\n if (type === 'upload') {\n return generateUpload()\n }\n },\n [generateUpload, streamObject, streamText, type],\n )\n\n return {\n generate,\n isLoading: loadingCompletion || loadingObject,\n }\n}\n"],"names":["useEditorConfigContext","useConfig","useField","useForm","useLocale","jsonSchema","useCompletion","experimental_useObject","useObject","useCallback","useEffect","useMemo","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_INSTRUCTIONS_TABLE","PLUGIN_NAME","useFieldProps","setSafeLexicalState","useHistory","useGenerate","instructionId","type","path","pathFromContext","editorConfigContext","editor","config","routes","api","serverURL","setValue","set","setHistory","getData","localFromContext","collections","collection","find","slug","custom","editorConfig","admin","schema","editorSchema","memoizedSchema","isLoading","loadingObject","object","stop","submit","onError","error","console","onFinish","result","log","requestAnimationFrame","complete","completion","loadingCompletion","prompt","streamProtocol","streamObject","action","params","doc","options","actionParams","locale","code","streamText","body","generateUpload","fetch","JSON","stringify","credentials","headers","method","then","uploadResponse","ok","json","Error","id","errors","errStr","map","message","join","catch","generate","includes"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHistory.d.ts","sourceRoot":"","sources":["../../../../src/ui/Compose/hooks/useHistory.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU;;;;;gBAkEZ,GAAG;;CAoEb,CAAA"}