@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,377 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, } from "react";
3
+ import { ChevronDown, ChevronsLeft, ChevronsRight, ChevronUp, PenLine, X, } from "lucide-react";
4
+ import { useEditContext, useFieldsEditContext } from "../client/editContext";
5
+ import { cn } from "../../lib/utils";
6
+ import { IframeOverlayProvider } from "../page-editor-chrome/overlay/IframeOverlayProvider";
7
+ import { getBridgeOverlayGeometryDetail } from "../page-editor-chrome/overlay/geometry";
8
+ import { beginAddComment, COMMENT_PICKER_IGNORE_ATTRIBUTE, } from "../reviews/commentTargetPicker";
9
+ import { CommentThreadCard } from "../reviews/CommentThreadCard";
10
+ import { FeedbackDraftsProvider } from "../reviews/feedbackDrafts";
11
+ import { FeedbackModeIntro } from "../reviews/FeedbackModeIntro";
12
+ import { FEEDBACK_SIDEBAR_TEXT_CLASS } from "../reviews/feedbackSidebarText";
13
+ import { clearHoveredFeedback, setHoveredFeedback, } from "../reviews/feedbackHoverState";
14
+ import { selectFeedbackComment, selectFeedbackSuggestedEdit, } from "../reviews/feedbackSelection";
15
+ import { resolveSelectedThreadId } from "../reviews/feedbackThreadSelection";
16
+ import { createSmoothWheelForwarder, findScrollableAncestor, } from "../reviews/feedbackWheelForwarding";
17
+ import { enterSuggestionsMode, exitSuggestionsMode, } from "../reviews/openCommentsFeedback";
18
+ import { FEEDBACK_SCROLLABLE_ATTRIBUTE, scrollElementIntoContainer, } from "../reviews/scrollWithin";
19
+ import { SuggestionThreadCard } from "../reviews/SuggestionThreadCard";
20
+ import { useFeedbackThreads } from "../reviews/useFeedbackThreads";
21
+ import { useMeasuredHeights } from "../reviews/useMeasuredHeights";
22
+ import { usePendingFeedbackFocus } from "../reviews/usePendingFeedbackFocus";
23
+ import { FEEDBACK_MARGIN_CARD_GAP, FEEDBACK_MARGIN_RAIL_BLEED, FEEDBACK_MARGIN_WIDTH, FeedbackMarginController, } from "./FeedbackMarginController";
24
+ import { FEEDBACK_MARGIN_MIN_CANVAS_WIDTH, getCardBodyMaxHeight, getFeedbackMarginRoom, } from "./feedbackMarginLayout";
25
+ import { FeedbackMarginMarker } from "./FeedbackMarginMarker";
26
+ import { FeedbackMarginResizeHandle } from "./FeedbackMarginResizeHandle";
27
+ import { FEEDBACK_MARGIN_MIN_WIDTH, setFeedbackMarginCollapsed, useFeedbackMarginPreferredWidth, } from "./feedbackMarginWidth";
28
+ import { useCanvasMarginSource, useFormMarginSource, } from "./feedbackMarginSources";
29
+ import { usePageViewState } from "./pageViewContext";
30
+ export { FEEDBACK_MARGIN_MIN_WIDTH, FEEDBACK_MARGIN_RAIL_WIDTH, FEEDBACK_MARGIN_WIDTH, } from "./FeedbackMarginController";
31
+ /**
32
+ * Word-style comment margin beside the canvas: a column where every
33
+ * comment/suggestion card sits level with the text it is about. It carries no
34
+ * controls; adding, suggesting and filtering live in the toolbar.
35
+ *
36
+ * In a narrow pane the column narrows, then collapses into a rail of markers
37
+ * (the canvas keeps its width); the rail can be expanded into the full column
38
+ * floating over the canvas edge. Dragging the column's edge past its minimum
39
+ * collapses it into the same rail where the pane has room for it.
40
+ */
41
+ export function FeedbackMargin({ iframe, pageViewContext, height, size, maxResizeWidth, invalidationKey, deferredInvalidationMs, }) {
42
+ const bridgeGeometry = usePageViewState(pageViewContext, (state) => state.bridgeGeometry);
43
+ // The overlay provider reads its seed once, when it mounts.
44
+ const seedGeometry = useMemo(() => getBridgeOverlayGeometryDetail(bridgeGeometry), [bridgeGeometry]);
45
+ const isRail = size.presentation === "rail";
46
+ // A rail the user collapsed the column into has room beside it: expanding
47
+ // it docks the column again instead of floating it over the canvas.
48
+ const collapsedByUser = isRail && !!size.collapsed;
49
+ const [expanded, setExpanded] = useState(false);
50
+ useEffect(() => {
51
+ if (!isRail || collapsedByUser)
52
+ setExpanded(false);
53
+ }, [isRail, collapsedByUser]);
54
+ const floating = isRail && !collapsedByUser && expanded;
55
+ const presentation = isRail && !expanded ? "rail" : "full";
56
+ const width = floating ? FEEDBACK_MARGIN_WIDTH : size.width;
57
+ // The bridge only scrolls the canvas instantly; easing wheel notches here
58
+ // makes the margin scroll like the canvas itself.
59
+ const wheelForwarder = useMemo(() => createSmoothWheelForwarder((y) => !!pageViewContext.requestBridgeScrollBy?.({ y, behavior: "instant" }), () => !!pageViewContext.requestBridgeScrollBy), [pageViewContext]);
60
+ useEffect(() => () => wheelForwarder.cancel(), [wheelForwarder]);
61
+ // The slot keeps the width the pane gave the column, so expanding the rail
62
+ // floats the full column over the canvas instead of reflowing the page.
63
+ return (_jsx(FeedbackDraftsProvider, { children: _jsx("div", { "data-testid": "feedback-margin-slot", "data-feedback-margin-presentation": size.presentation, className: cn("relative shrink-0", isRail && "z-40"), style: { width: size.width, height }, children: _jsx(FeedbackMarginColumn, { layout: "overlay", height: "100%", width: width, presentation: presentation, floating: floating, resizable: !isRail || collapsedByUser, collapsible: true, maxResizeWidth: maxResizeWidth, onExpandedChange: !isRail
64
+ ? undefined
65
+ : collapsedByUser
66
+ ? (next) => next && setFeedbackMarginCollapsed(false)
67
+ : setExpanded, onWheelForward: wheelForwarder.forward, renderLayer: (layerProps) => iframe && (_jsx(IframeOverlayProvider, { iframe: iframe, mode: "scrolling", axis: "vertical", layerWidth: width, overflow: "clip", scrollScale: 1, visualScale: 1, invalidationKey: invalidationKey, deferredInvalidationMs: deferredInvalidationMs, seedGeometry: seedGeometry,
68
+ // Rail cards float over the canvas, left of the rail.
69
+ bleed: presentation === "rail"
70
+ ? { left: FEEDBACK_MARGIN_RAIL_BLEED }
71
+ : 0, children: _jsx(CanvasMarginLayer, { ...layerProps, pageViewContext: pageViewContext }) })) }) }) }));
72
+ }
73
+ function CanvasMarginLayer({ pageViewContext, ...layerProps }) {
74
+ const source = useCanvasMarginSource(pageViewContext);
75
+ return _jsx(FeedbackMarginController, { ...layerProps, ...source });
76
+ }
77
+ /**
78
+ * The same margin beside the item form (items without a canvas): it sits in
79
+ * the form's own scroll container, so the cards scroll natively with the
80
+ * fields they are anchored to.
81
+ */
82
+ export function FormFeedbackMargin({ scroller, form, }) {
83
+ const viewportHeight = useElementHeight(scroller);
84
+ const scrollerWidth = useElementWidth(scroller);
85
+ const preferredWidth = useFeedbackMarginPreferredWidth();
86
+ // The form keeps as much room as the canvas does beside the column.
87
+ const room = scroller
88
+ ? getFeedbackMarginRoom({
89
+ paneWidth: scrollerWidth,
90
+ reservedWidth: 0,
91
+ minCanvasWidth: FEEDBACK_MARGIN_MIN_CANVAS_WIDTH,
92
+ })
93
+ : undefined;
94
+ const width = room === undefined
95
+ ? preferredWidth
96
+ : Math.max(FEEDBACK_MARGIN_MIN_WIDTH, Math.min(preferredWidth, room));
97
+ return (_jsx(FeedbackDraftsProvider, { children: _jsx(FeedbackMarginColumn, { layout: "flow", viewportHeight: viewportHeight, width: width, resizable: true, maxResizeWidth: room, renderLayer: (layerProps) => (_jsx("div", { className: "pointer-events-none absolute inset-0", children: _jsx(FormMarginLayer, { ...layerProps, scroller: scroller, form: form }) })) }) }));
98
+ }
99
+ function FormMarginLayer({ scroller, form, ...layerProps }) {
100
+ const source = useFormMarginSource(scroller, form, layerProps.threads);
101
+ return _jsx(FeedbackMarginController, { ...layerProps, ...source });
102
+ }
103
+ export function useElementWidth(element) {
104
+ const [width, setWidth] = useState(() => element?.clientWidth ?? 0);
105
+ useLayoutEffect(() => {
106
+ if (!element) {
107
+ setWidth(0);
108
+ return;
109
+ }
110
+ setWidth(element.clientWidth);
111
+ if (typeof ResizeObserver === "undefined")
112
+ return;
113
+ const observer = new ResizeObserver(() => setWidth(element.clientWidth));
114
+ observer.observe(element);
115
+ return () => observer.disconnect();
116
+ }, [element]);
117
+ return width;
118
+ }
119
+ export function useElementHeight(element) {
120
+ const [height, setHeight] = useState(() => element?.offsetHeight ?? 0);
121
+ useLayoutEffect(() => {
122
+ if (!element) {
123
+ setHeight(0);
124
+ return;
125
+ }
126
+ setHeight(element.offsetHeight);
127
+ if (typeof ResizeObserver === "undefined")
128
+ return;
129
+ const observer = new ResizeObserver((entries) => {
130
+ const entry = entries[0];
131
+ if (!entry)
132
+ return;
133
+ setHeight(entry.borderBoxSize?.[0]?.blockSize ?? entry.contentRect.height);
134
+ });
135
+ observer.observe(element, { box: "border-box" });
136
+ return () => observer.disconnect();
137
+ }, [element]);
138
+ return height;
139
+ }
140
+ const EMPTY_REPORT = {
141
+ mode: "anchored",
142
+ orderedIds: [],
143
+ unplacedIds: [],
144
+ };
145
+ function FeedbackMarginColumn({ layout, height, viewportHeight, width = FEEDBACK_MARGIN_WIDTH, presentation = "full", floating = false, resizable = false, collapsible = false, maxResizeWidth, onExpandedChange, renderLayer, onWheelForward, }) {
146
+ const editContext = useEditContext();
147
+ const fieldsContext = useFieldsEditContext();
148
+ usePendingFeedbackFocus();
149
+ const feedback = useFeedbackThreads();
150
+ const { threads } = feedback;
151
+ const isFlow = layout === "flow";
152
+ const isRail = presentation === "rail";
153
+ const pinnedId = resolveSelectedThreadId(threads, editContext?.selectedComment, editContext?.selectedSuggestedEdit);
154
+ const { heights, registerCard, prune, syncMeasurements, observeMutations } = useMeasuredHeights();
155
+ useEffect(() => {
156
+ prune(threads.map((thread) => thread.id));
157
+ }, [threads, prune]);
158
+ // Cards register their elements during commit; observe and seed their
159
+ // heights before paint so a new card never lingers hidden.
160
+ useLayoutEffect(() => {
161
+ syncMeasurements();
162
+ });
163
+ const columnRef = useRef(null);
164
+ const [columnElement, setColumnElement] = useState(null);
165
+ const [noticeElement, setNoticeElement] = useState(null);
166
+ const [footerElement, setFooterElement] = useState(null);
167
+ const columnHeight = useElementHeight(columnElement);
168
+ const noticeHeight = useElementHeight(noticeElement);
169
+ const footerHeight = useElementHeight(footerElement);
170
+ const visibleHeight = isFlow ? (viewportHeight ?? 0) : columnHeight;
171
+ const bodyMaxHeight = getCardBodyMaxHeight(visibleHeight);
172
+ const bindColumn = useCallback((element) => {
173
+ columnRef.current = element;
174
+ setColumnElement(element);
175
+ }, []);
176
+ // Cards grow and shrink through their own renders (composer, "Show more",
177
+ // replies); re-measure after any DOM change in the column.
178
+ useEffect(() => observeMutations(columnElement), [columnElement, observeMutations]);
179
+ const [report, setReport] = useState(EMPTY_REPORT);
180
+ const handleLayoutChange = useCallback((next) => setReport(next), []);
181
+ const [focusEpoch, setFocusEpoch] = useState(0);
182
+ const [footerExpanded, setFooterExpanded] = useState(false);
183
+ const pinnedIsUnplaced = !!pinnedId && report.unplacedIds.includes(pinnedId);
184
+ // The rail has no footer: a selected thread that is not on the page opens
185
+ // the floating column. Only a new selection does, so collapsing sticks.
186
+ const expandRef = useRef(undefined);
187
+ expandRef.current =
188
+ isRail && onExpandedChange ? () => onExpandedChange(true) : undefined;
189
+ useEffect(() => {
190
+ if (!pinnedIsUnplaced)
191
+ return;
192
+ setFooterExpanded(true);
193
+ expandRef.current?.();
194
+ }, [pinnedIsUnplaced, pinnedId]);
195
+ useEffect(() => {
196
+ if (report.unplacedIds.length === 0)
197
+ setFooterExpanded(false);
198
+ }, [report.unplacedIds.length]);
199
+ const threadsById = useMemo(() => new Map(threads.map((thread) => [thread.id, thread])), [threads]);
200
+ const clearSelection = useCallback(() => {
201
+ editContext?.setSelectedComment(undefined);
202
+ editContext?.setSelectedSuggestedEdit(undefined);
203
+ }, [editContext]);
204
+ const toggleThread = useCallback((id) => {
205
+ const thread = threadsById.get(id);
206
+ if (!thread)
207
+ return;
208
+ if (id === pinnedId) {
209
+ clearSelection();
210
+ return;
211
+ }
212
+ if (thread.kind === "comment") {
213
+ void selectFeedbackComment(thread.root, editContext, fieldsContext);
214
+ }
215
+ else {
216
+ selectFeedbackSuggestedEdit(thread.suggestion, editContext, fieldsContext);
217
+ }
218
+ }, [threadsById, pinnedId, clearSelection, editContext, fieldsContext]);
219
+ // A floating card covers the canvas; Escape puts it away unless it is the
220
+ // key that ends typing in a field.
221
+ const railCardOpen = isRail && !!pinnedId;
222
+ useEffect(() => {
223
+ if (!railCardOpen)
224
+ return;
225
+ const onKeyDown = (event) => {
226
+ if (event.key !== "Escape" || event.defaultPrevented)
227
+ return;
228
+ const active = document.activeElement;
229
+ if (active instanceof HTMLElement &&
230
+ (active.tagName === "TEXTAREA" ||
231
+ active.tagName === "INPUT" ||
232
+ active.isContentEditable)) {
233
+ return;
234
+ }
235
+ clearSelection();
236
+ };
237
+ document.addEventListener("keydown", onKeyDown);
238
+ return () => document.removeEventListener("keydown", onKeyDown);
239
+ }, [railCardOpen, clearSelection]);
240
+ const renderMarker = useCallback((id, { selected, hovered }) => {
241
+ const thread = threadsById.get(id);
242
+ if (!thread)
243
+ return null;
244
+ return (_jsx(FeedbackMarginMarker, { thread: thread, resolvedAuthorName: feedback.getAuthorName(thread.kind === "comment" ? thread.root : thread.suggestion), selected: selected, hovered: hovered, onToggle: () => toggleThread(id), onHoverChange: (hovering) => hovering
245
+ ? setHoveredFeedback({ kind: thread.kind, id: thread.id })
246
+ : clearHoveredFeedback(thread.id) }));
247
+ }, [threadsById, feedback.getAuthorName, toggleThread]);
248
+ const renderCard = useCallback((id, { selected, dimmed, context = false, floating: floatingCard = false, }) => {
249
+ const thread = threadsById.get(id);
250
+ if (!thread)
251
+ return null;
252
+ const onHoverChange = (hovered) => hovered
253
+ ? setHoveredFeedback({ kind: thread.kind, id: thread.id })
254
+ : clearHoveredFeedback(thread.id);
255
+ const card = thread.kind === "suggestion" ? (_jsx(SuggestionThreadCard, { thread: thread, getAuthorName: feedback.getAuthorName, resolvedAuthorNames: feedback.resolvedAuthorNames, navigation: "select", bodyMaxHeight: bodyMaxHeight, balloon: true, showContext: context, onHoverChange: onHoverChange, cardRef: registerCard(thread.id) })) : (_jsx(CommentThreadCard, { thread: thread, availableTags: feedback.availableTags, getAuthorName: feedback.getAuthorName, resolvedAuthorNames: feedback.resolvedAuthorNames, selected: selected, navigation: "select", bodyMaxHeight: bodyMaxHeight, balloon: true, showContext: context, onHoverChange: onHoverChange, cardRef: registerCard(thread.id) }));
256
+ if (floatingCard) {
257
+ // A draft closes through its own Cancel; a saved thread through the
258
+ // close button, its marker or Escape.
259
+ const isDraft = thread.kind === "comment" && !!thread.root.isNew;
260
+ return (_jsxs("div", { className: "relative rounded-md shadow-lg", children: [card, !isDraft && (_jsx("button", { type: "button", "data-testid": "feedback-margin-floating-close", "aria-label": "Close", title: "Close", className: "border-border-default text-neutral-grey-50 hover:text-neutral-grey-100 absolute -top-2 -left-2 z-10 flex size-5 cursor-pointer items-center justify-center rounded-full border bg-white shadow-sm", onClick: (event) => {
261
+ event.stopPropagation();
262
+ clearSelection();
263
+ }, children: _jsx(X, { size: 12, strokeWidth: 1.5 }) }))] }));
264
+ }
265
+ return (_jsx("div", { className: cn("transition-opacity duration-150", dimmed && "opacity-70"), children: card }));
266
+ }, [
267
+ threadsById,
268
+ feedback.getAuthorName,
269
+ feedback.resolvedAuthorNames,
270
+ feedback.availableTags,
271
+ bodyMaxHeight,
272
+ registerCard,
273
+ clearSelection,
274
+ ]);
275
+ const handleWheel = (event) => {
276
+ const column = columnRef.current;
277
+ if (!column || !onWheelForward)
278
+ return;
279
+ // A popover portaled to the body (emoji picker, mention list) is still a
280
+ // React child of the column, so its wheel events bubble here; they scroll
281
+ // the popover, not the canvas.
282
+ if (!column.contains(event.target))
283
+ return;
284
+ const container = findScrollableAncestor(event.target, column, event.deltaY);
285
+ if (container)
286
+ return; // a card body or list scrolls natively
287
+ if (report.mode !== "anchored")
288
+ return;
289
+ if (onWheelForward(event.deltaY, event.deltaMode))
290
+ event.stopPropagation();
291
+ };
292
+ const handleAddComment = () => beginAddComment(editContext);
293
+ const handleStartSuggesting = () => enterSuggestionsMode(editContext, { reason: "sidebar" });
294
+ const handleStopSuggesting = () => exitSuggestionsMode(editContext, { reason: "sidebar" });
295
+ const showEmptyState = !isRail &&
296
+ threads.length === 0 &&
297
+ feedback.commentsLoaded &&
298
+ !feedback.isSuggestionsMode;
299
+ const minY = noticeHeight + FEEDBACK_MARGIN_CARD_GAP;
300
+ const mode = report.mode;
301
+ const showTopBar = !isRail && (floating || feedback.isSuggestionsMode);
302
+ return (_jsxs("div", { ref: bindColumn, "data-testid": "comments-suggestions-panel", "data-feedback-margin-mode": mode, "data-feedback-margin-layout": layout, "data-feedback-margin-presentation": floating ? "floating" : presentation, "data-feedback-margin-min-y": minY, className: cn(FEEDBACK_SIDEBAR_TEXT_CLASS, "border-border-default bg-neutral-grey-5 relative shrink-0 border-l select-text", isFlow && "flex flex-col", floating && "absolute top-0 right-0 shadow-xl"), style: { width, height }, onWheelCapture: onWheelForward ? handleWheel : undefined, onBlurCapture: () => setFocusEpoch((epoch) => epoch + 1), children: [resizable && !floating && (_jsx(FeedbackMarginResizeHandle, { width: width, maxWidth: maxResizeWidth, grip: !isFlow, collapsible: collapsible, collapsed: isRail })), showTopBar && (_jsxs("div", { ref: setNoticeElement, className: cn("bg-neutral-grey-5 z-20", isFlow ? "sticky top-0" : "absolute inset-x-0 top-0"), children: [floating && (_jsxs("div", { className: "flex items-center gap-1 pt-1.5 pr-1.5 pl-3", children: [_jsx("span", { className: "text-neutral-grey-100 min-w-0 flex-1 truncate font-medium", children: "Comments" }), _jsx("button", { type: "button", "data-testid": "feedback-margin-collapse", "aria-label": "Collapse comments", title: "Collapse comments", className: "text-neutral-grey-50 hover:bg-neutral-grey-10 hover:text-neutral-grey-100 flex size-6 cursor-pointer items-center justify-center rounded", onClick: () => onExpandedChange?.(false), children: _jsx(ChevronsRight, { size: 16, strokeWidth: 1.5 }) })] })), feedback.isSuggestionsMode && (_jsx(SuggestingNotice, { onStopSuggesting: handleStopSuggesting }))] })), isRail && (_jsxs("div", { ref: setNoticeElement, className: "bg-neutral-grey-5 absolute inset-x-0 top-0 z-20 flex flex-col items-center gap-1 pt-1.5", children: [onExpandedChange && (_jsx("button", { type: "button", "data-testid": "feedback-margin-expand", "aria-label": "Expand comments", title: "Expand comments", className: "text-neutral-grey-50 hover:bg-neutral-grey-10 hover:text-neutral-grey-100 flex size-6 cursor-pointer items-center justify-center rounded", onClick: () => onExpandedChange(true), children: _jsx(ChevronsLeft, { size: 16, strokeWidth: 1.5 }) })), feedback.isSuggestionsMode && (_jsx("span", { "data-testid": "feedback-margin-rail-suggesting", title: "Suggesting: page edits are saved as suggestions.", className: "text-highlight-100 flex size-6 items-center justify-center", children: _jsx(PenLine, { size: 14, strokeWidth: 1 }) }))] })), showEmptyState && (_jsx("div", { className: "relative z-10 px-2", style: { paddingTop: minY }, [COMMENT_PICKER_IGNORE_ATTRIBUTE]: "", children: _jsx(FeedbackModeIntro, { variant: "empty", canSuggest: feedback.suggestionsAvailable, onAddComment: handleAddComment, onStartSuggesting: handleStartSuggesting }) })), renderLayer({
303
+ threads,
304
+ heights,
305
+ width,
306
+ presentation,
307
+ minY,
308
+ footerHeight,
309
+ pinnedId,
310
+ focusEpoch,
311
+ columnRef,
312
+ onLayoutChange: handleLayoutChange,
313
+ renderCard,
314
+ renderMarker,
315
+ }), mode === "stacked" && (_jsx(FeedbackMarginStackedList, { className: isFlow ? "sticky top-0" : "absolute inset-x-0 bottom-0", style: isFlow
316
+ ? { height: Math.max(0, visibleHeight) }
317
+ : { top: noticeHeight }, ids: [...report.orderedIds, ...report.unplacedIds], pinnedId: pinnedId, renderCard: renderCard })), isRail && report.unplacedIds.length > 0 && (_jsxs("button", { ref: setFooterElement, type: "button", "data-testid": "feedback-unplaced-rail-button", "aria-label": getUnplacedLabel(report.unplacedIds.length, layout), title: getUnplacedLabel(report.unplacedIds.length, layout), className: "border-border-default text-neutral-grey-100 hover:bg-neutral-grey-10 absolute inset-x-0 bottom-0 z-20 flex h-8 cursor-pointer items-center justify-center border-t bg-white text-xs font-medium", onClick: () => {
318
+ setFooterExpanded(true);
319
+ onExpandedChange?.(true);
320
+ }, children: ["+", report.unplacedIds.length] })), !isRail && mode === "anchored" && report.unplacedIds.length > 0 && (_jsx(FeedbackMarginUnplacedFooter, { ref: setFooterElement, layout: layout, className: isFlow ? "sticky bottom-0 mt-auto" : "absolute inset-x-0 bottom-0", ids: report.unplacedIds, expanded: footerExpanded, onToggle: () => setFooterExpanded((expanded) => !expanded), maxListHeight: Math.max(160, Math.round(visibleHeight * 0.5)), pinnedId: pinnedId, renderCard: renderCard }))] }));
321
+ }
322
+ /**
323
+ * Suggestions mode changes what typing on the page does, so the margin says
324
+ * so where the suggestions appear. A notice card, not a header: the mode is
325
+ * switched from the toolbar.
326
+ */
327
+ export const SuggestingNotice = forwardRef(function SuggestingNotice({ className, onStopSuggesting }, ref) {
328
+ return (_jsx("div", { ref: ref, "data-testid": "feedback-margin-suggesting-notice", className: cn("bg-neutral-grey-5 z-20 px-2.5 pt-2", className), children: _jsxs("div", { className: "border-border-default text-neutral-grey-100 flex items-center gap-2 rounded-md border bg-white py-1 pr-1 pl-2.5 text-xs", children: [_jsx(PenLine, { size: 14, strokeWidth: 1, className: "text-highlight-100 shrink-0" }), _jsx("span", { className: "min-w-0 flex-1", children: "Suggesting: page edits are saved as suggestions." }), _jsx("button", { type: "button", className: "text-neutral-grey-50 hover:bg-neutral-grey-5 hover:text-neutral-grey-100 shrink-0 rounded px-2 py-0.5", onClick: onStopSuggesting, children: "Turn off" })] }) }));
329
+ });
330
+ export function useRevealPinnedCard(listRef, pinnedId, enabled) {
331
+ useEffect(() => {
332
+ if (!enabled || !pinnedId)
333
+ return;
334
+ const list = listRef.current;
335
+ if (!list)
336
+ return;
337
+ const card = Array.from(list.querySelectorAll("[data-feedback-thread-id]")).find((element) => element.dataset.feedbackThreadId === pinnedId);
338
+ if (!card)
339
+ return;
340
+ scrollElementIntoContainer(card, list, { behavior: "smooth" });
341
+ }, [listRef, pinnedId, enabled]);
342
+ }
343
+ function FeedbackMarginStackedList({ className, style, ids, pinnedId, renderCard, }) {
344
+ const listRef = useRef(null);
345
+ useRevealPinnedCard(listRef, pinnedId, true);
346
+ return (_jsxs("div", { ref: listRef, "data-testid": "feedback-margin-stacked-list", className: cn("z-10 space-y-3 overflow-auto p-3", className), style: style, [FEEDBACK_SCROLLABLE_ATTRIBUTE]: "", children: [_jsx("p", { "data-testid": "feedback-margin-stacked-hint", className: "text-neutral-grey-50 px-0.5 leading-4", children: "Too many comments to show beside their text. Listed in page order; select one to find it on the page." }), ids.map((id) => (_jsx("div", { "data-feedback-margin-card": id, children: renderCard(id, {
347
+ selected: id === pinnedId,
348
+ dimmed: !!pinnedId && id !== pinnedId,
349
+ }) }, id)))] }));
350
+ }
351
+ const FeedbackMarginUnplacedFooter = forwardRef(function FeedbackMarginUnplacedFooter({ className, layout, ids, expanded, onToggle, maxListHeight, pinnedId, renderCard, }, ref) {
352
+ const listRef = useRef(null);
353
+ useRevealPinnedCard(listRef, pinnedId, expanded);
354
+ const listStyle = { maxHeight: maxListHeight };
355
+ // Only the toggle bar reserves room in the anchored layout. The expanded
356
+ // list overlays the cards: counting its height would shrink the column,
357
+ // push the layout into stacked mode, unmount this footer and flip back.
358
+ return (_jsxs("div", { "data-testid": "feedback-unplaced-footer", "data-expanded": expanded ? "true" : "false", className: cn("border-border-default z-20 border-t bg-white", className), children: [_jsxs("button", { ref: ref, type: "button", className: "text-neutral-grey-100 hover:bg-neutral-grey-5 flex w-full items-center gap-2 px-3 py-2 text-left text-xs font-medium", "aria-expanded": expanded, onClick: onToggle, children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: getUnplacedLabel(ids.length, layout) }), expanded ? (_jsx(ChevronDown, { className: "h-4 w-4 shrink-0", strokeWidth: 1 })) : (_jsx(ChevronUp, { className: "h-4 w-4 shrink-0", strokeWidth: 1 }))] }), expanded && (_jsx("div", { ref: listRef, className: "border-border-default space-y-3 overflow-auto border-t p-3", style: listStyle, [FEEDBACK_SCROLLABLE_ATTRIBUTE]: "", children: ids.map((id) => (_jsx("div", { "data-feedback-margin-card": id, children: renderCard(id, {
359
+ selected: id === pinnedId,
360
+ dimmed: !!pinnedId && id !== pinnedId,
361
+ // Not beside what they are about, so they name it.
362
+ context: true,
363
+ }) }, id))) }))] }));
364
+ });
365
+ /**
366
+ * What the footer holds depends on the surface. Beside the canvas it is
367
+ * feedback on things the page does not render. In a form it is feedback on
368
+ * fields the form does not show (hidden sections, fields of another item);
369
+ * feedback on the item as a whole sits at the top of the form instead.
370
+ */
371
+ export function getUnplacedLabel(count, layout) {
372
+ const noun = count === 1 ? "comment" : "comments";
373
+ return layout === "flow"
374
+ ? `${count} ${noun} on fields not shown here`
375
+ : `${count} ${noun} on content not shown`;
376
+ }
377
+ //# sourceMappingURL=FeedbackMargin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackMargin.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/FeedbackMargin.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { type ReactNode, type RefObject } from "react";
2
+ import type { FeedbackAnchor } from "../page-editor-chrome/overlay/feedbackAnchorMeasurements";
3
+ import type { FeedbackThread } from "../reviews/feedbackThreads";
4
+ import { type FeedbackMarginPresentation, type MarginMode } from "./feedbackMarginLayout";
5
+ import { FEEDBACK_MARGIN_MIN_WIDTH, FEEDBACK_MARGIN_RAIL_WIDTH } from "./feedbackMarginWidth";
6
+ /**
7
+ * Width of the full column before the user resizes it, and of the column
8
+ * floating over the canvas from the rail (feedbackMarginWidth).
9
+ */
10
+ export declare const FEEDBACK_MARGIN_WIDTH = 320;
11
+ export { FEEDBACK_MARGIN_MIN_WIDTH, FEEDBACK_MARGIN_RAIL_WIDTH };
12
+ export declare const FEEDBACK_MARGIN_CARD_GAP = 8;
13
+ /** Room left of the cards for the leader line's elbow. */
14
+ export declare const FEEDBACK_MARGIN_CARD_INSET_LEFT = 14;
15
+ export declare const FEEDBACK_MARGIN_CARD_INSET_RIGHT = 10;
16
+ /** How far the rail's layer reaches over the canvas (card plus its shadow). */
17
+ export declare const FEEDBACK_MARGIN_RAIL_BLEED: number;
18
+ export declare function getFeedbackMarginCardWidth(columnWidth: number): number;
19
+ export type MarginLayoutReport = {
20
+ mode: MarginMode;
21
+ /** Anchored threads, top to bottom. */
22
+ orderedIds: string[];
23
+ unplacedIds: string[];
24
+ };
25
+ export type FeedbackMarginCardRenderer = (id: string, options: {
26
+ selected: boolean;
27
+ dimmed: boolean;
28
+ floating?: boolean;
29
+ }) => ReactNode;
30
+ export type FeedbackMarginMarkerRenderer = (id: string, options: {
31
+ selected: boolean;
32
+ hovered: boolean;
33
+ }) => ReactNode;
34
+ /** Where the surface beside the column currently is, in layer coordinates. */
35
+ export type MarginLayerMetrics = {
36
+ layerHeight: number;
37
+ scrollTop: number;
38
+ };
39
+ /**
40
+ * What the column is a margin of: the canvas (anchors measured by the canvas
41
+ * overlay) or the item form (anchors are the form fields). A source reports
42
+ * where each thread's target sits and how tall the surface is.
43
+ */
44
+ export type FeedbackMarginSource = {
45
+ measure: (thread: FeedbackThread) => FeedbackAnchor | undefined;
46
+ layerMetrics: MarginLayerMetrics;
47
+ };
48
+ export type FeedbackMarginControllerProps = FeedbackMarginSource & {
49
+ threads: FeedbackThread[];
50
+ heights: Record<string, number>;
51
+ /** Width of the column the cards (or markers) sit in. */
52
+ width: number;
53
+ presentation: FeedbackMarginPresentation;
54
+ /** Top of the usable column (below the header), in layer coordinates. */
55
+ minY: number;
56
+ /** Height the fixed footer takes away at the bottom. */
57
+ footerHeight: number;
58
+ pinnedId: string | undefined;
59
+ /** Bumped when focus leaves the column; deferred mode switches resume. */
60
+ focusEpoch: number;
61
+ columnRef: RefObject<HTMLDivElement | null>;
62
+ onLayoutChange: (report: MarginLayoutReport) => void;
63
+ renderCard: FeedbackMarginCardRenderer;
64
+ renderMarker: FeedbackMarginMarkerRenderer;
65
+ };
66
+ /**
67
+ * Measures where every thread's text sits on the canvas, lays the cards out
68
+ * as balloons beside it and decides whether that layout fits. Stays mounted
69
+ * in both modes (in stacked mode it renders no cards) so the column can
70
+ * return to anchored mode when the page or the cards change.
71
+ *
72
+ * In the rail presentation the balloons are small markers, which never
73
+ * switch to the stacked list; the selected thread and any unsent draft float
74
+ * as full cards over the canvas, left of the rail and level with their marker.
75
+ */
76
+ export declare function FeedbackMarginController({ measure, layerMetrics, threads, heights, width, presentation, minY, footerHeight, pinnedId, focusEpoch, columnRef, onLayoutChange, renderCard, renderMarker, }: FeedbackMarginControllerProps): import("react").JSX.Element | null;