payload-ai 1.0.0 → 1.0.1

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.
@@ -53,6 +53,25 @@
53
53
  font-weight: 600;
54
54
  }
55
55
 
56
+ &__radio-group {
57
+ display: grid;
58
+ gap: calc(var(--base) * 0.25);
59
+ }
60
+
61
+ &__radio-option {
62
+ display: flex;
63
+ align-items: center;
64
+ gap: calc(var(--base) * 0.35);
65
+ font-size: 0.9rem;
66
+ color: var(--theme-elevation-900);
67
+ cursor: pointer;
68
+
69
+ input[type='radio'] {
70
+ margin: 0;
71
+ accent-color: var(--theme-success-500);
72
+ }
73
+ }
74
+
56
75
  &__translation-buttons {
57
76
  display: flex;
58
77
  flex-wrap: wrap;
@@ -1,3 +1,14 @@
1
1
  import React from 'react';
2
2
  import './Translator.scss';
3
- export declare const Translator: React.FC;
3
+ type LocaleShape = {
4
+ code: string;
5
+ label?: string;
6
+ };
7
+ type TranslatorProps = {
8
+ localization?: {
9
+ defaultLocale?: string;
10
+ locales?: Array<string | LocaleShape>;
11
+ };
12
+ };
13
+ export declare const Translator: React.FC<TranslatorProps>;
14
+ export {};
@@ -64,22 +64,50 @@ exports.Translator = void 0;
64
64
  var react_1 = __importStar(require("react"));
65
65
  var ui_1 = require("@payloadcms/ui");
66
66
  require("./Translator.scss");
67
- var Translator = function () {
68
- var _a, _b, _c, _d;
67
+ var Translator = function (_a) {
68
+ var _b, _c, _d, _e;
69
+ var localization = _a.localization;
69
70
  var baseClass = 'ai-translator';
70
- //const { fields, getDataByPath } = useForm()
71
- var _e = react_1.default.useState(false), isOpen = _e[0], setIsOpen = _e[1];
72
- var _f = react_1.default.useState(false), isLoading = _f[0], setIsLoading = _f[1];
73
- var _g = react_1.default.useState('default'), selectedModel = _g[0], setSelectedModel = _g[1];
74
- var locale = (0, ui_1.useLocale)();
75
- var config = (0, ui_1.useConfig)();
76
- var localization = config === null || config === void 0 ? void 0 : config.localization;
77
- var fallbackLocaleCode = (locale === null || locale === void 0 ? void 0 : locale.code) || 'en';
78
- var fallbackLocaleLabel = (locale === null || locale === void 0 ? void 0 : locale.label) || fallbackLocaleCode;
79
- var locales = Array.isArray(localization === null || localization === void 0 ? void 0 : localization.locales)
80
- ? localization.locales
81
- : [{ code: fallbackLocaleCode, label: fallbackLocaleLabel }];
82
- var _h = react_1.default.useState((localization === null || localization === void 0 ? void 0 : localization.defaultLocale) || ((_a = locales[0]) === null || _a === void 0 ? void 0 : _a.code) || fallbackLocaleCode), selectedSourceLocale = _h[0], setSelectedSourceLocal = _h[1];
71
+ var _f = react_1.default.useState(false), isOpen = _f[0], setIsOpen = _f[1];
72
+ var _g = react_1.default.useState(false), isLoading = _g[0], setIsLoading = _g[1];
73
+ var _h = react_1.default.useState('default'), selectedModel = _h[0], setSelectedModel = _h[1];
74
+ var activeLocaleFromURL = react_1.default.useMemo(function () {
75
+ if (typeof window === 'undefined')
76
+ return undefined;
77
+ var url = new URL(window.location.href);
78
+ return url.searchParams.get('locale') || undefined;
79
+ }, []);
80
+ var defaultLocaleCode = (localization === null || localization === void 0 ? void 0 : localization.defaultLocale) || 'en';
81
+ var locales = react_1.default.useMemo(function () {
82
+ var localizationLocales = localization === null || localization === void 0 ? void 0 : localization.locales;
83
+ if (!Array.isArray(localizationLocales)) {
84
+ return [{ code: defaultLocaleCode, label: defaultLocaleCode }];
85
+ }
86
+ var normalizedLocales = [];
87
+ localizationLocales.forEach(function (localeEntry) {
88
+ if (typeof localeEntry === 'string') {
89
+ normalizedLocales.push({
90
+ code: localeEntry,
91
+ label: localeEntry,
92
+ });
93
+ return;
94
+ }
95
+ if (localeEntry && typeof localeEntry === 'object' && localeEntry.code) {
96
+ normalizedLocales.push({
97
+ code: localeEntry.code,
98
+ label: localeEntry.label || localeEntry.code,
99
+ });
100
+ }
101
+ });
102
+ return normalizedLocales.length
103
+ ? normalizedLocales
104
+ : [{ code: defaultLocaleCode, label: defaultLocaleCode }];
105
+ }, [defaultLocaleCode, localization === null || localization === void 0 ? void 0 : localization.locales]);
106
+ var activeLocaleCode = activeLocaleFromURL && locales.some(function (locale) { return locale.code === activeLocaleFromURL; })
107
+ ? activeLocaleFromURL
108
+ : defaultLocaleCode;
109
+ var fallbackLocaleLabel = ((_b = locales.find(function (locale) { return locale.code === activeLocaleCode; })) === null || _b === void 0 ? void 0 : _b.label) || activeLocaleCode;
110
+ var _j = react_1.default.useState(activeLocaleCode), selectedSourceLocale = _j[0], setSelectedSourceLocal = _j[1];
83
111
  var documentInfo = (0, ui_1.useDocumentInfo)();
84
112
  var routeMatch = typeof window !== 'undefined'
85
113
  ? window.location.pathname.match(/\/admin\/collections\/([^/]+)\/([^/?#]+)/)
@@ -87,10 +115,10 @@ var Translator = function () {
87
115
  var routeCollectionSlug = routeMatch === null || routeMatch === void 0 ? void 0 : routeMatch[1];
88
116
  var routeDocumentId = routeMatch === null || routeMatch === void 0 ? void 0 : routeMatch[2];
89
117
  var collectionSlug = (documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.collectionSlug) ||
90
- ((_b = documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.docConfig) === null || _b === void 0 ? void 0 : _b.slug) ||
91
- ((_c = documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.collection) === null || _c === void 0 ? void 0 : _c.slug) ||
118
+ ((_c = documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.docConfig) === null || _c === void 0 ? void 0 : _c.slug) ||
119
+ ((_d = documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.collection) === null || _d === void 0 ? void 0 : _d.slug) ||
92
120
  routeCollectionSlug;
93
- var documentId = (documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.id) || ((_d = documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.data) === null || _d === void 0 ? void 0 : _d.id) || routeDocumentId;
121
+ var documentId = (documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.id) || ((_e = documentInfo === null || documentInfo === void 0 ? void 0 : documentInfo.data) === null || _e === void 0 ? void 0 : _e.id) || routeDocumentId;
94
122
  var hasDocumentContext = Boolean(collectionSlug) &&
95
123
  documentId !== undefined &&
96
124
  documentId !== null &&
@@ -118,7 +146,7 @@ var Translator = function () {
118
146
  _b.label = 1;
119
147
  case 1:
120
148
  _b.trys.push([1, 4, 5, 6]);
121
- return [4 /*yield*/, fetch("/api/".concat(collectionSlug, "/translate?locale=").concat(fallbackLocaleCode), {
149
+ return [4 /*yield*/, fetch("/api/".concat(collectionSlug, "/translate?locale=").concat(activeLocaleCode), {
122
150
  method: 'POST',
123
151
  headers: {
124
152
  'Content-Type': 'application/json',
@@ -154,48 +182,48 @@ var Translator = function () {
154
182
  var handleCloseTranslator = (0, react_1.useCallback)(function () {
155
183
  setIsOpen(false);
156
184
  }, []);
157
- var options = [
185
+ var modelOptions = [
158
186
  {
159
187
  label: 'Default',
160
188
  value: 'default',
161
189
  },
162
190
  {
163
- label: 'GPT-4o',
164
- value: 'gpt-4o',
191
+ label: 'GPT-5 Mini ($0.25 in / $2.00 out per 1M)',
192
+ value: 'gpt-5-mini',
165
193
  },
166
194
  {
167
- label: 'GPT-3.5 Turbo (1106)',
168
- value: 'gpt-3.5-turbo-1106',
195
+ label: 'GPT-4.1 Mini ($0.80 in / $3.20 out per 1M)',
196
+ value: 'gpt-4.1-mini',
169
197
  },
170
198
  {
171
- label: 'GPT-4 Turbo (Preview)',
172
- value: 'gpt-4-turbo-preview',
199
+ label: 'o3 ($2.00 in / $8.00 out per 1M)',
200
+ value: 'o3',
173
201
  },
174
202
  {
175
- label: 'GPT-4 (most expensive)',
176
- value: 'gpt-4',
203
+ label: 'GPT-5 ($1.25 in / $10.00 out per 1M)',
204
+ value: 'gpt-5',
177
205
  },
178
206
  ];
179
- var optionsLocales = locales.map(function (locale) { return ({
180
- label: locale.label || locale.code,
207
+ var sourceLocaleOptions = locales.map(function (locale) { return ({
208
+ label: locale.label,
181
209
  value: locale.code,
182
210
  }); });
183
211
  var translatorControls = isLoading ? (react_1.default.createElement(ui_1.Button, { className: "".concat(baseClass, "__loading"), disabled: true }, "Results are loading...")) : (react_1.default.createElement("div", { className: "".concat(baseClass, "__content") },
184
212
  react_1.default.createElement("p", { className: "".concat(baseClass, "__description") }, "Choose source locale and AI model, then start translation for this document."),
185
213
  react_1.default.createElement("div", { className: "".concat(baseClass, "__field") },
186
214
  react_1.default.createElement("p", { className: "".concat(baseClass, "__label") }, "Model"),
187
- react_1.default.createElement(ui_1.SelectInput, { onChange: function (e) {
188
- setSelectedModel(e.value);
189
- }, name: "selectedModel", value: selectedModel, path: "model", options: options })),
215
+ react_1.default.createElement("div", { className: "".concat(baseClass, "__radio-group"), role: "radiogroup", "aria-label": "Model" }, modelOptions.map(function (option) { return (react_1.default.createElement("label", { key: option.value, className: "".concat(baseClass, "__radio-option") },
216
+ react_1.default.createElement("input", { type: "radio", name: "selectedModel", value: option.value, checked: selectedModel === option.value, onChange: function () { return setSelectedModel(option.value); } }),
217
+ react_1.default.createElement("span", null, option.label))); }))),
190
218
  react_1.default.createElement("div", { className: "".concat(baseClass, "__field") },
191
219
  react_1.default.createElement("p", { className: "".concat(baseClass, "__label") }, "Source locale"),
192
- react_1.default.createElement(ui_1.SelectInput, { onChange: function (e) {
193
- setSelectedSourceLocal(e.value);
194
- }, name: "sourceLocale", value: selectedSourceLocale, path: "sourceLocale", options: optionsLocales })),
220
+ react_1.default.createElement("div", { className: "".concat(baseClass, "__radio-group"), role: "radiogroup", "aria-label": "Source locale" }, sourceLocaleOptions.map(function (option) { return (react_1.default.createElement("label", { key: option.value, className: "".concat(baseClass, "__radio-option") },
221
+ react_1.default.createElement("input", { type: "radio", name: "sourceLocale", value: option.value, checked: selectedSourceLocale === option.value, onChange: function () { return setSelectedSourceLocal(option.value); } }),
222
+ react_1.default.createElement("span", null, option.label))); }))),
195
223
  react_1.default.createElement("div", { className: "".concat(baseClass, "__translation-buttons") },
196
224
  react_1.default.createElement(ui_1.Button, { buttonStyle: "primary", className: "".concat(baseClass, "__action"), disabled: isLoading || !hasDocumentContext, onClick: function () { return translate({}); } },
197
225
  react_1.default.createElement("span", null, "Translate content to all languages")),
198
- react_1.default.createElement(ui_1.Button, { buttonStyle: "secondary", className: "".concat(baseClass, "__action"), disabled: isLoading || !hasDocumentContext, onClick: function () { return translate({ codes: [fallbackLocaleCode] }); } },
226
+ react_1.default.createElement(ui_1.Button, { buttonStyle: "secondary", className: "".concat(baseClass, "__action"), disabled: isLoading || !hasDocumentContext, onClick: function () { return translate({ codes: [activeLocaleCode] }); } },
199
227
  react_1.default.createElement("span", null,
200
228
  "Translate only ",
201
229
  fallbackLocaleLabel)),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Translator/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Translator/index.tsx"],"names":[],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -70,7 +70,7 @@ var aiCaption_1 = __importDefault(require("./aiCaption"));
70
70
  var aiTranslatorPlugin = function (pluginOptions) {
71
71
  return function (incomingConfig) {
72
72
  var _a, _b;
73
- var allCollectionOptions = pluginOptions.collections, enabled = pluginOptions.enabled;
73
+ var allCollectionOptions = pluginOptions.collections;
74
74
  var translatorComponentAbsolutePath = path_1.default.resolve(__dirname, './components/Translator/index.js');
75
75
  if (translatorComponentAbsolutePath.includes("".concat(path_1.default.sep, ".next").concat(path_1.default.sep))) {
76
76
  var fromRepoRootDist = path_1.default.resolve(process.cwd(), '../dist/components/Translator/index.js');
@@ -89,10 +89,58 @@ var aiTranslatorPlugin = function (pluginOptions) {
89
89
  var translatorComponentPath = "".concat(translatorComponentPathFromBaseDir.startsWith('.')
90
90
  ? translatorComponentPathFromBaseDir
91
91
  : "./".concat(translatorComponentPathFromBaseDir), "#Translator");
92
+ var localizationConfig = typeof incomingConfig.localization === 'object' && incomingConfig.localization
93
+ ? incomingConfig.localization
94
+ : undefined;
95
+ var sanitizedLocalization = localizationConfig
96
+ ? {
97
+ defaultLocale: localizationConfig.defaultLocale,
98
+ locales: Array.isArray(localizationConfig.locales)
99
+ ? localizationConfig.locales
100
+ .map(function (locale) {
101
+ if (typeof locale === 'string') {
102
+ return {
103
+ code: locale,
104
+ label: locale,
105
+ };
106
+ }
107
+ if (!locale || typeof locale !== 'object' || typeof locale.code !== 'string') {
108
+ return null;
109
+ }
110
+ var rawLabel = locale.label;
111
+ var label = locale.code;
112
+ if (typeof rawLabel === 'string') {
113
+ label = rawLabel;
114
+ }
115
+ else if (rawLabel && typeof rawLabel === 'object') {
116
+ var defaultLocaleLabel = typeof localizationConfig.defaultLocale === 'string'
117
+ ? rawLabel[localizationConfig.defaultLocale]
118
+ : undefined;
119
+ var firstStringLabel = Object.values(rawLabel).find(function (value) { return typeof value === 'string'; });
120
+ label =
121
+ (typeof defaultLocaleLabel === 'string'
122
+ ? defaultLocaleLabel
123
+ : firstStringLabel) || locale.code;
124
+ }
125
+ return {
126
+ code: locale.code,
127
+ label: label,
128
+ };
129
+ })
130
+ .filter(function (locale) { return Boolean(locale); })
131
+ : [],
132
+ }
133
+ : undefined;
134
+ var translatorComponent = {
135
+ path: translatorComponentPath,
136
+ clientProps: {
137
+ localization: sanitizedLocalization,
138
+ },
139
+ };
92
140
  var withTranslatorControl = function (collectionConfig) {
93
141
  var _a, _b, _c, _d, _e, _f;
94
142
  return (__assign(__assign({}, collectionConfig), { admin: __assign(__assign({}, (collectionConfig.admin || {})), { components: __assign(__assign({}, (((_a = collectionConfig.admin) === null || _a === void 0 ? void 0 : _a.components) || {})), { edit: __assign(__assign({}, (((_c = (_b = collectionConfig.admin) === null || _b === void 0 ? void 0 : _b.components) === null || _c === void 0 ? void 0 : _c.edit) || {})), { beforeDocumentControls: __spreadArray(__spreadArray([], (((_f = (_e = (_d = collectionConfig.admin) === null || _d === void 0 ? void 0 : _d.components) === null || _e === void 0 ? void 0 : _e.edit) === null || _f === void 0 ? void 0 : _f.beforeDocumentControls) || []), true), [
95
- translatorComponentPath,
143
+ translatorComponent,
96
144
  ], false) }) }) }) }));
97
145
  };
98
146
  var config = __assign({}, incomingConfig);
@@ -108,32 +156,6 @@ var aiTranslatorPlugin = function (pluginOptions) {
108
156
  config.collections = (config.collections || []).map(function (existingCollection) {
109
157
  var _a;
110
158
  var collectionOptions = allCollectionOptions[existingCollection.slug];
111
- /*if (options?.adapter) {
112
- const adapter = options.adapter({
113
- collection: existingCollection,
114
- prefix: options.prefix,
115
- })
116
-
117
- if (adapter.onInit) initFunctions.push(adapter.onInit)
118
-
119
- const fields = getFields({
120
- collection: existingCollection,
121
- disablePayloadAccessControl: options.disablePayloadAccessControl,
122
- generateFileURL: options.generateFileURL,
123
- prefix: options.prefix,
124
- adapter,
125
- })
126
-
127
- const handlers = [
128
- ...(typeof existingCollection.upload === 'object' &&
129
- Array.isArray(existingCollection.upload.handlers)
130
- ? existingCollection.upload.handlers
131
- : []),
132
- ]
133
-
134
- if (!options.disablePayloadAccessControl) {
135
- handlers.push(adapter.staticHandler)
136
- }*/
137
159
  if (!collectionOptions)
138
160
  return existingCollection;
139
161
  return __assign(__assign({}, withTranslatorControl(existingCollection)), { endpoints: __spreadArray(__spreadArray([], (existingCollection.endpoints || []), true), [
@@ -143,10 +165,7 @@ var aiTranslatorPlugin = function (pluginOptions) {
143
165
  handler: (0, handleTranslate_1.createTranslatorHandler)(pluginOptions),
144
166
  },
145
167
  ], false), hooks: __assign(__assign({}, (existingCollection.hooks || {})), { afterChange: __spreadArray([], (((_a = existingCollection.hooks) === null || _a === void 0 ? void 0 : _a.afterChange) || []), true) }), fields: __spreadArray([], (existingCollection.fields || []), true) });
146
- //}
147
- return existingCollection;
148
168
  });
149
- config.admin = __assign({}, (config.admin || {}));
150
169
  // If the plugin is disabled, return the config without modifying it
151
170
  // The order of this check is important, we still want any webpack extensions to be applied even if the plugin is disabled
152
171
  if (pluginOptions.enabled === false) {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -167,7 +167,7 @@ function translateTextOrObject(_a) {
167
167
  function isTranslateNode(node, key) {
168
168
  return (key === 'text' && typeof node[key] === 'string') || key === 'name';
169
169
  }
170
- var textAsString, openai, textMap, _f, promptFunc, namespace, localization, restSettings, languageIso, promptMessage, finalPrompt, chatCompletion, newText, newItemResult, error_1, newResult;
170
+ var textAsString, openai, textMap, _f, promptFunc, namespace, localization, restSettings, languageIso, promptMessage, finalPrompt, model, usesCompletionTokens, maxTokensFromSettings, maxCompletionTokensFromSettings, temperatureFromSettings, topPFromSettings, frequencyPenaltyFromSettings, presencePenaltyFromSettings, restCompletionSettings, chatCompletion, newText, newItemResult, error_1, newResult;
171
171
  return __generator(this, function (_g) {
172
172
  switch (_g.label) {
173
173
  case 0:
@@ -206,7 +206,23 @@ function translateTextOrObject(_a) {
206
206
  language: language,
207
207
  settings: settings,
208
208
  });
209
- return [4 /*yield*/, openai.chat.completions.create(__assign({ model: /* textAsString.length > 2000 ? 'gpt-3.5-turbo-16k' :*/ 'gpt-4o', messages: finalPrompt, temperature: 0, max_tokens: 4096, top_p: 1, frequency_penalty: 0, presence_penalty: 0 }, restSettings))];
209
+ model = restSettings.model || 'gpt-4o';
210
+ usesCompletionTokens = /^(gpt-5|o[1-9])/i.test(model);
211
+ maxTokensFromSettings = restSettings.max_tokens, maxCompletionTokensFromSettings = restSettings.max_completion_tokens, temperatureFromSettings = restSettings.temperature, topPFromSettings = restSettings.top_p, frequencyPenaltyFromSettings = restSettings.frequency_penalty, presencePenaltyFromSettings = restSettings.presence_penalty, restCompletionSettings = __rest(restSettings, ["max_tokens", "max_completion_tokens", "temperature", "top_p", "frequency_penalty", "presence_penalty"]);
212
+ return [4 /*yield*/, openai.chat.completions.create(__assign(__assign(__assign({ model: model, messages: finalPrompt }, (!usesCompletionTokens
213
+ ? {
214
+ temperature: temperatureFromSettings !== null && temperatureFromSettings !== void 0 ? temperatureFromSettings : 0,
215
+ top_p: topPFromSettings !== null && topPFromSettings !== void 0 ? topPFromSettings : 1,
216
+ frequency_penalty: frequencyPenaltyFromSettings !== null && frequencyPenaltyFromSettings !== void 0 ? frequencyPenaltyFromSettings : 0,
217
+ presence_penalty: presencePenaltyFromSettings !== null && presencePenaltyFromSettings !== void 0 ? presencePenaltyFromSettings : 0,
218
+ }
219
+ : {})), (usesCompletionTokens
220
+ ? {
221
+ max_completion_tokens: maxCompletionTokensFromSettings || maxTokensFromSettings || 4096,
222
+ }
223
+ : {
224
+ max_tokens: maxTokensFromSettings || maxCompletionTokensFromSettings || 4096,
225
+ })), restCompletionSettings))];
210
226
  case 2:
211
227
  chatCompletion = _g.sent();
212
228
  if ((_d = text === null || text === void 0 ? void 0 : text.root) === null || _d === void 0 ? void 0 : _d.children) {
@@ -1 +1 @@
1
- {"version":3,"file":"translateTextAndObjects.js","sourceRoot":"","sources":["../src/translateTextAndObjects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translateTextAndObjects.js","sourceRoot":"","sources":["../src/translateTextAndObjects.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload-ai",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "homepage:": "https://polyxo.de",
5
5
  "repository": "git@github.com:payloadcms/payload-plugin-template.git",
6
6
  "description": "Payload AI tools",
@@ -53,6 +53,25 @@
53
53
  font-weight: 600;
54
54
  }
55
55
 
56
+ &__radio-group {
57
+ display: grid;
58
+ gap: calc(var(--base) * 0.25);
59
+ }
60
+
61
+ &__radio-option {
62
+ display: flex;
63
+ align-items: center;
64
+ gap: calc(var(--base) * 0.35);
65
+ font-size: 0.9rem;
66
+ color: var(--theme-elevation-900);
67
+ cursor: pointer;
68
+
69
+ input[type='radio'] {
70
+ margin: 0;
71
+ accent-color: var(--theme-success-500);
72
+ }
73
+ }
74
+
56
75
  &__translation-buttons {
57
76
  display: flex;
58
77
  flex-wrap: wrap;
@@ -2,30 +2,73 @@
2
2
 
3
3
  import React, { useCallback } from 'react'
4
4
 
5
- import { Button, SelectInput, useConfig, useDocumentInfo, useLocale } from '@payloadcms/ui'
5
+ import { Button, useDocumentInfo } from '@payloadcms/ui'
6
6
  import './Translator.scss'
7
7
 
8
- export const Translator: React.FC = () => {
9
- const baseClass = 'ai-translator'
8
+ type LocaleShape = { code: string; label?: string }
9
+
10
+ type TranslatorProps = {
11
+ localization?: {
12
+ defaultLocale?: string
13
+ locales?: Array<string | LocaleShape>
14
+ }
15
+ }
10
16
 
11
- //const { fields, getDataByPath } = useForm()
17
+ export const Translator: React.FC<TranslatorProps> = ({ localization }) => {
18
+ const baseClass = 'ai-translator'
12
19
 
13
20
  const [isOpen, setIsOpen] = React.useState(false)
14
21
  const [isLoading, setIsLoading] = React.useState(false)
15
22
  const [selectedModel, setSelectedModel] = React.useState<string>('default')
16
23
 
17
- const locale = useLocale()
18
- const config: any = useConfig()
19
- const localization = config?.localization
20
- const fallbackLocaleCode = locale?.code || 'en'
21
- const fallbackLocaleLabel = (locale?.label as string) || fallbackLocaleCode
22
- const locales = Array.isArray(localization?.locales)
23
- ? localization.locales
24
- : [{ code: fallbackLocaleCode, label: fallbackLocaleLabel }]
25
-
26
- const [selectedSourceLocale, setSelectedSourceLocal] = React.useState<string>(
27
- localization?.defaultLocale || locales[0]?.code || fallbackLocaleCode,
28
- )
24
+ const activeLocaleFromURL = React.useMemo(() => {
25
+ if (typeof window === 'undefined') return undefined
26
+ const url = new URL(window.location.href)
27
+ return url.searchParams.get('locale') || undefined
28
+ }, [])
29
+
30
+ const defaultLocaleCode = localization?.defaultLocale || 'en'
31
+
32
+ const locales = React.useMemo(() => {
33
+ const localizationLocales = localization?.locales
34
+
35
+ if (!Array.isArray(localizationLocales)) {
36
+ return [{ code: defaultLocaleCode, label: defaultLocaleCode }]
37
+ }
38
+
39
+ const normalizedLocales: LocaleShape[] = []
40
+
41
+ localizationLocales.forEach((localeEntry: any) => {
42
+ if (typeof localeEntry === 'string') {
43
+ normalizedLocales.push({
44
+ code: localeEntry,
45
+ label: localeEntry,
46
+ })
47
+ return
48
+ }
49
+
50
+ if (localeEntry && typeof localeEntry === 'object' && localeEntry.code) {
51
+ normalizedLocales.push({
52
+ code: localeEntry.code,
53
+ label: localeEntry.label || localeEntry.code,
54
+ })
55
+ }
56
+ })
57
+
58
+ return normalizedLocales.length
59
+ ? normalizedLocales
60
+ : [{ code: defaultLocaleCode, label: defaultLocaleCode }]
61
+ }, [defaultLocaleCode, localization?.locales])
62
+
63
+ const activeLocaleCode =
64
+ activeLocaleFromURL && locales.some(locale => locale.code === activeLocaleFromURL)
65
+ ? activeLocaleFromURL
66
+ : defaultLocaleCode
67
+
68
+ const fallbackLocaleLabel =
69
+ locales.find(locale => locale.code === activeLocaleCode)?.label || activeLocaleCode
70
+
71
+ const [selectedSourceLocale, setSelectedSourceLocal] = React.useState<string>(activeLocaleCode)
29
72
  const documentInfo: any = useDocumentInfo()
30
73
  const routeMatch =
31
74
  typeof window !== 'undefined'
@@ -62,21 +105,18 @@ export const Translator: React.FC = () => {
62
105
  }
63
106
  setIsLoading(true)
64
107
  try {
65
- const response = await fetch(
66
- `/api/${collectionSlug}/translate?locale=${fallbackLocaleCode}`,
67
- {
68
- method: 'POST',
69
- headers: {
70
- 'Content-Type': 'application/json',
71
- },
72
- body: JSON.stringify({
73
- id: documentId,
74
- locale: selectedSourceLocale,
75
- codes,
76
- settings,
77
- }),
108
+ const response = await fetch(`/api/${collectionSlug}/translate?locale=${activeLocaleCode}`, {
109
+ method: 'POST',
110
+ headers: {
111
+ 'Content-Type': 'application/json',
78
112
  },
79
- )
113
+ body: JSON.stringify({
114
+ id: documentId,
115
+ locale: selectedSourceLocale,
116
+ codes,
117
+ settings,
118
+ }),
119
+ })
80
120
 
81
121
  await response.json()
82
122
  } catch (error) {
@@ -94,32 +134,31 @@ export const Translator: React.FC = () => {
94
134
  setIsOpen(false)
95
135
  }, [])
96
136
 
97
- const options = [
137
+ const modelOptions = [
98
138
  {
99
139
  label: 'Default',
100
140
  value: 'default',
101
141
  },
102
142
  {
103
- label: 'GPT-4o',
104
- value: 'gpt-4o',
143
+ label: 'GPT-5 Mini ($0.25 in / $2.00 out per 1M)',
144
+ value: 'gpt-5-mini',
105
145
  },
106
146
  {
107
- label: 'GPT-3.5 Turbo (1106)',
108
- value: 'gpt-3.5-turbo-1106',
147
+ label: 'GPT-4.1 Mini ($0.80 in / $3.20 out per 1M)',
148
+ value: 'gpt-4.1-mini',
109
149
  },
110
150
  {
111
- label: 'GPT-4 Turbo (Preview)',
112
- value: 'gpt-4-turbo-preview',
151
+ label: 'o3 ($2.00 in / $8.00 out per 1M)',
152
+ value: 'o3',
113
153
  },
114
-
115
154
  {
116
- label: 'GPT-4 (most expensive)',
117
- value: 'gpt-4',
155
+ label: 'GPT-5 ($1.25 in / $10.00 out per 1M)',
156
+ value: 'gpt-5',
118
157
  },
119
158
  ]
120
159
 
121
- const optionsLocales = locales.map((locale: any) => ({
122
- label: locale.label || locale.code,
160
+ const sourceLocaleOptions = locales.map((locale: any) => ({
161
+ label: locale.label,
123
162
  value: locale.code,
124
163
  }))
125
164
 
@@ -135,28 +174,38 @@ export const Translator: React.FC = () => {
135
174
 
136
175
  <div className={`${baseClass}__field`}>
137
176
  <p className={`${baseClass}__label`}>Model</p>
138
- <SelectInput
139
- onChange={(e: any) => {
140
- setSelectedModel(e.value)
141
- }}
142
- name="selectedModel"
143
- value={selectedModel}
144
- path="model"
145
- options={options}
146
- />
177
+ <div className={`${baseClass}__radio-group`} role="radiogroup" aria-label="Model">
178
+ {modelOptions.map(option => (
179
+ <label key={option.value} className={`${baseClass}__radio-option`}>
180
+ <input
181
+ type="radio"
182
+ name="selectedModel"
183
+ value={option.value}
184
+ checked={selectedModel === option.value}
185
+ onChange={() => setSelectedModel(option.value)}
186
+ />
187
+ <span>{option.label}</span>
188
+ </label>
189
+ ))}
190
+ </div>
147
191
  </div>
148
192
 
149
193
  <div className={`${baseClass}__field`}>
150
194
  <p className={`${baseClass}__label`}>Source locale</p>
151
- <SelectInput
152
- onChange={(e: any) => {
153
- setSelectedSourceLocal(e.value)
154
- }}
155
- name="sourceLocale"
156
- value={selectedSourceLocale}
157
- path="sourceLocale"
158
- options={optionsLocales}
159
- />
195
+ <div className={`${baseClass}__radio-group`} role="radiogroup" aria-label="Source locale">
196
+ {sourceLocaleOptions.map(option => (
197
+ <label key={option.value} className={`${baseClass}__radio-option`}>
198
+ <input
199
+ type="radio"
200
+ name="sourceLocale"
201
+ value={option.value}
202
+ checked={selectedSourceLocale === option.value}
203
+ onChange={() => setSelectedSourceLocal(option.value)}
204
+ />
205
+ <span>{option.label}</span>
206
+ </label>
207
+ ))}
208
+ </div>
160
209
  </div>
161
210
 
162
211
  <div className={`${baseClass}__translation-buttons`}>
@@ -172,7 +221,7 @@ export const Translator: React.FC = () => {
172
221
  buttonStyle="secondary"
173
222
  className={`${baseClass}__action`}
174
223
  disabled={isLoading || !hasDocumentContext}
175
- onClick={() => translate({ codes: [fallbackLocaleCode] })}
224
+ onClick={() => translate({ codes: [activeLocaleCode] })}
176
225
  >
177
226
  <span>Translate only {fallbackLocaleLabel}</span>
178
227
  </Button>
package/src/plugin.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Config, Plugin } from 'payload'
1
+ import type { Plugin } from 'payload'
2
2
  import fs from 'fs'
3
3
  import path from 'path'
4
4
 
@@ -6,15 +6,13 @@ import { onInitExtension } from './onInitExtension'
6
6
  import type { PluginTypes } from './types'
7
7
  import stringTranslations from './stringTranslations'
8
8
  import { createTranslatorHandler } from './handleTranslate'
9
- import { generateText, generateTextHandler } from './generateText'
9
+ import { generateTextHandler } from './generateText'
10
10
  import aiCaptionHook from './aiCaption'
11
11
 
12
- type PluginType = (pluginOptions: PluginTypes) => Plugin
13
-
14
12
  export const aiTranslatorPlugin =
15
13
  (pluginOptions: PluginTypes): Plugin =>
16
14
  incomingConfig => {
17
- const { collections: allCollectionOptions, enabled } = pluginOptions
15
+ const { collections: allCollectionOptions } = pluginOptions
18
16
  let translatorComponentAbsolutePath = path.resolve(
19
17
  __dirname,
20
18
  './components/Translator/index.js',
@@ -42,6 +40,65 @@ export const aiTranslatorPlugin =
42
40
  : `./${translatorComponentPathFromBaseDir}`
43
41
  }#Translator`
44
42
 
43
+ const localizationConfig =
44
+ typeof incomingConfig.localization === 'object' && incomingConfig.localization
45
+ ? incomingConfig.localization
46
+ : undefined
47
+
48
+ const sanitizedLocalization = localizationConfig
49
+ ? {
50
+ defaultLocale: localizationConfig.defaultLocale,
51
+ locales: Array.isArray(localizationConfig.locales)
52
+ ? localizationConfig.locales
53
+ .map((locale: any) => {
54
+ if (typeof locale === 'string') {
55
+ return {
56
+ code: locale,
57
+ label: locale,
58
+ }
59
+ }
60
+
61
+ if (!locale || typeof locale !== 'object' || typeof locale.code !== 'string') {
62
+ return null
63
+ }
64
+
65
+ const rawLabel = locale.label
66
+ let label = locale.code
67
+
68
+ if (typeof rawLabel === 'string') {
69
+ label = rawLabel
70
+ } else if (rawLabel && typeof rawLabel === 'object') {
71
+ const defaultLocaleLabel =
72
+ typeof localizationConfig.defaultLocale === 'string'
73
+ ? rawLabel[localizationConfig.defaultLocale]
74
+ : undefined
75
+ const firstStringLabel = Object.values(rawLabel).find(
76
+ value => typeof value === 'string',
77
+ ) as string | undefined
78
+
79
+ label =
80
+ (typeof defaultLocaleLabel === 'string'
81
+ ? defaultLocaleLabel
82
+ : firstStringLabel) || locale.code
83
+ }
84
+
85
+ return {
86
+ code: locale.code,
87
+ label,
88
+ }
89
+ })
90
+ .filter((locale): locale is { code: string; label: string } => Boolean(locale))
91
+ : [],
92
+ }
93
+ : undefined
94
+
95
+ const translatorComponent = {
96
+ path: translatorComponentPath,
97
+ clientProps: {
98
+ localization: sanitizedLocalization,
99
+ },
100
+ }
101
+
45
102
  const withTranslatorControl = (collectionConfig: any) => ({
46
103
  ...collectionConfig,
47
104
  admin: {
@@ -52,7 +109,7 @@ export const aiTranslatorPlugin =
52
109
  ...(collectionConfig.admin?.components?.edit || {}),
53
110
  beforeDocumentControls: [
54
111
  ...(collectionConfig.admin?.components?.edit?.beforeDocumentControls || []),
55
- translatorComponentPath,
112
+ translatorComponent,
56
113
  ],
57
114
  },
58
115
  },
@@ -89,33 +146,6 @@ export const aiTranslatorPlugin =
89
146
  config.collections = (config.collections || []).map(existingCollection => {
90
147
  const collectionOptions = allCollectionOptions[existingCollection.slug]
91
148
 
92
- /*if (options?.adapter) {
93
- const adapter = options.adapter({
94
- collection: existingCollection,
95
- prefix: options.prefix,
96
- })
97
-
98
- if (adapter.onInit) initFunctions.push(adapter.onInit)
99
-
100
- const fields = getFields({
101
- collection: existingCollection,
102
- disablePayloadAccessControl: options.disablePayloadAccessControl,
103
- generateFileURL: options.generateFileURL,
104
- prefix: options.prefix,
105
- adapter,
106
- })
107
-
108
- const handlers = [
109
- ...(typeof existingCollection.upload === 'object' &&
110
- Array.isArray(existingCollection.upload.handlers)
111
- ? existingCollection.upload.handlers
112
- : []),
113
- ]
114
-
115
- if (!options.disablePayloadAccessControl) {
116
- handlers.push(adapter.staticHandler)
117
- }*/
118
-
119
149
  if (!collectionOptions) return existingCollection
120
150
 
121
151
  return {
@@ -139,15 +169,8 @@ export const aiTranslatorPlugin =
139
169
  },
140
170
  fields: [...(existingCollection.fields || [])],
141
171
  }
142
- //}
143
-
144
- return existingCollection
145
172
  })
146
173
 
147
- config.admin = {
148
- ...(config.admin || {}),
149
- }
150
-
151
174
  // If the plugin is disabled, return the config without modifying it
152
175
  // The order of this check is important, we still want any webpack extensions to be applied even if the plugin is disabled
153
176
  if (pluginOptions.enabled === false) {
@@ -159,14 +182,10 @@ export const aiTranslatorPlugin =
159
182
  withTranslatorControl(stringTranslations(pluginOptions)),
160
183
  ]
161
184
 
162
- config.globals = [
163
- ...(config.globals || []),
164
- // Add additional globals here
165
- ]
185
+ config.globals = [...(config.globals || [])]
166
186
 
167
187
  config.hooks = {
168
188
  ...(config.hooks || {}),
169
- // Add additional hooks here
170
189
  }
171
190
 
172
191
  config.endpoints = [
@@ -192,15 +192,37 @@ export async function translateTextOrObject({
192
192
  settings,
193
193
  })
194
194
 
195
+ const model = restSettings.model || 'gpt-4o'
196
+ const usesCompletionTokens = /^(gpt-5|o[1-9])/i.test(model)
197
+ const {
198
+ max_tokens: maxTokensFromSettings,
199
+ max_completion_tokens: maxCompletionTokensFromSettings,
200
+ temperature: temperatureFromSettings,
201
+ top_p: topPFromSettings,
202
+ frequency_penalty: frequencyPenaltyFromSettings,
203
+ presence_penalty: presencePenaltyFromSettings,
204
+ ...restCompletionSettings
205
+ } = restSettings
206
+
195
207
  const chatCompletion = await openai.chat.completions.create({
196
- model: /* textAsString.length > 2000 ? 'gpt-3.5-turbo-16k' :*/ 'gpt-4o', /// 'gpt-3.5-turbo', // gpt-3.5-turbo-1106 // gpt-3.5-turbo-16k-0613
208
+ model, // default remains gpt-4o unless overridden via settings.model
197
209
  messages: finalPrompt,
198
- temperature: 0,
199
- max_tokens: 4096,
200
- top_p: 1,
201
- frequency_penalty: 0,
202
- presence_penalty: 0,
203
- ...restSettings,
210
+ ...(!usesCompletionTokens
211
+ ? {
212
+ temperature: temperatureFromSettings ?? 0,
213
+ top_p: topPFromSettings ?? 1,
214
+ frequency_penalty: frequencyPenaltyFromSettings ?? 0,
215
+ presence_penalty: presencePenaltyFromSettings ?? 0,
216
+ }
217
+ : {}),
218
+ ...(usesCompletionTokens
219
+ ? {
220
+ max_completion_tokens: maxCompletionTokensFromSettings || maxTokensFromSettings || 4096,
221
+ }
222
+ : {
223
+ max_tokens: maxTokensFromSettings || maxCompletionTokensFromSettings || 4096,
224
+ }),
225
+ ...restCompletionSettings,
204
226
  })
205
227
 
206
228
  if (text?.root?.children) {