@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,152 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState, } from "react";
3
+ import { Download, ExternalLink, FileIcon, Loader2, Pencil, Upload, X, } from "lucide-react";
4
+ import { Button } from "../../components/ui/button";
5
+ import { useEditContext } from "../client/editContext";
6
+ import { EditorWarnings } from "../EditorWarnings";
7
+ import { FieldListFieldWithFallbacks } from "../FieldListFieldWithFallbacks";
8
+ import { SimpleIconButton } from "../ui/SimpleIconButton";
9
+ import { formatDate } from "../utils";
10
+ import { parseSitecoreDate } from "../utils/sitecoreDate";
11
+ import { getMediaFileTypeLabel, isSelectableMedia } from "./mediaFileType";
12
+ const detailFields = [
13
+ "title",
14
+ "alt",
15
+ "description",
16
+ "keywords",
17
+ "copyright",
18
+ "artist",
19
+ ];
20
+ export function MediaDetailsView({ media, language, busy, onClose, onOpenFullItem, onReplaceMedia, }) {
21
+ const editContext = useEditContext();
22
+ const repository = editContext?.itemsRepository;
23
+ const [item, setItem] = useState();
24
+ const [loading, setLoading] = useState(true);
25
+ const [error, setError] = useState(false);
26
+ const [retry, setRetry] = useState(0);
27
+ const [dragOver, setDragOver] = useState(false);
28
+ const [previewFailed, setPreviewFailed] = useState(false);
29
+ const fileInput = useRef(null);
30
+ const closeButton = useRef(null);
31
+ const itemLanguage = media.language || language;
32
+ const itemVersion = media.version ?? 0;
33
+ useEffect(() => {
34
+ if (window.matchMedia("(max-width: 1023px)").matches)
35
+ closeButton.current?.focus();
36
+ }, []);
37
+ useEffect(() => {
38
+ let cancelled = false;
39
+ if (!repository)
40
+ return;
41
+ void repository
42
+ .getItem({ id: media.id, language: itemLanguage, version: itemVersion })
43
+ .then((loaded) => {
44
+ if (cancelled)
45
+ return;
46
+ setItem(loaded);
47
+ setError(!loaded);
48
+ })
49
+ .catch(() => {
50
+ if (!cancelled)
51
+ setError(true);
52
+ })
53
+ .finally(() => {
54
+ if (!cancelled)
55
+ setLoading(false);
56
+ });
57
+ return () => {
58
+ cancelled = true;
59
+ };
60
+ }, [
61
+ repository?.getItem,
62
+ repository?.revision,
63
+ media.id,
64
+ itemLanguage,
65
+ itemVersion,
66
+ retry,
67
+ ]);
68
+ const fieldValue = (name) => {
69
+ const value = item?.fields.find((field) => field.name?.toLowerCase() === name.toLowerCase())?.value;
70
+ return typeof value === "string" || typeof value === "number"
71
+ ? String(value)
72
+ : undefined;
73
+ };
74
+ const attachmentField = item?.fields.find((field) => field.type.toLowerCase() === "attachment");
75
+ const attachment = attachmentField?.value && typeof attachmentField.value === "object"
76
+ ? attachmentField.value
77
+ : undefined;
78
+ const name = item?.name || media.name;
79
+ const extension = attachment?.extension || fieldValue("Extension") || media.extension;
80
+ const mimeType = attachment?.mimeType || fieldValue("Mime Type") || media.mimeType;
81
+ const fileName = attachment?.fileName || fieldValue("File Name") || name;
82
+ const source = attachment?.src || media.downloadUrl;
83
+ const mediaType = { ...media, extension, mimeType };
84
+ const typeLabel = getMediaFileTypeLabel(mediaType) || "File";
85
+ const isImage = isSelectableMedia(mediaType, "image");
86
+ const isVideo = isSelectableMedia(mediaType, "video");
87
+ const isAudio = mimeType?.startsWith("audio/") ||
88
+ ["mp3", "wav", "ogg", "m4a", "aac", "flac"].includes(typeLabel);
89
+ const previewUrl = media.previewUrl || source || media.thumbUrl;
90
+ const canReplace = !!item?.canWriteItem &&
91
+ !!attachmentField?.canWrite &&
92
+ editContext?.mode !== "preview";
93
+ const fields = detailFields.flatMap((name) => item?.fields.filter((field) => field.name?.toLowerCase() === name) ?? []);
94
+ const validators = editContext?.validationResult?.find((result) => result.item.id === item?.id &&
95
+ result.item.language === item?.language &&
96
+ result.item.version === item?.version)?.results ?? [];
97
+ const width = fieldValue("Width") || media.width;
98
+ const height = fieldValue("Height") || media.height;
99
+ const size = Number(fieldValue("Size") ?? media.size);
100
+ const updated = parseSitecoreDate(fieldValue("__Updated") || media.updated);
101
+ useEffect(() => {
102
+ setPreviewFailed(false);
103
+ }, [media.id, previewUrl, source]);
104
+ const handleDragOver = (event) => {
105
+ if (!Array.from(event.dataTransfer.types).includes("Files"))
106
+ return;
107
+ event.preventDefault();
108
+ event.stopPropagation();
109
+ event.dataTransfer.dropEffect = canReplace && !busy ? "move" : "none";
110
+ setDragOver(canReplace && !busy);
111
+ };
112
+ return (_jsxs("section", { "aria-label": "Media details", "data-testid": "media-details", className: "flex min-h-full flex-col bg-white", onDragEnter: handleDragOver, onDragOver: handleDragOver, onDragLeave: (event) => {
113
+ event.stopPropagation();
114
+ if (!(event.relatedTarget instanceof Node) ||
115
+ !event.currentTarget.contains(event.relatedTarget))
116
+ setDragOver(false);
117
+ }, onDrop: (event) => {
118
+ if (!Array.from(event.dataTransfer.types).includes("Files"))
119
+ return;
120
+ event.preventDefault();
121
+ event.stopPropagation();
122
+ setDragOver(false);
123
+ const file = event.dataTransfer.files[0];
124
+ if (file && canReplace && !busy)
125
+ onReplaceMedia(file);
126
+ }, children: [_jsxs("div", { className: "sticky top-0 z-10 flex items-center gap-2 border-b bg-white px-4 py-2", children: [_jsx("h3", { className: "min-w-0 flex-1 truncate text-sm font-medium", title: name, children: name }), item?.canRename && editContext?.mode !== "preview" && (_jsx(SimpleIconButton, { label: "Rename media", icon: _jsx(Pencil, { className: "h-4 w-4", strokeWidth: 1 }), disabled: busy, onClick: () => {
127
+ if (editContext)
128
+ void editContext.executeCommand({
129
+ command: editContext.configuration.commands.renameItem,
130
+ data: { items: [item] },
131
+ });
132
+ } })), _jsx(SimpleIconButton, { ref: closeButton, label: "Close media details", icon: _jsx(X, { className: "h-4 w-4", strokeWidth: 1 }), onClick: onClose })] }), _jsxs("div", { className: "bg-neutral-grey-5 relative flex min-h-44 items-center justify-center border-b p-4", children: [!previewFailed && isImage && previewUrl ? (_jsx("img", { src: previewUrl, alt: fieldValue("Alt") || name, className: "max-h-64 max-w-full object-contain", onError: () => setPreviewFailed(true) })) : !previewFailed && isVideo && source ? (_jsx("video", { src: source, controls: true, playsInline: true, preload: "metadata", "aria-label": `Video preview: ${name}`, className: "max-h-64 w-full", onError: () => setPreviewFailed(true) }, source)) : !previewFailed && isAudio && source ? (_jsx("audio", { src: source, controls: true, preload: "metadata", "aria-label": `Audio preview: ${name}`, className: "w-full", onError: () => setPreviewFailed(true) }, source)) : (_jsxs("div", { className: "text-neutral-grey-50 flex flex-col items-center gap-2 p-4 text-xs", children: [_jsx(FileIcon, { className: "h-12 w-12", strokeWidth: 1 }), _jsx("span", { children: previewFailed
133
+ ? "Preview unavailable"
134
+ : `${typeLabel.toUpperCase()} file` }), source && (_jsx("a", { href: source, target: "_blank", rel: "noreferrer", className: "underline", children: "Open file" }))] })), dragOver && (_jsx("div", { className: "border-feedback-blue bg-feedback-blue-light/80 absolute inset-2 flex items-center justify-center rounded border-2 border-dashed text-xs", children: "Drop to replace this file" }))] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2 border-b px-4 py-3", children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: (event) => onOpenFullItem(item?.descriptor ?? {
135
+ id: media.id,
136
+ language: itemLanguage,
137
+ version: itemVersion,
138
+ }, event), children: [_jsx(ExternalLink, { strokeWidth: 1 }), " Open full item"] }), source && (_jsx(Button, { asChild: true, variant: "ghost", size: "sm", children: _jsxs("a", { href: source, download: fileName, target: "_blank", rel: "noreferrer", children: [_jsx(Download, { strokeWidth: 1 }), " Download"] }) })), canReplace && (_jsxs(_Fragment, { children: [_jsx("input", { ref: fileInput, type: "file", className: "hidden", "aria-label": "Replace media file", disabled: busy, onChange: (event) => {
139
+ const file = event.target.files?.[0];
140
+ event.target.value = "";
141
+ if (file)
142
+ onReplaceMedia(file);
143
+ } }), _jsxs(Button, { type: "button", variant: "ghost", size: "sm", disabled: busy, onClick: () => fileInput.current?.click(), children: [_jsx(Upload, { strokeWidth: 1 }), " Replace file"] })] }))] }), loading ? (_jsxs("div", { role: "status", className: "text-neutral-grey-50 flex items-center gap-2 p-4 text-xs", children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), " Loading details\u2026"] })) : error ? (_jsxs("div", { role: "alert", className: "p-4 text-xs", children: ["Could not load media details.", " ", _jsx(Button, { variant: "link", size: "sm", onClick: () => {
144
+ setLoading(true);
145
+ setError(false);
146
+ setRetry((value) => value + 1);
147
+ }, children: "Retry" })] })) : (item && (_jsxs(_Fragment, { children: [_jsx(EditorWarnings, { item: item }), _jsxs("div", { className: "space-y-4 px-2 py-4", children: [fields.map((field) => (_jsx(FieldListFieldWithFallbacks, { fieldDescriptor: field.descriptor, title: field.name?.toLowerCase() === "alt" ? "Alt text" : undefined, validators: validators.filter((validator) => validator.itemId === item.id &&
148
+ validator.fieldId === field.id), simplified: true, readonly: editContext?.mode === "preview" }, field.id))), fields.length === 0 && (_jsx("p", { className: "text-neutral-grey-50 px-2 text-xs", children: "No editable details for this file. Open the full item for all fields." }))] })] }))), _jsxs("details", { className: "border-t px-4 py-3", open: true, children: [_jsx("summary", { className: "cursor-pointer text-xs font-medium", children: "File information" }), _jsxs("dl", { className: "mt-3 grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-2 text-xs", children: [_jsx("dt", { className: "text-neutral-grey-50", children: "File name" }), _jsx("dd", { className: "break-words", children: fileName }), _jsx("dt", { className: "text-neutral-grey-50", children: "Type" }), _jsx("dd", { children: typeLabel.toUpperCase() }), width && height && (_jsxs(_Fragment, { children: [_jsx("dt", { className: "text-neutral-grey-50", children: "Dimensions" }), _jsxs("dd", { children: [width, " \u00D7 ", height, " px"] })] })), Number.isFinite(size) && size > 0 && (_jsxs(_Fragment, { children: [_jsx("dt", { className: "text-neutral-grey-50", children: "Size" }), _jsx("dd", { children: size >= 1024 * 1024
149
+ ? `${(size / 1024 / 1024).toFixed(1)} MB`
150
+ : `${Math.max(1, Math.round(size / 1024))} KB` })] })), updated && (_jsxs(_Fragment, { children: [_jsx("dt", { className: "text-neutral-grey-50", children: "Modified" }), _jsx("dd", { children: formatDate(updated) })] })), (fieldValue("__Updated by") || media.updatedBy) && (_jsxs(_Fragment, { children: [_jsx("dt", { className: "text-neutral-grey-50", children: "Modified by" }), _jsx("dd", { className: "break-words", children: fieldValue("__Updated by") || media.updatedBy })] }))] })] })] }));
151
+ }
152
+ //# sourceMappingURL=MediaDetailsView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaDetailsView.js","sourceRoot":"","sources":["../../../src/editor/media-selector/MediaDetailsView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { DialogProps } from "../client/editContext";
2
+ export type UploadMediaFileDialogProps = {
3
+ parentPath: string;
4
+ };
5
+ export declare function UploadMediaFileDialog({ parentPath, onClose, }: UploadMediaFileDialogProps & DialogProps<File>): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Upload } from "lucide-react";
3
+ import { Dialog, DialogContent } from "../../components/ui/dialog";
4
+ import { StyledDialogTitle } from "../../components/ui/styled-dialog-title";
5
+ import { Button } from "../../components/ui/button";
6
+ import DialogButtons from "../ui/DialogButtons";
7
+ export function UploadMediaFileDialog({ parentPath, onClose, }) {
8
+ return (_jsx(Dialog, { open: true, onOpenChange: (open) => !open && onClose(null), children: _jsxs(DialogContent, { children: [_jsx(StyledDialogTitle, { icon: _jsx(Upload, { strokeWidth: 1 }), title: "Upload file", subtitle: `Upload to ${parentPath}` }), _jsx("div", { className: "px-8 py-6", children: _jsx("input", { type: "file", "aria-label": "File to upload", onChange: (event) => {
9
+ const file = event.target.files?.[0];
10
+ if (file)
11
+ onClose(file);
12
+ } }) }), _jsx(DialogButtons, { children: _jsx(Button, { variant: "outline", onClick: () => onClose(null), children: "Cancel" }) })] }) }));
13
+ }
14
+ //# sourceMappingURL=UploadMediaFileDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadMediaFileDialog.js","sourceRoot":"","sources":["../../../src/editor/media-selector/UploadMediaFileDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAIhD,MAAM,UAAU,qBAAqB,CAAC,EACpC,UAAU,EACV,OAAO,GACwC;IAC/C,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,QAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,YACzD,MAAC,aAAa,eACZ,KAAC,iBAAiB,IAChB,IAAI,EAAE,KAAC,MAAM,IAAC,WAAW,EAAE,CAAC,GAAI,EAChC,KAAK,EAAC,aAAa,EACnB,QAAQ,EAAE,aAAa,UAAU,EAAE,GACnC,EACF,cAAK,SAAS,EAAC,WAAW,YACxB,gBACE,IAAI,EAAC,MAAM,gBACA,gBAAgB,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;4BACrC,IAAI,IAAI;gCAAE,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC1B,CAAC,GACD,GACE,EACN,KAAC,aAAa,cACZ,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,uBAE7C,GACK,IACF,GACT,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type HTMLAttributes } from "react";
2
+ import type { ItemDescriptor } from "../pageModel";
3
+ import type { Thumbnail } from "../services/contentService";
4
+ type MediaItem = Thumbnail & {
5
+ language?: string;
6
+ version?: number;
7
+ };
8
+ type FolderTarget = {
9
+ id: string;
10
+ name: string;
11
+ language?: string;
12
+ version?: number;
13
+ };
14
+ export declare function useMediaFolderDrag({ language, images, selectedIds, disabled, onMoved, }: {
15
+ language: string;
16
+ images: MediaItem[];
17
+ selectedIds: string[];
18
+ disabled: boolean;
19
+ onMoved: (items: ItemDescriptor[]) => void;
20
+ }): {
21
+ getItemProps: (item: MediaItem, isFolder: boolean) => HTMLAttributes<HTMLElement>;
22
+ getDropProps: (target: FolderTarget) => HTMLAttributes<HTMLElement>;
23
+ dropTarget: string | undefined;
24
+ moving: boolean;
25
+ };
26
+ export {};
@@ -0,0 +1,153 @@
1
+ import { useRef, useState } from "react";
2
+ import { toast } from "sonner";
3
+ import { useEditContext } from "../client/editContext";
4
+ import { beginMediaItemPointerDrag, cancelMediaItemPointerDrag, consumeMediaItemPointerDrag, MEDIA_ITEM_DRAG_MIME, readMediaItemDrag, startMediaItemDrag, toMediaItemDescriptor, } from "./mediaItemDrag";
5
+ export function useMediaFolderDrag({ language, images, selectedIds, disabled, onMoved, }) {
6
+ const editContext = useEditContext();
7
+ const [dropTarget, setDropTarget] = useState();
8
+ const [moving, setMoving] = useState(false);
9
+ const movingRef = useRef(false);
10
+ const draggedItems = useRef([]);
11
+ const suppressClick = useRef(false);
12
+ const normalize = (id) => id.toLowerCase();
13
+ const finishDrag = () => {
14
+ cancelMediaItemPointerDrag();
15
+ draggedItems.current = [];
16
+ setDropTarget(undefined);
17
+ editContext?.dragEnd();
18
+ // A pointer fallback can emit a click after pointerup.
19
+ window.setTimeout(() => {
20
+ suppressClick.current = false;
21
+ }, 0);
22
+ };
23
+ const move = async (target, items) => {
24
+ if (disabled || movingRef.current || !items.length || !editContext)
25
+ return;
26
+ movingRef.current = true;
27
+ setMoving(true);
28
+ try {
29
+ const ids = new Set(items.map((item) => normalize(item.id)));
30
+ const destination = await editContext.itemsRepository.getItem({
31
+ id: target.id,
32
+ language: target.language || language,
33
+ version: target.version ?? 0,
34
+ });
35
+ if (!destination?.canCreate) {
36
+ toast.error("You don't have permission to move items into this folder.");
37
+ return;
38
+ }
39
+ // Check ancestry as well as self-drops, including folders found via search.
40
+ let ancestor = destination;
41
+ const visited = new Set();
42
+ while (ancestor) {
43
+ const id = normalize(ancestor.id);
44
+ if (ids.has(id)) {
45
+ toast.error("A folder cannot be moved into itself or one of its subfolders.");
46
+ return;
47
+ }
48
+ if (!ancestor.parentId || visited.has(id))
49
+ break;
50
+ visited.add(id);
51
+ ancestor = await editContext.itemsRepository.getItem({
52
+ id: ancestor.parentId,
53
+ language,
54
+ version: 0,
55
+ });
56
+ }
57
+ const moved = await editContext.operations.moveItems(items, destination.descriptor, -1);
58
+ if (moved) {
59
+ onMoved(items);
60
+ toast.success(items.length === 1
61
+ ? `Moved "${items[0].name ?? "item"}" to ${target.name}`
62
+ : `Moved ${items.length} items to ${target.name}`);
63
+ }
64
+ }
65
+ catch (error) {
66
+ editContext.showErrorToast(error);
67
+ }
68
+ finally {
69
+ movingRef.current = false;
70
+ setMoving(false);
71
+ }
72
+ };
73
+ const getDropProps = (target) => ({
74
+ onDragOver: (event) => {
75
+ const items = draggedItems.current.length
76
+ ? draggedItems.current
77
+ : editContext?.dragObject?.type === "items"
78
+ ? (editContext.dragObject.items ?? [])
79
+ : [];
80
+ const isItemDrag = items.length > 0 ||
81
+ Array.from(event.dataTransfer.types).includes(MEDIA_ITEM_DRAG_MIME);
82
+ if (!isItemDrag)
83
+ return;
84
+ event.preventDefault();
85
+ event.stopPropagation();
86
+ const allowed = !disabled &&
87
+ !movingRef.current &&
88
+ !items.some((item) => normalize(item.id) === normalize(target.id));
89
+ event.dataTransfer.dropEffect = allowed ? "move" : "none";
90
+ setDropTarget(allowed ? target.id : undefined);
91
+ },
92
+ onDragLeave: (event) => {
93
+ if (event.relatedTarget instanceof Node &&
94
+ event.currentTarget.contains(event.relatedTarget))
95
+ return;
96
+ setDropTarget(undefined);
97
+ },
98
+ onDrop: (event) => {
99
+ const drag = readMediaItemDrag(event.dataTransfer) ?? editContext?.dragObject;
100
+ if (drag?.type !== "items")
101
+ return;
102
+ event.preventDefault();
103
+ event.stopPropagation();
104
+ finishDrag();
105
+ void move(target, drag.items ?? []);
106
+ },
107
+ onPointerUp: (event) => {
108
+ const drag = consumeMediaItemPointerDrag(event.nativeEvent);
109
+ if (drag?.type !== "items")
110
+ return;
111
+ event.preventDefault();
112
+ event.stopPropagation();
113
+ suppressClick.current = true;
114
+ finishDrag();
115
+ void move(target, drag.items ?? []);
116
+ },
117
+ onClickCapture: (event) => {
118
+ if (!suppressClick.current)
119
+ return;
120
+ event.preventDefault();
121
+ event.stopPropagation();
122
+ },
123
+ });
124
+ const getItemProps = (item, isFolder) => {
125
+ const selection = selectedIds.includes(item.id)
126
+ ? images.filter((image) => selectedIds.includes(image.id))
127
+ : [item];
128
+ return {
129
+ ...(isFolder ? getDropProps(item) : {}),
130
+ draggable: !disabled && !moving,
131
+ onPointerDown: (event) => {
132
+ if (disabled || moving)
133
+ return;
134
+ beginMediaItemPointerDrag({
135
+ event: event.nativeEvent,
136
+ items: selection,
137
+ language,
138
+ });
139
+ },
140
+ onDragStart: (event) => {
141
+ if (disabled || movingRef.current) {
142
+ event.preventDefault();
143
+ return;
144
+ }
145
+ draggedItems.current = selection.map((image) => toMediaItemDescriptor(image, language));
146
+ startMediaItemDrag({ event, editContext, items: selection, language });
147
+ },
148
+ onDragEnd: finishDrag,
149
+ };
150
+ };
151
+ return { getItemProps, getDropProps, dropTarget, moving };
152
+ }
153
+ //# sourceMappingURL=useMediaFolderDrag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMediaFolderDrag.js","sourceRoot":"","sources":["../../../src/editor/media-selector/useMediaFolderDrag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function OpenPublishedPageButton(): import("react").JSX.Element | null;
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ExternalLink } from "lucide-react";
3
+ import { Button } from "../../components/ui/button";
4
+ import { Tooltip, TooltipContent, TooltipTrigger, } from "../../components/ui/tooltip";
5
+ import { useEditContext } from "../client/editContext";
6
+ import { usePageResolvedSignal } from "../page-viewer/pageViewContext";
7
+ import { publicSiteSourcePhrases } from "../settings/panels/publicSiteHelpers";
8
+ export function OpenPublishedPageButton() {
9
+ const editContext = useEditContext();
10
+ usePageResolvedSignal();
11
+ if (!editContext ||
12
+ editContext.workspaceId !== "editor" ||
13
+ editContext.isMobile)
14
+ return null;
15
+ const context = editContext.getActiveSlotContext()?.primaryPageViewContext;
16
+ const url = context?.publishedUrl;
17
+ if (!url)
18
+ return null;
19
+ const source = context.publicSite?.source;
20
+ return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { size: "iconSm", variant: "ghost", asChild: true, children: _jsx("a", { href: url, target: "_blank", rel: "noreferrer noopener", "aria-label": "Open published page", "data-testid": "open-published-page", "data-published-url": url, "data-public-site-source": source, children: _jsx(ExternalLink, { strokeWidth: 1, className: "h-4 w-4" }) }) }) }), _jsxs(TooltipContent, { children: [_jsxs("div", { children: ["Open published page", source ? ` — via ${publicSiteSourcePhrases[source] ?? source}` : ""] }), _jsx("div", { className: "mt-1 max-w-md font-mono text-xs break-all", dir: "ltr", children: url })] })] }));
21
+ }
22
+ //# sourceMappingURL=OpenPublishedPageButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenPublishedPageButton.js","sourceRoot":"","sources":["../../../src/editor/menubar/OpenPublishedPageButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,MAAM,UAAU,uBAAuB;IACrC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,qBAAqB,EAAE,CAAC;IACxB,IACE,CAAC,WAAW;QACZ,WAAW,CAAC,WAAW,KAAK,QAAQ;QACpC,WAAW,CAAC,QAAQ;QAEpB,OAAO,IAAI,CAAC;IACd,MAAM,OAAO,GAAG,WAAW,CAAC,oBAAoB,EAAE,EAAE,sBAAsB,CAAC;IAC3E,MAAM,GAAG,GAAG,OAAO,EAAE,YAAY,CAAC;IAClC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;IAC1C,OAAO,CACL,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,kBAC3C,YACE,IAAI,EAAE,GAAG,EACT,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,gBACd,qBAAqB,iBACpB,qBAAqB,wBACb,GAAG,6BACE,MAAM,YAE/B,KAAC,YAAY,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,GAClD,GACG,GACM,EACjB,MAAC,cAAc,eACb,iDAEG,MAAM,CAAC,CAAC,CAAC,UAAU,uBAAuB,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAChE,EACN,cAAK,SAAS,EAAC,2CAA2C,EAAC,GAAG,EAAC,KAAK,YACjE,GAAG,GACA,IACS,IACT,CACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The comments split button: the left half shows and hides the comment
3
+ * margin, the right half (while the margin is shown) opens its filters. The
4
+ * margin itself carries no controls; it is the page's margin, not a panel.
5
+ *
6
+ * On a phone the left half drives the comments panel below the canvas: it
7
+ * opens the panel, brings it back when the edit form or a sidebar covers
8
+ * it, and closes it. Its pressed state is the panel's, not the persisted
9
+ * preference's, so it tells what a tap will do.
10
+ */
11
+ export declare function CommentsToggleControl(): import("react").JSX.Element | null;
@@ -0,0 +1,65 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChevronDown, MessageCircleMore } from "lucide-react";
3
+ import { CountBadge } from "../../../components/ui/badge";
4
+ import { Popover, PopoverContent, PopoverTrigger, } from "../../../components/ui/popover";
5
+ import { Tooltip, TooltipContent, TooltipTrigger, } from "../../../components/ui/tooltip";
6
+ import { cn } from "../../../lib/utils";
7
+ import { useEditContext } from "../../client/editContext";
8
+ import { countActiveFeedbackFilters, FeedbackFiltersPanel, } from "../../reviews/FeedbackFilters";
9
+ import { useFeedbackPersonFilter } from "../../reviews/feedbackPersonFilter";
10
+ import { FEEDBACK_SIDEBAR_TEXT_CLASS } from "../../reviews/feedbackSidebarText";
11
+ import { useMobileBottomPanel } from "../../mobileBottomPanel";
12
+ import { closeCommentsFeedback, openCommentsFeedback, toggleCommentsFeedback, } from "../../reviews/openCommentsFeedback";
13
+ import { useFeedbackThreads } from "../../reviews/useFeedbackThreads";
14
+ import { SimpleIconButton } from "../../ui/SimpleIconButton";
15
+ /**
16
+ * The comments split button: the left half shows and hides the comment
17
+ * margin, the right half (while the margin is shown) opens its filters. The
18
+ * margin itself carries no controls; it is the page's margin, not a panel.
19
+ *
20
+ * On a phone the left half drives the comments panel below the canvas: it
21
+ * opens the panel, brings it back when the edit form or a sidebar covers
22
+ * it, and closes it. Its pressed state is the panel's, not the persisted
23
+ * preference's, so it tells what a tap will do.
24
+ */
25
+ export function CommentsToggleControl() {
26
+ const editContext = useEditContext();
27
+ const selectedPeople = useFeedbackPersonFilter();
28
+ const bottomPanel = useMobileBottomPanel();
29
+ if (!editContext)
30
+ return null;
31
+ const isMobile = !!editContext.isMobile;
32
+ const panelOpen = !!editContext.mobileCommentsPanelOpen;
33
+ const panelShowing = bottomPanel === "comments";
34
+ const showComments = isMobile ? panelOpen : !!editContext.showComments;
35
+ const handleToggle = () => {
36
+ if (!isMobile) {
37
+ toggleCommentsFeedback(editContext);
38
+ return;
39
+ }
40
+ if (!panelOpen) {
41
+ openCommentsFeedback(editContext);
42
+ }
43
+ else if (!panelShowing) {
44
+ editContext.revealMobileCommentsPanel();
45
+ }
46
+ else {
47
+ closeCommentsFeedback(editContext);
48
+ }
49
+ };
50
+ const toggleLabel = isMobile && panelOpen && !panelShowing
51
+ ? "Show comments panel"
52
+ : "Show comments";
53
+ const commentsCount = editContext.comments?.filter((comment) => !comment.isResolved).length || 0;
54
+ const activeFilterCount = countActiveFeedbackFilters(!!editContext.showResolvedComments, selectedPeople);
55
+ const filterLabel = activeFilterCount > 0
56
+ ? `Filter comments (${activeFilterCount} active filters)`
57
+ : "Filter comments";
58
+ return (_jsxs("div", { className: "flex items-stretch", role: "group", "aria-label": "Comments", children: [_jsx(SimpleIconButton, { className: cn("relative", showComments && "rounded-r-none"), selected: showComments, icon: _jsx(MessageCircleMore, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: toggleLabel, size: "large", "data-testid": "toggle-comments-button", onClick: handleToggle, children: commentsCount > 0 && (_jsx(CountBadge, { className: "absolute -top-1 -right-1 z-10 min-w-[16px]", children: commentsCount > 99 ? "99+" : commentsCount })) }), showComments && (_jsxs(Tooltip, { delayDuration: 500, children: [_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(TooltipTrigger, { asChild: true, children: _jsx(SimpleIconButton, { "data-testid": "feedback-filter-button", showTooltip: false, selected: true, icon: _jsx(ChevronDown, { className: "h-3 w-3", strokeWidth: 1 }), label: filterLabel, className: "relative rounded-l-none px-0.5 py-0", onClick: () => { }, children: activeFilterCount > 0 && (_jsx("span", { "data-testid": "feedback-filter-active", className: "bg-highlight-100 absolute right-0.5 bottom-1 h-1.5 w-1.5 rounded-full" })) }) }) }), _jsx(PopoverContent, { className: `${FEEDBACK_SIDEBAR_TEXT_CLASS} w-72 p-3`, align: "end", "data-testid": "feedback-filter-popover", children: _jsx(CommentsFilterPopoverBody, {}) })] }), _jsx(TooltipContent, { children: filterLabel })] }))] }));
59
+ }
60
+ /** Mounted only while the popover is open: resolves the author names. */
61
+ function CommentsFilterPopoverBody() {
62
+ const feedback = useFeedbackThreads();
63
+ return (_jsx(FeedbackFiltersPanel, { showResolved: feedback.showResolved, selectedPeople: feedback.selectedPersonFilter, availableAuthors: feedback.availableAuthors, onShowResolvedChange: feedback.setShowResolved, onSelectedPeopleChange: feedback.setSelectedPersonFilter }));
64
+ }
65
+ //# sourceMappingURL=CommentsToggleControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentsToggleControl.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/CommentsToggleControl.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Toolbar entry point for "Find and replace" (also reachable with Ctrl+H).
3
+ * The popover is non-modal and stays open while the user scrolls or clicks
4
+ * the canvas, so the highlighted matches can be inspected one by one.
5
+ */
6
+ export declare function FindReplaceControls(): import("react").JSX.Element | null;
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Popover, PopoverAnchor, PopoverContent, } from "../../../components/ui/popover";
3
+ import { useEditContext } from "../../client/editContext";
4
+ import { FindReplacePanel } from "../../find-replace/FindReplacePanel";
5
+ import { findReplaceCommand } from "../../find-replace/findReplaceCommand";
6
+ import { findReplaceStore, useFindReplaceState, } from "../../find-replace/findReplaceStore";
7
+ import { SimpleIconButton } from "../../ui/SimpleIconButton";
8
+ /**
9
+ * Toolbar entry point for "Find and replace" (also reachable with Ctrl+H).
10
+ * The popover is non-modal and stays open while the user scrolls or clicks
11
+ * the canvas, so the highlighted matches can be inspected one by one.
12
+ */
13
+ export function FindReplaceControls() {
14
+ const editContext = useEditContext();
15
+ const { open } = useFindReplaceState();
16
+ if (!editContext)
17
+ return null;
18
+ const disabled = editContext.isCommandDisabled({
19
+ command: findReplaceCommand,
20
+ });
21
+ return (_jsxs(Popover, { open: open, onOpenChange: (next) => {
22
+ if (next)
23
+ findReplaceStore.open();
24
+ else
25
+ findReplaceStore.close();
26
+ }, enableIframeClickDetection: false, children: [_jsx(PopoverAnchor, { asChild: true, children: _jsx(SimpleIconButton, { icon: findReplaceCommand.icon, label: "Find and replace (Ctrl+H)", size: "large", selected: open, disabled: disabled, onClick: () => findReplaceStore.toggle(), "data-testid": "toolbar-find-replace-button" }) }), _jsx(PopoverContent, { align: "start", side: "bottom", sideOffset: 6, className: "w-[400px] max-w-[90vw] p-0",
27
+ // Clicking elsewhere in the editor must not dismiss the panel: it is
28
+ // a tool window, closed by its own button, Escape or the toolbar icon.
29
+ onInteractOutside: (event) => event.preventDefault(), onOpenAutoFocus: (event) => event.preventDefault(), "data-testid": "find-replace-popover", children: open && (_jsx(FindReplacePanel, { editContext: editContext, onClose: () => findReplaceStore.close() })) })] }));
30
+ }
31
+ //# sourceMappingURL=FindReplaceControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindReplaceControls.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/FindReplaceControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,aAAa,EACb,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACvC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC7C,OAAO,EAAE,kBAAkB;KAC5B,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,OAAO,IACN,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,IAAI;gBAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC;;gBAC7B,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC,EACD,0BAA0B,EAAE,KAAK,aAEjC,KAAC,aAAa,IAAC,OAAO,kBACpB,KAAC,gBAAgB,IACf,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAC7B,KAAK,EAAC,2BAA2B,EACjC,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAC5B,6BAA6B,GACzC,GACY,EAChB,KAAC,cAAc,IACb,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,QAAQ,EACb,UAAU,EAAE,CAAC,EACb,SAAS,EAAC,4BAA4B;gBACtC,qEAAqE;gBACrE,uEAAuE;gBACvE,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EACpD,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,iBACtC,sBAAsB,YAEjC,IAAI,IAAI,CACP,KAAC,gBAAgB,IACf,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,GACvC,CACH,GACc,IACT,CACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Switches the user's spell-check preference: the same setting as "Check
3
+ * spelling" under Settings > User Preferences, so both stay in sync.
4
+ */
5
+ export declare function SpellCheckToggleControl(): import("react").JSX.Element | null;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { SpellCheck } from "lucide-react";
3
+ import { useEditContext } from "../../client/editContext";
4
+ import { SimpleIconButton } from "../../ui/SimpleIconButton";
5
+ /**
6
+ * Switches the user's spell-check preference: the same setting as "Check
7
+ * spelling" under Settings > User Preferences, so both stay in sync.
8
+ */
9
+ export function SpellCheckToggleControl() {
10
+ const editContext = useEditContext();
11
+ if (!editContext)
12
+ return null;
13
+ const enabled = editContext.userInfo?.preferences?.spellCheckEnabled !== false;
14
+ return (_jsx(SimpleIconButton, { icon: _jsx(SpellCheck, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: "Check spelling", size: "large", "data-testid": "toggle-spellcheck-button", selected: enabled, onClick: () => editContext.setUserPreferences({ spellCheckEnabled: !enabled }) }));
15
+ }
16
+ //# sourceMappingURL=SpellCheckToggleControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpellCheckToggleControl.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/SpellCheckToggleControl.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,KAAK,KAAK,CAAC;IAE/E,OAAO,CACL,KAAC,gBAAgB,IACf,IAAI,EAAE,KAAC,UAAU,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,CAAC,GAAI,EAC5D,KAAK,EAAC,gBAAgB,EACtB,IAAI,EAAC,OAAO,iBACA,0BAA0B,EACtC,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,GAAG,EAAE,CACZ,WAAW,CAAC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC,OAAO,EAAE,CAAC,GAEjE,CACH,CAAC;AACJ,CAAC"}