@parhelia/core 0.1.12694 → 0.1.12710
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.
- package/dist/editor/client/EditorShell.js +19 -2
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/commands/itemCommands.js +4 -80
- package/dist/editor/commands/itemCommands.js.map +1 -1
- package/dist/editor/menubar/ItemLanguageVersion.js +1 -1
- package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
- package/dist/editor/menubar/VersionPreviewCard.d.ts +6 -0
- package/dist/editor/menubar/VersionPreviewCard.js +267 -0
- package/dist/editor/menubar/VersionPreviewCard.js.map +1 -0
- package/dist/editor/menubar/VersionSelector.d.ts +2 -1
- package/dist/editor/menubar/VersionSelector.js +50 -7
- package/dist/editor/menubar/VersionSelector.js.map +1 -1
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +2 -1
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +26 -298
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.d.ts +2 -1
- package/dist/editor/page-viewer/MiniMap.js +3 -2
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/pageModel.d.ts +4 -0
- package/dist/editor/ui/ExportItemsDialog.d.ts +10 -0
- package/dist/editor/ui/ExportItemsDialog.js +19 -0
- package/dist/editor/ui/ExportItemsDialog.js.map +1 -0
- package/dist/editor/ui/ImportItemsDialog.d.ts +10 -0
- package/dist/editor/ui/ImportItemsDialog.js +40 -0
- package/dist/editor/ui/ImportItemsDialog.js.map +1 -0
- package/dist/editor/version-diff/versionDiffHighlightStyles.d.ts +8 -0
- package/dist/editor/version-diff/versionDiffHighlightStyles.js +9 -0
- package/dist/editor/version-diff/versionDiffHighlightStyles.js.map +1 -0
- package/dist/editor/version-diff/versionDiffTargets.d.ts +48 -0
- package/dist/editor/version-diff/versionDiffTargets.js +284 -0
- package/dist/editor/version-diff/versionDiffTargets.js.map +1 -0
- package/dist/editor/views/CompareView.js +4 -4
- package/dist/editor/views/CompareView.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/ParheliaAssistantChat.js +168 -5
- package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
- package/dist/task-board/TaskBoardWorkspace.js +4 -7
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { diffChars } from "diff";
|
|
2
|
+
import { getLanguagesAndVersions, getPageComponents, } from "../services/contentService";
|
|
3
|
+
export async function resolveVersionDiffTargets({ iframe, pageItem, getItem, baseline, previousVersionCache, }) {
|
|
4
|
+
const renderedFields = collectRenderedFields(iframe, pageItem);
|
|
5
|
+
const renderedComponents = collectRenderedComponents(iframe);
|
|
6
|
+
const itemsToResolve = getUniqueItems([
|
|
7
|
+
pageItem,
|
|
8
|
+
...renderedFields.map((field) => field.descriptor.item),
|
|
9
|
+
]);
|
|
10
|
+
if (renderedFields.length === 0 && renderedComponents.length === 0) {
|
|
11
|
+
return { fieldTargets: [], componentTargets: [] };
|
|
12
|
+
}
|
|
13
|
+
const baselineEntries = baseline.type === "compare"
|
|
14
|
+
? resolveCompareBaselineEntries(itemsToResolve, baseline.compareTo)
|
|
15
|
+
: await resolvePreviousVersionBaselineEntries(itemsToResolve, getItem, previousVersionCache);
|
|
16
|
+
const baselinePageEntry = baselineEntries.find((entry) => entry.currentItemKey === itemKey(pageItem));
|
|
17
|
+
if (baselineEntries.length === 0) {
|
|
18
|
+
return { fieldTargets: [], componentTargets: [] };
|
|
19
|
+
}
|
|
20
|
+
const baselineItemsByCurrentItemKey = new Map();
|
|
21
|
+
await Promise.all(baselineEntries.map(async (entry) => {
|
|
22
|
+
const item = await getItem(entry.baselineDescriptor);
|
|
23
|
+
if (item) {
|
|
24
|
+
baselineItemsByCurrentItemKey.set(entry.currentItemKey, item);
|
|
25
|
+
}
|
|
26
|
+
}));
|
|
27
|
+
const fieldTargets = renderedFields
|
|
28
|
+
.map((renderedField) => {
|
|
29
|
+
const currentItemKey = itemKey(renderedField.descriptor.item);
|
|
30
|
+
const baselineItem = baselineItemsByCurrentItemKey.get(currentItemKey);
|
|
31
|
+
const baselineField = baselineItem?.fields.find((field) => normalizeId(field.id) === normalizeId(renderedField.descriptor.fieldId));
|
|
32
|
+
if (!baselineField)
|
|
33
|
+
return undefined;
|
|
34
|
+
const baselineText = getFieldText(baselineField);
|
|
35
|
+
if (baselineText === renderedField.currentText)
|
|
36
|
+
return undefined;
|
|
37
|
+
const ranges = getChangedCurrentRanges(baselineText, renderedField.currentText);
|
|
38
|
+
return {
|
|
39
|
+
...renderedField,
|
|
40
|
+
baselineText,
|
|
41
|
+
ranges,
|
|
42
|
+
hasDeletionOnlyChange: ranges.length === 0,
|
|
43
|
+
};
|
|
44
|
+
})
|
|
45
|
+
.filter((target) => !!target);
|
|
46
|
+
const [currentProviderComponents, baselineProviderComponents] = await Promise.all([
|
|
47
|
+
getPageComponents(pageItem),
|
|
48
|
+
baselinePageEntry
|
|
49
|
+
? getPageComponents(baselinePageEntry.baselineDescriptor)
|
|
50
|
+
: Promise.resolve([]),
|
|
51
|
+
]);
|
|
52
|
+
const baselineProviderIds = new Set(baselineProviderComponents.map((component) => normalizeId(component.id)));
|
|
53
|
+
const componentTargets = currentProviderComponents
|
|
54
|
+
.filter((component) => !baselineProviderIds.has(normalizeId(component.id)))
|
|
55
|
+
.map(componentToDiffTarget);
|
|
56
|
+
return { fieldTargets, componentTargets };
|
|
57
|
+
}
|
|
58
|
+
function collectRenderedFields(iframe, fallbackItem) {
|
|
59
|
+
const body = iframe.contentWindow?.document.body;
|
|
60
|
+
if (!body)
|
|
61
|
+
return [];
|
|
62
|
+
const renderedFieldsByKey = new Map();
|
|
63
|
+
body.querySelectorAll("[data-fieldid][data-itemid]").forEach((element) => {
|
|
64
|
+
const itemId = element.getAttribute("data-itemid");
|
|
65
|
+
const fieldId = element.getAttribute("data-fieldid");
|
|
66
|
+
if (!itemId || !fieldId)
|
|
67
|
+
return;
|
|
68
|
+
const rawVersion = parseInt(element.getAttribute("data-version") || "", 10);
|
|
69
|
+
const descriptor = {
|
|
70
|
+
item: {
|
|
71
|
+
id: itemId,
|
|
72
|
+
language: element.getAttribute("data-language") || fallbackItem.language,
|
|
73
|
+
version: Number.isFinite(rawVersion) ? rawVersion : fallbackItem.version,
|
|
74
|
+
database: fallbackItem.database,
|
|
75
|
+
},
|
|
76
|
+
fieldId,
|
|
77
|
+
};
|
|
78
|
+
const key = fieldKey(descriptor);
|
|
79
|
+
if (!renderedFieldsByKey.has(key)) {
|
|
80
|
+
renderedFieldsByKey.set(key, {
|
|
81
|
+
descriptor,
|
|
82
|
+
currentText: element.textContent || "",
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
return Array.from(renderedFieldsByKey.values());
|
|
87
|
+
}
|
|
88
|
+
function resolveCompareBaselineEntries(currentItems, compareTo) {
|
|
89
|
+
if (!compareTo?.language)
|
|
90
|
+
return [];
|
|
91
|
+
return currentItems.map((item) => ({
|
|
92
|
+
currentItemKey: itemKey(item),
|
|
93
|
+
baselineDescriptor: {
|
|
94
|
+
...item,
|
|
95
|
+
language: compareTo.language,
|
|
96
|
+
version: compareTo.version,
|
|
97
|
+
database: item.database ?? compareTo.database,
|
|
98
|
+
},
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
async function resolvePreviousVersionBaselineEntries(currentItems, getItem, previousVersionCache) {
|
|
102
|
+
const entries = await Promise.all(currentItems.map(async (item) => {
|
|
103
|
+
const currentItem = await getItem(item);
|
|
104
|
+
const currentVersion = currentItem?.version || item.version;
|
|
105
|
+
if (!currentVersion || currentVersion <= 1)
|
|
106
|
+
return undefined;
|
|
107
|
+
const cacheKey = `${normalizeId(item.id)}|${item.language}|${currentVersion}`;
|
|
108
|
+
let previousVersion = previousVersionCache.get(cacheKey);
|
|
109
|
+
if (previousVersion === undefined) {
|
|
110
|
+
const result = await getLanguagesAndVersions({
|
|
111
|
+
...item,
|
|
112
|
+
version: currentVersion,
|
|
113
|
+
});
|
|
114
|
+
const versions = result?.data?.versions?.map((x) => x.version) || [];
|
|
115
|
+
previousVersion =
|
|
116
|
+
versions
|
|
117
|
+
.filter((version) => version < currentVersion)
|
|
118
|
+
.sort((a, b) => b - a)[0] ?? null;
|
|
119
|
+
previousVersionCache.set(cacheKey, previousVersion);
|
|
120
|
+
}
|
|
121
|
+
if (!previousVersion)
|
|
122
|
+
return undefined;
|
|
123
|
+
return {
|
|
124
|
+
currentItemKey: itemKey(item),
|
|
125
|
+
baselineDescriptor: {
|
|
126
|
+
...item,
|
|
127
|
+
version: previousVersion,
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}));
|
|
131
|
+
return entries.filter((entry) => !!entry);
|
|
132
|
+
}
|
|
133
|
+
function getUniqueItems(itemDescriptors) {
|
|
134
|
+
const items = new Map();
|
|
135
|
+
itemDescriptors.forEach((item) => {
|
|
136
|
+
const key = itemKey(item);
|
|
137
|
+
if (!items.has(key))
|
|
138
|
+
items.set(key, item);
|
|
139
|
+
});
|
|
140
|
+
return Array.from(items.values());
|
|
141
|
+
}
|
|
142
|
+
function collectRenderedComponents(iframe) {
|
|
143
|
+
const body = iframe.contentWindow?.document.body;
|
|
144
|
+
if (!body)
|
|
145
|
+
return [];
|
|
146
|
+
const components = new Map();
|
|
147
|
+
body
|
|
148
|
+
.querySelectorAll("script[data-component-start]")
|
|
149
|
+
.forEach((element) => {
|
|
150
|
+
const id = element.getAttribute("data-component-start");
|
|
151
|
+
if (!id || components.has(normalizeId(id)))
|
|
152
|
+
return;
|
|
153
|
+
components.set(normalizeId(id), {
|
|
154
|
+
id,
|
|
155
|
+
visualId: id,
|
|
156
|
+
dataItemId: element.getAttribute("data-itemid"),
|
|
157
|
+
dataTypeId: element.getAttribute("data-typeid"),
|
|
158
|
+
dataLayoutId: element.getAttribute("data-layoutid"),
|
|
159
|
+
dataPlaceholderKey: element.getAttribute("data-placeholderkey"),
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
return Array.from(components.values());
|
|
163
|
+
}
|
|
164
|
+
function componentToDiffTarget(component) {
|
|
165
|
+
const visualId = component.dataSourceItem?.id || component.id;
|
|
166
|
+
return {
|
|
167
|
+
id: component.id,
|
|
168
|
+
visualId,
|
|
169
|
+
dataItemId: component.dataSourceItem?.id,
|
|
170
|
+
dataTypeId: component.renderingItemId,
|
|
171
|
+
providerPlaceholder: component.placeholder,
|
|
172
|
+
providerRenderingItemId: component.renderingItemId,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function getChangedCurrentRanges(baselineText, currentText) {
|
|
176
|
+
const ranges = [];
|
|
177
|
+
let currentPosition = 0;
|
|
178
|
+
diffChars(baselineText, currentText).forEach((part) => {
|
|
179
|
+
if (part.added) {
|
|
180
|
+
ranges.push([currentPosition, currentPosition + part.value.length]);
|
|
181
|
+
currentPosition += part.value.length;
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (!part.removed) {
|
|
185
|
+
currentPosition += part.value.length;
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
return mergeRanges(ranges);
|
|
189
|
+
}
|
|
190
|
+
function mergeRanges(ranges) {
|
|
191
|
+
if (ranges.length <= 1)
|
|
192
|
+
return ranges;
|
|
193
|
+
const sorted = [...ranges].sort((a, b) => a[0] - b[0]);
|
|
194
|
+
const merged = [];
|
|
195
|
+
sorted.forEach(([start, end]) => {
|
|
196
|
+
const previous = merged[merged.length - 1];
|
|
197
|
+
if (previous && start <= previous[1] + 1) {
|
|
198
|
+
previous[1] = Math.max(previous[1], end);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
merged.push([start, end]);
|
|
202
|
+
});
|
|
203
|
+
return merged;
|
|
204
|
+
}
|
|
205
|
+
export function findFieldElements(iframe, descriptor) {
|
|
206
|
+
const body = iframe.contentWindow?.document.body;
|
|
207
|
+
if (!body)
|
|
208
|
+
return [];
|
|
209
|
+
return Array.from(body.querySelectorAll("[data-fieldid][data-itemid]")).filter((element) => {
|
|
210
|
+
const itemId = element.getAttribute("data-itemid");
|
|
211
|
+
const fieldId = element.getAttribute("data-fieldid");
|
|
212
|
+
return (normalizeId(itemId) === normalizeId(descriptor.item.id) &&
|
|
213
|
+
normalizeId(fieldId) === normalizeId(descriptor.fieldId));
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
export function getTextNodeAtOffset(root, offset) {
|
|
217
|
+
const doc = root.ownerDocument;
|
|
218
|
+
const nodeFilter = doc.defaultView?.NodeFilter ?? NodeFilter;
|
|
219
|
+
const walker = doc.createTreeWalker(root, nodeFilter.SHOW_TEXT);
|
|
220
|
+
let currentNode;
|
|
221
|
+
while ((currentNode = walker.nextNode())) {
|
|
222
|
+
const nodeLength = currentNode.textContent?.length || 0;
|
|
223
|
+
if (offset <= nodeLength) {
|
|
224
|
+
return { node: currentNode, offset };
|
|
225
|
+
}
|
|
226
|
+
offset -= nodeLength;
|
|
227
|
+
}
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
function getFieldText(field) {
|
|
231
|
+
const value = typeof field.rawValue === "string"
|
|
232
|
+
? field.rawValue
|
|
233
|
+
: typeof field.value === "string"
|
|
234
|
+
? field.value
|
|
235
|
+
: field.value == null
|
|
236
|
+
? ""
|
|
237
|
+
: String(field.value);
|
|
238
|
+
return stripHtml(value);
|
|
239
|
+
}
|
|
240
|
+
export function findComponentRectById(iframe, componentId) {
|
|
241
|
+
const body = iframe.contentWindow?.document.body;
|
|
242
|
+
if (!body)
|
|
243
|
+
return null;
|
|
244
|
+
const startMarker = body.querySelector(`[data-component-start='${componentId}']`);
|
|
245
|
+
const endMarker = body.querySelector(`[data-component-end='${componentId}']`);
|
|
246
|
+
let startElement = startMarker?.nextElementSibling;
|
|
247
|
+
while (startElement &&
|
|
248
|
+
startElement !== endMarker &&
|
|
249
|
+
startElement.tagName === "SCRIPT") {
|
|
250
|
+
startElement = startElement.nextElementSibling;
|
|
251
|
+
}
|
|
252
|
+
if (!startElement || startElement === endMarker) {
|
|
253
|
+
startElement = body.querySelector(`[data-component-id='${componentId}']`);
|
|
254
|
+
}
|
|
255
|
+
if (!startElement)
|
|
256
|
+
return null;
|
|
257
|
+
let endElement = endMarker?.previousElementSibling || startElement;
|
|
258
|
+
while (endElement && endElement.tagName === "SCRIPT") {
|
|
259
|
+
endElement = endElement.previousElementSibling;
|
|
260
|
+
}
|
|
261
|
+
const startRect = startElement.getBoundingClientRect();
|
|
262
|
+
const endRect = (endElement || startElement).getBoundingClientRect();
|
|
263
|
+
return new DOMRect(startRect.x, startRect.y, endRect.x + endRect.width - startRect.x, endRect.y + endRect.height - startRect.y);
|
|
264
|
+
}
|
|
265
|
+
function stripHtml(value) {
|
|
266
|
+
if (!value.includes("<"))
|
|
267
|
+
return value;
|
|
268
|
+
const doc = globalThis.document;
|
|
269
|
+
if (!doc)
|
|
270
|
+
return value.replace(/<[^>]*>/g, "");
|
|
271
|
+
const element = doc.createElement("div");
|
|
272
|
+
element.innerHTML = value;
|
|
273
|
+
return element.textContent || element.innerText || "";
|
|
274
|
+
}
|
|
275
|
+
export function fieldKey(descriptor) {
|
|
276
|
+
return `${itemKey(descriptor.item)}|${normalizeId(descriptor.fieldId)}`;
|
|
277
|
+
}
|
|
278
|
+
function itemKey(item) {
|
|
279
|
+
return `${normalizeId(item.id)}|${item.language}|${item.version}`;
|
|
280
|
+
}
|
|
281
|
+
function normalizeId(id) {
|
|
282
|
+
return (id || "").replace(/[{}]/g, "").toLowerCase();
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=versionDiffTargets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionDiffTargets.js","sourceRoot":"","sources":["../../../src/editor/version-diff/versionDiffTargets.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,20 +103,20 @@ export function CompareView({ slotCloseButton, }) {
|
|
|
103
103
|
setCompareTo(compareToItemDescriptor);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
const originalSelector = (_jsxs("div", { className: "flex flex-1
|
|
106
|
+
const originalSelector = (_jsxs("div", { className: "flex flex-1 shrink-0 items-center justify-center gap-1 border-b bg-white p-1 text-sm text-gray-600", children: [_jsx(LanguageSelector, { selectedLanguage: slotContext.itemDescriptor?.language, showAllLanguagesSwitch: false, onLanguageSelected: (language) => {
|
|
107
107
|
editContext.loadItem({
|
|
108
108
|
id: slotContext.itemDescriptor.id,
|
|
109
109
|
language: language.languageCode,
|
|
110
110
|
version: 0,
|
|
111
111
|
});
|
|
112
|
-
} }), compareTo?.language && (_jsx(VersionSelector, { readOnly: true, versions: editContext.itemVersions, itemDescriptor: slotContext.itemDescriptor, actualVersion: slotContext.item?.version, onVersionSelected: (version) => {
|
|
112
|
+
} }), compareTo?.language && (_jsx(VersionSelector, { readOnly: true, versions: editContext.itemVersions, itemDescriptor: slotContext.itemDescriptor, actualVersion: slotContext.item?.version, showVersionPreviews: slotContext.item?.hasLayout === true, onVersionSelected: (version) => {
|
|
113
113
|
editContext.loadItem({
|
|
114
114
|
id: slotContext.itemDescriptor.id,
|
|
115
115
|
language: slotContext.itemDescriptor.language,
|
|
116
116
|
version,
|
|
117
117
|
});
|
|
118
118
|
} }))] }));
|
|
119
|
-
const compareToSelector = (_jsxs("div", { className: "flex flex-1
|
|
119
|
+
const compareToSelector = (_jsxs("div", { className: "flex flex-1 shrink-0 items-center justify-center gap-1 border-b bg-white p-1 text-sm text-gray-600", children: [_jsx(LanguageSelector, { selectedLanguage: compareTo?.language, showAllLanguagesSwitch: false, onLanguageSelected: (language) => {
|
|
120
120
|
if (!compareTo?.id)
|
|
121
121
|
return;
|
|
122
122
|
updateCompareTo({
|
|
@@ -124,7 +124,7 @@ export function CompareView({ slotCloseButton, }) {
|
|
|
124
124
|
language: language.languageCode,
|
|
125
125
|
version: compareTo.version,
|
|
126
126
|
});
|
|
127
|
-
} }), compareTo?.language && (_jsx(VersionSelector, { readOnly: true, versions: compareToVersions, itemDescriptor: compareTo, actualVersion: compareToItem?.version, onVersionSelected: (version) => {
|
|
127
|
+
} }), compareTo?.language && (_jsx(VersionSelector, { readOnly: true, versions: compareToVersions, itemDescriptor: compareTo, actualVersion: compareToItem?.version, showVersionPreviews: compareToItem?.hasLayout === true, onVersionSelected: (version) => {
|
|
128
128
|
if (!compareTo?.id)
|
|
129
129
|
return;
|
|
130
130
|
updateCompareTo({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompareView.js","sourceRoot":"","sources":["../../../src/editor/views/CompareView.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CompareView.js","sourceRoot":"","sources":["../../../src/editor/views/CompareView.tsx"],"names":[],"mappings":"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"}
|
package/dist/revision.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.1.
|
|
2
|
-
export declare const buildDate = "2026-04-28
|
|
1
|
+
export declare const version = "0.1.12710";
|
|
2
|
+
export declare const buildDate = "2026-04-28 16:31:48";
|
package/dist/revision.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const version = "0.1.
|
|
2
|
-
export const buildDate = "2026-04-28
|
|
1
|
+
export const version = "0.1.12710";
|
|
2
|
+
export const buildDate = "2026-04-28 16:31:48";
|
|
3
3
|
//# sourceMappingURL=revision.js.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useEffect, useCallback, startTransition, useRef, } from "react";
|
|
4
4
|
import { flushSync } from "react-dom";
|
|
5
|
-
import { Loader2, RotateCcw, History, ArrowRight, X, } from "lucide-react";
|
|
5
|
+
import { Loader2, RotateCcw, History, ArrowRight, X, Paperclip, FileText, Image as ImageIcon, } from "lucide-react";
|
|
6
6
|
import { useEditContext } from "../editor/client/editContext";
|
|
7
7
|
import { loadAiProfiles } from "../editor/services/aiService";
|
|
8
|
-
import { closeAgent, getAgentsGrouped, } from "../editor/services/agentService";
|
|
8
|
+
import { AGENT_DOCUMENT_UPLOADED_EVENT, AGENT_DOCUMENTS_CHANGED_EVENT, closeAgent, deleteDocument, getAgentDocuments, getAgentsGrouped, uploadDocument, } from "../editor/services/agentService";
|
|
9
9
|
import { AgentTerminal } from "../editor/ai/AgentTerminal";
|
|
10
10
|
import { ParheliaIconWhite } from "../editor/ui/ParheliaIconWhite";
|
|
11
11
|
import { cn } from "../lib/utils";
|
|
@@ -48,6 +48,11 @@ export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
|
|
|
48
48
|
const [initialPrompt, setInitialPrompt] = useState(undefined);
|
|
49
49
|
const [samplePrompts, setSamplePrompts] = useState(SUGGESTED_PROMPTS);
|
|
50
50
|
const inputRef = useRef(null);
|
|
51
|
+
const fileInputRef = useRef(null);
|
|
52
|
+
const [attachedDocs, setAttachedDocs] = useState([]);
|
|
53
|
+
const [isUploading, setIsUploading] = useState(false);
|
|
54
|
+
const [uploadError, setUploadError] = useState(null);
|
|
55
|
+
const [isDragOver, setIsDragOver] = useState(false);
|
|
51
56
|
// Create a new agent
|
|
52
57
|
const createNewAgent = useCallback((selectedProfile) => {
|
|
53
58
|
const agentDisplayName = selectedProfile.agentName || "Parhelia";
|
|
@@ -201,6 +206,146 @@ export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
|
|
|
201
206
|
performUpdate();
|
|
202
207
|
}
|
|
203
208
|
}, [profile, createNewAgent]);
|
|
209
|
+
const uploadFiles = useCallback(async (files) => {
|
|
210
|
+
if (!agent || !profile?.enableDocumentUpload || !files)
|
|
211
|
+
return;
|
|
212
|
+
const list = Array.from(files);
|
|
213
|
+
if (list.length === 0)
|
|
214
|
+
return;
|
|
215
|
+
const maxBytes = (profile.maxDocumentSizeMB ?? 10) * 1024 * 1024;
|
|
216
|
+
setUploadError(null);
|
|
217
|
+
setIsUploading(true);
|
|
218
|
+
try {
|
|
219
|
+
for (const file of list) {
|
|
220
|
+
if (file.size > maxBytes) {
|
|
221
|
+
setUploadError(`"${file.name}" exceeds ${profile.maxDocumentSizeMB ?? 10} MB`);
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
const result = await uploadDocument(agent.id, file, profile.id);
|
|
225
|
+
if (!result.success) {
|
|
226
|
+
setUploadError(result.error || `Failed to upload "${file.name}"`);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
finally {
|
|
231
|
+
setIsUploading(false);
|
|
232
|
+
}
|
|
233
|
+
}, [agent, profile]);
|
|
234
|
+
// Sync attached docs from server when the active agent changes.
|
|
235
|
+
useEffect(() => {
|
|
236
|
+
if (!agent?.id || !profile?.enableDocumentUpload) {
|
|
237
|
+
setAttachedDocs([]);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
let cancelled = false;
|
|
241
|
+
void getAgentDocuments(agent.id).then((res) => {
|
|
242
|
+
if (cancelled)
|
|
243
|
+
return;
|
|
244
|
+
if (res.success && res.documents)
|
|
245
|
+
setAttachedDocs(res.documents);
|
|
246
|
+
});
|
|
247
|
+
return () => {
|
|
248
|
+
cancelled = true;
|
|
249
|
+
};
|
|
250
|
+
}, [agent?.id, profile?.enableDocumentUpload]);
|
|
251
|
+
// Listen for upload/change events to keep chips in sync.
|
|
252
|
+
useEffect(() => {
|
|
253
|
+
if (!agent?.id)
|
|
254
|
+
return;
|
|
255
|
+
const handleUploaded = (event) => {
|
|
256
|
+
const detail = event.detail;
|
|
257
|
+
if (!detail || detail.agentId !== agent.id)
|
|
258
|
+
return;
|
|
259
|
+
setAttachedDocs((prev) => {
|
|
260
|
+
const existing = prev.findIndex((d) => d.id === detail.document.id);
|
|
261
|
+
if (existing === -1)
|
|
262
|
+
return [detail.document, ...prev];
|
|
263
|
+
const next = [...prev];
|
|
264
|
+
next[existing] = detail.document;
|
|
265
|
+
return next;
|
|
266
|
+
});
|
|
267
|
+
};
|
|
268
|
+
const handleChanged = (event) => {
|
|
269
|
+
const detail = event.detail;
|
|
270
|
+
if (!detail || detail.agentId !== agent.id)
|
|
271
|
+
return;
|
|
272
|
+
void getAgentDocuments(agent.id).then((res) => {
|
|
273
|
+
if (res.success && res.documents)
|
|
274
|
+
setAttachedDocs(res.documents);
|
|
275
|
+
});
|
|
276
|
+
};
|
|
277
|
+
window.addEventListener(AGENT_DOCUMENT_UPLOADED_EVENT, handleUploaded);
|
|
278
|
+
window.addEventListener(AGENT_DOCUMENTS_CHANGED_EVENT, handleChanged);
|
|
279
|
+
return () => {
|
|
280
|
+
window.removeEventListener(AGENT_DOCUMENT_UPLOADED_EVENT, handleUploaded);
|
|
281
|
+
window.removeEventListener(AGENT_DOCUMENTS_CHANGED_EVENT, handleChanged);
|
|
282
|
+
};
|
|
283
|
+
}, [agent?.id]);
|
|
284
|
+
const handleRemoveAttachment = useCallback(async (documentId) => {
|
|
285
|
+
setUploadError(null);
|
|
286
|
+
const result = await deleteDocument(documentId);
|
|
287
|
+
if (result.success) {
|
|
288
|
+
setAttachedDocs((prev) => prev.filter((d) => d.id !== documentId));
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
setUploadError(result.error || "Failed to remove attachment");
|
|
292
|
+
}
|
|
293
|
+
}, []);
|
|
294
|
+
const handleInputPaste = useCallback((e) => {
|
|
295
|
+
if (!profile?.enableDocumentUpload)
|
|
296
|
+
return;
|
|
297
|
+
const items = e.clipboardData?.items;
|
|
298
|
+
if (!items)
|
|
299
|
+
return;
|
|
300
|
+
const files = [];
|
|
301
|
+
for (let i = 0; i < items.length; i++) {
|
|
302
|
+
const item = items[i];
|
|
303
|
+
if (!item)
|
|
304
|
+
continue;
|
|
305
|
+
if (item.type.indexOf("image") !== -1 || item.kind === "file") {
|
|
306
|
+
const file = item.getAsFile();
|
|
307
|
+
if (!file)
|
|
308
|
+
continue;
|
|
309
|
+
if (file.name === "image.png" && item.type.indexOf("image") !== -1) {
|
|
310
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
311
|
+
const extension = item.type.split("/")[1] || "png";
|
|
312
|
+
files.push(new File([file], `pasted-image-${timestamp}.${extension}`, {
|
|
313
|
+
type: file.type,
|
|
314
|
+
}));
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
files.push(file);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
if (files.length > 0) {
|
|
322
|
+
e.preventDefault();
|
|
323
|
+
void uploadFiles(files);
|
|
324
|
+
}
|
|
325
|
+
}, [profile, uploadFiles]);
|
|
326
|
+
const handleDragOver = useCallback((e) => {
|
|
327
|
+
if (!profile?.enableDocumentUpload)
|
|
328
|
+
return;
|
|
329
|
+
e.preventDefault();
|
|
330
|
+
e.stopPropagation();
|
|
331
|
+
if (!isDragOver)
|
|
332
|
+
setIsDragOver(true);
|
|
333
|
+
}, [profile, isDragOver]);
|
|
334
|
+
const handleDragLeave = useCallback((e) => {
|
|
335
|
+
e.preventDefault();
|
|
336
|
+
e.stopPropagation();
|
|
337
|
+
setIsDragOver(false);
|
|
338
|
+
}, []);
|
|
339
|
+
const handleDrop = useCallback((e) => {
|
|
340
|
+
if (!profile?.enableDocumentUpload)
|
|
341
|
+
return;
|
|
342
|
+
e.preventDefault();
|
|
343
|
+
e.stopPropagation();
|
|
344
|
+
setIsDragOver(false);
|
|
345
|
+
if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
|
|
346
|
+
void uploadFiles(e.dataTransfer.files);
|
|
347
|
+
}
|
|
348
|
+
}, [profile, uploadFiles]);
|
|
204
349
|
// Handle submit from smart input
|
|
205
350
|
const handleSubmitInput = (e) => {
|
|
206
351
|
e?.preventDefault();
|
|
@@ -268,12 +413,30 @@ export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
|
|
|
268
413
|
if (isLoading) {
|
|
269
414
|
return (_jsx("div", { className: cn("flex items-center justify-center rounded-2xl border border-white/10 bg-white/3 p-12 shadow-xl", className), children: _jsx(Loader2, { className: "h-6 w-6 animate-spin text-purple-400" }) }));
|
|
270
415
|
}
|
|
416
|
+
const renderAttachments = (variant) => {
|
|
417
|
+
if (!profile?.enableDocumentUpload)
|
|
418
|
+
return null;
|
|
419
|
+
if (attachedDocs.length === 0 && !uploadError && !isUploading)
|
|
420
|
+
return null;
|
|
421
|
+
return (_jsxs("div", { className: cn("flex flex-col gap-2", variant === "overview"
|
|
422
|
+
? "-mt-4"
|
|
423
|
+
: "border-b border-white/10 bg-white/5 px-5 py-3"), children: [(attachedDocs.length > 0 || isUploading) && (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [attachedDocs.map((doc) => {
|
|
424
|
+
const isImage = doc.contentType?.startsWith("image/") ||
|
|
425
|
+
/\.(png|jpe?g|gif|webp)$/i.test(doc.fileName);
|
|
426
|
+
return (_jsxs("div", { className: "group flex max-w-[260px] items-center gap-2 rounded-full border border-white/10 bg-white/5 py-1.5 pr-1.5 pl-3 text-xs text-slate-300", children: [isImage ? (_jsx(ImageIcon, { className: "h-3.5 w-3.5 shrink-0 text-purple-300", strokeWidth: 1.5 })) : (_jsx(FileText, { className: "h-3.5 w-3.5 shrink-0 text-purple-300", strokeWidth: 1.5 })), _jsx("span", { className: "truncate", title: doc.fileName, children: doc.fileName }), _jsx("button", { type: "button", onClick: () => handleRemoveAttachment(doc.id), "aria-label": `Remove ${doc.fileName}`, className: "flex h-5 w-5 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-white/10 hover:text-white", children: _jsx(X, { className: "h-3 w-3", strokeWidth: 2 }) })] }, doc.id));
|
|
427
|
+
}), isUploading && (_jsxs("span", { className: "flex items-center gap-1.5 text-xs text-slate-400", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin" }), "Uploading..."] })), variant === "terminal" && (_jsxs("button", { type: "button", onClick: () => fileInputRef.current?.click(), disabled: isUploading, className: "flex items-center gap-1.5 rounded-full border border-dashed border-white/15 px-3 py-1.5 text-xs text-slate-400 transition-colors hover:border-purple-500/40 hover:text-white disabled:opacity-50", children: [_jsx(Paperclip, { className: "h-3 w-3", strokeWidth: 1.75 }), "Attach"] }))] })), uploadError && (_jsx("p", { className: "text-xs text-rose-400", children: uploadError }))] }));
|
|
428
|
+
};
|
|
271
429
|
if (!agent || !profile) {
|
|
272
430
|
return (_jsx("div", { className: cn("flex items-center justify-center rounded-2xl border border-white/10 bg-white/3 p-12 shadow-xl", className), children: _jsx("p", { className: "text-sm text-slate-400", children: "Assistant unavailable. Please try again later." }) }));
|
|
273
431
|
}
|
|
274
|
-
return (_jsxs("div", { className: cn("flex flex-col overflow-hidden transition-all duration-300", !isTerminalVisible ? "rounded-2xl" : "rounded-xl shadow-2xl", className), style: { viewTransitionName: "assistant-chat-container" }, children: [
|
|
432
|
+
return (_jsxs("div", { className: cn("flex flex-col overflow-hidden transition-all duration-300", !isTerminalVisible ? "rounded-2xl" : "rounded-xl shadow-2xl", className), style: { viewTransitionName: "assistant-chat-container" }, children: [profile.enableDocumentUpload && (_jsx("input", { ref: fileInputRef, type: "file", multiple: true, className: "hidden", onChange: (e) => {
|
|
433
|
+
void uploadFiles(e.target.files);
|
|
434
|
+
e.target.value = "";
|
|
435
|
+
}, accept: ".txt,.md,.pdf,.docx,.xlsx,.pptx,.csv,.json,.xml,.cs,.js,.ts,.tsx,.jsx,.py,.java,.cpp,.c,.h,.hpp,.cshtml,.razor,.vb,.php,.rb,.go,.rs,.swift,.kt,.scala,.sql,.sh,.ps1,.bat,.yaml,.yml,.png,.jpg,.jpeg,.gif,.webp" })), !isTerminalVisible && (_jsxs("div", { className: "flex flex-col gap-8", children: [_jsx("div", { className: "group relative", style: { viewTransitionName: "assistant-chat-box" }, onDragOver: handleDragOver, onDragEnter: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: _jsxs("form", { onSubmit: handleSubmitInput, className: "relative flex items-center", children: [_jsx("div", { className: "absolute left-5", children: _jsx(ParheliaIconWhite, { size: 24 }) }), _jsx("input", { ref: inputRef, type: "text", placeholder: "Ask Parhelia anything...", value: inputValue, onChange: (e) => setInputValue(e.target.value), onPaste: handleInputPaste, onFocus: () => {
|
|
275
436
|
void loadRecentAgents(profile);
|
|
276
|
-
}, style: { viewTransitionName: "assistant-chat-input" }, className: "h-16 w-full rounded-2xl border
|
|
437
|
+
}, style: { viewTransitionName: "assistant-chat-input" }, className: cn("h-16 w-full rounded-2xl border bg-white/5 text-lg text-white shadow-2xl transition-all duration-300 placeholder:text-slate-500 focus:bg-white/8 focus:shadow-[0_0_30px_-5px_rgba(168,85,247,0.3)] focus:outline-none", profile.enableDocumentUpload ? "pr-28 pl-14" : "pr-16 pl-14", isDragOver
|
|
438
|
+
? "border-purple-500/60 bg-purple-500/10"
|
|
439
|
+
: "border-white/10 focus:border-purple-500/40") }), profile.enableDocumentUpload && (_jsx("button", { type: "button", onClick: () => fileInputRef.current?.click(), disabled: isUploading, "aria-label": "Attach documents", title: "Attach documents", className: "absolute right-14 flex h-10 w-10 items-center justify-center rounded-xl text-slate-400 transition-colors hover:bg-white/10 hover:text-white disabled:opacity-50", children: isUploading ? (_jsx(Loader2, { className: "h-5 w-5 animate-spin" })) : (_jsx(Paperclip, { className: "h-5 w-5", strokeWidth: 1.75 })) })), _jsx("button", { type: "submit", disabled: !inputValue.trim(), className: "absolute right-3 flex h-10 w-10 items-center justify-center rounded-xl bg-purple-600 text-white shadow-lg transition-colors hover:bg-purple-500 disabled:bg-white/5 disabled:text-slate-600", children: _jsx(ArrowRight, { className: "h-5 w-5", strokeWidth: 2 }) })] }) }), renderAttachments("overview"), _jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: samplePrompts.map((item, idx) => (_jsxs("button", { onClick: () => handleStartWithPrompt(item.prompt), className: "group flex flex-col items-start rounded-xl border border-white/10 bg-white/3 p-5 text-left transition-all hover:bg-white/[0.07]", children: [_jsx("span", { className: "text-sm font-semibold text-slate-200 transition-colors group-hover:text-purple-400", children: item.title }), _jsx("span", { className: "mt-1 line-clamp-1 text-xs text-slate-500", children: item.description })] }, idx))) }), (isLoadingRecentAgents ||
|
|
277
440
|
!hasLoadedRecentAgents ||
|
|
278
441
|
recentAgents.length > 0) && (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 px-1 text-[10px] font-bold tracking-[0.2em] text-slate-500 uppercase", children: [_jsx(History, { className: "h-3 w-3" }), "Recent Parhelia Conversations"] }), !hasLoadedRecentAgents && !isLoadingRecentAgents && (_jsx("button", { onClick: () => {
|
|
279
442
|
void loadRecentAgents(profile);
|
|
@@ -283,7 +446,7 @@ export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
|
|
|
283
446
|
setAgentKey((prev) => prev + 1);
|
|
284
447
|
}, className: "max-w-[200px] truncate overflow-hidden rounded-full border border-white/10 bg-white/5 px-3 py-1.5 text-xs whitespace-nowrap text-slate-400 transition-all hover:border-purple-500/30 hover:bg-white/10", children: ra.name }, ra.id))), recentAgents.length > 3 && (_jsx("button", { onClick: () => {
|
|
285
448
|
editContext?.switchWorkspace("agents");
|
|
286
|
-
}, className: "rounded-full px-3 py-1.5 text-xs font-medium text-purple-400 transition-colors hover:text-purple-300", children: "View All Agents" }))] }))] }))] })), isTerminalVisible && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between border-b border-white/10 bg-white/5 px-5 py-3.5", style: { viewTransitionName: "assistant-chat-box" }, children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [_jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-white/5 bg-white/5 shadow-inner", children: _jsx(ParheliaIconWhite, { size: 22 }) }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "truncate text-[10px] font-bold tracking-[0.2em] text-purple-400/80 uppercase", children: agent.description || "Parhelia AI" }), _jsx("span", { className: "text-sm font-semibold tracking-tight text-slate-100", children: agent.name || profile.agentName || "Assistant" })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleStartOver, className: "h-9 gap-2 rounded-xl px-4 text-xs font-medium text-slate-400 transition-all hover:bg-white/10 hover:text-white", children: [_jsx(RotateCcw, { className: "h-4 w-4", strokeWidth: 1.5 }), "New Chat"] }), _jsx("div", { className: "mx-1 h-5 w-px bg-white/10" }), _jsx(Button, { variant: "ghost", size: "sm", onClick: handleClose, className: "group h-9 w-9 rounded-xl p-0 text-slate-500 transition-all hover:bg-white/10 hover:text-slate-200", "aria-label": "Close", children: _jsx(X, { className: "h-4 w-4 transition-transform duration-300 group-hover:rotate-90", strokeWidth: 2 }) })] })] }), _jsx("div", { className: "flex-1 overflow-hidden bg-slate-50/95", children: _jsx("div", { className: "animate-view-slide-in h-[650px]", children: _jsx(AgentTerminal, { agentStub: agent, initialMetadata: {
|
|
449
|
+
}, className: "rounded-full px-3 py-1.5 text-xs font-medium text-purple-400 transition-colors hover:text-purple-300", children: "View All Agents" }))] }))] }))] })), isTerminalVisible && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between border-b border-white/10 bg-white/5 px-5 py-3.5", style: { viewTransitionName: "assistant-chat-box" }, children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [_jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-white/5 bg-white/5 shadow-inner", children: _jsx(ParheliaIconWhite, { size: 22 }) }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "truncate text-[10px] font-bold tracking-[0.2em] text-purple-400/80 uppercase", children: agent.description || "Parhelia AI" }), _jsx("span", { className: "text-sm font-semibold tracking-tight text-slate-100", children: agent.name || profile.agentName || "Assistant" })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleStartOver, className: "h-9 gap-2 rounded-xl px-4 text-xs font-medium text-slate-400 transition-all hover:bg-white/10 hover:text-white", children: [_jsx(RotateCcw, { className: "h-4 w-4", strokeWidth: 1.5 }), "New Chat"] }), _jsx("div", { className: "mx-1 h-5 w-px bg-white/10" }), _jsx(Button, { variant: "ghost", size: "sm", onClick: handleClose, className: "group h-9 w-9 rounded-xl p-0 text-slate-500 transition-all hover:bg-white/10 hover:text-slate-200", "aria-label": "Close", children: _jsx(X, { className: "h-4 w-4 transition-transform duration-300 group-hover:rotate-90", strokeWidth: 2 }) })] })] }), renderAttachments("terminal"), _jsx("div", { className: "flex-1 overflow-hidden bg-slate-50/95", children: _jsx("div", { className: "animate-view-slide-in h-[650px]", children: _jsx(AgentTerminal, { agentStub: agent, initialMetadata: {
|
|
287
450
|
profile: profile.name,
|
|
288
451
|
additionalData: {
|
|
289
452
|
profileId: profile.id,
|