@alpaca-editor/core 1.0.4018 → 1.0.4027

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 (179) hide show
  1. package/dist/components/SimpleLanguageSelector.d.ts +2 -1
  2. package/dist/components/SimpleLanguageSelector.js +9 -2
  3. package/dist/components/SimpleLanguageSelector.js.map +1 -1
  4. package/dist/components/ui/input.js +1 -1
  5. package/dist/components/ui/input.js.map +1 -1
  6. package/dist/components/ui/tooltip.d.ts +3 -1
  7. package/dist/components/ui/tooltip.js +2 -2
  8. package/dist/components/ui/tooltip.js.map +1 -1
  9. package/dist/config/config.js +4 -0
  10. package/dist/config/config.js.map +1 -1
  11. package/dist/config/types.d.ts +2 -0
  12. package/dist/editor/ContentTree.js +1 -1
  13. package/dist/editor/ContentTree.js.map +1 -1
  14. package/dist/editor/ContextMenu.js +26 -0
  15. package/dist/editor/ContextMenu.js.map +1 -1
  16. package/dist/editor/FieldHistory.js +1 -1
  17. package/dist/editor/FieldHistory.js.map +1 -1
  18. package/dist/editor/FieldListField.js +2 -2
  19. package/dist/editor/FieldListField.js.map +1 -1
  20. package/dist/editor/Terminal.js +3 -1
  21. package/dist/editor/Terminal.js.map +1 -1
  22. package/dist/editor/ai/Agents.js +37 -18
  23. package/dist/editor/ai/Agents.js.map +1 -1
  24. package/dist/editor/ai/AiResponseMessage.js +71 -5
  25. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  26. package/dist/editor/ai/AiTerminal.d.ts +3 -1
  27. package/dist/editor/ai/AiTerminal.js +53 -24
  28. package/dist/editor/ai/AiTerminal.js.map +1 -1
  29. package/dist/editor/ai/AiToolCall.js +3 -3
  30. package/dist/editor/ai/AiToolCall.js.map +1 -1
  31. package/dist/editor/ai/EditorAiTerminal.d.ts +2 -1
  32. package/dist/editor/ai/EditorAiTerminal.js +2 -2
  33. package/dist/editor/ai/EditorAiTerminal.js.map +1 -1
  34. package/dist/editor/client/EditorClient.js +5 -1
  35. package/dist/editor/client/EditorClient.js.map +1 -1
  36. package/dist/editor/client/editContext.d.ts +2 -0
  37. package/dist/editor/client/editContext.js.map +1 -1
  38. package/dist/editor/client/operations.d.ts +1 -0
  39. package/dist/editor/client/operations.js +7 -0
  40. package/dist/editor/client/operations.js.map +1 -1
  41. package/dist/editor/commands/componentCommands.js +1 -1
  42. package/dist/editor/commands/componentCommands.js.map +1 -1
  43. package/dist/editor/field-types/ImageFieldEditor.js +1 -1
  44. package/dist/editor/field-types/ImageFieldEditor.js.map +1 -1
  45. package/dist/editor/field-types/MultiLineText.js +1 -1
  46. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  47. package/dist/editor/field-types/PictureFieldEditor.js +1 -1
  48. package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
  49. package/dist/editor/field-types/RawEditor.js +1 -1
  50. package/dist/editor/field-types/RawEditor.js.map +1 -1
  51. package/dist/editor/field-types/RichTextEditorComponent.js +16 -17
  52. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  53. package/dist/editor/field-types/SingleLineText.js +1 -1
  54. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  55. package/dist/editor/field-types/richtext/components/SimpleDropdown.d.ts +18 -0
  56. package/dist/editor/field-types/richtext/components/SimpleDropdown.js +71 -0
  57. package/dist/editor/field-types/richtext/components/SimpleDropdown.js.map +1 -0
  58. package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.d.ts +5 -0
  59. package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js +359 -0
  60. package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js.map +1 -0
  61. package/dist/editor/field-types/richtext/components/SimpleToolbar.d.ts +16 -0
  62. package/dist/editor/field-types/richtext/components/SimpleToolbar.js +181 -0
  63. package/dist/editor/field-types/richtext/components/SimpleToolbar.js.map +1 -0
  64. package/dist/editor/field-types/richtext/components/SimpleToolbarButton.d.ts +9 -0
  65. package/dist/editor/field-types/richtext/components/SimpleToolbarButton.js +14 -0
  66. package/dist/editor/field-types/richtext/components/SimpleToolbarButton.js.map +1 -0
  67. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +4 -0
  68. package/dist/editor/field-types/richtext/contextMenuFactory.js +193 -0
  69. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -0
  70. package/dist/editor/field-types/richtext/index.d.ts +6 -5
  71. package/dist/editor/field-types/richtext/index.js +6 -5
  72. package/dist/editor/field-types/richtext/index.js.map +1 -1
  73. package/dist/editor/field-types/richtext/types.d.ts +16 -16
  74. package/dist/editor/field-types/richtext/types.js +84 -84
  75. package/dist/editor/field-types/richtext/types.js.map +1 -1
  76. package/dist/editor/page-editor-chrome/CommentHighlighting.js +1 -1
  77. package/dist/editor/page-editor-chrome/CommentHighlighting.js.map +1 -1
  78. package/dist/editor/page-editor-chrome/FrameMenu.js +5 -5
  79. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  80. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +1 -1
  81. package/dist/editor/page-viewer/PageViewerFrame.js +3 -2
  82. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  83. package/dist/editor/services/agentService.d.ts +14 -4
  84. package/dist/editor/services/agentService.js.map +1 -1
  85. package/dist/editor/services/aiService.d.ts +1 -0
  86. package/dist/editor/services/aiService.js +1 -0
  87. package/dist/editor/services/aiService.js.map +1 -1
  88. package/dist/page-wizard/PageWizard.d.ts +2 -0
  89. package/dist/page-wizard/PageWizard.js +6 -13
  90. package/dist/page-wizard/PageWizard.js.map +1 -1
  91. package/dist/page-wizard/WizardSteps.js +3 -1
  92. package/dist/page-wizard/WizardSteps.js.map +1 -1
  93. package/dist/page-wizard/service.d.ts +1 -0
  94. package/dist/page-wizard/service.js +7 -0
  95. package/dist/page-wizard/service.js.map +1 -1
  96. package/dist/page-wizard/steps/ContentStep.js +210 -33
  97. package/dist/page-wizard/steps/ContentStep.js.map +1 -1
  98. package/dist/page-wizard/steps/FindItemsStep.js +11 -3
  99. package/dist/page-wizard/steps/FindItemsStep.js.map +1 -1
  100. package/dist/page-wizard/steps/LayoutStep.js +1 -1
  101. package/dist/page-wizard/steps/LayoutStep.js.map +1 -1
  102. package/dist/page-wizard/steps/MetaDataStep.js +1 -1
  103. package/dist/page-wizard/steps/MetaDataStep.js.map +1 -1
  104. package/dist/page-wizard/steps/SchottSelectImagesStep.d.ts +2 -0
  105. package/dist/page-wizard/steps/SchottSelectImagesStep.js +55 -0
  106. package/dist/page-wizard/steps/SchottSelectImagesStep.js.map +1 -0
  107. package/dist/page-wizard/steps/StructureStep.js +20 -5
  108. package/dist/page-wizard/steps/StructureStep.js.map +1 -1
  109. package/dist/page-wizard/steps/TranslateStep.d.ts +2 -0
  110. package/dist/page-wizard/steps/TranslateStep.js +413 -0
  111. package/dist/page-wizard/steps/TranslateStep.js.map +1 -0
  112. package/dist/page-wizard/utils/dataAccessor.d.ts +7 -0
  113. package/dist/page-wizard/utils/dataAccessor.js +76 -0
  114. package/dist/page-wizard/utils/dataAccessor.js.map +1 -1
  115. package/dist/revision.d.ts +2 -2
  116. package/dist/revision.js +2 -2
  117. package/dist/splash-screen/NewPage.js +5 -4
  118. package/dist/splash-screen/NewPage.js.map +1 -1
  119. package/dist/splash-screen/OpenPage.js +2 -1
  120. package/dist/splash-screen/OpenPage.js.map +1 -1
  121. package/dist/splash-screen/RecentPages.js +3 -1
  122. package/dist/splash-screen/RecentPages.js.map +1 -1
  123. package/dist/styles.css +57 -0
  124. package/package.json +5 -4
  125. package/src/components/SimpleLanguageSelector.tsx +11 -1
  126. package/src/components/ui/input.tsx +1 -1
  127. package/src/components/ui/tooltip.tsx +3 -2
  128. package/src/config/config.tsx +4 -0
  129. package/src/config/types.ts +6 -0
  130. package/src/editor/ContentTree.tsx +1 -1
  131. package/src/editor/ContextMenu.tsx +39 -0
  132. package/src/editor/FieldHistory.tsx +1 -1
  133. package/src/editor/FieldListField.tsx +2 -6
  134. package/src/editor/Terminal.tsx +5 -1
  135. package/src/editor/ai/Agents.tsx +90 -46
  136. package/src/editor/ai/AiResponseMessage.tsx +185 -24
  137. package/src/editor/ai/AiTerminal.tsx +104 -50
  138. package/src/editor/ai/AiToolCall.tsx +14 -4
  139. package/src/editor/ai/EditorAiTerminal.tsx +3 -0
  140. package/src/editor/client/EditorClient.tsx +9 -1
  141. package/src/editor/client/editContext.ts +2 -0
  142. package/src/editor/client/operations.ts +9 -0
  143. package/src/editor/commands/componentCommands.tsx +1 -1
  144. package/src/editor/field-types/ImageFieldEditor.tsx +1 -0
  145. package/src/editor/field-types/MultiLineText.tsx +1 -0
  146. package/src/editor/field-types/PictureFieldEditor.tsx +1 -0
  147. package/src/editor/field-types/RawEditor.tsx +1 -0
  148. package/src/editor/field-types/RichTextEditorComponent.tsx +27 -25
  149. package/src/editor/field-types/SingleLineText.tsx +1 -0
  150. package/src/editor/field-types/richtext/components/SimpleDropdown.tsx +165 -0
  151. package/src/editor/field-types/richtext/components/SimpleRichTextEditor.css +261 -0
  152. package/src/editor/field-types/richtext/components/SimpleRichTextEditor.tsx +505 -0
  153. package/src/editor/field-types/richtext/components/SimpleToolbar.tsx +362 -0
  154. package/src/editor/field-types/richtext/components/SimpleToolbarButton.tsx +36 -0
  155. package/src/editor/field-types/richtext/contextMenuFactory.tsx +264 -0
  156. package/src/editor/field-types/richtext/index.ts +6 -5
  157. package/src/editor/field-types/richtext/types.ts +168 -148
  158. package/src/editor/page-editor-chrome/CommentHighlighting.tsx +1 -1
  159. package/src/editor/page-editor-chrome/FrameMenu.tsx +16 -11
  160. package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +1 -1
  161. package/src/editor/page-viewer/PageViewerFrame.tsx +4 -3
  162. package/src/editor/services/agentService.ts +16 -5
  163. package/src/editor/services/aiService.ts +4 -0
  164. package/src/page-wizard/PageWizard.tsx +10 -13
  165. package/src/page-wizard/WizardSteps.tsx +3 -1
  166. package/src/page-wizard/service.ts +11 -0
  167. package/src/page-wizard/steps/ContentStep.tsx +376 -43
  168. package/src/page-wizard/steps/FindItemsStep.tsx +23 -3
  169. package/src/page-wizard/steps/LayoutStep.tsx +1 -1
  170. package/src/page-wizard/steps/MetaDataStep.tsx +1 -1
  171. package/src/page-wizard/steps/SchottSelectImagesStep.tsx +141 -0
  172. package/src/page-wizard/steps/StructureStep.tsx +40 -5
  173. package/src/page-wizard/steps/TranslateStep.tsx +772 -0
  174. package/src/page-wizard/utils/dataAccessor.ts +85 -0
  175. package/src/revision.ts +2 -2
  176. package/src/splash-screen/NewPage.tsx +18 -3
  177. package/src/splash-screen/OpenPage.tsx +14 -1
  178. package/src/splash-screen/RecentPages.tsx +4 -2
  179. package/tsconfig.build.json +1 -0
@@ -0,0 +1,413 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState, useCallback } from "react";
3
+ import { useEditContext } from "../../editor/client/editContext";
4
+ import { ActionButton } from "../../components/ActionButton";
5
+ import { InputTextarea } from "primereact/inputtextarea";
6
+ import { executePrompt } from "../../editor/services/aiService";
7
+ import { createWizardAiContext } from "../service";
8
+ import { SimpleLanguageSelector } from "../../components/SimpleLanguageSelector";
9
+ import { getLanguagesAndVersions } from "../../editor/services/contentService";
10
+ import { Languages, Upload, Wand2, CheckCircle, AlertCircle, Sparkles, RefreshCw, } from "lucide-react";
11
+ import { WizardBox } from "../WizardBox";
12
+ export function TranslateStep({ step, data, setData, setStepCompleted, internalState, setInternalState, parentItem, }) {
13
+ const editContext = useEditContext();
14
+ const [translatableFields, setTranslatableFields] = useState({});
15
+ const [translatedFields, setTranslatedFields] = useState({});
16
+ const [isLoading, setIsLoading] = useState(false);
17
+ const [isTranslating, setIsTranslating] = useState(false);
18
+ const [isDetectingLanguage, setIsDetectingLanguage] = useState(false);
19
+ const [targetLanguage, setTargetLanguage] = useState(data.targetLanguage || null);
20
+ const [detectedLanguageName, setDetectedLanguageName] = useState(data.detectedLanguageName || "");
21
+ const [availableSourceLanguages, setAvailableSourceLanguages] = useState([]);
22
+ const [componentNames, setComponentNames] = useState({});
23
+ // Get the current item from data (set by previous wizard steps)
24
+ const currentItem = data.currentItem || parentItem;
25
+ // Add source language state - initialize from current item's language
26
+ const [sourceLanguage, setSourceLanguage] = useState(data.sourceLanguage || currentItem?.language || "en");
27
+ // Get document content from previous wizard step
28
+ const documentContent = data.document;
29
+ const [isPublishing, setIsPublishing] = useState(false);
30
+ const [publishResults, setPublishResults] = useState({ success: [], errors: [] });
31
+ const fetchAvailableLanguages = useCallback(async () => {
32
+ if (!currentItem || !editContext)
33
+ return;
34
+ try {
35
+ const response = await getLanguagesAndVersions({
36
+ id: currentItem.id,
37
+ language: currentItem.language,
38
+ version: currentItem.version,
39
+ });
40
+ if (response.data?.languages) {
41
+ // Filter to only languages that have versions (versions > 0)
42
+ const languagesWithVersions = response.data.languages
43
+ .filter((lang) => lang.versions > 0)
44
+ .map((lang) => ({
45
+ languageCode: lang.languageCode,
46
+ name: lang.name,
47
+ icon: lang.icon,
48
+ versions: lang.versions,
49
+ }));
50
+ setAvailableSourceLanguages(languagesWithVersions);
51
+ }
52
+ }
53
+ catch (error) {
54
+ console.error("Error fetching available languages:", error);
55
+ // Fallback to all languages if there's an error
56
+ setAvailableSourceLanguages(editContext?.itemLanguages || []);
57
+ }
58
+ }, [currentItem, editContext]);
59
+ const fetchComponentNames = useCallback(async (itemIds) => {
60
+ if (!editContext || itemIds.length === 0)
61
+ return;
62
+ const names = {};
63
+ for (const itemId of itemIds) {
64
+ try {
65
+ const item = await editContext.itemsRepository.getItem({
66
+ id: itemId,
67
+ language: sourceLanguage,
68
+ version: 0,
69
+ });
70
+ if (item?.name) {
71
+ names[itemId] = item.name;
72
+ }
73
+ else {
74
+ names[itemId] = itemId; // Fallback to ID if name not found
75
+ }
76
+ }
77
+ catch (error) {
78
+ console.error(`Error fetching item ${itemId}:`, error);
79
+ names[itemId] = itemId; // Fallback to ID on error
80
+ }
81
+ }
82
+ setComponentNames(names);
83
+ }, [editContext, sourceLanguage]);
84
+ const fetchTranslatableFields = useCallback(async () => {
85
+ if (!currentItem || !editContext)
86
+ return;
87
+ setIsLoading(true);
88
+ try {
89
+ const response = await fetch("/alpaca/editor/page-wizard/getTranslatableFields", {
90
+ method: "POST",
91
+ headers: {
92
+ "Content-Type": "application/json",
93
+ },
94
+ body: JSON.stringify({
95
+ id: currentItem.id,
96
+ language: sourceLanguage,
97
+ version: currentItem.version,
98
+ }),
99
+ });
100
+ if (response.ok) {
101
+ const fieldsData = await response.json();
102
+ setTranslatableFields(fieldsData);
103
+ // Initialize translated fields structure
104
+ const initialTranslatedFields = {};
105
+ Object.keys(fieldsData).forEach((itemId) => {
106
+ if (fieldsData[itemId]) {
107
+ initialTranslatedFields[itemId] = fieldsData[itemId].map((field) => ({
108
+ fieldId: field.fieldId,
109
+ translatedValue: "",
110
+ }));
111
+ }
112
+ });
113
+ setTranslatedFields(initialTranslatedFields);
114
+ // Fetch component names for all item IDs
115
+ const itemIds = Object.keys(fieldsData);
116
+ if (itemIds.length > 0) {
117
+ fetchComponentNames(itemIds);
118
+ }
119
+ }
120
+ else {
121
+ console.error("Failed to fetch translatable fields");
122
+ }
123
+ }
124
+ catch (error) {
125
+ console.error("Error fetching translatable fields:", error);
126
+ }
127
+ finally {
128
+ setIsLoading(false);
129
+ }
130
+ }, [currentItem, editContext, sourceLanguage, fetchComponentNames]);
131
+ useEffect(() => {
132
+ fetchAvailableLanguages();
133
+ }, [fetchAvailableLanguages]);
134
+ useEffect(() => {
135
+ fetchTranslatableFields();
136
+ }, [fetchTranslatableFields, sourceLanguage]);
137
+ const detectLanguage = async () => {
138
+ if (!editContext) {
139
+ console.warn("Edit context not available for language detection");
140
+ return;
141
+ }
142
+ setIsDetectingLanguage(true);
143
+ try {
144
+ const prompt = `Analyze the following text and identify the language it is written in. Return only the language name in English (e.g., "Spanish", "French", "German", "Italian", etc.). Do not include any other text or explanation.
145
+
146
+ Text to analyze:
147
+ ${documentContent.substring(0, 1000)}`;
148
+ const abortController = new AbortController();
149
+ const result = await executePrompt([
150
+ {
151
+ content: prompt,
152
+ role: "user",
153
+ name: "user",
154
+ id: crypto.randomUUID(),
155
+ },
156
+ ], { editContext, createAiContext: createWizardAiContext }, { model: "gpt-4o-mini" }, { signal: abortController.signal }, (response) => {
157
+ try {
158
+ const content = response.content ||
159
+ response.messages?.[response.messages.length - 1]?.content;
160
+ if (content) {
161
+ const languageName = content.trim();
162
+ setDetectedLanguageName(languageName);
163
+ // Try to find matching Language object from available languages
164
+ const availableLanguages = editContext?.itemLanguages || [];
165
+ const matchingLanguage = availableLanguages.find((lang) => lang.name.toLowerCase().includes(languageName.toLowerCase()));
166
+ if (matchingLanguage) {
167
+ setTargetLanguage(matchingLanguage);
168
+ }
169
+ }
170
+ }
171
+ catch (parseError) {
172
+ console.error("Error parsing language detection response:", parseError);
173
+ }
174
+ });
175
+ if (result && result.messages && result.messages.length > 0) {
176
+ const lastMessage = result.messages[result.messages.length - 1];
177
+ if (lastMessage && lastMessage.content) {
178
+ const languageName = lastMessage.content.trim();
179
+ setDetectedLanguageName(languageName);
180
+ // Try to find matching Language object from available languages
181
+ const availableLanguages = editContext?.itemLanguages || [];
182
+ const matchingLanguage = availableLanguages.find((lang) => lang.name.toLowerCase().includes(languageName.toLowerCase()));
183
+ if (matchingLanguage) {
184
+ setTargetLanguage(matchingLanguage);
185
+ }
186
+ console.log(`Detected target language: ${languageName}`);
187
+ }
188
+ }
189
+ }
190
+ catch (error) {
191
+ console.error("Language detection error:", error);
192
+ }
193
+ finally {
194
+ setIsDetectingLanguage(false);
195
+ }
196
+ };
197
+ // Auto-detect language when document content is available
198
+ useEffect(() => {
199
+ if (!detectedLanguageName && !isDetectingLanguage) {
200
+ detectLanguage();
201
+ }
202
+ }, [detectedLanguageName, isDetectingLanguage]);
203
+ const handleTranslate = async () => {
204
+ if (!targetLanguage?.languageCode) {
205
+ console.warn("Missing target language");
206
+ return;
207
+ }
208
+ if (!editContext) {
209
+ console.error("Edit context not available");
210
+ return;
211
+ }
212
+ setIsTranslating(true);
213
+ try {
214
+ // Prepare the fields data for the AI prompt
215
+ const fieldsForTranslation = Object.entries(translatableFields).flatMap(([itemId, fields]) => fields.map((field) => ({
216
+ itemId,
217
+ fieldId: field.fieldId,
218
+ fieldName: field.fieldName,
219
+ originalValue: field.value,
220
+ })));
221
+ const prompt = `You are a translation assistant. You have been given a document in ${targetLanguage.name} and a list of fields that need to be translated from ${sourceLanguage} to ${targetLanguage.name}.
222
+
223
+ Your task is to:
224
+ 1. Match the content from the provided document to the fields that need translation
225
+ 2. Return ONLY the translated text from the document - do not change, modify, or create any new text
226
+ 3. If you cannot find a suitable translation in the document for a field, leave the translatedValue empty
227
+
228
+ Document content:
229
+ ${documentContent}
230
+
231
+ Fields to translate:
232
+ ${JSON.stringify(fieldsForTranslation, null, 2)}
233
+
234
+ Return your response as a JSON object in this exact format:
235
+ {
236
+ "translations": [
237
+ {
238
+ "itemId": "item-id",
239
+ "fieldId": "field-id",
240
+ "translatedValue": "exact text from document"
241
+ }
242
+ ]
243
+ }`;
244
+ const abortController = new AbortController();
245
+ const result = await executePrompt([
246
+ {
247
+ content: prompt,
248
+ role: "user",
249
+ name: "user",
250
+ id: crypto.randomUUID(),
251
+ },
252
+ ], { editContext, createAiContext: createWizardAiContext }, { model: "gpt-4o-mini" }, { signal: abortController.signal });
253
+ if (result && result.messages && result.messages.length > 0) {
254
+ const lastMessage = result.messages[result.messages.length - 1];
255
+ if (lastMessage && lastMessage.content) {
256
+ try {
257
+ const parsedResponse = JSON.parse(lastMessage.content);
258
+ const translations = parsedResponse.translations || [];
259
+ // Update translated fields with AI response
260
+ const updatedTranslatedFields = {
261
+ ...translatedFields,
262
+ };
263
+ translations.forEach((translation) => {
264
+ const { itemId, fieldId, translatedValue } = translation;
265
+ if (updatedTranslatedFields[itemId]) {
266
+ const fieldIndex = updatedTranslatedFields[itemId].findIndex((f) => f.fieldId === fieldId);
267
+ if (fieldIndex !== -1 &&
268
+ updatedTranslatedFields[itemId][fieldIndex]) {
269
+ updatedTranslatedFields[itemId][fieldIndex].translatedValue =
270
+ translatedValue || "";
271
+ }
272
+ }
273
+ });
274
+ setTranslatedFields(updatedTranslatedFields);
275
+ console.log(`Translation complete: ${translations.length} fields translated`);
276
+ }
277
+ catch (parseError) {
278
+ console.error("Failed to parse AI response:", parseError);
279
+ }
280
+ }
281
+ }
282
+ }
283
+ catch (error) {
284
+ console.error("Translation error:", error);
285
+ }
286
+ finally {
287
+ setIsTranslating(false);
288
+ }
289
+ };
290
+ const handleFieldChange = (itemId, fieldId, value) => {
291
+ setTranslatedFields((prev) => ({
292
+ ...prev,
293
+ [itemId]: prev[itemId]?.map((field) => field.fieldId === fieldId
294
+ ? { ...field, translatedValue: value }
295
+ : field) || [],
296
+ }));
297
+ };
298
+ const handleConfirmTranslation = async () => {
299
+ if (!editContext || !currentItem || !targetLanguage?.languageCode) {
300
+ console.error("Missing required data for publishing translations");
301
+ return;
302
+ }
303
+ setIsPublishing(true);
304
+ setPublishResults({ success: [], errors: [] });
305
+ try {
306
+ // Get all items that have translations
307
+ const itemsToTranslate = Object.entries(translatedFields).filter(([itemId, fields]) => fields.some((field) => field.translatedValue.trim() !== ""));
308
+ console.log(`Publishing translations for ${itemsToTranslate.length} items to language: ${targetLanguage.languageCode}`);
309
+ for (const [itemId, translatedFieldsList] of itemsToTranslate) {
310
+ try {
311
+ // Create ItemDescriptor for the component item
312
+ const componentItemDescriptor = {
313
+ id: itemId,
314
+ language: targetLanguage.languageCode,
315
+ version: 0,
316
+ };
317
+ // Create language version for this item
318
+ console.log(`Creating language version for item ${itemId} in language ${targetLanguage.languageCode}`);
319
+ await editContext.operations.createVersion(componentItemDescriptor);
320
+ // Update field values with translations
321
+ const fieldsWithTranslations = translatedFieldsList.filter((field) => field.translatedValue.trim() !== "");
322
+ for (const translatedField of fieldsWithTranslations) {
323
+ const fieldDescriptor = {
324
+ fieldId: translatedField.fieldId,
325
+ item: {
326
+ id: itemId,
327
+ language: targetLanguage.languageCode,
328
+ version: 0,
329
+ },
330
+ };
331
+ console.log(`Updating field ${translatedField.fieldId} for item ${itemId}`);
332
+ await editContext.operations.editField({
333
+ field: fieldDescriptor,
334
+ value: translatedField.translatedValue,
335
+ rawValue: translatedField.translatedValue,
336
+ refresh: "none",
337
+ });
338
+ }
339
+ setPublishResults((prev) => ({
340
+ ...prev,
341
+ success: [
342
+ ...prev.success,
343
+ `${itemId} (${fieldsWithTranslations.length} fields)`,
344
+ ],
345
+ }));
346
+ }
347
+ catch (error) {
348
+ console.error(`Error translating item ${itemId}:`, error);
349
+ setPublishResults((prev) => ({
350
+ ...prev,
351
+ errors: [
352
+ ...prev.errors,
353
+ `${itemId}: ${error instanceof Error ? error.message : "Unknown error"}`,
354
+ ],
355
+ }));
356
+ }
357
+ }
358
+ console.log("Translation publishing completed");
359
+ }
360
+ catch (error) {
361
+ console.error("Error during translation publishing:", error);
362
+ setPublishResults((prev) => ({
363
+ ...prev,
364
+ errors: [
365
+ ...prev.errors,
366
+ `General error: ${error instanceof Error ? error.message : "Unknown error"}`,
367
+ ],
368
+ }));
369
+ }
370
+ finally {
371
+ setIsPublishing(false);
372
+ }
373
+ };
374
+ // Check if step is completed (has translations and they've been published successfully)
375
+ useEffect(() => {
376
+ const hasTranslations = Object.values(translatedFields).some((fields) => fields.some((field) => field.translatedValue.trim() !== ""));
377
+ const hasSuccessfulPublish = publishResults.success.length > 0;
378
+ // Step is completed if we have translations and at least some have been published successfully
379
+ setStepCompleted(hasTranslations && hasSuccessfulPublish);
380
+ }, [translatedFields, publishResults, setStepCompleted]);
381
+ // Save translated fields and publish results to wizard data
382
+ useEffect(() => {
383
+ setData((prev) => ({
384
+ ...prev,
385
+ translatedFields,
386
+ publishResults,
387
+ targetLanguage,
388
+ detectedLanguageName,
389
+ sourceLanguage,
390
+ }));
391
+ }, [
392
+ translatedFields,
393
+ publishResults,
394
+ targetLanguage,
395
+ detectedLanguageName,
396
+ sourceLanguage,
397
+ setData,
398
+ ]);
399
+ const totalFields = Object.values(translatableFields).reduce((total, fields) => total + fields.length, 0);
400
+ const translatedCount = Object.values(translatedFields).reduce((total, fields) => total +
401
+ fields.filter((field) => field.translatedValue.trim() !== "").length, 0);
402
+ return (_jsxs("div", { className: "mx-auto flex flex-col gap-6 p-6", children: [_jsxs(WizardBox, { title: "Translation Setup", description: "Select source and target languages, target language will be auto-detected from the document", icon: _jsx(Languages, { className: "h-5 w-5" }), children: [_jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-2 block text-sm font-medium", children: "Source Language" }), _jsx(SimpleLanguageSelector, { selectedLanguage: sourceLanguage, onLanguageSelected: (language) => setSourceLanguage(language.languageCode), disabled: false, availableLanguages: availableSourceLanguages }), _jsx("p", { className: "mt-1 text-xs text-gray-600", children: "Select the language of the content to translate from" })] }), _jsxs("div", { children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsx("label", { className: "block text-sm font-medium", children: "Target Language" }), isDetectingLanguage && (_jsxs("div", { className: "flex items-center gap-1 text-xs text-blue-600", children: [_jsx(RefreshCw, { className: "h-3 w-3 animate-spin" }), "Detecting..."] })), detectedLanguageName && !isDetectingLanguage && (_jsxs("div", { className: "flex items-center gap-1 text-xs text-green-600", children: [_jsx(Sparkles, { className: "h-3 w-3" }), "Auto-detected"] }))] }), _jsxs("div", { className: "relative", children: [_jsx(SimpleLanguageSelector, { selectedLanguage: targetLanguage?.languageCode || "", onLanguageSelected: (language) => setTargetLanguage(language), disabled: false, className: detectedLanguageName ? "border-green-200 bg-green-50" : "" }), detectedLanguageName && (_jsx("button", { type: "button", onClick: detectLanguage, className: "absolute top-1/2 right-2 -translate-y-1/2 transform text-blue-600 hover:text-blue-800", title: "Re-detect language", children: _jsx(RefreshCw, { className: "h-4 w-4" }) }))] }), detectedLanguageName && (_jsxs("p", { className: "mt-1 text-xs text-green-600", children: ["Detected: ", detectedLanguageName, targetLanguage && ` → Selected: ${targetLanguage.name}`] }))] })] }), _jsxs(ActionButton, { onClick: handleTranslate, isLoading: isTranslating, disabled: !targetLanguage?.languageCode, className: "mt-4", variant: "outline", children: [_jsx(Wand2, { className: "mr-2 h-4 w-4" }), "Translate Fields"] })] }), _jsx(WizardBox, { title: "Translation Progress", description: `${translatedCount} of ${totalFields} fields translated`, icon: _jsx(Upload, { className: "h-5 w-5" }), children: isLoading ? (_jsx("div", { className: "py-8 text-center", children: "Loading translatable fields..." })) : (_jsx("div", { className: "space-y-6", children: Object.entries(translatableFields).map(([itemId, fields]) => (_jsxs("div", { className: "rounded-lg p-4", children: [_jsx("h4", { className: "mb-4 font-medium", children: componentNames[itemId] || "Component" }), _jsx("div", { className: "space-y-4", children: fields.map((field) => {
403
+ const translatedField = translatedFields[itemId]?.find((f) => f.fieldId === field.fieldId);
404
+ return (_jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col", children: [_jsx("label", { className: "mb-1 block text-xs font-medium", children: field.fieldName }), _jsx("div", { className: "min-h-[100px] flex-1 rounded border bg-gray-50 p-3 text-xs", children: field.value })] }), _jsxs("div", { className: "flex flex-col", children: [_jsx("label", { className: "mb-1 block text-xs font-medium", children: field.fieldName }), _jsx(InputTextarea, { value: translatedField?.translatedValue || "", onChange: (e) => handleFieldChange(itemId, field.fieldId, e.target.value), placeholder: "Translation will appear here...", rows: 4, className: "min-h-[100px] w-full flex-1 text-xs" })] })] }, field.fieldId));
405
+ }) })] }, itemId))) })) }), translatedCount > 0 && (_jsx(WizardBox, { title: "Publish Translations", description: "Create language versions and apply translations", icon: _jsx(CheckCircle, { className: "h-5 w-5" }), children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "rounded-lg border border-blue-200 bg-blue-50 p-4", children: [_jsx("h4", { className: "mb-2 font-medium text-blue-900", children: "Ready to Publish" }), _jsxs("p", { className: "text-sm text-blue-800", children: [translatedCount, " fields ready to be published to", " ", _jsx("strong", { children: targetLanguage?.name }), " language versions", detectedLanguageName &&
406
+ targetLanguage?.name
407
+ ?.toLowerCase()
408
+ .includes(detectedLanguageName.toLowerCase()) && (_jsx("span", { className: "text-green-700", children: " (auto-detected)" })), ". This will create new language versions for all translated items and update their field values."] })] }), (publishResults.success.length > 0 ||
409
+ publishResults.errors.length > 0) && (_jsxs("div", { className: "space-y-2", children: [publishResults.success.length > 0 && (_jsxs("div", { className: "rounded-lg border border-green-200 bg-green-50 p-3", children: [_jsxs("div", { className: "mb-1 flex items-center gap-2 font-medium text-green-800", children: [_jsx(CheckCircle, { className: "h-4 w-4" }), "Successfully Published (", publishResults.success.length, ")"] }), _jsx("ul", { className: "list-inside list-disc text-sm text-green-700", children: publishResults.success.map((item, index) => (_jsx("li", { children: item }, index))) })] })), publishResults.errors.length > 0 && (_jsxs("div", { className: "rounded-lg border border-red-200 bg-red-50 p-3", children: [_jsxs("div", { className: "mb-1 flex items-center gap-2 font-medium text-red-800", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), "Errors (", publishResults.errors.length, ")"] }), _jsx("ul", { className: "list-inside list-disc text-sm text-red-700", children: publishResults.errors.map((error, index) => (_jsx("li", { children: error }, index))) })] }))] })), _jsxs(ActionButton, { onClick: handleConfirmTranslation, isLoading: isPublishing, disabled: translatedCount === 0 || !targetLanguage?.languageCode, className: "w-full", variant: "outline", children: [_jsx(CheckCircle, { className: "mr-2 h-4 w-4" }), isPublishing
410
+ ? "Publishing Translations..."
411
+ : `Publish ${translatedCount} Translations to ${targetLanguage?.name || "Target Language"}`] })] }) }))] }));
412
+ }
413
+ //# sourceMappingURL=TranslateStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranslateStep.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/TranslateStep.tsx"],"names":[],"mappings":"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"}
@@ -48,3 +48,10 @@ export declare function getFilteredInputData(step: {
48
48
  [key: string]: string;
49
49
  };
50
50
  }, data: any): any;
51
+ /**
52
+ * Processes a template string by replacing expressions wrapped in curly braces with their evaluated values
53
+ * @param template - The template string containing expressions like {data.items.map(x=>x.id)}
54
+ * @param data - The data object to evaluate expressions against
55
+ * @returns Object with the processed template and any errors encountered
56
+ */
57
+ export declare function processPromptTemplate(template: string, data: any): DataAccessResult<string>;
@@ -238,4 +238,80 @@ export function getFilteredInputData(step, data) {
238
238
  }
239
239
  return result.value ?? data; // Return evaluated result or fall back to all data
240
240
  }
241
+ /**
242
+ * Processes a template string by replacing expressions wrapped in curly braces with their evaluated values
243
+ * @param template - The template string containing expressions like {data.items.map(x=>x.id)}
244
+ * @param data - The data object to evaluate expressions against
245
+ * @returns Object with the processed template and any errors encountered
246
+ */
247
+ export function processPromptTemplate(template, data) {
248
+ if (!template) {
249
+ return { value: template };
250
+ }
251
+ try {
252
+ const errors = [];
253
+ let processedTemplate = template;
254
+ // Find all expressions wrapped in curly braces
255
+ const expressionRegex = /\{([^}]+)\}/g;
256
+ let match;
257
+ const replacements = [];
258
+ while ((match = expressionRegex.exec(template)) !== null) {
259
+ const fullMatch = match[0]; // The full match including braces: {expression}
260
+ const expression = match[1]?.trim(); // The expression inside braces
261
+ if (!expression) {
262
+ continue;
263
+ }
264
+ // Evaluate the expression
265
+ const evalResult = evaluateSingleExpression(expression, data);
266
+ if (evalResult.error) {
267
+ errors.push(`Expression "${expression}": ${evalResult.error}`);
268
+ continue;
269
+ }
270
+ // Convert the result to a string representation
271
+ let replacement;
272
+ try {
273
+ if (evalResult.value === undefined || evalResult.value === null) {
274
+ replacement = "";
275
+ }
276
+ else if (typeof evalResult.value === "string") {
277
+ replacement = evalResult.value;
278
+ }
279
+ else if (Array.isArray(evalResult.value)) {
280
+ replacement = JSON.stringify(evalResult.value);
281
+ }
282
+ else if (typeof evalResult.value === "object") {
283
+ replacement = JSON.stringify(evalResult.value);
284
+ }
285
+ else {
286
+ replacement = String(evalResult.value);
287
+ }
288
+ }
289
+ catch (stringifyError) {
290
+ replacement = String(evalResult.value);
291
+ }
292
+ replacements.push({ original: fullMatch, replacement });
293
+ }
294
+ // If there are any errors, don't process the template at all
295
+ if (errors.length > 0) {
296
+ return {
297
+ value: undefined,
298
+ error: `Template processing failed:\n${errors.join("\n")}`,
299
+ };
300
+ }
301
+ // Apply all replacements
302
+ for (const { original, replacement } of replacements) {
303
+ processedTemplate = processedTemplate.replace(original, replacement);
304
+ }
305
+ return {
306
+ value: processedTemplate,
307
+ error: undefined,
308
+ };
309
+ }
310
+ catch (error) {
311
+ return {
312
+ value: undefined,
313
+ error: `Failed to process template: ${error instanceof Error ? error.message : String(error)}`,
314
+ };
315
+ }
316
+ }
241
317
  //# sourceMappingURL=dataAccessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataAccessor.js","sourceRoot":"","sources":["../../../src/page-wizard/utils/dataAccessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataAccessor.js","sourceRoot":"","sources":["../../../src/page-wizard/utils/dataAccessor.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.0.4018";
2
- export declare const buildDate = "2025-07-25 01:50:23";
1
+ export declare const version = "1.0.4027";
2
+ export declare const buildDate = "2025-08-01 01:57:56";
package/dist/revision.js CHANGED
@@ -1,3 +1,3 @@
1
- export const version = "1.0.4018";
2
- export const buildDate = "2025-07-25 01:50:23";
1
+ export const version = "1.0.4027";
2
+ export const buildDate = "2025-08-01 01:57:56";
3
3
  //# sourceMappingURL=revision.js.map
@@ -13,7 +13,7 @@ import { Card } from "../components/ui/card";
13
13
  import { CardConnector } from "../components/ui/CardConnector";
14
14
  import { Logo } from "../editor/ui/Icons";
15
15
  import { ActionButton } from "../components/ActionButton";
16
- import { FilePenLine, Palette } from "lucide-react";
16
+ import { FilePenLine, Palette, X } from "lucide-react";
17
17
  import { toast } from "sonner";
18
18
  export function NewPage({ selectedItemId }) {
19
19
  const [selectedItem, setSelectedItem] = useState(null);
@@ -50,6 +50,7 @@ export function NewPage({ selectedItemId }) {
50
50
  useEffect(() => {
51
51
  const loadItem = async () => {
52
52
  const itemId = selectedItemId ||
53
+ editContext?.contentEditorItem?.id ||
53
54
  editContext?.configuration.editor.dialogs.newPage.expandTreeNode;
54
55
  if (!itemId)
55
56
  return;
@@ -62,7 +63,7 @@ export function NewPage({ selectedItemId }) {
62
63
  setSelectedItem(item);
63
64
  };
64
65
  loadItem();
65
- }, [selectedItemId]);
66
+ }, [selectedItemId, editContext?.contentEditorItem?.id]);
66
67
  const isValidDebounced = useDebouncedCallback(async () => {
67
68
  if (!selectedItem)
68
69
  return;
@@ -113,9 +114,9 @@ export function NewPage({ selectedItemId }) {
113
114
  event: ev,
114
115
  });
115
116
  };
116
- return (_jsxs("div", { className: "flex h-full flex-col gap-6 bg-gray-100 p-4 md:p-8", children: [_jsxs("div", { className: "flex gap-4", children: [_jsx(Logo, { className: "h-8 w-8" }), _jsxs("div", { className: "flex-1 text-neutral-800", children: [_jsx("div", { className: "text-lg font-semibold md:text-xl", children: "Create New Page" }), _jsx("div", { className: "mt-1 text-xs font-light md:text-sm", children: "Select a location, choose a template or wizard, and name your new page" })] }), _jsx("div", { className: "flex items-start", children: _jsx(ActionButton, { onClick: () => editContext?.switchView("open-page"), children: "Open Existing" }) })] }), _jsxs("div", { className: "flex flex-1 flex-col md:flex-row", children: [" ", _jsx("div", { className: `tour-pick-location w-full md:w-1/2 ${selectedItem ? "h-full md:h-full" : ""}`, children: _jsx(Card, { icon: _jsx("i", { className: "pi pi-map-marker text-sm" }), title: "Pick Location", description: "Select where to create your new page", noPadding: true, className: selectedItem ? "h-full" : "h-auto", children: _jsx("div", { className: `px-4 pb-4 md:px-6 ${selectedItem ? "h-full" : ""}`, children: _jsxs("div", { className: `relative ${selectedItem ? "h-full" : ""}`, children: [" ", _jsx("div", { className: `overflow-auto ${selectedItem
117
+ return (_jsxs("div", { className: "flex h-full flex-col gap-6 bg-gray-100 p-4 md:p-8", children: [_jsxs("div", { className: "flex gap-4", children: [_jsx(Logo, { className: "h-8 w-8" }), _jsxs("div", { className: "flex-1 text-neutral-800", children: [_jsx("div", { className: "text-lg font-semibold md:text-xl", children: "Create New Page" }), _jsx("div", { className: "mt-1 text-xs font-light md:text-sm", children: "Select a location, choose a template or wizard, and name your new page" })] }), _jsxs("div", { className: "flex items-start gap-2", children: [_jsx(ActionButton, { onClick: () => editContext?.switchView("open-page"), children: "Open Existing" }), _jsx(ActionButton, { onClick: () => editContext?.switchView(editContext.previousViewName || "splash-screen"), variant: "ghost", className: "p-2", "aria-label": "Close", children: _jsx(X, { className: "h-4 w-4" }) })] })] }), _jsxs("div", { className: "flex flex-1 flex-col md:flex-row", children: [" ", _jsx("div", { className: `tour-pick-location w-full md:w-1/2 ${selectedItem ? "h-full md:h-full" : ""}`, children: _jsx(Card, { icon: _jsx("i", { className: "pi pi-map-marker text-sm" }), title: "Pick Location", description: "Select where to create your new page", noPadding: true, className: selectedItem ? "h-full" : "h-auto", children: _jsx("div", { className: `px-4 pb-4 md:px-6 ${selectedItem ? "h-full" : ""}`, children: _jsxs("div", { className: `relative ${selectedItem ? "h-full" : ""}`, children: [" ", _jsx("div", { className: `overflow-auto ${selectedItem
117
118
  ? "absolute inset-0"
118
- : "min-h-[300px] md:min-h-[400px]"}`, children: _jsx(ScrollingContentTree, { selectedItemId: selectedItem?.id || selectedItemId, onSelectionChange: (selection) => {
119
+ : "min-h-[300px] md:min-h-[400px]"}`, children: _jsx(ScrollingContentTree, { selectedItemId: selectedItem?.id || selectedItemId, expandedItemId: selectedItem?.id || selectedItemId, scrollToSelected: true, onSelectionChange: (selection) => {
119
120
  const selected = selection[0];
120
121
  if (selected)
121
122
  setSelectedItem(selected);