@parhelia/core 0.1.12910 → 0.1.12912

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 (185) hide show
  1. package/dist/agents-view/AgentGalleryView.d.ts +1 -1
  2. package/dist/agents-view/AgentGalleryView.js +3 -2
  3. package/dist/agents-view/AgentGalleryView.js.map +1 -1
  4. package/dist/agents-view/AgentsView.js +1 -1
  5. package/dist/agents-view/AgentsView.js.map +1 -1
  6. package/dist/components/PageHeader.d.ts +7 -2
  7. package/dist/components/PageHeader.js +8 -3
  8. package/dist/components/PageHeader.js.map +1 -1
  9. package/dist/components/ui/UserPicker.d.ts +5 -1
  10. package/dist/components/ui/UserPicker.js +17 -3
  11. package/dist/components/ui/UserPicker.js.map +1 -1
  12. package/dist/components/ui/button.js +1 -1
  13. package/dist/components/ui/button.js.map +1 -1
  14. package/dist/components/ui/command.js +1 -1
  15. package/dist/components/ui/delete-button.d.ts +1 -1
  16. package/dist/components/ui/delete-button.js +2 -2
  17. package/dist/components/ui/delete-button.js.map +1 -1
  18. package/dist/components/ui/dropdown-menu.js +3 -3
  19. package/dist/components/ui/input.js +1 -1
  20. package/dist/components/ui/input.js.map +1 -1
  21. package/dist/components/ui/label.js +1 -1
  22. package/dist/components/ui/select.d.ts +2 -0
  23. package/dist/components/ui/select.js +8 -6
  24. package/dist/components/ui/select.js.map +1 -1
  25. package/dist/components/ui/textarea.js +1 -3
  26. package/dist/components/ui/textarea.js.map +1 -1
  27. package/dist/config/config.js +5 -0
  28. package/dist/config/config.js.map +1 -1
  29. package/dist/editor/ContentTree.d.ts +3 -2
  30. package/dist/editor/ContentTree.js +4 -4
  31. package/dist/editor/ContentTree.js.map +1 -1
  32. package/dist/editor/EditorWarning.js +1 -1
  33. package/dist/editor/EditorWarning.js.map +1 -1
  34. package/dist/editor/FieldHistory.js +6 -4
  35. package/dist/editor/FieldHistory.js.map +1 -1
  36. package/dist/editor/ai/Agents.js +17 -23
  37. package/dist/editor/ai/Agents.js.map +1 -1
  38. package/dist/editor/ai/ContentInspectorPopover.js +2 -1
  39. package/dist/editor/ai/ContentInspectorPopover.js.map +1 -1
  40. package/dist/editor/ai/agentCollection.d.ts +2 -0
  41. package/dist/editor/ai/agentCollection.js +8 -0
  42. package/dist/editor/ai/agentCollection.js.map +1 -0
  43. package/dist/editor/ai/agentMessageHelpers.d.ts +1 -0
  44. package/dist/editor/ai/agentMessageHelpers.js +4 -1
  45. package/dist/editor/ai/agentMessageHelpers.js.map +1 -1
  46. package/dist/editor/ai/terminal/agentSessionSnapshot.js +4 -1
  47. package/dist/editor/ai/terminal/agentSessionSnapshot.js.map +1 -1
  48. package/dist/editor/ai/terminal/components/AgentLoadingContent.js +2 -2
  49. package/dist/editor/ai/terminal/components/AgentLoadingContent.js.map +1 -1
  50. package/dist/editor/ai/terminal/components/AiResponseMessage.js +9 -3
  51. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  52. package/dist/editor/ai/terminal/components/EditOperationsPanel.js +3 -3
  53. package/dist/editor/ai/terminal/components/EditOperationsPanel.js.map +1 -1
  54. package/dist/editor/ai/terminal/useAgentDraftInitializer.js +3 -1
  55. package/dist/editor/ai/terminal/useAgentDraftInitializer.js.map +1 -1
  56. package/dist/editor/ai/terminal/useAgentLoadErrorHandler.js +3 -1
  57. package/dist/editor/ai/terminal/useAgentLoadErrorHandler.js.map +1 -1
  58. package/dist/editor/ai/terminal/useAgentSessionFacade.js +7 -3
  59. package/dist/editor/ai/terminal/useAgentSessionFacade.js.map +1 -1
  60. package/dist/editor/bridge/protocol.d.ts +13 -0
  61. package/dist/editor/bridge/protocol.js +2 -1
  62. package/dist/editor/bridge/protocol.js.map +1 -1
  63. package/dist/editor/client/EditorShell.js +179 -30
  64. package/dist/editor/client/EditorShell.js.map +1 -1
  65. package/dist/editor/client/editContext.d.ts +7 -5
  66. package/dist/editor/client/editContext.js.map +1 -1
  67. package/dist/editor/client/errorToast.d.ts +12 -0
  68. package/dist/editor/client/errorToast.js +67 -0
  69. package/dist/editor/client/errorToast.js.map +1 -0
  70. package/dist/editor/client/helpers.d.ts +2 -4
  71. package/dist/editor/client/helpers.js +3 -2
  72. package/dist/editor/client/helpers.js.map +1 -1
  73. package/dist/editor/client/hooks/useSocketMessageHandler.js +5 -3
  74. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  75. package/dist/editor/client/operations.d.ts +2 -4
  76. package/dist/editor/client/operations.js +11 -2
  77. package/dist/editor/client/operations.js.map +1 -1
  78. package/dist/editor/client/ui/FullscreenControls.d.ts +0 -1
  79. package/dist/editor/client/ui/FullscreenControls.js +4 -17
  80. package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
  81. package/dist/editor/field-types/DateFieldEditor.js +1 -1
  82. package/dist/editor/field-types/DateFieldEditor.js.map +1 -1
  83. package/dist/editor/field-types/DateTimeFieldEditor.js +1 -1
  84. package/dist/editor/field-types/DateTimeFieldEditor.js.map +1 -1
  85. package/dist/editor/field-types/useTextCompletion.js +12 -43
  86. package/dist/editor/field-types/useTextCompletion.js.map +1 -1
  87. package/dist/editor/media-selector/AiImageSearchPrompt.js +8 -17
  88. package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
  89. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.d.ts +6 -1
  90. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +21 -13
  91. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -1
  92. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +6 -5
  93. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
  94. package/dist/editor/page-editor-chrome/FrameMenu.js +8 -2
  95. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  96. package/dist/editor/page-editor-chrome/InsertComponentMenu.js +1 -1
  97. package/dist/editor/page-editor-chrome/InsertComponentMenu.js.map +1 -1
  98. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +3 -1
  99. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +34 -2
  100. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  101. package/dist/editor/page-viewer/MiniMap.d.ts +5 -1
  102. package/dist/editor/page-viewer/MiniMap.js +21 -9
  103. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  104. package/dist/editor/page-viewer/PageViewerFrame.js +291 -4
  105. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  106. package/dist/editor/page-viewer/RenderingParametersSection.js +1 -1
  107. package/dist/editor/page-viewer/RenderingParametersSection.js.map +1 -1
  108. package/dist/editor/page-viewer/bridgeFieldPatch.js +2 -1
  109. package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -1
  110. package/dist/editor/reviews/CreateReviewConfirmStep.d.ts +1 -2
  111. package/dist/editor/reviews/CreateReviewConfirmStep.js +3 -3
  112. package/dist/editor/reviews/CreateReviewConfirmStep.js.map +1 -1
  113. package/dist/editor/reviews/CreateReviewDialog.js +27 -3
  114. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  115. package/dist/editor/reviews/DecisionsMatrix.js +1 -1
  116. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  117. package/dist/editor/services/contentService.d.ts +3 -2
  118. package/dist/editor/services/contentService.js +19 -5
  119. package/dist/editor/services/contentService.js.map +1 -1
  120. package/dist/editor/services/contextService.d.ts +8 -0
  121. package/dist/editor/services/contextService.js +19 -0
  122. package/dist/editor/services/contextService.js.map +1 -1
  123. package/dist/editor/services/textCompletionService.d.ts +14 -0
  124. package/dist/editor/services/textCompletionService.js +45 -0
  125. package/dist/editor/services/textCompletionService.js.map +1 -0
  126. package/dist/editor/settings/About.js +40 -263
  127. package/dist/editor/settings/About.js.map +1 -1
  128. package/dist/editor/settings/SettingsBreadcrumb.js +5 -1
  129. package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
  130. package/dist/editor/settings/panels/AgentToolsPanel.js +3 -7
  131. package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
  132. package/dist/editor/settings/panels/AgentsPanel.js +2 -3
  133. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  134. package/dist/editor/settings/panels/ClusterInstancesPanel.js +2 -3
  135. package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
  136. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +2 -4
  137. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -1
  138. package/dist/editor/settings/panels/JavaScriptToolsPanel.js +2 -3
  139. package/dist/editor/settings/panels/JavaScriptToolsPanel.js.map +1 -1
  140. package/dist/editor/settings/panels/McpToolsPanel.js +3 -4
  141. package/dist/editor/settings/panels/McpToolsPanel.js.map +1 -1
  142. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +2 -3
  143. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  144. package/dist/editor/setup-wizard/steps/LicenseActivationStep.d.ts +3 -1
  145. package/dist/editor/setup-wizard/steps/LicenseActivationStep.js +9 -5
  146. package/dist/editor/setup-wizard/steps/LicenseActivationStep.js.map +1 -1
  147. package/dist/editor/setup-wizard/steps/LicenseEmailStep.d.ts +2 -1
  148. package/dist/editor/setup-wizard/steps/LicenseEmailStep.js +6 -3
  149. package/dist/editor/setup-wizard/steps/LicenseEmailStep.js.map +1 -1
  150. package/dist/editor/sidebar/EditHistory.js +11 -3
  151. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  152. package/dist/editor/sidebar/WorkspaceRailMobile.js +1 -3
  153. package/dist/editor/sidebar/WorkspaceRailMobile.js.map +1 -1
  154. package/dist/editor/ui/ItemCollectionEditor.d.ts +6 -2
  155. package/dist/editor/ui/ItemCollectionEditor.js +163 -84
  156. package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
  157. package/dist/editor/ui/LoadingState.js +4 -4
  158. package/dist/editor/ui/LoadingState.js.map +1 -1
  159. package/dist/editor/ui/PerfectTree.d.ts +5 -1
  160. package/dist/editor/ui/PerfectTree.js +10 -6
  161. package/dist/editor/ui/PerfectTree.js.map +1 -1
  162. package/dist/editor/ui/SimpleIconButton.js +1 -1
  163. package/dist/editor/ui/TreeListSelector.d.ts +6 -2
  164. package/dist/editor/ui/TreeListSelector.js +2 -2
  165. package/dist/editor/ui/TreeListSelector.js.map +1 -1
  166. package/dist/index.d.ts +4 -1
  167. package/dist/index.js +3 -1
  168. package/dist/index.js.map +1 -1
  169. package/dist/revision.d.ts +2 -2
  170. package/dist/revision.js +2 -2
  171. package/dist/splash-screen/ModernSplashScreen.d.ts +2 -0
  172. package/dist/splash-screen/ModernSplashScreen.js +8 -3
  173. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  174. package/dist/task-board/components/ProjectDashboard.js +2 -1
  175. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  176. package/dist/task-board/components/ProjectPropertiesPanel.js +1 -1
  177. package/dist/task-board/components/ProjectPropertiesPanel.js.map +1 -1
  178. package/dist/task-board/components/TaskAssigneeBadge.d.ts +1 -1
  179. package/dist/task-board/components/TaskAssigneeBadge.js +1 -1
  180. package/dist/task-board/components/TaskAssigneeBadge.js.map +1 -1
  181. package/dist/task-board/components/TaskAssigneePicker.js +1 -1
  182. package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
  183. package/dist/task-board/components/TaskRow.js +1 -1
  184. package/dist/task-board/components/TaskRow.js.map +1 -1
  185. package/package.json +1 -1
@@ -236,7 +236,7 @@ export function MiniMap({ compareView, scroll, pageViewContext, }) {
236
236
  if (!editContext || !isBridgeMinimap) {
237
237
  return null;
238
238
  }
239
- return (_jsxs("div", { "data-testid": "minimap-container", className: "relative cursor-pointer overflow-hidden bg-white", ref: minimapContainerRef, onClickCapture: handleClick, onWheelCapture: handleScroll, style: {
239
+ return (_jsxs("div", { "data-testid": "minimap-container", className: "relative shrink-0 cursor-pointer overflow-hidden bg-white", ref: minimapContainerRef, onClickCapture: handleClick, onWheelCapture: handleScroll, style: {
240
240
  height: "100%",
241
241
  width: miniMapWidth + "px",
242
242
  boxShadow: "5px 0 5px -5px var(--color-neutral-grey-100)",
@@ -251,7 +251,10 @@ export function MiniMap({ compareView, scroll, pageViewContext, }) {
251
251
  } }) }) }) }), _jsx("div", { "aria-hidden": "true", className: "absolute inset-0" }), viewportHighlight && minimapReady && (_jsx("div", { "data-testid": "minimap-viewport-highlight", className: "bg-neutral-grey-10 pointer-events-none absolute w-full opacity-60 hover:opacity-65", style: {
252
252
  top: viewportHighlight.top + "px",
253
253
  height: viewportHighlight.height + "px",
254
- } })), iframeRef.current && (_jsxs(IframeOverlayProvider, { iframe: iframeRef.current, mode: "static", scrollScale: 1, visualScale: scale, children: [editContext.mode === "edit" && (_jsxs(_Fragment, { children: [_jsx(PlaceholderDropZones, { size: "small", pageViewContext: pageViewContext, scopeInsertModeToHoveredComponent: false, avoidOverlaps: false }), _jsx(MinimapDropTargets, { pageViewContext: pageViewContext })] })), _jsx(FieldEditedIndicators, { pageViewContext: pageViewContext }), editContext.showComments && (_jsx(CommentHighlightings, { pageViewContext: pageViewContext, variant: "minimap" })), editContext.showSuggestedEdits && (_jsx(SuggestionHighlightings, { pageViewContext: pageViewContext, variant: "minimap" })), editContext.showVersionDiffHighlighting && !compareView && (_jsx(VersionDiffHighlightings, { pageViewContext: pageViewContext, variant: "minimap" }))] })), _jsx(MiniMapSelectionHighlights, { pageViewContext: pageViewContext, scale: scale })] }));
254
+ } })), iframeRef.current && (_jsxs(IframeOverlayProvider, { iframe: iframeRef.current, mode: "static", scrollScale: 1, visualScale: scale, children: [editContext.mode === "edit" && (_jsxs(_Fragment, { children: [_jsx(PlaceholderDropZones, { size: "small", pageViewContext: pageViewContext, scopeInsertModeToHoveredComponent: false, avoidOverlaps: false }), _jsx(MinimapDropTargets, { pageViewContext: pageViewContext })] })), _jsx(FieldEditedIndicators, { pageViewContext: pageViewContext }), editContext.showComments && (_jsx(CommentHighlightings, { pageViewContext: pageViewContext, variant: "minimap" })), editContext.showSuggestedEdits && (_jsx(SuggestionHighlightings, { pageViewContext: pageViewContext, variant: "minimap" })), editContext.showVersionDiffHighlighting && !compareView && (_jsx(VersionDiffHighlightings, { pageViewContext: pageViewContext, variant: "minimap" }))] })), _jsx(MiniMapSelectionHighlights, { pageViewContext: pageViewContext, scale: scale, bounds: {
255
+ width: miniMapWidth,
256
+ height: minimapMetrics ? minimapMetrics.documentHeight * scale : 0,
257
+ } })] }));
255
258
  }
256
259
  export function getBridgeMinimapMetrics(snapshot, fallbackViewport, scrollOverride, geometry) {
257
260
  if (!snapshot)
@@ -280,15 +283,24 @@ export function getMinimapViewportHighlight(metrics, scale) {
280
283
  return { top, height };
281
284
  }
282
285
  const MINIMAP_SELECTION_BORDER_WIDTH = 2;
283
- export function getMiniMapSelectionHighlightRect(rect) {
286
+ export function getMiniMapSelectionHighlightRect(rect, bounds) {
284
287
  const outset = MINIMAP_SELECTION_BORDER_WIDTH;
288
+ const x = Math.max(0, rect.x - outset);
289
+ const y = Math.max(0, rect.y - outset);
290
+ const right = clampSelectionHighlightEdge(rect.x + rect.width + outset, bounds?.width);
291
+ const bottom = clampSelectionHighlightEdge(rect.y + rect.height + outset, bounds?.height);
285
292
  return {
286
- x: rect.x - outset,
287
- y: rect.y - outset,
288
- width: Math.max(outset * 2, rect.width + outset * 2),
289
- height: Math.max(outset * 2, rect.height + outset * 2),
293
+ x,
294
+ y,
295
+ width: Math.max(0, right - x),
296
+ height: Math.max(0, bottom - y),
290
297
  };
291
298
  }
299
+ function clampSelectionHighlightEdge(value, limit) {
300
+ return typeof limit === "number" && Number.isFinite(limit) && limit > 0
301
+ ? Math.min(value, limit)
302
+ : value;
303
+ }
292
304
  export function getMiniMapSelectionRects(selection, page, geometry, scale) {
293
305
  if (!selection?.length || !page || !geometry)
294
306
  return [];
@@ -296,7 +308,7 @@ export function getMiniMapSelectionRects(selection, page, geometry, scale) {
296
308
  .map((component) => getMiniMapComponentRect(component, geometry, scale))
297
309
  .filter((rect) => !!rect);
298
310
  }
299
- function MiniMapSelectionHighlights({ pageViewContext, scale, }) {
311
+ function MiniMapSelectionHighlights({ pageViewContext, scale, bounds, }) {
300
312
  const editContext = useEditContext();
301
313
  const selectionRects = useMemo(() => getMiniMapSelectionRects(editContext?.selection, pageViewContext.page, pageViewContext.bridgeGeometry, scale), [
302
314
  editContext?.selection,
@@ -307,7 +319,7 @@ function MiniMapSelectionHighlights({ pageViewContext, scale, }) {
307
319
  if (selectionRects.length === 0)
308
320
  return null;
309
321
  return (_jsx("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 z-20", "data-testid": "minimap-selection-highlights", children: selectionRects.map((rect, index) => {
310
- const highlightRect = getMiniMapSelectionHighlightRect(rect);
322
+ const highlightRect = getMiniMapSelectionHighlightRect(rect, bounds);
311
323
  return (_jsx("div", { className: "absolute", "data-testid": "minimap-selection-highlight", style: {
312
324
  border: `${MINIMAP_SELECTION_BORDER_WIDTH}px solid var(--color-component-default)`,
313
325
  boxSizing: "border-box",
@@ -1 +1 @@
1
- {"version":3,"file":"MiniMap.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/MiniMap.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MiniMap.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/MiniMap.tsx"],"names":[],"mappings":"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"}
@@ -27,8 +27,9 @@ import { FullscreenControls } from "../client/ui/FullscreenControls";
27
27
  import { toSitecoreDate } from "../utils/sitecoreDate";
28
28
  import { BridgeClient } from "../bridge/BridgeClient";
29
29
  import { getSuggestionDisplayValue } from "../reviews/suggestionDisplayValue";
30
- import { buildBridgeFieldPatchPayload, getBridgeFieldPatchValue, } from "./bridgeFieldPatch";
30
+ import { buildBridgeFieldPatchPayload, getBridgeFieldPatchValue, isBridgePatchableTextField, } from "./bridgeFieldPatch";
31
31
  import { createKeyboardEventFromBridgeInteraction } from "./bridgeKeyboardShortcuts";
32
+ import { getTextCompletion, normalizeTextCompletion, } from "../services/textCompletionService";
32
33
  const ZOOM_MIN = 0.25;
33
34
  const ZOOM_MAX = 2;
34
35
  const ZOOM_STEP = 0.25;
@@ -511,6 +512,29 @@ function isBridgeInlineAiShortcut(interaction) {
511
512
  keyboardInteraction.code === "Period" ||
512
513
  keyboardInteraction.code === "NumpadDecimal"));
513
514
  }
515
+ function isBridgeTextCompletionRequestShortcut(interaction) {
516
+ const key = interaction.key?.toLowerCase();
517
+ return !!((interaction.ctrlKey || interaction.metaKey) &&
518
+ !interaction.shiftKey &&
519
+ !interaction.altKey &&
520
+ (interaction.code === "Space" ||
521
+ interaction.key === " " ||
522
+ key === "spacebar"));
523
+ }
524
+ function isBridgeTextCompletionApplyShortcut(interaction) {
525
+ return !!(!interaction.ctrlKey &&
526
+ !interaction.metaKey &&
527
+ !interaction.shiftKey &&
528
+ !interaction.altKey &&
529
+ (interaction.key === "Tab" || interaction.code === "Tab"));
530
+ }
531
+ function isBridgeTextCompletionDismissShortcut(interaction) {
532
+ return !!(!interaction.ctrlKey &&
533
+ !interaction.metaKey &&
534
+ (interaction.key === "Escape" ||
535
+ interaction.key === "Esc" ||
536
+ interaction.code === "Escape"));
537
+ }
514
538
  function isBridgeLinkShortcut(interaction) {
515
539
  const keyboardInteraction = interaction;
516
540
  return !!((keyboardInteraction.ctrlKey || keyboardInteraction.metaKey) &&
@@ -526,6 +550,33 @@ function isBridgeLinkShortcutRange(range, interaction) {
526
550
  ((interaction.elementKey && range.elementKey === interaction.elementKey) ||
527
551
  bridgeIdsMatch(range.fieldId, interaction.fieldId)));
528
552
  }
553
+ function bridgeSelectionMatchesInteraction(selection, interaction) {
554
+ return !!(selection?.activeField &&
555
+ ((interaction.elementKey &&
556
+ selection.activeField.elementKey === interaction.elementKey) ||
557
+ bridgeIdsMatch(selection.activeField.fieldId, interaction.fieldId)));
558
+ }
559
+ function getBridgeSelectionMetadataString(selection, key) {
560
+ const value = selection?.metadata?.[key];
561
+ return typeof value === "string" ? value : undefined;
562
+ }
563
+ function clampTextOffset(value, length) {
564
+ if (typeof value !== "number" || !Number.isFinite(value)) {
565
+ return length;
566
+ }
567
+ return Math.min(length, Math.max(0, value));
568
+ }
569
+ function getPlainTextFromBridgeValue(value) {
570
+ if (!/[<&]/.test(value))
571
+ return value;
572
+ try {
573
+ const parser = new DOMParser();
574
+ return parser.parseFromString(value, "text/html").body.textContent ?? "";
575
+ }
576
+ catch {
577
+ return value.replace(/<[^>]*>/g, "");
578
+ }
579
+ }
529
580
  export function PageViewerFrame(props) {
530
581
  const editContext = useEditContext();
531
582
  useViewportChangeSignal();
@@ -549,6 +600,9 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
549
600
  const bridgePatchSignatureRef = useRef(new Map());
550
601
  const bridgeTextRangeSourcesRef = useRef(new Map());
551
602
  const activeBridgeInlineEditRef = useRef(null);
603
+ const bridgeTextCompletionRef = useRef(null);
604
+ const bridgeTextCompletionAbortRef = useRef(null);
605
+ const bridgeTextCompletionRequestIdRef = useRef(0);
552
606
  const previousBridgeInlineEditModeRef = useRef(editContext.mode);
553
607
  const latestBridgeScrollRef = useRef(undefined);
554
608
  const directOverlayScrollSyncRef = useRef(false);
@@ -702,6 +756,40 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
702
756
  return (bridgeClientRef.current?.sendCommand("applyRichTextCommand", payload) ??
703
757
  false);
704
758
  }, []);
759
+ const sendTextCompletionCommand = useCallback((payload) => {
760
+ return (bridgeClientRef.current?.sendCommand("textCompletion", payload) ?? false);
761
+ }, []);
762
+ const clearBridgeTextCompletion = useCallback(() => {
763
+ bridgeTextCompletionRequestIdRef.current += 1;
764
+ bridgeTextCompletionAbortRef.current?.abort();
765
+ bridgeTextCompletionAbortRef.current = null;
766
+ const current = bridgeTextCompletionRef.current;
767
+ bridgeTextCompletionRef.current = null;
768
+ if (!current)
769
+ return false;
770
+ return sendTextCompletionCommand({
771
+ ...current,
772
+ action: "clear",
773
+ });
774
+ }, [sendTextCompletionCommand]);
775
+ const applyBridgeTextCompletion = useCallback(() => {
776
+ bridgeTextCompletionRequestIdRef.current += 1;
777
+ bridgeTextCompletionAbortRef.current?.abort();
778
+ bridgeTextCompletionAbortRef.current = null;
779
+ const current = bridgeTextCompletionRef.current;
780
+ bridgeTextCompletionRef.current = null;
781
+ if (!current)
782
+ return false;
783
+ return sendTextCompletionCommand({
784
+ ...current,
785
+ action: "apply",
786
+ });
787
+ }, [sendTextCompletionCommand]);
788
+ useEffect(() => {
789
+ return () => {
790
+ bridgeTextCompletionAbortRef.current?.abort();
791
+ };
792
+ }, []);
705
793
  const { beginInlineEdit: beginBridgeInlineEdit, clearInlineDedupe: clearBridgeInlineDedupe, endFieldFocus: endBridgeFieldFocus, handleFieldValueChanged: handleBridgeFieldValueChanged, handleInlineEditEnded: handleBridgeInlineEditEnded, } = useBridgeInlineEditing({
706
794
  pageViewContextRef,
707
795
  activeBridgeInlineEditRef,
@@ -1055,6 +1143,180 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
1055
1143
  item: fallbackDescriptorItem,
1056
1144
  };
1057
1145
  }, [editContextRef]);
1146
+ const requestBridgeTextCompletion = useCallback(async (interaction, force = false) => {
1147
+ const editor = editContextRef.current;
1148
+ if (!editor?.enableCompletions || editor.mode === "preview") {
1149
+ clearBridgeTextCompletion();
1150
+ return;
1151
+ }
1152
+ const fieldDescriptor = await resolveBridgeFieldDescriptor(interaction);
1153
+ if (!fieldDescriptor) {
1154
+ clearBridgeTextCompletion();
1155
+ return;
1156
+ }
1157
+ const field = await editor.itemsRepository.getField(fieldDescriptor);
1158
+ if (!field) {
1159
+ clearBridgeTextCompletion();
1160
+ return;
1161
+ }
1162
+ const bridgeSelection = pageViewContextRef.current?.bridgeSelection;
1163
+ const selectionMatches = bridgeSelectionMatchesInteraction(bridgeSelection, interaction);
1164
+ const activeField = selectionMatches
1165
+ ? bridgeSelection?.activeField
1166
+ : undefined;
1167
+ const elementKey = interaction.elementKey ?? activeField?.elementKey;
1168
+ const hostFieldId = interaction.fieldId ?? activeField?.fieldId ?? fieldDescriptor.fieldId;
1169
+ const isRichText = !!(activeField?.isRichText || field.type.toLowerCase() === "rich text");
1170
+ if (!elementKey ||
1171
+ !hostFieldId ||
1172
+ !isBridgePatchableTextField(field, isRichText)) {
1173
+ clearBridgeTextCompletion();
1174
+ return;
1175
+ }
1176
+ const selectedText = selectionMatches && typeof bridgeSelection?.text === "string"
1177
+ ? bridgeSelection.text
1178
+ : typeof interaction.selectedText === "string"
1179
+ ? interaction.selectedText
1180
+ : "";
1181
+ const selectionStartOffset = selectionMatches && typeof bridgeSelection?.startOffset === "number"
1182
+ ? bridgeSelection.startOffset
1183
+ : typeof interaction.selectionStartOffset === "number"
1184
+ ? interaction.selectionStartOffset
1185
+ : undefined;
1186
+ const selectionEndOffset = selectionMatches && typeof bridgeSelection?.endOffset === "number"
1187
+ ? bridgeSelection.endOffset
1188
+ : typeof interaction.selectionEndOffset === "number"
1189
+ ? interaction.selectionEndOffset
1190
+ : undefined;
1191
+ const liveSelectionStartOffset = typeof interaction.selectionStartOffset === "number"
1192
+ ? interaction.selectionStartOffset
1193
+ : undefined;
1194
+ const liveSelectionEndOffset = typeof interaction.selectionEndOffset === "number"
1195
+ ? interaction.selectionEndOffset
1196
+ : undefined;
1197
+ const bridgeSelectionStartOffset = selectionMatches && typeof bridgeSelection?.startOffset === "number"
1198
+ ? bridgeSelection?.startOffset
1199
+ : undefined;
1200
+ const bridgeSelectionEndOffset = selectionMatches && typeof bridgeSelection?.endOffset === "number"
1201
+ ? bridgeSelection?.endOffset
1202
+ : undefined;
1203
+ const activeInlineEdit = activeBridgeInlineEditRef.current;
1204
+ const activeInlineEditMatches = !!(activeInlineEdit &&
1205
+ activeInlineEdit.elementKey === elementKey &&
1206
+ (bridgeIdsMatch(activeInlineEdit.fieldId, hostFieldId) ||
1207
+ bridgeIdsMatch(activeInlineEdit.fieldId, fieldDescriptor.fieldId)));
1208
+ const rawValue = activeInlineEditMatches && activeInlineEdit.value !== undefined
1209
+ ? activeInlineEdit.value
1210
+ : getBridgeFieldPatchValue(field);
1211
+ let completionValue = rawValue;
1212
+ let completionSelectionStart = 0;
1213
+ let completionSelectionEnd = 0;
1214
+ if (isRichText) {
1215
+ const contextBefore = selectionMatches
1216
+ ? getBridgeSelectionMetadataString(bridgeSelection, "contextBefore")
1217
+ : undefined;
1218
+ const contextAfter = selectionMatches
1219
+ ? getBridgeSelectionMetadataString(bridgeSelection, "contextAfter")
1220
+ : undefined;
1221
+ const hasLiveInteractionOffsets = liveSelectionStartOffset !== undefined &&
1222
+ liveSelectionEndOffset !== undefined;
1223
+ const selectionSnapshotMatchesLiveOffsets = bridgeSelectionStartOffset === undefined ||
1224
+ bridgeSelectionEndOffset === undefined ||
1225
+ !hasLiveInteractionOffsets ||
1226
+ (bridgeSelectionStartOffset === liveSelectionStartOffset &&
1227
+ bridgeSelectionEndOffset === liveSelectionEndOffset);
1228
+ const metadataMatchesLiveOffsets = !selectionSnapshotMatchesLiveOffsets ||
1229
+ ((contextBefore?.length ?? 0) === interaction.selectionStartOffset &&
1230
+ (contextBefore?.length ?? 0) + selectedText.length ===
1231
+ interaction.selectionEndOffset);
1232
+ if (metadataMatchesLiveOffsets &&
1233
+ (contextBefore !== undefined || contextAfter !== undefined)) {
1234
+ completionValue = `${contextBefore ?? ""}${selectedText}${contextAfter ?? ""}`;
1235
+ completionSelectionStart = contextBefore?.length ?? 0;
1236
+ completionSelectionEnd =
1237
+ completionSelectionStart + selectedText.length;
1238
+ }
1239
+ else {
1240
+ completionValue = getPlainTextFromBridgeValue(rawValue);
1241
+ completionSelectionStart = clampTextOffset(selectionStartOffset, completionValue.length);
1242
+ completionSelectionEnd = clampTextOffset(selectionEndOffset ?? selectionStartOffset, completionValue.length);
1243
+ }
1244
+ }
1245
+ else {
1246
+ completionSelectionStart = clampTextOffset(selectionStartOffset, completionValue.length);
1247
+ completionSelectionEnd = clampTextOffset(selectionEndOffset ?? selectionStartOffset, completionValue.length);
1248
+ }
1249
+ if (!force &&
1250
+ completionValue.slice(0, completionSelectionStart).trim().length < 3) {
1251
+ clearBridgeTextCompletion();
1252
+ return;
1253
+ }
1254
+ clearBridgeTextCompletion();
1255
+ const requestId = bridgeTextCompletionRequestIdRef.current + 1;
1256
+ bridgeTextCompletionRequestIdRef.current = requestId;
1257
+ const abortController = new AbortController();
1258
+ bridgeTextCompletionAbortRef.current = abortController;
1259
+ try {
1260
+ const completion = normalizeTextCompletion(await getTextCompletion({
1261
+ editContext: editor,
1262
+ field,
1263
+ value: completionValue,
1264
+ selectionStart: completionSelectionStart,
1265
+ selectionEnd: completionSelectionEnd,
1266
+ signal: abortController.signal,
1267
+ }));
1268
+ if (requestId !== bridgeTextCompletionRequestIdRef.current ||
1269
+ abortController.signal.aborted) {
1270
+ return;
1271
+ }
1272
+ bridgeTextCompletionAbortRef.current = null;
1273
+ if (!completion) {
1274
+ bridgeTextCompletionRef.current = null;
1275
+ sendTextCompletionCommand({
1276
+ action: "clear",
1277
+ elementKey,
1278
+ fieldId: hostFieldId,
1279
+ });
1280
+ return;
1281
+ }
1282
+ const commandPayload = {
1283
+ elementKey,
1284
+ fieldId: hostFieldId,
1285
+ completion,
1286
+ selectedText,
1287
+ selectionStartOffset: typeof selectionStartOffset === "number"
1288
+ ? selectionStartOffset
1289
+ : completionSelectionStart,
1290
+ selectionEndOffset: typeof selectionEndOffset === "number"
1291
+ ? selectionEndOffset
1292
+ : completionSelectionEnd,
1293
+ };
1294
+ bridgeTextCompletionRef.current = commandPayload;
1295
+ sendTextCompletionCommand({
1296
+ ...commandPayload,
1297
+ action: "show",
1298
+ });
1299
+ }
1300
+ catch (error) {
1301
+ if (!abortController.signal.aborted) {
1302
+ console.warn("Failed to get text completion", error);
1303
+ }
1304
+ if (requestId === bridgeTextCompletionRequestIdRef.current) {
1305
+ bridgeTextCompletionAbortRef.current = null;
1306
+ bridgeTextCompletionRef.current = null;
1307
+ sendTextCompletionCommand({
1308
+ action: "clear",
1309
+ elementKey,
1310
+ fieldId: hostFieldId,
1311
+ });
1312
+ }
1313
+ }
1314
+ }, [
1315
+ clearBridgeTextCompletion,
1316
+ editContextRef,
1317
+ resolveBridgeFieldDescriptor,
1318
+ sendTextCompletionCommand,
1319
+ ]);
1058
1320
  const handleBridgeInteraction = useCallback(async (interaction, iframe) => {
1059
1321
  if (interaction.kind === "wheel") {
1060
1322
  if (!interaction.ctrlKey && !interaction.metaKey)
@@ -1068,6 +1330,25 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
1068
1330
  return;
1069
1331
  }
1070
1332
  if (interaction.kind === "keydown") {
1333
+ if (isBridgeTextCompletionDismissShortcut(interaction)) {
1334
+ if (bridgeTextCompletionRef.current) {
1335
+ clearBridgeTextCompletion();
1336
+ return;
1337
+ }
1338
+ }
1339
+ if (isBridgeTextCompletionApplyShortcut(interaction)) {
1340
+ if (bridgeTextCompletionRef.current) {
1341
+ applyBridgeTextCompletion();
1342
+ return;
1343
+ }
1344
+ }
1345
+ if (isBridgeTextCompletionRequestShortcut(interaction)) {
1346
+ await requestBridgeTextCompletion(interaction, true);
1347
+ return;
1348
+ }
1349
+ if (bridgeTextCompletionRef.current && interaction.fieldId) {
1350
+ clearBridgeTextCompletion();
1351
+ }
1071
1352
  if (isBridgeLinkShortcut(interaction)) {
1072
1353
  const editor = editContextRef.current;
1073
1354
  let linkRange = editor?.selectedRange;
@@ -1189,6 +1470,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
1189
1470
  return;
1190
1471
  if (interaction.kind === "contextMenu" && interaction.ctrlKey)
1191
1472
  return;
1473
+ clearBridgeTextCompletion();
1192
1474
  const editor = editContextRef.current;
1193
1475
  if (!editor)
1194
1476
  return;
@@ -1402,8 +1684,11 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
1402
1684
  endTrackedBridgeFieldFocus();
1403
1685
  }
1404
1686
  }, [
1687
+ applyBridgeTextCompletion,
1405
1688
  beginTrackedBridgeInlineEdit,
1689
+ clearBridgeTextCompletion,
1406
1690
  endTrackedBridgeFieldFocus,
1691
+ requestBridgeTextCompletion,
1407
1692
  resolveBridgeFieldDescriptor,
1408
1693
  ]);
1409
1694
  // Update the context whenever the iframe ref changes
@@ -1561,6 +1846,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
1561
1846
  window.dispatchEvent(new CustomEvent(BRIDGE_DOM_UPDATED_EVENT));
1562
1847
  break;
1563
1848
  case "refreshStarted":
1849
+ clearBridgeTextCompletion();
1564
1850
  clearBridgePatchSignatures();
1565
1851
  activeBridgeInlineEditRef.current = null;
1566
1852
  break;
@@ -1672,6 +1958,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
1672
1958
  handleBridgeInlineEditEnded,
1673
1959
  handleBridgeInteraction,
1674
1960
  handleBridgeSelection,
1961
+ clearBridgeTextCompletion,
1675
1962
  clearBridgePatchSignatures,
1676
1963
  pageViewContext.editUrl,
1677
1964
  pageViewContext.previewUrl,
@@ -2358,9 +2645,9 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
2358
2645
  const fullscreenPageTitle = pageViewContext.page?.item?.displayName?.trim() ||
2359
2646
  pageViewContext.page?.item?.name?.trim() ||
2360
2647
  "Page";
2361
- return (_jsxs("div", { className: cn("relative flex h-full w-full flex-col items-center select-none", className, editContext.showAgentsPanel && !editContext.currentWizardId && "pr-0"), children: [!pageViewContext.fullscreen && (_jsx(EditorWarnings, { item: pageViewContext.page?.item })), slotCloseButton && (_jsx("div", { className: "absolute top-3 right-3 z-50", children: slotCloseButton })), pageViewContext.fullscreen && (_jsxs("div", { className: "border-neutral-grey-15 relative z-40 flex h-11 w-full shrink-0 items-center justify-center border-b bg-white px-28 text-center shadow-sm", "data-testid": "fullscreen-page-title-bar", children: [_jsx("div", { className: "text-neutral-grey-100 max-w-full truncate text-sm font-medium", title: fullscreenPageTitle, "data-testid": "fullscreen-page-title", children: fullscreenPageTitle }), _jsx("div", { className: "absolute top-1/2 right-3 -translate-y-1/2", children: _jsx(FullscreenControls, { device: pageViewContext.device, setDevice: (device) => pageViewContext.setDevice(device), canExit: !editContext.configuration.forceFullscreen, onExit: () => editContext.setFullscreen(false), firstMobileDeviceName: editContext.configuration.devices[0]?.name }) })] })), pageViewContext.device !== "desktop" && (_jsx(DeviceToolbar, { pageViewContext: pageViewContext, configuration: editContext.configuration })), _jsxs("div", { className: "relative flex min-h-0 flex-1 transition-[width] duration-300 ease-in-out select-none motion-reduce:transition-none", "data-testid": "page-viewer-viewport", style: {
2648
+ return (_jsxs("div", { className: cn("relative flex h-full w-full flex-col items-center select-none", className, editContext.showAgentsPanel && !editContext.currentWizardId && "pr-0"), children: [!pageViewContext.fullscreen && (_jsx(EditorWarnings, { item: pageViewContext.page?.item })), slotCloseButton && (_jsx("div", { className: "absolute top-3 right-3 z-50", children: slotCloseButton })), pageViewContext.fullscreen && (_jsxs("div", { className: "border-neutral-grey-15 relative z-40 flex h-11 w-full shrink-0 items-center justify-center border-b bg-white px-28 text-center shadow-sm", "data-testid": "fullscreen-page-title-bar", children: [_jsx("div", { className: "text-neutral-grey-100 max-w-full truncate text-sm font-medium", title: fullscreenPageTitle, "data-testid": "fullscreen-page-title", children: fullscreenPageTitle }), _jsx("div", { className: "absolute top-1/2 right-3 -translate-y-1/2", children: _jsx(FullscreenControls, { device: pageViewContext.device, setDevice: (device) => pageViewContext.setDevice(device), canExit: !editContext.configuration.forceFullscreen, onExit: () => editContext.setFullscreen(false) }) })] })), pageViewContext.device !== "desktop" && (_jsx(DeviceToolbar, { pageViewContext: pageViewContext, configuration: editContext.configuration })), _jsxs("div", { className: "relative flex min-h-0 flex-1 transition-[width] duration-300 ease-in-out select-none motion-reduce:transition-none", "data-testid": "page-viewer-viewport", style: {
2362
2649
  width: deviceWidth,
2363
- }, children: [_jsxs("div", { className: "relative h-full w-full overflow-hidden", onMouseLeave: () => {
2650
+ }, children: [_jsxs("div", { className: "relative h-full w-full overflow-visible", onMouseLeave: () => {
2364
2651
  if (pageViewContext.bridgeInteraction?.kind === "hover") {
2365
2652
  pageViewContext.setBridgeInteraction(undefined);
2366
2653
  }
@@ -2390,7 +2677,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
2390
2677
  restorePendingRefreshScroll(iframeRef.current, pendingRefreshScrollRef.current);
2391
2678
  }
2392
2679
  }
2393
- } }), iframeElement && (_jsx(IframeOverlayProvider, { iframe: iframeElement, mode: "scrolling", scrollScale: 1, visualScale: 1, invalidationKey: `${zoom}:${bridgeGeometryRevision}`, deferredInvalidationMs: ZOOM_TRANSITION_MS + 50, children: _jsx(PageEditorChrome, { iframe: iframeElement, compareView: compareView, pageViewContext: pageViewContext, onBridgeRichTextCommand: sendApplyRichTextCommand }) })), pageViewContext.deviceHeight && pageViewContext.device && (_jsx("div", { className: "bg-neutral-grey-5 relative z-40 h-full w-full" }))] }), !pageViewContext.fullscreen &&
2680
+ } }), iframeElement && (_jsx(IframeOverlayProvider, { iframe: iframeElement, mode: "scrolling", scrollScale: 1, visualScale: 1, invalidationKey: `${zoom}:${bridgeGeometryRevision}`, deferredInvalidationMs: ZOOM_TRANSITION_MS + 50, bleed: { top: 2, bottom: 2, left: 2 }, children: _jsx(PageEditorChrome, { iframe: iframeElement, compareView: compareView, pageViewContext: pageViewContext, onBridgeRichTextCommand: sendApplyRichTextCommand }) })), pageViewContext.deviceHeight && pageViewContext.device && (_jsx("div", { className: "bg-neutral-grey-5 relative z-40 h-full w-full" }))] }), !pageViewContext.fullscreen &&
2394
2681
  showMiniMap &&
2395
2682
  editContext.showMinimap &&
2396
2683
  !editContext.isMobile &&