@parhelia/core 0.3.12831 → 0.3.12833

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 (600) hide show
  1. package/dist/components/emoji/EmojiPicker.d.ts +18 -0
  2. package/dist/components/emoji/EmojiPicker.js +102 -0
  3. package/dist/components/emoji/EmojiPicker.js.map +1 -0
  4. package/dist/components/emoji/EmojiText.d.ts +19 -0
  5. package/dist/components/emoji/EmojiText.js +30 -0
  6. package/dist/components/emoji/EmojiText.js.map +1 -0
  7. package/dist/components/emoji/emojiData.generated.d.ts +2 -0
  8. package/dist/components/emoji/emojiData.generated.js +1878 -0
  9. package/dist/components/emoji/emojiData.generated.js.map +1 -0
  10. package/dist/components/emoji/emojiIndex.d.ts +46 -0
  11. package/dist/components/emoji/emojiIndex.js +173 -0
  12. package/dist/components/emoji/emojiIndex.js.map +1 -0
  13. package/dist/components/emoji/emoticons.d.ts +21 -0
  14. package/dist/components/emoji/emoticons.js +167 -0
  15. package/dist/components/emoji/emoticons.js.map +1 -0
  16. package/dist/components/emoji/textareaInsert.d.ts +19 -0
  17. package/dist/components/emoji/textareaInsert.js +29 -0
  18. package/dist/components/emoji/textareaInsert.js.map +1 -0
  19. package/dist/components/emoji/twemoji.d.ts +30 -0
  20. package/dist/components/emoji/twemoji.js +84 -0
  21. package/dist/components/emoji/twemoji.js.map +1 -0
  22. package/dist/editor/agent-changes/agentChangeTargets.d.ts +58 -0
  23. package/dist/editor/agent-changes/agentChangeTargets.js +180 -0
  24. package/dist/editor/agent-changes/agentChangeTargets.js.map +1 -0
  25. package/dist/editor/agent-changes/agentChangeTextHighlight.d.ts +101 -0
  26. package/dist/editor/agent-changes/agentChangeTextHighlight.js +167 -0
  27. package/dist/editor/agent-changes/agentChangeTextHighlight.js.map +1 -0
  28. package/dist/editor/ai/AgentImagePreview.d.ts +13 -0
  29. package/dist/editor/ai/AgentImagePreview.js +41 -0
  30. package/dist/editor/ai/AgentImagePreview.js.map +1 -0
  31. package/dist/editor/ai/activityRowNavigation.d.ts +28 -0
  32. package/dist/editor/ai/activityRowNavigation.js +53 -0
  33. package/dist/editor/ai/activityRowNavigation.js.map +1 -0
  34. package/dist/editor/ai/terminal/activeReasoningModel.d.ts +9 -0
  35. package/dist/editor/ai/terminal/activeReasoningModel.js +20 -0
  36. package/dist/editor/ai/terminal/activeReasoningModel.js.map +1 -0
  37. package/dist/editor/ai/terminal/agentDurations.d.ts +27 -0
  38. package/dist/editor/ai/terminal/agentDurations.js +89 -0
  39. package/dist/editor/ai/terminal/agentDurations.js.map +1 -0
  40. package/dist/editor/ai/terminal/agentTurnTiming.d.ts +35 -0
  41. package/dist/editor/ai/terminal/agentTurnTiming.js +128 -0
  42. package/dist/editor/ai/terminal/agentTurnTiming.js.map +1 -0
  43. package/dist/editor/ai/terminal/components/AgentMemorySettingsSection.d.ts +9 -0
  44. package/dist/editor/ai/terminal/components/AgentMemorySettingsSection.js +75 -0
  45. package/dist/editor/ai/terminal/components/AgentMemorySettingsSection.js.map +1 -0
  46. package/dist/editor/ai/terminal/components/AgentProfileRecovery.d.ts +10 -0
  47. package/dist/editor/ai/terminal/components/AgentProfileRecovery.js +12 -0
  48. package/dist/editor/ai/terminal/components/AgentProfileRecovery.js.map +1 -0
  49. package/dist/editor/ai/terminal/components/CreateItemToolCallContent.d.ts +3 -0
  50. package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js +47 -0
  51. package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js.map +1 -0
  52. package/dist/editor/ai/terminal/components/ResponseTurnDuration.d.ts +15 -0
  53. package/dist/editor/ai/terminal/components/ResponseTurnDuration.js +62 -0
  54. package/dist/editor/ai/terminal/components/ResponseTurnDuration.js.map +1 -0
  55. package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.d.ts +6 -0
  56. package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.js +61 -0
  57. package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.js.map +1 -0
  58. package/dist/editor/ai/terminal/components/toolCallResultJson.d.ts +1 -0
  59. package/dist/editor/ai/terminal/components/toolCallResultJson.js +46 -0
  60. package/dist/editor/ai/terminal/components/toolCallResultJson.js.map +1 -0
  61. package/dist/editor/ai/terminal/reasoningEffortLevels.d.ts +8 -0
  62. package/dist/editor/ai/terminal/reasoningEffortLevels.js +54 -0
  63. package/dist/editor/ai/terminal/reasoningEffortLevels.js.map +1 -0
  64. package/dist/editor/ai/terminal/requestUsage.d.ts +3 -0
  65. package/dist/editor/ai/terminal/requestUsage.js +22 -0
  66. package/dist/editor/ai/terminal/requestUsage.js.map +1 -0
  67. package/dist/editor/ai/terminal/toolCallDiagnostics.d.ts +34 -0
  68. package/dist/editor/ai/terminal/toolCallDiagnostics.js +218 -0
  69. package/dist/editor/ai/terminal/toolCallDiagnostics.js.map +1 -0
  70. package/dist/editor/ai/terminal/useAgentProviderWait.d.ts +18 -0
  71. package/dist/editor/ai/terminal/useAgentProviderWait.js +23 -0
  72. package/dist/editor/ai/terminal/useAgentProviderWait.js.map +1 -0
  73. package/dist/editor/ai/terminal/useAgentReasoningEffortState.d.ts +5 -0
  74. package/dist/editor/ai/terminal/useAgentReasoningEffortState.js +10 -0
  75. package/dist/editor/ai/terminal/useAgentReasoningEffortState.js.map +1 -0
  76. package/dist/editor/bridge/bridgeKeys.d.ts +5 -0
  77. package/dist/editor/bridge/bridgeKeys.js +8 -0
  78. package/dist/editor/bridge/bridgeKeys.js.map +1 -0
  79. package/dist/editor/bridge/linkDownload.d.ts +3 -0
  80. package/dist/editor/bridge/linkDownload.js +52 -0
  81. package/dist/editor/bridge/linkDownload.js.map +1 -0
  82. package/dist/editor/client/SessionsDialog.d.ts +2 -0
  83. package/dist/editor/client/SessionsDialog.js +27 -0
  84. package/dist/editor/client/SessionsDialog.js.map +1 -0
  85. package/dist/editor/client/agentLoadItemPolicy.d.ts +22 -0
  86. package/dist/editor/client/agentLoadItemPolicy.js +60 -0
  87. package/dist/editor/client/agentLoadItemPolicy.js.map +1 -0
  88. package/dist/editor/client/clipboardStorage.d.ts +10 -0
  89. package/dist/editor/client/clipboardStorage.js +57 -0
  90. package/dist/editor/client/clipboardStorage.js.map +1 -0
  91. package/dist/editor/client/hooks/useRepositoryItemRefresh.d.ts +4 -0
  92. package/dist/editor/client/hooks/useRepositoryItemRefresh.js +62 -0
  93. package/dist/editor/client/hooks/useRepositoryItemRefresh.js.map +1 -0
  94. package/dist/editor/client/liveEditState.d.ts +16 -0
  95. package/dist/editor/client/liveEditState.js +25 -0
  96. package/dist/editor/client/liveEditState.js.map +1 -0
  97. package/dist/editor/client/liveSessionState.d.ts +6 -0
  98. package/dist/editor/client/liveSessionState.js +20 -0
  99. package/dist/editor/client/liveSessionState.js.map +1 -0
  100. package/dist/editor/client/localUserEditActivity.d.ts +3 -0
  101. package/dist/editor/client/localUserEditActivity.js +12 -0
  102. package/dist/editor/client/localUserEditActivity.js.map +1 -0
  103. package/dist/editor/client/valueStore.d.ts +22 -0
  104. package/dist/editor/client/valueStore.js +29 -0
  105. package/dist/editor/client/valueStore.js.map +1 -0
  106. package/dist/editor/commands/componentClipboardCommands.d.ts +35 -0
  107. package/dist/editor/commands/componentClipboardCommands.js +271 -0
  108. package/dist/editor/commands/componentClipboardCommands.js.map +1 -0
  109. package/dist/editor/commands/componentMenuGroups.d.ts +2 -0
  110. package/dist/editor/commands/componentMenuGroups.js +43 -0
  111. package/dist/editor/commands/componentMenuGroups.js.map +1 -0
  112. package/dist/editor/commands/mediaCommands.d.ts +5 -0
  113. package/dist/editor/commands/mediaCommands.js +59 -0
  114. package/dist/editor/commands/mediaCommands.js.map +1 -0
  115. package/dist/editor/component-conversion/ComponentTypePickerDialog.d.ts +12 -0
  116. package/dist/editor/component-conversion/ComponentTypePickerDialog.js +40 -0
  117. package/dist/editor/component-conversion/ComponentTypePickerDialog.js.map +1 -0
  118. package/dist/editor/component-conversion/ConversionAiDebugButton.d.ts +17 -0
  119. package/dist/editor/component-conversion/ConversionAiDebugButton.js +80 -0
  120. package/dist/editor/component-conversion/ConversionAiDebugButton.js.map +1 -0
  121. package/dist/editor/component-conversion/ConvertComponentDialog.d.ts +28 -0
  122. package/dist/editor/component-conversion/ConvertComponentDialog.js +633 -0
  123. package/dist/editor/component-conversion/ConvertComponentDialog.js.map +1 -0
  124. package/dist/editor/component-conversion/conversionModel.d.ts +109 -0
  125. package/dist/editor/component-conversion/conversionModel.js +519 -0
  126. package/dist/editor/component-conversion/conversionModel.js.map +1 -0
  127. package/dist/editor/component-conversion/conversionService.d.ts +12 -0
  128. package/dist/editor/component-conversion/conversionService.js +16 -0
  129. package/dist/editor/component-conversion/conversionService.js.map +1 -0
  130. package/dist/editor/component-conversion/conversionTypes.d.ts +214 -0
  131. package/dist/editor/component-conversion/conversionTypes.js +2 -0
  132. package/dist/editor/component-conversion/conversionTypes.js.map +1 -0
  133. package/dist/editor/component-conversion/convertComponentsCommand.d.ts +25 -0
  134. package/dist/editor/component-conversion/convertComponentsCommand.js +196 -0
  135. package/dist/editor/component-conversion/convertComponentsCommand.js.map +1 -0
  136. package/dist/editor/componentVisualMode.d.ts +14 -0
  137. package/dist/editor/componentVisualMode.js +43 -0
  138. package/dist/editor/componentVisualMode.js.map +1 -0
  139. package/dist/editor/field-types/FieldHistoryBoundary.d.ts +7 -0
  140. package/dist/editor/field-types/FieldHistoryBoundary.js +40 -0
  141. package/dist/editor/field-types/FieldHistoryBoundary.js.map +1 -0
  142. package/dist/editor/field-types/fieldStyles.d.ts +21 -0
  143. package/dist/editor/field-types/fieldStyles.js +22 -0
  144. package/dist/editor/field-types/fieldStyles.js.map +1 -0
  145. package/dist/editor/field-types/richtext/utils/changeHighlight.d.ts +32 -0
  146. package/dist/editor/field-types/richtext/utils/changeHighlight.js +68 -0
  147. package/dist/editor/field-types/richtext/utils/changeHighlight.js.map +1 -0
  148. package/dist/editor/field-types/richtext/utils/spellCheckText.d.ts +31 -0
  149. package/dist/editor/field-types/richtext/utils/spellCheckText.js +82 -0
  150. package/dist/editor/field-types/richtext/utils/spellCheckText.js.map +1 -0
  151. package/dist/editor/field-types/useFocusedFieldInput.d.ts +13 -0
  152. package/dist/editor/field-types/useFocusedFieldInput.js +50 -0
  153. package/dist/editor/field-types/useFocusedFieldInput.js.map +1 -0
  154. package/dist/editor/field-types/useFormFieldSelectionRange.d.ts +43 -0
  155. package/dist/editor/field-types/useFormFieldSelectionRange.js +149 -0
  156. package/dist/editor/field-types/useFormFieldSelectionRange.js.map +1 -0
  157. package/dist/editor/find-replace/FindReplacePanel.d.ts +11 -0
  158. package/dist/editor/find-replace/FindReplacePanel.js +311 -0
  159. package/dist/editor/find-replace/FindReplacePanel.js.map +1 -0
  160. package/dist/editor/find-replace/findReplaceCommand.d.ts +8 -0
  161. package/dist/editor/find-replace/findReplaceCommand.js +25 -0
  162. package/dist/editor/find-replace/findReplaceCommand.js.map +1 -0
  163. package/dist/editor/find-replace/findReplaceMatches.d.ts +42 -0
  164. package/dist/editor/find-replace/findReplaceMatches.js +66 -0
  165. package/dist/editor/find-replace/findReplaceMatches.js.map +1 -0
  166. package/dist/editor/find-replace/findReplaceStore.d.ts +30 -0
  167. package/dist/editor/find-replace/findReplaceStore.js +61 -0
  168. package/dist/editor/find-replace/findReplaceStore.js.map +1 -0
  169. package/dist/editor/find-replace/findReplaceTargets.d.ts +51 -0
  170. package/dist/editor/find-replace/findReplaceTargets.js +110 -0
  171. package/dist/editor/find-replace/findReplaceTargets.js.map +1 -0
  172. package/dist/editor/find-replace/findReplaceText.d.ts +50 -0
  173. package/dist/editor/find-replace/findReplaceText.js +189 -0
  174. package/dist/editor/find-replace/findReplaceText.js.map +1 -0
  175. package/dist/editor/itemContextMenuGroups.d.ts +16 -0
  176. package/dist/editor/itemContextMenuGroups.js +57 -0
  177. package/dist/editor/itemContextMenuGroups.js.map +1 -0
  178. package/dist/editor/media-selector/MediaDetailsView.d.ts +14 -0
  179. package/dist/editor/media-selector/MediaDetailsView.js +152 -0
  180. package/dist/editor/media-selector/MediaDetailsView.js.map +1 -0
  181. package/dist/editor/media-selector/UploadMediaFileDialog.d.ts +5 -0
  182. package/dist/editor/media-selector/UploadMediaFileDialog.js +14 -0
  183. package/dist/editor/media-selector/UploadMediaFileDialog.js.map +1 -0
  184. package/dist/editor/media-selector/useMediaFolderDrag.d.ts +26 -0
  185. package/dist/editor/media-selector/useMediaFolderDrag.js +153 -0
  186. package/dist/editor/media-selector/useMediaFolderDrag.js.map +1 -0
  187. package/dist/editor/menubar/OpenPublishedPageButton.d.ts +1 -0
  188. package/dist/editor/menubar/OpenPublishedPageButton.js +22 -0
  189. package/dist/editor/menubar/OpenPublishedPageButton.js.map +1 -0
  190. package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.d.ts +11 -0
  191. package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.js +65 -0
  192. package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.js.map +1 -0
  193. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.d.ts +6 -0
  194. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js +31 -0
  195. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js.map +1 -0
  196. package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.d.ts +5 -0
  197. package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.js +16 -0
  198. package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.js.map +1 -0
  199. package/dist/editor/mobileBottomPanel.d.ts +40 -0
  200. package/dist/editor/mobileBottomPanel.js +63 -0
  201. package/dist/editor/mobileBottomPanel.js.map +1 -0
  202. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.d.ts +17 -0
  203. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js +33 -0
  204. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js.map +1 -0
  205. package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.d.ts +6 -0
  206. package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.js +100 -0
  207. package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.js.map +1 -0
  208. package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.d.ts +9 -0
  209. package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.js +32 -0
  210. package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.js.map +1 -0
  211. package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.d.ts +14 -0
  212. package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.js +110 -0
  213. package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.js.map +1 -0
  214. package/dist/editor/page-editor-chrome/ConversionIndicators.d.ts +8 -0
  215. package/dist/editor/page-editor-chrome/ConversionIndicators.js +75 -0
  216. package/dist/editor/page-editor-chrome/ConversionIndicators.js.map +1 -0
  217. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.d.ts +29 -0
  218. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js +295 -0
  219. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js.map +1 -0
  220. package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.d.ts +15 -0
  221. package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.js +31 -0
  222. package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.js.map +1 -0
  223. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.d.ts +11 -0
  224. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js +120 -0
  225. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js.map +1 -0
  226. package/dist/editor/page-editor-chrome/SpellCheckHighlightings.d.ts +12 -0
  227. package/dist/editor/page-editor-chrome/SpellCheckHighlightings.js +197 -0
  228. package/dist/editor/page-editor-chrome/SpellCheckHighlightings.js.map +1 -0
  229. package/dist/editor/page-editor-chrome/ValidationRulerMarks.d.ts +11 -0
  230. package/dist/editor/page-editor-chrome/ValidationRulerMarks.js +56 -0
  231. package/dist/editor/page-editor-chrome/ValidationRulerMarks.js.map +1 -0
  232. package/dist/editor/page-editor-chrome/diffRulerSegments.d.ts +18 -0
  233. package/dist/editor/page-editor-chrome/diffRulerSegments.js +37 -0
  234. package/dist/editor/page-editor-chrome/diffRulerSegments.js.map +1 -0
  235. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.d.ts +44 -0
  236. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.js +89 -0
  237. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.js.map +1 -0
  238. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.d.ts +17 -0
  239. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.js +53 -0
  240. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.js.map +1 -0
  241. package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.d.ts +11 -0
  242. package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.js +84 -0
  243. package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.js.map +1 -0
  244. package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.d.ts +34 -0
  245. package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.js +229 -0
  246. package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.js.map +1 -0
  247. package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.d.ts +9 -0
  248. package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.js +34 -0
  249. package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.js.map +1 -0
  250. package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.d.ts +49 -0
  251. package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.js +241 -0
  252. package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.js.map +1 -0
  253. package/dist/editor/page-viewer/CanvasOverviewRuler.d.ts +11 -0
  254. package/dist/editor/page-viewer/CanvasOverviewRuler.js +65 -0
  255. package/dist/editor/page-viewer/CanvasOverviewRuler.js.map +1 -0
  256. package/dist/editor/page-viewer/DynamicRenderingsBar.d.ts +23 -0
  257. package/dist/editor/page-viewer/DynamicRenderingsBar.js +28 -0
  258. package/dist/editor/page-viewer/DynamicRenderingsBar.js.map +1 -0
  259. package/dist/editor/page-viewer/DynamicRenderingsStrip.d.ts +18 -0
  260. package/dist/editor/page-viewer/DynamicRenderingsStrip.js +29 -0
  261. package/dist/editor/page-viewer/DynamicRenderingsStrip.js.map +1 -0
  262. package/dist/editor/page-viewer/FeedbackMargin.d.ts +57 -0
  263. package/dist/editor/page-viewer/FeedbackMargin.js +377 -0
  264. package/dist/editor/page-viewer/FeedbackMargin.js.map +1 -0
  265. package/dist/editor/page-viewer/FeedbackMarginController.d.ts +76 -0
  266. package/dist/editor/page-viewer/FeedbackMarginController.js +241 -0
  267. package/dist/editor/page-viewer/FeedbackMarginController.js.map +1 -0
  268. package/dist/editor/page-viewer/FeedbackMarginMarker.d.ts +16 -0
  269. package/dist/editor/page-viewer/FeedbackMarginMarker.js +24 -0
  270. package/dist/editor/page-viewer/FeedbackMarginMarker.js.map +1 -0
  271. package/dist/editor/page-viewer/FeedbackMarginResizeHandle.d.ts +23 -0
  272. package/dist/editor/page-viewer/FeedbackMarginResizeHandle.js +105 -0
  273. package/dist/editor/page-viewer/FeedbackMarginResizeHandle.js.map +1 -0
  274. package/dist/editor/page-viewer/InteractivePreviewBar.d.ts +24 -0
  275. package/dist/editor/page-viewer/InteractivePreviewBar.js +31 -0
  276. package/dist/editor/page-viewer/InteractivePreviewBar.js.map +1 -0
  277. package/dist/editor/page-viewer/MobileCommentsPanel.d.ts +16 -0
  278. package/dist/editor/page-viewer/MobileCommentsPanel.js +112 -0
  279. package/dist/editor/page-viewer/MobileCommentsPanel.js.map +1 -0
  280. package/dist/editor/page-viewer/PreviewModeNotice.d.ts +7 -0
  281. package/dist/editor/page-viewer/PreviewModeNotice.js +19 -0
  282. package/dist/editor/page-viewer/PreviewModeNotice.js.map +1 -0
  283. package/dist/editor/page-viewer/RenderingAiCheck.d.ts +18 -0
  284. package/dist/editor/page-viewer/RenderingAiCheck.js +45 -0
  285. package/dist/editor/page-viewer/RenderingAiCheck.js.map +1 -0
  286. package/dist/editor/page-viewer/RenderingApprovalDialog.d.ts +32 -0
  287. package/dist/editor/page-viewer/RenderingApprovalDialog.js +191 -0
  288. package/dist/editor/page-viewer/RenderingApprovalDialog.js.map +1 -0
  289. package/dist/editor/page-viewer/SealedClientCodePreview.d.ts +17 -0
  290. package/dist/editor/page-viewer/SealedClientCodePreview.js +38 -0
  291. package/dist/editor/page-viewer/SealedClientCodePreview.js.map +1 -0
  292. package/dist/editor/page-viewer/canvasFrameNavigation.d.ts +18 -0
  293. package/dist/editor/page-viewer/canvasFrameNavigation.js +36 -0
  294. package/dist/editor/page-viewer/canvasFrameNavigation.js.map +1 -0
  295. package/dist/editor/page-viewer/canvasLoadSettling.d.ts +42 -0
  296. package/dist/editor/page-viewer/canvasLoadSettling.js +46 -0
  297. package/dist/editor/page-viewer/canvasLoadSettling.js.map +1 -0
  298. package/dist/editor/page-viewer/canvasScrollHandoff.d.ts +34 -0
  299. package/dist/editor/page-viewer/canvasScrollHandoff.js +55 -0
  300. package/dist/editor/page-viewer/canvasScrollHandoff.js.map +1 -0
  301. package/dist/editor/page-viewer/compareFrameWidth.d.ts +8 -0
  302. package/dist/editor/page-viewer/compareFrameWidth.js +25 -0
  303. package/dist/editor/page-viewer/compareFrameWidth.js.map +1 -0
  304. package/dist/editor/page-viewer/feedbackMarginLayout.d.ts +119 -0
  305. package/dist/editor/page-viewer/feedbackMarginLayout.js +155 -0
  306. package/dist/editor/page-viewer/feedbackMarginLayout.js.map +1 -0
  307. package/dist/editor/page-viewer/feedbackMarginSources.d.ts +36 -0
  308. package/dist/editor/page-viewer/feedbackMarginSources.js +196 -0
  309. package/dist/editor/page-viewer/feedbackMarginSources.js.map +1 -0
  310. package/dist/editor/page-viewer/feedbackMarginWidth.d.ts +43 -0
  311. package/dist/editor/page-viewer/feedbackMarginWidth.js +107 -0
  312. package/dist/editor/page-viewer/feedbackMarginWidth.js.map +1 -0
  313. package/dist/editor/page-viewer/interactivePreview.d.ts +168 -0
  314. package/dist/editor/page-viewer/interactivePreview.js +344 -0
  315. package/dist/editor/page-viewer/interactivePreview.js.map +1 -0
  316. package/dist/editor/page-viewer/minimapViewport.d.ts +2 -0
  317. package/dist/editor/page-viewer/minimapViewport.js +34 -0
  318. package/dist/editor/page-viewer/minimapViewport.js.map +1 -0
  319. package/dist/editor/page-viewer/openPageItems.d.ts +29 -0
  320. package/dist/editor/page-viewer/openPageItems.js +73 -0
  321. package/dist/editor/page-viewer/openPageItems.js.map +1 -0
  322. package/dist/editor/page-viewer/overviewRuler.d.ts +128 -0
  323. package/dist/editor/page-viewer/overviewRuler.js +226 -0
  324. package/dist/editor/page-viewer/overviewRuler.js.map +1 -0
  325. package/dist/editor/page-viewer/previewEditAttempt.d.ts +31 -0
  326. package/dist/editor/page-viewer/previewEditAttempt.js +68 -0
  327. package/dist/editor/page-viewer/previewEditAttempt.js.map +1 -0
  328. package/dist/editor/page-viewer/renderingApproval.d.ts +59 -0
  329. package/dist/editor/page-viewer/renderingApproval.js +186 -0
  330. package/dist/editor/page-viewer/renderingApproval.js.map +1 -0
  331. package/dist/editor/page-viewer/renderingChanges.d.ts +29 -0
  332. package/dist/editor/page-viewer/renderingChanges.js +40 -0
  333. package/dist/editor/page-viewer/renderingChanges.js.map +1 -0
  334. package/dist/editor/page-viewer/scrollIntoViewTextRanges.d.ts +23 -0
  335. package/dist/editor/page-viewer/scrollIntoViewTextRanges.js +26 -0
  336. package/dist/editor/page-viewer/scrollIntoViewTextRanges.js.map +1 -0
  337. package/dist/editor/page-viewer/useInteractivePreview.d.ts +77 -0
  338. package/dist/editor/page-viewer/useInteractivePreview.js +210 -0
  339. package/dist/editor/page-viewer/useInteractivePreview.js.map +1 -0
  340. package/dist/editor/reviews/CollapsibleText.d.ts +13 -0
  341. package/dist/editor/reviews/CollapsibleText.js +41 -0
  342. package/dist/editor/reviews/CollapsibleText.js.map +1 -0
  343. package/dist/editor/reviews/CommentImageAttachments.d.ts +12 -0
  344. package/dist/editor/reviews/CommentImageAttachments.js +19 -0
  345. package/dist/editor/reviews/CommentImageAttachments.js.map +1 -0
  346. package/dist/editor/reviews/CommentQuote.d.ts +13 -0
  347. package/dist/editor/reviews/CommentQuote.js +35 -0
  348. package/dist/editor/reviews/CommentQuote.js.map +1 -0
  349. package/dist/editor/reviews/CommentTargetOutline.d.ts +13 -0
  350. package/dist/editor/reviews/CommentTargetOutline.js +21 -0
  351. package/dist/editor/reviews/CommentTargetOutline.js.map +1 -0
  352. package/dist/editor/reviews/CommentTargetPickerDomLayer.d.ts +7 -0
  353. package/dist/editor/reviews/CommentTargetPickerDomLayer.js +117 -0
  354. package/dist/editor/reviews/CommentTargetPickerDomLayer.js.map +1 -0
  355. package/dist/editor/reviews/CommentThreadAgentLink.d.ts +28 -0
  356. package/dist/editor/reviews/CommentThreadAgentLink.js +37 -0
  357. package/dist/editor/reviews/CommentThreadAgentLink.js.map +1 -0
  358. package/dist/editor/reviews/CommentThreadCard.d.ts +34 -0
  359. package/dist/editor/reviews/CommentThreadCard.js +156 -0
  360. package/dist/editor/reviews/CommentThreadCard.js.map +1 -0
  361. package/dist/editor/reviews/SuggestionThreadCard.d.ts +19 -0
  362. package/dist/editor/reviews/SuggestionThreadCard.js +25 -0
  363. package/dist/editor/reviews/SuggestionThreadCard.js.map +1 -0
  364. package/dist/editor/reviews/addCommentOnTarget.d.ts +22 -0
  365. package/dist/editor/reviews/addCommentOnTarget.js +32 -0
  366. package/dist/editor/reviews/addCommentOnTarget.js.map +1 -0
  367. package/dist/editor/reviews/balloonLayout.d.ts +51 -0
  368. package/dist/editor/reviews/balloonLayout.js +101 -0
  369. package/dist/editor/reviews/balloonLayout.js.map +1 -0
  370. package/dist/editor/reviews/commentAgentAttachments.d.ts +5 -0
  371. package/dist/editor/reviews/commentAgentAttachments.js +51 -0
  372. package/dist/editor/reviews/commentAgentAttachments.js.map +1 -0
  373. package/dist/editor/reviews/commentImages.d.ts +48 -0
  374. package/dist/editor/reviews/commentImages.js +128 -0
  375. package/dist/editor/reviews/commentImages.js.map +1 -0
  376. package/dist/editor/reviews/commentTargetPicker.d.ts +114 -0
  377. package/dist/editor/reviews/commentTargetPicker.js +153 -0
  378. package/dist/editor/reviews/commentTargetPicker.js.map +1 -0
  379. package/dist/editor/reviews/feedbackBalloonDate.d.ts +8 -0
  380. package/dist/editor/reviews/feedbackBalloonDate.js +22 -0
  381. package/dist/editor/reviews/feedbackBalloonDate.js.map +1 -0
  382. package/dist/editor/reviews/feedbackDrafts.d.ts +49 -0
  383. package/dist/editor/reviews/feedbackDrafts.js +74 -0
  384. package/dist/editor/reviews/feedbackDrafts.js.map +1 -0
  385. package/dist/editor/reviews/feedbackHoverState.d.ts +18 -0
  386. package/dist/editor/reviews/feedbackHoverState.js +35 -0
  387. package/dist/editor/reviews/feedbackHoverState.js.map +1 -0
  388. package/dist/editor/reviews/feedbackPersonFilter.d.ts +3 -0
  389. package/dist/editor/reviews/feedbackPersonFilter.js +32 -0
  390. package/dist/editor/reviews/feedbackPersonFilter.js.map +1 -0
  391. package/dist/editor/reviews/feedbackThreadSelection.d.ts +10 -0
  392. package/dist/editor/reviews/feedbackThreadSelection.js +31 -0
  393. package/dist/editor/reviews/feedbackThreadSelection.js.map +1 -0
  394. package/dist/editor/reviews/feedbackThreads.d.ts +50 -0
  395. package/dist/editor/reviews/feedbackThreads.js +135 -0
  396. package/dist/editor/reviews/feedbackThreads.js.map +1 -0
  397. package/dist/editor/reviews/feedbackWheelForwarding.d.ts +34 -0
  398. package/dist/editor/reviews/feedbackWheelForwarding.js +108 -0
  399. package/dist/editor/reviews/feedbackWheelForwarding.js.map +1 -0
  400. package/dist/editor/reviews/reviewUrlScope.d.ts +23 -0
  401. package/dist/editor/reviews/reviewUrlScope.js +86 -0
  402. package/dist/editor/reviews/reviewUrlScope.js.map +1 -0
  403. package/dist/editor/reviews/scrollWithin.d.ts +29 -0
  404. package/dist/editor/reviews/scrollWithin.js +87 -0
  405. package/dist/editor/reviews/scrollWithin.js.map +1 -0
  406. package/dist/editor/reviews/subtreeFeedback.d.ts +57 -0
  407. package/dist/editor/reviews/subtreeFeedback.js +137 -0
  408. package/dist/editor/reviews/subtreeFeedback.js.map +1 -0
  409. package/dist/editor/reviews/useCommentImagePaste.d.ts +80 -0
  410. package/dist/editor/reviews/useCommentImagePaste.js +252 -0
  411. package/dist/editor/reviews/useCommentImagePaste.js.map +1 -0
  412. package/dist/editor/reviews/useFeedbackThreads.d.ts +35 -0
  413. package/dist/editor/reviews/useFeedbackThreads.js +137 -0
  414. package/dist/editor/reviews/useFeedbackThreads.js.map +1 -0
  415. package/dist/editor/reviews/useMeasuredHeights.d.ts +25 -0
  416. package/dist/editor/reviews/useMeasuredHeights.js +176 -0
  417. package/dist/editor/reviews/useMeasuredHeights.js.map +1 -0
  418. package/dist/editor/reviews/usePendingFeedbackFocus.d.ts +7 -0
  419. package/dist/editor/reviews/usePendingFeedbackFocus.js +42 -0
  420. package/dist/editor/reviews/usePendingFeedbackFocus.js.map +1 -0
  421. package/dist/editor/services/mcpAccessService.d.ts +93 -0
  422. package/dist/editor/services/mcpAccessService.js +41 -0
  423. package/dist/editor/services/mcpAccessService.js.map +1 -0
  424. package/dist/editor/services/migrationService.d.ts +31 -0
  425. package/dist/editor/services/migrationService.js +22 -0
  426. package/dist/editor/services/migrationService.js.map +1 -0
  427. package/dist/editor/services/previewTokenService.d.ts +14 -0
  428. package/dist/editor/services/previewTokenService.js +34 -0
  429. package/dist/editor/services/previewTokenService.js.map +1 -0
  430. package/dist/editor/services/publicSiteService.d.ts +40 -0
  431. package/dist/editor/services/publicSiteService.js +5 -0
  432. package/dist/editor/services/publicSiteService.js.map +1 -0
  433. package/dist/editor/services/renderingsService.d.ts +117 -0
  434. package/dist/editor/services/renderingsService.js +245 -0
  435. package/dist/editor/services/renderingsService.js.map +1 -0
  436. package/dist/editor/services/spellCheckService.d.ts +13 -0
  437. package/dist/editor/services/spellCheckService.js +33 -0
  438. package/dist/editor/services/spellCheckService.js.map +1 -0
  439. package/dist/editor/settings/MigrationJournalCard.d.ts +12 -0
  440. package/dist/editor/settings/MigrationJournalCard.js +114 -0
  441. package/dist/editor/settings/MigrationJournalCard.js.map +1 -0
  442. package/dist/editor/settings/panels/McpAccessPanel.d.ts +7 -0
  443. package/dist/editor/settings/panels/McpAccessPanel.js +95 -0
  444. package/dist/editor/settings/panels/McpAccessPanel.js.map +1 -0
  445. package/dist/editor/settings/panels/McpAccessSettingsView.d.ts +8 -0
  446. package/dist/editor/settings/panels/McpAccessSettingsView.js +221 -0
  447. package/dist/editor/settings/panels/McpAccessSettingsView.js.map +1 -0
  448. package/dist/editor/settings/panels/PublicSiteEntryDialog.d.ts +8 -0
  449. package/dist/editor/settings/panels/PublicSiteEntryDialog.js +113 -0
  450. package/dist/editor/settings/panels/PublicSiteEntryDialog.js.map +1 -0
  451. package/dist/editor/settings/panels/PublicSitesPanel.d.ts +1 -0
  452. package/dist/editor/settings/panels/PublicSitesPanel.js +153 -0
  453. package/dist/editor/settings/panels/PublicSitesPanel.js.map +1 -0
  454. package/dist/editor/settings/panels/SpellCheckPanel.d.ts +8 -0
  455. package/dist/editor/settings/panels/SpellCheckPanel.js +253 -0
  456. package/dist/editor/settings/panels/SpellCheckPanel.js.map +1 -0
  457. package/dist/editor/settings/panels/publicSiteHelpers.d.ts +6 -0
  458. package/dist/editor/settings/panels/publicSiteHelpers.js +30 -0
  459. package/dist/editor/settings/panels/publicSiteHelpers.js.map +1 -0
  460. package/dist/editor/sidebar/FeedbackSidebar.d.ts +7 -0
  461. package/dist/editor/sidebar/FeedbackSidebar.js +300 -0
  462. package/dist/editor/sidebar/FeedbackSidebar.js.map +1 -0
  463. package/dist/editor/sidebar/OperationDetailsContent.d.ts +14 -0
  464. package/dist/editor/sidebar/OperationDetailsContent.js +571 -0
  465. package/dist/editor/sidebar/OperationDetailsContent.js.map +1 -0
  466. package/dist/editor/sidebar/liveComponentThumbnails.d.ts +66 -0
  467. package/dist/editor/sidebar/liveComponentThumbnails.js +225 -0
  468. package/dist/editor/sidebar/liveComponentThumbnails.js.map +1 -0
  469. package/dist/editor/spellcheck/canvasSpellCheckContextMenu.d.ts +30 -0
  470. package/dist/editor/spellcheck/canvasSpellCheckContextMenu.js +69 -0
  471. package/dist/editor/spellcheck/canvasSpellCheckContextMenu.js.map +1 -0
  472. package/dist/editor/spellcheck/htmlSpellDocument.d.ts +60 -0
  473. package/dist/editor/spellcheck/htmlSpellDocument.js +181 -0
  474. package/dist/editor/spellcheck/htmlSpellDocument.js.map +1 -0
  475. package/dist/editor/spellcheck/htmlSpellTokenizer.d.ts +45 -0
  476. package/dist/editor/spellcheck/htmlSpellTokenizer.js +277 -0
  477. package/dist/editor/spellcheck/htmlSpellTokenizer.js.map +1 -0
  478. package/dist/editor/spellcheck/replacementGuard.d.ts +27 -0
  479. package/dist/editor/spellcheck/replacementGuard.js +29 -0
  480. package/dist/editor/spellcheck/replacementGuard.js.map +1 -0
  481. package/dist/editor/spellcheck/spellCheckCanvasStore.d.ts +17 -0
  482. package/dist/editor/spellcheck/spellCheckCanvasStore.js +37 -0
  483. package/dist/editor/spellcheck/spellCheckCanvasStore.js.map +1 -0
  484. package/dist/editor/spellcheck/spellCheckCanvasTargets.d.ts +71 -0
  485. package/dist/editor/spellcheck/spellCheckCanvasTargets.js +126 -0
  486. package/dist/editor/spellcheck/spellCheckCanvasTargets.js.map +1 -0
  487. package/dist/editor/spellcheck/spellCheckClient.d.ts +66 -0
  488. package/dist/editor/spellcheck/spellCheckClient.js +0 -0
  489. package/dist/editor/spellcheck/spellCheckClient.js.map +1 -0
  490. package/dist/editor/spellcheck/spellCheckContextMenu.d.ts +52 -0
  491. package/dist/editor/spellcheck/spellCheckContextMenu.js +120 -0
  492. package/dist/editor/spellcheck/spellCheckContextMenu.js.map +1 -0
  493. package/dist/editor/spellcheck/spellCheckReplace.d.ts +8 -0
  494. package/dist/editor/spellcheck/spellCheckReplace.js +20 -0
  495. package/dist/editor/spellcheck/spellCheckReplace.js.map +1 -0
  496. package/dist/editor/spellcheck/spellCheckStyles.d.ts +11 -0
  497. package/dist/editor/spellcheck/spellCheckStyles.js +12 -0
  498. package/dist/editor/spellcheck/spellCheckStyles.js.map +1 -0
  499. package/dist/editor/spellcheck/spellCheckTypes.d.ts +94 -0
  500. package/dist/editor/spellcheck/spellCheckTypes.js +2 -0
  501. package/dist/editor/spellcheck/spellCheckTypes.js.map +1 -0
  502. package/dist/editor/spellcheck/textMarkHitTest.d.ts +14 -0
  503. package/dist/editor/spellcheck/textMarkHitTest.js +39 -0
  504. package/dist/editor/spellcheck/textMarkHitTest.js.map +1 -0
  505. package/dist/editor/spellcheck/useSpellCheck.d.ts +16 -0
  506. package/dist/editor/spellcheck/useSpellCheck.js +57 -0
  507. package/dist/editor/spellcheck/useSpellCheck.js.map +1 -0
  508. package/dist/editor/ui/DynamicRenderingsPublishWarning.d.ts +14 -0
  509. package/dist/editor/ui/DynamicRenderingsPublishWarning.js +40 -0
  510. package/dist/editor/ui/DynamicRenderingsPublishWarning.js.map +1 -0
  511. package/dist/editor/ui/ParheliaMark.d.ts +15 -0
  512. package/dist/editor/ui/ParheliaMark.js +12 -0
  513. package/dist/editor/ui/ParheliaMark.js.map +1 -0
  514. package/dist/editor/ui/PublishReadinessSummary.d.ts +12 -0
  515. package/dist/editor/ui/PublishReadinessSummary.js +34 -0
  516. package/dist/editor/ui/PublishReadinessSummary.js.map +1 -0
  517. package/dist/editor/ui/RootItemPicker.d.ts +18 -0
  518. package/dist/editor/ui/RootItemPicker.js +112 -0
  519. package/dist/editor/ui/RootItemPicker.js.map +1 -0
  520. package/dist/editor/ui/publishReadiness.d.ts +98 -0
  521. package/dist/editor/ui/publishReadiness.js +307 -0
  522. package/dist/editor/ui/publishReadiness.js.map +1 -0
  523. package/dist/editor/ui/usePublishingItem.d.ts +8 -0
  524. package/dist/editor/ui/usePublishingItem.js +47 -0
  525. package/dist/editor/ui/usePublishingItem.js.map +1 -0
  526. package/dist/editor/undoEligibility.d.ts +2 -0
  527. package/dist/editor/undoEligibility.js +8 -0
  528. package/dist/editor/undoEligibility.js.map +1 -0
  529. package/dist/editor/utils/dataTransferImages.d.ts +7 -0
  530. package/dist/editor/utils/dataTransferImages.js +43 -0
  531. package/dist/editor/utils/dataTransferImages.js.map +1 -0
  532. package/dist/editor/utils/linkDisplay.d.ts +12 -0
  533. package/dist/editor/utils/linkDisplay.js +23 -0
  534. package/dist/editor/utils/linkDisplay.js.map +1 -0
  535. package/dist/editor/validation/ValidationIssuesPopover.d.ts +39 -0
  536. package/dist/editor/validation/ValidationIssuesPopover.js +51 -0
  537. package/dist/editor/validation/ValidationIssuesPopover.js.map +1 -0
  538. package/dist/editor/validation/navigateToValidationIssue.d.ts +13 -0
  539. package/dist/editor/validation/navigateToValidationIssue.js +43 -0
  540. package/dist/editor/validation/navigateToValidationIssue.js.map +1 -0
  541. package/dist/editor/validation/validationFixAgent.d.ts +26 -0
  542. package/dist/editor/validation/validationFixAgent.js +124 -0
  543. package/dist/editor/validation/validationFixAgent.js.map +1 -0
  544. package/dist/editor/validation/validationRulerIssues.d.ts +17 -0
  545. package/dist/editor/validation/validationRulerIssues.js +44 -0
  546. package/dist/editor/validation/validationRulerIssues.js.map +1 -0
  547. package/dist/editor/validation/validationSeverity.d.ts +15 -0
  548. package/dist/editor/validation/validationSeverity.js +47 -0
  549. package/dist/editor/validation/validationSeverity.js.map +1 -0
  550. package/dist/lib/viewportClip.d.ts +18 -0
  551. package/dist/lib/viewportClip.js +22 -0
  552. package/dist/lib/viewportClip.js.map +1 -0
  553. package/dist/revision.d.ts +2 -2
  554. package/dist/revision.js +2 -2
  555. package/dist/task-board/components/AttentionPromptDialog.d.ts +13 -0
  556. package/dist/task-board/components/AttentionPromptDialog.js +45 -0
  557. package/dist/task-board/components/AttentionPromptDialog.js.map +1 -0
  558. package/dist/task-board/components/GoalFindingsTable.d.ts +43 -0
  559. package/dist/task-board/components/GoalFindingsTable.js +160 -0
  560. package/dist/task-board/components/GoalFindingsTable.js.map +1 -0
  561. package/dist/task-board/components/IssuePanel.d.ts +31 -0
  562. package/dist/task-board/components/IssuePanel.js +268 -0
  563. package/dist/task-board/components/IssuePanel.js.map +1 -0
  564. package/dist/task-board/components/ProjectProgressIndicator.d.ts +8 -0
  565. package/dist/task-board/components/ProjectProgressIndicator.js +17 -0
  566. package/dist/task-board/components/ProjectProgressIndicator.js.map +1 -0
  567. package/dist/task-board/components/SubgoalFindings.d.ts +40 -0
  568. package/dist/task-board/components/SubgoalFindings.js +88 -0
  569. package/dist/task-board/components/SubgoalFindings.js.map +1 -0
  570. package/dist/task-board/components/commentAuthor.d.ts +14 -0
  571. package/dist/task-board/components/commentAuthor.js +25 -0
  572. package/dist/task-board/components/commentAuthor.js.map +1 -0
  573. package/dist/task-board/services/issueService.d.ts +193 -0
  574. package/dist/task-board/services/issueService.js +97 -0
  575. package/dist/task-board/services/issueService.js.map +1 -0
  576. package/dist/task-board/taskBlockers.d.ts +10 -0
  577. package/dist/task-board/taskBlockers.js +66 -0
  578. package/dist/task-board/taskBlockers.js.map +1 -0
  579. package/dist/task-board/utils/projectDashboardModel.d.ts +68 -0
  580. package/dist/task-board/utils/projectDashboardModel.js +369 -0
  581. package/dist/task-board/utils/projectDashboardModel.js.map +1 -0
  582. package/dist/task-board/views/ProjectDashboardView.d.ts +28 -0
  583. package/dist/task-board/views/ProjectDashboardView.js +308 -0
  584. package/dist/task-board/views/ProjectDashboardView.js.map +1 -0
  585. package/dist/tour/TourInputBoundary.d.ts +6 -0
  586. package/dist/tour/TourInputBoundary.js +82 -0
  587. package/dist/tour/TourInputBoundary.js.map +1 -0
  588. package/dist/tour/sandbox-tour-copy.d.ts +8 -0
  589. package/dist/tour/sandbox-tour-copy.js +8 -0
  590. package/dist/tour/sandbox-tour-copy.js.map +1 -1
  591. package/dist/tour/sandbox-tour.d.ts +3 -0
  592. package/dist/tour/sandbox-tour.js +112 -6
  593. package/dist/tour/sandbox-tour.js.map +1 -1
  594. package/dist/tour/tour-utils.d.ts +6 -0
  595. package/dist/tour/tour-utils.js +10 -0
  596. package/dist/tour/tour-utils.js.map +1 -1
  597. package/package.json +1 -1
  598. package/dist/editor/page-editor-chrome/bridgeLinkValue.d.ts +0 -10
  599. package/dist/editor/page-editor-chrome/bridgeLinkValue.js +0 -55
  600. package/dist/editor/page-editor-chrome/bridgeLinkValue.js.map +0 -1
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A saved dynamic rendering (an agent's update-rendering, or anyone editing
3
+ * the rendering item) changes what the canvas shows, although no page item
4
+ * changed: the server reports it as an "item-changed" for the rendering item.
5
+ * This module decides whether such a change concerns the open canvas.
6
+ */
7
+ import { fetchRenderingPageState, } from "../services/renderingsService";
8
+ import { normalizeRenderingId, readCanvasRenderings } from "./interactivePreview";
9
+ /** The Code and Client Code fields of a rendering item. */
10
+ export const RENDERING_CODE_FIELD_ID = "fa417e5d-357f-4855-9870-b7e43d3f97d6";
11
+ export const RENDERING_CLIENT_CODE_FIELD_ID = "e25b9910-aafc-46b8-b6d1-29e499190ea6";
12
+ /** Dispatched on window with `{ renderingId }` when a rendering on the canvas changed. */
13
+ export const DYNAMIC_RENDERING_CHANGED_EVENT = "parhelia:dynamic-rendering-changed";
14
+ function changesRenderingCode(fieldIds) {
15
+ return (fieldIds ?? []).some((fieldId) => {
16
+ const id = normalizeRenderingId(fieldId);
17
+ return id === RENDERING_CODE_FIELD_ID || id === RENDERING_CLIENT_CODE_FIELD_ID;
18
+ });
19
+ }
20
+ /**
21
+ * Whether the saved item is a dynamic rendering the canvas shows. A component
22
+ * is answered from the canvas, which wraps each one in its rendering id, so
23
+ * no other saved item costs a request. A theme leaves no id in the page:
24
+ * when an item's code changed and the canvas does not show it, the page's
25
+ * rendering state (which lists the tenant's theme) decides.
26
+ */
27
+ export async function isRenderingOnCanvas({ itemId, fieldIds, iframe, page, fetchPageState = fetchRenderingPageState, }) {
28
+ const renderingId = normalizeRenderingId(itemId);
29
+ if (!renderingId)
30
+ return false;
31
+ const { renderingIds } = readCanvasRenderings(iframe);
32
+ if (renderingIds.includes(renderingId))
33
+ return true;
34
+ if (!page || !changesRenderingCode(fieldIds))
35
+ return false;
36
+ const result = await fetchPageState(page, renderingIds);
37
+ return (result.ok &&
38
+ result.data.renderings.some((rendering) => normalizeRenderingId(rendering.id) === renderingId));
39
+ }
40
+ //# sourceMappingURL=renderingChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderingChanges.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/renderingChanges.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,uBAAuB,GAIxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAElF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,sCAAsC,CAAC;AAC9E,MAAM,CAAC,MAAM,8BAA8B,GACzC,sCAAsC,CAAC;AAEzC,0FAA0F;AAC1F,MAAM,CAAC,MAAM,+BAA+B,GAAG,oCAAoC,CAAC;AAIpF,SAAS,oBAAoB,CAAC,QAA8C;IAC1E,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QACvC,MAAM,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,EAAE,KAAK,uBAAuB,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,cAAc,GAAG,uBAAuB,GAUzC;IACC,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,EAAE,YAAY,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACxD,OAAO,CACL,MAAM,CAAC,EAAE;QACT,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,WAAW,CAClE,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { QueryGeometryCommandPayload } from "../bridge/protocol";
2
+ import type { ScrollIntoViewTarget } from "../client/editContext";
3
+ type BridgeTextRangeQuery = NonNullable<QueryGeometryCommandPayload["textRanges"]>[number];
4
+ type TextRangeScrollTarget = Extract<ScrollIntoViewTarget, {
5
+ kind: "textRange";
6
+ }>;
7
+ /** The frame's text-range source for measuring a scroll-into-view target. */
8
+ export declare const SCROLL_INTO_VIEW_BRIDGE_SOURCE = "scroll-into-view";
9
+ /**
10
+ * The key the scroll-into-view query measures a target's ranges under.
11
+ *
12
+ * A scroll target names the ranges an overlay already highlights (a comment,
13
+ * a suggestion, a find match) by that overlay's own key. The bridge answers
14
+ * the union of every source's query as one list of targets, so a range
15
+ * queried twice under one key comes back as two targets of that key, and the
16
+ * overlay draws its highlight twice until the scroll request is cleared. The
17
+ * scroll therefore measures under a key of its own and reads only its own
18
+ * answer; the overlay keeps reading only its own.
19
+ */
20
+ export declare function getScrollIntoViewTextRangeKey(targetKey: string): string;
21
+ /** The ranges the frame queries to measure `target`, under the scroll's keys. */
22
+ export declare function getScrollIntoViewTextRangeQuery(target: TextRangeScrollTarget): BridgeTextRangeQuery[];
23
+ export {};
@@ -0,0 +1,26 @@
1
+ /** The frame's text-range source for measuring a scroll-into-view target. */
2
+ export const SCROLL_INTO_VIEW_BRIDGE_SOURCE = "scroll-into-view";
3
+ /**
4
+ * The key the scroll-into-view query measures a target's ranges under.
5
+ *
6
+ * A scroll target names the ranges an overlay already highlights (a comment,
7
+ * a suggestion, a find match) by that overlay's own key. The bridge answers
8
+ * the union of every source's query as one list of targets, so a range
9
+ * queried twice under one key comes back as two targets of that key, and the
10
+ * overlay draws its highlight twice until the scroll request is cleared. The
11
+ * scroll therefore measures under a key of its own and reads only its own
12
+ * answer; the overlay keeps reading only its own.
13
+ */
14
+ export function getScrollIntoViewTextRangeKey(targetKey) {
15
+ return `${SCROLL_INTO_VIEW_BRIDGE_SOURCE}:${targetKey}`;
16
+ }
17
+ /** The ranges the frame queries to measure `target`, under the scroll's keys. */
18
+ export function getScrollIntoViewTextRangeQuery(target) {
19
+ return (target.textRanges ?? [])
20
+ .filter((range) => !!range)
21
+ .map((range) => ({
22
+ ...range,
23
+ key: getScrollIntoViewTextRangeKey(range.key),
24
+ }));
25
+ }
26
+ //# sourceMappingURL=scrollIntoViewTextRanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollIntoViewTextRanges.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/scrollIntoViewTextRanges.ts"],"names":[],"mappings":"AAYA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,kBAAkB,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,6BAA6B,CAAC,SAAiB;IAC7D,OAAO,GAAG,8BAA8B,IAAI,SAAS,EAAE,CAAC;AAC1D,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,+BAA+B,CAC7C,MAA6B;IAE7B,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAiC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACzD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,GAAG,KAAK;QACR,GAAG,EAAE,6BAA6B,CAAC,KAAK,CAAC,GAAG,CAAC;KAC9C,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { type PreviewTokenResult } from "../services/previewTokenService";
2
+ import { type CanvasRenderings, type InteractivePreviewPage, type InteractivePreviewState } from "./interactivePreview";
3
+ export type InteractivePreviewDependencies = {
4
+ fetchToken: (page: InteractivePreviewPage) => Promise<PreviewTokenResult>;
5
+ now: () => number;
6
+ origin: () => string;
7
+ onError: (message: string) => void;
8
+ };
9
+ type InteractivePreviewTarget = {
10
+ mode: string | undefined;
11
+ page: InteractivePreviewPage | undefined;
12
+ };
13
+ /**
14
+ * Owns one interactive preview session: the renderings read from the canvas
15
+ * (the canvas's instance only reads them), the token and the sealed frame's
16
+ * key (the review dialog's instance). A small external store
17
+ * rather than React state so that stopping (explicitly, or because the canvas
18
+ * left preview mode or the page) synchronously invalidates a token request
19
+ * that is still in flight.
20
+ */
21
+ export declare class InteractivePreviewController {
22
+ private dependencies;
23
+ private state;
24
+ private readonly listeners;
25
+ private target;
26
+ private requestId;
27
+ private canvasUrl;
28
+ constructor(dependencies: InteractivePreviewDependencies);
29
+ setDependencies(dependencies: InteractivePreviewDependencies): void;
30
+ subscribe: (listener: () => void) => () => void;
31
+ getSnapshot: () => InteractivePreviewState;
32
+ /** The canvas's mode and page. A session for anything else ends. */
33
+ setTarget: (target: InteractivePreviewTarget) => void;
34
+ /** Records the dynamic renderings the normal preview canvas shows. */
35
+ setHint: (renderings: CanvasRenderings) => void;
36
+ /**
37
+ * Mints a token and shows the sealed frame, which loads the page with the
38
+ * query of `canvasUrl` (the preview canvas URL).
39
+ */
40
+ start: (canvasUrl?: string) => void;
41
+ /** Closes the sealed frame and forgets the token. */
42
+ stop: () => void;
43
+ /**
44
+ * Reloads the sealed frame, with the query of `canvasUrl` when given. A
45
+ * token close to expiry is renewed first; time alone never reloads the
46
+ * frame.
47
+ */
48
+ reload: (canvasUrl?: string) => void;
49
+ /** Drops the answer of a token request still in flight. */
50
+ dispose(): void;
51
+ private mint;
52
+ private dispatch;
53
+ }
54
+ export type UseInteractivePreviewOptions = {
55
+ mode: string | undefined;
56
+ page: InteractivePreviewPage | undefined;
57
+ /** Why a session could not start; only callers that start one need it. */
58
+ onError?: (message: string) => void;
59
+ fetchToken?: InteractivePreviewDependencies["fetchToken"];
60
+ now?: () => number;
61
+ };
62
+ export declare function useInteractivePreview({ mode, page, onError, fetchToken, now, }: UseInteractivePreviewOptions): {
63
+ status: import("./interactivePreview").InteractivePreviewStatus;
64
+ /** True while the sealed frame is running for this page. */
65
+ active: boolean;
66
+ frameKey: number;
67
+ frameUrl: string | undefined;
68
+ /** Rendering ids the toggle is offered for (empty: no toggle). */
69
+ offeredRenderingIds: string[];
70
+ /** The page's dynamic renderings the preview strip lists. */
71
+ renderingIds: string[];
72
+ setHint: (renderings: CanvasRenderings) => void;
73
+ start: (canvasUrl?: string) => void;
74
+ stop: () => void;
75
+ reload: (canvasUrl?: string) => void;
76
+ };
77
+ export {};
@@ -0,0 +1,210 @@
1
+ import { useEffect, useLayoutEffect, useState, useSyncExternalStore, } from "react";
2
+ import { fetchPreviewToken, } from "../services/previewTokenService";
3
+ import { buildInteractivePreviewFrameUrl, createInteractivePreviewSession, getInteractivePreviewPageKey, getOfferedClientCodeRenderings, getPreviewRenderingIds, INITIAL_INTERACTIVE_PREVIEW_STATE, interactivePreviewReducer, isInteractivePreviewActive, isPreviewTokenDue, shouldStopInteractivePreview, } from "./interactivePreview";
4
+ /**
5
+ * Owns one interactive preview session: the renderings read from the canvas
6
+ * (the canvas's instance only reads them), the token and the sealed frame's
7
+ * key (the review dialog's instance). A small external store
8
+ * rather than React state so that stopping (explicitly, or because the canvas
9
+ * left preview mode or the page) synchronously invalidates a token request
10
+ * that is still in flight.
11
+ */
12
+ export class InteractivePreviewController {
13
+ dependencies;
14
+ state = INITIAL_INTERACTIVE_PREVIEW_STATE;
15
+ listeners = new Set();
16
+ target = {
17
+ mode: undefined,
18
+ page: undefined,
19
+ };
20
+ requestId = 0;
21
+ // The latest preview canvas URL; the frame takes it on its next (re)load.
22
+ canvasUrl;
23
+ constructor(dependencies) {
24
+ this.dependencies = dependencies;
25
+ }
26
+ setDependencies(dependencies) {
27
+ this.dependencies = dependencies;
28
+ }
29
+ subscribe = (listener) => {
30
+ this.listeners.add(listener);
31
+ return () => {
32
+ this.listeners.delete(listener);
33
+ };
34
+ };
35
+ getSnapshot = () => this.state;
36
+ /** The canvas's mode and page. A session for anything else ends. */
37
+ setTarget = (target) => {
38
+ this.target = target;
39
+ if (shouldStopInteractivePreview(this.state, {
40
+ mode: target.mode,
41
+ pageKey: getInteractivePreviewPageKey(target.page),
42
+ })) {
43
+ this.stop();
44
+ }
45
+ };
46
+ /** Records the dynamic renderings the normal preview canvas shows. */
47
+ setHint = (renderings) => {
48
+ this.dispatch({
49
+ type: "hint",
50
+ pageKey: this.target.mode === "preview"
51
+ ? getInteractivePreviewPageKey(this.target.page)
52
+ : undefined,
53
+ renderings,
54
+ });
55
+ };
56
+ /**
57
+ * Mints a token and shows the sealed frame, which loads the page with the
58
+ * query of `canvasUrl` (the preview canvas URL).
59
+ */
60
+ start = (canvasUrl) => {
61
+ const { mode, page } = this.target;
62
+ const pageKey = getInteractivePreviewPageKey(page);
63
+ if (!page ||
64
+ !pageKey ||
65
+ this.state.status !== "off" ||
66
+ getOfferedClientCodeRenderings(this.state, { mode, pageKey }).length ===
67
+ 0) {
68
+ return;
69
+ }
70
+ this.canvasUrl = canvasUrl;
71
+ const requestId = ++this.requestId;
72
+ this.dispatch({ type: "start", pageKey, requestId });
73
+ void this.mint(requestId, page);
74
+ };
75
+ /** Closes the sealed frame and forgets the token. */
76
+ stop = () => {
77
+ this.requestId += 1;
78
+ this.dispatch({ type: "stop" });
79
+ };
80
+ /**
81
+ * Reloads the sealed frame, with the query of `canvasUrl` when given. A
82
+ * token close to expiry is renewed first; time alone never reloads the
83
+ * frame.
84
+ */
85
+ reload = (canvasUrl) => {
86
+ const current = this.state;
87
+ if (current.status !== "on" || !current.session)
88
+ return;
89
+ if (canvasUrl)
90
+ this.canvasUrl = canvasUrl;
91
+ // A renewed token is already on its way and remounts the frame.
92
+ if (current.pendingRequestId !== undefined)
93
+ return;
94
+ if (!isPreviewTokenDue(current.session, this.dependencies.now())) {
95
+ this.dispatch({ type: "remount", canvasUrl: this.canvasUrl });
96
+ return;
97
+ }
98
+ const page = this.target.page;
99
+ if (!page || getInteractivePreviewPageKey(page) !== current.pageKey) {
100
+ return;
101
+ }
102
+ const requestId = ++this.requestId;
103
+ this.dispatch({ type: "refreshStarted", requestId });
104
+ void this.mint(requestId, page);
105
+ };
106
+ /** Drops the answer of a token request still in flight. */
107
+ dispose() {
108
+ this.requestId += 1;
109
+ }
110
+ async mint(requestId, page) {
111
+ let session;
112
+ let error;
113
+ try {
114
+ const result = await this.dependencies.fetchToken(page);
115
+ if (result.ok) {
116
+ session = createInteractivePreviewSession(result.data, this.dependencies.now(), this.dependencies.origin());
117
+ if (!session) {
118
+ error = "The server returned an invalid interactive preview address.";
119
+ }
120
+ }
121
+ else {
122
+ error = result.message;
123
+ }
124
+ }
125
+ catch (caught) {
126
+ error =
127
+ caught instanceof Error
128
+ ? caught.message
129
+ : "The preview token could not be created.";
130
+ }
131
+ // Stopped, restarted or superseded while the request was in flight.
132
+ if (requestId !== this.requestId)
133
+ return;
134
+ if (session) {
135
+ this.dispatch({
136
+ type: "minted",
137
+ requestId,
138
+ session,
139
+ canvasUrl: this.canvasUrl,
140
+ });
141
+ return;
142
+ }
143
+ this.dispatch({ type: "mintFailed", requestId });
144
+ this.dependencies.onError(error ?? "The preview token could not be created.");
145
+ }
146
+ dispatch(action) {
147
+ const next = interactivePreviewReducer(this.state, action);
148
+ if (next === this.state)
149
+ return;
150
+ this.state = next;
151
+ this.listeners.forEach((listener) => listener());
152
+ }
153
+ }
154
+ const getWindowOrigin = () => window.location.origin;
155
+ const ignoreError = () => { };
156
+ const defaultFetchToken = (page) => fetchPreviewToken(page);
157
+ export function useInteractivePreview({ mode, page, onError = ignoreError, fetchToken = defaultFetchToken, now = Date.now, }) {
158
+ const [controller] = useState(() => new InteractivePreviewController({
159
+ fetchToken,
160
+ now,
161
+ origin: getWindowOrigin,
162
+ onError,
163
+ }));
164
+ useLayoutEffect(() => {
165
+ controller.setDependencies({
166
+ fetchToken,
167
+ now,
168
+ origin: getWindowOrigin,
169
+ onError,
170
+ });
171
+ });
172
+ const state = useSyncExternalStore(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
173
+ const pageId = page?.id;
174
+ const pageLanguage = page?.language;
175
+ const pageVersion = page?.version;
176
+ // Layout effect: ends a session for another page or mode before the browser
177
+ // paints, and before the canvas's own effects read the renderings.
178
+ useLayoutEffect(() => {
179
+ controller.setTarget({
180
+ mode,
181
+ page: pageId && pageLanguage && typeof pageVersion === "number"
182
+ ? { id: pageId, language: pageLanguage, version: pageVersion }
183
+ : undefined,
184
+ });
185
+ }, [controller, mode, pageId, pageLanguage, pageVersion]);
186
+ useEffect(() => () => controller.dispose(), [controller]);
187
+ const context = { mode, pageKey: getInteractivePreviewPageKey(page) };
188
+ const active = isInteractivePreviewActive(state, context);
189
+ // The canvas query the frame last (re)loaded with, so a reload after a
190
+ // preview date change loads what the canvas would show.
191
+ const frameUrl = active && state.session && page
192
+ ? buildInteractivePreviewFrameUrl(state.session.prefix, page, state.canvasUrl, getWindowOrigin())
193
+ : undefined;
194
+ return {
195
+ status: state.status,
196
+ /** True while the sealed frame is running for this page. */
197
+ active,
198
+ frameKey: state.frameKey,
199
+ frameUrl,
200
+ /** Rendering ids the toggle is offered for (empty: no toggle). */
201
+ offeredRenderingIds: getOfferedClientCodeRenderings(state, context),
202
+ /** The page's dynamic renderings the preview strip lists. */
203
+ renderingIds: getPreviewRenderingIds(state, context),
204
+ setHint: controller.setHint,
205
+ start: controller.start,
206
+ stop: controller.stop,
207
+ reload: controller.reload,
208
+ };
209
+ }
210
+ //# sourceMappingURL=useInteractivePreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInteractivePreview.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/useInteractivePreview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type ReactNode } from "react";
2
+ /**
3
+ * Clamps long content to a few lines with a "Show more" toggle, so a long
4
+ * comment in the margin stays a short balloon until the reader asks for it.
5
+ * The toggle only appears when the content actually overflows the clamp.
6
+ */
7
+ export declare function CollapsibleText({ children, lines, className, expanded: controlledExpanded, onExpandedChange, }: {
8
+ children: ReactNode;
9
+ lines?: number;
10
+ className?: string;
11
+ expanded?: boolean;
12
+ onExpandedChange?: (expanded: boolean) => void;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useLayoutEffect, useRef, useState } from "react";
3
+ import { cn } from "../../lib/utils";
4
+ /**
5
+ * Clamps long content to a few lines with a "Show more" toggle, so a long
6
+ * comment in the margin stays a short balloon until the reader asks for it.
7
+ * The toggle only appears when the content actually overflows the clamp.
8
+ */
9
+ export function CollapsibleText({ children, lines = 4, className, expanded: controlledExpanded, onExpandedChange, }) {
10
+ const contentRef = useRef(null);
11
+ const [localExpanded, setLocalExpanded] = useState(false);
12
+ const expanded = controlledExpanded ?? localExpanded;
13
+ const [overflows, setOverflows] = useState(false);
14
+ useLayoutEffect(() => {
15
+ const element = contentRef.current;
16
+ if (!element || expanded)
17
+ return;
18
+ const check = () => setOverflows(element.scrollHeight > element.clientHeight + 1);
19
+ check();
20
+ if (typeof ResizeObserver === "undefined")
21
+ return;
22
+ const observer = new ResizeObserver(check);
23
+ observer.observe(element);
24
+ return () => observer.disconnect();
25
+ }, [expanded, children]);
26
+ const setExpanded = (next) => {
27
+ setLocalExpanded(next);
28
+ onExpandedChange?.(next);
29
+ };
30
+ return (_jsxs("div", { className: className, children: [_jsx("div", { ref: contentRef, "data-testid": "collapsible-text", "data-collapsed": !expanded && overflows ? "true" : undefined, className: cn(!expanded && "overflow-hidden"), style: expanded
31
+ ? undefined
32
+ : {
33
+ display: "-webkit-box",
34
+ WebkitBoxOrient: "vertical",
35
+ WebkitLineClamp: lines,
36
+ }, children: children }), (overflows || expanded) && (_jsx("button", { type: "button", "data-testid": "collapsible-text-toggle", className: "text-neutral-grey-50 hover:text-neutral-grey-100 mt-1 text-left underline-offset-2 hover:underline", onClick: (event) => {
37
+ event.stopPropagation();
38
+ setExpanded(!expanded);
39
+ }, children: expanded ? "Show less" : "Show more" }))] }));
40
+ }
41
+ //# sourceMappingURL=CollapsibleText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleText.js","sourceRoot":"","sources":["../../../src/editor/reviews/CollapsibleText.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,KAAK,GAAG,CAAC,EACT,SAAS,EACT,QAAQ,EAAE,kBAAkB,EAC5B,gBAAgB,GAOjB;IACC,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,kBAAkB,IAAI,aAAa,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,QAAQ;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,GAAG,EAAE,CACjB,YAAY,CAAC,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAChE,KAAK,EAAE,CAAC;QACR,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAO;QAClD,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,CAAC,IAAa,EAAE,EAAE;QACpC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,aACvB,cACE,GAAG,EAAE,UAAU,iBACH,kBAAkB,oBACd,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC3D,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,iBAAiB,CAAC,EAC7C,KAAK,EACH,QAAQ;oBACN,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC;wBACE,OAAO,EAAE,aAAa;wBACtB,eAAe,EAAE,UAAU;wBAC3B,eAAe,EAAE,KAAK;qBACvB,YAGN,QAAQ,GACL,EACL,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAC1B,iBACE,IAAI,EAAC,QAAQ,iBACD,yBAAyB,EACrC,SAAS,EAAC,oGAAoG,EAC9G,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC,YAEA,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAC9B,CACV,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CommentImageAttachment } from "./useCommentImagePaste";
2
+ /**
3
+ * Thumbnail strip shown above a comment composer for pasted or dropped
4
+ * screenshots. Uploading thumbs show a spinner, failed ones a red frame with
5
+ * the error as tooltip; finished ones open the shared image viewer.
6
+ */
7
+ export declare function CommentImageAttachments({ attachments, onRemove, disabled, className, }: {
8
+ attachments: CommentImageAttachment[];
9
+ onRemove: (key: string) => void;
10
+ disabled?: boolean;
11
+ className?: string;
12
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Loader2, X } from "lucide-react";
4
+ import { cn } from "../../lib/utils";
5
+ import { AgentImagePreview } from "../ai/AgentImagePreview";
6
+ /**
7
+ * Thumbnail strip shown above a comment composer for pasted or dropped
8
+ * screenshots. Uploading thumbs show a spinner, failed ones a red frame with
9
+ * the error as tooltip; finished ones open the shared image viewer.
10
+ */
11
+ export function CommentImageAttachments({ attachments, onRemove, disabled = false, className, }) {
12
+ if (attachments.length === 0)
13
+ return null;
14
+ return (_jsx("div", { className: cn("flex flex-wrap items-start gap-2", className), "data-testid": "comment-image-attachments", children: attachments.map((attachment) => {
15
+ const thumb = (_jsx("img", { src: attachment.previewUrl, alt: attachment.fileName, className: cn("h-12 w-12 rounded-md object-cover", attachment.status !== "done" && "opacity-60"), draggable: false }));
16
+ return (_jsxs("div", { className: cn("border-border-default group relative shrink-0 overflow-hidden rounded-md border bg-white", attachment.status === "error" && "border-destructive"), "data-testid": "comment-image-attachment", "data-status": attachment.status, "data-image-id": attachment.imageId, title: attachment.error ?? attachment.fileName, children: [attachment.status === "done" ? (_jsx(AgentImagePreview, { src: attachment.previewUrl, alt: attachment.fileName, fileName: attachment.fileName, overlayClassName: "z-[300]", contentClassName: "z-[301]", portalContainer: typeof document === "undefined" ? null : document.body, children: _jsx("button", { type: "button", className: "block cursor-zoom-in", "aria-label": `Preview ${attachment.fileName}`, children: thumb }) })) : (thumb), attachment.status === "uploading" && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-white/60", "data-testid": "comment-image-uploading", role: "status", "aria-label": "Uploading image", children: _jsx(Loader2, { className: "text-neutral-grey-100 h-4 w-4 animate-spin", strokeWidth: 1.5 }) })), attachment.status === "error" && (_jsx("div", { className: "bg-destructive/80 absolute inset-x-0 bottom-0 truncate px-1 text-[9px] leading-4 text-white", "data-testid": "comment-image-upload-error", role: "alert", children: "Upload failed" })), !disabled && (_jsx("button", { type: "button", onClick: () => onRemove(attachment.key), className: "bg-neutral-grey-100 hover:bg-neutral-grey-100/90 absolute top-0.5 right-0.5 inline-flex h-4 w-4 items-center justify-center rounded-full text-white shadow-sm", "aria-label": "Remove image", title: "Remove image", "data-testid": "comment-image-remove", children: _jsx(X, { className: "h-3 w-3", strokeWidth: 2 }) }))] }, attachment.key));
17
+ }) }));
18
+ }
19
+ //# sourceMappingURL=CommentImageAttachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentImageAttachments.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentImageAttachments.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,WAAW,EACX,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,GAMV;IACC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,iBAChD,2BAA2B,YAEtC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,CACZ,cACE,GAAG,EAAE,UAAU,CAAC,UAAU,EAC1B,GAAG,EAAE,UAAU,CAAC,QAAQ,EACxB,SAAS,EAAE,EAAE,CACX,mCAAmC,EACnC,UAAU,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAC7C,EACD,SAAS,EAAE,KAAK,GAChB,CACH,CAAC;YAEF,OAAO,CACL,eAEE,SAAS,EAAE,EAAE,CACX,0FAA0F,EAC1F,UAAU,CAAC,MAAM,KAAK,OAAO,IAAI,oBAAoB,CACtD,iBACW,0BAA0B,iBACzB,UAAU,CAAC,MAAM,mBACf,UAAU,CAAC,OAAO,EACjC,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,aAE7C,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAC9B,KAAC,iBAAiB,IAChB,GAAG,EAAE,UAAU,CAAC,UAAU,EAC1B,GAAG,EAAE,UAAU,CAAC,QAAQ,EACxB,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAC7B,gBAAgB,EAAC,SAAS,EAC1B,gBAAgB,EAAC,SAAS,EAC1B,eAAe,EACb,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,YAGxD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sBAAsB,gBACpB,WAAW,UAAU,CAAC,QAAQ,EAAE,YAE3C,KAAK,GACC,GACS,CACrB,CAAC,CAAC,CAAC,CACF,KAAK,CACN,EAEA,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,CACpC,cACE,SAAS,EAAC,+DAA+D,iBAC7D,yBAAyB,EACrC,IAAI,EAAC,QAAQ,gBACF,iBAAiB,YAE5B,KAAC,OAAO,IACN,SAAS,EAAC,4CAA4C,EACtD,WAAW,EAAE,GAAG,GAChB,GACE,CACP,EACA,UAAU,CAAC,MAAM,KAAK,OAAO,IAAI,CAChC,cACE,SAAS,EAAC,6FAA6F,iBAC3F,4BAA4B,EACxC,IAAI,EAAC,OAAO,8BAGR,CACP,EAEA,CAAC,QAAQ,IAAI,CACZ,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EACvC,SAAS,EAAC,+JAA+J,gBAC9J,cAAc,EACzB,KAAK,EAAC,cAAc,iBACR,sBAAsB,YAElC,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,GAClC,CACV,KAnEI,UAAU,CAAC,GAAG,CAoEf,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Comment } from "../../types";
2
+ /**
3
+ * How following a quote reaches the quoted comment:
4
+ * - `dom`: reveal the quoted comment inside the same surface (list, popover)
5
+ * by scrolling its nearest feedback scroll container;
6
+ * - `select`: select the quoted comment so the owning surface pins its thread
7
+ * and the canvas scrolls to its anchor (the comment margin).
8
+ */
9
+ export type FeedbackNavigation = "dom" | "select";
10
+ export declare function CommentQuote({ comment, navigation, }: {
11
+ comment: Comment;
12
+ navigation?: FeedbackNavigation;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { formatDate } from "../utils";
3
+ import { useEditContext, useFieldsEditContext } from "../client/editContext";
4
+ import { useFeedbackAuthor } from "./feedbackAvatar";
5
+ import { stripCommentImages } from "./commentImages";
6
+ import { EmojiText } from "../../components/emoji/EmojiText";
7
+ import { isTextSelectionClick, selectFeedbackComment, } from "./feedbackSelection";
8
+ import { revealInFeedbackScrollContainer } from "./scrollWithin";
9
+ export function CommentQuote({ comment, navigation = "dom", }) {
10
+ const author = useFeedbackAuthor(comment);
11
+ const editContext = useEditContext();
12
+ const fieldsContext = useFieldsEditContext();
13
+ const created = comment.created ? new Date(comment.created) : undefined;
14
+ const date = created && !Number.isNaN(created.getTime()) ? created : undefined;
15
+ return (_jsx("button", { type: "button", className: "border-border-default hover:bg-neutral-grey-5 focus-visible:ring-highlight-100 mb-2 block w-full cursor-pointer rounded-md border bg-white px-3 py-2 text-left shadow-sm focus-visible:ring-2 focus-visible:outline-none", "aria-label": `Jump to comment by ${author.displayName}`, "data-testid": "comment-quote", onClick: (event) => {
16
+ event.stopPropagation();
17
+ if (isTextSelectionClick(event.currentTarget, event))
18
+ return;
19
+ if (navigation === "select") {
20
+ void selectFeedbackComment(comment, editContext, fieldsContext);
21
+ return;
22
+ }
23
+ // Keep navigation within the surface containing this quote: the same
24
+ // comment can also be mounted in the sidebar behind an open popover.
25
+ const thread = event.currentTarget.closest("[data-comment-thread]");
26
+ const target = Array.from(thread?.querySelectorAll("[data-comment-id]") || []).find((element) => element.dataset.commentId === comment.id);
27
+ if (!target)
28
+ return;
29
+ target.focus({ preventScroll: true });
30
+ // Only the surface's own scroll container moves; scrollIntoView would
31
+ // also scroll every ancestor (editor shell, overlay roots).
32
+ revealInFeedbackScrollContainer(target, { behavior: "smooth" });
33
+ }, children: _jsxs("span", { className: "border-neutral-grey-50 block min-w-0 border-l-2 pl-2", children: [_jsxs("span", { className: "text-neutral-grey-50 mb-0.5 flex flex-wrap items-baseline gap-x-2 text-xs leading-4", children: [_jsx("span", { className: "min-w-0 truncate font-medium", children: author.displayName }), date && (_jsx("time", { dateTime: date.toISOString(), children: formatDate(date) }))] }), _jsx("span", { className: "text-neutral-grey-100 line-clamp-3 text-sm leading-5 [overflow-wrap:anywhere] whitespace-pre-wrap select-text", children: _jsx(EmojiText, { text: stripCommentImages(comment.text) }) })] }) }));
34
+ }
35
+ //# sourceMappingURL=CommentQuote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentQuote.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentQuote.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AAWjE,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,GAAG,KAAK,GAInB;IACC,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpE,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0NAA0N,gBACxN,sBAAsB,MAAM,CAAC,WAAW,EAAE,iBAC1C,eAAe,EAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,oBAAoB,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC;gBAAE,OAAO;YAC7D,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC5B,KAAK,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YACD,qEAAqE;YACrE,qEAAqE;YACrE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,MAAM,EAAE,gBAAgB,CAAc,mBAAmB,CAAC,IAAI,EAAE,CACjE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,sEAAsE;YACtE,4DAA4D;YAC5D,+BAA+B,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,CAAC,YAED,gBAAM,SAAS,EAAC,sDAAsD,aACpE,gBAAM,SAAS,EAAC,qFAAqF,aACnG,eAAM,SAAS,EAAC,8BAA8B,YAC3C,MAAM,CAAC,WAAW,GACd,EACN,IAAI,IAAI,CACP,eAAM,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,YAAG,UAAU,CAAC,IAAI,CAAC,GAAQ,CAC9D,IACI,EACP,eAAM,SAAS,EAAC,+GAA+G,YAC7H,KAAC,SAAS,IAAC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAI,GAChD,IACF,GACA,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { PickableRect } from "./commentTargetPicker";
2
+ /**
3
+ * Outlines what a click would comment on while picking a comment target,
4
+ * with a label naming it. Never takes pointer events: the surface or form
5
+ * underneath owns the pointer.
6
+ */
7
+ export declare function CommentTargetOutline({ rect, label, position, zIndex, }: {
8
+ rect: PickableRect;
9
+ label: string;
10
+ /** `absolute` inside the canvas overlay layer, `fixed` over editor forms. */
11
+ position: "absolute" | "fixed";
12
+ zIndex: number;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { MessageCirclePlus } from "lucide-react";
3
+ /**
4
+ * Outlines what a click would comment on while picking a comment target,
5
+ * with a label naming it. Never takes pointer events: the surface or form
6
+ * underneath owns the pointer.
7
+ */
8
+ export function CommentTargetOutline({ rect, label, position, zIndex, }) {
9
+ // The label sits above the box, or inside its top edge when there is no
10
+ // room above (targets at the very top of the page or viewport).
11
+ const labelInside = rect.y < 22;
12
+ return (_jsx("div", { "data-testid": "comment-target-outline", className: "border-highlight-100 bg-highlight-100/5 pointer-events-none rounded-[3px] border-2", style: {
13
+ position,
14
+ left: rect.x,
15
+ top: rect.y,
16
+ width: rect.width,
17
+ height: rect.height,
18
+ zIndex,
19
+ }, children: _jsxs("div", { "data-testid": "comment-target-label", className: "bg-highlight-100 absolute left-[-2px] flex max-w-[260px] items-center gap-1 rounded-[3px] px-1.5 py-0.5 text-[11px] leading-4 font-medium whitespace-nowrap text-white", style: labelInside ? { top: -2 } : { bottom: "100%" }, children: [_jsx(MessageCirclePlus, { className: "h-3 w-3 shrink-0", strokeWidth: 1.5 }), _jsx("span", { className: "truncate", children: label })] }) }));
20
+ }
21
+ //# sourceMappingURL=CommentTargetOutline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentTargetOutline.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentTargetOutline.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,GAOP;IACC,wEAAwE;IACxE,gEAAgE;IAChE,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAEhC,OAAO,CACL,6BACc,wBAAwB,EACpC,SAAS,EAAC,oFAAoF,EAC9F,KAAK,EAAE;YACL,QAAQ;YACR,IAAI,EAAE,IAAI,CAAC,CAAC;YACZ,GAAG,EAAE,IAAI,CAAC,CAAC;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM;SACP,YAED,8BACc,sBAAsB,EAClC,SAAS,EAAC,wKAAwK,EAClL,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,aAErD,KAAC,iBAAiB,IAAC,SAAS,EAAC,kBAAkB,EAAC,WAAW,EAAE,GAAG,GAAI,EACpE,eAAM,SAAS,EAAC,UAAU,YAAE,KAAK,GAAQ,IACrC,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The editor-document half of comment target picking: form fields become
3
+ * pickable, the picker cursor applies across the editor, Escape or a click on
4
+ * anything that is not a target leaves the mode. Mounted only while picking.
5
+ * (The canvas is covered by `CommentTargetPickerCanvasLayer`.)
6
+ */
7
+ export declare function CommentTargetPickerDomLayer(): import("react").ReactPortal | null;