@parhelia/core 0.1.12907 → 0.1.12909

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 (2200) hide show
  1. package/dist/agents-view/AgentCard.d.ts +8 -4
  2. package/dist/agents-view/AgentCard.js +80 -175
  3. package/dist/agents-view/AgentCard.js.map +1 -1
  4. package/dist/agents-view/AgentGalleryCard.d.ts +12 -0
  5. package/dist/agents-view/AgentGalleryCard.js +12 -0
  6. package/dist/agents-view/AgentGalleryCard.js.map +1 -0
  7. package/dist/agents-view/AgentGalleryView.d.ts +18 -0
  8. package/dist/agents-view/AgentGalleryView.js +88 -0
  9. package/dist/agents-view/AgentGalleryView.js.map +1 -0
  10. package/dist/agents-view/AgentProfileIcon.d.ts +9 -0
  11. package/dist/agents-view/AgentProfileIcon.js +32 -0
  12. package/dist/agents-view/AgentProfileIcon.js.map +1 -0
  13. package/dist/agents-view/AgentsSidebar.d.ts +4 -11
  14. package/dist/agents-view/AgentsSidebar.js +10 -14
  15. package/dist/agents-view/AgentsSidebar.js.map +1 -1
  16. package/dist/agents-view/AgentsTitlebar.d.ts +2 -3
  17. package/dist/agents-view/AgentsTitlebar.js +6 -7
  18. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  19. package/dist/agents-view/AgentsView.d.ts +27 -7
  20. package/dist/agents-view/AgentsView.js +126 -294
  21. package/dist/agents-view/AgentsView.js.map +1 -1
  22. package/dist/agents-view/AgentsWorkspaceView.d.ts +1 -1
  23. package/dist/agents-view/AgentsWorkspaceView.js +150 -106
  24. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  25. package/dist/agents-view/CreateAgentView.d.ts +1 -1
  26. package/dist/agents-view/CreateAgentView.js +2 -2
  27. package/dist/agents-view/CreateAgentView.js.map +1 -1
  28. package/dist/agents-view/DateAgentsGroup.d.ts +17 -0
  29. package/dist/agents-view/DateAgentsGroup.js +19 -0
  30. package/dist/agents-view/DateAgentsGroup.js.map +1 -0
  31. package/dist/agents-view/ProfileAgentsGroup.d.ts +4 -4
  32. package/dist/agents-view/ProfileAgentsGroup.js +22 -10
  33. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  34. package/dist/agents-view/RenameAgentDialog.d.ts +12 -0
  35. package/dist/agents-view/RenameAgentDialog.js +40 -0
  36. package/dist/agents-view/RenameAgentDialog.js.map +1 -0
  37. package/dist/agents-view/agentsNavStore.d.ts +8 -0
  38. package/dist/agents-view/agentsNavStore.js +24 -0
  39. package/dist/agents-view/agentsNavStore.js.map +1 -0
  40. package/dist/components/MarkdownDisplay.js +29 -16
  41. package/dist/components/MarkdownDisplay.js.map +1 -1
  42. package/dist/components/PageHeader.d.ts +5 -1
  43. package/dist/components/PageHeader.js +3 -3
  44. package/dist/components/PageHeader.js.map +1 -1
  45. package/dist/components/SearchInput.d.ts +28 -0
  46. package/dist/components/SearchInput.js +38 -0
  47. package/dist/components/SearchInput.js.map +1 -0
  48. package/dist/components/index.d.ts +4 -2
  49. package/dist/components/index.js +2 -1
  50. package/dist/components/index.js.map +1 -1
  51. package/dist/components/ui/LanguageSelectionGrid.d.ts +27 -0
  52. package/dist/components/ui/LanguageSelectionGrid.js +41 -0
  53. package/dist/components/ui/LanguageSelectionGrid.js.map +1 -0
  54. package/dist/components/ui/LanguageSelector.d.ts +6 -1
  55. package/dist/components/ui/LanguageSelector.js +10 -6
  56. package/dist/components/ui/LanguageSelector.js.map +1 -1
  57. package/dist/components/ui/PlaceholderInput.d.ts +0 -8
  58. package/dist/components/ui/PlaceholderInput.js +2 -43
  59. package/dist/components/ui/PlaceholderInput.js.map +1 -1
  60. package/dist/components/ui/PlaceholderInputParser.d.ts +9 -0
  61. package/dist/components/ui/PlaceholderInputParser.js +98 -0
  62. package/dist/components/ui/PlaceholderInputParser.js.map +1 -0
  63. package/dist/components/ui/PlaceholderInputTypes.d.ts +1 -1
  64. package/dist/components/ui/PlaceholderInputTypes.js +1 -1
  65. package/dist/components/ui/PlaceholderInputTypes.js.map +1 -1
  66. package/dist/components/ui/PlaceholderItemSelector.js +3 -3
  67. package/dist/components/ui/PlaceholderItemSelector.js.map +1 -1
  68. package/dist/components/ui/UserPicker.d.ts +34 -0
  69. package/dist/components/ui/UserPicker.js +73 -0
  70. package/dist/components/ui/UserPicker.js.map +1 -0
  71. package/dist/components/ui/accordion.d.ts +7 -0
  72. package/dist/components/ui/accordion.js +17 -0
  73. package/dist/components/ui/accordion.js.map +1 -0
  74. package/dist/components/ui/alert-dialog.d.ts +1 -1
  75. package/dist/components/ui/alert-dialog.js +8 -8
  76. package/dist/components/ui/alert-dialog.js.map +1 -1
  77. package/dist/components/ui/alert.d.ts +3 -2
  78. package/dist/components/ui/alert.js +9 -4
  79. package/dist/components/ui/alert.js.map +1 -1
  80. package/dist/components/ui/avatar.d.ts +30 -0
  81. package/dist/components/ui/avatar.js +46 -0
  82. package/dist/components/ui/avatar.js.map +1 -0
  83. package/dist/components/ui/badge.d.ts +8 -3
  84. package/dist/components/ui/badge.js +18 -8
  85. package/dist/components/ui/badge.js.map +1 -1
  86. package/dist/components/ui/breadcrumb.d.ts +1 -1
  87. package/dist/components/ui/breadcrumb.js +5 -5
  88. package/dist/components/ui/breadcrumb.js.map +1 -1
  89. package/dist/components/ui/button.d.ts +9 -4
  90. package/dist/components/ui/button.js +20 -14
  91. package/dist/components/ui/button.js.map +1 -1
  92. package/dist/components/ui/card.d.ts +4 -1
  93. package/dist/components/ui/card.js +4 -4
  94. package/dist/components/ui/card.js.map +1 -1
  95. package/dist/components/ui/checkbox.js +1 -1
  96. package/dist/components/ui/checkbox.js.map +1 -1
  97. package/dist/components/ui/close-button.d.ts +13 -0
  98. package/dist/components/ui/close-button.js +29 -0
  99. package/dist/components/ui/close-button.js.map +1 -0
  100. package/dist/components/ui/close-icon.d.ts +7 -0
  101. package/dist/components/ui/close-icon.js +14 -0
  102. package/dist/components/ui/close-icon.js.map +1 -0
  103. package/dist/components/ui/command.d.ts +2 -1
  104. package/dist/components/ui/command.js +8 -4
  105. package/dist/components/ui/command.js.map +1 -1
  106. package/dist/components/ui/context-menu.d.ts +17 -3
  107. package/dist/components/ui/context-menu.js +132 -68
  108. package/dist/components/ui/context-menu.js.map +1 -1
  109. package/dist/components/ui/copy-button.js +4 -3
  110. package/dist/components/ui/copy-button.js.map +1 -1
  111. package/dist/components/ui/delete-button.d.ts +13 -0
  112. package/dist/components/ui/delete-button.js +36 -0
  113. package/dist/components/ui/delete-button.js.map +1 -0
  114. package/dist/components/ui/delete-icon.d.ts +7 -0
  115. package/dist/components/ui/delete-icon.js +14 -0
  116. package/dist/components/ui/delete-icon.js.map +1 -0
  117. package/dist/components/ui/dialog.d.ts +3 -3
  118. package/dist/components/ui/dialog.js +30 -7
  119. package/dist/components/ui/dialog.js.map +1 -1
  120. package/dist/components/ui/dropdown-menu.js +5 -5
  121. package/dist/components/ui/dropdown-menu.js.map +1 -1
  122. package/dist/components/ui/input.js +2 -2
  123. package/dist/components/ui/input.js.map +1 -1
  124. package/dist/components/ui/label.js +1 -1
  125. package/dist/components/ui/mention-textarea.d.ts +10 -0
  126. package/dist/components/ui/mention-textarea.js +180 -0
  127. package/dist/components/ui/mention-textarea.js.map +1 -0
  128. package/dist/components/ui/multi-switch-button.d.ts +22 -0
  129. package/dist/components/ui/multi-switch-button.js +12 -0
  130. package/dist/components/ui/multi-switch-button.js.map +1 -0
  131. package/dist/components/ui/paste-button.js +2 -2
  132. package/dist/components/ui/paste-button.js.map +1 -1
  133. package/dist/components/ui/popover.js +22 -4
  134. package/dist/components/ui/popover.js.map +1 -1
  135. package/dist/components/ui/progress.js +2 -2
  136. package/dist/components/ui/progress.js.map +1 -1
  137. package/dist/components/ui/select.js +3 -4
  138. package/dist/components/ui/select.js.map +1 -1
  139. package/dist/components/ui/sonner.js +28 -2
  140. package/dist/components/ui/sonner.js.map +1 -1
  141. package/dist/components/ui/styled-dialog-title.js +2 -2
  142. package/dist/components/ui/styled-dialog-title.js.map +1 -1
  143. package/dist/components/ui/switch.js +1 -1
  144. package/dist/components/ui/switch.js.map +1 -1
  145. package/dist/components/ui/tabs.js +3 -3
  146. package/dist/components/ui/tabs.js.map +1 -1
  147. package/dist/components/ui/textarea.js +2 -2
  148. package/dist/components/ui/textarea.js.map +1 -1
  149. package/dist/components/ui/tooltip.js +1 -1
  150. package/dist/components/ui/tooltip.js.map +1 -1
  151. package/dist/config/config.js +314 -70
  152. package/dist/config/config.js.map +1 -1
  153. package/dist/config/notificationRoutes.js +111 -10
  154. package/dist/config/notificationRoutes.js.map +1 -1
  155. package/dist/config/types/sidebar.d.ts +4 -0
  156. package/dist/config/types/workspace.d.ts +13 -2
  157. package/dist/config/types.d.ts +17 -3
  158. package/dist/config/types.js.map +1 -1
  159. package/dist/editor/AdminRequiredView.js +4 -2
  160. package/dist/editor/AdminRequiredView.js.map +1 -1
  161. package/dist/editor/AspectRatioSelector.js +28 -25
  162. package/dist/editor/AspectRatioSelector.js.map +1 -1
  163. package/dist/editor/ConcurrentUserLimitDialog.js +11 -4
  164. package/dist/editor/ConcurrentUserLimitDialog.js.map +1 -1
  165. package/dist/editor/ConfirmationDialog.js +6 -2
  166. package/dist/editor/ConfirmationDialog.js.map +1 -1
  167. package/dist/editor/ContentTree.d.ts +19 -1
  168. package/dist/editor/ContentTree.js +99 -30
  169. package/dist/editor/ContentTree.js.map +1 -1
  170. package/dist/editor/ContextMenu.d.ts +1 -0
  171. package/dist/editor/ContextMenu.js +9 -11
  172. package/dist/editor/ContextMenu.js.map +1 -1
  173. package/dist/editor/DeleteItemsWarning.js +2 -2
  174. package/dist/editor/DeleteItemsWarning.js.map +1 -1
  175. package/dist/editor/Editor.d.ts +1 -1
  176. package/dist/editor/Editor.js +29 -9
  177. package/dist/editor/Editor.js.map +1 -1
  178. package/dist/editor/EditorLoadingOverlay.d.ts +1 -0
  179. package/dist/editor/EditorLoadingOverlay.js +7 -0
  180. package/dist/editor/EditorLoadingOverlay.js.map +1 -0
  181. package/dist/editor/EditorWarning.js +4 -4
  182. package/dist/editor/EditorWarning.js.map +1 -1
  183. package/dist/editor/FieldActionsOverlay.d.ts +0 -1
  184. package/dist/editor/FieldActionsOverlay.js +8 -25
  185. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  186. package/dist/editor/FieldEditorPopup.js +2 -2
  187. package/dist/editor/FieldEditorPopup.js.map +1 -1
  188. package/dist/editor/FieldHistory.d.ts +2 -1
  189. package/dist/editor/FieldHistory.js +23 -15
  190. package/dist/editor/FieldHistory.js.map +1 -1
  191. package/dist/editor/FieldList.js +2 -2
  192. package/dist/editor/FieldList.js.map +1 -1
  193. package/dist/editor/FieldListField.d.ts +1 -1
  194. package/dist/editor/FieldListField.js +69 -60
  195. package/dist/editor/FieldListField.js.map +1 -1
  196. package/dist/editor/FieldListFieldWithFallbacks.js +4 -3
  197. package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -1
  198. package/dist/editor/GlobalMenuBar.js +28 -19
  199. package/dist/editor/GlobalMenuBar.js.map +1 -1
  200. package/dist/editor/ImageEditButton.js +3 -3
  201. package/dist/editor/ImageEditButton.js.map +1 -1
  202. package/dist/editor/ImageEditor.d.ts +6 -1
  203. package/dist/editor/ImageEditor.js +21 -4
  204. package/dist/editor/ImageEditor.js.map +1 -1
  205. package/dist/editor/ItemInfo.js +10 -7
  206. package/dist/editor/ItemInfo.js.map +1 -1
  207. package/dist/editor/LinkEditorDialog.d.ts +9 -2
  208. package/dist/editor/LinkEditorDialog.js +183 -60
  209. package/dist/editor/LinkEditorDialog.js.map +1 -1
  210. package/dist/editor/MainLayout.js +121 -16
  211. package/dist/editor/MainLayout.js.map +1 -1
  212. package/dist/editor/MigrationsView.js +16 -35
  213. package/dist/editor/MigrationsView.js.map +1 -1
  214. package/dist/editor/MobileLayout.js +35 -3
  215. package/dist/editor/MobileLayout.js.map +1 -1
  216. package/dist/editor/PictureCropper.js +116 -58
  217. package/dist/editor/PictureCropper.js.map +1 -1
  218. package/dist/editor/PictureEditor.d.ts +2 -1
  219. package/dist/editor/PictureEditor.js +17 -19
  220. package/dist/editor/PictureEditor.js.map +1 -1
  221. package/dist/editor/QuickItemSwitcher.js +9 -9
  222. package/dist/editor/QuickItemSwitcher.js.map +1 -1
  223. package/dist/editor/SetupWizard.js +17 -13
  224. package/dist/editor/SetupWizard.js.map +1 -1
  225. package/dist/editor/Titlebar.d.ts +1 -1
  226. package/dist/editor/Titlebar.js +2 -2
  227. package/dist/editor/Titlebar.js.map +1 -1
  228. package/dist/editor/WorkspaceTitleSwitcher.d.ts +5 -0
  229. package/dist/editor/WorkspaceTitleSwitcher.js +67 -0
  230. package/dist/editor/WorkspaceTitleSwitcher.js.map +1 -0
  231. package/dist/editor/ai/AgentInlineDialogContent.js +2 -2
  232. package/dist/editor/ai/AgentInlineDialogContent.js.map +1 -1
  233. package/dist/editor/ai/AgentPanesGrid.js +8 -7
  234. package/dist/editor/ai/AgentPanesGrid.js.map +1 -1
  235. package/dist/editor/ai/AgentProfileSelector.d.ts +1 -0
  236. package/dist/editor/ai/AgentProfileSelector.js +11 -9
  237. package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
  238. package/dist/editor/ai/AgentSharingSection.js +22 -9
  239. package/dist/editor/ai/AgentSharingSection.js.map +1 -1
  240. package/dist/editor/ai/AgentStatusBadge.js +13 -21
  241. package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
  242. package/dist/editor/ai/AgentTerminal.d.ts +2 -38
  243. package/dist/editor/ai/AgentTerminal.js +6 -6503
  244. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  245. package/dist/editor/ai/Agents.js +278 -397
  246. package/dist/editor/ai/Agents.js.map +1 -1
  247. package/dist/editor/ai/ContentInspectorPopover.js +24 -19
  248. package/dist/editor/ai/ContentInspectorPopover.js.map +1 -1
  249. package/dist/editor/ai/GuidanceOverlay.js +12 -19
  250. package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
  251. package/dist/editor/ai/HeartbeatDiagnosticsPanel.d.ts +2 -2
  252. package/dist/editor/ai/HeartbeatDiagnosticsPanel.js +55 -31
  253. package/dist/editor/ai/HeartbeatDiagnosticsPanel.js.map +1 -1
  254. package/dist/editor/ai/InlineAiDialog.d.ts +6 -0
  255. package/dist/editor/ai/InlineAiDialog.js +411 -277
  256. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  257. package/dist/editor/ai/InlineAiTextEditTooltip.d.ts +8 -0
  258. package/dist/editor/ai/InlineAiTextEditTooltip.js +10 -0
  259. package/dist/editor/ai/InlineAiTextEditTooltip.js.map +1 -0
  260. package/dist/editor/ai/InlineAiTrigger.js +236 -37
  261. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  262. package/dist/editor/ai/MediaImage.js +5 -5
  263. package/dist/editor/ai/MediaImage.js.map +1 -1
  264. package/dist/editor/ai/TimeWithTooltip.js +2 -4
  265. package/dist/editor/ai/TimeWithTooltip.js.map +1 -1
  266. package/dist/editor/ai/agentActivitySummary.d.ts +108 -0
  267. package/dist/editor/ai/agentActivitySummary.js +390 -0
  268. package/dist/editor/ai/agentActivitySummary.js.map +1 -0
  269. package/dist/editor/ai/agentDiagnostics.d.ts +26 -0
  270. package/dist/editor/ai/agentDiagnostics.js +41 -1
  271. package/dist/editor/ai/agentDiagnostics.js.map +1 -1
  272. package/dist/editor/ai/agentDialogRegistry.js.map +1 -1
  273. package/dist/editor/ai/agentMessageHelpers.js.map +1 -1
  274. package/dist/editor/ai/agentMessageMarkdown.js +10 -10
  275. package/dist/editor/ai/agentMessageMarkdown.js.map +1 -1
  276. package/dist/editor/ai/agentTodoExtraction.d.ts +7 -1
  277. package/dist/editor/ai/agentTodoExtraction.js +33 -0
  278. package/dist/editor/ai/agentTodoExtraction.js.map +1 -1
  279. package/dist/editor/ai/agentWatchdogStatusRegistry.d.ts +1 -0
  280. package/dist/editor/ai/agentWatchdogStatusRegistry.js.map +1 -1
  281. package/dist/editor/ai/dialogs/AgentDialogHandler.js +99 -13
  282. package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
  283. package/dist/editor/ai/dialogs/ComponentTypeSelectorInline.js +13 -12
  284. package/dist/editor/ai/dialogs/ComponentTypeSelectorInline.js.map +1 -1
  285. package/dist/editor/ai/dialogs/QuestionnaireInline.js +58 -84
  286. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  287. package/dist/editor/ai/dialogs/agentDialogTypes.d.ts +18 -0
  288. package/dist/editor/ai/dialogs/agentDialogTypes.js +5 -0
  289. package/dist/editor/ai/dialogs/agentDialogTypes.js.map +1 -1
  290. package/dist/editor/ai/dialogs/browserBoundCapture.d.ts +6 -9
  291. package/dist/editor/ai/dialogs/browserBoundCapture.js +18 -27
  292. package/dist/editor/ai/dialogs/browserBoundCapture.js.map +1 -1
  293. package/dist/editor/ai/dialogs/capturePageDom.js +50 -35
  294. package/dist/editor/ai/dialogs/capturePageDom.js.map +1 -1
  295. package/dist/editor/ai/dialogs/capturePageScreenshot.d.ts +27 -1
  296. package/dist/editor/ai/dialogs/capturePageScreenshot.js +270 -159
  297. package/dist/editor/ai/dialogs/capturePageScreenshot.js.map +1 -1
  298. package/dist/editor/ai/dialogs/captureShared.d.ts +10 -0
  299. package/dist/editor/ai/dialogs/captureShared.js +39 -0
  300. package/dist/editor/ai/dialogs/captureShared.js.map +1 -0
  301. package/dist/editor/ai/dialogs/offscreenPageCapture.d.ts +44 -0
  302. package/dist/editor/ai/dialogs/offscreenPageCapture.js +300 -0
  303. package/dist/editor/ai/dialogs/offscreenPageCapture.js.map +1 -0
  304. package/dist/editor/ai/inlineAiTextEditLabels.d.ts +2 -0
  305. package/dist/editor/ai/inlineAiTextEditLabels.js +8 -0
  306. package/dist/editor/ai/inlineAiTextEditLabels.js.map +1 -0
  307. package/dist/editor/ai/prepareInlineAiTextSelection.d.ts +5 -0
  308. package/dist/editor/ai/prepareInlineAiTextSelection.js +86 -0
  309. package/dist/editor/ai/prepareInlineAiTextSelection.js.map +1 -0
  310. package/dist/editor/ai/terminal/agentContextMerge.d.ts +14 -0
  311. package/dist/editor/ai/terminal/agentContextMerge.js +111 -0
  312. package/dist/editor/ai/terminal/agentContextMerge.js.map +1 -0
  313. package/dist/editor/ai/terminal/agentOptimisticMessage.d.ts +1 -0
  314. package/dist/editor/ai/terminal/agentOptimisticMessage.js +4 -0
  315. package/dist/editor/ai/terminal/agentOptimisticMessage.js.map +1 -0
  316. package/dist/editor/ai/terminal/agentPromptPlaceholders.d.ts +5 -0
  317. package/dist/editor/ai/terminal/agentPromptPlaceholders.js +8 -0
  318. package/dist/editor/ai/terminal/agentPromptPlaceholders.js.map +1 -0
  319. package/dist/editor/ai/terminal/agentQuestionnaireRecap.d.ts +82 -0
  320. package/dist/editor/ai/terminal/agentQuestionnaireRecap.js +277 -0
  321. package/dist/editor/ai/terminal/agentQuestionnaireRecap.js.map +1 -0
  322. package/dist/editor/ai/terminal/agentQuestionnaireTranscriptRecovery.d.ts +13 -0
  323. package/dist/editor/ai/terminal/agentQuestionnaireTranscriptRecovery.js +87 -0
  324. package/dist/editor/ai/terminal/agentQuestionnaireTranscriptRecovery.js.map +1 -0
  325. package/dist/editor/ai/terminal/agentSessionCostLimit.d.ts +7 -0
  326. package/dist/editor/ai/terminal/agentSessionCostLimit.js +27 -0
  327. package/dist/editor/ai/terminal/agentSessionCostLimit.js.map +1 -0
  328. package/dist/editor/ai/terminal/agentSessionLiveTotals.d.ts +11 -0
  329. package/dist/editor/ai/terminal/agentSessionLiveTotals.js +127 -0
  330. package/dist/editor/ai/terminal/agentSessionLiveTotals.js.map +1 -0
  331. package/dist/editor/ai/terminal/agentSessionMetadata.d.ts +2 -0
  332. package/dist/editor/ai/terminal/agentSessionMetadata.js +24 -0
  333. package/dist/editor/ai/terminal/agentSessionMetadata.js.map +1 -0
  334. package/dist/editor/ai/terminal/agentSessionSelectors.d.ts +65 -0
  335. package/dist/editor/ai/terminal/agentSessionSelectors.js +232 -0
  336. package/dist/editor/ai/terminal/agentSessionSelectors.js.map +1 -0
  337. package/dist/editor/ai/terminal/agentSessionSnapshot.d.ts +16 -0
  338. package/dist/editor/ai/terminal/agentSessionSnapshot.js +77 -0
  339. package/dist/editor/ai/terminal/agentSessionSnapshot.js.map +1 -0
  340. package/dist/editor/ai/terminal/agentSessionState.d.ts +162 -0
  341. package/dist/editor/ai/terminal/agentSessionState.js +830 -0
  342. package/dist/editor/ai/terminal/agentSessionState.js.map +1 -0
  343. package/dist/editor/ai/terminal/agentStartRequest.d.ts +15 -0
  344. package/dist/editor/ai/terminal/agentStartRequest.js +25 -0
  345. package/dist/editor/ai/terminal/agentStartRequest.js.map +1 -0
  346. package/dist/editor/ai/terminal/agentSubmitErrors.d.ts +1 -0
  347. package/dist/editor/ai/terminal/agentSubmitErrors.js +9 -0
  348. package/dist/editor/ai/terminal/agentSubmitErrors.js.map +1 -0
  349. package/dist/editor/ai/terminal/components/ActivitySummaryCell.d.ts +21 -0
  350. package/dist/editor/ai/terminal/components/ActivitySummaryCell.js +133 -0
  351. package/dist/editor/ai/terminal/components/ActivitySummaryCell.js.map +1 -0
  352. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.d.ts +7 -0
  353. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +145 -0
  354. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -0
  355. package/dist/editor/ai/terminal/components/AgentBanners.js +16 -0
  356. package/dist/editor/ai/terminal/components/AgentBanners.js.map +1 -0
  357. package/dist/editor/ai/terminal/components/AgentContextItemPicker.d.ts +11 -0
  358. package/dist/editor/ai/terminal/components/AgentContextItemPicker.js +81 -0
  359. package/dist/editor/ai/terminal/components/AgentContextItemPicker.js.map +1 -0
  360. package/dist/editor/ai/terminal/components/AgentCostDisplay.js +116 -0
  361. package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -0
  362. package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +32 -0
  363. package/dist/editor/ai/terminal/components/AgentDocumentList.js +404 -0
  364. package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -0
  365. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +5 -0
  366. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +12 -0
  367. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +1 -0
  368. package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +39 -0
  369. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +42 -0
  370. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -0
  371. package/dist/editor/ai/terminal/components/AgentGreeting.d.ts +8 -0
  372. package/dist/editor/ai/terminal/components/AgentGreeting.js +14 -0
  373. package/dist/editor/ai/terminal/components/AgentGreeting.js.map +1 -0
  374. package/dist/editor/ai/terminal/components/AgentLoadingContent.d.ts +1 -0
  375. package/dist/editor/ai/terminal/components/AgentLoadingContent.js +6 -0
  376. package/dist/editor/ai/terminal/components/AgentLoadingContent.js.map +1 -0
  377. package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.d.ts +7 -0
  378. package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js +8 -0
  379. package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js.map +1 -0
  380. package/dist/editor/ai/terminal/components/AgentModeSelector.d.ts +8 -0
  381. package/dist/editor/ai/terminal/components/AgentModeSelector.js +90 -0
  382. package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -0
  383. package/dist/editor/ai/terminal/components/AgentParentLink.d.ts +6 -0
  384. package/dist/editor/ai/terminal/components/AgentParentLink.js +9 -0
  385. package/dist/editor/ai/terminal/components/AgentParentLink.js.map +1 -0
  386. package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.d.ts +8 -0
  387. package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js +10 -0
  388. package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js.map +1 -0
  389. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.d.ts +16 -0
  390. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.js +15 -0
  391. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.js.map +1 -0
  392. package/dist/editor/ai/terminal/components/AgentProjectProgress.d.ts +12 -0
  393. package/dist/editor/ai/terminal/components/AgentProjectProgress.js +207 -0
  394. package/dist/editor/ai/terminal/components/AgentProjectProgress.js.map +1 -0
  395. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.d.ts +14 -0
  396. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +17 -0
  397. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -0
  398. package/dist/editor/ai/terminal/components/AgentPromptComposer.d.ts +8 -0
  399. package/dist/editor/ai/terminal/components/AgentPromptComposer.js +10 -0
  400. package/dist/editor/ai/terminal/components/AgentPromptComposer.js.map +1 -0
  401. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +39 -0
  402. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +27 -0
  403. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -0
  404. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +18 -0
  405. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +106 -0
  406. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -0
  407. package/dist/editor/ai/terminal/components/AgentReadOnlyNotice.d.ts +5 -0
  408. package/dist/editor/ai/terminal/components/AgentReadOnlyNotice.js +7 -0
  409. package/dist/editor/ai/terminal/components/AgentReadOnlyNotice.js.map +1 -0
  410. package/dist/editor/ai/terminal/components/AgentRunStatusBanners.d.ts +8 -0
  411. package/dist/editor/ai/terminal/components/AgentRunStatusBanners.js +32 -0
  412. package/dist/editor/ai/terminal/components/AgentRunStatusBanners.js.map +1 -0
  413. package/dist/editor/ai/terminal/components/AgentSettingsContent.d.ts +53 -0
  414. package/dist/editor/ai/terminal/components/AgentSettingsContent.js +9 -0
  415. package/dist/editor/ai/terminal/components/AgentSettingsContent.js.map +1 -0
  416. package/dist/editor/ai/terminal/components/AgentSettingsPopover.d.ts +7 -0
  417. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +14 -0
  418. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -0
  419. package/dist/editor/ai/terminal/components/AgentSettingsSections.d.ts +43 -0
  420. package/dist/editor/ai/terminal/components/AgentSettingsSections.js +33 -0
  421. package/dist/editor/ai/terminal/components/AgentSettingsSections.js.map +1 -0
  422. package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.d.ts +21 -0
  423. package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.js +48 -0
  424. package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.js.map +1 -0
  425. package/dist/editor/ai/terminal/components/AgentSuggestionBanner.d.ts +16 -0
  426. package/dist/editor/ai/terminal/components/AgentSuggestionBanner.js +41 -0
  427. package/dist/editor/ai/terminal/components/AgentSuggestionBanner.js.map +1 -0
  428. package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.d.ts +26 -0
  429. package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.js +10 -0
  430. package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.js.map +1 -0
  431. package/dist/editor/ai/terminal/components/AgentSummaryErrorNotice.d.ts +6 -0
  432. package/dist/editor/ai/terminal/components/AgentSummaryErrorNotice.js +10 -0
  433. package/dist/editor/ai/terminal/components/AgentSummaryErrorNotice.js.map +1 -0
  434. package/dist/editor/ai/terminal/components/AgentSummaryPlaceholder.d.ts +10 -0
  435. package/dist/editor/ai/terminal/components/AgentSummaryPlaceholder.js +13 -0
  436. package/dist/editor/ai/terminal/components/AgentSummaryPlaceholder.js.map +1 -0
  437. package/dist/editor/ai/terminal/components/AgentSummaryPromptActions.d.ts +12 -0
  438. package/dist/editor/ai/terminal/components/AgentSummaryPromptActions.js +21 -0
  439. package/dist/editor/ai/terminal/components/AgentSummaryPromptActions.js.map +1 -0
  440. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.d.ts +24 -0
  441. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js +13 -0
  442. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js.map +1 -0
  443. package/dist/editor/ai/terminal/components/AgentTerminalContextPanels.d.ts +23 -0
  444. package/dist/editor/ai/terminal/components/AgentTerminalContextPanels.js +66 -0
  445. package/dist/editor/ai/terminal/components/AgentTerminalContextPanels.js.map +1 -0
  446. package/dist/editor/ai/terminal/components/AgentTerminalDialogHost.d.ts +13 -0
  447. package/dist/editor/ai/terminal/components/AgentTerminalDialogHost.js +10 -0
  448. package/dist/editor/ai/terminal/components/AgentTerminalDialogHost.js.map +1 -0
  449. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +24 -0
  450. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +24 -0
  451. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -0
  452. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.d.ts +5 -0
  453. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.js +7 -0
  454. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.js.map +1 -0
  455. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.d.ts +62 -0
  456. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js +98 -0
  457. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js.map +1 -0
  458. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.d.ts +18 -0
  459. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js +44 -0
  460. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js.map +1 -0
  461. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.d.ts +81 -0
  462. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +910 -0
  463. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -0
  464. package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.d.ts +42 -0
  465. package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.js +18 -0
  466. package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.js.map +1 -0
  467. package/dist/editor/ai/terminal/components/AgentTerminalView.d.ts +18 -0
  468. package/dist/editor/ai/terminal/components/AgentTerminalView.js +42 -0
  469. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -0
  470. package/dist/editor/ai/terminal/components/AgentThinkingDots.d.ts +5 -0
  471. package/dist/editor/ai/terminal/components/AgentThinkingDots.js +9 -0
  472. package/dist/editor/ai/terminal/components/AgentThinkingDots.js.map +1 -0
  473. package/dist/editor/ai/terminal/components/AiResponseMessage.d.ts +25 -0
  474. package/dist/editor/ai/terminal/components/AiResponseMessage.js +1557 -0
  475. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -0
  476. package/dist/editor/ai/terminal/components/ContextInfoBar.d.ts +17 -0
  477. package/dist/editor/ai/terminal/components/ContextInfoBar.js +588 -0
  478. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -0
  479. package/dist/editor/ai/terminal/components/EditOperationsPanel.d.ts +9 -0
  480. package/dist/editor/ai/terminal/components/EditOperationsPanel.js +102 -0
  481. package/dist/editor/ai/terminal/components/EditOperationsPanel.js.map +1 -0
  482. package/dist/editor/ai/terminal/components/HeartbeatMessage.d.ts +4 -0
  483. package/dist/editor/ai/terminal/components/HeartbeatMessage.js +7 -0
  484. package/dist/editor/ai/terminal/components/HeartbeatMessage.js.map +1 -0
  485. package/dist/editor/ai/terminal/components/InitialThinkingSplash.d.ts +1 -0
  486. package/dist/editor/ai/terminal/components/InitialThinkingSplash.js +5 -0
  487. package/dist/editor/ai/terminal/components/InitialThinkingSplash.js.map +1 -0
  488. package/dist/editor/ai/terminal/components/QuestionnaireRecap.d.ts +9 -0
  489. package/dist/editor/ai/terminal/components/QuestionnaireRecap.js +56 -0
  490. package/dist/editor/ai/terminal/components/QuestionnaireRecap.js.map +1 -0
  491. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.d.ts +8 -0
  492. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +49 -0
  493. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -0
  494. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.d.ts +7 -0
  495. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.js +105 -0
  496. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.js.map +1 -0
  497. package/dist/editor/ai/terminal/components/TodoListPanel.d.ts +6 -0
  498. package/dist/editor/ai/terminal/components/TodoListPanel.js +117 -0
  499. package/dist/editor/ai/terminal/components/TodoListPanel.js.map +1 -0
  500. package/dist/editor/ai/terminal/components/ToolCallDisplay.d.ts +83 -0
  501. package/dist/editor/ai/terminal/components/ToolCallDisplay.js +784 -0
  502. package/dist/editor/ai/terminal/components/ToolCallDisplay.js.map +1 -0
  503. package/dist/editor/ai/terminal/components/UserMessage.d.ts +6 -0
  504. package/dist/editor/ai/terminal/components/UserMessage.js +243 -0
  505. package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -0
  506. package/dist/editor/ai/terminal/components/toolCallApprovalGate.d.ts +21 -0
  507. package/dist/editor/ai/terminal/components/toolCallApprovalGate.js +32 -0
  508. package/dist/editor/ai/terminal/components/toolCallApprovalGate.js.map +1 -0
  509. package/dist/editor/ai/terminal/contextBreakdown.d.ts +17 -0
  510. package/dist/editor/ai/terminal/contextBreakdown.js +58 -0
  511. package/dist/editor/ai/terminal/contextBreakdown.js.map +1 -0
  512. package/dist/editor/ai/terminal/types.d.ts +136 -0
  513. package/dist/editor/ai/terminal/types.js +2 -0
  514. package/dist/editor/ai/terminal/types.js.map +1 -0
  515. package/dist/editor/ai/terminal/useAgentActiveStreaming.d.ts +6 -0
  516. package/dist/editor/ai/terminal/useAgentActiveStreaming.js +9 -0
  517. package/dist/editor/ai/terminal/useAgentActiveStreaming.js.map +1 -0
  518. package/dist/editor/ai/terminal/useAgentAssignedSkillsSync.d.ts +5 -0
  519. package/dist/editor/ai/terminal/useAgentAssignedSkillsSync.js +19 -0
  520. package/dist/editor/ai/terminal/useAgentAssignedSkillsSync.js.map +1 -0
  521. package/dist/editor/ai/terminal/useAgentAutoStartOnCreate.d.ts +29 -0
  522. package/dist/editor/ai/terminal/useAgentAutoStartOnCreate.js +68 -0
  523. package/dist/editor/ai/terminal/useAgentAutoStartOnCreate.js.map +1 -0
  524. package/dist/editor/ai/terminal/useAgentContentChunkHandler.d.ts +15 -0
  525. package/dist/editor/ai/terminal/useAgentContentChunkHandler.js +96 -0
  526. package/dist/editor/ai/terminal/useAgentContentChunkHandler.js.map +1 -0
  527. package/dist/editor/ai/terminal/useAgentContextDisplayNames.d.ts +9 -0
  528. package/dist/editor/ai/terminal/useAgentContextDisplayNames.js +98 -0
  529. package/dist/editor/ai/terminal/useAgentContextDisplayNames.js.map +1 -0
  530. package/dist/editor/ai/terminal/useAgentContextUpdateHandler.d.ts +7 -0
  531. package/dist/editor/ai/terminal/useAgentContextUpdateHandler.js +29 -0
  532. package/dist/editor/ai/terminal/useAgentContextUpdateHandler.js.map +1 -0
  533. package/dist/editor/ai/terminal/useAgentCostLimitActions.d.ts +15 -0
  534. package/dist/editor/ai/terminal/useAgentCostLimitActions.js +41 -0
  535. package/dist/editor/ai/terminal/useAgentCostLimitActions.js.map +1 -0
  536. package/dist/editor/ai/terminal/useAgentCostLimitWatcher.d.ts +11 -0
  537. package/dist/editor/ai/terminal/useAgentCostLimitWatcher.js +58 -0
  538. package/dist/editor/ai/terminal/useAgentCostLimitWatcher.js.map +1 -0
  539. package/dist/editor/ai/terminal/useAgentDraftInitializer.d.ts +25 -0
  540. package/dist/editor/ai/terminal/useAgentDraftInitializer.js +121 -0
  541. package/dist/editor/ai/terminal/useAgentDraftInitializer.js.map +1 -0
  542. package/dist/editor/ai/terminal/useAgentEditorContext.d.ts +12 -0
  543. package/dist/editor/ai/terminal/useAgentEditorContext.js +166 -0
  544. package/dist/editor/ai/terminal/useAgentEditorContext.js.map +1 -0
  545. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.d.ts +19 -0
  546. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js +16 -0
  547. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js.map +1 -0
  548. package/dist/editor/ai/terminal/useAgentEffectiveModelName.d.ts +7 -0
  549. package/dist/editor/ai/terminal/useAgentEffectiveModelName.js +10 -0
  550. package/dist/editor/ai/terminal/useAgentEffectiveModelName.js.map +1 -0
  551. package/dist/editor/ai/terminal/useAgentHeartbeatMessages.d.ts +16 -0
  552. package/dist/editor/ai/terminal/useAgentHeartbeatMessages.js +55 -0
  553. package/dist/editor/ai/terminal/useAgentHeartbeatMessages.js.map +1 -0
  554. package/dist/editor/ai/terminal/useAgentInfoSocketHandler.d.ts +12 -0
  555. package/dist/editor/ai/terminal/useAgentInfoSocketHandler.js +55 -0
  556. package/dist/editor/ai/terminal/useAgentInfoSocketHandler.js.map +1 -0
  557. package/dist/editor/ai/terminal/useAgentInitialMetadataMerge.d.ts +6 -0
  558. package/dist/editor/ai/terminal/useAgentInitialMetadataMerge.js +18 -0
  559. package/dist/editor/ai/terminal/useAgentInitialMetadataMerge.js.map +1 -0
  560. package/dist/editor/ai/terminal/useAgentInitialPrompt.d.ts +16 -0
  561. package/dist/editor/ai/terminal/useAgentInitialPrompt.js +51 -0
  562. package/dist/editor/ai/terminal/useAgentInitialPrompt.js.map +1 -0
  563. package/dist/editor/ai/terminal/useAgentInlineDialogEvents.d.ts +23 -0
  564. package/dist/editor/ai/terminal/useAgentInlineDialogEvents.js +196 -0
  565. package/dist/editor/ai/terminal/useAgentInlineDialogEvents.js.map +1 -0
  566. package/dist/editor/ai/terminal/useAgentInlineDialogPipeline.d.ts +23 -0
  567. package/dist/editor/ai/terminal/useAgentInlineDialogPipeline.js +28 -0
  568. package/dist/editor/ai/terminal/useAgentInlineDialogPipeline.js.map +1 -0
  569. package/dist/editor/ai/terminal/useAgentInlineDialogState.d.ts +22 -0
  570. package/dist/editor/ai/terminal/useAgentInlineDialogState.js +78 -0
  571. package/dist/editor/ai/terminal/useAgentInlineDialogState.js.map +1 -0
  572. package/dist/editor/ai/terminal/useAgentLoadErrorHandler.d.ts +14 -0
  573. package/dist/editor/ai/terminal/useAgentLoadErrorHandler.js +26 -0
  574. package/dist/editor/ai/terminal/useAgentLoadErrorHandler.js.map +1 -0
  575. package/dist/editor/ai/terminal/useAgentLoadLifecycle.d.ts +7 -0
  576. package/dist/editor/ai/terminal/useAgentLoadLifecycle.js +21 -0
  577. package/dist/editor/ai/terminal/useAgentLoadLifecycle.js.map +1 -0
  578. package/dist/editor/ai/terminal/useAgentLoadPipeline.d.ts +40 -0
  579. package/dist/editor/ai/terminal/useAgentLoadPipeline.js +75 -0
  580. package/dist/editor/ai/terminal/useAgentLoadPipeline.js.map +1 -0
  581. package/dist/editor/ai/terminal/useAgentLoadedRunStateSync.d.ts +13 -0
  582. package/dist/editor/ai/terminal/useAgentLoadedRunStateSync.js +31 -0
  583. package/dist/editor/ai/terminal/useAgentLoadedRunStateSync.js.map +1 -0
  584. package/dist/editor/ai/terminal/useAgentLoader.d.ts +27 -0
  585. package/dist/editor/ai/terminal/useAgentLoader.js +80 -0
  586. package/dist/editor/ai/terminal/useAgentLoader.js.map +1 -0
  587. package/dist/editor/ai/terminal/useAgentMessageCompletionNotifier.d.ts +6 -0
  588. package/dist/editor/ai/terminal/useAgentMessageCompletionNotifier.js +23 -0
  589. package/dist/editor/ai/terminal/useAgentMessageCompletionNotifier.js.map +1 -0
  590. package/dist/editor/ai/terminal/useAgentModeState.d.ts +13 -0
  591. package/dist/editor/ai/terminal/useAgentModeState.js +52 -0
  592. package/dist/editor/ai/terminal/useAgentModeState.js.map +1 -0
  593. package/dist/editor/ai/terminal/useAgentOperationHistoryLoader.d.ts +8 -0
  594. package/dist/editor/ai/terminal/useAgentOperationHistoryLoader.js +26 -0
  595. package/dist/editor/ai/terminal/useAgentOperationHistoryLoader.js.map +1 -0
  596. package/dist/editor/ai/terminal/useAgentOperationSocketHandler.d.ts +6 -0
  597. package/dist/editor/ai/terminal/useAgentOperationSocketHandler.js +19 -0
  598. package/dist/editor/ai/terminal/useAgentOperationSocketHandler.js.map +1 -0
  599. package/dist/editor/ai/terminal/useAgentPendingApprovals.d.ts +6 -0
  600. package/dist/editor/ai/terminal/useAgentPendingApprovals.js +35 -0
  601. package/dist/editor/ai/terminal/useAgentPendingApprovals.js.map +1 -0
  602. package/dist/editor/ai/terminal/useAgentPendingDialogRecovery.d.ts +18 -0
  603. package/dist/editor/ai/terminal/useAgentPendingDialogRecovery.js +140 -0
  604. package/dist/editor/ai/terminal/useAgentPendingDialogRecovery.js.map +1 -0
  605. package/dist/editor/ai/terminal/useAgentPendingInitialPrompt.d.ts +19 -0
  606. package/dist/editor/ai/terminal/useAgentPendingInitialPrompt.js +60 -0
  607. package/dist/editor/ai/terminal/useAgentPendingInitialPrompt.js.map +1 -0
  608. package/dist/editor/ai/terminal/useAgentProfileSelection.d.ts +17 -0
  609. package/dist/editor/ai/terminal/useAgentProfileSelection.js +61 -0
  610. package/dist/editor/ai/terminal/useAgentProfileSelection.js.map +1 -0
  611. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.d.ts +37 -0
  612. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js +206 -0
  613. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js.map +1 -0
  614. package/dist/editor/ai/terminal/useAgentPromptComposerProps.d.ts +26 -0
  615. package/dist/editor/ai/terminal/useAgentPromptComposerProps.js +51 -0
  616. package/dist/editor/ai/terminal/useAgentPromptComposerProps.js.map +1 -0
  617. package/dist/editor/ai/terminal/useAgentPromptComposerSurface.d.ts +27 -0
  618. package/dist/editor/ai/terminal/useAgentPromptComposerSurface.js +29 -0
  619. package/dist/editor/ai/terminal/useAgentPromptComposerSurface.js.map +1 -0
  620. package/dist/editor/ai/terminal/useAgentPromptDraft.d.ts +11 -0
  621. package/dist/editor/ai/terminal/useAgentPromptDraft.js +39 -0
  622. package/dist/editor/ai/terminal/useAgentPromptDraft.js.map +1 -0
  623. package/dist/editor/ai/terminal/useAgentPromptQueueSocketHandler.d.ts +6 -0
  624. package/dist/editor/ai/terminal/useAgentPromptQueueSocketHandler.js +22 -0
  625. package/dist/editor/ai/terminal/useAgentPromptQueueSocketHandler.js.map +1 -0
  626. package/dist/editor/ai/terminal/useAgentQuestionnaireDialogRecovery.d.ts +12 -0
  627. package/dist/editor/ai/terminal/useAgentQuestionnaireDialogRecovery.js +61 -0
  628. package/dist/editor/ai/terminal/useAgentQuestionnaireDialogRecovery.js.map +1 -0
  629. package/dist/editor/ai/terminal/useAgentQueuedPromptReset.d.ts +5 -0
  630. package/dist/editor/ai/terminal/useAgentQueuedPromptReset.js +10 -0
  631. package/dist/editor/ai/terminal/useAgentQueuedPromptReset.js.map +1 -0
  632. package/dist/editor/ai/terminal/useAgentQuickActions.d.ts +15 -0
  633. package/dist/editor/ai/terminal/useAgentQuickActions.js +109 -0
  634. package/dist/editor/ai/terminal/useAgentQuickActions.js.map +1 -0
  635. package/dist/editor/ai/terminal/useAgentRunCompletionSocketHandler.d.ts +22 -0
  636. package/dist/editor/ai/terminal/useAgentRunCompletionSocketHandler.js +67 -0
  637. package/dist/editor/ai/terminal/useAgentRunCompletionSocketHandler.js.map +1 -0
  638. package/dist/editor/ai/terminal/useAgentRunDeltaRouter.d.ts +18 -0
  639. package/dist/editor/ai/terminal/useAgentRunDeltaRouter.js +53 -0
  640. package/dist/editor/ai/terminal/useAgentRunDeltaRouter.js.map +1 -0
  641. package/dist/editor/ai/terminal/useAgentRunDeltaSocketHandler.d.ts +24 -0
  642. package/dist/editor/ai/terminal/useAgentRunDeltaSocketHandler.js +66 -0
  643. package/dist/editor/ai/terminal/useAgentRunDeltaSocketHandler.js.map +1 -0
  644. package/dist/editor/ai/terminal/useAgentRunDiagnostics.d.ts +22 -0
  645. package/dist/editor/ai/terminal/useAgentRunDiagnostics.js +70 -0
  646. package/dist/editor/ai/terminal/useAgentRunDiagnostics.js.map +1 -0
  647. package/dist/editor/ai/terminal/useAgentRunMessagePipeline.d.ts +42 -0
  648. package/dist/editor/ai/terminal/useAgentRunMessagePipeline.js +39 -0
  649. package/dist/editor/ai/terminal/useAgentRunMessagePipeline.js.map +1 -0
  650. package/dist/editor/ai/terminal/useAgentRunRefs.d.ts +17 -0
  651. package/dist/editor/ai/terminal/useAgentRunRefs.js +44 -0
  652. package/dist/editor/ai/terminal/useAgentRunRefs.js.map +1 -0
  653. package/dist/editor/ai/terminal/useAgentRunResyncSocketHandler.d.ts +15 -0
  654. package/dist/editor/ai/terminal/useAgentRunResyncSocketHandler.js +118 -0
  655. package/dist/editor/ai/terminal/useAgentRunResyncSocketHandler.js.map +1 -0
  656. package/dist/editor/ai/terminal/useAgentRunSequenceGuard.d.ts +11 -0
  657. package/dist/editor/ai/terminal/useAgentRunSequenceGuard.js +22 -0
  658. package/dist/editor/ai/terminal/useAgentRunSequenceGuard.js.map +1 -0
  659. package/dist/editor/ai/terminal/useAgentRunStartSocketHandler.d.ts +25 -0
  660. package/dist/editor/ai/terminal/useAgentRunStartSocketHandler.js +74 -0
  661. package/dist/editor/ai/terminal/useAgentRunStartSocketHandler.js.map +1 -0
  662. package/dist/editor/ai/terminal/useAgentRunStatusSocketHandler.d.ts +36 -0
  663. package/dist/editor/ai/terminal/useAgentRunStatusSocketHandler.js +360 -0
  664. package/dist/editor/ai/terminal/useAgentRunStatusSocketHandler.js.map +1 -0
  665. package/dist/editor/ai/terminal/useAgentRuntimeStatus.d.ts +11 -0
  666. package/dist/editor/ai/terminal/useAgentRuntimeStatus.js +9 -0
  667. package/dist/editor/ai/terminal/useAgentRuntimeStatus.js.map +1 -0
  668. package/dist/editor/ai/terminal/useAgentServerReconciler.d.ts +5 -0
  669. package/dist/editor/ai/terminal/useAgentServerReconciler.js +22 -0
  670. package/dist/editor/ai/terminal/useAgentServerReconciler.js.map +1 -0
  671. package/dist/editor/ai/terminal/useAgentSession.d.ts +50 -0
  672. package/dist/editor/ai/terminal/useAgentSession.js +181 -0
  673. package/dist/editor/ai/terminal/useAgentSession.js.map +1 -0
  674. package/dist/editor/ai/terminal/useAgentSessionCommandBindings.d.ts +13 -0
  675. package/dist/editor/ai/terminal/useAgentSessionCommandBindings.js +26 -0
  676. package/dist/editor/ai/terminal/useAgentSessionCommandBindings.js.map +1 -0
  677. package/dist/editor/ai/terminal/useAgentSessionErrorBridge.d.ts +10 -0
  678. package/dist/editor/ai/terminal/useAgentSessionErrorBridge.js +14 -0
  679. package/dist/editor/ai/terminal/useAgentSessionErrorBridge.js.map +1 -0
  680. package/dist/editor/ai/terminal/useAgentSessionFacade.d.ts +49 -0
  681. package/dist/editor/ai/terminal/useAgentSessionFacade.js +127 -0
  682. package/dist/editor/ai/terminal/useAgentSessionFacade.js.map +1 -0
  683. package/dist/editor/ai/terminal/useAgentSessionSocketSource.d.ts +8 -0
  684. package/dist/editor/ai/terminal/useAgentSessionSocketSource.js +17 -0
  685. package/dist/editor/ai/terminal/useAgentSessionSocketSource.js.map +1 -0
  686. package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +102 -0
  687. package/dist/editor/ai/terminal/useAgentSessionSync.js +179 -0
  688. package/dist/editor/ai/terminal/useAgentSessionSync.js.map +1 -0
  689. package/dist/editor/ai/terminal/useAgentSettingsCommands.d.ts +49 -0
  690. package/dist/editor/ai/terminal/useAgentSettingsCommands.js +210 -0
  691. package/dist/editor/ai/terminal/useAgentSettingsCommands.js.map +1 -0
  692. package/dist/editor/ai/terminal/useAgentSettingsData.d.ts +46 -0
  693. package/dist/editor/ai/terminal/useAgentSettingsData.js +380 -0
  694. package/dist/editor/ai/terminal/useAgentSettingsData.js.map +1 -0
  695. package/dist/editor/ai/terminal/useAgentSettingsNavigation.d.ts +10 -0
  696. package/dist/editor/ai/terminal/useAgentSettingsNavigation.js +33 -0
  697. package/dist/editor/ai/terminal/useAgentSettingsNavigation.js.map +1 -0
  698. package/dist/editor/ai/terminal/useAgentSettingsPanel.d.ts +87 -0
  699. package/dist/editor/ai/terminal/useAgentSettingsPanel.js +92 -0
  700. package/dist/editor/ai/terminal/useAgentSettingsPanel.js.map +1 -0
  701. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.d.ts +15 -0
  702. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +45 -0
  703. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -0
  704. package/dist/editor/ai/terminal/useAgentSettleCompletedRun.d.ts +35 -0
  705. package/dist/editor/ai/terminal/useAgentSettleCompletedRun.js +51 -0
  706. package/dist/editor/ai/terminal/useAgentSettleCompletedRun.js.map +1 -0
  707. package/dist/editor/ai/terminal/useAgentSkillActions.d.ts +33 -0
  708. package/dist/editor/ai/terminal/useAgentSkillActions.js +210 -0
  709. package/dist/editor/ai/terminal/useAgentSkillActions.js.map +1 -0
  710. package/dist/editor/ai/terminal/useAgentSocketMessageRouter.d.ts +16 -0
  711. package/dist/editor/ai/terminal/useAgentSocketMessageRouter.js +57 -0
  712. package/dist/editor/ai/terminal/useAgentSocketMessageRouter.js.map +1 -0
  713. package/dist/editor/ai/terminal/useAgentStatusBarContent.d.ts +36 -0
  714. package/dist/editor/ai/terminal/useAgentStatusBarContent.js +70 -0
  715. package/dist/editor/ai/terminal/useAgentStatusBarContent.js.map +1 -0
  716. package/dist/editor/ai/terminal/useAgentStopCommand.d.ts +28 -0
  717. package/dist/editor/ai/terminal/useAgentStopCommand.js +55 -0
  718. package/dist/editor/ai/terminal/useAgentStopCommand.js.map +1 -0
  719. package/dist/editor/ai/terminal/useAgentStopGuardState.d.ts +7 -0
  720. package/dist/editor/ai/terminal/useAgentStopGuardState.js +40 -0
  721. package/dist/editor/ai/terminal/useAgentStopGuardState.js.map +1 -0
  722. package/dist/editor/ai/terminal/useAgentStreamMessageFactory.d.ts +5 -0
  723. package/dist/editor/ai/terminal/useAgentStreamMessageFactory.js +31 -0
  724. package/dist/editor/ai/terminal/useAgentStreamMessageFactory.js.map +1 -0
  725. package/dist/editor/ai/terminal/useAgentStreamPipeline.d.ts +66 -0
  726. package/dist/editor/ai/terminal/useAgentStreamPipeline.js +169 -0
  727. package/dist/editor/ai/terminal/useAgentStreamPipeline.js.map +1 -0
  728. package/dist/editor/ai/terminal/useAgentStreamSubscription.d.ts +27 -0
  729. package/dist/editor/ai/terminal/useAgentStreamSubscription.js +70 -0
  730. package/dist/editor/ai/terminal/useAgentStreamSubscription.js.map +1 -0
  731. package/dist/editor/ai/terminal/useAgentStreamWatchdog.d.ts +38 -0
  732. package/dist/editor/ai/terminal/useAgentStreamWatchdog.js +228 -0
  733. package/dist/editor/ai/terminal/useAgentStreamWatchdog.js.map +1 -0
  734. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.d.ts +14 -0
  735. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js +85 -0
  736. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js.map +1 -0
  737. package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +57 -0
  738. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +402 -0
  739. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -0
  740. package/dist/editor/ai/terminal/useAgentSubmitLifecycle.d.ts +31 -0
  741. package/dist/editor/ai/terminal/useAgentSubmitLifecycle.js +45 -0
  742. package/dist/editor/ai/terminal/useAgentSubmitLifecycle.js.map +1 -0
  743. package/dist/editor/ai/terminal/useAgentSubmitResponseHandler.d.ts +20 -0
  744. package/dist/editor/ai/terminal/useAgentSubmitResponseHandler.js +57 -0
  745. package/dist/editor/ai/terminal/useAgentSubmitResponseHandler.js.map +1 -0
  746. package/dist/editor/ai/terminal/useAgentSuggestionSocketHandler.d.ts +25 -0
  747. package/dist/editor/ai/terminal/useAgentSuggestionSocketHandler.js +35 -0
  748. package/dist/editor/ai/terminal/useAgentSuggestionSocketHandler.js.map +1 -0
  749. package/dist/editor/ai/terminal/useAgentSummaryQuestionnaireScroll.d.ts +5 -0
  750. package/dist/editor/ai/terminal/useAgentSummaryQuestionnaireScroll.js +32 -0
  751. package/dist/editor/ai/terminal/useAgentSummaryQuestionnaireScroll.js.map +1 -0
  752. package/dist/editor/ai/terminal/useAgentTerminalActions.d.ts +23 -0
  753. package/dist/editor/ai/terminal/useAgentTerminalActions.js +54 -0
  754. package/dist/editor/ai/terminal/useAgentTerminalActions.js.map +1 -0
  755. package/dist/editor/ai/terminal/useAgentTerminalBackgroundEvents.d.ts +15 -0
  756. package/dist/editor/ai/terminal/useAgentTerminalBackgroundEvents.js +16 -0
  757. package/dist/editor/ai/terminal/useAgentTerminalBackgroundEvents.js.map +1 -0
  758. package/dist/editor/ai/terminal/useAgentTerminalChrome.d.ts +30 -0
  759. package/dist/editor/ai/terminal/useAgentTerminalChrome.js +12 -0
  760. package/dist/editor/ai/terminal/useAgentTerminalChrome.js.map +1 -0
  761. package/dist/editor/ai/terminal/useAgentTerminalController.d.ts +2 -0
  762. package/dist/editor/ai/terminal/useAgentTerminalController.js +900 -0
  763. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -0
  764. package/dist/editor/ai/terminal/useAgentTerminalControls.d.ts +19 -0
  765. package/dist/editor/ai/terminal/useAgentTerminalControls.js +21 -0
  766. package/dist/editor/ai/terminal/useAgentTerminalControls.js.map +1 -0
  767. package/dist/editor/ai/terminal/useAgentTerminalElementRefs.d.ts +14 -0
  768. package/dist/editor/ai/terminal/useAgentTerminalElementRefs.js +17 -0
  769. package/dist/editor/ai/terminal/useAgentTerminalElementRefs.js.map +1 -0
  770. package/dist/editor/ai/terminal/useAgentTerminalNotices.d.ts +10 -0
  771. package/dist/editor/ai/terminal/useAgentTerminalNotices.js +11 -0
  772. package/dist/editor/ai/terminal/useAgentTerminalNotices.js.map +1 -0
  773. package/dist/editor/ai/terminal/useAgentTerminalReadyEvents.d.ts +7 -0
  774. package/dist/editor/ai/terminal/useAgentTerminalReadyEvents.js +29 -0
  775. package/dist/editor/ai/terminal/useAgentTerminalReadyEvents.js.map +1 -0
  776. package/dist/editor/ai/terminal/useAgentTerminalScroll.d.ts +15 -0
  777. package/dist/editor/ai/terminal/useAgentTerminalScroll.js +63 -0
  778. package/dist/editor/ai/terminal/useAgentTerminalScroll.js.map +1 -0
  779. package/dist/editor/ai/terminal/useAgentTerminalUiState.d.ts +27 -0
  780. package/dist/editor/ai/terminal/useAgentTerminalUiState.js +43 -0
  781. package/dist/editor/ai/terminal/useAgentTerminalUiState.js.map +1 -0
  782. package/dist/editor/ai/terminal/useAgentTerminalViewProps.d.ts +19 -0
  783. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js +22 -0
  784. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js.map +1 -0
  785. package/dist/editor/ai/terminal/useAgentTerminalViewState.d.ts +32 -0
  786. package/dist/editor/ai/terminal/useAgentTerminalViewState.js +44 -0
  787. package/dist/editor/ai/terminal/useAgentTerminalViewState.js.map +1 -0
  788. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.d.ts +25 -0
  789. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.js +187 -0
  790. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.js.map +1 -0
  791. package/dist/editor/ai/terminal/useAgentToolApprovalResolvedEvents.d.ts +14 -0
  792. package/dist/editor/ai/terminal/useAgentToolApprovalResolvedEvents.js +65 -0
  793. package/dist/editor/ai/terminal/useAgentToolApprovalResolvedEvents.js.map +1 -0
  794. package/dist/editor/ai/terminal/useAgentToolApprovalSupersede.d.ts +8 -0
  795. package/dist/editor/ai/terminal/useAgentToolApprovalSupersede.js +53 -0
  796. package/dist/editor/ai/terminal/useAgentToolApprovalSupersede.js.map +1 -0
  797. package/dist/editor/ai/terminal/useAgentToolCallHandler.d.ts +12 -0
  798. package/dist/editor/ai/terminal/useAgentToolCallHandler.js +84 -0
  799. package/dist/editor/ai/terminal/useAgentToolCallHandler.js.map +1 -0
  800. package/dist/editor/ai/terminal/useAgentToolResultHandler.d.ts +18 -0
  801. package/dist/editor/ai/terminal/useAgentToolResultHandler.js +127 -0
  802. package/dist/editor/ai/terminal/useAgentToolResultHandler.js.map +1 -0
  803. package/dist/editor/ai/terminal/useAgentToolUiEvents.d.ts +5 -0
  804. package/dist/editor/ai/terminal/useAgentToolUiEvents.js +24 -0
  805. package/dist/editor/ai/terminal/useAgentToolUiEvents.js.map +1 -0
  806. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.d.ts +9 -0
  807. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js +44 -0
  808. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js.map +1 -0
  809. package/dist/editor/ai/terminal/useAgentVoiceInput.d.ts +16 -0
  810. package/dist/editor/ai/terminal/useAgentVoiceInput.js +231 -0
  811. package/dist/editor/ai/terminal/useAgentVoiceInput.js.map +1 -0
  812. package/dist/editor/ai/terminal/useSuppressedQueuedPrompts.d.ts +6 -0
  813. package/dist/editor/ai/terminal/useSuppressedQueuedPrompts.js +57 -0
  814. package/dist/editor/ai/terminal/useSuppressedQueuedPrompts.js.map +1 -0
  815. package/dist/editor/ai/types.d.ts +1 -1
  816. package/dist/editor/ai/useActiveAgentConversation.d.ts +5 -0
  817. package/dist/editor/ai/useActiveAgentConversation.js +52 -0
  818. package/dist/editor/ai/useActiveAgentConversation.js.map +1 -0
  819. package/dist/editor/ai/useAgentPanes.d.ts +1 -1
  820. package/dist/editor/ai/useAgentPanes.js +33 -5
  821. package/dist/editor/ai/useAgentPanes.js.map +1 -1
  822. package/dist/editor/ai/useAgentStatus.js +3 -1
  823. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  824. package/dist/editor/ai/useInlineAiPosition.d.ts +10 -2
  825. package/dist/editor/ai/useInlineAiPosition.js +69 -86
  826. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  827. package/dist/editor/ai-image-editor/AiImageEditorDialog.js +137 -26
  828. package/dist/editor/ai-image-editor/AiImageEditorDialog.js.map +1 -1
  829. package/dist/editor/ai-image-editor/AiImageResultOverlay.js +32 -64
  830. package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
  831. package/dist/editor/bridge/BridgeClient.d.ts +73 -0
  832. package/dist/editor/bridge/BridgeClient.js +415 -0
  833. package/dist/editor/bridge/BridgeClient.js.map +1 -0
  834. package/dist/editor/bridge/protocol.d.ts +564 -0
  835. package/dist/editor/bridge/protocol.js +200 -0
  836. package/dist/editor/bridge/protocol.js.map +1 -0
  837. package/dist/editor/client/AboutDialog.js +18 -6
  838. package/dist/editor/client/AboutDialog.js.map +1 -1
  839. package/dist/editor/client/EditorShell.d.ts +2 -5
  840. package/dist/editor/client/EditorShell.js +736 -253
  841. package/dist/editor/client/EditorShell.js.map +1 -1
  842. package/dist/editor/client/OperationDialogContent.js +3 -3
  843. package/dist/editor/client/OperationDialogContent.js.map +1 -1
  844. package/dist/editor/client/SessionExpiredOverlay.d.ts +1 -0
  845. package/dist/editor/client/SessionExpiredOverlay.js +25 -0
  846. package/dist/editor/client/SessionExpiredOverlay.js.map +1 -0
  847. package/dist/editor/client/editContext.d.ts +127 -13
  848. package/dist/editor/client/editContext.js +3 -7
  849. package/dist/editor/client/editContext.js.map +1 -1
  850. package/dist/editor/client/fieldModificationStore.d.ts +6 -2
  851. package/dist/editor/client/fieldModificationStore.js +38 -23
  852. package/dist/editor/client/fieldModificationStore.js.map +1 -1
  853. package/dist/editor/client/helpers.js +3 -3
  854. package/dist/editor/client/helpers.js.map +1 -1
  855. package/dist/editor/client/hooks/feedbackSocketState.d.ts +6 -0
  856. package/dist/editor/client/hooks/feedbackSocketState.js +16 -0
  857. package/dist/editor/client/hooks/feedbackSocketState.js.map +1 -0
  858. package/dist/editor/client/hooks/useEditorUrlSync.js +14 -1
  859. package/dist/editor/client/hooks/useEditorUrlSync.js.map +1 -1
  860. package/dist/editor/client/hooks/useEditorWebSocket.d.ts +3 -0
  861. package/dist/editor/client/hooks/useEditorWebSocket.js +224 -18
  862. package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
  863. package/dist/editor/client/hooks/useMediaSelector.js.map +1 -1
  864. package/dist/editor/client/hooks/useReducedMotion.d.ts +8 -0
  865. package/dist/editor/client/hooks/useReducedMotion.js +12 -0
  866. package/dist/editor/client/hooks/useReducedMotion.js.map +1 -0
  867. package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +4 -0
  868. package/dist/editor/client/hooks/useSocketMessageHandler.js +127 -86
  869. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  870. package/dist/editor/client/hooks/useWorkbox.d.ts +2 -0
  871. package/dist/editor/client/hooks/useWorkbox.js +76 -33
  872. package/dist/editor/client/hooks/useWorkbox.js.map +1 -1
  873. package/dist/editor/client/hooks/workboxDescriptors.d.ts +6 -0
  874. package/dist/editor/client/hooks/workboxDescriptors.js +49 -0
  875. package/dist/editor/client/hooks/workboxDescriptors.js.map +1 -0
  876. package/dist/editor/client/itemsRepository.d.ts +10 -5
  877. package/dist/editor/client/itemsRepository.js +48 -46
  878. package/dist/editor/client/itemsRepository.js.map +1 -1
  879. package/dist/editor/client/manualShowMeFocus.d.ts +17 -0
  880. package/dist/editor/client/manualShowMeFocus.js +32 -0
  881. package/dist/editor/client/manualShowMeFocus.js.map +1 -0
  882. package/dist/editor/client/operationToasts.d.ts +2 -0
  883. package/dist/editor/client/operationToasts.js +35 -0
  884. package/dist/editor/client/operationToasts.js.map +1 -0
  885. package/dist/editor/client/operations.d.ts +20 -5
  886. package/dist/editor/client/operations.js +407 -136
  887. package/dist/editor/client/operations.js.map +1 -1
  888. package/dist/editor/client/pageModelBuilder.d.ts +2 -0
  889. package/dist/editor/client/pageModelBuilder.js +89 -20
  890. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  891. package/dist/editor/client/realtime/realtimeTransport.d.ts +56 -0
  892. package/dist/editor/client/realtime/realtimeTransport.js +197 -0
  893. package/dist/editor/client/realtime/realtimeTransport.js.map +1 -0
  894. package/dist/editor/client/ui/DevModeIndicator.js +1 -1
  895. package/dist/editor/client/ui/DevModeIndicator.js.map +1 -1
  896. package/dist/editor/client/ui/EditorChrome.js +11 -4
  897. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  898. package/dist/editor/client/ui/FullscreenControls.js +5 -5
  899. package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
  900. package/dist/editor/client/waitForEditOperationTerminal.d.ts +1 -0
  901. package/dist/editor/client/waitForEditOperationTerminal.js +1 -1
  902. package/dist/editor/client/waitForEditOperationTerminal.js.map +1 -1
  903. package/dist/editor/commands/agentCommands.js +1 -1
  904. package/dist/editor/commands/agentCommands.js.map +1 -1
  905. package/dist/editor/commands/commands.js.map +1 -1
  906. package/dist/editor/commands/componentCommands.d.ts +13 -3
  907. package/dist/editor/commands/componentCommands.js +77 -7
  908. package/dist/editor/commands/componentCommands.js.map +1 -1
  909. package/dist/editor/commands/createVersionCommand.js +6 -2
  910. package/dist/editor/commands/createVersionCommand.js.map +1 -1
  911. package/dist/editor/commands/customCommandConverter.js +10 -8
  912. package/dist/editor/commands/customCommandConverter.js.map +1 -1
  913. package/dist/editor/commands/handlers/agentHandler.js.map +1 -1
  914. package/dist/editor/commands/handlers/uiActionHandlers.d.ts +1 -0
  915. package/dist/editor/commands/handlers/uiActionHandlers.js +30 -3
  916. package/dist/editor/commands/handlers/uiActionHandlers.js.map +1 -1
  917. package/dist/editor/commands/itemCommands.js +24 -27
  918. package/dist/editor/commands/itemCommands.js.map +1 -1
  919. package/dist/editor/commands/keyboardCommands.d.ts +6 -0
  920. package/dist/editor/commands/keyboardCommands.js +78 -2
  921. package/dist/editor/commands/keyboardCommands.js.map +1 -1
  922. package/dist/editor/commands/placeholderCommands.d.ts +17 -0
  923. package/dist/editor/commands/placeholderCommands.js +37 -0
  924. package/dist/editor/commands/placeholderCommands.js.map +1 -0
  925. package/dist/editor/commands/reorderComponent.d.ts +20 -0
  926. package/dist/editor/commands/reorderComponent.js +40 -0
  927. package/dist/editor/commands/reorderComponent.js.map +1 -0
  928. package/dist/editor/commands/templateBuilderCommands.js.map +1 -1
  929. package/dist/editor/commands/undo.js +10 -6
  930. package/dist/editor/commands/undo.js.map +1 -1
  931. package/dist/editor/componentFrameColors.d.ts +11 -0
  932. package/dist/editor/componentFrameColors.js +47 -0
  933. package/dist/editor/componentFrameColors.js.map +1 -0
  934. package/dist/editor/content-tree/IndicatorSettings.js +5 -4
  935. package/dist/editor/content-tree/IndicatorSettings.js.map +1 -1
  936. package/dist/editor/content-tree/TreeOptions.js +1 -1
  937. package/dist/editor/content-tree/TreeSettingsMenu.js +7 -3
  938. package/dist/editor/content-tree/TreeSettingsMenu.js.map +1 -1
  939. package/dist/editor/context-menu/InsertMenu.js +9 -9
  940. package/dist/editor/context-menu/InsertMenu.js.map +1 -1
  941. package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js +5 -0
  942. package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js.map +1 -1
  943. package/dist/editor/editor-warnings/ItemLocked.js +6 -3
  944. package/dist/editor/editor-warnings/ItemLocked.js.map +1 -1
  945. package/dist/editor/field-types/AttachmentEditor.js +42 -4
  946. package/dist/editor/field-types/AttachmentEditor.js.map +1 -1
  947. package/dist/editor/field-types/CheckboxEditor.js +3 -1
  948. package/dist/editor/field-types/CheckboxEditor.js.map +1 -1
  949. package/dist/editor/field-types/DateFieldEditor.js +1 -1
  950. package/dist/editor/field-types/DateFieldEditor.js.map +1 -1
  951. package/dist/editor/field-types/DateTimeFieldEditor.js +1 -1
  952. package/dist/editor/field-types/DateTimeFieldEditor.js.map +1 -1
  953. package/dist/editor/field-types/DropLinkEditor.js +31 -16
  954. package/dist/editor/field-types/DropLinkEditor.js.map +1 -1
  955. package/dist/editor/field-types/DropListEditor.js +1 -1
  956. package/dist/editor/field-types/DropListEditor.js.map +1 -1
  957. package/dist/editor/field-types/ImageFieldEditor.js +1 -1
  958. package/dist/editor/field-types/ImageFieldEditor.js.map +1 -1
  959. package/dist/editor/field-types/InternalLinkFieldEditor.js +18 -9
  960. package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -1
  961. package/dist/editor/field-types/LinkFieldEditor.js +15 -3
  962. package/dist/editor/field-types/LinkFieldEditor.js.map +1 -1
  963. package/dist/editor/field-types/MultiLineText.js +35 -9
  964. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  965. package/dist/editor/field-types/NameValueListEditor.js +7 -3
  966. package/dist/editor/field-types/NameValueListEditor.js.map +1 -1
  967. package/dist/editor/field-types/PictureFieldEditor.js +19 -13
  968. package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
  969. package/dist/editor/field-types/RawEditor.js +9 -2
  970. package/dist/editor/field-types/RawEditor.js.map +1 -1
  971. package/dist/editor/field-types/RichTextEditor.js +31 -10
  972. package/dist/editor/field-types/RichTextEditor.js.map +1 -1
  973. package/dist/editor/field-types/RichTextEditorComponent.js +194 -81
  974. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  975. package/dist/editor/field-types/SingleLineText.js +31 -5
  976. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  977. package/dist/editor/field-types/TreeListEditor.js +72 -9
  978. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  979. package/dist/editor/field-types/richtext/bridgeRichTextProfile.d.ts +21 -0
  980. package/dist/editor/field-types/richtext/bridgeRichTextProfile.js +96 -0
  981. package/dist/editor/field-types/richtext/bridgeRichTextProfile.js.map +1 -0
  982. package/dist/editor/field-types/richtext/components/EditorDropdown.css +7 -6
  983. package/dist/editor/field-types/richtext/components/EditorDropdown.d.ts +5 -5
  984. package/dist/editor/field-types/richtext/components/EditorDropdown.js +21 -20
  985. package/dist/editor/field-types/richtext/components/EditorDropdown.js.map +1 -1
  986. package/dist/editor/field-types/richtext/components/ReactSlate.css +108 -31
  987. package/dist/editor/field-types/richtext/components/ReactSlate.js +240 -50
  988. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  989. package/dist/editor/field-types/richtext/components/SimpleDropdown.js +11 -6
  990. package/dist/editor/field-types/richtext/components/SimpleDropdown.js.map +1 -1
  991. package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.css +32 -16
  992. package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js +26 -2
  993. package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js.map +1 -1
  994. package/dist/editor/field-types/richtext/components/SimpleToolbar.js +5 -4
  995. package/dist/editor/field-types/richtext/components/SimpleToolbar.js.map +1 -1
  996. package/dist/editor/field-types/richtext/components/SimpleToolbarButton.js +4 -2
  997. package/dist/editor/field-types/richtext/components/SimpleToolbarButton.js.map +1 -1
  998. package/dist/editor/field-types/richtext/components/ToolbarButton.js +3 -3
  999. package/dist/editor/field-types/richtext/components/ToolbarButton.js.map +1 -1
  1000. package/dist/editor/field-types/richtext/config/pluginFactory.d.ts +1 -1
  1001. package/dist/editor/field-types/richtext/config/pluginFactory.js +1 -1
  1002. package/dist/editor/field-types/richtext/config/pluginFactory.js.map +1 -1
  1003. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -14
  1004. package/dist/editor/field-types/richtext/contextMenuFactory.js +4 -379
  1005. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  1006. package/dist/editor/field-types/richtext/hooks/useProfileCache.d.ts +1 -1
  1007. package/dist/editor/field-types/richtext/hooks/useProfileCache.js +19 -19
  1008. package/dist/editor/field-types/richtext/hooks/useProfileCache.js.map +1 -1
  1009. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.d.ts +5 -2
  1010. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js +41 -13
  1011. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js.map +1 -1
  1012. package/dist/editor/field-types/richtext/richTextToolbarIcons.d.ts +7 -0
  1013. package/dist/editor/field-types/richtext/richTextToolbarIcons.js +49 -0
  1014. package/dist/editor/field-types/richtext/richTextToolbarIcons.js.map +1 -0
  1015. package/dist/editor/field-types/richtext/types.d.ts +2 -0
  1016. package/dist/editor/field-types/richtext/types.js.map +1 -1
  1017. package/dist/editor/field-types/richtext/utils/conversion.d.ts +2 -2
  1018. package/dist/editor/field-types/richtext/utils/conversion.js +298 -214
  1019. package/dist/editor/field-types/richtext/utils/conversion.js.map +1 -1
  1020. package/dist/editor/field-types/richtext/utils/plugins.js +96 -69
  1021. package/dist/editor/field-types/richtext/utils/plugins.js.map +1 -1
  1022. package/dist/editor/field-types/richtext/utils/profileMapper.d.ts +1 -1
  1023. package/dist/editor/field-types/richtext/utils/profileMapper.js +186 -171
  1024. package/dist/editor/field-types/richtext/utils/profileMapper.js.map +1 -1
  1025. package/dist/editor/field-types/textContextMenuFactory.js +1 -1
  1026. package/dist/editor/field-types/textContextMenuFactory.js.map +1 -1
  1027. package/dist/editor/field-types/useFormFieldCaretPresence.d.ts +13 -0
  1028. package/dist/editor/field-types/useFormFieldCaretPresence.js +92 -0
  1029. package/dist/editor/field-types/useFormFieldCaretPresence.js.map +1 -0
  1030. package/dist/editor/field-types/useTextCompletion.d.ts +20 -0
  1031. package/dist/editor/field-types/useTextCompletion.js +166 -0
  1032. package/dist/editor/field-types/useTextCompletion.js.map +1 -0
  1033. package/dist/editor/fieldTypes.d.ts +2 -0
  1034. package/dist/editor/hooks/useNavigationPanelLogic.d.ts +3 -3
  1035. package/dist/editor/hooks/useNavigationPanelLogic.js +5 -5
  1036. package/dist/editor/hooks/useNavigationPanelLogic.js.map +1 -1
  1037. package/dist/editor/hooks/useParheliaSettings.js +8 -7
  1038. package/dist/editor/hooks/useParheliaSettings.js.map +1 -1
  1039. package/dist/editor/insertMenuItems.d.ts +11 -0
  1040. package/dist/editor/insertMenuItems.js +10 -1
  1041. package/dist/editor/insertMenuItems.js.map +1 -1
  1042. package/dist/editor/manualActionEvents.js +3 -1
  1043. package/dist/editor/manualActionEvents.js.map +1 -1
  1044. package/dist/editor/media-selector/AiImageSearchPrompt.js +3 -3
  1045. package/dist/editor/media-selector/MediaFolderBrowser.d.ts +2 -1
  1046. package/dist/editor/media-selector/MediaFolderBrowser.js +318 -49
  1047. package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
  1048. package/dist/editor/media-selector/MediaSelector.js +4 -2
  1049. package/dist/editor/media-selector/MediaSelector.js.map +1 -1
  1050. package/dist/editor/media-selector/Preview.d.ts +2 -1
  1051. package/dist/editor/media-selector/Preview.js +53 -6
  1052. package/dist/editor/media-selector/Preview.js.map +1 -1
  1053. package/dist/editor/media-selector/Thumbnails.d.ts +5 -1
  1054. package/dist/editor/media-selector/Thumbnails.js +72 -11
  1055. package/dist/editor/media-selector/Thumbnails.js.map +1 -1
  1056. package/dist/editor/media-selector/TreeSelector.js +155 -41
  1057. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  1058. package/dist/editor/media-selector/UploadZone.d.ts +3 -1
  1059. package/dist/editor/media-selector/UploadZone.js +27 -23
  1060. package/dist/editor/media-selector/UploadZone.js.map +1 -1
  1061. package/dist/editor/media-selector/mediaFileType.d.ts +12 -0
  1062. package/dist/editor/media-selector/mediaFileType.js +95 -0
  1063. package/dist/editor/media-selector/mediaFileType.js.map +1 -0
  1064. package/dist/editor/media-selector/mediaSelectionPath.d.ts +5 -0
  1065. package/dist/editor/media-selector/mediaSelectionPath.js +21 -0
  1066. package/dist/editor/media-selector/mediaSelectionPath.js.map +1 -0
  1067. package/dist/editor/media-selector/mediaUpload.d.ts +30 -0
  1068. package/dist/editor/media-selector/mediaUpload.js +155 -0
  1069. package/dist/editor/media-selector/mediaUpload.js.map +1 -0
  1070. package/dist/editor/menubar/ActiveUsers.js +32 -36
  1071. package/dist/editor/menubar/ActiveUsers.js.map +1 -1
  1072. package/dist/editor/menubar/FavoritesControls.js +51 -30
  1073. package/dist/editor/menubar/FavoritesControls.js.map +1 -1
  1074. package/dist/editor/menubar/GenericToolbar.js +2 -1
  1075. package/dist/editor/menubar/GenericToolbar.js.map +1 -1
  1076. package/dist/editor/menubar/ItemActionsMenu.js +1 -1
  1077. package/dist/editor/menubar/ItemActionsMenu.js.map +1 -1
  1078. package/dist/editor/menubar/ItemLanguageVersion.d.ts +4 -1
  1079. package/dist/editor/menubar/ItemLanguageVersion.js +17 -18
  1080. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  1081. package/dist/editor/menubar/OpenInNewTabButton.d.ts +15 -0
  1082. package/dist/editor/menubar/OpenInNewTabButton.js +42 -0
  1083. package/dist/editor/menubar/OpenInNewTabButton.js.map +1 -0
  1084. package/dist/editor/menubar/OperationsIndicator.d.ts +7 -0
  1085. package/dist/editor/menubar/OperationsIndicator.js +87 -0
  1086. package/dist/editor/menubar/OperationsIndicator.js.map +1 -0
  1087. package/dist/editor/menubar/PageSelector.js +11 -5
  1088. package/dist/editor/menubar/PageSelector.js.map +1 -1
  1089. package/dist/editor/menubar/PreviewDatePicker.js +40 -21
  1090. package/dist/editor/menubar/PreviewDatePicker.js.map +1 -1
  1091. package/dist/editor/menubar/Separator.d.ts +2 -1
  1092. package/dist/editor/menubar/Separator.js +2 -2
  1093. package/dist/editor/menubar/Separator.js.map +1 -1
  1094. package/dist/editor/menubar/ToolbarFactory.js +30 -19
  1095. package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
  1096. package/dist/editor/menubar/User.js +2 -7
  1097. package/dist/editor/menubar/User.js.map +1 -1
  1098. package/dist/editor/menubar/VersionPreviewCard.js +11 -231
  1099. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
  1100. package/dist/editor/menubar/VersionSelector.d.ts +4 -2
  1101. package/dist/editor/menubar/VersionSelector.js +70 -24
  1102. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  1103. package/dist/editor/menubar/WorkflowButton.js +23 -28
  1104. package/dist/editor/menubar/WorkflowButton.js.map +1 -1
  1105. package/dist/editor/menubar/toolbar-sections/CompareControls.js +3 -1
  1106. package/dist/editor/menubar/toolbar-sections/CompareControls.js.map +1 -1
  1107. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.d.ts +1 -0
  1108. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js +13 -0
  1109. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js.map +1 -0
  1110. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +1 -1
  1111. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
  1112. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.d.ts +7 -0
  1113. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +132 -0
  1114. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -0
  1115. package/dist/editor/menubar/toolbar-sections/EditControls.d.ts +4 -2
  1116. package/dist/editor/menubar/toolbar-sections/EditControls.js +82 -11
  1117. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  1118. package/dist/editor/menubar/toolbar-sections/FullscreenControl.d.ts +1 -0
  1119. package/dist/editor/menubar/toolbar-sections/FullscreenControl.js +15 -0
  1120. package/dist/editor/menubar/toolbar-sections/FullscreenControl.js.map +1 -0
  1121. package/dist/editor/menubar/toolbar-sections/InsertControls.js +1 -1
  1122. package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -1
  1123. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +22 -0
  1124. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +935 -161
  1125. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  1126. package/dist/editor/menubar/toolbar-sections/ReviewCommands.js +2 -1
  1127. package/dist/editor/menubar/toolbar-sections/ReviewCommands.js.map +1 -1
  1128. package/dist/editor/menubar/toolbar-sections/UndoRedoControls.js +58 -31
  1129. package/dist/editor/menubar/toolbar-sections/UndoRedoControls.js.map +1 -1
  1130. package/dist/editor/menubar/toolbar-sections/UtilityControls.d.ts +3 -1
  1131. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +14 -4
  1132. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  1133. package/dist/editor/menubar/toolbar-sections/ViewportControls.d.ts +1 -0
  1134. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +100 -38
  1135. package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
  1136. package/dist/editor/menubar/toolbar-sections/index.d.ts +4 -2
  1137. package/dist/editor/menubar/toolbar-sections/index.js +4 -2
  1138. package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
  1139. package/dist/editor/notifications/NotificationCenter.d.ts +4 -1
  1140. package/dist/editor/notifications/NotificationCenter.js +41 -30
  1141. package/dist/editor/notifications/NotificationCenter.js.map +1 -1
  1142. package/dist/editor/notifications/NotificationItem.js +100 -15
  1143. package/dist/editor/notifications/NotificationItem.js.map +1 -1
  1144. package/dist/editor/notifications/WatchButton.d.ts +5 -4
  1145. package/dist/editor/notifications/WatchButton.js +105 -61
  1146. package/dist/editor/notifications/WatchButton.js.map +1 -1
  1147. package/dist/editor/notifications/notificationListState.js +4 -1
  1148. package/dist/editor/notifications/notificationListState.js.map +1 -1
  1149. package/dist/editor/notifications/notificationRoutes.js.map +1 -1
  1150. package/dist/editor/notifications/useNotificationSubscriptions.d.ts +8 -0
  1151. package/dist/editor/notifications/useNotificationSubscriptions.js +25 -1
  1152. package/dist/editor/notifications/useNotificationSubscriptions.js.map +1 -1
  1153. package/dist/editor/notifications/useNotifications.js +58 -22
  1154. package/dist/editor/notifications/useNotifications.js.map +1 -1
  1155. package/dist/editor/notifications/watchEventOptions.d.ts +13 -0
  1156. package/dist/editor/notifications/watchEventOptions.js +113 -0
  1157. package/dist/editor/notifications/watchEventOptions.js.map +1 -0
  1158. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +8 -0
  1159. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +526 -0
  1160. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -0
  1161. package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +6 -4
  1162. package/dist/editor/page-editor-chrome/CommentHighlightings.js +497 -11
  1163. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
  1164. package/dist/editor/page-editor-chrome/ComponentOperationBubble.d.ts +8 -0
  1165. package/dist/editor/page-editor-chrome/ComponentOperationBubble.js +8 -0
  1166. package/dist/editor/page-editor-chrome/ComponentOperationBubble.js.map +1 -0
  1167. package/dist/editor/page-editor-chrome/DragInsertionOverlay.d.ts +36 -0
  1168. package/dist/editor/page-editor-chrome/DragInsertionOverlay.js +1067 -0
  1169. package/dist/editor/page-editor-chrome/DragInsertionOverlay.js.map +1 -0
  1170. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +22 -0
  1171. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +40 -0
  1172. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -0
  1173. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +30 -68
  1174. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  1175. package/dist/editor/page-editor-chrome/FieldEditedIndicator.d.ts +1 -3
  1176. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +38 -101
  1177. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
  1178. package/dist/editor/page-editor-chrome/FieldEditedIndicators.d.ts +1 -3
  1179. package/dist/editor/page-editor-chrome/FieldEditedIndicators.js +2 -2
  1180. package/dist/editor/page-editor-chrome/FieldEditedIndicators.js.map +1 -1
  1181. package/dist/editor/page-editor-chrome/FrameMenu.d.ts +7 -4
  1182. package/dist/editor/page-editor-chrome/FrameMenu.js +264 -223
  1183. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  1184. package/dist/editor/page-editor-chrome/FrameMenus.d.ts +1 -1
  1185. package/dist/editor/page-editor-chrome/FrameMenus.js +72 -18
  1186. package/dist/editor/page-editor-chrome/FrameMenus.js.map +1 -1
  1187. package/dist/editor/page-editor-chrome/InsertComponentMenu.d.ts +26 -0
  1188. package/dist/editor/page-editor-chrome/InsertComponentMenu.js +35 -0
  1189. package/dist/editor/page-editor-chrome/InsertComponentMenu.js.map +1 -0
  1190. package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +3 -2
  1191. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +191 -20
  1192. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
  1193. package/dist/editor/page-editor-chrome/NoLayout.js +1 -1
  1194. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +6 -2
  1195. package/dist/editor/page-editor-chrome/PageEditorChrome.js +141 -48
  1196. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  1197. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +167 -147
  1198. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  1199. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +34 -3
  1200. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +175 -65
  1201. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  1202. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +13 -5
  1203. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +120 -305
  1204. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  1205. package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +6 -4
  1206. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +304 -12
  1207. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  1208. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +1 -3
  1209. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +160 -123
  1210. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  1211. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.d.ts +24 -0
  1212. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js +90 -0
  1213. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js.map +1 -0
  1214. package/dist/editor/page-editor-chrome/componentDragObject.d.ts +10 -0
  1215. package/dist/editor/page-editor-chrome/componentDragObject.js +22 -0
  1216. package/dist/editor/page-editor-chrome/componentDragObject.js.map +1 -0
  1217. package/dist/editor/page-editor-chrome/insertTargetLabel.d.ts +6 -0
  1218. package/dist/editor/page-editor-chrome/insertTargetLabel.js +21 -0
  1219. package/dist/editor/page-editor-chrome/insertTargetLabel.js.map +1 -0
  1220. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +62 -0
  1221. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +306 -0
  1222. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -0
  1223. package/dist/editor/page-editor-chrome/overlay/InsertionLine.d.ts +44 -0
  1224. package/dist/editor/page-editor-chrome/overlay/InsertionLine.js +160 -0
  1225. package/dist/editor/page-editor-chrome/overlay/InsertionLine.js.map +1 -0
  1226. package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +83 -0
  1227. package/dist/editor/page-editor-chrome/overlay/geometry.js +349 -0
  1228. package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -0
  1229. package/dist/editor/page-editor-chrome/overlay/placeholderZones.d.ts +67 -0
  1230. package/dist/editor/page-editor-chrome/overlay/placeholderZones.js +279 -0
  1231. package/dist/editor/page-editor-chrome/overlay/placeholderZones.js.map +1 -0
  1232. package/dist/editor/page-editor-chrome/overlay/useOverlayMeasurement.d.ts +10 -0
  1233. package/dist/editor/page-editor-chrome/overlay/useOverlayMeasurement.js +28 -0
  1234. package/dist/editor/page-editor-chrome/overlay/useOverlayMeasurement.js.map +1 -0
  1235. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +29 -0
  1236. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +334 -0
  1237. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +1 -0
  1238. package/dist/editor/page-editor-chrome/useComponentDragHandle.d.ts +23 -0
  1239. package/dist/editor/page-editor-chrome/useComponentDragHandle.js +41 -0
  1240. package/dist/editor/page-editor-chrome/useComponentDragHandle.js.map +1 -0
  1241. package/dist/editor/page-editor-chrome/useDragInsertionGesture.d.ts +23 -0
  1242. package/dist/editor/page-editor-chrome/useDragInsertionGesture.js +207 -0
  1243. package/dist/editor/page-editor-chrome/useDragInsertionGesture.js.map +1 -0
  1244. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.d.ts +2 -0
  1245. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js +18 -0
  1246. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js.map +1 -0
  1247. package/dist/editor/page-viewer/DeviceToolbar.js +2 -2
  1248. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
  1249. package/dist/editor/page-viewer/EditorForm.js +55 -24
  1250. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  1251. package/dist/editor/page-viewer/EditorFormHintPopover.d.ts +2 -2
  1252. package/dist/editor/page-viewer/EditorFormHintPopover.js +4 -4
  1253. package/dist/editor/page-viewer/EditorFormHintPopover.js.map +1 -1
  1254. package/dist/editor/page-viewer/MiniMap.d.ts +29 -2
  1255. package/dist/editor/page-viewer/MiniMap.js +375 -340
  1256. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  1257. package/dist/editor/page-viewer/MinimapDropTargets.d.ts +13 -0
  1258. package/dist/editor/page-viewer/MinimapDropTargets.js +140 -0
  1259. package/dist/editor/page-viewer/MinimapDropTargets.js.map +1 -0
  1260. package/dist/editor/page-viewer/PageViewer.d.ts +4 -2
  1261. package/dist/editor/page-viewer/PageViewer.js +202 -21
  1262. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  1263. package/dist/editor/page-viewer/PageViewerFrame.d.ts +4 -7
  1264. package/dist/editor/page-viewer/PageViewerFrame.js +2220 -1270
  1265. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  1266. package/dist/editor/page-viewer/RenderingParametersSection.js +13 -7
  1267. package/dist/editor/page-viewer/RenderingParametersSection.js.map +1 -1
  1268. package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +19 -0
  1269. package/dist/editor/page-viewer/bridgeFieldPatch.js +33 -0
  1270. package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -0
  1271. package/dist/editor/page-viewer/bridgeKeyboardShortcuts.d.ts +3 -0
  1272. package/dist/editor/page-viewer/bridgeKeyboardShortcuts.js +36 -0
  1273. package/dist/editor/page-viewer/bridgeKeyboardShortcuts.js.map +1 -0
  1274. package/dist/editor/page-viewer/pageViewContext.d.ts +35 -0
  1275. package/dist/editor/page-viewer/pageViewContext.js +40 -3
  1276. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  1277. package/dist/editor/page-viewer/renderUrl.d.ts +14 -0
  1278. package/dist/editor/page-viewer/renderUrl.js +83 -0
  1279. package/dist/editor/page-viewer/renderUrl.js.map +1 -0
  1280. package/dist/editor/pageModel.d.ts +4 -0
  1281. package/dist/editor/pageModel.js +12 -1
  1282. package/dist/editor/pageModel.js.map +1 -1
  1283. package/dist/editor/personalization/ActionList.js +2 -2
  1284. package/dist/editor/personalization/ActionList.js.map +1 -1
  1285. package/dist/editor/personalization/ConditionTreeEditor.js +9 -9
  1286. package/dist/editor/personalization/ConditionTreeEditor.js.map +1 -1
  1287. package/dist/editor/personalization/PersonalizationPanel.d.ts +3 -1
  1288. package/dist/editor/personalization/PersonalizationPanel.js +39 -18
  1289. package/dist/editor/personalization/PersonalizationPanel.js.map +1 -1
  1290. package/dist/editor/personalization/RuleElementPicker.js +5 -4
  1291. package/dist/editor/personalization/RuleElementPicker.js.map +1 -1
  1292. package/dist/editor/personalization/RuleList.js +13 -10
  1293. package/dist/editor/personalization/RuleList.js.map +1 -1
  1294. package/dist/editor/personalization/RuleParameterInput.js +10 -7
  1295. package/dist/editor/personalization/RuleParameterInput.js.map +1 -1
  1296. package/dist/editor/personalization/TreeItemPicker.js +4 -6
  1297. package/dist/editor/personalization/TreeItemPicker.js.map +1 -1
  1298. package/dist/editor/personalization/utils.js.map +1 -1
  1299. package/dist/editor/reviews/Comment.d.ts +6 -1
  1300. package/dist/editor/reviews/Comment.js +64 -103
  1301. package/dist/editor/reviews/Comment.js.map +1 -1
  1302. package/dist/editor/reviews/CommentDisplayPopover.js +244 -78
  1303. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  1304. package/dist/editor/reviews/CommentEditor.d.ts +7 -2
  1305. package/dist/editor/reviews/CommentEditor.js +45 -8
  1306. package/dist/editor/reviews/CommentEditor.js.map +1 -1
  1307. package/dist/editor/reviews/CommentPopover.d.ts +4 -0
  1308. package/dist/editor/reviews/CommentPopover.js +92 -15
  1309. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  1310. package/dist/editor/reviews/CommentView.d.ts +4 -1
  1311. package/dist/editor/reviews/CommentView.js +60 -38
  1312. package/dist/editor/reviews/CommentView.js.map +1 -1
  1313. package/dist/editor/reviews/Comments.d.ts +0 -2
  1314. package/dist/editor/reviews/Comments.js +269 -51
  1315. package/dist/editor/reviews/Comments.js.map +1 -1
  1316. package/dist/editor/reviews/CommentsAndFeedback.d.ts +2 -8
  1317. package/dist/editor/reviews/CommentsAndFeedback.js +10 -43
  1318. package/dist/editor/reviews/CommentsAndFeedback.js.map +1 -1
  1319. package/dist/editor/reviews/CreateReviewConfirmStep.js +2 -2
  1320. package/dist/editor/reviews/CreateReviewConfirmStep.js.map +1 -1
  1321. package/dist/editor/reviews/CreateReviewDetailsStep.js +9 -9
  1322. package/dist/editor/reviews/CreateReviewDetailsStep.js.map +1 -1
  1323. package/dist/editor/reviews/CreateReviewDialog.js +1 -1
  1324. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  1325. package/dist/editor/reviews/CreateReviewSuccessStep.js +2 -2
  1326. package/dist/editor/reviews/CreateReviewSuccessStep.js.map +1 -1
  1327. package/dist/editor/reviews/DecisionsMatrix.js +34 -26
  1328. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  1329. package/dist/editor/reviews/DiffView.js +6 -6
  1330. package/dist/editor/reviews/DiffView.js.map +1 -1
  1331. package/dist/editor/reviews/EditReviewSettingsDialog.js +68 -54
  1332. package/dist/editor/reviews/EditReviewSettingsDialog.js.map +1 -1
  1333. package/dist/editor/reviews/FeedbackCard.d.ts +23 -0
  1334. package/dist/editor/reviews/FeedbackCard.js +32 -0
  1335. package/dist/editor/reviews/FeedbackCard.js.map +1 -0
  1336. package/dist/editor/reviews/FeedbackModeIntro.d.ts +15 -0
  1337. package/dist/editor/reviews/FeedbackModeIntro.js +22 -0
  1338. package/dist/editor/reviews/FeedbackModeIntro.js.map +1 -0
  1339. package/dist/editor/reviews/ItemTreeSelector.js +1 -1
  1340. package/dist/editor/reviews/ItemTreeSelector.js.map +1 -1
  1341. package/dist/editor/reviews/LatestFeedback.js +26 -49
  1342. package/dist/editor/reviews/LatestFeedback.js.map +1 -1
  1343. package/dist/editor/reviews/MentionText.d.ts +3 -0
  1344. package/dist/editor/reviews/MentionText.js +139 -0
  1345. package/dist/editor/reviews/MentionText.js.map +1 -0
  1346. package/dist/editor/reviews/PreconfiguredReviewerSelector.js +1 -1
  1347. package/dist/editor/reviews/PreconfiguredReviewerSelector.js.map +1 -1
  1348. package/dist/editor/reviews/ReviewCard.js +12 -11
  1349. package/dist/editor/reviews/ReviewCard.js.map +1 -1
  1350. package/dist/editor/reviews/ReviewDetail.js +5 -5
  1351. package/dist/editor/reviews/ReviewDetail.js.map +1 -1
  1352. package/dist/editor/reviews/ReviewersPanel.js +33 -19
  1353. package/dist/editor/reviews/ReviewersPanel.js.map +1 -1
  1354. package/dist/editor/reviews/ReviewsList.js +4 -3
  1355. package/dist/editor/reviews/ReviewsList.js.map +1 -1
  1356. package/dist/editor/reviews/SuggestedEdit.d.ts +4 -1
  1357. package/dist/editor/reviews/SuggestedEdit.js +101 -61
  1358. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  1359. package/dist/editor/reviews/SuggestionCommentThread.d.ts +14 -0
  1360. package/dist/editor/reviews/SuggestionCommentThread.js +151 -0
  1361. package/dist/editor/reviews/SuggestionCommentThread.js.map +1 -0
  1362. package/dist/editor/reviews/SuggestionDisplayPopover.js +45 -47
  1363. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  1364. package/dist/editor/reviews/commentAi.js +96 -27
  1365. package/dist/editor/reviews/commentAi.js.map +1 -1
  1366. package/dist/editor/reviews/commentTransientSelection.d.ts +23 -0
  1367. package/dist/editor/reviews/commentTransientSelection.js +7 -0
  1368. package/dist/editor/reviews/commentTransientSelection.js.map +1 -0
  1369. package/dist/editor/reviews/feedbackAvatar.d.ts +14 -0
  1370. package/dist/editor/reviews/feedbackAvatar.js +86 -0
  1371. package/dist/editor/reviews/feedbackAvatar.js.map +1 -0
  1372. package/dist/editor/reviews/feedbackCommentRules.d.ts +3 -0
  1373. package/dist/editor/reviews/feedbackCommentRules.js +15 -0
  1374. package/dist/editor/reviews/feedbackCommentRules.js.map +1 -0
  1375. package/dist/editor/reviews/feedbackOrdering.d.ts +5 -0
  1376. package/dist/editor/reviews/feedbackOrdering.js +27 -0
  1377. package/dist/editor/reviews/feedbackOrdering.js.map +1 -0
  1378. package/dist/editor/reviews/feedbackScrollTarget.d.ts +19 -0
  1379. package/dist/editor/reviews/feedbackScrollTarget.js +171 -0
  1380. package/dist/editor/reviews/feedbackScrollTarget.js.map +1 -0
  1381. package/dist/editor/reviews/feedbackSelection.d.ts +3 -0
  1382. package/dist/editor/reviews/feedbackSelection.js +65 -0
  1383. package/dist/editor/reviews/feedbackSelection.js.map +1 -0
  1384. package/dist/editor/reviews/feedbackSidebarText.d.ts +2 -0
  1385. package/dist/editor/reviews/feedbackSidebarText.js +3 -0
  1386. package/dist/editor/reviews/feedbackSidebarText.js.map +1 -0
  1387. package/dist/editor/reviews/latestFeedbackData.d.ts +11 -0
  1388. package/dist/editor/reviews/latestFeedbackData.js +40 -0
  1389. package/dist/editor/reviews/latestFeedbackData.js.map +1 -0
  1390. package/dist/editor/reviews/openCommentsFeedback.d.ts +35 -0
  1391. package/dist/editor/reviews/openCommentsFeedback.js +89 -0
  1392. package/dist/editor/reviews/openCommentsFeedback.js.map +1 -0
  1393. package/dist/editor/reviews/reviewCommands.js +2 -2
  1394. package/dist/editor/reviews/reviewCommands.js.map +1 -1
  1395. package/dist/editor/reviews/suggestedEditState.d.ts +14 -0
  1396. package/dist/editor/reviews/suggestedEditState.js +110 -0
  1397. package/dist/editor/reviews/suggestedEditState.js.map +1 -0
  1398. package/dist/editor/reviews/suggestionContentChange.d.ts +2 -0
  1399. package/dist/editor/reviews/suggestionContentChange.js +29 -0
  1400. package/dist/editor/reviews/suggestionContentChange.js.map +1 -0
  1401. package/dist/editor/reviews/suggestionDisplayValue.d.ts +43 -0
  1402. package/dist/editor/reviews/suggestionDisplayValue.js +93 -0
  1403. package/dist/editor/reviews/suggestionDisplayValue.js.map +1 -0
  1404. package/dist/editor/reviews/useMultiReview.js +5 -4
  1405. package/dist/editor/reviews/useMultiReview.js.map +1 -1
  1406. package/dist/editor/services/agentService.d.ts +75 -27
  1407. package/dist/editor/services/agentService.js +105 -33
  1408. package/dist/editor/services/agentService.js.map +1 -1
  1409. package/dist/editor/services/agentStatus.js +1 -1
  1410. package/dist/editor/services/agentStatus.js.map +1 -1
  1411. package/dist/editor/services/agentSubscriptionRegistry.js +12 -13
  1412. package/dist/editor/services/agentSubscriptionRegistry.js.map +1 -1
  1413. package/dist/editor/services/aiService.d.ts +8 -38
  1414. package/dist/editor/services/aiService.js +7 -64
  1415. package/dist/editor/services/aiService.js.map +1 -1
  1416. package/dist/editor/services/contentService.d.ts +11 -1
  1417. package/dist/editor/services/contentService.js +7 -20
  1418. package/dist/editor/services/contentService.js.map +1 -1
  1419. package/dist/editor/services/contextService.js.map +1 -1
  1420. package/dist/editor/services/customCommandsService.js.map +1 -1
  1421. package/dist/editor/services/editService.d.ts +16 -0
  1422. package/dist/editor/services/editService.js +8 -3
  1423. package/dist/editor/services/editService.js.map +1 -1
  1424. package/dist/editor/services/indexService.js.map +1 -1
  1425. package/dist/editor/services/indicatorService.js.map +1 -1
  1426. package/dist/editor/services/localStorageService.js +3 -3
  1427. package/dist/editor/services/localStorageService.js.map +1 -1
  1428. package/dist/editor/services/manualService.d.ts +31 -0
  1429. package/dist/editor/services/manualService.js +77 -0
  1430. package/dist/editor/services/manualService.js.map +1 -0
  1431. package/dist/editor/services/notificationService.d.ts +4 -0
  1432. package/dist/editor/services/notificationService.js +5 -1
  1433. package/dist/editor/services/notificationService.js.map +1 -1
  1434. package/dist/editor/services/personalizationService.js.map +1 -1
  1435. package/dist/editor/services/reviewsService.d.ts +6 -3
  1436. package/dist/editor/services/reviewsService.js +10 -2
  1437. package/dist/editor/services/reviewsService.js.map +1 -1
  1438. package/dist/editor/services/serviceHelper.d.ts +8 -0
  1439. package/dist/editor/services/serviceHelper.js +59 -0
  1440. package/dist/editor/services/serviceHelper.js.map +1 -1
  1441. package/dist/editor/services/suggestedEditsService.js.map +1 -1
  1442. package/dist/editor/services/systemService.d.ts +49 -0
  1443. package/dist/editor/services/systemService.js +32 -0
  1444. package/dist/editor/services/systemService.js.map +1 -1
  1445. package/dist/editor/services/templateBuilderService.js +5 -6
  1446. package/dist/editor/services/templateBuilderService.js.map +1 -1
  1447. package/dist/editor/services/userResolution.d.ts +18 -0
  1448. package/dist/editor/services/userResolution.js +86 -0
  1449. package/dist/editor/services/userResolution.js.map +1 -0
  1450. package/dist/editor/services/userService.d.ts +14 -0
  1451. package/dist/editor/services/userService.js +39 -0
  1452. package/dist/editor/services/userService.js.map +1 -0
  1453. package/dist/editor/settings/About.js +219 -32
  1454. package/dist/editor/settings/About.js.map +1 -1
  1455. package/dist/editor/settings/IndexOverview.js +10 -9
  1456. package/dist/editor/settings/IndexOverview.js.map +1 -1
  1457. package/dist/editor/settings/QuotaInfo.js +90 -69
  1458. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  1459. package/dist/editor/settings/QuotaUserPicker.js +15 -55
  1460. package/dist/editor/settings/QuotaUserPicker.js.map +1 -1
  1461. package/dist/editor/settings/SettingsBreadcrumb.d.ts +3 -6
  1462. package/dist/editor/settings/SettingsBreadcrumb.js +18 -2
  1463. package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
  1464. package/dist/editor/settings/SettingsCard.d.ts +4 -0
  1465. package/dist/editor/settings/SettingsCard.js +7 -0
  1466. package/dist/editor/settings/SettingsCard.js.map +1 -0
  1467. package/dist/editor/settings/SettingsHeaderActionsContext.d.ts +9 -3
  1468. package/dist/editor/settings/SettingsHeaderActionsContext.js +6 -6
  1469. package/dist/editor/settings/SettingsHeaderActionsContext.js.map +1 -1
  1470. package/dist/editor/settings/SettingsPanelLayout.d.ts +28 -0
  1471. package/dist/editor/settings/SettingsPanelLayout.js +24 -0
  1472. package/dist/editor/settings/SettingsPanelLayout.js.map +1 -0
  1473. package/dist/editor/settings/SettingsView.js +25 -28
  1474. package/dist/editor/settings/SettingsView.js.map +1 -1
  1475. package/dist/editor/settings/StatusSummary.js +17 -27
  1476. package/dist/editor/settings/StatusSummary.js.map +1 -1
  1477. package/dist/editor/settings/index/AdvancedSettings.d.ts +1 -1
  1478. package/dist/editor/settings/index/AdvancedSettings.js +13 -11
  1479. package/dist/editor/settings/index/AdvancedSettings.js.map +1 -1
  1480. package/dist/editor/settings/index/CollectionWarningsDisplay.js +1 -1
  1481. package/dist/editor/settings/index/CollectionWarningsDisplay.js.map +1 -1
  1482. package/dist/editor/settings/index/EmbeddingProviderInfo.js +7 -5
  1483. package/dist/editor/settings/index/EmbeddingProviderInfo.js.map +1 -1
  1484. package/dist/editor/settings/index/IndexStatusCards.js +3 -2
  1485. package/dist/editor/settings/index/IndexStatusCards.js.map +1 -1
  1486. package/dist/editor/settings/index/LatestEmbeddingsList.js +3 -1
  1487. package/dist/editor/settings/index/LatestEmbeddingsList.js.map +1 -1
  1488. package/dist/editor/settings/index/QueueErrorsDisplay.js +1 -1
  1489. package/dist/editor/settings/index/QueueErrorsDisplay.js.map +1 -1
  1490. package/dist/editor/settings/index/RebuildIndexSection.js +24 -22
  1491. package/dist/editor/settings/index/RebuildIndexSection.js.map +1 -1
  1492. package/dist/editor/settings/index/RecentBatchesList.js +20 -18
  1493. package/dist/editor/settings/index/RecentBatchesList.js.map +1 -1
  1494. package/dist/editor/settings/index/types.d.ts +0 -2
  1495. package/dist/editor/settings/index/useIndexStatus.js +10 -2
  1496. package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
  1497. package/dist/editor/settings/index/utils.js +16 -16
  1498. package/dist/editor/settings/index/utils.js.map +1 -1
  1499. package/dist/editor/settings/panels/AgentProfileConfigPanel.d.ts +2 -1
  1500. package/dist/editor/settings/panels/AgentProfileConfigPanel.js +7 -3
  1501. package/dist/editor/settings/panels/AgentProfileConfigPanel.js.map +1 -1
  1502. package/dist/editor/settings/panels/AgentProfileEditorPanel.d.ts +1 -0
  1503. package/dist/editor/settings/panels/AgentProfileEditorPanel.js +1 -1
  1504. package/dist/editor/settings/panels/AgentProfileEditorPanel.js.map +1 -1
  1505. package/dist/editor/settings/panels/AgentToolsPanel.d.ts +2 -0
  1506. package/dist/editor/settings/panels/AgentToolsPanel.js +178 -0
  1507. package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -0
  1508. package/dist/editor/settings/panels/AgentsPanel.js +30 -8
  1509. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  1510. package/dist/editor/settings/panels/ClusterInstancesPanel.js +49 -54
  1511. package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
  1512. package/dist/editor/settings/panels/CreateAgentProfileDialog.js +2 -2
  1513. package/dist/editor/settings/panels/CreateAgentProfileDialog.js.map +1 -1
  1514. package/dist/editor/settings/panels/CreateJavaScriptToolDialog.js +3 -3
  1515. package/dist/editor/settings/panels/CreateJavaScriptToolDialog.js.map +1 -1
  1516. package/dist/editor/settings/panels/CreateMcpServerDialog.d.ts +7 -0
  1517. package/dist/editor/settings/panels/CreateMcpServerDialog.js +79 -0
  1518. package/dist/editor/settings/panels/CreateMcpServerDialog.js.map +1 -0
  1519. package/dist/editor/settings/panels/FieldTypeSerializersPanel.d.ts +2 -0
  1520. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +52 -0
  1521. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -0
  1522. package/dist/editor/settings/panels/GroupedFieldConfigPanel.js +7 -5
  1523. package/dist/editor/settings/panels/GroupedFieldConfigPanel.js.map +1 -1
  1524. package/dist/editor/settings/panels/ItemConfigPanel.js +4 -3
  1525. package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -1
  1526. package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js +4 -2
  1527. package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js.map +1 -1
  1528. package/dist/editor/settings/panels/JavaScriptToolConfigPanel.js +1 -1
  1529. package/dist/editor/settings/panels/JavaScriptToolConfigPanel.js.map +1 -1
  1530. package/dist/editor/settings/panels/JavaScriptToolsPanel.js +27 -13
  1531. package/dist/editor/settings/panels/JavaScriptToolsPanel.js.map +1 -1
  1532. package/dist/editor/settings/panels/McpToolsPanel.js +36 -16
  1533. package/dist/editor/settings/panels/McpToolsPanel.js.map +1 -1
  1534. package/dist/editor/settings/panels/ModelConfigPanel.js +1 -1
  1535. package/dist/editor/settings/panels/ModelConfigPanel.js.map +1 -1
  1536. package/dist/editor/settings/panels/ModelsPanel.js +178 -41
  1537. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
  1538. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.d.ts +2 -0
  1539. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js +156 -0
  1540. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js.map +1 -0
  1541. package/dist/editor/settings/panels/PersistentLogsPanel.js +25 -14
  1542. package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -1
  1543. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.d.ts +2 -1
  1544. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +6 -3
  1545. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
  1546. package/dist/editor/settings/panels/ProjectTemplateSelector.js +10 -43
  1547. package/dist/editor/settings/panels/ProjectTemplateSelector.js.map +1 -1
  1548. package/dist/editor/settings/panels/ProjectTemplateSelectorList.d.ts +13 -0
  1549. package/dist/editor/settings/panels/ProjectTemplateSelectorList.js +43 -0
  1550. package/dist/editor/settings/panels/ProjectTemplateSelectorList.js.map +1 -0
  1551. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +119 -90
  1552. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  1553. package/dist/editor/settings/panels/ProviderIcon.js +8 -8
  1554. package/dist/editor/settings/panels/ProviderIcon.js.map +1 -1
  1555. package/dist/editor/settings/panels/ProvidersPanel.js +55 -35
  1556. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  1557. package/dist/editor/settings/panels/SearchConfigPanel.js +13 -11
  1558. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  1559. package/dist/editor/settings/panels/SettingsPanel.js +3 -2
  1560. package/dist/editor/settings/panels/SettingsPanel.js.map +1 -1
  1561. package/dist/editor/settings/panels/StatusPanel.js +39 -14
  1562. package/dist/editor/settings/panels/StatusPanel.js.map +1 -1
  1563. package/dist/editor/settings/panels/SystemSettingsPanel.d.ts +2 -0
  1564. package/dist/editor/settings/panels/SystemSettingsPanel.js +69 -0
  1565. package/dist/editor/settings/panels/SystemSettingsPanel.js.map +1 -0
  1566. package/dist/editor/settings/panels/UserPreferencesPanel.d.ts +2 -0
  1567. package/dist/editor/settings/panels/UserPreferencesPanel.js +66 -0
  1568. package/dist/editor/settings/panels/UserPreferencesPanel.js.map +1 -0
  1569. package/dist/editor/settings/panels/index.d.ts +5 -0
  1570. package/dist/editor/settings/panels/index.js +5 -0
  1571. package/dist/editor/settings/panels/index.js.map +1 -1
  1572. package/dist/editor/settings/status/coreStatusChecks.js +118 -7
  1573. package/dist/editor/settings/status/coreStatusChecks.js.map +1 -1
  1574. package/dist/editor/settings/status/useStartupChecks.js +1 -1
  1575. package/dist/editor/settings/status/useStartupChecks.js.map +1 -1
  1576. package/dist/editor/setup-wizard/SetupStepError.d.ts +8 -0
  1577. package/dist/editor/setup-wizard/SetupStepError.js +7 -0
  1578. package/dist/editor/setup-wizard/SetupStepError.js.map +1 -0
  1579. package/dist/editor/setup-wizard/SetupStepHeader.d.ts +15 -0
  1580. package/dist/editor/setup-wizard/SetupStepHeader.js +6 -0
  1581. package/dist/editor/setup-wizard/SetupStepHeader.js.map +1 -0
  1582. package/dist/editor/setup-wizard/SetupStepLayout.d.ts +33 -0
  1583. package/dist/editor/setup-wizard/SetupStepLayout.js +16 -0
  1584. package/dist/editor/setup-wizard/SetupStepLayout.js.map +1 -0
  1585. package/dist/editor/setup-wizard/steps/CompleteStep.js +12 -7
  1586. package/dist/editor/setup-wizard/steps/CompleteStep.js.map +1 -1
  1587. package/dist/editor/setup-wizard/steps/CreateSettingsStep.d.ts +1 -1
  1588. package/dist/editor/setup-wizard/steps/CreateSettingsStep.js +5 -3
  1589. package/dist/editor/setup-wizard/steps/CreateSettingsStep.js.map +1 -1
  1590. package/dist/editor/setup-wizard/steps/LicenseActivationStep.js +102 -31
  1591. package/dist/editor/setup-wizard/steps/LicenseActivationStep.js.map +1 -1
  1592. package/dist/editor/setup-wizard/steps/LicenseEmailStep.d.ts +2 -1
  1593. package/dist/editor/setup-wizard/steps/LicenseEmailStep.js +13 -5
  1594. package/dist/editor/setup-wizard/steps/LicenseEmailStep.js.map +1 -1
  1595. package/dist/editor/setup-wizard/steps/ModelSelectionStep.d.ts +1 -1
  1596. package/dist/editor/setup-wizard/steps/ModelSelectionStep.js +64 -59
  1597. package/dist/editor/setup-wizard/steps/ModelSelectionStep.js.map +1 -1
  1598. package/dist/editor/setup-wizard/steps/ProviderStep.js +84 -30
  1599. package/dist/editor/setup-wizard/steps/ProviderStep.js.map +1 -1
  1600. package/dist/editor/setup-wizard/steps/WelcomeStep.js +2 -1
  1601. package/dist/editor/setup-wizard/steps/WelcomeStep.js.map +1 -1
  1602. package/dist/editor/sidebar/Completions.js +1 -1
  1603. package/dist/editor/sidebar/Completions.js.map +1 -1
  1604. package/dist/editor/sidebar/ComponentPalette.d.ts +1 -1
  1605. package/dist/editor/sidebar/ComponentPalette.js +61 -26
  1606. package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
  1607. package/dist/editor/sidebar/ComponentTree.js +208 -40
  1608. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  1609. package/dist/editor/sidebar/ContentTreePanel.d.ts +3 -0
  1610. package/dist/editor/sidebar/ContentTreePanel.js +14 -0
  1611. package/dist/editor/sidebar/ContentTreePanel.js.map +1 -0
  1612. package/dist/editor/sidebar/DictionaryEditor.js +1 -1
  1613. package/dist/editor/sidebar/DictionaryEditor.js.map +1 -1
  1614. package/dist/editor/sidebar/EditHistory.js +17 -4
  1615. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  1616. package/dist/editor/sidebar/Favorites.d.ts +5 -1
  1617. package/dist/editor/sidebar/Favorites.js +41 -57
  1618. package/dist/editor/sidebar/Favorites.js.map +1 -1
  1619. package/dist/editor/sidebar/Insert.js +1 -1
  1620. package/dist/editor/sidebar/MainContentTree.js +5 -2
  1621. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  1622. package/dist/editor/sidebar/MobileWorkspacePopover.d.ts +2 -2
  1623. package/dist/editor/sidebar/MobileWorkspacePopover.js +3 -3
  1624. package/dist/editor/sidebar/MobileWorkspacePopover.js.map +1 -1
  1625. package/dist/editor/sidebar/MorePanelsButton.js +2 -2
  1626. package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
  1627. package/dist/editor/sidebar/NavigationPanelItem.js +6 -5
  1628. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
  1629. package/dist/editor/sidebar/NavigationPanelMenuItem.js +2 -2
  1630. package/dist/editor/sidebar/NavigationPanelMenuItem.js.map +1 -1
  1631. package/dist/editor/sidebar/OperationItem.js +111 -25
  1632. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  1633. package/dist/editor/sidebar/SidebarPanel.js +21 -15
  1634. package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
  1635. package/dist/editor/sidebar/SidebarStack.js +2 -0
  1636. package/dist/editor/sidebar/SidebarStack.js.map +1 -1
  1637. package/dist/editor/sidebar/TimelineView.js +3 -3
  1638. package/dist/editor/sidebar/TimelineView.js.map +1 -1
  1639. package/dist/editor/sidebar/Validation.js +6 -3
  1640. package/dist/editor/sidebar/Validation.js.map +1 -1
  1641. package/dist/editor/sidebar/Workbox.js +36 -77
  1642. package/dist/editor/sidebar/Workbox.js.map +1 -1
  1643. package/dist/editor/sidebar/WorkspaceButton.d.ts +3 -1
  1644. package/dist/editor/sidebar/WorkspaceButton.js +16 -8
  1645. package/dist/editor/sidebar/WorkspaceButton.js.map +1 -1
  1646. package/dist/editor/sidebar/WorkspaceRail.js +30 -25
  1647. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  1648. package/dist/editor/sidebar/WorkspaceRailMobile.js +5 -14
  1649. package/dist/editor/sidebar/WorkspaceRailMobile.js.map +1 -1
  1650. package/dist/editor/sidebar/contentTreeConstants.d.ts +2 -0
  1651. package/dist/editor/sidebar/contentTreeConstants.js +3 -0
  1652. package/dist/editor/sidebar/contentTreeConstants.js.map +1 -0
  1653. package/dist/editor/template-wizard/TemplateBuilderDialog.js +1 -1
  1654. package/dist/editor/template-wizard/TemplateBuilderDialog.js.map +1 -1
  1655. package/dist/editor/template-wizard/TemplateStructureInlineEditor.js +164 -97
  1656. package/dist/editor/template-wizard/TemplateStructureInlineEditor.js.map +1 -1
  1657. package/dist/editor/tree-indicators/GutterColumns.js +13 -22
  1658. package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
  1659. package/dist/editor/tree-indicators/GutterContext.js +5 -1
  1660. package/dist/editor/tree-indicators/GutterContext.js.map +1 -1
  1661. package/dist/editor/ui/CenteredMessage.js +1 -1
  1662. package/dist/editor/ui/CenteredMessage.js.map +1 -1
  1663. package/dist/editor/ui/CopyMoveTargetSelectorDialog.js +3 -3
  1664. package/dist/editor/ui/CopyMoveTargetSelectorDialog.js.map +1 -1
  1665. package/dist/editor/ui/DialogButtons.d.ts +3 -1
  1666. package/dist/editor/ui/DialogButtons.js +3 -2
  1667. package/dist/editor/ui/DialogButtons.js.map +1 -1
  1668. package/dist/editor/ui/DragPreview.d.ts +7 -0
  1669. package/dist/editor/ui/DragPreview.js +107 -10
  1670. package/dist/editor/ui/DragPreview.js.map +1 -1
  1671. package/dist/editor/ui/ExportItemsDialog.js +1 -1
  1672. package/dist/editor/ui/ExportItemsDialog.js.map +1 -1
  1673. package/dist/editor/ui/HomeButton.js +1 -1
  1674. package/dist/editor/ui/HomeButton.js.map +1 -1
  1675. package/dist/editor/ui/HomeListRow.d.ts +11 -0
  1676. package/dist/editor/ui/HomeListRow.js +11 -0
  1677. package/dist/editor/ui/HomeListRow.js.map +1 -0
  1678. package/dist/editor/ui/IconSelectorDialog.js +8 -8
  1679. package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
  1680. package/dist/editor/ui/Icons.d.ts +1 -1
  1681. package/dist/editor/ui/Icons.js +10 -10
  1682. package/dist/editor/ui/Icons.js.map +1 -1
  1683. package/dist/editor/ui/ImportItemsDialog.js +1 -1
  1684. package/dist/editor/ui/ImportItemsDialog.js.map +1 -1
  1685. package/dist/editor/ui/ItemCollectionEditor.d.ts +27 -3
  1686. package/dist/editor/ui/ItemCollectionEditor.js +54 -10
  1687. package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
  1688. package/dist/editor/ui/ItemList.js +1 -1
  1689. package/dist/editor/ui/ItemList.js.map +1 -1
  1690. package/dist/editor/ui/ItemNameDialogNew.js +1 -1
  1691. package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
  1692. package/dist/editor/ui/ItemSearch.d.ts +1 -0
  1693. package/dist/editor/ui/ItemSearch.js +4 -4
  1694. package/dist/editor/ui/ItemSearch.js.map +1 -1
  1695. package/dist/editor/ui/LoadingState.d.ts +11 -0
  1696. package/dist/editor/ui/LoadingState.js +27 -0
  1697. package/dist/editor/ui/LoadingState.js.map +1 -0
  1698. package/dist/editor/ui/PerfectTree.d.ts +24 -1
  1699. package/dist/editor/ui/PerfectTree.js +39 -19
  1700. package/dist/editor/ui/PerfectTree.js.map +1 -1
  1701. package/dist/editor/ui/PublishDialog.d.ts +11 -0
  1702. package/dist/editor/ui/PublishDialog.js +101 -0
  1703. package/dist/editor/ui/PublishDialog.js.map +1 -0
  1704. package/dist/editor/ui/PublishItemDialog.d.ts +1 -1
  1705. package/dist/editor/ui/PublishItemDialog.js +40 -75
  1706. package/dist/editor/ui/PublishItemDialog.js.map +1 -1
  1707. package/dist/editor/ui/PublishRestrictionsDialog.js +70 -64
  1708. package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
  1709. package/dist/editor/ui/Section.js +5 -5
  1710. package/dist/editor/ui/Section.js.map +1 -1
  1711. package/dist/editor/ui/SharedFolderSelectorDialog.js +1 -1
  1712. package/dist/editor/ui/SharedFolderSelectorDialog.js.map +1 -1
  1713. package/dist/editor/ui/SimpleIconButton.d.ts +9 -2
  1714. package/dist/editor/ui/SimpleIconButton.js +20 -5
  1715. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  1716. package/dist/editor/ui/SimpleMenu.js +7 -6
  1717. package/dist/editor/ui/SimpleMenu.js.map +1 -1
  1718. package/dist/editor/ui/SimpleTable.js +1 -1
  1719. package/dist/editor/ui/SimpleTable.js.map +1 -1
  1720. package/dist/editor/ui/SimpleTabs.d.ts +6 -2
  1721. package/dist/editor/ui/SimpleTabs.js +54 -19
  1722. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  1723. package/dist/editor/ui/SimpleToolbar.js +1 -1
  1724. package/dist/editor/ui/SimpleToolbar.js.map +1 -1
  1725. package/dist/editor/ui/Spinner.d.ts +14 -1
  1726. package/dist/editor/ui/Spinner.js.map +1 -1
  1727. package/dist/editor/ui/Splitter.d.ts +2 -0
  1728. package/dist/editor/ui/Splitter.js +160 -21
  1729. package/dist/editor/ui/Splitter.js.map +1 -1
  1730. package/dist/editor/ui/TemplateSelectorDialog.js +5 -5
  1731. package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -1
  1732. package/dist/editor/ui/TreeListSelector.js +1 -1
  1733. package/dist/editor/ui/TreeListSelector.js.map +1 -1
  1734. package/dist/editor/ui/WorkboxItemsTable.d.ts +15 -0
  1735. package/dist/editor/ui/WorkboxItemsTable.js +142 -0
  1736. package/dist/editor/ui/WorkboxItemsTable.js.map +1 -0
  1737. package/dist/editor/ui/animationSettle.d.ts +32 -0
  1738. package/dist/editor/ui/animationSettle.js +85 -0
  1739. package/dist/editor/ui/animationSettle.js.map +1 -0
  1740. package/dist/editor/ui/splitterResizeEvent.d.ts +9 -0
  1741. package/dist/editor/ui/splitterResizeEvent.js +13 -0
  1742. package/dist/editor/ui/splitterResizeEvent.js.map +1 -0
  1743. package/dist/editor/utils/dedupeInflight.d.ts +1 -0
  1744. package/dist/editor/utils/dedupeInflight.js +13 -0
  1745. package/dist/editor/utils/dedupeInflight.js.map +1 -0
  1746. package/dist/editor/utils/expandSelectionAtCaret.d.ts +15 -0
  1747. package/dist/editor/utils/expandSelectionAtCaret.js +183 -0
  1748. package/dist/editor/utils/expandSelectionAtCaret.js.map +1 -0
  1749. package/dist/editor/utils/jsonCleaner.js +10 -10
  1750. package/dist/editor/utils/jsonCleaner.js.map +1 -1
  1751. package/dist/editor/utils/keyboardNavigation.js +2 -1
  1752. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  1753. package/dist/editor/utils/selectionContext.js.map +1 -1
  1754. package/dist/editor/utils/versionAtDate.js.map +1 -1
  1755. package/dist/editor/utils.d.ts +7 -17
  1756. package/dist/editor/utils.js +35 -145
  1757. package/dist/editor/utils.js.map +1 -1
  1758. package/dist/editor/version-diff/versionDiffHighlightStyles.d.ts +6 -6
  1759. package/dist/editor/version-diff/versionDiffHighlightStyles.js +6 -6
  1760. package/dist/editor/version-diff/versionDiffHighlightStyles.js.map +1 -1
  1761. package/dist/editor/version-diff/versionDiffTargets.d.ts +3 -8
  1762. package/dist/editor/version-diff/versionDiffTargets.js +38 -96
  1763. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
  1764. package/dist/editor/views/CompareView.js +3 -3
  1765. package/dist/editor/views/CompareView.js.map +1 -1
  1766. package/dist/editor/views/EditView.js +1 -1
  1767. package/dist/editor/views/EditView.js.map +1 -1
  1768. package/dist/editor/views/EditorSlot.js +7 -6
  1769. package/dist/editor/views/EditorSlot.js.map +1 -1
  1770. package/dist/editor/views/ItemEditor.js +2 -2
  1771. package/dist/editor/views/ItemEditor.js.map +1 -1
  1772. package/dist/editor/views/ItemEditorPane.d.ts +11 -0
  1773. package/dist/editor/views/ItemEditorPane.js +19 -0
  1774. package/dist/editor/views/ItemEditorPane.js.map +1 -0
  1775. package/dist/editor/views/MediaFolderEditView.js +2 -2
  1776. package/dist/editor/views/MediaFolderEditView.js.map +1 -1
  1777. package/dist/editor/views/SingleEditView.js +15 -6
  1778. package/dist/editor/views/SingleEditView.js.map +1 -1
  1779. package/dist/editor/views/editorSlotContext.d.ts +2 -0
  1780. package/dist/editor/views/editorSlotContext.js +10 -1
  1781. package/dist/editor/views/editorSlotContext.js.map +1 -1
  1782. package/dist/editor/workflowFields.d.ts +1 -0
  1783. package/dist/editor/workflowFields.js +16 -0
  1784. package/dist/editor/workflowFields.js.map +1 -0
  1785. package/dist/index.d.ts +39 -6
  1786. package/dist/index.js +23 -3
  1787. package/dist/index.js.map +1 -1
  1788. package/dist/lib/pointerDrag.d.ts +20 -0
  1789. package/dist/lib/pointerDrag.js +57 -0
  1790. package/dist/lib/pointerDrag.js.map +1 -0
  1791. package/dist/lib/safelist.js +1 -1
  1792. package/dist/lib/safelist.js.map +1 -1
  1793. package/dist/lib/sanitize.js +79 -11
  1794. package/dist/lib/sanitize.js.map +1 -1
  1795. package/dist/lib/viewTransition.js +7 -1
  1796. package/dist/lib/viewTransition.js.map +1 -1
  1797. package/dist/licensing/EmailEntry.js +2 -1
  1798. package/dist/licensing/EmailEntry.js.map +1 -1
  1799. package/dist/licensing/FeatureGate.js +6 -6
  1800. package/dist/licensing/FeatureGate.js.map +1 -1
  1801. package/dist/licensing/LicenseActivationForm.js +2 -1
  1802. package/dist/licensing/LicenseActivationForm.js.map +1 -1
  1803. package/dist/licensing/LicenseCodeEntry.js +7 -3
  1804. package/dist/licensing/LicenseCodeEntry.js.map +1 -1
  1805. package/dist/licensing/LicenseContext.js +3 -4
  1806. package/dist/licensing/LicenseContext.js.map +1 -1
  1807. package/dist/licensing/LicenseOverlay.js +3 -1
  1808. package/dist/licensing/LicenseOverlay.js.map +1 -1
  1809. package/dist/licensing/licenseService.js +4 -3
  1810. package/dist/licensing/licenseService.js.map +1 -1
  1811. package/dist/licensing/types.d.ts +1 -1
  1812. package/dist/licensing/types.js +3 -1
  1813. package/dist/licensing/types.js.map +1 -1
  1814. package/dist/logging/consolePrefix.d.ts +2 -0
  1815. package/dist/logging/consolePrefix.js +62 -0
  1816. package/dist/logging/consolePrefix.js.map +1 -0
  1817. package/dist/logging/index.d.ts +1 -0
  1818. package/dist/logging/index.js +2 -0
  1819. package/dist/logging/index.js.map +1 -0
  1820. package/dist/logging/install-browser-console.js +3 -0
  1821. package/dist/logging/install-browser-console.js.map +1 -0
  1822. package/dist/revision.d.ts +2 -2
  1823. package/dist/revision.js +2 -2
  1824. package/dist/setup/services/setupWizardService.d.ts +12 -0
  1825. package/dist/setup/services/setupWizardService.js +47 -13
  1826. package/dist/setup/services/setupWizardService.js.map +1 -1
  1827. package/dist/setup/wizard/steps/AddModelDialog.js +8 -8
  1828. package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -1
  1829. package/dist/setup/wizard/steps/ImportModelDialog.js +38 -87
  1830. package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -1
  1831. package/dist/splash-screen/DialogWrappers.js +2 -2
  1832. package/dist/splash-screen/DialogWrappers.js.map +1 -1
  1833. package/dist/splash-screen/ModernSplashScreen.d.ts +7 -0
  1834. package/dist/splash-screen/ModernSplashScreen.js +582 -62
  1835. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  1836. package/dist/splash-screen/NewPage.js +41 -17
  1837. package/dist/splash-screen/NewPage.js.map +1 -1
  1838. package/dist/splash-screen/OpenPage.js +17 -21
  1839. package/dist/splash-screen/OpenPage.js.map +1 -1
  1840. package/dist/splash-screen/ParheliaAssistantChat.js +13 -12
  1841. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
  1842. package/dist/splash-screen/RecentPages.d.ts +4 -1
  1843. package/dist/splash-screen/RecentPages.js +29 -26
  1844. package/dist/splash-screen/RecentPages.js.map +1 -1
  1845. package/dist/task-board/TaskBoardWorkspace.js +465 -196
  1846. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  1847. package/dist/task-board/components/AddDependencyDialog.js +5 -2
  1848. package/dist/task-board/components/AddDependencyDialog.js.map +1 -1
  1849. package/dist/task-board/components/CommentsList.js +22 -9
  1850. package/dist/task-board/components/CommentsList.js.map +1 -1
  1851. package/dist/task-board/components/CreateProjectDialog.js +10 -10
  1852. package/dist/task-board/components/CreateProjectDialog.js.map +1 -1
  1853. package/dist/task-board/components/CreateTaskDialog.js +13 -8
  1854. package/dist/task-board/components/CreateTaskDialog.js.map +1 -1
  1855. package/dist/task-board/components/FinishedProjectCard.d.ts +5 -0
  1856. package/dist/task-board/components/FinishedProjectCard.js +8 -0
  1857. package/dist/task-board/components/FinishedProjectCard.js.map +1 -0
  1858. package/dist/task-board/components/ItemCollectionEditorDialog.js +1 -1
  1859. package/dist/task-board/components/ItemCollectionEditorDialog.js.map +1 -1
  1860. package/dist/task-board/components/ItemCollectionPicker.js +3 -3
  1861. package/dist/task-board/components/ItemCollectionPicker.js.map +1 -1
  1862. package/dist/task-board/components/ProjectBudgetBanner.d.ts +13 -0
  1863. package/dist/task-board/components/ProjectBudgetBanner.js +13 -0
  1864. package/dist/task-board/components/ProjectBudgetBanner.js.map +1 -0
  1865. package/dist/task-board/components/ProjectDashboard.d.ts +21 -21
  1866. package/dist/task-board/components/ProjectDashboard.js +217 -127
  1867. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  1868. package/dist/task-board/components/ProjectExecutionUserPicker.js +15 -61
  1869. package/dist/task-board/components/ProjectExecutionUserPicker.js.map +1 -1
  1870. package/dist/task-board/components/ProjectListContent.d.ts +1 -0
  1871. package/dist/task-board/components/ProjectListContent.js +12 -10
  1872. package/dist/task-board/components/ProjectListContent.js.map +1 -1
  1873. package/dist/task-board/components/ProjectOverviewContent.js +15 -84
  1874. package/dist/task-board/components/ProjectOverviewContent.js.map +1 -1
  1875. package/dist/task-board/components/ProjectPropertiesPanel.d.ts +2 -0
  1876. package/dist/task-board/components/ProjectPropertiesPanel.js +17 -13
  1877. package/dist/task-board/components/ProjectPropertiesPanel.js.map +1 -1
  1878. package/dist/task-board/components/ProjectSettingsDialog.d.ts +18 -0
  1879. package/dist/task-board/components/ProjectSettingsDialog.js +66 -48
  1880. package/dist/task-board/components/ProjectSettingsDialog.js.map +1 -1
  1881. package/dist/task-board/components/TaskAgentPanel.d.ts +4 -0
  1882. package/dist/task-board/components/TaskAgentPanel.js +23 -8
  1883. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  1884. package/dist/task-board/components/TaskAssigneeBadge.d.ts +16 -0
  1885. package/dist/task-board/components/TaskAssigneeBadge.js +21 -0
  1886. package/dist/task-board/components/TaskAssigneeBadge.js.map +1 -0
  1887. package/dist/task-board/components/TaskAssigneePicker.js +18 -7
  1888. package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
  1889. package/dist/task-board/components/TaskAttachmentDropZone.d.ts +11 -0
  1890. package/dist/task-board/components/TaskAttachmentDropZone.js +100 -0
  1891. package/dist/task-board/components/TaskAttachmentDropZone.js.map +1 -0
  1892. package/dist/task-board/components/TaskAttachmentsSection.d.ts +1 -0
  1893. package/dist/task-board/components/TaskAttachmentsSection.js +19 -41
  1894. package/dist/task-board/components/TaskAttachmentsSection.js.map +1 -1
  1895. package/dist/task-board/components/TaskBoardBreadcrumb.d.ts +17 -0
  1896. package/dist/task-board/components/TaskBoardBreadcrumb.js +14 -0
  1897. package/dist/task-board/components/TaskBoardBreadcrumb.js.map +1 -0
  1898. package/dist/task-board/components/TaskBoardFilterBox.d.ts +4 -0
  1899. package/dist/task-board/components/TaskBoardFilterBox.js +7 -0
  1900. package/dist/task-board/components/TaskBoardFilterBox.js.map +1 -0
  1901. package/dist/task-board/components/TaskBoardHomeView.d.ts +7 -0
  1902. package/dist/task-board/components/TaskBoardHomeView.js +21 -0
  1903. package/dist/task-board/components/TaskBoardHomeView.js.map +1 -0
  1904. package/dist/task-board/components/TaskBoardMyTasksSidebar.js +26 -29
  1905. package/dist/task-board/components/TaskBoardMyTasksSidebar.js.map +1 -1
  1906. package/dist/task-board/components/TaskBoardProjectListSidebar.js +70 -14
  1907. package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -1
  1908. package/dist/task-board/components/TaskBoardProjectSelector.d.ts +8 -0
  1909. package/dist/task-board/components/TaskBoardProjectSelector.js +20 -0
  1910. package/dist/task-board/components/TaskBoardProjectSelector.js.map +1 -0
  1911. package/dist/task-board/components/TaskBoardTitlebar.js +8 -13
  1912. package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
  1913. package/dist/task-board/components/TaskCard.js +29 -10
  1914. package/dist/task-board/components/TaskCard.js.map +1 -1
  1915. package/dist/task-board/components/TaskDetailPanel.d.ts +1 -0
  1916. package/dist/task-board/components/TaskDetailPanel.js +45 -32
  1917. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  1918. package/dist/task-board/components/TaskReviewActions.d.ts +1 -0
  1919. package/dist/task-board/components/TaskReviewActions.js +7 -4
  1920. package/dist/task-board/components/TaskReviewActions.js.map +1 -1
  1921. package/dist/task-board/components/TaskRow.js +17 -18
  1922. package/dist/task-board/components/TaskRow.js.map +1 -1
  1923. package/dist/task-board/components/TaskboardPersistentLogPanel.js +17 -10
  1924. package/dist/task-board/components/TaskboardPersistentLogPanel.js.map +1 -1
  1925. package/dist/task-board/components/WizardCommunicationCards.js +7 -5
  1926. package/dist/task-board/components/WizardCommunicationCards.js.map +1 -1
  1927. package/dist/task-board/components/WizardCommunicationCenter.d.ts +7 -1
  1928. package/dist/task-board/components/WizardCommunicationCenter.js +14 -7
  1929. package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
  1930. package/dist/task-board/components/WizardCommunicationShared.js +22 -22
  1931. package/dist/task-board/components/WizardCommunicationShared.js.map +1 -1
  1932. package/dist/task-board/components/WizardTask.d.ts +5 -1
  1933. package/dist/task-board/components/WizardTask.js +14 -31
  1934. package/dist/task-board/components/WizardTask.js.map +1 -1
  1935. package/dist/task-board/components/WizardTaskDetailsPanel.d.ts +10 -2
  1936. package/dist/task-board/components/WizardTaskDetailsPanel.js +57 -11
  1937. package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
  1938. package/dist/task-board/persistentLogCopy.js +3 -1
  1939. package/dist/task-board/persistentLogCopy.js.map +1 -1
  1940. package/dist/task-board/persistentLogLabels.js.map +1 -1
  1941. package/dist/task-board/services/taskService.d.ts +7 -0
  1942. package/dist/task-board/services/taskService.js +8 -2
  1943. package/dist/task-board/services/taskService.js.map +1 -1
  1944. package/dist/task-board/taskAgentConfig.js +6 -2
  1945. package/dist/task-board/taskAgentConfig.js.map +1 -1
  1946. package/dist/task-board/taskAgentLink.js +1 -3
  1947. package/dist/task-board/taskAgentLink.js.map +1 -1
  1948. package/dist/task-board/taskBoardNavStore.d.ts +4 -2
  1949. package/dist/task-board/taskBoardNavStore.js +45 -2
  1950. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  1951. package/dist/task-board/taskExecutionRecords.js.map +1 -1
  1952. package/dist/task-board/taskExecutionStatus.js +14 -19
  1953. package/dist/task-board/taskExecutionStatus.js.map +1 -1
  1954. package/dist/task-board/taskPriority.d.ts +4 -0
  1955. package/dist/task-board/taskPriority.js +19 -0
  1956. package/dist/task-board/taskPriority.js.map +1 -0
  1957. package/dist/task-board/taskStatus.js +2 -2
  1958. package/dist/task-board/taskStatus.js.map +1 -1
  1959. package/dist/task-board/useTaskBoardAgentPanelState.js +1 -3
  1960. package/dist/task-board/useTaskBoardAgentPanelState.js.map +1 -1
  1961. package/dist/task-board/utils/projectHierarchy.js.map +1 -1
  1962. package/dist/task-board/utils/taskDependencyOrdering.js +2 -1
  1963. package/dist/task-board/utils/taskDependencyOrdering.js.map +1 -1
  1964. package/dist/task-board/views/DependencyGraphView.d.ts +42 -1
  1965. package/dist/task-board/views/DependencyGraphView.js +239 -74
  1966. package/dist/task-board/views/DependencyGraphView.js.map +1 -1
  1967. package/dist/task-board/views/KanbanView.js +312 -49
  1968. package/dist/task-board/views/KanbanView.js.map +1 -1
  1969. package/dist/task-board/views/ListView.js +6 -5
  1970. package/dist/task-board/views/ListView.js.map +1 -1
  1971. package/dist/task-board/views/WizardView.d.ts +2 -0
  1972. package/dist/task-board/views/WizardView.js +36 -29
  1973. package/dist/task-board/views/WizardView.js.map +1 -1
  1974. package/dist/tour/Tour.js +7 -7
  1975. package/dist/tour/Tour.js.map +1 -1
  1976. package/dist/tour/default-tour.js +169 -17
  1977. package/dist/tour/default-tour.js.map +1 -1
  1978. package/dist/tour/preview-tour.js +1 -1
  1979. package/dist/tour/preview-tour.js.map +1 -1
  1980. package/dist/types.d.ts +16 -1
  1981. package/images/Parhelia-Onboarding-BG.jpg +0 -0
  1982. package/package.json +13 -1
  1983. package/styles.css +320 -843
  1984. package/dist/agents-view/AgentsInbox.d.ts +0 -26
  1985. package/dist/agents-view/AgentsInbox.js +0 -31
  1986. package/dist/agents-view/AgentsInbox.js.map +0 -1
  1987. package/dist/components/Error.d.ts +0 -9
  1988. package/dist/components/Error.js +0 -24
  1989. package/dist/components/Error.js.map +0 -1
  1990. package/dist/components/FilterInput.d.ts +0 -22
  1991. package/dist/components/FilterInput.js +0 -29
  1992. package/dist/components/FilterInput.js.map +0 -1
  1993. package/dist/components/ui/menubar.d.ts +0 -26
  1994. package/dist/components/ui/menubar.js +0 -55
  1995. package/dist/components/ui/menubar.js.map +0 -1
  1996. package/dist/config/types/index.d.ts +0 -2
  1997. package/dist/config/types/index.js +0 -4
  1998. package/dist/config/types/index.js.map +0 -1
  1999. package/dist/editor/FloatingToolbar.d.ts +0 -7
  2000. package/dist/editor/FloatingToolbar.js +0 -91
  2001. package/dist/editor/FloatingToolbar.js.map +0 -1
  2002. package/dist/editor/NewEditorClient.d.ts +0 -5
  2003. package/dist/editor/NewEditorClient.js +0 -7
  2004. package/dist/editor/NewEditorClient.js.map +0 -1
  2005. package/dist/editor/PictureEditorDialog.d.ts +0 -8
  2006. package/dist/editor/PictureEditorDialog.js +0 -198
  2007. package/dist/editor/PictureEditorDialog.js.map +0 -1
  2008. package/dist/editor/SetupLoadingScreen.d.ts +0 -5
  2009. package/dist/editor/SetupLoadingScreen.js +0 -11
  2010. package/dist/editor/SetupLoadingScreen.js.map +0 -1
  2011. package/dist/editor/ai/AgentBanners.js +0 -16
  2012. package/dist/editor/ai/AgentBanners.js.map +0 -1
  2013. package/dist/editor/ai/AgentCostDisplay.js +0 -116
  2014. package/dist/editor/ai/AgentCostDisplay.js.map +0 -1
  2015. package/dist/editor/ai/AgentDocumentList.d.ts +0 -12
  2016. package/dist/editor/ai/AgentDocumentList.js +0 -335
  2017. package/dist/editor/ai/AgentDocumentList.js.map +0 -1
  2018. package/dist/editor/ai/AgentGreeting.d.ts +0 -8
  2019. package/dist/editor/ai/AgentGreeting.js +0 -14
  2020. package/dist/editor/ai/AgentGreeting.js.map +0 -1
  2021. package/dist/editor/ai/AgentTerminalStatusBar.d.ts +0 -72
  2022. package/dist/editor/ai/AgentTerminalStatusBar.js +0 -888
  2023. package/dist/editor/ai/AgentTerminalStatusBar.js.map +0 -1
  2024. package/dist/editor/ai/AiResponseMessage.d.ts +0 -33
  2025. package/dist/editor/ai/AiResponseMessage.js +0 -1239
  2026. package/dist/editor/ai/AiResponseMessage.js.map +0 -1
  2027. package/dist/editor/ai/ContextInfoBar.d.ts +0 -14
  2028. package/dist/editor/ai/ContextInfoBar.js +0 -653
  2029. package/dist/editor/ai/ContextInfoBar.js.map +0 -1
  2030. package/dist/editor/ai/DancingDots.d.ts +0 -1
  2031. package/dist/editor/ai/DancingDots.js +0 -6
  2032. package/dist/editor/ai/DancingDots.js.map +0 -1
  2033. package/dist/editor/ai/EditOperationsPanel.d.ts +0 -7
  2034. package/dist/editor/ai/EditOperationsPanel.js +0 -91
  2035. package/dist/editor/ai/EditOperationsPanel.js.map +0 -1
  2036. package/dist/editor/ai/HeartbeatMessage.d.ts +0 -4
  2037. package/dist/editor/ai/HeartbeatMessage.js +0 -7
  2038. package/dist/editor/ai/HeartbeatMessage.js.map +0 -1
  2039. package/dist/editor/ai/InitialThinkingSplash.d.ts +0 -3
  2040. package/dist/editor/ai/InitialThinkingSplash.js +0 -9
  2041. package/dist/editor/ai/InitialThinkingSplash.js.map +0 -1
  2042. package/dist/editor/ai/QueuedPromptsPanel.d.ts +0 -4
  2043. package/dist/editor/ai/QueuedPromptsPanel.js +0 -37
  2044. package/dist/editor/ai/QueuedPromptsPanel.js.map +0 -1
  2045. package/dist/editor/ai/SpawnedAgentsPanel.d.ts +0 -6
  2046. package/dist/editor/ai/SpawnedAgentsPanel.js +0 -101
  2047. package/dist/editor/ai/SpawnedAgentsPanel.js.map +0 -1
  2048. package/dist/editor/ai/TodoListPanel.d.ts +0 -5
  2049. package/dist/editor/ai/TodoListPanel.js +0 -113
  2050. package/dist/editor/ai/TodoListPanel.js.map +0 -1
  2051. package/dist/editor/ai/ToolCallDisplay.d.ts +0 -80
  2052. package/dist/editor/ai/ToolCallDisplay.js +0 -865
  2053. package/dist/editor/ai/ToolCallDisplay.js.map +0 -1
  2054. package/dist/editor/ai/UserMessage.d.ts +0 -4
  2055. package/dist/editor/ai/UserMessage.js +0 -42
  2056. package/dist/editor/ai/UserMessage.js.map +0 -1
  2057. package/dist/editor/ai/agentDiagnostics.test.js +0 -181
  2058. package/dist/editor/ai/agentDiagnostics.test.js.map +0 -1
  2059. package/dist/editor/ai/useAgentPanes.test.d.ts +0 -1
  2060. package/dist/editor/ai/useAgentPanes.test.js +0 -198
  2061. package/dist/editor/ai/useAgentPanes.test.js.map +0 -1
  2062. package/dist/editor/client/GenericDialog.d.ts +0 -10
  2063. package/dist/editor/client/GenericDialog.js +0 -25
  2064. package/dist/editor/client/GenericDialog.js.map +0 -1
  2065. package/dist/editor/commands/localizeItem/LocalizeItemDialog.d.ts +0 -8
  2066. package/dist/editor/commands/localizeItem/LocalizeItemDialog.js +0 -91
  2067. package/dist/editor/commands/localizeItem/LocalizeItemDialog.js.map +0 -1
  2068. package/dist/editor/content-tree/index.d.ts +0 -3
  2069. package/dist/editor/content-tree/index.js +0 -4
  2070. package/dist/editor/content-tree/index.js.map +0 -1
  2071. package/dist/editor/context-menu/CopyMoveMenu.d.ts +0 -7
  2072. package/dist/editor/context-menu/CopyMoveMenu.js +0 -58
  2073. package/dist/editor/context-menu/CopyMoveMenu.js.map +0 -1
  2074. package/dist/editor/menubar/ApproveAndPublish.d.ts +0 -1
  2075. package/dist/editor/menubar/ApproveAndPublish.js +0 -13
  2076. package/dist/editor/menubar/ApproveAndPublish.js.map +0 -1
  2077. package/dist/editor/menubar/ItemToolbar.d.ts +0 -1
  2078. package/dist/editor/menubar/ItemToolbar.js +0 -12
  2079. package/dist/editor/menubar/ItemToolbar.js.map +0 -1
  2080. package/dist/editor/menubar/NavButtons.d.ts +0 -1
  2081. package/dist/editor/menubar/NavButtons.js +0 -40
  2082. package/dist/editor/menubar/NavButtons.js.map +0 -1
  2083. package/dist/editor/menubar/SiteInfo.d.ts +0 -1
  2084. package/dist/editor/menubar/SiteInfo.js +0 -27
  2085. package/dist/editor/menubar/SiteInfo.js.map +0 -1
  2086. package/dist/editor/menubar/UserMenu.d.ts +0 -5
  2087. package/dist/editor/menubar/UserMenu.js +0 -33
  2088. package/dist/editor/menubar/UserMenu.js.map +0 -1
  2089. package/dist/editor/page-editor-chrome/CommentHighlighting.d.ts +0 -6
  2090. package/dist/editor/page-editor-chrome/CommentHighlighting.js +0 -316
  2091. package/dist/editor/page-editor-chrome/CommentHighlighting.js.map +0 -1
  2092. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +0 -5
  2093. package/dist/editor/page-editor-chrome/InlineEditor.js +0 -832
  2094. package/dist/editor/page-editor-chrome/InlineEditor.js.map +0 -1
  2095. package/dist/editor/page-editor-chrome/SuggestionHighlighting.d.ts +0 -6
  2096. package/dist/editor/page-editor-chrome/SuggestionHighlighting.js +0 -224
  2097. package/dist/editor/page-editor-chrome/SuggestionHighlighting.js.map +0 -1
  2098. package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +0 -7
  2099. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +0 -728
  2100. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +0 -1
  2101. package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +0 -3
  2102. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +0 -423
  2103. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +0 -1
  2104. package/dist/editor/picture-shared.d.ts +0 -16
  2105. package/dist/editor/picture-shared.js +0 -25
  2106. package/dist/editor/picture-shared.js.map +0 -1
  2107. package/dist/editor/registry/SidebarRegistry.d.ts +0 -96
  2108. package/dist/editor/registry/SidebarRegistry.js +0 -166
  2109. package/dist/editor/registry/SidebarRegistry.js.map +0 -1
  2110. package/dist/editor/registry/WorkspaceRegistry.d.ts +0 -71
  2111. package/dist/editor/registry/WorkspaceRegistry.js +0 -112
  2112. package/dist/editor/registry/WorkspaceRegistry.js.map +0 -1
  2113. package/dist/editor/registry/index.d.ts +0 -2
  2114. package/dist/editor/registry/index.js +0 -4
  2115. package/dist/editor/registry/index.js.map +0 -1
  2116. package/dist/editor/reviews/PagesPanel.d.ts +0 -21
  2117. package/dist/editor/reviews/PagesPanel.js +0 -140
  2118. package/dist/editor/reviews/PagesPanel.js.map +0 -1
  2119. package/dist/editor/reviews/PreviewInfo.d.ts +0 -1
  2120. package/dist/editor/reviews/PreviewInfo.js +0 -9
  2121. package/dist/editor/reviews/PreviewInfo.js.map +0 -1
  2122. package/dist/editor/services/agentDialogService.test.d.ts +0 -1
  2123. package/dist/editor/services/agentDialogService.test.js +0 -56
  2124. package/dist/editor/services/agentDialogService.test.js.map +0 -1
  2125. package/dist/editor/services/agentSubscriptionRegistry.test.d.ts +0 -1
  2126. package/dist/editor/services/agentSubscriptionRegistry.test.js +0 -104
  2127. package/dist/editor/services/agentSubscriptionRegistry.test.js.map +0 -1
  2128. package/dist/editor/services-server/api.d.ts +0 -18
  2129. package/dist/editor/services-server/api.js +0 -116
  2130. package/dist/editor/services-server/api.js.map +0 -1
  2131. package/dist/editor/settings/Info.d.ts +0 -1
  2132. package/dist/editor/settings/Info.js +0 -11
  2133. package/dist/editor/settings/Info.js.map +0 -1
  2134. package/dist/editor/settings/Status.d.ts +0 -1
  2135. package/dist/editor/settings/Status.js +0 -89
  2136. package/dist/editor/settings/Status.js.map +0 -1
  2137. package/dist/editor/settings/WebSocketMessages.d.ts +0 -1
  2138. package/dist/editor/settings/WebSocketMessages.js +0 -74
  2139. package/dist/editor/settings/WebSocketMessages.js.map +0 -1
  2140. package/dist/editor/settings/panels/useSidebarEditor.d.ts +0 -15
  2141. package/dist/editor/settings/panels/useSidebarEditor.js +0 -24
  2142. package/dist/editor/settings/panels/useSidebarEditor.js.map +0 -1
  2143. package/dist/editor/sidebar/Divider.d.ts +0 -6
  2144. package/dist/editor/sidebar/Divider.js +0 -6
  2145. package/dist/editor/sidebar/Divider.js.map +0 -1
  2146. package/dist/editor/sidebar/LabelButton.d.ts +0 -5
  2147. package/dist/editor/sidebar/LabelButton.js +0 -12
  2148. package/dist/editor/sidebar/LabelButton.js.map +0 -1
  2149. package/dist/editor/sidebar/Performance.d.ts +0 -1
  2150. package/dist/editor/sidebar/Performance.js +0 -32
  2151. package/dist/editor/sidebar/Performance.js.map +0 -1
  2152. package/dist/editor/sidebar/SEOInfo.d.ts +0 -1
  2153. package/dist/editor/sidebar/SEOInfo.js +0 -158
  2154. package/dist/editor/sidebar/SEOInfo.js.map +0 -1
  2155. package/dist/editor/sidebar/Sidebar.d.ts +0 -1
  2156. package/dist/editor/sidebar/Sidebar.js +0 -11
  2157. package/dist/editor/sidebar/Sidebar.js.map +0 -1
  2158. package/dist/editor/ui/Toolbar.d.ts +0 -3
  2159. package/dist/editor/ui/Toolbar.js +0 -5
  2160. package/dist/editor/ui/Toolbar.js.map +0 -1
  2161. package/dist/editor/utils/useMemoDebug.d.ts +0 -1
  2162. package/dist/editor/utils/useMemoDebug.js +0 -18
  2163. package/dist/editor/utils/useMemoDebug.js.map +0 -1
  2164. package/dist/editor/views/ParheliaView.d.ts +0 -5
  2165. package/dist/editor/views/ParheliaView.js +0 -181
  2166. package/dist/editor/views/ParheliaView.js.map +0 -1
  2167. package/dist/setup/utils/modelPricing.d.ts +0 -7
  2168. package/dist/setup/utils/modelPricing.js +0 -106
  2169. package/dist/setup/utils/modelPricing.js.map +0 -1
  2170. package/dist/splash-screen/ParheliaLogo.d.ts +0 -4
  2171. package/dist/splash-screen/ParheliaLogo.js +0 -134
  2172. package/dist/splash-screen/ParheliaLogo.js.map +0 -1
  2173. package/dist/splash-screen/SectionHeadline.d.ts +0 -4
  2174. package/dist/splash-screen/SectionHeadline.js +0 -7
  2175. package/dist/splash-screen/SectionHeadline.js.map +0 -1
  2176. package/dist/task-board/components/ProjectAgentsPanel.d.ts +0 -4
  2177. package/dist/task-board/components/ProjectAgentsPanel.js +0 -156
  2178. package/dist/task-board/components/ProjectAgentsPanel.js.map +0 -1
  2179. package/dist/task-board/components/ProjectSelector.d.ts +0 -20
  2180. package/dist/task-board/components/ProjectSelector.js +0 -10
  2181. package/dist/task-board/components/ProjectSelector.js.map +0 -1
  2182. package/dist/task-board/components/TaskDetailDialog.d.ts +0 -12
  2183. package/dist/task-board/components/TaskDetailDialog.js +0 -8
  2184. package/dist/task-board/components/TaskDetailDialog.js.map +0 -1
  2185. package/dist/task-board/index.d.ts +0 -15
  2186. package/dist/task-board/index.js +0 -18
  2187. package/dist/task-board/index.js.map +0 -1
  2188. package/dist/task-board/views/PlanningView.d.ts +0 -7
  2189. package/dist/task-board/views/PlanningView.js +0 -112
  2190. package/dist/task-board/views/PlanningView.js.map +0 -1
  2191. package/dist/test/setup.d.ts +0 -0
  2192. package/dist/test/setup.js +0 -37
  2193. package/dist/test/setup.js.map +0 -1
  2194. package/images/bg-shape-black.webp +0 -0
  2195. package/images/parhelia-logo-1.jpg +0 -0
  2196. package/images/phlogo.png +0 -0
  2197. package/images/wizard-bg.png +0 -0
  2198. /package/dist/editor/ai/{AgentBanners.d.ts → terminal/components/AgentBanners.d.ts} +0 -0
  2199. /package/dist/editor/ai/{AgentCostDisplay.d.ts → terminal/components/AgentCostDisplay.d.ts} +0 -0
  2200. /package/dist/{editor/ai/agentDiagnostics.test.d.ts → logging/install-browser-console.d.ts} +0 -0
@@ -1,18 +1,20 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React, { useState, useEffect, useRef, useCallback, useSyncExternalStore, useMemo, startTransition, } from "react";
3
+ import React, { useState, useEffect, useRef, useCallback, useMemo, startTransition, } from "react";
4
4
  import { toast } from "sonner";
5
5
  import { EditContextProvider, FieldsEditContextProvider, OperationsContextProvider, useEditContext, } from "./editContext";
6
- import { fieldModificationStore } from "./fieldModificationStore";
6
+ import { aggregateModifiedFieldsFromStores, areModifiedFieldSnapshotsEqual, FieldModificationStore, } from "./fieldModificationStore";
7
7
  import { SplashScreenAgentProvider } from "../../splash-screen/SplashScreenAgentContext";
8
8
  import { useRouter, useSearchParams, usePathname } from "./navigation";
9
9
  import { findComponent, getComponentById } from "../componentTreeHelper";
10
10
  import { getOperationsContext } from "./operations";
11
11
  import { handleErrorResult } from "./helpers";
12
+ import { isManualShowMeFocusTransfer, isManualShowMeTarget, } from "./manualShowMeFocus";
12
13
  import { executeFieldAction as executeFieldServerAction, connectSocket, getEditHistory, getRunningOperations, reconnectSession, releaseFieldLocks, validateItems, } from "../services/editService";
13
14
  import { emitAgentDocumentsChanged } from "../services/agentService";
14
15
  import { onSocketReconnect as onAgentSocketReconnect } from "../services/agentSubscriptionRegistry";
15
16
  import { useEditorWebSocket } from "./hooks/useEditorWebSocket";
17
+ import { getEditorRealtime } from "./realtime/realtimeTransport";
16
18
  import { createEditorSocketDiagnostics, } from "./socketDiagnostics";
17
19
  import { localStorageService } from "../services/localStorageService";
18
20
  import { useSocketMessageHandler } from "./hooks/useSocketMessageHandler";
@@ -20,6 +22,7 @@ import "react-json-view-lite/dist/index.css";
20
22
  import { MediaSelector, } from "../media-selector/MediaSelector";
21
23
  import { getComponentCommands } from "../commands/componentCommands";
22
24
  import { getLanguagesAndVersions, } from "../services/contentService";
25
+ import { getAllFavorites } from "../services/favouritesService";
23
26
  import ConfirmationDialog from "../ConfirmationDialog";
24
27
  import { getItemDescriptor } from "../utils";
25
28
  import { EditContextMenu } from "../ContextMenu";
@@ -27,10 +30,13 @@ import { InlineAiTrigger } from "../ai/InlineAiTrigger";
27
30
  import { EditorFormHintPopover } from "../page-viewer/EditorFormHintPopover";
28
31
  import { FieldEditorPopup } from "../FieldEditorPopup";
29
32
  import { ConcurrentUserLimitDialog } from "../ConcurrentUserLimitDialog";
33
+ import { SessionExpiredOverlay } from "./SessionExpiredOverlay";
30
34
  import { post } from "../services/serviceHelper";
35
+ import { CONTENT_TREE_SIDEBAR_ID } from "../sidebar/contentTreeConstants";
31
36
  import { PageViewerFrame } from "../page-viewer/PageViewerFrame";
32
37
  import { useItemsRepository } from "./itemsRepository";
33
38
  import { Spinner } from "../ui/Spinner";
39
+ import { createSettleRegistry } from "../ui/animationSettle";
34
40
  import { cleanId } from "../utils/id-helper";
35
41
  import { useDebouncedCallback } from "use-debounce";
36
42
  import { useKeyboardNavigation } from "../utils/keyboardNavigation";
@@ -38,11 +44,14 @@ import { Toaster } from "../../components/ui/sonner";
38
44
  import { Tour } from "../../tour/Tour";
39
45
  import { GuidanceOverlay } from "../ai/GuidanceOverlay";
40
46
  import { AgentDialogHandler } from "../ai/dialogs";
47
+ import { setActiveAgentConversation } from "../ai/useActiveAgentConversation";
41
48
  import { usePageViewContext, } from "../page-viewer/pageViewContext";
42
49
  import { QuickItemSwitcher } from "../QuickItemSwitcher";
43
50
  import { useEditorSlotContext, } from "../views/editorSlotContext";
44
51
  import { getComments, getAvailableCommentTags, } from "../services/reviewsService";
45
52
  import { useReviews } from "../reviews/useReviews";
53
+ import { isSuggestedEditRemoved } from "../reviews/suggestedEditState";
54
+ import { COMMENT_TRANSIENT_ELEMENT_KEY, COMMENT_TRANSIENT_SELECTION_RECT, } from "../reviews/commentTransientSelection";
46
55
  import uuid from "react-uuid";
47
56
  import { flushSync } from "react-dom";
48
57
  import { getSuggestedEdits } from "../services/suggestedEditsService";
@@ -50,19 +59,44 @@ import { requestQuota } from "../services/aiService";
50
59
  import { useQuota } from "./hooks/useQuota";
51
60
  import { useEditorUrlSync } from "./hooks/useEditorUrlSync";
52
61
  import { useMediaQuery } from "./hooks/useMediaQuery";
53
- import { FullscreenControls } from "./ui/FullscreenControls";
54
62
  import { EditorChrome } from "./ui/EditorChrome";
55
63
  import { DevModeIndicator } from "./ui/DevModeIndicator";
56
64
  import { useWorkbox } from "./hooks/useWorkbox";
57
65
  import { useMediaSelector } from "./hooks/useMediaSelector";
58
66
  import { useGlobalEditorKeyDown } from "./hooks/useGlobalEditorKeyDown";
59
67
  import { useStartupChecks } from "../settings/status/index";
68
+ import { EditorLoadingOverlay } from "../EditorLoadingOverlay";
60
69
  import { FeatureGate, LicenseFeatures, LicenseProvider, LicenseOverlay, } from "../../licensing";
61
70
  // Sentinel written to the `sidebar` URL param when the user has explicitly closed
62
71
  // every sidebar. Distinguishes "no preference yet" (param absent) from "user wants
63
72
  // nothing open" (param present with this value) so reload can honor the user's intent.
64
73
  const SIDEBAR_NONE_SENTINEL = "none";
65
74
  const sidebarUrlValue = (ids) => ids.length ? ids.join(",") : SIDEBAR_NONE_SENTINEL;
75
+ // moved to hooks/useQuota
76
+ function getInitialOpenSidebars(configuration, workspaceId) {
77
+ const workspace = configuration.editor.workspaces?.find((candidate) => candidate.id === workspaceId);
78
+ if (workspace?.supportsSidebars && workspace.defaultSidebars?.length) {
79
+ return [...workspace.defaultSidebars];
80
+ }
81
+ return [...(configuration.editor.defaultOpenSidebars ?? [])];
82
+ }
83
+ function isUsableTextSelectionRange(range) {
84
+ return !!(range &&
85
+ range.text?.trim() &&
86
+ typeof range.startOffset === "number" &&
87
+ typeof range.endOffset === "number" &&
88
+ range.startOffset !== range.endOffset &&
89
+ range.fieldId &&
90
+ range.itemId);
91
+ }
92
+ function selectionRangeMatchesField(range, field) {
93
+ if (!range || !field)
94
+ return false;
95
+ return (cleanId(range.fieldId) === cleanId(field.fieldId) &&
96
+ cleanId(range.itemId) === cleanId(field.item.id) &&
97
+ (!range.language || range.language === field.item.language) &&
98
+ (typeof range.version !== "number" || range.version === field.item.version));
99
+ }
66
100
  function reconcileSlotSettingsState(previous, slots, defaults) {
67
101
  const next = {};
68
102
  let changed = false;
@@ -105,7 +139,7 @@ function AgentsSlotContextBridge({ slot }) {
105
139
  function AgentsSlotContextBridgeHost({ slots }) {
106
140
  return (_jsx(_Fragment, { children: slots.map((slot) => (_jsx(AgentsSlotContextBridge, { slot: slot }, `agents-slot-bridge-${slot.slotId}`))) }));
107
141
  }
108
- export function EditorShell({ configuration, className, item: loadItemDescriptor, sessionId, userInfo, userPreferences, initialLicenseStatus, initialLicenseStatusLoaded, parheliaSettings, setUserPreferences, children, }) {
142
+ export function EditorShell({ configuration, className, item: loadItemDescriptor, sessionId, userInfo, userPreferences, initialLicenseStatus, initialLicenseStatusLoaded, parheliaSettings, parheliaSettingsLoaded, setUserPreferences, children, }) {
109
143
  const router = useRouter();
110
144
  const pathname = usePathname();
111
145
  const searchParams = useSearchParams();
@@ -126,12 +160,16 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
126
160
  const contextMenuRef = useRef(null);
127
161
  const editContextRef = useRef(undefined);
128
162
  const [currentOverlay, setCurrentOverlay] = useState();
163
+ const [contextMenuSource, setContextMenuSource] = useState();
129
164
  const [item, setItem] = useState();
130
165
  const [focusedField, setFocusedField] = useState();
131
166
  const focusedFieldRef = useRef(undefined);
132
167
  const [selectedRange, setSelectedRange] = useState();
168
+ const lastTextSelectionRangeRef = useRef(undefined);
133
169
  const [validating, setValidating] = useState(false);
134
170
  const [inserting, setInserting] = useState();
171
+ const [removingComponentIds, setRemovingComponentIds] = useState([]);
172
+ const insertingSequenceRef = useRef(0);
135
173
  const [showFullscreenHint, setShowFullscreenHint] = useState(false);
136
174
  // Fullscreen is a shell-level UI mode. Keep it in EditorShell state so the shell can rerender
137
175
  // immediately when toggled, while still syncing the active slot's PageViewContext.fullscreen.
@@ -176,6 +214,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
176
214
  return [];
177
215
  }
178
216
  });
217
+ const [remoteCarets, setRemoteCarets] = useState({});
179
218
  // Block editing until the server acknowledges our client-info for the current item
180
219
  const [isClientInfoAcknowledged, setIsClientInfoAcknowledged] = useState(false);
181
220
  if (typeof window !== "undefined")
@@ -187,14 +226,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
187
226
  // (Next.js App Router uses startTransition internally for URL changes)
188
227
  const rawWorkspace = useMemo(() => searchParams.get("workspace"), [searchParams]);
189
228
  const isReviewsSidebarRequest = rawWorkspace === "reviews";
190
- const [workspaceId, setWorkspaceId] = useState(
191
- // If workspace=reviews, use "editor" workspace (reviews is a sidebar, not a workspace)
192
- isReviewsSidebarRequest
229
+ const initialWorkspaceId = isReviewsSidebarRequest
193
230
  ? "editor"
194
231
  : (rawWorkspace ??
195
232
  configuration.editor.defaultWorkspace ??
196
233
  configuration.editor.workspaces?.[0]?.id ??
197
- "home"));
234
+ "home");
235
+ const [workspaceId, setWorkspaceId] = useState(initialWorkspaceId);
198
236
  const workspaceIdRef = useRef(workspaceId);
199
237
  useEffect(() => {
200
238
  workspaceIdRef.current = workspaceId;
@@ -212,7 +250,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
212
250
  : sidebarParam.split(",").filter(Boolean);
213
251
  }
214
252
  else {
215
- sidebars = [...(configuration.editor.defaultOpenSidebars ?? [])];
253
+ sidebars = getInitialOpenSidebars(configuration, initialWorkspaceId);
216
254
  }
217
255
  // If workspace=reviews was requested, ensure reviews sidebar is open
218
256
  if (isReviewsSidebarRequest && !sidebars.includes("reviews")) {
@@ -350,6 +388,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
350
388
  const [componentDesignerRendering, setComponentDesignerRendering] = useState();
351
389
  const [insertMode, setInsertMode] = useState(false);
352
390
  const [ignoreBlur, setIgnoreBlur] = useState(false);
391
+ // Timestamp of the most recent pointer-down on a User Manual "Show me" control.
392
+ // Used by the field-blur guard so clicking a field-gated Show me button keeps
393
+ // the focused field (and thus the `.focused-field` anchor + field actions).
394
+ const manualShowMePointerDownAtRef = useRef(0);
353
395
  const [currentItemDescriptor, setCurrentItemDescriptor] = useState();
354
396
  const currentItemDescriptorRef = useRef(undefined);
355
397
  const latestGlobalLoadKeyRef = useRef(null);
@@ -372,6 +414,25 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
372
414
  activeSlotIdRef.current = activeSlotId;
373
415
  }, [activeSlotId]);
374
416
  const [slotContexts, setSlotContexts] = useState(() => new Map());
417
+ const fieldModificationStoresBySlotRef = useRef(new Map());
418
+ const [fieldModificationStoreRegistryRevision, setFieldModificationStoreRegistryRevision,] = useState(0);
419
+ const getFieldModificationStoreForSlot = useCallback((slotId) => {
420
+ let store = fieldModificationStoresBySlotRef.current.get(slotId);
421
+ if (!store) {
422
+ store = new FieldModificationStore();
423
+ fieldModificationStoresBySlotRef.current.set(slotId, store);
424
+ }
425
+ return store;
426
+ }, []);
427
+ const getFieldModificationStores = useCallback(() => {
428
+ return Array.from(fieldModificationStoresBySlotRef.current.values());
429
+ }, []);
430
+ const ensureFieldModificationStoreRegistered = useCallback((slotId) => {
431
+ if (fieldModificationStoresBySlotRef.current.has(slotId))
432
+ return;
433
+ fieldModificationStoresBySlotRef.current.set(slotId, new FieldModificationStore());
434
+ setFieldModificationStoreRegistryRevision((previous) => previous + 1);
435
+ }, []);
375
436
  const promptSessionReconnect = useCallback((reason) => {
376
437
  const description = reason && reason !== "session-revoked"
377
438
  ? `${reason}. Click reconnect to continue in this browser.`
@@ -393,7 +454,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
393
454
  (typeof result.summary === "string" && result.summary.trim()) ||
394
455
  "";
395
456
  toast.error("Reconnect failed", {
396
- description: serverDetail || "Could not claim this browser session. Try again.",
457
+ description: serverDetail ||
458
+ "Could not claim this browser session. Try again.",
397
459
  });
398
460
  },
399
461
  },
@@ -440,13 +502,32 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
440
502
  // The very first URL sync after initial load should replaceState (not pushState)
441
503
  // so the initial bare URL isn't left as a dead-end history entry.
442
504
  const isFirstUrlSyncRef = useRef(true);
443
- const [inlineEditingFieldElement, setInlineEditingFieldElement] = useState();
444
505
  const [lockedField, setLockedField] = useState();
445
506
  const [itemLanguages, setItemLanguages] = useState([]);
446
507
  const [itemVersions, setItemVersions] = useState([]);
447
508
  const [isLoadingVersions, setIsLoadingVersions] = useState(false);
448
- const modifiedFields = useSyncExternalStore((onStoreChange) => fieldModificationStore.subscribeAll(onStoreChange), () => fieldModificationStore.getAllFields(), () => fieldModificationStore.getAllFields());
509
+ const [modifiedFields, setModifiedFields] = useState([]);
510
+ useEffect(() => {
511
+ const stores = getFieldModificationStores();
512
+ const recomputeModifiedFields = () => {
513
+ const next = aggregateModifiedFieldsFromStores(stores);
514
+ setModifiedFields((previous) => areModifiedFieldSnapshotsEqual(previous, next) ? previous : next);
515
+ };
516
+ const unsubscribes = stores.map((store) => store.subscribeAll(recomputeModifiedFields));
517
+ recomputeModifiedFields();
518
+ return () => {
519
+ unsubscribes.forEach((unsubscribe) => unsubscribe());
520
+ };
521
+ }, [
522
+ editorSlots,
523
+ fieldModificationStoreRegistryRevision,
524
+ getFieldModificationStores,
525
+ ]);
449
526
  const [comments, setComments] = useState([]);
527
+ // True once loadComments has succeeded for the current item. Destructive
528
+ // decisions that depend on a suggestion's comment thread (e.g. auto-deleting
529
+ // a reverted no-op suggestion) must not run on the initial empty array.
530
+ const [commentsLoaded, setCommentsLoaded] = useState(false);
450
531
  const [suggestedEdits, setSuggestedEdits] = useState([]);
451
532
  const [showSuggestedEdits, setShowSuggestedEdits] = useState(false);
452
533
  const [showSuggestedEditsDiff, setShowSuggestedEditsDiff] = useState(false);
@@ -465,6 +546,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
465
546
  localStorageService.setItem("editor.showResolvedComments", showResolvedComments);
466
547
  }, [showResolvedComments]);
467
548
  const [selectedComment, setSelectedComment] = useState();
549
+ const [selectedSuggestedEdit, setSelectedSuggestedEdit] = useState();
468
550
  const [browseHistory, setBrowseHistory] = useState(() => {
469
551
  // Convert UserBrowseHistoryEntry[] to HistoryEntry[]
470
552
  if (!userInfo.browseHistory)
@@ -510,13 +592,79 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
510
592
  // moved into useWorkbox
511
593
  // Initialize tour state from URL parameter to survive navigation/remounts
512
594
  // Memoize to avoid triggering Router state updates during render
513
- const tourRestoredFromUrl = useMemo(() => searchParams.get("tour") === "active", [searchParams]);
595
+ const tourRestoredFromUrl = useMemo(() => Boolean(configuration.activeTour) &&
596
+ searchParams.get("tour") === "active", [configuration.activeTour, searchParams]);
514
597
  const [isTourActive, setIsTourActive] = useState(tourRestoredFromUrl);
515
598
  // Track if tour was restored from URL to skip prepareAction on initial render
516
599
  const tourRestoredRef = useRef(tourRestoredFromUrl);
517
- const [mode, setMode] = useState("edit");
600
+ const [mode, setModeState] = useState("edit");
601
+ const modeRef = useRef("edit");
602
+ modeRef.current = mode;
603
+ const modeChangeParticipantsRef = useRef(new Set());
604
+ const loadSuggestedEditsRef = useRef(async () => { });
605
+ const [modeTransitionRevision, setModeTransitionRevision] = useState(0);
518
606
  const [previewDate, setPreviewDate] = useState();
519
607
  const [layoutMode, setLayoutMode] = useState("final");
608
+ const registerModeChangeParticipant = useCallback((participant) => {
609
+ modeChangeParticipantsRef.current.add(participant);
610
+ return () => {
611
+ modeChangeParticipantsRef.current.delete(participant);
612
+ };
613
+ }, []);
614
+ const changeMode = useCallback(async (nextMode, options) => {
615
+ const previousMode = modeRef.current;
616
+ if (nextMode === previousMode)
617
+ return;
618
+ const participants = Array.from(modeChangeParticipantsRef.current);
619
+ for (const participant of participants) {
620
+ await participant.beforeModeChange?.(nextMode, previousMode, options);
621
+ }
622
+ for (const participant of participants) {
623
+ participant.clearInlineDedupe?.(nextMode, previousMode, options);
624
+ }
625
+ flushSync(() => {
626
+ modeRef.current = nextMode;
627
+ setModeState(nextMode);
628
+ setModeTransitionRevision((revision) => revision + 1);
629
+ if (nextMode !== "preview") {
630
+ setPreviewDate(undefined);
631
+ }
632
+ if (nextMode === "suggestions") {
633
+ setShowSuggestedEdits(true);
634
+ setWorkspaceId("editor");
635
+ setShowComments(true);
636
+ }
637
+ });
638
+ if (nextMode === "suggestions") {
639
+ void loadSuggestedEditsRef.current();
640
+ }
641
+ }, []);
642
+ const setMode = useCallback((nextMode) => {
643
+ const resolvedMode = typeof nextMode === "function" ? nextMode(modeRef.current) : nextMode;
644
+ void changeMode(resolvedMode);
645
+ }, [changeMode]);
646
+ const closeFeedbackSuggestionsMode = useCallback(() => {
647
+ setShowComments(false);
648
+ setShowSuggestedEdits(false);
649
+ setShowSuggestedEditsDiff(false);
650
+ if (modeRef.current === "suggestions") {
651
+ void changeMode("edit", { reason: "feedback-sidebar-close" });
652
+ }
653
+ }, [changeMode]);
654
+ const activateCommentsModeForWriting = useCallback(async (reason) => {
655
+ setShowComments(true);
656
+ setShowSuggestedEdits(false);
657
+ setShowSuggestedEditsDiff(false);
658
+ if (modeRef.current === "suggestions") {
659
+ await changeMode("edit", { reason });
660
+ }
661
+ }, [changeMode]);
662
+ const workspaceShowsModeControls = !!configuration.editor.workspaces?.find((workspace) => workspace.id === workspaceId)?.toolbarFactory;
663
+ useEffect(() => {
664
+ if (workspaceShowsModeControls || mode !== "suggestions")
665
+ return;
666
+ void changeMode("edit", { reason: "mode-controls-hidden" });
667
+ }, [changeMode, mode, workspaceId, workspaceShowsModeControls]);
520
668
  useEffect(() => {
521
669
  if (mode !== "preview") {
522
670
  setPreviewDate(undefined);
@@ -535,6 +683,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
535
683
  return userPreferences.showAgentsPanel ?? false;
536
684
  });
537
685
  const [editorFormHiddenDefault, setEditorFormHiddenDefault] = useState(userPreferences.editorFormHidden ?? false);
686
+ // Stable registry that lets layout owners (Splitter panels) report when a
687
+ // reveal surface finished animating, and lets callers await that signal.
688
+ const settleRegistry = useMemo(() => createSettleRegistry(), []);
538
689
  useEffect(() => {
539
690
  setSlotSettingsById((prev) => reconcileSlotSettingsState(prev, editorSlots, {
540
691
  showComponentNavigator: showComponentNavigatorDefault,
@@ -552,6 +703,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
552
703
  const [selectedHelpSectionId, setSelectedHelpSectionId] = useState(null);
553
704
  const [showAgentsWorkspaceEditor, setShowAgentsWorkspaceEditor] = useState(false);
554
705
  const [selectedAgentsWorkspaceAgentId, setSelectedAgentsWorkspaceAgentId] = useState(null);
706
+ const selectedAgentsWorkspaceAgentIdRef = useRef(selectedAgentsWorkspaceAgentId);
707
+ useEffect(() => {
708
+ selectedAgentsWorkspaceAgentIdRef.current = selectedAgentsWorkspaceAgentId;
709
+ }, [selectedAgentsWorkspaceAgentId]);
555
710
  const [activeEditorTab, setActiveEditorTab] = useState(null);
556
711
  const showLayoutParam = useMemo(() => searchParams.get("showLayout") ??
557
712
  searchParams.get("showLayoutComponents"), [searchParams]);
@@ -622,19 +777,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
622
777
  setSelectedHelpSectionId(helpParam === "contents" || helpParam === "true" ? null : helpParam);
623
778
  }
624
779
  }, [searchParams, isInitialLoad]);
625
- useEffect(() => {
626
- if (mode === "suggestions") {
627
- // Ensure we're in the editor workspace and open the feedback sidebar
628
- setWorkspaceId("editor");
629
- // Open the feedback sidebar if not already open
630
- setOpenSidebars((prev) => {
631
- if (!prev.includes("comments")) {
632
- return [...prev, "comments"];
633
- }
634
- return prev;
635
- });
636
- }
637
- }, [mode]);
638
780
  useEffect(() => {
639
781
  if (focusedField &&
640
782
  selection.length > 0 &&
@@ -644,11 +786,23 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
644
786
  }, [selection]);
645
787
  useEffect(() => {
646
788
  focusedFieldRef.current = focusedField;
789
+ const lastTextSelection = lastTextSelectionRangeRef.current;
790
+ if (focusedField &&
791
+ lastTextSelection &&
792
+ (focusedField.fieldId !== lastTextSelection.fieldId ||
793
+ focusedField.item.id !== lastTextSelection.itemId)) {
794
+ lastTextSelectionRangeRef.current = undefined;
795
+ }
647
796
  }, [focusedField]);
797
+ useEffect(() => {
798
+ if (isUsableTextSelectionRange(selectedRange)) {
799
+ lastTextSelectionRangeRef.current = selectedRange;
800
+ }
801
+ }, [selectedRange]);
648
802
  // Track the current page item descriptor for itemsRepository
649
803
  const [currentPageItem, setCurrentPageItem] = useState();
650
804
  // Create itemsRepository with current page item (will be updated when page loads)
651
- const itemsRepository = useItemsRepository(addRecentEdit, currentPageItem);
805
+ const itemsRepository = useItemsRepository(addRecentEdit, currentPageItem, getFieldModificationStores);
652
806
  const fallbackPageViewContext = usePageViewContext({
653
807
  pageItemDescriptor: currentItemDescriptor,
654
808
  itemsRepository,
@@ -682,9 +836,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
682
836
  }, []);
683
837
  const slotContextsRef = useRef(slotContexts);
684
838
  const lastActiveSlotContextRef = useRef(null);
685
- useEffect(() => {
686
- slotContextsRef.current = slotContexts;
687
- }, [slotContexts]);
839
+ slotContextsRef.current = slotContexts;
688
840
  const getActiveSlotContext = useCallback(() => {
689
841
  const activeId = activeSlotIdRef.current;
690
842
  if (!activeId)
@@ -717,7 +869,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
717
869
  const isEditorFormHiddenForSlot = useCallback((slotId) => {
718
870
  if (!slotId)
719
871
  return editorFormHiddenDefault;
720
- return slotSettingsById[slotId]?.editorFormHidden ?? editorFormHiddenDefault;
872
+ return (slotSettingsById[slotId]?.editorFormHidden ?? editorFormHiddenDefault);
721
873
  }, [editorFormHiddenDefault, slotSettingsById]);
722
874
  // Sync global compareMode from the active slot's compareMode for URL syncing
723
875
  useEffect(() => {
@@ -773,6 +925,57 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
773
925
  socketMessageListeners.current.add(callback);
774
926
  return () => socketMessageListeners.current.delete(callback);
775
927
  }, []);
928
+ useEffect(() => {
929
+ const removeListener = addSocketMessageListener((message) => {
930
+ if (message.type !== "caret-position")
931
+ return;
932
+ const payload = message.payload;
933
+ const sessionIdValue = payload?.sessionId?.trim();
934
+ if (!sessionIdValue || sessionIdValue === sessionId)
935
+ return;
936
+ setRemoteCarets((current) => {
937
+ if (payload?.offset == null) {
938
+ if (!current[sessionIdValue])
939
+ return current;
940
+ const next = { ...current };
941
+ delete next[sessionIdValue];
942
+ return next;
943
+ }
944
+ return {
945
+ ...current,
946
+ [sessionIdValue]: {
947
+ sessionId: sessionIdValue,
948
+ fieldId: payload.fieldId,
949
+ item: payload.item,
950
+ offset: payload.offset,
951
+ value: payload.value,
952
+ },
953
+ };
954
+ });
955
+ });
956
+ return () => {
957
+ try {
958
+ removeListener();
959
+ }
960
+ catch { }
961
+ };
962
+ }, [addSocketMessageListener, sessionId]);
963
+ useEffect(() => {
964
+ const activeSessionIds = new Set(activeSessions.map((s) => s.sessionId));
965
+ setRemoteCarets((current) => {
966
+ let changed = false;
967
+ const next = {};
968
+ Object.entries(current).forEach(([caretSessionId, caret]) => {
969
+ if (activeSessionIds.has(caretSessionId)) {
970
+ next[caretSessionId] = caret;
971
+ }
972
+ else {
973
+ changed = true;
974
+ }
975
+ });
976
+ return changed ? next : current;
977
+ });
978
+ }, [activeSessions]);
776
979
  // Listen for batch completion notifications
777
980
  useEffect(() => {
778
981
  const removeListener = addSocketMessageListener((message) => {
@@ -954,6 +1157,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
954
1157
  });
955
1158
  }, [isInitialLoad, searchParams]);
956
1159
  const startTour = useCallback(() => {
1160
+ if (!configuration.activeTour) {
1161
+ return;
1162
+ }
957
1163
  setIsTourActive(true);
958
1164
  // Persist tour state to URL so it survives navigation/remounts
959
1165
  // Use history.replaceState instead of router.replace to avoid triggering React navigation
@@ -961,7 +1167,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
961
1167
  params.set("tour", "active");
962
1168
  const newUrl = `${window.location.pathname}?${params.toString()}`;
963
1169
  window.history.replaceState(getCurrentHistoryState(), "", newUrl);
964
- }, [setIsTourActive]);
1170
+ }, [configuration.activeTour, setIsTourActive]);
965
1171
  const isMobile = useMediaQuery("(max-width: 767px)");
966
1172
  // On mobile, clear all locked sidebars and keep only the last-opened panel.
967
1173
  // Handles viewport resize: desktop -> mobile unlocks everything and trims to one panel.
@@ -1096,6 +1302,14 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1096
1302
  showComponentNavigatorDefault,
1097
1303
  setUserPreferences,
1098
1304
  ]);
1305
+ useEffect(() => {
1306
+ if (workspaceId !== "editor")
1307
+ return;
1308
+ if (mode !== "edit") {
1309
+ setEditorFormHintVisible(false);
1310
+ setMobileEditorPanelOpenRaw(false);
1311
+ }
1312
+ }, [mode, workspaceId]);
1099
1313
  const markEditorFormHintSeen = useCallback(() => {
1100
1314
  setEditorFormHintSeenState(true);
1101
1315
  setUserPreferences({ editorFormHintSeen: true });
@@ -1125,17 +1339,19 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1125
1339
  }, [showHelpTerminal]);
1126
1340
  const toggleHelpTerminal = useCallback((options) => {
1127
1341
  const isCurrentlyOpen = showHelpTerminal;
1128
- if (isCurrentlyOpen && !options?.activeTab) {
1129
- // Close if already open and no specific tab requested
1342
+ const requestedTab = options?.activeTab;
1343
+ if (isCurrentlyOpen &&
1344
+ (!requestedTab || requestedTab === helpTerminalActiveTab)) {
1345
+ // Close when toggling the currently active help view.
1130
1346
  handleSetShowHelpTerminal(false);
1131
1347
  }
1132
1348
  else {
1133
1349
  setHelpTerminalInitialPrompt(options?.initialPrompt);
1134
1350
  setHelpTerminalProfileName(options?.profileName);
1135
- setHelpTerminalActiveTab(options?.activeTab);
1351
+ setHelpTerminalActiveTab(requestedTab);
1136
1352
  handleSetShowHelpTerminal(true);
1137
1353
  }
1138
- }, [showHelpTerminal, handleSetShowHelpTerminal]);
1354
+ }, [showHelpTerminal, helpTerminalActiveTab, handleSetShowHelpTerminal]);
1139
1355
  const handleSetShowAgentsWorkspaceEditor = useCallback((value) => {
1140
1356
  const newValue = typeof value === "function" ? value(showAgentsWorkspaceEditor) : value;
1141
1357
  setShowAgentsWorkspaceEditor(newValue);
@@ -1164,6 +1380,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1164
1380
  setSidebarStacks((prev) => normalizeSidebarStacks(newOrder, prev));
1165
1381
  }, []);
1166
1382
  const ensureSidebarPinned = useCallback((sidebarId) => {
1383
+ if (sidebarId === CONTENT_TREE_SIDEBAR_ID) {
1384
+ return;
1385
+ }
1167
1386
  const currentPinnedSidebars = pinnedSidebarsRef.current;
1168
1387
  if (currentPinnedSidebars.includes(sidebarId)) {
1169
1388
  return;
@@ -1209,7 +1428,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1209
1428
  // Force a reconnect to refresh presence after several failed nudges
1210
1429
  console.warn("Session presence did not recover after retries. Forcing reconnect.");
1211
1430
  try {
1212
- globalThis.editorSocket?.close(4000, "recover-presence");
1431
+ getEditorRealtime().reconnect("recover-presence");
1213
1432
  }
1214
1433
  catch { }
1215
1434
  }
@@ -1258,7 +1477,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1258
1477
  }));
1259
1478
  }
1260
1479
  })
1261
- .catch((error) => console.error("Keep Alive error:", error));
1480
+ .catch((error) => {
1481
+ if (error instanceof TypeError &&
1482
+ error.message === "Failed to fetch") {
1483
+ return;
1484
+ }
1485
+ console.error("Keep Alive error:", error);
1486
+ });
1262
1487
  };
1263
1488
  const keepaliveIntervalMs = (() => {
1264
1489
  const param = new URLSearchParams(window.location.search).get("keepaliveIntervalMs");
@@ -1300,9 +1525,11 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1300
1525
  }
1301
1526
  // Handle sidebar changes — clear when absent so state matches the URL
1302
1527
  const sidebarParam = urlParams.get("sidebar");
1303
- const newSidebars = sidebarParam
1304
- ? sidebarParam.split(",").filter(Boolean)
1305
- : [];
1528
+ const newSidebars = sidebarParam === SIDEBAR_NONE_SENTINEL
1529
+ ? []
1530
+ : sidebarParam
1531
+ ? sidebarParam.split(",").filter(Boolean)
1532
+ : [];
1306
1533
  setOpenSidebars(newSidebars);
1307
1534
  // Handle wizard ID changes
1308
1535
  const wizardId = urlParams.get("wizardid");
@@ -1315,18 +1542,14 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1315
1542
  if (helpParam) {
1316
1543
  setHelpTerminalActiveTab("manual");
1317
1544
  setShowHelpTerminal(true);
1318
- setSelectedHelpSectionId(helpParam === "contents" || helpParam === "true"
1319
- ? null
1320
- : helpParam);
1545
+ setSelectedHelpSectionId(helpParam === "contents" || helpParam === "true" ? null : helpParam);
1321
1546
  }
1322
1547
  else {
1323
1548
  handleSetShowHelpTerminal(false);
1324
1549
  }
1325
1550
  // Handle mode changes — always set to avoid stale-closure mismatch
1326
1551
  const urlMode = urlParams.get("mode");
1327
- if (urlMode) {
1328
- setMode(urlMode);
1329
- }
1552
+ setMode(urlMode ?? "edit");
1330
1553
  // Handle fullscreen changes (shell-level state)
1331
1554
  const isFullscreen = urlParams.get("fullscreen") === "true";
1332
1555
  if (configuration.forceFullscreen) {
@@ -1404,6 +1627,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1404
1627
  return;
1405
1628
  }
1406
1629
  const tour = configuration.activeTour;
1630
+ if (!tour) {
1631
+ return;
1632
+ }
1407
1633
  const key = tour === "default" ? "editor.tourShown" : "editor.tourShown." + tour;
1408
1634
  const tourShown = localStorageService.getString(key);
1409
1635
  if (!tourShown) {
@@ -1481,6 +1707,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1481
1707
  const historyModeRef = useRef(historyMode);
1482
1708
  const itemRef = useRef(item);
1483
1709
  const historySearchQueryRef = useRef(historySearchQuery);
1710
+ const showOnlyMyChangesRef = useRef(showOnlyMyChanges);
1711
+ const filterByCurrentLanguageRef = useRef(filterByCurrentLanguage);
1484
1712
  useEffect(() => {
1485
1713
  historyModeRef.current = historyMode;
1486
1714
  }, [historyMode]);
@@ -1490,6 +1718,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1490
1718
  useEffect(() => {
1491
1719
  historySearchQueryRef.current = historySearchQuery;
1492
1720
  }, [historySearchQuery]);
1721
+ useEffect(() => {
1722
+ showOnlyMyChangesRef.current = showOnlyMyChanges;
1723
+ }, [showOnlyMyChanges]);
1724
+ useEffect(() => {
1725
+ filterByCurrentLanguageRef.current = filterByCurrentLanguage;
1726
+ }, [filterByCurrentLanguage]);
1493
1727
  // Mirror the backend LIKE filter on MainItemPath/Title/Description so that
1494
1728
  // ops arriving via WebSocket while a search is active don't bypass the filter.
1495
1729
  const matchesHistorySearchQuery = useCallback((op) => {
@@ -1543,6 +1777,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1543
1777
  useEffect(() => {
1544
1778
  setRefreshCompletedFlag(!refreshCompletedFlag);
1545
1779
  setInserting(undefined);
1780
+ setRemovingComponentIds([]);
1546
1781
  }, [currentItemDescriptor, activePageViewContext.page?.item.id]);
1547
1782
  useEffect(() => {
1548
1783
  // When the item changes, reset acknowledgment and re-send client info
@@ -1582,21 +1817,27 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1582
1817
  allComments.sort((a, b) => a.position - b.position);
1583
1818
  return allComments;
1584
1819
  });
1820
+ setCommentsLoaded(true);
1585
1821
  }, [currentItemDescriptor, searchParams]);
1586
1822
  // Assuming currentItemDescriptor, ui, state, handleErrorResult, and setSuggestedEdits
1587
1823
  // are available in your component context.
1588
1824
  const loadSuggestedEdits = useCallback(async () => {
1589
1825
  if (!item)
1590
1826
  return;
1591
- const result = await getSuggestedEdits(item.descriptor.id, item.descriptor.language, item.descriptor.version);
1827
+ const reviewId = searchParams.get("reviewId");
1828
+ const result = await getSuggestedEdits(item.descriptor.id, item.descriptor.language, item.descriptor.version, reviewId ?? undefined);
1592
1829
  if (handleErrorResult(result, ui, state))
1593
1830
  return;
1594
- const edits = result.data || [];
1831
+ // A refetch can race a locally reverted suggestion's server delete; don't
1832
+ // resurrect suggestions the user already removed.
1833
+ const edits = (result.data || []).filter((edit) => !isSuggestedEditRemoved(edit.id));
1595
1834
  setSuggestedEdits(edits);
1596
- }, [item]);
1835
+ }, [item, searchParams]);
1836
+ useEffect(() => {
1837
+ loadSuggestedEditsRef.current = loadSuggestedEdits;
1838
+ }, [loadSuggestedEdits]);
1597
1839
  const loadFavorites = useCallback(async () => {
1598
1840
  try {
1599
- const { getAllFavorites } = await import("../services/favouritesService");
1600
1841
  const result = await getAllFavorites();
1601
1842
  if (result.data) {
1602
1843
  setFavorites(result.data);
@@ -1607,6 +1848,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1607
1848
  setFavorites([]);
1608
1849
  }
1609
1850
  }, []);
1851
+ const refreshFavorites = useCallback(async (opts) => {
1852
+ await loadFavorites();
1853
+ }, [loadFavorites]);
1610
1854
  const page = activePageViewContext.page;
1611
1855
  const currentHistoryScope = useMemo(() => {
1612
1856
  const currentItem = item?.descriptor;
@@ -1696,8 +1940,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1696
1940
  (!freshPage || (freshPage?.editRevision ?? "") != (revision ?? ""));
1697
1941
  const newIsRefreshing = isLoading && viewName === "editor";
1698
1942
  setIsRefreshing(newIsRefreshing);
1699
- if (!isLoading)
1943
+ if (!isLoading) {
1700
1944
  setInserting(undefined);
1945
+ setRemovingComponentIds([]);
1946
+ }
1701
1947
  }, [page, viewName, revision, pageModelReadyToken]);
1702
1948
  // moved below to ensure requestRefresh is declared first
1703
1949
  const loadHistory = useDebouncedCallback(async () => {
@@ -1768,6 +2014,34 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1768
2014
  : filterByCurrentLanguage;
1769
2015
  const trimmedHistoryQuery = historySearchQuery.trim();
1770
2016
  const historyQuery = trimmedHistoryQuery.length > 0 ? trimmedHistoryQuery : undefined;
2017
+ const requestMode = currentMode;
2018
+ const requestSearchQuery = trimmedHistoryQuery;
2019
+ const requestItem = item?.descriptor;
2020
+ const requestLanguage = item?.descriptor?.language || currentItemDescriptor?.language;
2021
+ const isStaleHistoryResponse = () => {
2022
+ if (historyModeRef.current !== requestMode)
2023
+ return true;
2024
+ if ((historySearchQueryRef.current || "").trim() !== requestSearchQuery) {
2025
+ return true;
2026
+ }
2027
+ if (showOnlyMyChangesRef.current !== shouldFilterBySession)
2028
+ return true;
2029
+ if (filterByCurrentLanguageRef.current !== shouldFilterByLanguage) {
2030
+ return true;
2031
+ }
2032
+ const latestItem = itemRef.current?.descriptor;
2033
+ if (requestMode !== "global") {
2034
+ return (!latestItem ||
2035
+ !requestItem ||
2036
+ latestItem.id !== requestItem.id ||
2037
+ latestItem.language !== requestItem.language ||
2038
+ latestItem.version !== requestItem.version);
2039
+ }
2040
+ return (shouldFilterByLanguage &&
2041
+ !!requestLanguage &&
2042
+ !!latestItem?.language &&
2043
+ latestItem.language !== requestLanguage);
2044
+ };
1771
2045
  if (currentMode === "global") {
1772
2046
  // Global mode: optionally filter by session and/or language
1773
2047
  const currentLanguage = item?.descriptor?.language || currentItemDescriptor?.language;
@@ -1783,6 +2057,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1783
2057
  console.error("[EditorShell] Failed to load history:", result);
1784
2058
  return;
1785
2059
  }
2060
+ if (isStaleHistoryResponse()) {
2061
+ return;
2062
+ }
1786
2063
  setEditHistory((prev) => {
1787
2064
  const next = normalizeEditHistoryPayload(result.data);
1788
2065
  const scope = {
@@ -1870,6 +2147,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1870
2147
  console.error("[EditorShell] Failed to load item history:", result);
1871
2148
  return;
1872
2149
  }
2150
+ if (isStaleHistoryResponse()) {
2151
+ return;
2152
+ }
1873
2153
  let operations = normalizeEditHistoryPayload(result.data);
1874
2154
  // Client-side version filtering for current-version mode
1875
2155
  if (currentMode === "current-version") {
@@ -1969,6 +2249,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1969
2249
  globalThis.editorRefreshTimer = undefined;
1970
2250
  };
1971
2251
  if (mode === "immediate") {
2252
+ if (refreshTimer) {
2253
+ clearTimeout(refreshTimer);
2254
+ }
1972
2255
  doRefresh();
1973
2256
  return;
1974
2257
  }
@@ -1984,6 +2267,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1984
2267
  useEffect(() => {
1985
2268
  if (!currentItemDescriptor)
1986
2269
  return;
2270
+ // The previous item's comments don't speak for the new one.
2271
+ setCommentsLoaded(false);
1987
2272
  loadComments();
1988
2273
  loadSuggestedEdits();
1989
2274
  }, [currentItemDescriptor]);
@@ -2162,7 +2447,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2162
2447
  else {
2163
2448
  current.set("compare", "true");
2164
2449
  }
2165
- current.set("mode", mode);
2450
+ current.set("mode", workspaceShowsModeControls ? mode : "edit");
2166
2451
  // Handle fullscreen parameter
2167
2452
  if (fullscreen) {
2168
2453
  current.set("fullscreen", "true");
@@ -2186,6 +2471,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2186
2471
  current.delete("ccpanel");
2187
2472
  current.delete("providerId");
2188
2473
  current.delete("modelId");
2474
+ current.delete("projectTemplateId");
2475
+ }
2476
+ if (viewName !== "taskboard") {
2477
+ current.delete("tbView");
2478
+ current.delete("tbProjectId");
2479
+ current.delete("tbTaskId");
2480
+ current.delete("tbWizard");
2189
2481
  }
2190
2482
  // Preserve reviewId parameter if it exists (for review links)
2191
2483
  // This ensures review links don't lose the reviewId when URL is synced
@@ -2263,15 +2555,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2263
2555
  setItem(item);
2264
2556
  if (!item)
2265
2557
  return;
2266
- if (itemRef.current?.descriptor.id === currentItemDescriptor.id &&
2267
- itemRef.current?.descriptor.language ===
2268
- currentItemDescriptor.language &&
2269
- itemRef.current?.descriptor.version !== item.version) {
2270
- showInfoToast({
2271
- summary: "New version!",
2272
- details: "New version of item loaded",
2273
- });
2274
- }
2275
2558
  }
2276
2559
  load();
2277
2560
  }, [itemsRepository.revision]);
@@ -2359,6 +2642,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2359
2642
  (activeSlotIdRef.current == null ||
2360
2643
  existingSlotForItem.slotId === activeSlotIdRef.current)) {
2361
2644
  const isExistingSlotActive = existingSlotForItem.slotId === activeSlotIdRef.current;
2645
+ ensureFieldModificationStoreRegistered(existingSlotForItem.slotId);
2362
2646
  if (isExistingSlotActive) {
2363
2647
  latestGlobalLoadKeyRef.current = requestedItemKey;
2364
2648
  }
@@ -2417,6 +2701,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2417
2701
  : (activeSlotId ?? editorSlots[0]?.slotId ?? null));
2418
2702
  if (!targetSlotId)
2419
2703
  return undefined;
2704
+ ensureFieldModificationStoreRegistered(targetSlotId);
2420
2705
  setEditorSlots((prev) => {
2421
2706
  if (shouldOpenNewSlot && !options?.targetSlotId) {
2422
2707
  const existingIdx = prev.findIndex((s) => s.slotId === targetSlotId);
@@ -2494,6 +2779,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2494
2779
  activeSlotId,
2495
2780
  item,
2496
2781
  workspaceId,
2782
+ ensureFieldModificationStoreRegistered,
2497
2783
  ]);
2498
2784
  const setActiveSlot = useCallback(async (slotId) => {
2499
2785
  if (activeSlotId === slotId)
@@ -2536,6 +2822,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2536
2822
  // Remove the slot
2537
2823
  setEditorSlots((prev) => prev.filter((s) => s.slotId !== slotId));
2538
2824
  unregisterSlotContext(slotId);
2825
+ if (fieldModificationStoresBySlotRef.current.delete(slotId)) {
2826
+ setFieldModificationStoreRegistryRevision((previous) => previous + 1);
2827
+ }
2539
2828
  // Activate the next slot if we closed the active one
2540
2829
  if (isClosingActiveSlot) {
2541
2830
  if (nextActiveSlotId) {
@@ -2580,6 +2869,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2580
2869
  }, [fullscreen, configuration.forceFullscreen, searchParams, isMobile]);
2581
2870
  const state = {
2582
2871
  page,
2872
+ currentItemDescriptor,
2583
2873
  configuration,
2584
2874
  selection,
2585
2875
  setSelection,
@@ -2597,12 +2887,19 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2597
2887
  showOnlyMyChanges,
2598
2888
  historyMode,
2599
2889
  refreshHistory,
2890
+ comments,
2891
+ commentsLoaded,
2600
2892
  suggestedEdits,
2601
2893
  setSuggestedEdits,
2602
2894
  mode,
2603
2895
  layoutMode,
2604
2896
  setFocusFieldComponentId,
2605
2897
  setInsertMode,
2898
+ setInserting,
2899
+ setRemovingComponentIds,
2900
+ getActiveSlotContext,
2901
+ getFieldModificationStoreForSlot,
2902
+ getActiveSlotId,
2606
2903
  };
2607
2904
  useEffect(() => {
2608
2905
  if (currentOverlay !== "fields")
@@ -2610,6 +2907,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2610
2907
  if (currentOverlay !== "context-menu")
2611
2908
  contextMenuRef.current?.close({});
2612
2909
  }, [currentOverlay]);
2910
+ const handleContextMenuOpenChange = useCallback((open) => {
2911
+ if (open)
2912
+ return;
2913
+ setContextMenuSource(undefined);
2914
+ setCurrentOverlay((overlay) => overlay === "context-menu" ? undefined : overlay);
2915
+ }, []);
2613
2916
  useEffect(() => {
2614
2917
  loadItemVersions();
2615
2918
  }, [currentItemDescriptor]);
@@ -2698,10 +3001,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2698
3001
  : op.canUndo;
2699
3002
  const mergedCanRedo = isUndoUpdate
2700
3003
  ? true
2701
- : op.canRedo ?? existingOp.canRedo;
3004
+ : (op.canRedo ?? existingOp.canRedo);
2702
3005
  const mergedUndone = isUndoUpdate
2703
3006
  ? true
2704
- : op.undone ?? existingOp.undone;
3007
+ : (op.undone ?? existingOp.undone);
2705
3008
  const mergedOp = {
2706
3009
  ...existingOp,
2707
3010
  ...op,
@@ -2761,13 +3064,15 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2761
3064
  onOperationExecuted,
2762
3065
  };
2763
3066
  // moved to useMediaSelector
2764
- const { workboxItems } = useWorkbox({
3067
+ const { workboxItems, isWorkboxLoading, refreshWorkbox } = useWorkbox({
2765
3068
  page,
2766
3069
  currentItemDescriptor,
2767
3070
  validate,
2768
3071
  });
2769
- // Ref for markOperationComplete callback (needed because operationsContext is created later)
3072
+ // Refs for operations-context callbacks (needed because operationsContext is created later)
2770
3073
  const markOperationCompleteRef = useRef(null);
3074
+ const addExecutingOperationRef = useRef(null);
3075
+ const updateExecutingOperationProgressRef = useRef(null);
2771
3076
  // WebSocket message handler and connection
2772
3077
  const messageHandler = useSocketMessageHandler({
2773
3078
  sessionId,
@@ -2792,22 +3097,24 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2792
3097
  markOperationComplete: (operationId) => {
2793
3098
  markOperationCompleteRef.current?.(operationId);
2794
3099
  },
3100
+ addExecutingOperation: (operation) => {
3101
+ addExecutingOperationRef.current?.(operation);
3102
+ },
3103
+ updateExecutingOperationProgress: (operationId, progress, statusMessage) => {
3104
+ updateExecutingOperationProgressRef.current?.(operationId, progress, statusMessage);
3105
+ },
3106
+ refreshWorkbox,
2795
3107
  });
2796
3108
  // Concurrent user limit error state
2797
3109
  const [concurrentUserLimitError, setConcurrentUserLimitError] = useState(null);
2798
3110
  concurrentUserLimitErrorRef.current = concurrentUserLimitError;
2799
3111
  const handleRetryConnection = useCallback(() => {
2800
3112
  setConcurrentUserLimitError(null);
2801
- // Force reconnection by triggering a new connection attempt
2802
- // The useEditorWebSocket hook will check availability again
2803
- const socket = globalThis.editorSocket;
2804
- if (socket) {
2805
- socket.close();
2806
- delete globalThis.editorSocket;
2807
- }
2808
- // The hook will automatically attempt to reconnect
3113
+ // Force reconnection by triggering a new connection attempt. Works for either transport:
3114
+ // WebSocket close lets the hook's reconnect loop pick up; SSE re-opens via the reconnect handler.
3115
+ getEditorRealtime().reconnect("retry-connection");
2809
3116
  }, []);
2810
- const { socketRef: socketInstanceRef } = useEditorWebSocket({
3117
+ useEditorWebSocket({
2811
3118
  sessionId,
2812
3119
  onMessage: messageHandler,
2813
3120
  onOpen: async () => {
@@ -2843,14 +3150,16 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2843
3150
  requestQuota: requestQuotaAndUpdate,
2844
3151
  sendClientInfo,
2845
3152
  setSocketDiagnostics,
3153
+ enableWebSocketTransport: parheliaSettings?.enableWebSocketTransport ?? true,
3154
+ enableSseFallback: parheliaSettings?.enableSseFallback ?? true,
3155
+ transportSettingsReady: parheliaSettingsLoaded === true,
2846
3156
  });
2847
3157
  useEffect(() => {
2848
3158
  const hasMySession = activeSessions.some((s) => s.sessionId === sessionId);
2849
- if (hasMySession &&
2850
- socketInstanceRef.current?.readyState === WebSocket.OPEN) {
3159
+ if (hasMySession && getEditorRealtime().isOpen()) {
2851
3160
  toast.dismiss("session-revoked");
2852
3161
  }
2853
- }, [activeSessions, sessionId, socketConnectionVersion, socketInstanceRef]);
3162
+ }, [activeSessions, sessionId, socketConnectionVersion]);
2854
3163
  useEffect(() => {
2855
3164
  const handleRevoked = (event) => {
2856
3165
  const customEvent = event;
@@ -2861,37 +3170,36 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2861
3170
  window.removeEventListener("parhelia:session-revoked", handleRevoked);
2862
3171
  };
2863
3172
  }, [promptSessionReconnect]);
2864
- // Show a single "session expired" toast with a Login action when any
2865
- // service call (or the keepalive check) detects that the user is no
2866
- // longer authenticated. Using a stable toast id coalesces the toast so a
2867
- // burst of failing calls does not spam the UI with duplicate toasts.
2868
- useEffect(() => {
2869
- if (typeof window === "undefined")
2870
- return;
2871
- const handleExpired = () => {
2872
- toast.error("Your session has expired", {
2873
- id: "session-expired",
2874
- description: "Please login again to continue editing.",
2875
- action: {
2876
- label: "Login",
2877
- onClick: () => {
2878
- window.location.href = "/sitecore/login";
3173
+ const sendSocketMessage = useCallback((message) => {
3174
+ if (message.type === "caret-position" &&
3175
+ message.payload?.source === "form-field") {
3176
+ const payload = message.payload;
3177
+ setRemoteCarets((current) => {
3178
+ if (payload.offset == null) {
3179
+ if (!current[sessionId])
3180
+ return current;
3181
+ const next = { ...current };
3182
+ delete next[sessionId];
3183
+ return next;
3184
+ }
3185
+ if (!payload.fieldId || !payload.item) {
3186
+ return current;
3187
+ }
3188
+ return {
3189
+ ...current,
3190
+ [sessionId]: {
3191
+ sessionId,
3192
+ fieldId: payload.fieldId,
3193
+ item: payload.item,
3194
+ offset: payload.offset,
3195
+ value: payload.value,
2879
3196
  },
2880
- },
2881
- duration: Infinity,
3197
+ };
2882
3198
  });
2883
- };
2884
- window.addEventListener("parhelia:session-expired", handleExpired);
2885
- return () => {
2886
- window.removeEventListener("parhelia:session-expired", handleExpired);
2887
- };
2888
- }, []);
2889
- const sendSocketMessage = useCallback((message) => {
2890
- if (socketInstanceRef.current &&
2891
- socketInstanceRef.current.readyState === WebSocket.OPEN) {
2892
- socketInstanceRef.current.send(JSON.stringify(message));
2893
3199
  }
2894
- }, [socketInstanceRef]);
3200
+ // Routes over whichever transport is active (WebSocket preferred, SSE fallback).
3201
+ getEditorRealtime().send(message);
3202
+ }, [sessionId]);
2895
3203
  // URL update helper - defined early so it can be used by workspace/sidebar functions
2896
3204
  const updateUrl = useCallback((params) => {
2897
3205
  // Use the actual browser pathname (including any basePath like /parhelia)
@@ -2925,8 +3233,15 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2925
3233
  if (!result)
2926
3234
  return;
2927
3235
  }
2928
- // Close agents panel when entering page wizard so it doesn't stay open
2929
- if (targetWorkspaceId === "page-wizard") {
3236
+ const targetWorkspace = configuration.editor.workspaces?.find((workspace) => workspace.id === targetWorkspaceId);
3237
+ const agentToCarryIntoEditor = workspaceIdRef.current === "agents" && targetWorkspaceId === "editor"
3238
+ ? selectedAgentsWorkspaceAgentIdRef.current
3239
+ : null;
3240
+ if (agentToCarryIntoEditor) {
3241
+ setActiveAgentConversation(agentToCarryIntoEditor);
3242
+ handleSetShowAgentsPanel(true);
3243
+ }
3244
+ if (targetWorkspace?.closeAgentsPanelOnEnter) {
2930
3245
  handleSetShowAgentsPanel(false);
2931
3246
  }
2932
3247
  // Track previous workspace before switching (use state directly)
@@ -2946,9 +3261,18 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2946
3261
  version: currentDescriptor.version.toString(),
2947
3262
  }
2948
3263
  : {};
3264
+ const taskboardUrlParams = targetWorkspaceId === "taskboard"
3265
+ ? {}
3266
+ : {
3267
+ tbView: undefined,
3268
+ tbProjectId: undefined,
3269
+ tbTaskId: undefined,
3270
+ tbWizard: undefined,
3271
+ };
2949
3272
  updateUrl({
2950
3273
  workspace: targetWorkspaceId,
2951
3274
  ...currentItemUrlParams,
3275
+ ...taskboardUrlParams,
2952
3276
  ...options?.urlParams,
2953
3277
  });
2954
3278
  if (typeof document.startViewTransition === "function") {
@@ -2969,6 +3293,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2969
3293
  addNavigationEntry,
2970
3294
  updateUrl,
2971
3295
  handleSetShowAgentsPanel,
3296
+ configuration.editor.workspaces,
2972
3297
  ]);
2973
3298
  // Helper: get all sidebar IDs that should be preserved (locked sidebars + their stack mates)
2974
3299
  const getPreservedSidebarIds = useCallback(() => {
@@ -2996,7 +3321,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2996
3321
  // Check if this sidebar is part of a multi-member stack
2997
3322
  const currentStacks = sidebarStacksRef.current;
2998
3323
  const stackContainingSidebar = currentStacks.find((stack) => stack.includes(sidebarId));
2999
- const isInMultiMemberStack = stackContainingSidebar && stackContainingSidebar.length > 1;
3324
+ const isInMultiMemberStack = stackContainingSidebar &&
3325
+ stackContainingSidebar.filter((id) => id !== CONTENT_TREE_SIDEBAR_ID)
3326
+ .length > 1;
3000
3327
  // Don't close via icon click if in multi-member stack (unless forceClose is true)
3001
3328
  if (isInMultiMemberStack && !options?.forceClose) {
3002
3329
  return;
@@ -3010,6 +3337,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3010
3337
  if (sidebarId === "agents-panel") {
3011
3338
  setUserPreferences({ showAgentsPanel: false });
3012
3339
  }
3340
+ if (sidebarId === "feedback") {
3341
+ closeFeedbackSuggestionsMode();
3342
+ }
3013
3343
  startTransition(() => {
3014
3344
  updateUrl({ sidebar: sidebarUrlValue(newSidebars) });
3015
3345
  });
@@ -3018,10 +3348,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3018
3348
  // Opening a new sidebar
3019
3349
  // Keep sidebars that are locked OR in a stack with a locked sidebar
3020
3350
  const preservedSet = getPreservedSidebarIds();
3021
- const newSidebars = [
3022
- ...currentOpenSidebars.filter((id) => preservedSet.has(id)), // Keep locked stacks
3023
- sidebarId, // Add the new one
3024
- ];
3351
+ const newSidebars = sidebarId === CONTENT_TREE_SIDEBAR_ID
3352
+ ? [...currentOpenSidebars, sidebarId]
3353
+ : [
3354
+ ...currentOpenSidebars.filter((id) => preservedSet.has(id) || id === CONTENT_TREE_SIDEBAR_ID), // Keep locked stacks and the dedicated tree panel
3355
+ sidebarId, // Add the new one
3356
+ ];
3025
3357
  openSidebarsRef.current = newSidebars;
3026
3358
  setOpenSidebars(newSidebars);
3027
3359
  ensureSidebarPinned(sidebarId);
@@ -3043,6 +3375,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3043
3375
  ensureSidebarPinned,
3044
3376
  setUserPreferences,
3045
3377
  isMobile,
3378
+ closeFeedbackSuggestionsMode,
3046
3379
  ]);
3047
3380
  // Ensure a sidebar is open (without toggling it closed if already open)
3048
3381
  const openSidebar = useCallback((sidebarId, options) => {
@@ -3054,10 +3387,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3054
3387
  const preservedSet = options?.preserveOpenSidebars
3055
3388
  ? undefined
3056
3389
  : getPreservedSidebarIds();
3057
- const newSidebars = options?.preserveOpenSidebars
3390
+ const newSidebars = options?.preserveOpenSidebars || sidebarId === CONTENT_TREE_SIDEBAR_ID
3058
3391
  ? [...currentOpenSidebars, sidebarId]
3059
3392
  : [
3060
- ...currentOpenSidebars.filter((id) => preservedSet?.has(id)),
3393
+ ...currentOpenSidebars.filter((id) => preservedSet?.has(id) || id === CONTENT_TREE_SIDEBAR_ID),
3061
3394
  sidebarId,
3062
3395
  ];
3063
3396
  openSidebarsRef.current = newSidebars;
@@ -3227,9 +3560,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3227
3560
  return false;
3228
3561
  if (!isTaskboardWorkspace && isTaskboardSidebar)
3229
3562
  return false;
3230
- // Always show agents-panel regardless of workspace settings.
3563
+ // Keep agents-panel broadly available, except in dedicated workspaces
3564
+ // that own their full surface.
3231
3565
  if (s.id === "agents-panel") {
3232
- return true;
3566
+ return targetWorkspaceId !== "translation-management";
3233
3567
  }
3234
3568
  // If no workspace settings or no sidebars defined for current workspace, show all.
3235
3569
  if (workspaceAllowedSidebarIds.length === 0) {
@@ -3256,8 +3590,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3256
3590
  };
3257
3591
  }, [getSidebarsForWorkspace, workspaceId]);
3258
3592
  // Track the last workspaceId this effect saw so we only auto-apply
3259
- // `currentWorkspace.defaultSidebars` on an actual workspace change. On initial mount
3260
- // the user's explicit empty state (sidebar=none in URL) must not be overwritten.
3593
+ // `currentWorkspace.defaultSidebars` on actual workspace changes. Initial
3594
+ // workspace defaults are applied by the openSidebars state initializer, while
3595
+ // explicit sidebar URL state such as sidebar=none is still respected.
3261
3596
  const prevWorkspaceIdForDefaultsRef = useRef(null);
3262
3597
  useEffect(() => {
3263
3598
  if (!currentWorkspace.supportsSidebars) {
@@ -3350,42 +3685,67 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3350
3685
  const result = await command.execute(context);
3351
3686
  return result;
3352
3687
  }, [editContextRef, pathname, router, searchParams, openDialog]);
3353
- const operationsContext = getOperationsContext(state, ui);
3688
+ const operationsContext = getOperationsContext({ ...state, refreshWorkbox }, ui);
3354
3689
  const operations = operationsContext.ops;
3355
- // Update the ref for markOperationComplete so the socket handler can access it
3690
+ // Update the refs so the socket handler can access the operations-context callbacks
3356
3691
  useEffect(() => {
3357
3692
  markOperationCompleteRef.current =
3358
3693
  operationsContext.context.markOperationComplete;
3359
- }, [operationsContext.context.markOperationComplete]);
3694
+ addExecutingOperationRef.current =
3695
+ operationsContext.context.addExecutingOperation;
3696
+ updateExecutingOperationProgressRef.current =
3697
+ operationsContext.context.updateExecutingOperationProgress;
3698
+ }, [
3699
+ operationsContext.context.markOperationComplete,
3700
+ operationsContext.context.addExecutingOperation,
3701
+ operationsContext.context.updateExecutingOperationProgress,
3702
+ ]);
3360
3703
  // Replace selected text with new content (for inline AI editing)
3361
- const replaceSelectedText = useCallback(async (newText) => {
3362
- if (!focusedField)
3363
- return;
3704
+ const replaceSelectedText = useCallback(async (newText, selectionOverride) => {
3705
+ const rangeToReplace = selectionOverride ?? selectedRange ?? lastTextSelectionRangeRef.current;
3364
3706
  try {
3365
3707
  // If we have selected text and a replaceText callback, use it
3366
- if (selectedRange?.text && selectedRange.replaceText) {
3367
- selectedRange.replaceText(newText);
3708
+ if (rangeToReplace?.text && rangeToReplace.replaceText) {
3709
+ rangeToReplace.replaceText(newText);
3368
3710
  setSelectedRange(undefined);
3711
+ lastTextSelectionRangeRef.current = undefined;
3369
3712
  return;
3370
3713
  }
3371
3714
  // If no selection but we have a replaceText callback, try to use it for insertion
3372
3715
  // (some editors might support insertion via the same callback)
3373
- if (!selectedRange?.text && selectedRange?.replaceText) {
3374
- selectedRange.replaceText(newText);
3716
+ if (!rangeToReplace?.text && rangeToReplace?.replaceText) {
3717
+ rangeToReplace.replaceText(newText);
3375
3718
  setSelectedRange(undefined);
3719
+ lastTextSelectionRangeRef.current = undefined;
3376
3720
  return;
3377
3721
  }
3722
+ const fieldToReplace = focusedField ??
3723
+ (rangeToReplace?.fieldId &&
3724
+ rangeToReplace.itemId &&
3725
+ rangeToReplace.language &&
3726
+ typeof rangeToReplace.version === "number"
3727
+ ? {
3728
+ fieldId: rangeToReplace.fieldId,
3729
+ item: {
3730
+ id: rangeToReplace.itemId,
3731
+ language: rangeToReplace.language,
3732
+ version: rangeToReplace.version,
3733
+ },
3734
+ }
3735
+ : undefined);
3736
+ if (!fieldToReplace)
3737
+ return;
3378
3738
  // Fallback: indexOf-based replacement/insertion for plain text fields
3379
- const { fieldId, item } = focusedField;
3380
- const modifiedField = fieldModificationStore.getField(fieldId, item.id, item.language, item.version);
3739
+ const { fieldId, item } = fieldToReplace;
3740
+ const modifiedField = getActiveSlotContext()?.fieldModificationStore.getField(fieldId, item.id, item.language, item.version);
3381
3741
  const currentValue = modifiedField
3382
3742
  ? modifiedField.value || ""
3383
- : (await itemsRepository.getField(focusedField))?.value ||
3384
- "";
3743
+ : (await itemsRepository.getField(fieldToReplace))
3744
+ ?.value || "";
3385
3745
  let newValue;
3386
- if (selectedRange?.text) {
3746
+ if (rangeToReplace?.text) {
3387
3747
  // Replace selected text
3388
- const { text: originalSelectedText } = selectedRange;
3748
+ const { text: originalSelectedText } = rangeToReplace;
3389
3749
  const actualPosition = currentValue.indexOf(originalSelectedText);
3390
3750
  if (actualPosition === -1) {
3391
3751
  console.error("Failed to find selected text in field value");
@@ -3398,7 +3758,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3398
3758
  }
3399
3759
  else {
3400
3760
  // Insert at cursor position (use startOffset if available, otherwise append)
3401
- const insertPosition = selectedRange?.startOffset ?? currentValue.length;
3761
+ const insertPosition = rangeToReplace?.startOffset ?? currentValue.length;
3402
3762
  newValue =
3403
3763
  currentValue.slice(0, insertPosition) +
3404
3764
  newText +
@@ -3406,17 +3766,24 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3406
3766
  }
3407
3767
  // Update the field
3408
3768
  await operations.editField({
3409
- field: focusedField,
3769
+ field: fieldToReplace,
3410
3770
  value: newValue,
3411
3771
  refresh: "immediate",
3412
3772
  });
3413
3773
  // Clear the selection after replacement/insertion
3414
3774
  setSelectedRange(undefined);
3775
+ lastTextSelectionRangeRef.current = undefined;
3415
3776
  }
3416
3777
  catch (error) {
3417
3778
  console.error("Failed to replace/insert text:", error);
3418
3779
  }
3419
- }, [selectedRange, focusedField, itemsRepository, operations]);
3780
+ }, [
3781
+ selectedRange,
3782
+ focusedField,
3783
+ itemsRepository,
3784
+ operations,
3785
+ getActiveSlotContext,
3786
+ ]);
3420
3787
  // Insert text at cursor position (for when there's no selection)
3421
3788
  const insertTextAtCursor = useCallback(async (newText) => {
3422
3789
  if (!focusedField)
@@ -3457,7 +3824,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3457
3824
  }
3458
3825
  // Fallback: use field value length (append)
3459
3826
  const { fieldId, item } = focusedField;
3460
- const modifiedField = fieldModificationStore.getField(fieldId, item.id, item.language, item.version);
3827
+ const modifiedField = getActiveSlotContext()?.fieldModificationStore.getField(fieldId, item.id, item.language, item.version);
3461
3828
  const currentValue = modifiedField
3462
3829
  ? modifiedField.value || ""
3463
3830
  : (await itemsRepository.getField(focusedField))?.value ||
@@ -3476,7 +3843,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3476
3843
  catch (error) {
3477
3844
  console.error("Failed to insert text at cursor:", error);
3478
3845
  }
3479
- }, [focusedField, selectedRange, itemsRepository, operations]);
3846
+ }, [
3847
+ focusedField,
3848
+ selectedRange,
3849
+ itemsRepository,
3850
+ operations,
3851
+ getActiveSlotContext,
3852
+ ]);
3480
3853
  // Cleanup pending debounced operations on unmount to prevent stuck "saving" states
3481
3854
  useEffect(() => {
3482
3855
  return () => {
@@ -3490,14 +3863,31 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3490
3863
  setTimeout(() => {
3491
3864
  setIgnoreBlur(false);
3492
3865
  }, 20);
3493
- setFocusedField({ ...field });
3494
3866
  if (requestLock) {
3495
3867
  const lockResult = (await operations.ensureLock(field)) || false;
3496
- return lockResult;
3868
+ if (!lockResult) {
3869
+ return false;
3870
+ }
3871
+ setFocusedField({ ...field });
3872
+ return true;
3497
3873
  }
3874
+ setFocusedField({ ...field });
3498
3875
  }
3499
3876
  else {
3500
- if (!ignoreBlur) {
3877
+ // Keep the field selected when the blur was caused by clicking a User
3878
+ // Manual "Show me" control. Those reveals (e.g. the Reset field action)
3879
+ // gate availability on the `.focused-field` anchor, so dropping the
3880
+ // focused field here would disable the button and hide the very element
3881
+ // being highlighted. A mouse blur fires before the button becomes the
3882
+ // active element, so the guard also accepts a recent pointer-down on the
3883
+ // control (keyboard activation still leaves it as the active element).
3884
+ const focusMovedToShowMe = typeof document !== "undefined" &&
3885
+ isManualShowMeFocusTransfer({
3886
+ activeElement: document.activeElement,
3887
+ lastPointerDownAt: manualShowMePointerDownAtRef.current,
3888
+ now: Date.now(),
3889
+ });
3890
+ if (!ignoreBlur && !focusMovedToShowMe) {
3501
3891
  setFocusedField(undefined);
3502
3892
  setLockedField(undefined); // Clear client-side lock state
3503
3893
  releaseFieldLocks(sessionId);
@@ -3662,8 +4052,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3662
4052
  setNavigationHistory,
3663
4053
  ]);
3664
4054
  useEffect(() => {
3665
- if (typeof window === "undefined" ||
3666
- process.env.PARHELIA_DEV_MODE !== "true") {
4055
+ if (typeof window === "undefined") {
4056
+ return;
4057
+ }
4058
+ const exposeViewportTestApi = process.env.PARHELIA_DEV_MODE === "true" ||
4059
+ window.localStorage?.getItem("__parheliaViewportTestApi") === "true";
4060
+ if (!exposeViewportTestApi) {
3667
4061
  return;
3668
4062
  }
3669
4063
  window.__parheliaQuickSwitcherTestApi = {
@@ -3872,18 +4266,24 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3872
4266
  };
3873
4267
  }
3874
4268
  }, [operations.onFieldBlur]);
4269
+ // Record pointer-downs on User Manual "Show me" controls before the field
4270
+ // blur fires, so the blur guard above can keep the focused field for
4271
+ // field-gated reveals regardless of focus/activeElement timing.
3875
4272
  useEffect(() => {
3876
- if (mode === "suggestions") {
3877
- setShowSuggestedEdits(true);
3878
- // Refresh from the server to recover from any missed
3879
- // `suggested-edit-updated` WebSocket events (e.g. created by an
3880
- // agent tool while another tab was focused).
3881
- loadSuggestedEdits();
3882
- }
3883
- else {
3884
- setShowSuggestedEdits(false);
3885
- }
3886
- }, [mode, loadSuggestedEdits]);
4273
+ if (typeof document === "undefined")
4274
+ return;
4275
+ const handlePointerDown = (event) => {
4276
+ if (isManualShowMeTarget(event.target)) {
4277
+ manualShowMePointerDownAtRef.current = Date.now();
4278
+ }
4279
+ };
4280
+ document.addEventListener("pointerdown", handlePointerDown, true);
4281
+ document.addEventListener("mousedown", handlePointerDown, true);
4282
+ return () => {
4283
+ document.removeEventListener("pointerdown", handlePointerDown, true);
4284
+ document.removeEventListener("mousedown", handlePointerDown, true);
4285
+ };
4286
+ }, []);
3887
4287
  const isReadOnly = !item ||
3888
4288
  !item.canWriteItem ||
3889
4289
  !item.canWriteLanguage ||
@@ -3902,15 +4302,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3902
4302
  // Otherwise, only show workspaces that are in the settings
3903
4303
  return workspaceIdsFromSettings.includes(w.id) && !w.visible;
3904
4304
  });
3905
- // Handle initial mode setup from URL (only on initial load)
3906
- useEffect(() => {
3907
- if (!isInitialLoad)
3908
- return;
3909
- const queryMode = searchParams.get("mode");
3910
- if (queryMode) {
3911
- setMode(queryMode);
3912
- }
3913
- }, [searchParams, isInitialLoad]);
3914
4305
  // Add this new effect for initial fullscreen setup
3915
4306
  useEffect(() => {
3916
4307
  if (!isInitialLoad)
@@ -3920,6 +4311,19 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3920
4311
  activePageViewContext.setFullscreen(isFullscreen);
3921
4312
  }
3922
4313
  }, [searchParams, isInitialLoad, activePageViewContext]);
4314
+ useEffect(() => {
4315
+ if (typeof window === "undefined" ||
4316
+ process.env.PARHELIA_DEV_MODE !== "true") {
4317
+ return;
4318
+ }
4319
+ window.__parheliaViewportTestApi = {
4320
+ setZoom: (zoom) => activePageViewContext.setZoom(zoom),
4321
+ getZoom: () => activePageViewContext.zoom,
4322
+ };
4323
+ return () => {
4324
+ delete window.__parheliaViewportTestApi;
4325
+ };
4326
+ }, [activePageViewContext]);
3923
4327
  // Simple registry for per-view context factories (e.g., GraphQL context)
3924
4328
  // Stored outside the EditContext object via ref to avoid re-renders
3925
4329
  if (!globalThis.__editorContextFactoriesRef) {
@@ -3988,6 +4392,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3988
4392
  clipboard,
3989
4393
  setClipboard,
3990
4394
  workboxItems,
4395
+ isWorkboxLoading,
4396
+ refreshWorkbox,
3991
4397
  requestRefresh,
3992
4398
  refreshCompletedFlag,
3993
4399
  openCreatePageDialog: () => {
@@ -4015,8 +4421,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4015
4421
  setScrollIntoView,
4016
4422
  focusedField,
4017
4423
  setFocusedField: setFocusedFieldWithLock,
4018
- getComponentCommands: async (components) => {
4019
- return await getComponentCommands(components, editContext);
4424
+ getComponentCommands: async (components, providerContext) => {
4425
+ return await getComponentCommands(components, editContext, providerContext);
4020
4426
  },
4021
4427
  dragStart: (dragObject) => {
4022
4428
  setDragObject(dragObject);
@@ -4024,16 +4430,11 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4024
4430
  dragEnd: () => {
4025
4431
  setDragObject(undefined);
4026
4432
  },
4027
- droppedInPlaceholder: async (placeholderKey, index, spotPositionElement, spotPositionAnchor, insertOption) => {
4028
- if ((!dragObject && !insertOption) || !page)
4433
+ droppedInPlaceholder: async (placeholderKey, index, spotPositionElement, spotPositionAnchor, insertOption, spotPosition, color) => {
4434
+ const droppedDragObject = dragObject;
4435
+ if ((!droppedDragObject && !insertOption) || !page)
4029
4436
  return;
4030
4437
  setDragObject(undefined);
4031
- if (spotPositionElement && spotPositionAnchor) {
4032
- setInserting({
4033
- positionElement: spotPositionElement,
4034
- positionAnchor: spotPositionAnchor,
4035
- });
4036
- }
4037
4438
  const placeholderKeyComponents = placeholderKey.split("_");
4038
4439
  const parentId = placeholderKeyComponents.length === 1
4039
4440
  ? undefined
@@ -4043,39 +4444,32 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4043
4444
  let op;
4044
4445
  if (!currentItemDescriptorRef.current)
4045
4446
  return;
4447
+ let insertionSequence;
4448
+ if ((spotPosition || spotPositionElement) && spotPositionAnchor) {
4449
+ insertionSequence = ++insertingSequenceRef.current;
4450
+ setInserting({
4451
+ position: spotPosition,
4452
+ positionElement: spotPositionElement,
4453
+ positionAnchor: spotPositionAnchor,
4454
+ color,
4455
+ });
4456
+ }
4457
+ let operationPromise;
4046
4458
  if (insertOption) {
4047
4459
  // Clear any selected component type for insertion once the component
4048
4460
  // has been dropped into a placeholder. This ensures that insert mode
4049
4461
  // can exit cleanly and the editor header updates from "Add Component"
4050
4462
  // to the actual component name after the operation completes.
4051
4463
  setSelectedForInsertion("");
4052
- operations
4053
- .addComponent(insertOption.typeId, placeholderKey, index, currentItemDescriptorRef.current)
4054
- .then((result) => {
4055
- setInserting(undefined);
4056
- })
4057
- .catch((err) => {
4058
- setInserting(undefined);
4059
- });
4060
- return;
4464
+ operationPromise = operations.addComponent(insertOption.typeId, placeholderKey, index, currentItemDescriptorRef.current, { showIndicator: false });
4061
4465
  }
4062
- if (!dragObject)
4063
- return;
4064
- if (dragObject && dragObject.type == "template") {
4065
- operations
4066
- .addComponent(dragObject.typeId, placeholderKey, index, currentItemDescriptorRef.current)
4067
- .then((result) => {
4068
- setInserting(undefined);
4069
- })
4070
- .catch((err) => {
4071
- setInserting(undefined);
4072
- });
4073
- return;
4466
+ else if (droppedDragObject?.type == "template") {
4467
+ operationPromise = operations.addComponent(droppedDragObject.typeId, placeholderKey, index, currentItemDescriptorRef.current, { showIndicator: false });
4074
4468
  }
4075
- if (dragObject.type == "component" ||
4076
- (dragObject.type == "items" && dragObject.items)) {
4469
+ else if (droppedDragObject?.type == "component" ||
4470
+ (droppedDragObject?.type == "items" && droppedDragObject.items)) {
4077
4471
  const parentComponent = parentId && page ? getComponentById(parentId, page) : null;
4078
- if (dragObject.type == "items" && dragObject.items) {
4472
+ if (droppedDragObject.type == "items" && droppedDragObject.items) {
4079
4473
  op = {
4080
4474
  type: "link-component",
4081
4475
  mainItem: page.item.descriptor,
@@ -4089,33 +4483,52 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4089
4483
  placeholderIndex: index,
4090
4484
  date: new Date().toISOString(),
4091
4485
  id: uuid(),
4092
- linkedComponentItem: dragObject.items[0],
4486
+ linkedComponentItem: droppedDragObject.items[0],
4093
4487
  title: "Link component",
4094
4488
  };
4095
4489
  }
4096
4490
  else {
4097
- const componentIds = dragObject.components?.map((c) => c.id) ?? [];
4098
- if (componentIds.length === 0)
4099
- return;
4100
- op = {
4101
- type: "move-component",
4102
- mainItem: page.item.descriptor,
4103
- parent: parentId && {
4104
- id: parentId,
4105
- language: page.item.descriptor.language,
4106
- version: page.item.descriptor.version,
4107
- },
4108
- placeholderKey,
4109
- placeholderIndex: index,
4110
- componentIds,
4111
- date: new Date().toISOString(),
4112
- id: uuid(),
4113
- title: "Move component",
4114
- };
4491
+ const componentIds = droppedDragObject.components?.map((c) => c.id) ?? [];
4492
+ if (componentIds.length > 0) {
4493
+ op = {
4494
+ type: "move-component",
4495
+ mainItem: page.item.descriptor,
4496
+ parent: parentId && {
4497
+ id: parentId,
4498
+ language: page.item.descriptor.language,
4499
+ version: page.item.descriptor.version,
4500
+ },
4501
+ placeholderKey,
4502
+ placeholderIndex: index,
4503
+ componentIds,
4504
+ date: new Date().toISOString(),
4505
+ id: uuid(),
4506
+ title: "Move component",
4507
+ };
4508
+ }
4115
4509
  }
4116
4510
  }
4117
4511
  if (op)
4118
- operations.executeEditOperation(op);
4512
+ operationPromise = operations.executeEditOperation(op);
4513
+ if (!operationPromise) {
4514
+ if (insertionSequence !== undefined &&
4515
+ insertingSequenceRef.current === insertionSequence) {
4516
+ setInserting(undefined);
4517
+ }
4518
+ return;
4519
+ }
4520
+ try {
4521
+ await operationPromise;
4522
+ }
4523
+ catch (err) {
4524
+ console.error("Failed to drop component in placeholder", err);
4525
+ }
4526
+ finally {
4527
+ if (insertionSequence !== undefined &&
4528
+ insertingSequenceRef.current === insertionSequence) {
4529
+ setInserting(undefined);
4530
+ }
4531
+ }
4119
4532
  },
4120
4533
  page,
4121
4534
  triggerFieldAction: async (fieldDescriptor, actionButton, parameters, event) => {
@@ -4251,8 +4664,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4251
4664
  : x));
4252
4665
  },
4253
4666
  activeFieldActions,
4254
- showContextMenu: (event, items) => {
4667
+ showContextMenu: (event, items, options) => {
4255
4668
  contextMenuRef.current?.show(event, items);
4669
+ setContextMenuSource(options?.source);
4256
4670
  setCurrentOverlay("context-menu");
4257
4671
  },
4258
4672
  updateContextMenu: (items) => {
@@ -4263,6 +4677,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4263
4677
  fieldEditorPopupRef.current?.show(fields, sections, ev);
4264
4678
  },
4265
4679
  inserting,
4680
+ removingComponentIds,
4266
4681
  validating,
4267
4682
  validationResult,
4268
4683
  loadItem,
@@ -4278,6 +4693,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4278
4693
  refreshHistory,
4279
4694
  isRefreshing,
4280
4695
  activeSessions,
4696
+ remoteCarets,
4281
4697
  unlockField: async () => {
4282
4698
  setLockedField(undefined); // Clear client-side lock state
4283
4699
  await releaseFieldLocks(sessionId);
@@ -4340,6 +4756,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4340
4756
  insertMode,
4341
4757
  setInsertMode,
4342
4758
  currentOverlay,
4759
+ contextMenuSource,
4343
4760
  setCurrentOverlay,
4344
4761
  lockedField,
4345
4762
  timings,
@@ -4377,6 +4794,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4377
4794
  unregisterSlotContext,
4378
4795
  getActiveSlotContext,
4379
4796
  getActiveSlotId,
4797
+ getFieldModificationStoreForSlot,
4380
4798
  closeEditorSlot,
4381
4799
  setActiveSlot,
4382
4800
  revision,
@@ -4384,7 +4802,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4384
4802
  pageModelReadyToken,
4385
4803
  selectedComment,
4386
4804
  setSelectedComment,
4805
+ selectedSuggestedEdit,
4806
+ setSelectedSuggestedEdit,
4387
4807
  comments,
4808
+ commentsLoaded,
4388
4809
  availableCommentTags,
4389
4810
  loadComments,
4390
4811
  setComments,
@@ -4392,27 +4813,60 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4392
4813
  setShowComments,
4393
4814
  showResolvedComments,
4394
4815
  setShowResolvedComments,
4395
- addComment: async () => {
4816
+ addComment: async (options) => {
4396
4817
  const descriptor = item?.descriptor;
4397
4818
  if (!descriptor)
4398
4819
  return;
4820
+ // Only keep a single empty draft comment at a time. Clicking
4821
+ // "add comment" again while an unsaved draft already exists should
4822
+ // focus that draft instead of stacking up more empty inputs.
4823
+ const existingDraft = comments.find((c) => c.isNew);
4824
+ if (existingDraft) {
4825
+ await activateCommentsModeForWriting("comment-add");
4826
+ setSelectedComment(existingDraft);
4827
+ setSelectedSuggestedEdit(undefined);
4828
+ return;
4829
+ }
4399
4830
  // Snapshot selection context up-front so switching views doesn't change what we comment on.
4831
+ const hintedFieldSnapshot = options?.field;
4400
4832
  const focusedFieldSnapshot = focusedFieldRef.current;
4401
- const selectionSnapshot = [...selection];
4402
- const selectedRangeSnapshot = selectedRange;
4403
- const itemId = focusedFieldSnapshot?.item.id ||
4404
- (selectionSnapshot.length > 0 ? selectionSnapshot[0] : undefined) ||
4833
+ const selectedRangeCandidate = isUsableTextSelectionRange(selectedRange)
4834
+ ? selectedRange
4835
+ : lastTextSelectionRangeRef.current;
4836
+ const selectedRangeSnapshot = !hintedFieldSnapshot ||
4837
+ selectionRangeMatchesField(selectedRangeCandidate, hintedFieldSnapshot)
4838
+ ? selectedRangeCandidate
4839
+ : undefined;
4840
+ const selectedRangeFieldSnapshot = isUsableTextSelectionRange(selectedRangeSnapshot)
4841
+ ? {
4842
+ fieldId: selectedRangeSnapshot.fieldId,
4843
+ item: {
4844
+ id: selectedRangeSnapshot.itemId,
4845
+ language: selectedRangeSnapshot.language || descriptor.language,
4846
+ version: typeof selectedRangeSnapshot.version === "number"
4847
+ ? selectedRangeSnapshot.version
4848
+ : descriptor.version,
4849
+ },
4850
+ }
4851
+ : undefined;
4852
+ const commentFieldSnapshot = selectedRangeFieldSnapshot ??
4853
+ hintedFieldSnapshot ??
4854
+ focusedFieldSnapshot;
4855
+ const itemId = commentFieldSnapshot?.item.id ||
4856
+ (selection.length > 0 ? selection[0] : undefined) ||
4405
4857
  descriptor.id;
4406
4858
  if (!itemId)
4407
4859
  return;
4408
- // Ensure the feedback sidebar is open when adding a comment (e.g. command palette / toolbar button).
4409
- openSidebar("feedback");
4410
- const language = descriptor.language;
4411
- const version = descriptor.version;
4860
+ // Ensure the promoted comments surface is active when adding a comment.
4861
+ await activateCommentsModeForWriting("comment-add");
4862
+ const language = commentFieldSnapshot?.item.language || descriptor.language;
4863
+ const version = typeof commentFieldSnapshot?.item.version === "number"
4864
+ ? commentFieldSnapshot.item.version
4865
+ : descriptor.version;
4412
4866
  const getFieldName = async () => {
4413
- if (!focusedFieldSnapshot)
4867
+ if (!commentFieldSnapshot)
4414
4868
  return "";
4415
- const field = await itemsRepository.getField(focusedFieldSnapshot);
4869
+ const field = await itemsRepository.getField(commentFieldSnapshot);
4416
4870
  return field?.name;
4417
4871
  };
4418
4872
  const getItemName = async () => {
@@ -4428,24 +4882,40 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4428
4882
  isNew: true,
4429
4883
  itemId,
4430
4884
  itemName: await getItemName(),
4431
- fieldId: focusedFieldSnapshot?.fieldId,
4885
+ fieldId: commentFieldSnapshot?.fieldId,
4432
4886
  fieldName: await getFieldName(),
4433
4887
  mainItemId: descriptor.id,
4434
4888
  language,
4435
4889
  version,
4436
4890
  position: 0,
4437
- rangeStart: selectedRangeSnapshot?.startOffset || 0,
4438
- rangeEnd: selectedRangeSnapshot?.endOffset || 0,
4891
+ rangeStart: isUsableTextSelectionRange(selectedRangeSnapshot)
4892
+ ? selectedRangeSnapshot.startOffset
4893
+ : 0,
4894
+ rangeEnd: isUsableTextSelectionRange(selectedRangeSnapshot)
4895
+ ? selectedRangeSnapshot.endOffset
4896
+ : 0,
4439
4897
  author: user?.name,
4440
4898
  authorDisplayName: user?.fullName,
4441
- date: new Date().toISOString(),
4899
+ created: new Date().toISOString(),
4442
4900
  };
4901
+ if (selectedRangeSnapshot?.clientRect) {
4902
+ newComment[COMMENT_TRANSIENT_SELECTION_RECT] =
4903
+ selectedRangeSnapshot.clientRect;
4904
+ }
4905
+ if (selectedRangeSnapshot?.elementKey) {
4906
+ newComment[COMMENT_TRANSIENT_ELEMENT_KEY] =
4907
+ selectedRangeSnapshot.elementKey;
4908
+ }
4443
4909
  setComments([newComment, ...comments]);
4444
4910
  setSelectedComment(newComment);
4445
- setShowComments(true);
4911
+ setSelectedSuggestedEdit(undefined);
4912
+ lastTextSelectionRangeRef.current = undefined;
4446
4913
  },
4447
4914
  mode,
4915
+ changeMode,
4448
4916
  setMode,
4917
+ registerModeChangeParticipant,
4918
+ modeTransitionRevision,
4449
4919
  previewDate,
4450
4920
  setPreviewDate,
4451
4921
  layoutMode,
@@ -4470,6 +4940,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4470
4940
  setComponentNavigatorOpenForSlot,
4471
4941
  showAgentsPanel,
4472
4942
  setShowAgentsPanel: handleSetShowAgentsPanel,
4943
+ waitForSurfaceSettled: settleRegistry.waitForSurfaceSettled,
4944
+ notifySurfaceSettled: settleRegistry.notifySettled,
4473
4945
  isEditorFormHiddenForSlot,
4474
4946
  setEditorFormHiddenForSlot,
4475
4947
  editorFormHintSeen,
@@ -4513,6 +4985,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4513
4985
  setCurrentWizardId,
4514
4986
  favorites,
4515
4987
  loadFavorites,
4988
+ refreshFavorites,
4516
4989
  isQuickSwitcherVisible: quickSwitcherVisible,
4517
4990
  // Context factory registry methods
4518
4991
  registerContextFactory: (name, factory) => {
@@ -4557,6 +5030,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4557
5030
  dragObject,
4558
5031
  clipboard,
4559
5032
  workboxItems,
5033
+ isWorkboxLoading,
5034
+ refreshWorkbox,
4560
5035
  requestRefresh,
4561
5036
  refreshCompletedFlag,
4562
5037
  searchParams,
@@ -4591,6 +5066,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4591
5066
  componentDesignerRendering,
4592
5067
  insertMode,
4593
5068
  currentOverlay,
5069
+ contextMenuSource,
4594
5070
  lockedField,
4595
5071
  timings,
4596
5072
  selectedRange,
@@ -4603,12 +5079,15 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4603
5079
  addSocketMessageListener,
4604
5080
  sendSocketMessage,
4605
5081
  socketConnectionVersion,
5082
+ removingComponentIds,
4606
5083
  currentItemDescriptor,
4607
5084
  revision,
4608
5085
  notifyPageModelReady,
4609
5086
  pageModelReadyToken,
4610
5087
  selectedComment,
5088
+ selectedSuggestedEdit,
4611
5089
  comments,
5090
+ commentsLoaded,
4612
5091
  availableCommentTags,
4613
5092
  loadComments,
4614
5093
  showComments,
@@ -4620,15 +5099,22 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4620
5099
  isRefreshing,
4621
5100
  favorites,
4622
5101
  loadFavorites,
5102
+ refreshFavorites,
4623
5103
  currentWizardId,
4624
5104
  quickSwitcherVisible,
4625
5105
  quickSwitcherSelectedIndex,
4626
5106
  handleQuickSwitcherSelect,
4627
5107
  webSocketMessages,
4628
5108
  socketDiagnostics,
5109
+ remoteCarets,
4629
5110
  factoriesRef,
4630
5111
  user,
4631
5112
  statusMessage,
5113
+ activateCommentsModeForWriting,
5114
+ changeMode,
5115
+ setMode,
5116
+ registerModeChangeParticipant,
5117
+ modeTransitionRevision,
4632
5118
  previewDate,
4633
5119
  layoutMode,
4634
5120
  enableCompletions,
@@ -4644,7 +5130,11 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4644
5130
  handleSetShowComponentNavigator,
4645
5131
  showAgentsPanel,
4646
5132
  handleSetShowAgentsPanel,
5133
+ settleRegistry,
4647
5134
  activeSlotId,
5135
+ editorSlots,
5136
+ slotContexts,
5137
+ getFieldModificationStoreForSlot,
4648
5138
  isEditorFormHiddenForSlot,
4649
5139
  setEditorFormHiddenForSlot,
4650
5140
  editorFormHintSeen,
@@ -4681,9 +5171,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4681
5171
  const fieldsEditContext = {
4682
5172
  modifiedFields,
4683
5173
  recentEdits,
4684
- clearModifiedFields: () => {
4685
- fieldModificationStore.clear();
4686
- },
4687
5174
  clearRecentEdits: () => {
4688
5175
  setRecentEdits([]);
4689
5176
  },
@@ -4694,8 +5181,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4694
5181
  setLockedField(undefined); // Clear client-side lock state
4695
5182
  await releaseFieldLocks(sessionId);
4696
5183
  },
4697
- inlineEditingFieldElement,
4698
- setInlineEditingFieldElement,
4699
5184
  };
4700
5185
  // Debug: Track editContext changes
4701
5186
  // const prevDependencies = useRef<any[]>([]);
@@ -4734,7 +5219,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4734
5219
  // componentDesignerRendering,
4735
5220
  // insertMode,
4736
5221
  // currentOverlay,
4737
- // inlineEditingFieldElement,
4738
5222
  // lockedField,
4739
5223
  // selectedRange,
4740
5224
  // pageViewContext,
@@ -4822,7 +5306,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4822
5306
  // 'componentDesignerRendering',
4823
5307
  // 'insertMode',
4824
5308
  // 'currentOverlay',
4825
- // 'inlineEditingFieldElement',
4826
5309
  // 'lockedField',
4827
5310
  // 'selectedRange',
4828
5311
  // 'pageViewContext',
@@ -4911,7 +5394,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4911
5394
  // Auto-open the mobile editor panel for new selection/intent changes, but
4912
5395
  // keep a manual close sticky for the exact same context.
4913
5396
  useEffect(() => {
4914
- if (!isMobile || workspaceId !== "editor")
5397
+ if (!isMobile || workspaceId !== "editor" || mode !== "edit")
4915
5398
  return;
4916
5399
  if (activeEditorTab) {
4917
5400
  handleSetMobileEditorPanelOpen(true);
@@ -4929,19 +5412,17 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4929
5412
  insertMode,
4930
5413
  isMobile,
4931
5414
  mobilePanelDismissToken,
5415
+ mode,
4932
5416
  selection,
4933
5417
  workspaceId,
4934
5418
  ]);
4935
- useEffect(() => {
4936
- fieldsEditContext.clearModifiedFields();
4937
- }, [currentItemDescriptor]);
4938
5419
  if (!currentWorkspace)
4939
5420
  return null;
4940
- const editorUi = fullscreen ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "fixed inset-0 flex", children: [_jsx(PageViewerFrame, { compareView: compareMode, pageViewContext: activePageViewContext }), _jsx(FullscreenControls, { device: activePageViewContext.device, setDevice: (d) => activePageViewContext.setDevice(d), canExit: !configuration.forceFullscreen, onExit: () => setFullscreen(false), firstMobileDeviceName: configuration.devices[0]?.name })] }), showFullscreenHint && !configuration.forceFullscreen && !isMobile && (_jsx("div", { className: "fixed inset-0 z-10000", onMouseMoveCapture: () => {
5421
+ const editorUi = fullscreen ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 flex", children: _jsx(PageViewerFrame, { compareView: compareMode, pageViewContext: activePageViewContext }) }), showFullscreenHint && !configuration.forceFullscreen && !isMobile && (_jsx("div", { className: "fixed inset-0 z-10000", onMouseMoveCapture: () => {
4941
5422
  setTimeout(() => {
4942
5423
  setShowFullscreenHint(false);
4943
5424
  }, 600);
4944
- }, "data-testid": "fullscreen-hint-overlay", children: _jsxs("div", { className: "fixed top-6 left-1/2 -translate-x-1/2 transform rounded-full bg-black/60 px-6 py-2.5 text-sm font-medium text-white shadow-2xl backdrop-blur-md transition-all duration-500", children: ["Press", " ", _jsx("kbd", { className: "mx-1 rounded bg-white/20 px-1.5 py-0.5 text-xs font-semibold", children: "Ctrl + F11" }), " ", "to exit fullscreen"] }) }))] })) : (_jsxs(_Fragment, { children: [_jsx(EditorChrome, { className: className, currentWorkspace: currentWorkspace, centerPanelView: centerPanelView, editContext: editContext, showAgentsPanel: showAgentsPanel, handleSetShowAgentsPanel: handleSetShowAgentsPanel, workspaceId: workspaceId }), isTourActive && (_jsx(Tour, { tourStopCallback: () => {
5425
+ }, "data-testid": "fullscreen-hint-overlay", children: _jsxs("div", { className: "bg-neutral-grey-100/60 fixed top-6 left-1/2 -translate-x-1/2 transform rounded-full px-6 py-2.5 text-sm font-medium text-white shadow-2xl backdrop-blur-md transition-all duration-500", children: ["Press", " ", _jsx("kbd", { className: "badge-pad-sm mx-1 rounded bg-white/20 text-xs font-medium", children: "Ctrl + F11" }), " ", "to exit fullscreen"] }) }))] })) : (_jsxs(_Fragment, { children: [_jsx(EditorChrome, { className: className, currentWorkspace: currentWorkspace, centerPanelView: centerPanelView, editContext: editContext, showAgentsPanel: showAgentsPanel, handleSetShowAgentsPanel: handleSetShowAgentsPanel, workspaceId: workspaceId }), isTourActive && configuration.activeTour && (_jsx(Tour, { tourStopCallback: () => {
4945
5426
  setIsTourActive(false);
4946
5427
  // Remove tour state from URL
4947
5428
  // Use history.replaceState instead of router.replace to avoid triggering React navigation
@@ -4953,12 +5434,14 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4953
5434
  : window.location.pathname;
4954
5435
  window.history.replaceState(getCurrentHistoryState(), "", newUrl);
4955
5436
  }, configuration: configuration, restoredFromUrl: tourRestoredRef.current })), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(GuidanceOverlay, {}) }), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(AgentDialogHandler, {}) })] }));
4956
- return (_jsx(LicenseProvider, { initialLicenseStatus: initialLicenseStatus, initialStatusLoaded: initialLicenseStatusLoaded, children: _jsx("div", { className: `editor h-full w-full`, children: _jsx(OperationsContextProvider, { value: operationsContext.context, children: _jsx(FieldsEditContextProvider, { value: fieldsEditContext, children: _jsx(EditContextProvider, { value: editContext, children: _jsxs(SplashScreenAgentProvider, { children: [_jsx(DevModeIndicator, {}), startupChecks.state === "loading" && (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-white/70 backdrop-blur-[1px]", children: _jsx("div", { className: "flex items-center gap-3 rounded-md border border-gray-200 bg-white px-4 py-3 text-gray-700 shadow-sm", children: _jsx(Spinner, { size: "xl" }) }) })), editContext.isRefreshing && (_jsx("div", { className: "pointer-events-none fixed right-0 bottom-0 flex h-24 w-24 items-center justify-center text-gray-600 opacity-50 select-none", children: _jsx(Spinner, {}) })), (currentWorkspace.id === "agents" ||
4957
- currentWorkspace.id === "taskboard") &&
5437
+ const showRefreshSpinner = editContext.isRefreshing && !activePageViewContext.iframeSupportsRefresh;
5438
+ return (_jsx(LicenseProvider, { initialLicenseStatus: initialLicenseStatus, initialStatusLoaded: initialLicenseStatusLoaded, children: _jsx("div", { className: `editor h-full w-full`, children: _jsx(OperationsContextProvider, { value: operationsContext.context, children: _jsx(FieldsEditContextProvider, { value: fieldsEditContext, children: _jsx(EditContextProvider, { value: editContext, children: _jsxs(SplashScreenAgentProvider, { children: [_jsx(DevModeIndicator, {}), startupChecks.state === "loading" && _jsx(EditorLoadingOverlay, {}), showRefreshSpinner && (_jsx("div", { className: "text-neutral-grey-50 pointer-events-none fixed right-0 bottom-0 flex h-24 w-24 items-center justify-center opacity-50 select-none", children: _jsx(Spinner, {}) })), (currentWorkspace.id === "agents" ||
5439
+ currentWorkspace.id === "taskboard" ||
5440
+ currentWorkspace.id === "translation-management") &&
4958
5441
  showAgentsWorkspaceEditor && (_jsx(AgentsSlotContextBridgeHost, { slots: editorSlots })), startupChecks.state !== "loading" && (children || editorUi), startupChecks.state !== "loading" && dialog, _jsx(Toaster, { position: "top-center" }), " ", _jsx(ConfirmationDialog, { ref: confirmationDialogRef }), _jsx(ConcurrentUserLimitDialog, { open: concurrentUserLimitError !== null, onOpenChange: (open) => {
4959
5442
  if (!open) {
4960
5443
  setConcurrentUserLimitError(null);
4961
5444
  }
4962
- }, sessionId: sessionId, currentUsers: concurrentUserLimitError?.currentUsers ?? 0, maxUsers: concurrentUserLimitError?.maxUsers ?? 0, message: concurrentUserLimitError?.message ?? "", onRetry: handleRetryConnection, isAdministrator: userInfo.user.isAdministrator === true }), _jsx(QuickItemSwitcher, { visible: quickSwitcherVisible, entries: quickSwitcherEntries.slice(0, 5), selectedIndex: quickSwitcherSelectedIndex, onSelect: handleQuickSwitcherSelect, onClose: () => setQuickSwitcherVisible(false) }), _jsx(EditContextMenu, { ref: contextMenuRef }), _jsx(EditorFormHintPopover, {}), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(InlineAiTrigger, {}) }), media.mediaSelectorVisible && (_jsx(MediaSelector, { language: editContext.currentItemDescriptor.language, visible: media.mediaSelectorVisible, onHide: media.handleHide, onMediaSelected: media.onMediaSelect, selectedIdPath: media.selectedMediaIdPath, mode: media.mediaSelectorMode, initialSearchTerm: media.initialSearchTerm })), _jsx(FieldEditorPopup, { ref: fieldEditorPopupRef }), _jsx(LicenseOverlay, {})] }) }) }) }) }) }));
5445
+ }, sessionId: sessionId, currentUsers: concurrentUserLimitError?.currentUsers ?? 0, maxUsers: concurrentUserLimitError?.maxUsers ?? 0, message: concurrentUserLimitError?.message ?? "", onRetry: handleRetryConnection, isAdministrator: userInfo.user.isAdministrator === true }), _jsx(QuickItemSwitcher, { visible: quickSwitcherVisible, entries: quickSwitcherEntries.slice(0, 5), selectedIndex: quickSwitcherSelectedIndex, onSelect: handleQuickSwitcherSelect, onClose: () => setQuickSwitcherVisible(false) }), _jsx(EditContextMenu, { ref: contextMenuRef, onOpenChange: handleContextMenuOpenChange }), _jsx(EditorFormHintPopover, {}), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(InlineAiTrigger, {}) }), media.mediaSelectorVisible && (_jsx(MediaSelector, { language: editContext.currentItemDescriptor.language, visible: media.mediaSelectorVisible, onHide: media.handleHide, onMediaSelected: media.onMediaSelect, selectedIdPath: media.selectedMediaIdPath, mode: media.mediaSelectorMode, initialSearchTerm: media.initialSearchTerm })), _jsx(FieldEditorPopup, { ref: fieldEditorPopupRef }), _jsx(LicenseOverlay, {}), _jsx(SessionExpiredOverlay, {})] }) }) }) }) }) }));
4963
5446
  }
4964
5447
  //# sourceMappingURL=EditorShell.js.map