@alpaca-editor/core 1.0.3818 → 1.0.3822

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.
@@ -1,15 +1,20 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
3
  import { useEditContext } from "../client/editContext";
4
4
  import { CommentHighlighting } from "./CommentHighlighting";
5
+ import { SuggestionHighlighting } from "./SuggestionHighlighting";
5
6
  export function CommentHighlightings({ scale, iframe, }) {
6
7
  const editContext = useEditContext();
7
8
  const [comments, setComments] = useState([]);
9
+ const [suggestions, setSuggestions] = useState([]);
8
10
  useEffect(() => {
9
11
  setComments(editContext?.comments || []);
10
- }, [editContext?.comments]);
11
- return (_jsx(_Fragment, { children: comments
12
- .filter((x) => !x.isResolved)
13
- .map((comment) => (_jsx(CommentHighlighting, { iframe: iframe, scale: scale, comment: comment }, comment.id))) }));
12
+ setSuggestions(editContext?.suggestedEdits.filter((x) => x.status === "Pending") || []);
13
+ }, [editContext?.comments, editContext?.suggestedEdits]);
14
+ return (_jsxs(_Fragment, { children: [comments
15
+ .filter((x) => !x.isResolved)
16
+ .map((comment) => (_jsx(CommentHighlighting, { iframe: iframe, scale: scale, comment: comment }, comment.id))), suggestions
17
+ .filter((x) => x.status !== "approved" && x.status !== "rejected")
18
+ .map((suggestion) => (_jsx(SuggestionHighlighting, { iframe: iframe, scale: scale, suggestion: suggestion }, suggestion.id)))] }));
14
19
  }
15
20
  //# sourceMappingURL=CommentHighlightings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentHighlightings.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/CommentHighlightings.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,MAAM,GAIP;IACC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,4BACG,QAAQ;aACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;aAC5B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAChB,KAAC,mBAAmB,IAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EAEZ,OAAO,EAAE,OAAO,IADX,OAAO,CAAC,EAAE,CAEf,CACH,CAAC,GACH,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CommentHighlightings.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/CommentHighlightings.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,MAAM,GAIP;IACC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IAEpE,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QACzC,cAAc,CACZ,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CACxE,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAEzD,OAAO,CACL,8BACG,QAAQ;iBACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;iBAC5B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAChB,KAAC,mBAAmB,IAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EAEZ,OAAO,EAAE,OAAO,IADX,OAAO,CAAC,EAAE,CAEf,CACH,CAAC,EACH,WAAW;iBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;iBACjE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACnB,KAAC,sBAAsB,IACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EAEZ,UAAU,EAAE,UAAU,IADjB,UAAU,CAAC,EAAE,CAElB,CACH,CAAC,IACH,CACJ,CAAC;AACJ,CAAC"}
@@ -58,6 +58,7 @@ export function InlineEditor({ pageViewContext, compareView, }) {
58
58
  element.setAttribute("contenteditable", "true");
59
59
  mutationObserverRef.current = new MutationObserver(() => {
60
60
  debouncedSetFieldvalue(isRichText ? element.innerHTML : element.innerText, fieldId, fieldName, itemId, language, version);
61
+ // getCompletionDebounced();
61
62
  });
62
63
  element.focus();
63
64
  mutationObserverRef.current.observe(element, {
@@ -76,18 +77,93 @@ export function InlineEditor({ pageViewContext, compareView, }) {
76
77
  }, [context?.inlineEditingFieldElement]);
77
78
  function saveCaretPosition(editableElement) {
78
79
  const selection = pageViewContext.editorIframeRef.current?.contentWindow?.getSelection();
79
- if (selection &&
80
- selection.rangeCount > 0 &&
81
- editableElement.contains(selection.anchorNode)) {
82
- return selection.getRangeAt(0);
80
+ if (!selection ||
81
+ selection.rangeCount === 0 ||
82
+ !editableElement.contains(selection.anchorNode)) {
83
+ return null;
83
84
  }
84
- return null;
85
+ // Get the current range
86
+ const range = selection.getRangeAt(0);
87
+ const startNode = range.startContainer;
88
+ const startOffset = range.startOffset;
89
+ // Calculate absolute position from the beginning of the element
90
+ let absoluteOffset = 0;
91
+ // Function to calculate text length before a node
92
+ function getTextLengthBefore(node) {
93
+ let length = 0;
94
+ // Process all nodes before this one in current parent
95
+ let currentNode = node.parentNode?.firstChild;
96
+ while (currentNode && currentNode !== node) {
97
+ length += currentNode.textContent?.length || 0;
98
+ currentNode = currentNode.nextSibling;
99
+ }
100
+ // If the node's parent isn't the editable element, add lengths from higher levels
101
+ if (node.parentNode &&
102
+ node.parentNode !== editableElement &&
103
+ node.parentNode.parentNode) {
104
+ length += getTextLengthBefore(node.parentNode);
105
+ }
106
+ return length;
107
+ }
108
+ // If we're in a text node directly under the editable element
109
+ if (startNode.nodeType === Node.TEXT_NODE) {
110
+ absoluteOffset = getTextLengthBefore(startNode) + startOffset;
111
+ }
112
+ else {
113
+ // Handle cases where selection is on an element node
114
+ absoluteOffset = getTextLengthBefore(startNode);
115
+ }
116
+ return { node: startNode, offset: absoluteOffset };
85
117
  }
86
- function restoreCaretPosition(range) {
87
- if (range) {
88
- const selection = pageViewContext.editorIframeRef.current?.contentWindow?.getSelection();
89
- selection?.removeAllRanges();
90
- selection?.addRange(range);
118
+ function restoreCaretPosition(element, position) {
119
+ if (position === undefined || position === null)
120
+ return;
121
+ const selection = pageViewContext.editorIframeRef.current?.contentWindow?.getSelection();
122
+ if (!selection)
123
+ return;
124
+ selection.removeAllRanges();
125
+ // Find the appropriate text node and offset
126
+ let currentNode = element.firstChild;
127
+ let currentPos = 0;
128
+ // Helper function to find the right node and position
129
+ function findNodeAtPosition(node, targetPos) {
130
+ while (node) {
131
+ // Text node case
132
+ if (node.nodeType === Node.TEXT_NODE) {
133
+ const length = node.textContent?.length || 0;
134
+ if (currentPos + length >= targetPos) {
135
+ return { node, offset: targetPos - currentPos };
136
+ }
137
+ currentPos += length;
138
+ }
139
+ // Element node case - check its children
140
+ else if (node.nodeType === Node.ELEMENT_NODE && node.hasChildNodes()) {
141
+ const result = findNodeAtPosition(node.firstChild, targetPos);
142
+ if (result)
143
+ return result;
144
+ }
145
+ node = node.nextSibling;
146
+ }
147
+ return null;
148
+ }
149
+ const result = findNodeAtPosition(currentNode, position);
150
+ // If we found a valid node, set the range
151
+ if (result) {
152
+ const range = new Range();
153
+ range.setStart(result.node, result.offset);
154
+ range.setEnd(result.node, result.offset);
155
+ selection.addRange(range);
156
+ }
157
+ else if (element.firstChild) {
158
+ // Fallback to end of content if position is too large
159
+ const lastNode = element.lastChild;
160
+ if (lastNode && lastNode.nodeType === Node.TEXT_NODE) {
161
+ const range = new Range();
162
+ range.setStart(lastNode, lastNode.textContent?.length || 0);
163
+ range.setEnd(lastNode, lastNode.textContent?.length || 0);
164
+ selection.addRange(range);
165
+ console.log("Fallback: Restored to end of content");
166
+ }
91
167
  }
92
168
  }
93
169
  useEffect(() => {
@@ -97,15 +173,42 @@ export function InlineEditor({ pageViewContext, compareView, }) {
97
173
  return;
98
174
  const doc = iframeWindow.document;
99
175
  // Query all field elements by data attributes.
100
- const fieldElements = doc.querySelectorAll("[data-fieldid][data-itemid][data-language][data-version]");
101
- fieldElements.forEach(async (element) => {
176
+ const allFieldElements = doc.querySelectorAll("[data-fieldid][data-itemid][data-language][data-version]");
177
+ const fieldItems = await context.itemsRepository.getItems(Array.from(allFieldElements)
178
+ .map((element) => {
179
+ const fieldId = element.getAttribute("data-fieldid");
180
+ return fieldId
181
+ ? {
182
+ id: fieldId,
183
+ language: "en",
184
+ version: 0,
185
+ }
186
+ : null;
187
+ })
188
+ .filter((item) => item !== null));
189
+ const validFields = fieldItems.filter((item) => {
190
+ const typeField = item.fields.find((f) => f.name === "Type");
191
+ if (!typeField)
192
+ return false;
193
+ const typeValue = typeField.value;
194
+ return (typeValue === "Single-Line Text" ||
195
+ typeValue === "Multi-Line Text" ||
196
+ typeValue === "Rich Text");
197
+ });
198
+ const validFieldElements = validFields.map((item) => {
199
+ return Array.from(allFieldElements).find((element) => element.getAttribute("data-fieldid") === item.id);
200
+ });
201
+ validFields.forEach(async (item, index) => {
202
+ const fieldElement = validFieldElements[index];
203
+ if (!fieldElement)
204
+ return;
102
205
  // Do not update if this field is currently focused.
103
- if (element === context.inlineEditingFieldElement)
206
+ if (fieldElement === context.inlineEditingFieldElement)
104
207
  return;
105
- const fieldId = element.getAttribute("data-fieldid");
106
- const itemId = element.getAttribute("data-itemid");
107
- const language = element.getAttribute("data-language");
108
- const versionStr = element.getAttribute("data-version");
208
+ const fieldId = fieldElement.getAttribute("data-fieldid");
209
+ const itemId = fieldElement.getAttribute("data-itemid");
210
+ const language = fieldElement.getAttribute("data-language");
211
+ const versionStr = fieldElement.getAttribute("data-version");
109
212
  if (!fieldId || !itemId || !language || !versionStr)
110
213
  return;
111
214
  const version = parseInt(versionStr, 10);
@@ -130,7 +233,7 @@ export function InlineEditor({ pageViewContext, compareView, }) {
130
233
  }
131
234
  // If showSuggestedEdits is false, update with the base value.
132
235
  if (!context.showSuggestedEdits) {
133
- element.innerHTML = originalValue;
236
+ fieldElement.innerHTML = originalValue;
134
237
  return;
135
238
  }
136
239
  // Otherwise, gather all suggestions for this field.
@@ -139,6 +242,8 @@ export function InlineEditor({ pageViewContext, compareView, }) {
139
242
  s.mainItemLanguage === language &&
140
243
  s.mainItemId === pageViewContext.pageItemDescriptor?.id &&
141
244
  s.mainItemVersion === version);
245
+ if (!fieldSuggestions.length)
246
+ return;
142
247
  // Sort suggestions in chronological order (oldest first).
143
248
  fieldSuggestions.sort((a, b) => new Date(a.created).getTime() - new Date(b.created).getTime());
144
249
  // Apply suggestions sequentially to generate the merged value.
@@ -155,7 +260,7 @@ export function InlineEditor({ pageViewContext, compareView, }) {
155
260
  }
156
261
  // If showSuggestedEditsDiff is false, show only the merged text
157
262
  if (!context.showSuggestedEditsDiff) {
158
- element.innerHTML = mergedValue;
263
+ fieldElement.innerHTML = mergedValue;
159
264
  return;
160
265
  }
161
266
  // Compute a word-based diff between originalValue and mergedValue.
@@ -177,7 +282,7 @@ export function InlineEditor({ pageViewContext, compareView, }) {
177
282
  diffHTML += `<span style="${style}">${part.value}</span>`;
178
283
  });
179
284
  // Update the element's innerHTML with the diff markup.
180
- element.innerHTML = diffHTML;
285
+ fieldElement.innerHTML = diffHTML;
181
286
  });
182
287
  };
183
288
  updateFieldsWithSuggestions();
@@ -196,8 +301,9 @@ export function InlineEditor({ pageViewContext, compareView, }) {
196
301
  const element = context?.inlineEditingFieldElement;
197
302
  if (!element)
198
303
  return;
199
- const savedRange = saveCaretPosition(element);
200
- console.log("savedRange", savedRange, element);
304
+ const savedPosition = saveCaretPosition(element);
305
+ const start = savedPosition?.offset || 0;
306
+ console.log("saved position:", start);
201
307
  const fieldId = element.getAttribute("data-fieldid");
202
308
  const itemId = element.getAttribute("data-itemid");
203
309
  const language = element.getAttribute("data-language");
@@ -222,7 +328,7 @@ export function InlineEditor({ pageViewContext, compareView, }) {
222
328
  baseValue = modField.value || "";
223
329
  }
224
330
  // If suggestions mode is active, merge all suggestions for this field.
225
- if (context.showSuggestedEdits || context.mode === "suggestions") {
331
+ if (context.mode === "suggestions") {
226
332
  const fieldSuggestions = context.suggestedEdits.filter((s) => s.fieldId === fieldId &&
227
333
  s.itemId === itemId &&
228
334
  s.mainItemLanguage === language &&
@@ -247,8 +353,9 @@ export function InlineEditor({ pageViewContext, compareView, }) {
247
353
  element.innerHTML = baseValue;
248
354
  }
249
355
  }
250
- console.log("restoring caret position", savedRange);
251
- restoreCaretPosition(savedRange);
356
+ setTimeout(() => {
357
+ restoreCaretPosition(element, start);
358
+ }, 0);
252
359
  }
253
360
  updateFocusedFieldContent();
254
361
  }, [context?.inlineEditingFieldElement]);
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/InlineEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InlineEditor.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/InlineEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { SuggestedEdit } from "../../types";
2
+ export declare function SuggestionHighlighting({ suggestion, scale, iframe, }: {
3
+ suggestion: SuggestedEdit;
4
+ scale: number;
5
+ iframe: HTMLIFrameElement;
6
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,219 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEditContext, useModifiedFieldsContext, } from "../client/editContext";
3
+ import { findFieldElement } from "../utils";
4
+ import { useState } from "react";
5
+ import { useEffect } from "react";
6
+ import { classNames } from "primereact/utils";
7
+ import { UserRoundPen } from "lucide-react";
8
+ import * as DiffLib from "diff";
9
+ export function SuggestionHighlighting({ suggestion, scale, iframe, }) {
10
+ const editContext = useEditContext();
11
+ const modifiedFields = useModifiedFieldsContext();
12
+ const [ranges, setRanges] = useState([]);
13
+ const [textContent, setTextContent] = useState("");
14
+ useEffect(() => {
15
+ const findRanges = async () => {
16
+ if (!editContext)
17
+ return;
18
+ const field = await editContext.itemsRepository.getField({
19
+ item: {
20
+ id: suggestion.itemId,
21
+ language: suggestion.mainItemLanguage,
22
+ version: suggestion.mainItemVersion,
23
+ },
24
+ fieldId: suggestion.fieldId,
25
+ });
26
+ const modifiedField = modifiedFields?.modifiedFields.find((x) => x.fieldId === field?.id &&
27
+ x.item.id === suggestion.itemId &&
28
+ x.item.language === suggestion.mainItemLanguage &&
29
+ x.item.version === suggestion.mainItemVersion);
30
+ // Calculate the actual differences between oldValue and newValue
31
+ const oldValue = suggestion.oldValue || field?.rawValue || "";
32
+ const newValue = modifiedField?.value || suggestion.newValue || "";
33
+ // If values are identical, no need to highlight
34
+ if (oldValue === newValue) {
35
+ setRanges([]);
36
+ return;
37
+ }
38
+ // Save oldValue for use in the component
39
+ setTextContent(oldValue);
40
+ // Use the diff library to find the changed parts - using diffChars for more precise matching
41
+ const diffResult = DiffLib.diffChars(oldValue, newValue);
42
+ const changeRanges = [];
43
+ let positionInOld = 0;
44
+ // Process the diff result to find all change ranges
45
+ for (const part of diffResult) {
46
+ if (part.removed) {
47
+ // If a part is removed, highlight it in the original text
48
+ changeRanges.push([positionInOld, positionInOld + part.value.length]);
49
+ positionInOld += part.value.length;
50
+ }
51
+ else if (part.added) {
52
+ // For added parts, mark the insertion point
53
+ if (changeRanges.length > 0) {
54
+ const lastRange = changeRanges[changeRanges.length - 1];
55
+ if (lastRange && lastRange[1] === positionInOld) {
56
+ // If this addition comes right after a removal, the previous range already covers the position
57
+ continue;
58
+ }
59
+ }
60
+ // Mark the insertion point for new content
61
+ changeRanges.push([positionInOld, positionInOld]);
62
+ }
63
+ else {
64
+ // Unchanged part, just advance the position
65
+ positionInOld += part.value.length;
66
+ }
67
+ }
68
+ // Merge adjacent or overlapping ranges
69
+ const mergedRanges = [];
70
+ if (changeRanges.length > 0) {
71
+ changeRanges.sort((a, b) => a[0] - b[0]);
72
+ // Start with the first range
73
+ const firstRange = changeRanges[0];
74
+ if (!firstRange) {
75
+ setRanges([]);
76
+ return;
77
+ }
78
+ let currentRange = [...firstRange];
79
+ // Process the rest of the ranges
80
+ for (let i = 1; i < changeRanges.length; i++) {
81
+ const nextRange = changeRanges[i];
82
+ // Skip undefined ranges
83
+ if (!nextRange)
84
+ continue;
85
+ // If the next range starts very close to the end of the current range, merge them
86
+ if (nextRange[0] <= currentRange[1] + 3) {
87
+ // Allow slightly larger gaps (3 chars) for better highlighting
88
+ // Extend the current range
89
+ currentRange[1] = Math.max(currentRange[1], nextRange[1]);
90
+ }
91
+ else {
92
+ // Save the current range and start a new one
93
+ mergedRanges.push([currentRange[0], currentRange[1]]);
94
+ currentRange = [...nextRange];
95
+ }
96
+ }
97
+ // Add the last range
98
+ mergedRanges.push([currentRange[0], currentRange[1]]);
99
+ }
100
+ // Set ranges to highlight the changed parts
101
+ setRanges(mergedRanges);
102
+ };
103
+ findRanges();
104
+ }, [editContext, modifiedFields?.modifiedFields, suggestion]);
105
+ if (!editContext)
106
+ return null;
107
+ if (!suggestion.fieldId)
108
+ return null;
109
+ const fieldElement = findFieldElement(iframe, {
110
+ item: {
111
+ id: suggestion.itemId,
112
+ language: suggestion.mainItemLanguage,
113
+ version: suggestion.mainItemVersion,
114
+ },
115
+ fieldId: suggestion.fieldId,
116
+ });
117
+ if (!fieldElement)
118
+ return null;
119
+ // Process each range and collect all DOM rectangles
120
+ const allRects = [];
121
+ ranges.forEach((range) => {
122
+ if (range[0] !== undefined && range[1] !== undefined) {
123
+ // For insertion points (zero-length ranges), expand to include at least one character
124
+ // to make it visible
125
+ const start = range[0];
126
+ const end = range[0] === range[1]
127
+ ? Math.min(range[0] + 1, textContent.length)
128
+ : range[1];
129
+ if (start < end) {
130
+ const startData = getTextNodeAtPosition(fieldElement, start);
131
+ const endData = getTextNodeAtPosition(fieldElement, end);
132
+ if (startData && endData) {
133
+ try {
134
+ const textRange = document.createRange();
135
+ textRange.setStart(startData.node, startData.offset);
136
+ textRange.setEnd(endData.node, endData.offset);
137
+ const rangeRects = textRange.getClientRects();
138
+ // Convert DOMRectList to Array
139
+ for (let i = 0; i < rangeRects.length; i++) {
140
+ const rect = rangeRects[i];
141
+ if (rect) {
142
+ allRects.push(rect);
143
+ }
144
+ }
145
+ }
146
+ catch (e) {
147
+ console.error("Error creating range", e);
148
+ }
149
+ }
150
+ }
151
+ }
152
+ });
153
+ // If no rects were found, fall back to highlighting the entire field
154
+ if (allRects.length === 0 && ranges.length > 0) {
155
+ const fallbackRect = fieldElement.getBoundingClientRect();
156
+ allRects.push(fallbackRect);
157
+ }
158
+ const iframeRect = iframe.getBoundingClientRect();
159
+ return (_jsx(_Fragment, { children: allRects.map((rect, index) => (_jsx("div", { style: {
160
+ position: "absolute",
161
+ top: rect.top * scale,
162
+ left: rect.left * scale,
163
+ width: rect.width * scale,
164
+ height: rect.height * scale,
165
+ pointerEvents: "none",
166
+ }, children: index === 0 && (_jsx("div", { className: classNames("pointer-events-auto absolute h-5 w-5 cursor-pointer", rect.top * scale < 18 ? "top-0" : "top-[-18px]", (rect.left + rect.width) * scale > iframeRect.width - 18
167
+ ? "right-0"
168
+ : "right-[-18px]"), onClick: () => {
169
+ editContext.select([suggestion.itemId]);
170
+ editContext.setFocusedField({
171
+ item: {
172
+ id: suggestion.itemId,
173
+ language: suggestion.mainItemLanguage,
174
+ version: suggestion.mainItemVersion,
175
+ },
176
+ fieldId: suggestion.fieldId,
177
+ }, true);
178
+ }, children: _jsx(UserRoundPen, { className: "rounded-full bg-emerald-400/70 p-1 text-white", size: 20 }) })) }, index))) }));
179
+ }
180
+ // Improved function to find text node at a given character position
181
+ function getTextNodeAtPosition(root, targetOffset) {
182
+ // Handle edge cases
183
+ if (targetOffset < 0)
184
+ return null;
185
+ // Get all text nodes in order
186
+ const textNodes = [];
187
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null);
188
+ let node;
189
+ while ((node = walker.nextNode())) {
190
+ if (node)
191
+ textNodes.push(node);
192
+ }
193
+ let currentOffset = 0;
194
+ // Walk through all text nodes to find the one containing our target position
195
+ for (const node of textNodes) {
196
+ const nodeLength = node.textContent?.length || 0;
197
+ // If this node contains our target position
198
+ if (currentOffset + nodeLength >= targetOffset) {
199
+ return {
200
+ node: node,
201
+ offset: targetOffset - currentOffset,
202
+ };
203
+ }
204
+ currentOffset += nodeLength;
205
+ }
206
+ // If we've gone through all nodes and haven't found the position
207
+ // Return the last position in the last text node
208
+ if (textNodes.length > 0) {
209
+ const lastNode = textNodes[textNodes.length - 1];
210
+ if (lastNode) {
211
+ return {
212
+ node: lastNode,
213
+ offset: lastNode.textContent?.length || 0,
214
+ };
215
+ }
216
+ }
217
+ return null;
218
+ }
219
+ //# sourceMappingURL=SuggestionHighlighting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuggestionHighlighting.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/SuggestionHighlighting.tsx"],"names":[],"mappings":"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"}
@@ -5,29 +5,38 @@ import { Comment as CommentComponent } from "./Comment";
5
5
  import { SuggestedEditComponent } from "./SuggestedEdit";
6
6
  import { SimpleToolbar } from "../ui/SimpleToolbar";
7
7
  import { SimpleIconButton } from "../ui/SimpleIconButton";
8
- import { FileDiff, MessageCircle, SquarePen } from "lucide-react";
8
+ import { FileDiff, SquarePen, CheckCircle, CheckCircle2, Eye, } from "lucide-react";
9
9
  export function Comments() {
10
10
  const editContext = useEditContext();
11
11
  const [feedbackItems, setFeedbackItems] = useState([]);
12
+ const [hideAppliedSuggestions, setHideAppliedSuggestions] = useState(true);
12
13
  useEffect(() => {
13
14
  // Retrieve your list of comments (and ensure there's an array of suggested edits,
14
15
  // for instance from your editContext)
15
16
  const comments = editContext?.comments || [];
16
17
  const suggestedEdits = editContext?.suggestedEdits || [];
17
- const combined = [...comments, ...suggestedEdits];
18
+ // Filter out applied suggestions if hideAppliedSuggestions is true
19
+ const filteredSuggestedEdits = hideAppliedSuggestions
20
+ ? suggestedEdits.filter((edit) => edit.status !== "Applied")
21
+ : suggestedEdits;
22
+ const combined = [...comments, ...filteredSuggestedEdits];
18
23
  // Sort by creation date. Adjust the comparison as needed if the date properties differ.
19
24
  combined.sort((a, b) => new Date(b.created || "").getTime() -
20
25
  new Date(a.created || "").getTime());
21
26
  setFeedbackItems(combined);
22
- }, [editContext]);
27
+ }, [editContext, hideAppliedSuggestions]);
23
28
  return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs(SimpleToolbar, { children: [_jsx(SimpleIconButton, { id: "add-comment", icon: "pi pi-plus", label: "Add Comment", onClick: () => {
24
29
  editContext?.addComment();
25
- } }), _jsx(SimpleIconButton, { selected: editContext?.showComments, icon: _jsx(MessageCircle, { size: 16, className: "p-0.5" }), label: "Show Comments", onClick: () => {
30
+ } }), _jsx(SimpleIconButton, { selected: editContext?.showComments, icon: _jsx(Eye, { size: 16, className: "p-0.5" }), label: "Show Comments", onClick: () => {
26
31
  editContext?.setShowComments((x) => !x);
27
32
  } }), _jsx(SimpleIconButton, { selected: editContext?.showSuggestedEdits, icon: _jsx(SquarePen, { size: 16, className: "p-0.5" }), label: "Show Suggestions", onClick: () => {
28
33
  editContext?.setShowSuggestedEdits((x) => !x);
29
34
  } }), _jsx(SimpleIconButton, { selected: editContext?.showSuggestedEditsDiff, icon: _jsx(FileDiff, { size: 16, className: "p-0.5" }), label: "Show Suggestions Diff", onClick: () => {
30
35
  editContext?.setShowSuggestedEditsDiff((x) => !x);
36
+ } }), _jsx(SimpleIconButton, { selected: hideAppliedSuggestions, icon: hideAppliedSuggestions ? (_jsx(CheckCircle2, { size: 16, className: "p-0.5" })) : (_jsx(CheckCircle, { size: 16, className: "p-0.5" })), label: hideAppliedSuggestions
37
+ ? "Show Applied Suggestions"
38
+ : "Hide Applied Suggestions", onClick: () => {
39
+ setHideAppliedSuggestions((x) => !x);
31
40
  } })] }), _jsx("div", { className: "flex-1 overflow-auto", children: _jsx("div", { className: "h-fill-available border-l border-gray-200 bg-gray-50 p-4", children: feedbackItems.map((item) => {
32
41
  // Use a discriminator check. Here we assume suggested edits have the properties oldValue and newValue.
33
42
  if ("oldValue" in item && "newValue" in item) {
@@ -1 +1 @@
1
- {"version":3,"file":"Comments.js","sourceRoot":"","sources":["../../../src/editor/reviews/Comments.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Comments.js","sourceRoot":"","sources":["../../../src/editor/reviews/Comments.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,QAAQ,EAER,SAAS,EACT,WAAW,EACX,YAAY,EACZ,GAAG,GACJ,MAAM,cAAc,CAAC;AAKtB,MAAM,UAAU,QAAQ;IACtB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GACvD,QAAQ,CAAU,IAAI,CAAC,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,kFAAkF;QAClF,sCAAsC;QACtC,MAAM,QAAQ,GAAkB,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAoB,WAAW,EAAE,cAAc,IAAI,EAAE,CAAC;QAE1E,mEAAmE;QACnE,MAAM,sBAAsB,GAAG,sBAAsB;YACnD,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;YAC5D,CAAC,CAAC,cAAc,CAAC;QAEnB,MAAM,QAAQ,GAAmB,CAAC,GAAG,QAAQ,EAAE,GAAG,sBAAsB,CAAC,CAAC;QAE1E,wFAAwF;QACxF,QAAQ,CAAC,IAAI,CACX,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;YACnC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CACtC,CAAC;QAEF,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE1C,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,aAAa,eACZ,KAAC,gBAAgB,IACf,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,YAAY,EACjB,KAAK,EAAC,aAAa,EACnB,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,EAAE,UAAU,EAAE,CAAC;wBAC5B,CAAC,GACD,EACF,KAAC,gBAAgB,IACf,QAAQ,EAAE,WAAW,EAAE,YAAY,EACnC,IAAI,EAAE,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,OAAO,GAAG,EACzC,KAAK,EAAC,eAAe,EACrB,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1C,CAAC,GACD,EACF,KAAC,gBAAgB,IACf,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EACzC,IAAI,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,OAAO,GAAG,EAC/C,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChD,CAAC,GACD,EACF,KAAC,gBAAgB,IACf,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAC7C,IAAI,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,OAAO,GAAG,EAC9C,KAAK,EAAC,uBAAuB,EAC7B,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,EAAE,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpD,CAAC,GACD,EACF,KAAC,gBAAgB,IACf,QAAQ,EAAE,sBAAsB,EAChC,IAAI,EACF,sBAAsB,CAAC,CAAC,CAAC,CACvB,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,OAAO,GAAG,CAC7C,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,OAAO,GAAG,CAC5C,EAEH,KAAK,EACH,sBAAsB;4BACpB,CAAC,CAAC,0BAA0B;4BAC5B,CAAC,CAAC,0BAA0B,EAEhC,OAAO,EAAE,GAAG,EAAE;4BACZ,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACvC,CAAC,GACD,IACY,EAEhB,cAAK,SAAS,EAAC,sBAAsB,YACnC,cAAK,SAAS,EAAC,0DAA0D,YACtE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC1B,uGAAuG;wBACvG,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;4BAC7C,OAAO,CACL,KAAC,sBAAsB,IAErB,IAAI,EAAE,IAAqB,IADtB,IAAI,CAAC,EAAE,CAEZ,CACH,CAAC;wBACJ,CAAC;wBACD,OAAO,CACL,KAAC,gBAAgB,IAAe,OAAO,EAAE,IAAmB,IAArC,IAAI,CAAC,EAAE,CAAkC,CACjE,CAAC;oBACJ,CAAC,CAAC,GACE,GACF,IACF,CACP,CAAC;AACJ,CAAC"}