@parhelia/core 0.3.12832 → 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.
- package/dist/components/emoji/EmojiPicker.d.ts +18 -0
- package/dist/components/emoji/EmojiPicker.js +102 -0
- package/dist/components/emoji/EmojiPicker.js.map +1 -0
- package/dist/components/emoji/EmojiText.d.ts +19 -0
- package/dist/components/emoji/EmojiText.js +30 -0
- package/dist/components/emoji/EmojiText.js.map +1 -0
- package/dist/components/emoji/emojiData.generated.d.ts +2 -0
- package/dist/components/emoji/emojiData.generated.js +1878 -0
- package/dist/components/emoji/emojiData.generated.js.map +1 -0
- package/dist/components/emoji/emojiIndex.d.ts +46 -0
- package/dist/components/emoji/emojiIndex.js +173 -0
- package/dist/components/emoji/emojiIndex.js.map +1 -0
- package/dist/components/emoji/emoticons.d.ts +21 -0
- package/dist/components/emoji/emoticons.js +167 -0
- package/dist/components/emoji/emoticons.js.map +1 -0
- package/dist/components/emoji/textareaInsert.d.ts +19 -0
- package/dist/components/emoji/textareaInsert.js +29 -0
- package/dist/components/emoji/textareaInsert.js.map +1 -0
- package/dist/components/emoji/twemoji.d.ts +30 -0
- package/dist/components/emoji/twemoji.js +84 -0
- package/dist/components/emoji/twemoji.js.map +1 -0
- package/dist/editor/agent-changes/agentChangeTargets.js +6 -0
- package/dist/editor/agent-changes/agentChangeTargets.js.map +1 -1
- package/dist/editor/agent-changes/agentChangeTextHighlight.d.ts +48 -4
- package/dist/editor/agent-changes/agentChangeTextHighlight.js +67 -9
- package/dist/editor/agent-changes/agentChangeTextHighlight.js.map +1 -1
- package/dist/editor/ai/AgentImagePreview.d.ts +13 -0
- package/dist/editor/ai/AgentImagePreview.js +41 -0
- package/dist/editor/ai/AgentImagePreview.js.map +1 -0
- package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js +1 -1
- package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js.map +1 -1
- package/dist/editor/ai/terminal/components/ResponseTurnDuration.js +1 -2
- package/dist/editor/ai/terminal/components/ResponseTurnDuration.js.map +1 -1
- package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.d.ts +6 -0
- package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.js +61 -0
- package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.js.map +1 -0
- package/dist/editor/ai/terminal/toolCallDiagnostics.d.ts +34 -0
- package/dist/editor/ai/terminal/toolCallDiagnostics.js +218 -0
- package/dist/editor/ai/terminal/toolCallDiagnostics.js.map +1 -0
- package/dist/editor/bridge/linkDownload.d.ts +3 -0
- package/dist/editor/bridge/linkDownload.js +52 -0
- package/dist/editor/bridge/linkDownload.js.map +1 -0
- package/dist/editor/client/clipboardStorage.d.ts +10 -0
- package/dist/editor/client/clipboardStorage.js +57 -0
- package/dist/editor/client/clipboardStorage.js.map +1 -0
- package/dist/editor/client/hooks/useRepositoryItemRefresh.d.ts +4 -0
- package/dist/editor/client/hooks/useRepositoryItemRefresh.js +62 -0
- package/dist/editor/client/hooks/useRepositoryItemRefresh.js.map +1 -0
- package/dist/editor/client/liveEditState.d.ts +16 -0
- package/dist/editor/client/liveEditState.js +25 -0
- package/dist/editor/client/liveEditState.js.map +1 -0
- package/dist/editor/client/liveSessionState.d.ts +6 -0
- package/dist/editor/client/liveSessionState.js +20 -0
- package/dist/editor/client/liveSessionState.js.map +1 -0
- package/dist/editor/client/valueStore.d.ts +22 -0
- package/dist/editor/client/valueStore.js +29 -0
- package/dist/editor/client/valueStore.js.map +1 -0
- package/dist/editor/commands/componentClipboardCommands.d.ts +35 -0
- package/dist/editor/commands/componentClipboardCommands.js +271 -0
- package/dist/editor/commands/componentClipboardCommands.js.map +1 -0
- package/dist/editor/commands/componentMenuGroups.d.ts +2 -0
- package/dist/editor/commands/componentMenuGroups.js +43 -0
- package/dist/editor/commands/componentMenuGroups.js.map +1 -0
- package/dist/editor/component-conversion/ComponentTypePickerDialog.d.ts +12 -0
- package/dist/editor/component-conversion/ComponentTypePickerDialog.js +40 -0
- package/dist/editor/component-conversion/ComponentTypePickerDialog.js.map +1 -0
- package/dist/editor/component-conversion/ConversionAiDebugButton.d.ts +17 -0
- package/dist/editor/component-conversion/ConversionAiDebugButton.js +80 -0
- package/dist/editor/component-conversion/ConversionAiDebugButton.js.map +1 -0
- package/dist/editor/component-conversion/ConvertComponentDialog.d.ts +28 -0
- package/dist/editor/component-conversion/ConvertComponentDialog.js +633 -0
- package/dist/editor/component-conversion/ConvertComponentDialog.js.map +1 -0
- package/dist/editor/component-conversion/conversionModel.d.ts +109 -0
- package/dist/editor/component-conversion/conversionModel.js +519 -0
- package/dist/editor/component-conversion/conversionModel.js.map +1 -0
- package/dist/editor/component-conversion/conversionService.d.ts +12 -0
- package/dist/editor/component-conversion/conversionService.js +16 -0
- package/dist/editor/component-conversion/conversionService.js.map +1 -0
- package/dist/editor/component-conversion/conversionTypes.d.ts +214 -0
- package/dist/editor/component-conversion/conversionTypes.js +2 -0
- package/dist/editor/component-conversion/conversionTypes.js.map +1 -0
- package/dist/editor/component-conversion/convertComponentsCommand.d.ts +25 -0
- package/dist/editor/component-conversion/convertComponentsCommand.js +196 -0
- package/dist/editor/component-conversion/convertComponentsCommand.js.map +1 -0
- package/dist/editor/field-types/FieldHistoryBoundary.js +28 -7
- package/dist/editor/field-types/FieldHistoryBoundary.js.map +1 -1
- package/dist/editor/field-types/fieldStyles.d.ts +21 -0
- package/dist/editor/field-types/fieldStyles.js +22 -0
- package/dist/editor/field-types/fieldStyles.js.map +1 -0
- package/dist/editor/field-types/richtext/utils/changeHighlight.d.ts +14 -0
- package/dist/editor/field-types/richtext/utils/changeHighlight.js +12 -1
- package/dist/editor/field-types/richtext/utils/changeHighlight.js.map +1 -1
- package/dist/editor/field-types/richtext/utils/spellCheckText.d.ts +31 -0
- package/dist/editor/field-types/richtext/utils/spellCheckText.js +82 -0
- package/dist/editor/field-types/richtext/utils/spellCheckText.js.map +1 -0
- package/dist/editor/field-types/useFocusedFieldInput.d.ts +13 -0
- package/dist/editor/field-types/useFocusedFieldInput.js +50 -0
- package/dist/editor/field-types/useFocusedFieldInput.js.map +1 -0
- package/dist/editor/field-types/useFormFieldSelectionRange.d.ts +43 -0
- package/dist/editor/field-types/useFormFieldSelectionRange.js +149 -0
- package/dist/editor/field-types/useFormFieldSelectionRange.js.map +1 -0
- package/dist/editor/find-replace/FindReplacePanel.d.ts +11 -0
- package/dist/editor/find-replace/FindReplacePanel.js +311 -0
- package/dist/editor/find-replace/FindReplacePanel.js.map +1 -0
- package/dist/editor/find-replace/findReplaceCommand.d.ts +8 -0
- package/dist/editor/find-replace/findReplaceCommand.js +25 -0
- package/dist/editor/find-replace/findReplaceCommand.js.map +1 -0
- package/dist/editor/find-replace/findReplaceMatches.d.ts +42 -0
- package/dist/editor/find-replace/findReplaceMatches.js +66 -0
- package/dist/editor/find-replace/findReplaceMatches.js.map +1 -0
- package/dist/editor/find-replace/findReplaceStore.d.ts +30 -0
- package/dist/editor/find-replace/findReplaceStore.js +61 -0
- package/dist/editor/find-replace/findReplaceStore.js.map +1 -0
- package/dist/editor/find-replace/findReplaceTargets.d.ts +51 -0
- package/dist/editor/find-replace/findReplaceTargets.js +110 -0
- package/dist/editor/find-replace/findReplaceTargets.js.map +1 -0
- package/dist/editor/find-replace/findReplaceText.d.ts +50 -0
- package/dist/editor/find-replace/findReplaceText.js +189 -0
- package/dist/editor/find-replace/findReplaceText.js.map +1 -0
- package/dist/editor/itemContextMenuGroups.js +10 -1
- package/dist/editor/itemContextMenuGroups.js.map +1 -1
- package/dist/editor/media-selector/MediaDetailsView.d.ts +14 -0
- package/dist/editor/media-selector/MediaDetailsView.js +152 -0
- package/dist/editor/media-selector/MediaDetailsView.js.map +1 -0
- package/dist/editor/media-selector/useMediaFolderDrag.d.ts +26 -0
- package/dist/editor/media-selector/useMediaFolderDrag.js +153 -0
- package/dist/editor/media-selector/useMediaFolderDrag.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.d.ts +11 -0
- package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.js +65 -0
- package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/FindReplaceControls.d.ts +6 -0
- package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js +31 -0
- package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.d.ts +5 -0
- package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.js +16 -0
- package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.js.map +1 -0
- package/dist/editor/mobileBottomPanel.d.ts +40 -0
- package/dist/editor/mobileBottomPanel.js +63 -0
- package/dist/editor/mobileBottomPanel.js.map +1 -0
- package/dist/editor/page-editor-chrome/AgentChangeHighlightings.d.ts +3 -6
- package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js +8 -6
- package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.d.ts +6 -0
- package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.js +100 -0
- package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.js.map +1 -0
- package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.d.ts +9 -0
- package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.js +32 -0
- package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.js.map +1 -0
- package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.d.ts +14 -0
- package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.js +110 -0
- package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.js.map +1 -0
- package/dist/editor/page-editor-chrome/ConversionIndicators.d.ts +8 -0
- package/dist/editor/page-editor-chrome/ConversionIndicators.js +75 -0
- package/dist/editor/page-editor-chrome/ConversionIndicators.js.map +1 -0
- package/dist/editor/page-editor-chrome/DiffHighlightOverlay.d.ts +9 -13
- package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js +25 -20
- package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.d.ts +15 -0
- package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.js +31 -0
- package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.js.map +1 -0
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.d.ts +11 -0
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js +120 -0
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js.map +1 -0
- package/dist/editor/page-editor-chrome/SpellCheckHighlightings.d.ts +12 -0
- package/dist/editor/page-editor-chrome/SpellCheckHighlightings.js +197 -0
- package/dist/editor/page-editor-chrome/SpellCheckHighlightings.js.map +1 -0
- package/dist/editor/page-editor-chrome/ValidationRulerMarks.d.ts +11 -0
- package/dist/editor/page-editor-chrome/ValidationRulerMarks.js +56 -0
- package/dist/editor/page-editor-chrome/ValidationRulerMarks.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.d.ts +44 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.js +89 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.d.ts +17 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.js +53 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.d.ts +11 -0
- package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.js +84 -0
- package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.d.ts +34 -0
- package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.js +229 -0
- package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.d.ts +9 -0
- package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.js +34 -0
- package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.d.ts +49 -0
- package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.js +241 -0
- package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.js.map +1 -0
- package/dist/editor/page-viewer/CanvasOverviewRuler.d.ts +11 -0
- package/dist/editor/page-viewer/CanvasOverviewRuler.js +65 -0
- package/dist/editor/page-viewer/CanvasOverviewRuler.js.map +1 -0
- package/dist/editor/page-viewer/DynamicRenderingsBar.d.ts +23 -0
- package/dist/editor/page-viewer/DynamicRenderingsBar.js +28 -0
- package/dist/editor/page-viewer/DynamicRenderingsBar.js.map +1 -0
- package/dist/editor/page-viewer/DynamicRenderingsStrip.d.ts +18 -0
- package/dist/editor/page-viewer/DynamicRenderingsStrip.js +29 -0
- package/dist/editor/page-viewer/DynamicRenderingsStrip.js.map +1 -0
- package/dist/editor/page-viewer/FeedbackMargin.d.ts +57 -0
- package/dist/editor/page-viewer/FeedbackMargin.js +377 -0
- package/dist/editor/page-viewer/FeedbackMargin.js.map +1 -0
- package/dist/editor/page-viewer/FeedbackMarginController.d.ts +76 -0
- package/dist/editor/page-viewer/FeedbackMarginController.js +241 -0
- package/dist/editor/page-viewer/FeedbackMarginController.js.map +1 -0
- package/dist/editor/page-viewer/FeedbackMarginMarker.d.ts +16 -0
- package/dist/editor/page-viewer/FeedbackMarginMarker.js +24 -0
- package/dist/editor/page-viewer/FeedbackMarginMarker.js.map +1 -0
- package/dist/editor/page-viewer/FeedbackMarginResizeHandle.d.ts +23 -0
- package/dist/editor/page-viewer/FeedbackMarginResizeHandle.js +105 -0
- package/dist/editor/page-viewer/FeedbackMarginResizeHandle.js.map +1 -0
- package/dist/editor/page-viewer/InteractivePreviewBar.d.ts +24 -0
- package/dist/editor/page-viewer/InteractivePreviewBar.js +31 -0
- package/dist/editor/page-viewer/InteractivePreviewBar.js.map +1 -0
- package/dist/editor/page-viewer/MobileCommentsPanel.d.ts +16 -0
- package/dist/editor/page-viewer/MobileCommentsPanel.js +112 -0
- package/dist/editor/page-viewer/MobileCommentsPanel.js.map +1 -0
- package/dist/editor/page-viewer/RenderingAiCheck.d.ts +18 -0
- package/dist/editor/page-viewer/RenderingAiCheck.js +45 -0
- package/dist/editor/page-viewer/RenderingAiCheck.js.map +1 -0
- package/dist/editor/page-viewer/RenderingApprovalDialog.d.ts +32 -0
- package/dist/editor/page-viewer/RenderingApprovalDialog.js +191 -0
- package/dist/editor/page-viewer/RenderingApprovalDialog.js.map +1 -0
- package/dist/editor/page-viewer/SealedClientCodePreview.d.ts +17 -0
- package/dist/editor/page-viewer/SealedClientCodePreview.js +38 -0
- package/dist/editor/page-viewer/SealedClientCodePreview.js.map +1 -0
- package/dist/editor/page-viewer/canvasFrameNavigation.d.ts +18 -0
- package/dist/editor/page-viewer/canvasFrameNavigation.js +36 -0
- package/dist/editor/page-viewer/canvasFrameNavigation.js.map +1 -0
- package/dist/editor/page-viewer/canvasLoadSettling.d.ts +42 -0
- package/dist/editor/page-viewer/canvasLoadSettling.js +46 -0
- package/dist/editor/page-viewer/canvasLoadSettling.js.map +1 -0
- package/dist/editor/page-viewer/canvasScrollHandoff.d.ts +34 -0
- package/dist/editor/page-viewer/canvasScrollHandoff.js +55 -0
- package/dist/editor/page-viewer/canvasScrollHandoff.js.map +1 -0
- package/dist/editor/page-viewer/compareFrameWidth.d.ts +8 -0
- package/dist/editor/page-viewer/compareFrameWidth.js +25 -0
- package/dist/editor/page-viewer/compareFrameWidth.js.map +1 -0
- package/dist/editor/page-viewer/feedbackMarginLayout.d.ts +119 -0
- package/dist/editor/page-viewer/feedbackMarginLayout.js +155 -0
- package/dist/editor/page-viewer/feedbackMarginLayout.js.map +1 -0
- package/dist/editor/page-viewer/feedbackMarginSources.d.ts +36 -0
- package/dist/editor/page-viewer/feedbackMarginSources.js +196 -0
- package/dist/editor/page-viewer/feedbackMarginSources.js.map +1 -0
- package/dist/editor/page-viewer/feedbackMarginWidth.d.ts +43 -0
- package/dist/editor/page-viewer/feedbackMarginWidth.js +107 -0
- package/dist/editor/page-viewer/feedbackMarginWidth.js.map +1 -0
- package/dist/editor/page-viewer/interactivePreview.d.ts +168 -0
- package/dist/editor/page-viewer/interactivePreview.js +344 -0
- package/dist/editor/page-viewer/interactivePreview.js.map +1 -0
- package/dist/editor/page-viewer/minimapViewport.d.ts +2 -0
- package/dist/editor/page-viewer/minimapViewport.js +34 -0
- package/dist/editor/page-viewer/minimapViewport.js.map +1 -0
- package/dist/editor/page-viewer/openPageItems.d.ts +29 -0
- package/dist/editor/page-viewer/openPageItems.js +73 -0
- package/dist/editor/page-viewer/openPageItems.js.map +1 -0
- package/dist/editor/page-viewer/overviewRuler.d.ts +128 -0
- package/dist/editor/page-viewer/overviewRuler.js +226 -0
- package/dist/editor/page-viewer/overviewRuler.js.map +1 -0
- package/dist/editor/page-viewer/renderingApproval.d.ts +59 -0
- package/dist/editor/page-viewer/renderingApproval.js +186 -0
- package/dist/editor/page-viewer/renderingApproval.js.map +1 -0
- package/dist/editor/page-viewer/renderingChanges.d.ts +29 -0
- package/dist/editor/page-viewer/renderingChanges.js +40 -0
- package/dist/editor/page-viewer/renderingChanges.js.map +1 -0
- package/dist/editor/page-viewer/scrollIntoViewTextRanges.d.ts +23 -0
- package/dist/editor/page-viewer/scrollIntoViewTextRanges.js +26 -0
- package/dist/editor/page-viewer/scrollIntoViewTextRanges.js.map +1 -0
- package/dist/editor/page-viewer/useInteractivePreview.d.ts +77 -0
- package/dist/editor/page-viewer/useInteractivePreview.js +210 -0
- package/dist/editor/page-viewer/useInteractivePreview.js.map +1 -0
- package/dist/editor/reviews/CollapsibleText.d.ts +13 -0
- package/dist/editor/reviews/CollapsibleText.js +41 -0
- package/dist/editor/reviews/CollapsibleText.js.map +1 -0
- package/dist/editor/reviews/CommentImageAttachments.d.ts +12 -0
- package/dist/editor/reviews/CommentImageAttachments.js +19 -0
- package/dist/editor/reviews/CommentImageAttachments.js.map +1 -0
- package/dist/editor/reviews/CommentQuote.d.ts +13 -0
- package/dist/editor/reviews/CommentQuote.js +35 -0
- package/dist/editor/reviews/CommentQuote.js.map +1 -0
- package/dist/editor/reviews/CommentTargetOutline.d.ts +13 -0
- package/dist/editor/reviews/CommentTargetOutline.js +21 -0
- package/dist/editor/reviews/CommentTargetOutline.js.map +1 -0
- package/dist/editor/reviews/CommentTargetPickerDomLayer.d.ts +7 -0
- package/dist/editor/reviews/CommentTargetPickerDomLayer.js +117 -0
- package/dist/editor/reviews/CommentTargetPickerDomLayer.js.map +1 -0
- package/dist/editor/reviews/CommentThreadAgentLink.d.ts +28 -0
- package/dist/editor/reviews/CommentThreadAgentLink.js +37 -0
- package/dist/editor/reviews/CommentThreadAgentLink.js.map +1 -0
- package/dist/editor/reviews/CommentThreadCard.d.ts +34 -0
- package/dist/editor/reviews/CommentThreadCard.js +156 -0
- package/dist/editor/reviews/CommentThreadCard.js.map +1 -0
- package/dist/editor/reviews/SuggestionThreadCard.d.ts +19 -0
- package/dist/editor/reviews/SuggestionThreadCard.js +25 -0
- package/dist/editor/reviews/SuggestionThreadCard.js.map +1 -0
- package/dist/editor/reviews/addCommentOnTarget.d.ts +22 -0
- package/dist/editor/reviews/addCommentOnTarget.js +32 -0
- package/dist/editor/reviews/addCommentOnTarget.js.map +1 -0
- package/dist/editor/reviews/balloonLayout.d.ts +51 -0
- package/dist/editor/reviews/balloonLayout.js +101 -0
- package/dist/editor/reviews/balloonLayout.js.map +1 -0
- package/dist/editor/reviews/commentAgentAttachments.d.ts +5 -0
- package/dist/editor/reviews/commentAgentAttachments.js +51 -0
- package/dist/editor/reviews/commentAgentAttachments.js.map +1 -0
- package/dist/editor/reviews/commentImages.d.ts +48 -0
- package/dist/editor/reviews/commentImages.js +128 -0
- package/dist/editor/reviews/commentImages.js.map +1 -0
- package/dist/editor/reviews/commentTargetPicker.d.ts +114 -0
- package/dist/editor/reviews/commentTargetPicker.js +153 -0
- package/dist/editor/reviews/commentTargetPicker.js.map +1 -0
- package/dist/editor/reviews/feedbackBalloonDate.d.ts +8 -0
- package/dist/editor/reviews/feedbackBalloonDate.js +22 -0
- package/dist/editor/reviews/feedbackBalloonDate.js.map +1 -0
- package/dist/editor/reviews/feedbackDrafts.d.ts +49 -0
- package/dist/editor/reviews/feedbackDrafts.js +74 -0
- package/dist/editor/reviews/feedbackDrafts.js.map +1 -0
- package/dist/editor/reviews/feedbackHoverState.d.ts +18 -0
- package/dist/editor/reviews/feedbackHoverState.js +35 -0
- package/dist/editor/reviews/feedbackHoverState.js.map +1 -0
- package/dist/editor/reviews/feedbackPersonFilter.d.ts +3 -0
- package/dist/editor/reviews/feedbackPersonFilter.js +32 -0
- package/dist/editor/reviews/feedbackPersonFilter.js.map +1 -0
- package/dist/editor/reviews/feedbackThreadSelection.d.ts +10 -0
- package/dist/editor/reviews/feedbackThreadSelection.js +31 -0
- package/dist/editor/reviews/feedbackThreadSelection.js.map +1 -0
- package/dist/editor/reviews/feedbackThreads.d.ts +50 -0
- package/dist/editor/reviews/feedbackThreads.js +135 -0
- package/dist/editor/reviews/feedbackThreads.js.map +1 -0
- package/dist/editor/reviews/feedbackWheelForwarding.d.ts +34 -0
- package/dist/editor/reviews/feedbackWheelForwarding.js +108 -0
- package/dist/editor/reviews/feedbackWheelForwarding.js.map +1 -0
- package/dist/editor/reviews/reviewUrlScope.d.ts +23 -0
- package/dist/editor/reviews/reviewUrlScope.js +86 -0
- package/dist/editor/reviews/reviewUrlScope.js.map +1 -0
- package/dist/editor/reviews/scrollWithin.d.ts +29 -0
- package/dist/editor/reviews/scrollWithin.js +87 -0
- package/dist/editor/reviews/scrollWithin.js.map +1 -0
- package/dist/editor/reviews/subtreeFeedback.d.ts +57 -0
- package/dist/editor/reviews/subtreeFeedback.js +137 -0
- package/dist/editor/reviews/subtreeFeedback.js.map +1 -0
- package/dist/editor/reviews/useCommentImagePaste.d.ts +80 -0
- package/dist/editor/reviews/useCommentImagePaste.js +252 -0
- package/dist/editor/reviews/useCommentImagePaste.js.map +1 -0
- package/dist/editor/reviews/useFeedbackThreads.d.ts +35 -0
- package/dist/editor/reviews/useFeedbackThreads.js +137 -0
- package/dist/editor/reviews/useFeedbackThreads.js.map +1 -0
- package/dist/editor/reviews/useMeasuredHeights.d.ts +25 -0
- package/dist/editor/reviews/useMeasuredHeights.js +176 -0
- package/dist/editor/reviews/useMeasuredHeights.js.map +1 -0
- package/dist/editor/reviews/usePendingFeedbackFocus.d.ts +7 -0
- package/dist/editor/reviews/usePendingFeedbackFocus.js +42 -0
- package/dist/editor/reviews/usePendingFeedbackFocus.js.map +1 -0
- package/dist/editor/services/mcpAccessService.d.ts +93 -0
- package/dist/editor/services/mcpAccessService.js +41 -0
- package/dist/editor/services/mcpAccessService.js.map +1 -0
- package/dist/editor/services/previewTokenService.d.ts +14 -0
- package/dist/editor/services/previewTokenService.js +34 -0
- package/dist/editor/services/previewTokenService.js.map +1 -0
- package/dist/editor/services/renderingsService.d.ts +117 -0
- package/dist/editor/services/renderingsService.js +245 -0
- package/dist/editor/services/renderingsService.js.map +1 -0
- package/dist/editor/services/spellCheckService.d.ts +13 -0
- package/dist/editor/services/spellCheckService.js +33 -0
- package/dist/editor/services/spellCheckService.js.map +1 -0
- package/dist/editor/settings/panels/McpAccessPanel.d.ts +7 -0
- package/dist/editor/settings/panels/McpAccessPanel.js +95 -0
- package/dist/editor/settings/panels/McpAccessPanel.js.map +1 -0
- package/dist/editor/settings/panels/McpAccessSettingsView.d.ts +8 -0
- package/dist/editor/settings/panels/McpAccessSettingsView.js +221 -0
- package/dist/editor/settings/panels/McpAccessSettingsView.js.map +1 -0
- package/dist/editor/settings/panels/SpellCheckPanel.d.ts +8 -0
- package/dist/editor/settings/panels/SpellCheckPanel.js +253 -0
- package/dist/editor/settings/panels/SpellCheckPanel.js.map +1 -0
- package/dist/editor/sidebar/FeedbackSidebar.d.ts +7 -0
- package/dist/editor/sidebar/FeedbackSidebar.js +300 -0
- package/dist/editor/sidebar/FeedbackSidebar.js.map +1 -0
- package/dist/editor/sidebar/OperationDetailsContent.js +50 -0
- package/dist/editor/sidebar/OperationDetailsContent.js.map +1 -1
- package/dist/editor/sidebar/liveComponentThumbnails.d.ts +19 -6
- package/dist/editor/sidebar/liveComponentThumbnails.js +39 -18
- package/dist/editor/sidebar/liveComponentThumbnails.js.map +1 -1
- package/dist/editor/spellcheck/canvasSpellCheckContextMenu.d.ts +30 -0
- package/dist/editor/spellcheck/canvasSpellCheckContextMenu.js +69 -0
- package/dist/editor/spellcheck/canvasSpellCheckContextMenu.js.map +1 -0
- package/dist/editor/spellcheck/htmlSpellDocument.d.ts +60 -0
- package/dist/editor/spellcheck/htmlSpellDocument.js +181 -0
- package/dist/editor/spellcheck/htmlSpellDocument.js.map +1 -0
- package/dist/editor/spellcheck/htmlSpellTokenizer.d.ts +45 -0
- package/dist/editor/spellcheck/htmlSpellTokenizer.js +277 -0
- package/dist/editor/spellcheck/htmlSpellTokenizer.js.map +1 -0
- package/dist/editor/spellcheck/replacementGuard.d.ts +27 -0
- package/dist/editor/spellcheck/replacementGuard.js +29 -0
- package/dist/editor/spellcheck/replacementGuard.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckCanvasStore.d.ts +17 -0
- package/dist/editor/spellcheck/spellCheckCanvasStore.js +37 -0
- package/dist/editor/spellcheck/spellCheckCanvasStore.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckCanvasTargets.d.ts +71 -0
- package/dist/editor/spellcheck/spellCheckCanvasTargets.js +126 -0
- package/dist/editor/spellcheck/spellCheckCanvasTargets.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckClient.d.ts +66 -0
- package/dist/editor/spellcheck/spellCheckClient.js +0 -0
- package/dist/editor/spellcheck/spellCheckClient.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckContextMenu.d.ts +52 -0
- package/dist/editor/spellcheck/spellCheckContextMenu.js +120 -0
- package/dist/editor/spellcheck/spellCheckContextMenu.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckReplace.d.ts +8 -0
- package/dist/editor/spellcheck/spellCheckReplace.js +20 -0
- package/dist/editor/spellcheck/spellCheckReplace.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckStyles.d.ts +11 -0
- package/dist/editor/spellcheck/spellCheckStyles.js +12 -0
- package/dist/editor/spellcheck/spellCheckStyles.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckTypes.d.ts +94 -0
- package/dist/editor/spellcheck/spellCheckTypes.js +2 -0
- package/dist/editor/spellcheck/spellCheckTypes.js.map +1 -0
- package/dist/editor/spellcheck/textMarkHitTest.d.ts +14 -0
- package/dist/editor/spellcheck/textMarkHitTest.js +39 -0
- package/dist/editor/spellcheck/textMarkHitTest.js.map +1 -0
- package/dist/editor/spellcheck/useSpellCheck.d.ts +16 -0
- package/dist/editor/spellcheck/useSpellCheck.js +57 -0
- package/dist/editor/spellcheck/useSpellCheck.js.map +1 -0
- package/dist/editor/ui/DynamicRenderingsPublishWarning.d.ts +14 -0
- package/dist/editor/ui/DynamicRenderingsPublishWarning.js +40 -0
- package/dist/editor/ui/DynamicRenderingsPublishWarning.js.map +1 -0
- package/dist/editor/ui/ParheliaMark.d.ts +15 -0
- package/dist/editor/ui/ParheliaMark.js +12 -0
- package/dist/editor/ui/ParheliaMark.js.map +1 -0
- package/dist/editor/ui/RootItemPicker.d.ts +18 -0
- package/dist/editor/ui/RootItemPicker.js +112 -0
- package/dist/editor/ui/RootItemPicker.js.map +1 -0
- package/dist/editor/undoEligibility.d.ts +2 -0
- package/dist/editor/undoEligibility.js +8 -0
- package/dist/editor/undoEligibility.js.map +1 -0
- package/dist/editor/utils/dataTransferImages.d.ts +7 -0
- package/dist/editor/utils/dataTransferImages.js +43 -0
- package/dist/editor/utils/dataTransferImages.js.map +1 -0
- package/dist/editor/validation/navigateToValidationIssue.d.ts +2 -2
- package/dist/editor/validation/navigateToValidationIssue.js +1 -1
- package/dist/editor/validation/navigateToValidationIssue.js.map +1 -1
- package/dist/editor/validation/validationRulerIssues.d.ts +17 -0
- package/dist/editor/validation/validationRulerIssues.js +44 -0
- package/dist/editor/validation/validationRulerIssues.js.map +1 -0
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/task-board/components/AttentionPromptDialog.d.ts +13 -0
- package/dist/task-board/components/AttentionPromptDialog.js +45 -0
- package/dist/task-board/components/AttentionPromptDialog.js.map +1 -0
- package/dist/task-board/components/GoalFindingsTable.d.ts +43 -0
- package/dist/task-board/components/GoalFindingsTable.js +160 -0
- package/dist/task-board/components/GoalFindingsTable.js.map +1 -0
- package/dist/task-board/components/IssuePanel.d.ts +31 -0
- package/dist/task-board/components/IssuePanel.js +268 -0
- package/dist/task-board/components/IssuePanel.js.map +1 -0
- package/dist/task-board/components/SubgoalFindings.d.ts +40 -0
- package/dist/task-board/components/SubgoalFindings.js +88 -0
- package/dist/task-board/components/SubgoalFindings.js.map +1 -0
- package/dist/task-board/services/issueService.d.ts +193 -0
- package/dist/task-board/services/issueService.js +97 -0
- package/dist/task-board/services/issueService.js.map +1 -0
- package/dist/task-board/taskBlockers.d.ts +10 -0
- package/dist/task-board/taskBlockers.js +66 -0
- package/dist/task-board/taskBlockers.js.map +1 -0
- package/dist/task-board/utils/projectDashboardModel.js +14 -0
- package/dist/task-board/utils/projectDashboardModel.js.map +1 -1
- package/dist/task-board/views/ProjectDashboardView.js +5 -13
- package/dist/task-board/views/ProjectDashboardView.js.map +1 -1
- package/dist/tour/sandbox-tour-copy.d.ts +8 -0
- package/dist/tour/sandbox-tour-copy.js +8 -0
- package/dist/tour/sandbox-tour-copy.js.map +1 -1
- package/dist/tour/sandbox-tour.d.ts +3 -0
- package/dist/tour/sandbox-tour.js +107 -3
- package/dist/tour/sandbox-tour.js.map +1 -1
- package/package.json +1 -1
- package/dist/editor/page-editor-chrome/bridgeLinkValue.d.ts +0 -10
- package/dist/editor/page-editor-chrome/bridgeLinkValue.js +0 -55
- package/dist/editor/page-editor-chrome/bridgeLinkValue.js.map +0 -1
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
+
import { usePageViewState, } from "../../page-viewer/pageViewContext";
|
|
3
|
+
import { getSuggestedEditTextRangeKey, getSuggestionDisplayRanges, getSuggestionRangeData, } from "../../reviews/feedbackScrollTarget";
|
|
4
|
+
import { getSuggestedEditItemLanguage, getSuggestedEditItemVersion, getSuggestionFieldIdentityKey, } from "../../reviews/suggestionDisplayValue";
|
|
5
|
+
import { measureBridgeTextRangeRects } from "./geometry";
|
|
6
|
+
import { anchorMeasurementsEqual, } from "./feedbackAnchorMeasurements";
|
|
7
|
+
import { useBridgeTextRangeRequest, } from "./useBridgeTextRangeRequest";
|
|
8
|
+
import { useOverlayMeasurement } from "./useOverlayMeasurement";
|
|
9
|
+
export const SUGGESTION_BRIDGE_SOURCE = "suggestions";
|
|
10
|
+
/** Suggestions that still need a decision and therefore mark the canvas. */
|
|
11
|
+
export function getOpenSuggestions(suggestedEdits) {
|
|
12
|
+
return suggestedEdits.filter((suggestion) => suggestion.status !== "applied" && suggestion.status !== "rejected");
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The single suggestion whose suggested text the canvas shows because its
|
|
16
|
+
* card is selected. A decided suggestion is never previewed (an applied one
|
|
17
|
+
* already is the field's text, a rejected one left the original), so
|
|
18
|
+
* selecting one leaves the field as it is and must not hide its open
|
|
19
|
+
* siblings on that field.
|
|
20
|
+
*/
|
|
21
|
+
export function getPreviewedSuggestionId({ suggestions, selectedSuggestedEditId, previewsAllSuggestions, showSelectedSuggestionOnPage, }) {
|
|
22
|
+
if (previewsAllSuggestions || showSelectedSuggestionOnPage === false) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
const selectedIsDecided = suggestions.some((suggestion) => suggestion.id === selectedSuggestedEditId &&
|
|
26
|
+
(suggestion.status === "applied" || suggestion.status === "rejected"));
|
|
27
|
+
return selectedIsDecided ? undefined : selectedSuggestedEditId;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Resolves each suggestion to the text ranges it changes (diffing its old
|
|
31
|
+
* and new value against the field's current value) and measures those ranges
|
|
32
|
+
* on the canvas. Callers pass the open suggestions for highlighting, or every
|
|
33
|
+
* listed suggestion when the measurements also position margin cards.
|
|
34
|
+
*
|
|
35
|
+
* Must run inside an `IframeOverlayProvider`.
|
|
36
|
+
*/
|
|
37
|
+
export function useSuggestionAnchorMeasurements(pageViewContext, editContext, suggestions, options = {}) {
|
|
38
|
+
const { request = true } = options;
|
|
39
|
+
const bridgeGeometry = usePageViewState(pageViewContext, (state) => state.bridgeGeometry);
|
|
40
|
+
const lastMeasurementsRef = useRef({});
|
|
41
|
+
const [rangeDataBySuggestionId, setRangeDataBySuggestionId] = useState({});
|
|
42
|
+
const [fieldValueByIdentity, setFieldValueByIdentity] = useState({});
|
|
43
|
+
const [fieldIdentityBySuggestionId, setFieldIdentityBySuggestionId] = useState({});
|
|
44
|
+
const previewsAllSuggestions = editContext?.mode === "suggestions";
|
|
45
|
+
const selectedSuggestedEditId = editContext?.selectedSuggestedEdit?.id;
|
|
46
|
+
// Outside suggestions mode the selected card previews its suggestion on the
|
|
47
|
+
// canvas exactly like suggestions mode does (while its "Show on page"
|
|
48
|
+
// toggle is on), so its ranges must target the suggested text rather than
|
|
49
|
+
// the original. With the toggle off the canvas keeps the original text and
|
|
50
|
+
// the ranges mark the text the suggestion removes.
|
|
51
|
+
const previewedSuggestionId = getPreviewedSuggestionId({
|
|
52
|
+
suggestions,
|
|
53
|
+
selectedSuggestedEditId,
|
|
54
|
+
previewsAllSuggestions,
|
|
55
|
+
showSelectedSuggestionOnPage: editContext?.showSelectedSuggestionOnPage,
|
|
56
|
+
});
|
|
57
|
+
// Decided suggestions are measured too (the comment margin anchors their
|
|
58
|
+
// cards) but never previewed: an applied one lives in the field as its new
|
|
59
|
+
// text, a rejected one left the original text in place.
|
|
60
|
+
const previewsSuggestedText = useCallback((suggestion) => {
|
|
61
|
+
if (suggestion.status === "applied")
|
|
62
|
+
return true;
|
|
63
|
+
if (suggestion.status === "rejected")
|
|
64
|
+
return false;
|
|
65
|
+
return previewsAllSuggestions || suggestion.id === previewedSuggestionId;
|
|
66
|
+
}, [previewsAllSuggestions, previewedSuggestionId]);
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
if (!editContext) {
|
|
69
|
+
setRangeDataBySuggestionId({});
|
|
70
|
+
setFieldValueByIdentity({});
|
|
71
|
+
setFieldIdentityBySuggestionId({});
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
let cancelled = false;
|
|
75
|
+
const resolveRanges = async () => {
|
|
76
|
+
const nextRangeData = {};
|
|
77
|
+
const nextFieldValues = {};
|
|
78
|
+
const nextFieldIdentities = {};
|
|
79
|
+
await Promise.all(suggestions.map(async (suggestion) => {
|
|
80
|
+
if (!suggestion.fieldId) {
|
|
81
|
+
nextRangeData[suggestion.id] = {
|
|
82
|
+
oldRanges: [],
|
|
83
|
+
newRanges: [],
|
|
84
|
+
oldAnchorOffsets: [],
|
|
85
|
+
newAnchorOffsets: [],
|
|
86
|
+
oldText: "",
|
|
87
|
+
newText: "",
|
|
88
|
+
};
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const language = getSuggestedEditItemLanguage(suggestion);
|
|
92
|
+
const version = getSuggestedEditItemVersion(suggestion) ?? 0;
|
|
93
|
+
const field = await editContext.itemsRepository.getField({
|
|
94
|
+
item: {
|
|
95
|
+
id: suggestion.itemId,
|
|
96
|
+
language,
|
|
97
|
+
version,
|
|
98
|
+
},
|
|
99
|
+
fieldId: suggestion.fieldId,
|
|
100
|
+
});
|
|
101
|
+
const resolvedItem = field?.descriptor?.item ?? {
|
|
102
|
+
id: suggestion.itemId,
|
|
103
|
+
language,
|
|
104
|
+
version,
|
|
105
|
+
};
|
|
106
|
+
const identityKey = getSuggestionFieldIdentityKey({
|
|
107
|
+
itemId: resolvedItem.id,
|
|
108
|
+
language: resolvedItem.language,
|
|
109
|
+
version: resolvedItem.version,
|
|
110
|
+
fieldId: suggestion.fieldId,
|
|
111
|
+
});
|
|
112
|
+
nextFieldIdentities[suggestion.id] = identityKey;
|
|
113
|
+
nextFieldValues[identityKey] = {
|
|
114
|
+
rawValue: field?.rawValue ?? "",
|
|
115
|
+
itemId: resolvedItem.id,
|
|
116
|
+
language: resolvedItem.language,
|
|
117
|
+
version: resolvedItem.version,
|
|
118
|
+
fieldId: suggestion.fieldId,
|
|
119
|
+
};
|
|
120
|
+
nextRangeData[suggestion.id] = getSuggestionRangeData(suggestion.oldValue ?? field?.rawValue ?? "", suggestion.newValue ?? "");
|
|
121
|
+
}));
|
|
122
|
+
if (!cancelled) {
|
|
123
|
+
setRangeDataBySuggestionId(nextRangeData);
|
|
124
|
+
setFieldValueByIdentity(nextFieldValues);
|
|
125
|
+
setFieldIdentityBySuggestionId(nextFieldIdentities);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
resolveRanges();
|
|
129
|
+
return () => {
|
|
130
|
+
cancelled = true;
|
|
131
|
+
};
|
|
132
|
+
}, [editContext, suggestions]);
|
|
133
|
+
// While a single selected suggestion is previewed, the canvas shows its
|
|
134
|
+
// suggested text; other pending suggestions on that same field still hold
|
|
135
|
+
// ranges into the original text and would land at the wrong offsets.
|
|
136
|
+
const hiddenSuggestionIds = useMemo(() => {
|
|
137
|
+
const hidden = new Set();
|
|
138
|
+
if (!previewedSuggestionId)
|
|
139
|
+
return hidden;
|
|
140
|
+
const previewedIdentity = fieldIdentityBySuggestionId[previewedSuggestionId];
|
|
141
|
+
if (!previewedIdentity)
|
|
142
|
+
return hidden;
|
|
143
|
+
for (const suggestion of suggestions) {
|
|
144
|
+
if (suggestion.id !== previewedSuggestionId &&
|
|
145
|
+
fieldIdentityBySuggestionId[suggestion.id] === previewedIdentity) {
|
|
146
|
+
hidden.add(suggestion.id);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return hidden;
|
|
150
|
+
}, [fieldIdentityBySuggestionId, previewedSuggestionId, suggestions]);
|
|
151
|
+
const bridgeTextRanges = useMemo(() => suggestions.flatMap((suggestion) => {
|
|
152
|
+
if (!suggestion.fieldId)
|
|
153
|
+
return [];
|
|
154
|
+
if (hiddenSuggestionIds.has(suggestion.id))
|
|
155
|
+
return [];
|
|
156
|
+
const rangeData = rangeDataBySuggestionId[suggestion.id];
|
|
157
|
+
if (!rangeData)
|
|
158
|
+
return [];
|
|
159
|
+
const ranges = getSuggestionDisplayRanges(rangeData, previewsSuggestedText(suggestion) ? "new" : "old");
|
|
160
|
+
const fieldIdentity = fieldIdentityBySuggestionId[suggestion.id];
|
|
161
|
+
const resolvedField = fieldIdentity
|
|
162
|
+
? fieldValueByIdentity[fieldIdentity]
|
|
163
|
+
: undefined;
|
|
164
|
+
return ranges.map(([start, end]) => ({
|
|
165
|
+
key: getSuggestedEditTextRangeKey(suggestion),
|
|
166
|
+
fieldId: suggestion.fieldId,
|
|
167
|
+
item: {
|
|
168
|
+
id: resolvedField?.itemId ?? suggestion.itemId,
|
|
169
|
+
language: resolvedField?.language ??
|
|
170
|
+
getSuggestedEditItemLanguage(suggestion),
|
|
171
|
+
version: resolvedField?.version ??
|
|
172
|
+
getSuggestedEditItemVersion(suggestion) ??
|
|
173
|
+
0,
|
|
174
|
+
},
|
|
175
|
+
start,
|
|
176
|
+
end,
|
|
177
|
+
}));
|
|
178
|
+
}), [
|
|
179
|
+
fieldIdentityBySuggestionId,
|
|
180
|
+
fieldValueByIdentity,
|
|
181
|
+
hiddenSuggestionIds,
|
|
182
|
+
previewsSuggestedText,
|
|
183
|
+
rangeDataBySuggestionId,
|
|
184
|
+
suggestions,
|
|
185
|
+
]);
|
|
186
|
+
useBridgeTextRangeRequest(pageViewContext, SUGGESTION_BRIDGE_SOURCE, bridgeTextRanges, request);
|
|
187
|
+
const measurements = useOverlayMeasurement((metrics, reasons) => {
|
|
188
|
+
if (!bridgeGeometry)
|
|
189
|
+
return {};
|
|
190
|
+
const canReusePreviousMeasurement = !reasons.has("viewport") &&
|
|
191
|
+
!reasons.has("layout") &&
|
|
192
|
+
!reasons.has("text");
|
|
193
|
+
const nextMeasurements = {};
|
|
194
|
+
for (const suggestion of suggestions) {
|
|
195
|
+
if (!suggestion.fieldId)
|
|
196
|
+
continue;
|
|
197
|
+
if (hiddenSuggestionIds.has(suggestion.id))
|
|
198
|
+
continue;
|
|
199
|
+
const rangeData = rangeDataBySuggestionId[suggestion.id];
|
|
200
|
+
if (!rangeData)
|
|
201
|
+
continue;
|
|
202
|
+
const ranges = getSuggestionDisplayRanges(rangeData, previewsSuggestedText(suggestion) ? "new" : "old");
|
|
203
|
+
if (ranges.length === 0)
|
|
204
|
+
continue;
|
|
205
|
+
const rects = measureBridgeTextRangeRects(bridgeGeometry, getSuggestedEditTextRangeKey(suggestion), metrics);
|
|
206
|
+
if (rects.length === 0) {
|
|
207
|
+
const previousMeasurement = lastMeasurementsRef.current[suggestion.id];
|
|
208
|
+
if (canReusePreviousMeasurement &&
|
|
209
|
+
previousMeasurement?.isTextRange &&
|
|
210
|
+
previousMeasurement.rects.length) {
|
|
211
|
+
nextMeasurements[suggestion.id] = previousMeasurement;
|
|
212
|
+
}
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
nextMeasurements[suggestion.id] = { rects, isTextRange: true };
|
|
216
|
+
}
|
|
217
|
+
return nextMeasurements;
|
|
218
|
+
}, [
|
|
219
|
+
bridgeGeometry,
|
|
220
|
+
hiddenSuggestionIds,
|
|
221
|
+
previewsSuggestedText,
|
|
222
|
+
suggestions,
|
|
223
|
+
rangeDataBySuggestionId,
|
|
224
|
+
], {
|
|
225
|
+
initialValue: {},
|
|
226
|
+
equals: anchorMeasurementsEqual,
|
|
227
|
+
interests: ["viewport", "layout", "text", "adornment-data"],
|
|
228
|
+
});
|
|
229
|
+
useEffect(() => {
|
|
230
|
+
lastMeasurementsRef.current = measurements;
|
|
231
|
+
}, [measurements]);
|
|
232
|
+
return {
|
|
233
|
+
measurements,
|
|
234
|
+
hiddenSuggestionIds,
|
|
235
|
+
rangeDataBySuggestionId,
|
|
236
|
+
fieldValueByIdentity,
|
|
237
|
+
fieldIdentityBySuggestionId,
|
|
238
|
+
previewsSuggestedText,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=useSuggestionAnchorMeasurements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSuggestionAnchorMeasurements.js","sourceRoot":"","sources":["../../../../src/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const CANVAS_OVERVIEW_RULER_TEST_ID = "canvas-overview-ruler";
|
|
2
|
+
/**
|
|
3
|
+
* Paints the marks published by the canvas highlightings in one strip over
|
|
4
|
+
* the canvas's right edge (where the page's scrollbar is), the whole page
|
|
5
|
+
* scaled onto the strip's height. Shown whether or not the minimap is. Marks
|
|
6
|
+
* are buttons handing the click to their source; the strip between them lets
|
|
7
|
+
* the pointer through to the scrollbar.
|
|
8
|
+
*/
|
|
9
|
+
export declare function CanvasOverviewRuler({ height }: {
|
|
10
|
+
height: number | string;
|
|
11
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../lib/utils";
|
|
3
|
+
import { layoutOverviewRuler, OVERVIEW_RULER_MARK_HEIGHT, OVERVIEW_RULER_WIDTH, useOverviewRulerSnapshot, useOverviewRulerStore, } from "./overviewRuler";
|
|
4
|
+
export const CANVAS_OVERVIEW_RULER_TEST_ID = "canvas-overview-ruler";
|
|
5
|
+
// Same colours as the minimap dots (comments, suggestions), the canvas
|
|
6
|
+
// highlights (agent changes), the spelling underline (faded, there are many)
|
|
7
|
+
// and the validation severity badges.
|
|
8
|
+
const toneClassNames = {
|
|
9
|
+
comment: "bg-highlight-100",
|
|
10
|
+
"comment-resolved": "bg-highlight-100/40",
|
|
11
|
+
suggestion: "bg-component-suggestions",
|
|
12
|
+
added: "bg-feedback-green",
|
|
13
|
+
removed: "bg-feedback-red",
|
|
14
|
+
spelling: "bg-feedback-red/50",
|
|
15
|
+
"validation-error": "bg-feedback-red",
|
|
16
|
+
"validation-warning": "bg-feedback-orange",
|
|
17
|
+
"validation-suggestion": "bg-feedback-blue",
|
|
18
|
+
};
|
|
19
|
+
const toneLabels = {
|
|
20
|
+
comment: ["Comment", "comments"],
|
|
21
|
+
"comment-resolved": ["Resolved comment", "resolved comments"],
|
|
22
|
+
suggestion: ["Suggestion", "suggestions"],
|
|
23
|
+
added: ["Agent change", "agent changes"],
|
|
24
|
+
removed: ["Text removed by the agent", "removals by the agent"],
|
|
25
|
+
spelling: ["Spelling mistake", "spelling mistakes"],
|
|
26
|
+
"validation-error": ["Validation error", "validation errors"],
|
|
27
|
+
"validation-warning": ["Validation warning", "validation warnings"],
|
|
28
|
+
"validation-suggestion": ["Validation suggestion", "validation suggestions"],
|
|
29
|
+
};
|
|
30
|
+
function getMarkLabel({ tone, mark }) {
|
|
31
|
+
const [one, many] = toneLabels[tone];
|
|
32
|
+
const count = mark.ids?.length ?? 0;
|
|
33
|
+
return count > 1 ? `${count} ${many}` : one;
|
|
34
|
+
}
|
|
35
|
+
/** The label, then what the mark is about (e.g. the validation messages). */
|
|
36
|
+
function getMarkTitleLines(placed) {
|
|
37
|
+
const details = placed.mark.details ?? [];
|
|
38
|
+
return [getMarkLabel(placed), ...details];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Paints the marks published by the canvas highlightings in one strip over
|
|
42
|
+
* the canvas's right edge (where the page's scrollbar is), the whole page
|
|
43
|
+
* scaled onto the strip's height. Shown whether or not the minimap is. Marks
|
|
44
|
+
* are buttons handing the click to their source; the strip between them lets
|
|
45
|
+
* the pointer through to the scrollbar.
|
|
46
|
+
*/
|
|
47
|
+
export function CanvasOverviewRuler({ height }) {
|
|
48
|
+
const store = useOverviewRulerStore();
|
|
49
|
+
const snapshot = useOverviewRulerSnapshot();
|
|
50
|
+
const marks = layoutOverviewRuler(snapshot);
|
|
51
|
+
if (!store || !marks)
|
|
52
|
+
return null;
|
|
53
|
+
return (_jsx("div", { className: "pointer-events-none absolute top-0 right-0 z-20", "data-testid": CANVAS_OVERVIEW_RULER_TEST_ID, style: { width: OVERVIEW_RULER_WIDTH, height }, children: marks.map((placed, index) => {
|
|
54
|
+
const titleLines = getMarkTitleLines(placed);
|
|
55
|
+
return (_jsx("button", { type: "button", tabIndex: -1, "aria-label": titleLines.join(": "), title: titleLines.join("\n"), className: cn("pointer-events-auto absolute inset-x-0 cursor-pointer rounded-full p-0 transition-[filter,box-shadow]", "hover:shadow-[0_0_0_1px_white] hover:brightness-110", toneClassNames[placed.tone]), "data-testid": `${CANVAS_OVERVIEW_RULER_TEST_ID}-mark`, "data-tone": placed.tone, "data-source": placed.source, style: {
|
|
56
|
+
// A line at the very bottom stays inside the ruler.
|
|
57
|
+
top: `min(${placed.top * 100}%, calc(100% - ${OVERVIEW_RULER_MARK_HEIGHT}px))`,
|
|
58
|
+
height: OVERVIEW_RULER_MARK_HEIGHT,
|
|
59
|
+
}, onClick: (event) => {
|
|
60
|
+
event.stopPropagation();
|
|
61
|
+
store.activate(placed.source, placed.mark);
|
|
62
|
+
} }, index));
|
|
63
|
+
}) }));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=CanvasOverviewRuler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasOverviewRuler.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/CanvasOverviewRuler.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { RenderingState } from "../services/renderingsService";
|
|
2
|
+
type DynamicRenderingsBarProps = {
|
|
3
|
+
/** The page's dynamic renderings with their approval state. */
|
|
4
|
+
renderings?: readonly RenderingState[];
|
|
5
|
+
renderingsLoading?: boolean;
|
|
6
|
+
renderingsError?: string;
|
|
7
|
+
/** The user may open the review dialog (an administrator, or the sandbox's owner). */
|
|
8
|
+
canReview?: boolean;
|
|
9
|
+
/** The user may approve and revoke (an administrator, not a sandbox). */
|
|
10
|
+
canApprove?: boolean;
|
|
11
|
+
onReview?: (rendering: RenderingState) => void;
|
|
12
|
+
onRevoke?: (rendering: RenderingState) => void;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Sits above the preview canvas when the page has dynamic renderings. It
|
|
16
|
+
* lists them with their approval state (published pages show only approved
|
|
17
|
+
* ones) and says when client code does not run because it is not approved.
|
|
18
|
+
* Administrators, and on a sandbox page its owner, review a rendering's code
|
|
19
|
+
* and try its client code in the review dialog; administrators also approve
|
|
20
|
+
* and revoke. Nobody else gets a review.
|
|
21
|
+
*/
|
|
22
|
+
export declare function DynamicRenderingsBar({ renderings, renderingsLoading, renderingsError, canReview, canApprove, onReview, onRevoke, }: DynamicRenderingsBarProps): import("react").JSX.Element;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CodeXmlIcon, PaletteIcon } from "lucide-react";
|
|
3
|
+
import { Badge } from "../../components/ui/badge";
|
|
4
|
+
import { Button } from "../../components/ui/button";
|
|
5
|
+
import { Spinner } from "../ui/Spinner";
|
|
6
|
+
import { getClientCodeNotice, getRenderingApprovalStatus, getRenderingDisplayName, RENDERING_APPROVAL_BADGE_CLASSES, RENDERING_APPROVAL_DESCRIPTIONS, RENDERING_APPROVAL_LABELS, } from "./renderingApproval";
|
|
7
|
+
/**
|
|
8
|
+
* Sits above the preview canvas when the page has dynamic renderings. It
|
|
9
|
+
* lists them with their approval state (published pages show only approved
|
|
10
|
+
* ones) and says when client code does not run because it is not approved.
|
|
11
|
+
* Administrators, and on a sandbox page its owner, review a rendering's code
|
|
12
|
+
* and try its client code in the review dialog; administrators also approve
|
|
13
|
+
* and revoke. Nobody else gets a review.
|
|
14
|
+
*/
|
|
15
|
+
export function DynamicRenderingsBar({ renderings = [], renderingsLoading = false, renderingsError, canReview = false, canApprove = false, onReview, onRevoke, }) {
|
|
16
|
+
const clientCodeNotice = getClientCodeNotice(renderings, canReview);
|
|
17
|
+
return (_jsxs("div", { role: "region", "aria-label": "Dynamic renderings", "data-testid": "dynamic-renderings-bar",
|
|
18
|
+
// pl-14 clears the editor form toggle that floats over the canvas's top-left corner (PageViewer).
|
|
19
|
+
className: "text-neutral-grey-100 bg-feedback-blue-light border-border-default flex max-h-24 w-full shrink-0 items-start gap-2 overflow-y-auto border-b py-1.5 pr-3 pl-14 text-xs", children: [_jsx(CodeXmlIcon, { className: "text-feedback-blue mt-0.5 h-4 w-4 shrink-0", strokeWidth: 1.5, "aria-hidden": "true" }), _jsxs("div", { className: "flex min-h-5 min-w-0 flex-1 flex-wrap items-center gap-x-3 gap-y-1", children: [_jsx("span", { className: "font-medium", children: "Dynamic renderings" }), renderings.map((rendering) => {
|
|
20
|
+
const approval = getRenderingApprovalStatus(rendering);
|
|
21
|
+
const name = getRenderingDisplayName(rendering);
|
|
22
|
+
const approvable = canApprove && !rendering.sandbox;
|
|
23
|
+
return (_jsxs("span", { className: "inline-flex max-w-full min-w-0 items-center gap-1.5", "data-testid": "preview-rendering", "data-rendering-id": rendering.id, "data-approval": approval, children: [rendering.kind === "theme" && (_jsx(PaletteIcon, { className: "text-neutral-grey-50 h-3.5 w-3.5 shrink-0", strokeWidth: 1.5, "aria-hidden": "true" })), _jsx("span", { className: "max-w-48 truncate", title: rendering.path || name, children: name }), _jsx(Badge, { size: "sm", variant: "secondary", className: RENDERING_APPROVAL_BADGE_CLASSES[approval], title: RENDERING_APPROVAL_DESCRIPTIONS[approval], children: RENDERING_APPROVAL_LABELS[approval] }), canReview && (_jsx(Button, { variant: "link", size: "xxs", className: "h-auto p-0 text-xs", onClick: () => onReview?.(rendering), "data-testid": "preview-rendering-review", children: approvable && !rendering.approved
|
|
24
|
+
? "Review and approve"
|
|
25
|
+
: "Review" })), approvable && rendering.approved && (_jsx(Button, { variant: "link", size: "xxs", className: "h-auto p-0 text-xs", onClick: () => onRevoke?.(rendering), "data-testid": "preview-rendering-revoke", children: "Revoke" }))] }, rendering.id));
|
|
26
|
+
}), clientCodeNotice && (_jsx("span", { className: "text-neutral-grey-80", "data-testid": "preview-renderings-client-code-notice", children: clientCodeNotice })), renderingsLoading && renderings.length === 0 && (_jsx(Spinner, { size: "xs" })), renderingsError && (_jsxs("span", { className: "text-feedback-red truncate", title: renderingsError, "data-testid": "preview-renderings-error", children: ["Approval state unavailable: ", renderingsError] }))] })] }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=DynamicRenderingsBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicRenderingsBar.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/DynamicRenderingsBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PageVersion } from "../services/renderingsService";
|
|
2
|
+
type DynamicRenderingsStripProps = {
|
|
3
|
+
page: PageVersion | undefined;
|
|
4
|
+
/** The page's dynamic renderings as read from the preview canvas. */
|
|
5
|
+
renderingIds: readonly string[];
|
|
6
|
+
/** The preview canvas URL, for trying client code in the review dialog. */
|
|
7
|
+
getCanvasUrl?: () => string | undefined;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* The preview strip with its data: the approval state of the page's dynamic
|
|
11
|
+
* renderings (and theme) from the CM; the review dialog (code, and the page's
|
|
12
|
+
* client code in a sealed frame) for administrators and, on a sandbox page,
|
|
13
|
+
* its owner; approve and revoke for administrators. Everyone else sees client
|
|
14
|
+
* code run only once it is approved. The state is loaded again after every
|
|
15
|
+
* approval change.
|
|
16
|
+
*/
|
|
17
|
+
export declare function DynamicRenderingsStrip({ page, renderingIds, getCanvasUrl, }: DynamicRenderingsStripProps): import("react").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { DynamicRenderingsBar } from "./DynamicRenderingsBar";
|
|
4
|
+
import { RenderingApprovalDialog, RevokeRenderingDialog, } from "./RenderingApprovalDialog";
|
|
5
|
+
import { sortRenderingsForPage, useRenderingPageState, } from "./renderingApproval";
|
|
6
|
+
/**
|
|
7
|
+
* The preview strip with its data: the approval state of the page's dynamic
|
|
8
|
+
* renderings (and theme) from the CM; the review dialog (code, and the page's
|
|
9
|
+
* client code in a sealed frame) for administrators and, on a sandbox page,
|
|
10
|
+
* its owner; approve and revoke for administrators. Everyone else sees client
|
|
11
|
+
* code run only once it is approved. The state is loaded again after every
|
|
12
|
+
* approval change.
|
|
13
|
+
*/
|
|
14
|
+
export function DynamicRenderingsStrip({ page, renderingIds, getCanvasUrl, }) {
|
|
15
|
+
const pageState = useRenderingPageState({
|
|
16
|
+
page,
|
|
17
|
+
renderingIds,
|
|
18
|
+
enabled: renderingIds.length > 0,
|
|
19
|
+
});
|
|
20
|
+
const [reviewing, setReviewing] = useState();
|
|
21
|
+
const [revoking, setRevoking] = useState();
|
|
22
|
+
const canReview = !!pageState.state?.canReview;
|
|
23
|
+
const canApprove = !!pageState.state?.canApprove;
|
|
24
|
+
const renderings = pageState.state
|
|
25
|
+
? sortRenderingsForPage(pageState.state.renderings, renderingIds)
|
|
26
|
+
: undefined;
|
|
27
|
+
return (_jsxs(_Fragment, { children: [_jsx(DynamicRenderingsBar, { renderings: renderings, renderingsLoading: pageState.loading, renderingsError: pageState.error, canReview: canReview, canApprove: canApprove, onReview: setReviewing, onRevoke: setRevoking }), reviewing && canReview && (_jsx(RenderingApprovalDialog, { rendering: reviewing, canApprove: canApprove, page: page, getCanvasUrl: getCanvasUrl, onClose: () => setReviewing(undefined), onChanged: pageState.refresh })), revoking && (_jsx(RevokeRenderingDialog, { rendering: revoking, onClose: () => setRevoking(undefined), onChanged: pageState.refresh }))] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=DynamicRenderingsStrip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicRenderingsStrip.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/DynamicRenderingsStrip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAU7B;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,EACrC,IAAI,EACJ,YAAY,EACZ,YAAY,GACgB;IAC5B,MAAM,SAAS,GAAG,qBAAqB,CAAC;QACtC,IAAI;QACJ,YAAY;QACZ,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;KACjC,CAAC,CAAC;IACH,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAkB,CAAC;IAC7D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAkB,CAAC;IAC3D,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC/C,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC;IACjD,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK;QAChC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;QACjE,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,8BACE,KAAC,oBAAoB,IACnB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,SAAS,CAAC,OAAO,EACpC,eAAe,EAAE,SAAS,CAAC,KAAK,EAChC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,WAAW,GACrB,EACD,SAAS,IAAI,SAAS,IAAI,CACzB,KAAC,uBAAuB,IACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EACtC,SAAS,EAAE,SAAS,CAAC,OAAO,GAC5B,CACH,EACA,QAAQ,IAAI,CACX,KAAC,qBAAqB,IACpB,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EACrC,SAAS,EAAE,SAAS,CAAC,OAAO,GAC5B,CACH,IACA,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type FeedbackMarginSize } from "./feedbackMarginLayout";
|
|
2
|
+
import { type PageViewContext } from "./pageViewContext";
|
|
3
|
+
export { FEEDBACK_MARGIN_MIN_WIDTH, FEEDBACK_MARGIN_RAIL_WIDTH, FEEDBACK_MARGIN_WIDTH, } from "./FeedbackMarginController";
|
|
4
|
+
export type FeedbackMarginProps = {
|
|
5
|
+
iframe: HTMLIFrameElement | null;
|
|
6
|
+
pageViewContext: PageViewContext;
|
|
7
|
+
/** Height of the canvas beside the column (fixed devices) or "100%". */
|
|
8
|
+
height: number | string;
|
|
9
|
+
/** What the pane leaves for the column (resolveFeedbackMarginSize). */
|
|
10
|
+
size: FeedbackMarginSize;
|
|
11
|
+
/** The widest the pane lets the user drag the column (getFeedbackMarginRoom). */
|
|
12
|
+
maxResizeWidth?: number;
|
|
13
|
+
invalidationKey: string;
|
|
14
|
+
deferredInvalidationMs: number;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Word-style comment margin beside the canvas: a column where every
|
|
18
|
+
* comment/suggestion card sits level with the text it is about. It carries no
|
|
19
|
+
* controls; adding, suggesting and filtering live in the toolbar.
|
|
20
|
+
*
|
|
21
|
+
* In a narrow pane the column narrows, then collapses into a rail of markers
|
|
22
|
+
* (the canvas keeps its width); the rail can be expanded into the full column
|
|
23
|
+
* floating over the canvas edge. Dragging the column's edge past its minimum
|
|
24
|
+
* collapses it into the same rail where the pane has room for it.
|
|
25
|
+
*/
|
|
26
|
+
export declare function FeedbackMargin({ iframe, pageViewContext, height, size, maxResizeWidth, invalidationKey, deferredInvalidationMs, }: FeedbackMarginProps): import("react").JSX.Element;
|
|
27
|
+
export type FormFeedbackMarginProps = {
|
|
28
|
+
/** The element that scrolls the form and this column together. */
|
|
29
|
+
scroller: HTMLElement | null;
|
|
30
|
+
/** The form beside the column; anchors are its `[data-field-id]` fields. */
|
|
31
|
+
form: HTMLElement | null;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The same margin beside the item form (items without a canvas): it sits in
|
|
35
|
+
* the form's own scroll container, so the cards scroll natively with the
|
|
36
|
+
* fields they are anchored to.
|
|
37
|
+
*/
|
|
38
|
+
export declare function FormFeedbackMargin({ scroller, form, }: FormFeedbackMarginProps): import("react").JSX.Element;
|
|
39
|
+
export declare function useElementWidth(element: HTMLElement | null): number;
|
|
40
|
+
export declare function useElementHeight(element: HTMLElement | null): number;
|
|
41
|
+
/**
|
|
42
|
+
* Suggestions mode changes what typing on the page does, so the margin says
|
|
43
|
+
* so where the suggestions appear. A notice card, not a header: the mode is
|
|
44
|
+
* switched from the toolbar.
|
|
45
|
+
*/
|
|
46
|
+
export declare const SuggestingNotice: import("react").ForwardRefExoticComponent<{
|
|
47
|
+
className?: string;
|
|
48
|
+
onStopSuggesting: () => void;
|
|
49
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
50
|
+
export declare function useRevealPinnedCard(listRef: React.RefObject<HTMLDivElement | null>, pinnedId: string | undefined, enabled: boolean): void;
|
|
51
|
+
/**
|
|
52
|
+
* What the footer holds depends on the surface. Beside the canvas it is
|
|
53
|
+
* feedback on things the page does not render. In a form it is feedback on
|
|
54
|
+
* fields the form does not show (hidden sections, fields of another item);
|
|
55
|
+
* feedback on the item as a whole sits at the top of the form instead.
|
|
56
|
+
*/
|
|
57
|
+
export declare function getUnplacedLabel(count: number, layout: "overlay" | "flow"): string;
|