@ai-stack/payloadcms 3.0.0-beta.104.1 → 3.0.0-beta.104.3

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 (90) hide show
  1. package/README.md +14 -0
  2. package/dist/ai/prompts.d.ts +1 -1
  3. package/dist/ai/prompts.d.ts.map +1 -1
  4. package/dist/ai/prompts.js +6 -3
  5. package/dist/ai/prompts.js.map +1 -1
  6. package/dist/exports/fields.d.ts +1 -1
  7. package/dist/exports/fields.d.ts.map +1 -1
  8. package/dist/exports/fields.js +1 -1
  9. package/dist/exports/fields.js.map +1 -1
  10. package/dist/fields/ComposeField/ComposeField.d.ts +4 -0
  11. package/dist/fields/ComposeField/ComposeField.d.ts.map +1 -0
  12. package/dist/fields/{DescriptionField/DescriptionField.js → ComposeField/ComposeField.js} +4 -4
  13. package/dist/fields/ComposeField/ComposeField.js.map +1 -0
  14. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts +2 -0
  15. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -0
  16. package/dist/fields/LexicalEditor/{ActionsFeatureComponent.js → ComposeFeatureComponent.js} +4 -4
  17. package/dist/fields/LexicalEditor/{ActionsFeatureComponent.js.map → ComposeFeatureComponent.js.map} +1 -1
  18. package/dist/fields/LexicalEditor/feature.client.d.ts +1 -4
  19. package/dist/fields/LexicalEditor/feature.client.d.ts.map +1 -1
  20. package/dist/fields/LexicalEditor/feature.client.js +2 -2
  21. package/dist/fields/LexicalEditor/feature.client.js.map +1 -1
  22. package/dist/fields/PromptEditorField/PromptEditorField.d.ts +2 -2
  23. package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -1
  24. package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
  25. package/dist/fields/SelectField/SelectField.d.ts +2 -2
  26. package/dist/fields/SelectField/SelectField.d.ts.map +1 -1
  27. package/dist/fields/SelectField/SelectField.js.map +1 -1
  28. package/dist/libraries/handlebars/asyncHandlebars.js +1 -1
  29. package/dist/libraries/handlebars/asyncHandlebars.js.map +1 -1
  30. package/dist/plugin.d.ts.map +1 -1
  31. package/dist/plugin.js +13 -5
  32. package/dist/plugin.js.map +1 -1
  33. package/dist/ui/Compose/Compose.d.ts +9 -0
  34. package/dist/ui/Compose/Compose.d.ts.map +1 -0
  35. package/dist/ui/{Actions/Actions.js → Compose/Compose.js} +46 -38
  36. package/dist/ui/Compose/Compose.js.map +1 -0
  37. package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts.map +1 -1
  38. package/dist/ui/{Actions → Compose}/UndoRedoActions.js +15 -2
  39. package/dist/ui/Compose/UndoRedoActions.js.map +1 -0
  40. package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts.map +1 -1
  41. package/dist/ui/{Actions → Compose}/hooks/menu/Item.js.map +1 -1
  42. package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts.map +1 -0
  43. package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.js.map +1 -1
  44. package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts.map +1 -1
  45. package/dist/ui/{Actions → Compose}/hooks/menu/items.js.map +1 -1
  46. package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.d.ts.map +1 -1
  47. package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.js.map +1 -1
  48. package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.d.ts.map +1 -1
  49. package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.js.map +1 -1
  50. package/dist/ui/{Actions → Compose}/hooks/useGenerate.d.ts.map +1 -1
  51. package/dist/ui/{Actions → Compose}/hooks/useGenerate.js +1 -2
  52. package/dist/ui/{Actions → Compose}/hooks/useGenerate.js.map +1 -1
  53. package/dist/ui/Compose/hooks/useHistory.d.ts.map +1 -0
  54. package/dist/ui/{Actions → Compose}/hooks/useHistory.js +3 -1
  55. package/dist/ui/Compose/hooks/useHistory.js.map +1 -0
  56. package/dist/utilities/setSafeLexicalState.d.ts +2 -2
  57. package/dist/utilities/setSafeLexicalState.d.ts.map +1 -1
  58. package/dist/utilities/setSafeLexicalState.js +5 -12
  59. package/dist/utilities/setSafeLexicalState.js.map +1 -1
  60. package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
  61. package/dist/utilities/updateFieldsConfig.js +4 -8
  62. package/dist/utilities/updateFieldsConfig.js.map +1 -1
  63. package/package.json +35 -59
  64. package/dist/fields/DescriptionField/DescriptionField.d.ts +0 -4
  65. package/dist/fields/DescriptionField/DescriptionField.d.ts.map +0 -1
  66. package/dist/fields/DescriptionField/DescriptionField.js.map +0 -1
  67. package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts +0 -2
  68. package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts.map +0 -1
  69. package/dist/ui/Actions/Actions.d.ts +0 -5
  70. package/dist/ui/Actions/Actions.d.ts.map +0 -1
  71. package/dist/ui/Actions/Actions.js.map +0 -1
  72. package/dist/ui/Actions/UndoRedoActions.js.map +0 -1
  73. package/dist/ui/Actions/hooks/menu/TranslateMenu.d.ts.map +0 -1
  74. package/dist/ui/Actions/hooks/useHistory.d.ts.map +0 -1
  75. package/dist/ui/Actions/hooks/useHistory.js.map +0 -1
  76. /package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts +0 -0
  77. /package/dist/ui/{Actions/actions.module.scss → Compose/compose.module.scss} +0 -0
  78. /package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts +0 -0
  79. /package/dist/ui/{Actions → Compose}/hooks/menu/Item.js +0 -0
  80. /package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.d.ts +0 -0
  81. /package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.js +0 -0
  82. /package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts +0 -0
  83. /package/dist/ui/{Actions → Compose}/hooks/menu/items.js +0 -0
  84. /package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.d.ts +0 -0
  85. /package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.js +0 -0
  86. /package/dist/ui/{Actions → Compose}/hooks/menu/menu.module.scss +0 -0
  87. /package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.d.ts +0 -0
  88. /package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.js +0 -0
  89. /package/dist/ui/{Actions → Compose}/hooks/useGenerate.d.ts +0 -0
  90. /package/dist/ui/{Actions → Compose}/hooks/useHistory.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-stack/payloadcms",
3
- "version": "3.0.0-beta.104.1",
3
+ "version": "3.0.0-beta.104.3",
4
4
  "private": false,
5
5
  "bugs": "https://github.com/ashbuilds/payload-ai/issues",
6
6
  "repository": "https://github.com/ashbuilds/payload-ai",
@@ -20,43 +20,33 @@
20
20
  "ai-writing-tool"
21
21
  ],
22
22
  "type": "module",
23
- "main": "dist/index.js",
24
- "types": "dist/index.d.ts",
23
+ "main": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
25
  "exports": {
26
26
  ".": {
27
27
  "import": "./dist/index.js",
28
- "require": "./dist/index.js",
29
- "types": "./dist/index.d.ts"
28
+ "types": "./dist/index.d.ts",
29
+ "default": "./dist/index.js"
30
30
  },
31
- "./client": {
32
- "import": "./dist/exports/client.js",
33
- "types": "./dist/exports/client.d.ts",
34
- "default": "./dist/exports/client.js"
31
+ "./types": {
32
+ "import": "./dist/exports/types.js",
33
+ "types": "./dist/exports/types.d.ts",
34
+ "default": "./dist/exports/types.js"
35
35
  },
36
36
  "./fields": {
37
37
  "import": "./dist/exports/fields.js",
38
38
  "types": "./dist/exports/fields.d.ts",
39
39
  "default": "./dist/exports/fields.js"
40
40
  },
41
- "./types": {
42
- "import": "./dist/exports/types.js",
43
- "types": "./dist/exports/types.d.ts",
44
- "default": "./dist/exports/types.js"
41
+ "./client": {
42
+ "import": "./dist/exports/client.js",
43
+ "types": "./dist/exports/client.d.ts",
44
+ "default": "./dist/exports/client.js"
45
45
  }
46
46
  },
47
47
  "files": [
48
48
  "dist"
49
49
  ],
50
- "scripts": {
51
- "build": "pnpm build:types && pnpm build:swc",
52
- "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths --copy-files",
53
- "build:dev": "pnpm build --watch",
54
- "build:types": "tsc --emitDeclarationOnly",
55
- "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
56
- "lint": "eslint src",
57
- "lint:fix": "eslint --fix src",
58
- "prepublishOnly": "pnpm clean && pnpm build"
59
- },
60
50
  "dependencies": {
61
51
  "@ai-sdk/anthropic": "^0.0.38",
62
52
  "@ai-sdk/openai": "^0.0.43",
@@ -68,24 +58,25 @@
68
58
  "@lexical/html": "^0.16.1",
69
59
  "ai": "^3.3.20",
70
60
  "elevenlabs": "^0.8.2",
61
+ "get-input-selection": "^1.1.4",
71
62
  "handlebars": "4.7.8",
72
63
  "handlebars-async-helpers": "^1.0.6",
73
64
  "langchain": "^0.2.17",
74
65
  "lexical": "^0.17.0",
75
66
  "locale-codes": "^1.3.1",
76
- "openai": "^4.56.1",
77
- "zod": "^3.23.8",
78
- "zod-to-json-schema": "^3.23.2",
79
- "get-input-selection": "^1.1.4",
80
67
  "lodash.isequal": "^4.5.0",
68
+ "openai": "^4.56.1",
81
69
  "scroll-into-view-if-needed": "^3.1.0",
82
- "textarea-caret": "^3.0.2"
70
+ "textarea-caret": "^3.0.2",
71
+ "zod": "^3.23.8",
72
+ "zod-to-json-schema": "^3.23.2"
83
73
  },
84
74
  "devDependencies": {
85
75
  "@eslint/compat": "^1.1.1",
86
76
  "@eslint/js": "^9.9.1",
87
77
  "@swc/cli": "0.4.0",
88
78
  "@types/dot-object": "2.1.6",
79
+ "@types/handlebars": "^4.1.0",
89
80
  "@types/react": "npm:types-react@19.0.0-beta.2",
90
81
  "@types/react-dom": "npm:types-react-dom@19.0.0-beta.2",
91
82
  "@typescript-eslint/eslint-plugin": "^7.18.0",
@@ -102,7 +93,7 @@
102
93
  "eslint-plugin-react-hooks": "^4.6.2",
103
94
  "eslint-plugin-regexp": "^2.6.0",
104
95
  "globals": "^15.9.0",
105
- "payload": "3.0.0-beta.95",
96
+ "payload": "3.0.0-beta.104",
106
97
  "prettier": "^3.3.3",
107
98
  "react": "19.0.0-rc-f994737d14-20240522",
108
99
  "react-dom": "19.0.0-rc-f994737d14-20240522",
@@ -111,38 +102,23 @@
111
102
  "typescript-eslint": "^7.18.0"
112
103
  },
113
104
  "peerDependencies": {
114
- "@payloadcms/richtext-lexical": "3.0.0-beta.95",
115
- "@payloadcms/translations": "3.0.0-beta.95",
116
- "@payloadcms/ui": "3.0.0-beta.95",
117
- "payload": "3.0.0-beta.95"
105
+ "@payloadcms/richtext-lexical": "3.0.0-beta.104",
106
+ "@payloadcms/translations": "3.0.0-beta.104",
107
+ "@payloadcms/ui": "3.0.0-beta.104",
108
+ "payload": "3.0.0-beta.104"
118
109
  },
119
110
  "publishConfig": {
120
- "main": "./dist/index.js",
121
- "types": "./dist/index.d.ts",
122
111
  "@ai-stack:registry": "https://registry.npmjs.org",
123
112
  "access": "public",
124
- "provenance": true,
125
- "exports": {
126
- ".": {
127
- "import": "./dist/index.js",
128
- "types": "./dist/index.d.ts",
129
- "default": "./dist/index.js"
130
- },
131
- "./types": {
132
- "import": "./dist/exports/types.js",
133
- "types": "./dist/exports/types.d.ts",
134
- "default": "./dist/exports/types.js"
135
- },
136
- "./fields": {
137
- "import": "./dist/exports/fields.js",
138
- "types": "./dist/exports/fields.d.ts",
139
- "default": "./dist/exports/fields.js"
140
- },
141
- "./client": {
142
- "import": "./dist/exports/client.js",
143
- "types": "./dist/exports/client.d.ts",
144
- "default": "./dist/exports/client.js"
145
- }
146
- }
113
+ "provenance": true
114
+ },
115
+ "scripts": {
116
+ "build": "pnpm build:types && pnpm build:swc",
117
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths --copy-files",
118
+ "build:dev": "pnpm build --watch",
119
+ "build:types": "tsc --emitDeclarationOnly",
120
+ "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
121
+ "lint": "eslint src",
122
+ "lint:fix": "eslint --fix src"
147
123
  }
148
- }
124
+ }
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { FieldDescriptionClientProps } from 'payload';
3
- export declare const DescriptionField: React.FC<FieldDescriptionClientProps>;
4
- //# sourceMappingURL=DescriptionField.d.ts.map
@@ -1 +0,0 @@
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 +0,0 @@
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,2 +0,0 @@
1
- export declare const ActionsFeatureComponent: () => import("react/jsx-runtime").JSX.Element;
2
- //# sourceMappingURL=ActionsFeatureComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionsFeatureComponent.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/ActionsFeatureComponent.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB,+CAQnC,CAAA"}
@@ -1,5 +0,0 @@
1
- export declare const Actions: ({ descriptionProps, instructionId }: {
2
- descriptionProps?: {};
3
- instructionId: any;
4
- }) => import("react/jsx-runtime").JSX.Element;
5
- //# sourceMappingURL=Actions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../src/ui/Actions/Actions.tsx"],"names":[],"mappings":"AA6BA,eAAO,MAAM,OAAO;;;6CA6InB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/ui/Actions/Actions.tsx"],"sourcesContent":["'use client'\n\nimport { useEditorConfigContext } from '@payloadcms/richtext-lexical/client'\nimport { FieldDescription, Popup, useDocumentDrawer, useField, useFieldProps } 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 './actions.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\nexport const Actions = ({ descriptionProps = {}, instructionId }) => {\n const [DocumentDrawer, _, { closeDrawer, openDrawer }] = useDocumentDrawer({\n id: instructionId,\n collectionSlug: PLUGIN_INSTRUCTIONS_TABLE,\n })\n\n const { type: fieldType, path: pathFromContext, schemaPath } = useFieldProps()\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()\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...', data)\n await generate({\n action: 'Translate',\n params: data,\n })\n },\n })\n\n const { setValue, value } = useField<string>({\n path: pathFromContext,\n })\n\n const setIfValueIsLexicalState = useCallback((val) => {\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 className={`${styles.actions}`} onClick={(e) => e.preventDefault()} ref={actionsRef}>\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 {/*<div>*/}\n {/* <FieldDescription {...descriptionProps} />*/}\n {/*</div>*/}\n </React.Fragment>\n )\n}\n"],"names":["useEditorConfigContext","Popup","useDocumentDrawer","useField","useFieldProps","React","useCallback","useEffect","useRef","useState","PLUGIN_INSTRUCTIONS_TABLE","setSafeLexicalState","PluginIcon","UndoRedoActions","styles","useMenu","useGenerate","findParentWithClass","element","className","document","body","classList","contains","parentElement","Actions","descriptionProps","instructionId","DocumentDrawer","_","closeDrawer","openDrawer","id","collectionSlug","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","value","setIfValueIsLexicalState","val","root","JSON","stringify","Fragment","label","onClick","e","preventDefault","ref","onSave","button","render","close","onClose","verticalAlign","onChange"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/ui/Actions/UndoRedoActions.tsx"],"sourcesContent":["import { useHistory } from './hooks/useHistory.js'\nimport React, { MouseEventHandler, useCallback } 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 if (!canUndo && !canRedo) return null\n\n return (\n <>\n <button onClick={undoHistoryValue} type=\"button\" disabled={!canUndo}>\n Undo\n </button>\n <button onClick={redoHistoryValue} type=\"button\" disabled={!canRedo}>\n Redo\n </button>\n </>\n )\n}\n"],"names":["useHistory","React","useCallback","UndoRedoActions","onChange","canRedo","canUndo","redo","undo","redoHistoryValue","event","stopPropagation","value","undoHistoryValue","button","onClick","type","disabled"],"mappings":";AAAA,SAASA,UAAU,QAAQ,wBAAuB;AAClD,OAAOC,SAA4BC,WAAW,QAAQ,QAAO;AAE7D,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,QAAQ,EAAwC;IAChF,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAGR;IAEzC,MAAMS,mBAAmBP,YACvB,CAACQ;QACCA,MAAMC,eAAe;QAErB,MAAMC,QAAQL;QACd,IAAIK,OAAO;YACTR,SAASQ;QACX;IACF,GACA;QAACL;KAAK;IAGR,MAAMM,mBAAmBX,YACvB,CAACQ;QACCA,MAAMC,eAAe;QAErB,MAAMC,QAAQJ;QACd,IAAII,OAAO;YACTR,SAASQ;QACX;IACF,GACA;QAACJ;KAAK;IAGR,IAAI,CAACF,WAAW,CAACD,SAAS,OAAO;IAEjC,qBACE;;0BACE,KAACS;gBAAOC,SAASF;gBAAkBG,MAAK;gBAASC,UAAU,CAACX;0BAAS;;0BAGrE,KAACQ;gBAAOC,SAASN;gBAAkBO,MAAK;gBAASC,UAAU,CAACZ;0BAAS;;;;AAK3E,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TranslateMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Actions/hooks/menu/TranslateMenu.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa;;6CA0EzB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHistory.d.ts","sourceRoot":"","sources":["../../../../src/ui/Actions/hooks/useHistory.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,UAAU;;;;;gBAgEZ,GAAG;;CAoEb,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/ui/Actions/hooks/useHistory.ts"],"sourcesContent":["'use client'\n\nimport { useDocumentInfo, useField, useFieldProps } from '@payloadcms/ui'\nimport { useCallback, useEffect } from 'react'\n\nimport { PLUGIN_NAME } from '../../../defaults.js'\n\nconst STORAGE_KEY = `${PLUGIN_NAME}-fields-history`\n\ninterface HistoryState {\n [path: string]: {\n currentIndex: number\n history: any[]\n }\n}\n\nexport const useHistory = () => {\n const { id } = useDocumentInfo()\n const { path: pathFromContext, schemaPath } = useFieldProps()\n const { value: currentFieldValue } = useField<string>({\n path: pathFromContext,\n })\n\n const fieldKey = `${id}.${schemaPath}`\n\n const getLatestHistory = useCallback((): HistoryState => {\n try {\n // This condition is applied, as it was somehow triggering on server side\n if (typeof localStorage !== 'undefined') {\n return JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}')\n }\n return {}\n } catch (e) {\n console.error('Error parsing history:', e)\n return {}\n }\n }, [])\n\n const saveToLocalStorage = useCallback((newGlobalHistory: HistoryState) => {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(newGlobalHistory))\n }, [])\n\n // Clear previous history\n const clearHistory = useCallback(() => {\n const latestHistory = { ...getLatestHistory() }\n Object.keys(latestHistory).forEach((k) => {\n if (!k.startsWith(id.toString())) {\n delete latestHistory[k]\n }\n })\n saveToLocalStorage(latestHistory)\n }, [id, fieldKey, getLatestHistory, saveToLocalStorage])\n\n useEffect(() => {\n // This is applied to clear out the document history which is not currently in use\n clearHistory()\n\n const latestHistory = getLatestHistory()\n const { currentIndex, history } = latestHistory[fieldKey] || {\n currentIndex: -1,\n history: [],\n }\n\n let newIndex = currentIndex\n if (currentIndex == -1) {\n newIndex = 0\n if (currentFieldValue) {\n history[newIndex] = currentFieldValue\n }\n }\n\n const newGlobalHistory = {\n ...latestHistory,\n [fieldKey]: { currentIndex: newIndex, history },\n }\n\n saveToLocalStorage(newGlobalHistory)\n }, [fieldKey])\n\n const set = useCallback(\n (data: any) => {\n const latestHistory = getLatestHistory()\n const { currentIndex, history } = latestHistory[fieldKey] || {\n currentIndex: -1,\n history: [],\n }\n const newHistory = [...history.slice(0, currentIndex + 1), data]\n const newGlobalHistory = {\n ...latestHistory,\n [fieldKey]: { currentIndex: newHistory.length - 1, history: newHistory },\n }\n saveToLocalStorage(newGlobalHistory)\n return data\n },\n [fieldKey, getLatestHistory, saveToLocalStorage],\n )\n\n const undo = useCallback(() => {\n const latestHistory = getLatestHistory()\n const { currentIndex, history } = latestHistory[fieldKey] || { currentIndex: -1, history: [] }\n if (currentIndex > 0) {\n const newIndex = currentIndex - 1\n const newValue = history[newIndex]\n const newGlobalHistory = {\n ...latestHistory,\n [fieldKey]: { currentIndex: newIndex, history },\n }\n saveToLocalStorage(newGlobalHistory)\n return newValue\n }\n return undefined\n }, [fieldKey, getLatestHistory, saveToLocalStorage])\n\n const redo = useCallback(() => {\n const latestHistory = getLatestHistory()\n const { currentIndex, history } = latestHistory[fieldKey] || { currentIndex: -1, history: [] }\n if (currentIndex < history.length - 1) {\n const newIndex = currentIndex + 1\n const newValue = history[newIndex]\n const newGlobalHistory = {\n ...latestHistory,\n [fieldKey]: { currentIndex: newIndex, history },\n }\n saveToLocalStorage(newGlobalHistory)\n return newValue\n }\n return undefined\n }, [fieldKey, getLatestHistory, saveToLocalStorage])\n\n const getLatestFieldHistory = useCallback(() => {\n const latestHistory = getLatestHistory()\n return latestHistory[fieldKey] || { currentIndex: -1, history: [] }\n }, [getLatestHistory, fieldKey])\n\n const fieldHistory = getLatestFieldHistory()\n\n const canUndo = fieldHistory.currentIndex > 0\n const canRedo = fieldHistory.currentIndex < fieldHistory.history.length - 1\n const currentValue = fieldHistory.history[fieldHistory.currentIndex]\n\n return {\n canRedo,\n canUndo,\n currentValue,\n redo,\n set,\n undo,\n }\n}\n"],"names":["useDocumentInfo","useField","useFieldProps","useCallback","useEffect","PLUGIN_NAME","STORAGE_KEY","useHistory","id","path","pathFromContext","schemaPath","value","currentFieldValue","fieldKey","getLatestHistory","localStorage","JSON","parse","getItem","e","console","error","saveToLocalStorage","newGlobalHistory","setItem","stringify","clearHistory","latestHistory","Object","keys","forEach","k","startsWith","toString","currentIndex","history","newIndex","set","data","newHistory","slice","length","undo","newValue","undefined","redo","getLatestFieldHistory","fieldHistory","canUndo","canRedo","currentValue"],"mappings":"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"}
File without changes