@fivepixels-js/react 0.1.7 → 0.2.0
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/README.md +56 -3
- package/dist/components/icons/Icons.d.ts +34 -0
- package/dist/components/icons/Icons.d.ts.map +1 -1
- package/dist/components/icons/Icons.js +67 -13
- package/dist/components/icons/Icons.js.map +1 -1
- package/dist/components/icons/ProbeLayoutIcons.d.ts +16 -0
- package/dist/components/icons/ProbeLayoutIcons.d.ts.map +1 -0
- package/dist/components/icons/ProbeLayoutIcons.js +62 -0
- package/dist/components/icons/ProbeLayoutIcons.js.map +1 -0
- package/dist/components/overlay/PickTargetCompareChip.d.ts +7 -0
- package/dist/components/overlay/PickTargetCompareChip.d.ts.map +1 -0
- package/dist/components/overlay/PickTargetCompareChip.js +35 -0
- package/dist/components/overlay/PickTargetCompareChip.js.map +1 -0
- package/dist/components/overlay/PickTargetCompareSegment.d.ts +12 -0
- package/dist/components/overlay/PickTargetCompareSegment.d.ts.map +1 -0
- package/dist/components/overlay/PickTargetCompareSegment.js +17 -0
- package/dist/components/overlay/PickTargetCompareSegment.js.map +1 -0
- package/dist/components/overlay/PickTargetContextMenu.d.ts +8 -0
- package/dist/components/overlay/PickTargetContextMenu.d.ts.map +1 -0
- package/dist/components/overlay/PickTargetContextMenu.js +30 -0
- package/dist/components/overlay/PickTargetContextMenu.js.map +1 -0
- package/dist/components/overlay/PickTargetHoverTooltip.d.ts +7 -0
- package/dist/components/overlay/PickTargetHoverTooltip.d.ts.map +1 -0
- package/dist/components/overlay/PickTargetHoverTooltip.js +69 -0
- package/dist/components/overlay/PickTargetHoverTooltip.js.map +1 -0
- package/dist/components/overlay/PickTargetProbePanel.d.ts +2 -0
- package/dist/components/overlay/PickTargetProbePanel.d.ts.map +1 -0
- package/dist/components/overlay/PickTargetProbePanel.js +106 -0
- package/dist/components/overlay/PickTargetProbePanel.js.map +1 -0
- package/dist/components/overlay/PickTargetSavedBadges.d.ts +2 -0
- package/dist/components/overlay/PickTargetSavedBadges.d.ts.map +1 -0
- package/dist/components/overlay/PickTargetSavedBadges.js +63 -0
- package/dist/components/overlay/PickTargetSavedBadges.js.map +1 -0
- package/dist/components/overlay/ProbeLayoutControls.d.ts +11 -0
- package/dist/components/overlay/ProbeLayoutControls.d.ts.map +1 -0
- package/dist/components/overlay/ProbeLayoutControls.js +82 -0
- package/dist/components/overlay/ProbeLayoutControls.js.map +1 -0
- package/dist/components/overlay/ReportOverlayLayer.d.ts.map +1 -1
- package/dist/components/overlay/ReportOverlayLayer.js +16 -2
- package/dist/components/overlay/ReportOverlayLayer.js.map +1 -1
- package/dist/components/overlay/TargetHighlights.d.ts +7 -2
- package/dist/components/overlay/TargetHighlights.d.ts.map +1 -1
- package/dist/components/overlay/TargetHighlights.js +18 -14
- package/dist/components/overlay/TargetHighlights.js.map +1 -1
- package/dist/components/panel/AppearanceThemePicker.d.ts +15 -0
- package/dist/components/panel/AppearanceThemePicker.d.ts.map +1 -0
- package/dist/components/panel/AppearanceThemePicker.js +30 -0
- package/dist/components/panel/AppearanceThemePicker.js.map +1 -0
- package/dist/components/panel/DiscreteScaleDial.d.ts +10 -0
- package/dist/components/panel/DiscreteScaleDial.d.ts.map +1 -0
- package/dist/components/panel/DiscreteScaleDial.js +14 -0
- package/dist/components/panel/DiscreteScaleDial.js.map +1 -0
- package/dist/components/panel/DraftProbeSummaryBanner.d.ts +2 -0
- package/dist/components/panel/DraftProbeSummaryBanner.d.ts.map +1 -0
- package/dist/components/panel/DraftProbeSummaryBanner.js +10 -0
- package/dist/components/panel/DraftProbeSummaryBanner.js.map +1 -0
- package/dist/components/panel/FeedbackActivityHeatmap.d.ts +2 -0
- package/dist/components/panel/FeedbackActivityHeatmap.d.ts.map +1 -0
- package/dist/components/panel/FeedbackActivityHeatmap.js +172 -0
- package/dist/components/panel/FeedbackActivityHeatmap.js.map +1 -0
- package/dist/components/panel/HexColorField.d.ts +9 -0
- package/dist/components/panel/HexColorField.d.ts.map +1 -0
- package/dist/components/panel/HexColorField.js +23 -0
- package/dist/components/panel/HexColorField.js.map +1 -0
- package/dist/components/panel/MarkerShapePicker.d.ts +10 -0
- package/dist/components/panel/MarkerShapePicker.d.ts.map +1 -0
- package/dist/components/panel/MarkerShapePicker.js +26 -0
- package/dist/components/panel/MarkerShapePicker.js.map +1 -0
- package/dist/components/panel/PanelDropdownMenu.d.ts.map +1 -1
- package/dist/components/panel/PanelDropdownMenu.js +25 -14
- package/dist/components/panel/PanelDropdownMenu.js.map +1 -1
- package/dist/components/panel/PanelKeyGate.d.ts +7 -0
- package/dist/components/panel/PanelKeyGate.d.ts.map +1 -0
- package/dist/components/panel/PanelKeyGate.js +38 -0
- package/dist/components/panel/PanelKeyGate.js.map +1 -0
- package/dist/components/panel/PanelOnboarding.d.ts +2 -0
- package/dist/components/panel/PanelOnboarding.d.ts.map +1 -0
- package/dist/components/panel/PanelOnboarding.js +115 -0
- package/dist/components/panel/PanelOnboarding.js.map +1 -0
- package/dist/components/panel/PanelPresentationSwitch.d.ts +2 -0
- package/dist/components/panel/PanelPresentationSwitch.d.ts.map +1 -0
- package/dist/components/panel/PanelPresentationSwitch.js +40 -0
- package/dist/components/panel/PanelPresentationSwitch.js.map +1 -0
- package/dist/components/panel/PanelProjectFooter.d.ts +2 -0
- package/dist/components/panel/PanelProjectFooter.d.ts.map +1 -0
- package/dist/components/panel/PanelProjectFooter.js +7 -0
- package/dist/components/panel/PanelProjectFooter.js.map +1 -0
- package/dist/components/panel/PanelRoleSwitch.d.ts +2 -0
- package/dist/components/panel/PanelRoleSwitch.d.ts.map +1 -0
- package/dist/components/panel/PanelRoleSwitch.js +21 -0
- package/dist/components/panel/PanelRoleSwitch.js.map +1 -0
- package/dist/components/panel/PanelSettings.d.ts +21 -0
- package/dist/components/panel/PanelSettings.d.ts.map +1 -0
- package/dist/components/panel/PanelSettings.js +103 -0
- package/dist/components/panel/PanelSettings.js.map +1 -0
- package/dist/components/panel/PanelTabSelector.d.ts +13 -0
- package/dist/components/panel/PanelTabSelector.d.ts.map +1 -0
- package/dist/components/panel/PanelTabSelector.js +44 -0
- package/dist/components/panel/PanelTabSelector.js.map +1 -0
- package/dist/components/panel/ProbeEditModeBanner.d.ts +2 -0
- package/dist/components/panel/ProbeEditModeBanner.d.ts.map +1 -0
- package/dist/components/panel/ProbeEditModeBanner.js +22 -0
- package/dist/components/panel/ProbeEditModeBanner.js.map +1 -0
- package/dist/components/panel/ReportAuthDiagnostics.d.ts +2 -0
- package/dist/components/panel/ReportAuthDiagnostics.d.ts.map +1 -0
- package/dist/components/panel/ReportAuthDiagnostics.js +67 -0
- package/dist/components/panel/ReportAuthDiagnostics.js.map +1 -0
- package/dist/components/panel/ReportCommandPanel.js +1 -1
- package/dist/components/panel/ReportCommandPanel.js.map +1 -1
- package/dist/components/panel/ReportCommandReplaceConfirmDialog.d.ts.map +1 -1
- package/dist/components/panel/ReportCommandReplaceConfirmDialog.js +2 -1
- package/dist/components/panel/ReportCommandReplaceConfirmDialog.js.map +1 -1
- package/dist/components/panel/ReportControlPanel.d.ts.map +1 -1
- package/dist/components/panel/ReportControlPanel.js +62 -46
- package/dist/components/panel/ReportControlPanel.js.map +1 -1
- package/dist/components/panel/ReportDraftForm.d.ts.map +1 -1
- package/dist/components/panel/ReportDraftForm.js +41 -16
- package/dist/components/panel/ReportDraftForm.js.map +1 -1
- package/dist/components/panel/ReportFeedbackList.d.ts.map +1 -1
- package/dist/components/panel/ReportFeedbackList.js +46 -105
- package/dist/components/panel/ReportFeedbackList.js.map +1 -1
- package/dist/components/panel/ReportOverview.d.ts +2 -0
- package/dist/components/panel/ReportOverview.d.ts.map +1 -0
- package/dist/components/panel/ReportOverview.js +6 -0
- package/dist/components/panel/ReportOverview.js.map +1 -0
- package/dist/components/panel/ReportPersonalKeyDialog.js +2 -2
- package/dist/components/panel/ReportPersonalKeyDialog.js.map +1 -1
- package/dist/components/panel/ReportRouteDetails.d.ts.map +1 -1
- package/dist/components/panel/ReportRouteDetails.js +23 -11
- package/dist/components/panel/ReportRouteDetails.js.map +1 -1
- package/dist/components/panel/RouteDetailsTimeline.d.ts +13 -0
- package/dist/components/panel/RouteDetailsTimeline.d.ts.map +1 -0
- package/dist/components/panel/RouteDetailsTimeline.js +53 -0
- package/dist/components/panel/RouteDetailsTimeline.js.map +1 -0
- package/dist/components/panel/ThemePreviewSkeleton.d.ts +7 -0
- package/dist/components/panel/ThemePreviewSkeleton.d.ts.map +1 -0
- package/dist/components/panel/ThemePreviewSkeleton.js +25 -0
- package/dist/components/panel/ThemePreviewSkeleton.js.map +1 -0
- package/dist/components/panel/experimental/ExperimentalFeedbackRow.d.ts +8 -0
- package/dist/components/panel/experimental/ExperimentalFeedbackRow.d.ts.map +1 -0
- package/dist/components/panel/experimental/ExperimentalFeedbackRow.js +13 -0
- package/dist/components/panel/experimental/ExperimentalFeedbackRow.js.map +1 -0
- package/dist/components/panel/experimental/ReportMyTasksPanel.d.ts +2 -0
- package/dist/components/panel/experimental/ReportMyTasksPanel.d.ts.map +1 -0
- package/dist/components/panel/experimental/ReportMyTasksPanel.js +16 -0
- package/dist/components/panel/experimental/ReportMyTasksPanel.js.map +1 -0
- package/dist/components/panel/experimental/ReportNeedsAttentionPanel.d.ts +2 -0
- package/dist/components/panel/experimental/ReportNeedsAttentionPanel.d.ts.map +1 -0
- package/dist/components/panel/experimental/ReportNeedsAttentionPanel.js +16 -0
- package/dist/components/panel/experimental/ReportNeedsAttentionPanel.js.map +1 -0
- package/dist/components/panel/experimental/ReportPageBriefPanel.d.ts +2 -0
- package/dist/components/panel/experimental/ReportPageBriefPanel.d.ts.map +1 -0
- package/dist/components/panel/experimental/ReportPageBriefPanel.js +15 -0
- package/dist/components/panel/experimental/ReportPageBriefPanel.js.map +1 -0
- package/dist/components/panel/experimental/ReportProjectHealthPanel.d.ts +2 -0
- package/dist/components/panel/experimental/ReportProjectHealthPanel.d.ts.map +1 -0
- package/dist/components/panel/experimental/ReportProjectHealthPanel.js +22 -0
- package/dist/components/panel/experimental/ReportProjectHealthPanel.js.map +1 -0
- package/dist/components/panel/experimental/ReportTodayDigestPanel.d.ts +2 -0
- package/dist/components/panel/experimental/ReportTodayDigestPanel.d.ts.map +1 -0
- package/dist/components/panel/experimental/ReportTodayDigestPanel.js +16 -0
- package/dist/components/panel/experimental/ReportTodayDigestPanel.js.map +1 -0
- package/dist/components/panel/feedback/AssigneeThreadEntry.d.ts +20 -0
- package/dist/components/panel/feedback/AssigneeThreadEntry.d.ts.map +1 -0
- package/dist/components/panel/feedback/AssigneeThreadEntry.js +23 -0
- package/dist/components/panel/feedback/AssigneeThreadEntry.js.map +1 -0
- package/dist/components/panel/feedback/CaseAssigneeInfo.d.ts +8 -0
- package/dist/components/panel/feedback/CaseAssigneeInfo.d.ts.map +1 -0
- package/dist/components/panel/feedback/CaseAssigneeInfo.js +20 -0
- package/dist/components/panel/feedback/CaseAssigneeInfo.js.map +1 -0
- package/dist/components/panel/feedback/ComposerFooterWarning.d.ts +6 -0
- package/dist/components/panel/feedback/ComposerFooterWarning.d.ts.map +1 -0
- package/dist/components/panel/feedback/ComposerFooterWarning.js +6 -0
- package/dist/components/panel/feedback/ComposerFooterWarning.js.map +1 -0
- package/dist/components/panel/feedback/FeedbackCaseEditor.d.ts +15 -0
- package/dist/components/panel/feedback/FeedbackCaseEditor.d.ts.map +1 -0
- package/dist/components/panel/feedback/FeedbackCaseEditor.js +111 -0
- package/dist/components/panel/feedback/FeedbackCaseEditor.js.map +1 -0
- package/dist/components/panel/feedback/FeedbackCaseList.d.ts +21 -0
- package/dist/components/panel/feedback/FeedbackCaseList.d.ts.map +1 -0
- package/dist/components/panel/feedback/FeedbackCaseList.js +48 -0
- package/dist/components/panel/feedback/FeedbackCaseList.js.map +1 -0
- package/dist/components/panel/feedback/FeedbackCaseTabBar.d.ts +34 -0
- package/dist/components/panel/feedback/FeedbackCaseTabBar.d.ts.map +1 -0
- package/dist/components/panel/feedback/FeedbackCaseTabBar.js +37 -0
- package/dist/components/panel/feedback/FeedbackCaseTabBar.js.map +1 -0
- package/dist/components/panel/feedback/FeedbackCategorySelector.d.ts +12 -0
- package/dist/components/panel/feedback/FeedbackCategorySelector.d.ts.map +1 -0
- package/dist/components/panel/feedback/FeedbackCategorySelector.js +25 -0
- package/dist/components/panel/feedback/FeedbackCategorySelector.js.map +1 -0
- package/dist/components/panel/feedback/FeedbackComposer.d.ts +20 -4
- package/dist/components/panel/feedback/FeedbackComposer.d.ts.map +1 -1
- package/dist/components/panel/feedback/FeedbackComposer.js +78 -11
- package/dist/components/panel/feedback/FeedbackComposer.js.map +1 -1
- package/dist/components/panel/feedback/FeedbackHoverCard.d.ts +1 -5
- package/dist/components/panel/feedback/FeedbackHoverCard.d.ts.map +1 -1
- package/dist/components/panel/feedback/FeedbackHoverCard.js +21 -14
- package/dist/components/panel/feedback/FeedbackHoverCard.js.map +1 -1
- package/dist/components/panel/feedback/FeedbackListItem.d.ts +17 -0
- package/dist/components/panel/feedback/FeedbackListItem.d.ts.map +1 -0
- package/dist/components/panel/feedback/FeedbackListItem.js +70 -0
- package/dist/components/panel/feedback/FeedbackListItem.js.map +1 -0
- package/dist/components/panel/feedback/FeedbackStatusBadge.d.ts +2 -1
- package/dist/components/panel/feedback/FeedbackStatusBadge.d.ts.map +1 -1
- package/dist/components/panel/feedback/FeedbackStatusBadge.js +2 -2
- package/dist/components/panel/feedback/FeedbackStatusBadge.js.map +1 -1
- package/dist/components/panel/feedback/FeedbackThread.d.ts +9 -3
- package/dist/components/panel/feedback/FeedbackThread.d.ts.map +1 -1
- package/dist/components/panel/feedback/FeedbackThread.js +155 -39
- package/dist/components/panel/feedback/FeedbackThread.js.map +1 -1
- package/dist/components/panel/feedback/PickTargetSnippet.d.ts +7 -0
- package/dist/components/panel/feedback/PickTargetSnippet.d.ts.map +1 -0
- package/dist/components/panel/feedback/PickTargetSnippet.js +30 -0
- package/dist/components/panel/feedback/PickTargetSnippet.js.map +1 -0
- package/dist/components/panel/feedback/QuestionThreadGroup.d.ts +9 -0
- package/dist/components/panel/feedback/QuestionThreadGroup.d.ts.map +1 -0
- package/dist/components/panel/feedback/QuestionThreadGroup.js +30 -0
- package/dist/components/panel/feedback/QuestionThreadGroup.js.map +1 -0
- package/dist/components/panel/feedback/ReplyHistoryControls.d.ts +8 -0
- package/dist/components/panel/feedback/ReplyHistoryControls.d.ts.map +1 -0
- package/dist/components/panel/feedback/ReplyHistoryControls.js +26 -0
- package/dist/components/panel/feedback/ReplyHistoryControls.js.map +1 -0
- package/dist/components/panel/feedback/ThreadAuthorMeta.d.ts +10 -0
- package/dist/components/panel/feedback/ThreadAuthorMeta.d.ts.map +1 -0
- package/dist/components/panel/feedback/ThreadAuthorMeta.js +9 -0
- package/dist/components/panel/feedback/ThreadAuthorMeta.js.map +1 -0
- package/dist/components/panel/feedback/ThreadChildReply.d.ts +8 -0
- package/dist/components/panel/feedback/ThreadChildReply.d.ts.map +1 -0
- package/dist/components/panel/feedback/ThreadChildReply.js +7 -0
- package/dist/components/panel/feedback/ThreadChildReply.js.map +1 -0
- package/dist/components/panel/feedback/ThreadTimelineRow.d.ts +11 -0
- package/dist/components/panel/feedback/ThreadTimelineRow.d.ts.map +1 -0
- package/dist/components/panel/feedback/ThreadTimelineRow.js +7 -0
- package/dist/components/panel/feedback/ThreadTimelineRow.js.map +1 -0
- package/dist/components/point/MarkerCaseSidebar.d.ts +9 -0
- package/dist/components/point/MarkerCaseSidebar.d.ts.map +1 -0
- package/dist/components/point/MarkerCaseSidebar.js +27 -0
- package/dist/components/point/MarkerCaseSidebar.js.map +1 -0
- package/dist/components/point/MarkerFeedbackWindow.d.ts +9 -0
- package/dist/components/point/MarkerFeedbackWindow.d.ts.map +1 -0
- package/dist/components/point/MarkerFeedbackWindow.js +257 -0
- package/dist/components/point/MarkerFeedbackWindow.js.map +1 -0
- package/dist/components/point/ReportDraftMarker.d.ts.map +1 -1
- package/dist/components/point/ReportDraftMarker.js +8 -17
- package/dist/components/point/ReportDraftMarker.js.map +1 -1
- package/dist/components/point/ReportMarkersLayer.d.ts.map +1 -1
- package/dist/components/point/ReportMarkersLayer.js +41 -95
- package/dist/components/point/ReportMarkersLayer.js.map +1 -1
- package/dist/components/report/FivePixels.d.ts +7 -28
- package/dist/components/report/FivePixels.d.ts.map +1 -1
- package/dist/components/report/FivePixels.js +3 -3
- package/dist/components/report/FivePixels.js.map +1 -1
- package/dist/components/report/ReportView.d.ts.map +1 -1
- package/dist/components/report/ReportView.js +5 -3
- package/dist/components/report/ReportView.js.map +1 -1
- package/dist/components/report/ShadowReportRoot.d.ts +2 -2
- package/dist/components/report/ShadowReportRoot.d.ts.map +1 -1
- package/dist/components/report/ShadowReportRoot.js +4 -7
- package/dist/components/report/ShadowReportRoot.js.map +1 -1
- package/dist/components/report/ThemeScope.d.ts +10 -0
- package/dist/components/report/ThemeScope.d.ts.map +1 -0
- package/dist/components/report/ThemeScope.js +5 -0
- package/dist/components/report/ThemeScope.js.map +1 -0
- package/dist/components/report/index.d.ts +4 -1
- package/dist/components/report/index.d.ts.map +1 -1
- package/dist/components/report/index.js +3 -0
- package/dist/components/report/index.js.map +1 -1
- package/dist/components/ui/CornerResizeGhost.d.ts +8 -0
- package/dist/components/ui/CornerResizeGhost.d.ts.map +1 -0
- package/dist/components/ui/CornerResizeGhost.js +5 -0
- package/dist/components/ui/CornerResizeGhost.js.map +1 -0
- package/dist/components/ui/CornerResizeHandle.d.ts +11 -0
- package/dist/components/ui/CornerResizeHandle.d.ts.map +1 -0
- package/dist/components/ui/CornerResizeHandle.js +32 -0
- package/dist/components/ui/CornerResizeHandle.js.map +1 -0
- package/dist/components/ui/HoverTooltip.d.ts +4 -2
- package/dist/components/ui/HoverTooltip.d.ts.map +1 -1
- package/dist/components/ui/HoverTooltip.js +28 -17
- package/dist/components/ui/HoverTooltip.js.map +1 -1
- package/dist/components/ui/IconTooltipButton.d.ts.map +1 -1
- package/dist/components/ui/IconTooltipButton.js +5 -2
- package/dist/components/ui/IconTooltipButton.js.map +1 -1
- package/dist/components/ui/PointerFollowTooltip.d.ts +14 -0
- package/dist/components/ui/PointerFollowTooltip.d.ts.map +1 -0
- package/dist/components/ui/PointerFollowTooltip.js +58 -0
- package/dist/components/ui/PointerFollowTooltip.js.map +1 -0
- package/dist/components/ui/ProcessingDots.d.ts +6 -0
- package/dist/components/ui/ProcessingDots.d.ts.map +1 -0
- package/dist/components/ui/ProcessingDots.js +19 -0
- package/dist/components/ui/ProcessingDots.js.map +1 -0
- package/dist/components/ui/Text/index.d.ts +6 -0
- package/dist/components/ui/Text/index.d.ts.map +1 -0
- package/dist/components/ui/Text/index.js +5 -0
- package/dist/components/ui/Text/index.js.map +1 -0
- package/dist/components/ui/Text/ui/Shimmer.d.ts +14 -0
- package/dist/components/ui/Text/ui/Shimmer.d.ts.map +1 -0
- package/dist/components/ui/Text/ui/Shimmer.js +41 -0
- package/dist/components/ui/Text/ui/Shimmer.js.map +1 -0
- package/dist/constants/appearance.d.ts +10 -0
- package/dist/constants/appearance.d.ts.map +1 -0
- package/dist/constants/appearance.js +10 -0
- package/dist/constants/appearance.js.map +1 -0
- package/dist/constants/feedbackCategory.d.ts +5 -0
- package/dist/constants/feedbackCategory.d.ts.map +1 -0
- package/dist/constants/feedbackCategory.js +5 -0
- package/dist/constants/feedbackCategory.js.map +1 -0
- package/dist/constants/feedbackStatus.d.ts +1 -1
- package/dist/constants/feedbackStatus.d.ts.map +1 -1
- package/dist/constants/feedbackStatus.js +20 -8
- package/dist/constants/feedbackStatus.js.map +1 -1
- package/dist/constants/feedbackStorageEvents.d.ts +3 -0
- package/dist/constants/feedbackStorageEvents.d.ts.map +1 -0
- package/dist/constants/feedbackStorageEvents.js +8 -0
- package/dist/constants/feedbackStorageEvents.js.map +1 -0
- package/dist/constants/markerAppearance.d.ts +35 -0
- package/dist/constants/markerAppearance.d.ts.map +1 -0
- package/dist/constants/markerAppearance.js +57 -0
- package/dist/constants/markerAppearance.js.map +1 -0
- package/dist/constants/panelRole.d.ts +5 -0
- package/dist/constants/panelRole.d.ts.map +1 -0
- package/dist/constants/panelRole.js +6 -0
- package/dist/constants/panelRole.js.map +1 -0
- package/dist/constants/panelTabPresets.d.ts +14 -0
- package/dist/constants/panelTabPresets.d.ts.map +1 -0
- package/dist/constants/panelTabPresets.js +48 -0
- package/dist/constants/panelTabPresets.js.map +1 -0
- package/dist/constants/panelTabRegistry.d.ts +23 -0
- package/dist/constants/panelTabRegistry.d.ts.map +1 -0
- package/dist/constants/panelTabRegistry.js +95 -0
- package/dist/constants/panelTabRegistry.js.map +1 -0
- package/dist/constants/replyHistory.d.ts +8 -0
- package/dist/constants/replyHistory.d.ts.map +1 -0
- package/dist/constants/replyHistory.js +15 -0
- package/dist/constants/replyHistory.js.map +1 -0
- package/dist/constants/report.d.ts +5 -0
- package/dist/constants/report.d.ts.map +1 -1
- package/dist/constants/report.js +5 -0
- package/dist/constants/report.js.map +1 -1
- package/dist/constants/storageKeys.d.ts +2 -0
- package/dist/constants/storageKeys.d.ts.map +1 -1
- package/dist/constants/storageKeys.js +4 -0
- package/dist/constants/storageKeys.js.map +1 -1
- package/dist/hooks/replyHistoryActions.d.ts +30 -0
- package/dist/hooks/replyHistoryActions.d.ts.map +1 -0
- package/dist/hooks/replyHistoryActions.js +278 -0
- package/dist/hooks/replyHistoryActions.js.map +1 -0
- package/dist/hooks/report.api.d.ts +3 -1
- package/dist/hooks/report.api.d.ts.map +1 -1
- package/dist/hooks/report.api.js +27 -4
- package/dist/hooks/report.api.js.map +1 -1
- package/dist/hooks/report.query.d.ts +1 -1
- package/dist/hooks/report.query.d.ts.map +1 -1
- package/dist/hooks/report.query.js +3 -2
- package/dist/hooks/report.query.js.map +1 -1
- package/dist/hooks/useActivitySummary.d.ts +13 -0
- package/dist/hooks/useActivitySummary.d.ts.map +1 -0
- package/dist/hooks/useActivitySummary.js +41 -0
- package/dist/hooks/useActivitySummary.js.map +1 -0
- package/dist/hooks/useAppearancePreference.d.ts +1 -1
- package/dist/hooks/useAppearancePreference.d.ts.map +1 -1
- package/dist/hooks/useAppearancePreference.js +14 -11
- package/dist/hooks/useAppearancePreference.js.map +1 -1
- package/dist/hooks/useDraggableWindow.d.ts +17 -0
- package/dist/hooks/useDraggableWindow.d.ts.map +1 -0
- package/dist/hooks/useDraggableWindow.js +104 -0
- package/dist/hooks/useDraggableWindow.js.map +1 -0
- package/dist/hooks/useGhostCornerResize.d.ts +36 -0
- package/dist/hooks/useGhostCornerResize.d.ts.map +1 -0
- package/dist/hooks/useGhostCornerResize.js +161 -0
- package/dist/hooks/useGhostCornerResize.js.map +1 -0
- package/dist/hooks/useMarkerAppearancePreference.d.ts +10 -0
- package/dist/hooks/useMarkerAppearancePreference.d.ts.map +1 -0
- package/dist/hooks/useMarkerAppearancePreference.js +94 -0
- package/dist/hooks/useMarkerAppearancePreference.js.map +1 -0
- package/dist/hooks/useMarkerTargetPreviewPreference.d.ts +6 -0
- package/dist/hooks/useMarkerTargetPreviewPreference.d.ts.map +1 -0
- package/dist/hooks/useMarkerTargetPreviewPreference.js +41 -0
- package/dist/hooks/useMarkerTargetPreviewPreference.js.map +1 -0
- package/dist/hooks/usePanelBootstrap.d.ts +16 -0
- package/dist/hooks/usePanelBootstrap.d.ts.map +1 -0
- package/dist/hooks/usePanelBootstrap.js +46 -0
- package/dist/hooks/usePanelBootstrap.js.map +1 -0
- package/dist/hooks/usePanelDock.d.ts.map +1 -1
- package/dist/hooks/usePanelDock.js +40 -31
- package/dist/hooks/usePanelDock.js.map +1 -1
- package/dist/hooks/usePanelFeedbackTransfer.d.ts +3 -3
- package/dist/hooks/usePanelFeedbackTransfer.d.ts.map +1 -1
- package/dist/hooks/usePanelFeedbackTransfer.js +13 -13
- package/dist/hooks/usePanelFeedbackTransfer.js.map +1 -1
- package/dist/hooks/usePanelResize.d.ts +44 -0
- package/dist/hooks/usePanelResize.d.ts.map +1 -0
- package/dist/hooks/usePanelResize.js +234 -0
- package/dist/hooks/usePanelResize.js.map +1 -0
- package/dist/hooks/usePanelRolePreference.d.ts +6 -0
- package/dist/hooks/usePanelRolePreference.d.ts.map +1 -0
- package/dist/hooks/usePanelRolePreference.js +38 -0
- package/dist/hooks/usePanelRolePreference.js.map +1 -0
- package/dist/hooks/usePanelTabPreference.d.ts +13 -0
- package/dist/hooks/usePanelTabPreference.d.ts.map +1 -0
- package/dist/hooks/usePanelTabPreference.js +66 -0
- package/dist/hooks/usePanelTabPreference.js.map +1 -0
- package/dist/hooks/usePersonalKey.d.ts +18 -2
- package/dist/hooks/usePersonalKey.d.ts.map +1 -1
- package/dist/hooks/usePersonalKey.js +43 -16
- package/dist/hooks/usePersonalKey.js.map +1 -1
- package/dist/hooks/useQuestionThreadPreference.d.ts +6 -0
- package/dist/hooks/useQuestionThreadPreference.d.ts.map +1 -0
- package/dist/hooks/useQuestionThreadPreference.js +40 -0
- package/dist/hooks/useQuestionThreadPreference.js.map +1 -0
- package/dist/hooks/useReportPersistence.d.ts +26 -16
- package/dist/hooks/useReportPersistence.d.ts.map +1 -1
- package/dist/hooks/useReportPersistence.js +158 -58
- package/dist/hooks/useReportPersistence.js.map +1 -1
- package/dist/hooks/useReportShortcuts.d.ts +1 -1
- package/dist/hooks/useReportShortcuts.d.ts.map +1 -1
- package/dist/hooks/useReportShortcuts.js +8 -1
- package/dist/hooks/useReportShortcuts.js.map +1 -1
- package/dist/hooks/useReportState.d.ts +184 -31
- package/dist/hooks/useReportState.d.ts.map +1 -1
- package/dist/hooks/useReportState.js +1553 -161
- package/dist/hooks/useReportState.js.map +1 -1
- package/dist/hooks/useSelfProfile.d.ts +12 -0
- package/dist/hooks/useSelfProfile.d.ts.map +1 -0
- package/dist/hooks/useSelfProfile.js +65 -0
- package/dist/hooks/useSelfProfile.js.map +1 -0
- package/dist/hooks/useTooltipLayout.d.ts +5 -1
- package/dist/hooks/useTooltipLayout.d.ts.map +1 -1
- package/dist/hooks/useTooltipLayout.js +9 -4
- package/dist/hooks/useTooltipLayout.js.map +1 -1
- package/dist/hooks/useTooltipResize.d.ts +16 -0
- package/dist/hooks/useTooltipResize.d.ts.map +1 -0
- package/dist/hooks/useTooltipResize.js +27 -0
- package/dist/hooks/useTooltipResize.js.map +1 -0
- package/dist/hooks/useTypographyPreference.d.ts +8 -0
- package/dist/hooks/useTypographyPreference.d.ts.map +1 -0
- package/dist/hooks/useTypographyPreference.js +59 -0
- package/dist/hooks/useTypographyPreference.js.map +1 -0
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +403 -14
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +404 -15
- package/dist/i18n/ko.js.map +1 -1
- package/dist/i18n/types.d.ts +383 -10
- package/dist/i18n/types.d.ts.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/ReportProvider.d.ts +7 -28
- package/dist/providers/ReportProvider.d.ts.map +1 -1
- package/dist/providers/ReportProvider.js +16 -8
- package/dist/providers/ReportProvider.js.map +1 -1
- package/dist/providers/reportContext.d.ts +324 -54
- package/dist/providers/reportContext.d.ts.map +1 -1
- package/dist/storage/local/localStorageAdapter.d.ts.map +1 -1
- package/dist/storage/local/localStorageAdapter.js +78 -9
- package/dist/storage/local/localStorageAdapter.js.map +1 -1
- package/dist/styles/reportStylesheet.d.ts +1 -1
- package/dist/styles/reportStylesheet.d.ts.map +1 -1
- package/dist/styles/reportStylesheet.js +1 -1
- package/dist/styles/reportStylesheet.js.map +1 -1
- package/dist/types/report-ui.d.ts +87 -5
- package/dist/types/report-ui.d.ts.map +1 -1
- package/dist/types/report.d.ts +147 -20
- package/dist/types/report.d.ts.map +1 -1
- package/dist/types/report.js.map +1 -1
- package/dist/utils/coordinates.d.ts +16 -1
- package/dist/utils/coordinates.d.ts.map +1 -1
- package/dist/utils/coordinates.js +66 -37
- package/dist/utils/coordinates.js.map +1 -1
- package/dist/utils/cssStepper.d.ts +6 -0
- package/dist/utils/cssStepper.d.ts.map +1 -0
- package/dist/utils/cssStepper.js +40 -0
- package/dist/utils/cssStepper.js.map +1 -0
- package/dist/utils/dom.d.ts +6 -0
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/dom.js +139 -4
- package/dist/utils/dom.js.map +1 -1
- package/dist/utils/experimentalPanelTabs.d.ts +29 -0
- package/dist/utils/experimentalPanelTabs.d.ts.map +1 -0
- package/dist/utils/experimentalPanelTabs.js +113 -0
- package/dist/utils/experimentalPanelTabs.js.map +1 -0
- package/dist/utils/feedbackCaseId.d.ts +7 -0
- package/dist/utils/feedbackCaseId.d.ts.map +1 -0
- package/dist/utils/feedbackCaseId.js +44 -0
- package/dist/utils/feedbackCaseId.js.map +1 -0
- package/dist/utils/feedbackDataTransfer.d.ts +4 -0
- package/dist/utils/feedbackDataTransfer.d.ts.map +1 -1
- package/dist/utils/feedbackDataTransfer.js +70 -0
- package/dist/utils/feedbackDataTransfer.js.map +1 -1
- package/dist/utils/feedbackDeepLink.d.ts +11 -0
- package/dist/utils/feedbackDeepLink.d.ts.map +1 -0
- package/dist/utils/feedbackDeepLink.js +35 -0
- package/dist/utils/feedbackDeepLink.js.map +1 -0
- package/dist/utils/feedbackListStatus.d.ts +4 -0
- package/dist/utils/feedbackListStatus.d.ts.map +1 -0
- package/dist/utils/feedbackListStatus.js +19 -0
- package/dist/utils/feedbackListStatus.js.map +1 -0
- package/dist/utils/feedbackThread.d.ts +61 -2
- package/dist/utils/feedbackThread.d.ts.map +1 -1
- package/dist/utils/feedbackThread.js +325 -10
- package/dist/utils/feedbackThread.js.map +1 -1
- package/dist/utils/fields.d.ts +3 -2
- package/dist/utils/fields.d.ts.map +1 -1
- package/dist/utils/fields.js +9 -4
- package/dist/utils/fields.js.map +1 -1
- package/dist/utils/format.d.ts +1 -0
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +6 -0
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/githubIntegration.d.ts +1 -0
- package/dist/utils/githubIntegration.d.ts.map +1 -1
- package/dist/utils/githubIntegration.js +8 -2
- package/dist/utils/githubIntegration.js.map +1 -1
- package/dist/utils/heatmapActivity.d.ts +68 -0
- package/dist/utils/heatmapActivity.d.ts.map +1 -0
- package/dist/utils/heatmapActivity.js +280 -0
- package/dist/utils/heatmapActivity.js.map +1 -0
- package/dist/utils/hexColor.d.ts +7 -0
- package/dist/utils/hexColor.d.ts.map +1 -0
- package/dist/utils/hexColor.js +25 -0
- package/dist/utils/hexColor.js.map +1 -0
- package/dist/utils/hourlyCompareSparkline.d.ts +19 -0
- package/dist/utils/hourlyCompareSparkline.d.ts.map +1 -0
- package/dist/utils/hourlyCompareSparkline.js +65 -0
- package/dist/utils/hourlyCompareSparkline.js.map +1 -0
- package/dist/utils/locateFeedback.d.ts +3 -3
- package/dist/utils/locateFeedback.d.ts.map +1 -1
- package/dist/utils/locateFeedback.js +11 -3
- package/dist/utils/locateFeedback.js.map +1 -1
- package/dist/utils/markerContext.d.ts +3 -3
- package/dist/utils/markerContext.d.ts.map +1 -1
- package/dist/utils/markerContext.js +6 -5
- package/dist/utils/markerContext.js.map +1 -1
- package/dist/utils/markerRuntime.d.ts +5 -0
- package/dist/utils/markerRuntime.d.ts.map +1 -0
- package/dist/utils/markerRuntime.js +13 -0
- package/dist/utils/markerRuntime.js.map +1 -0
- package/dist/utils/markerShape.d.ts +13 -0
- package/dist/utils/markerShape.d.ts.map +1 -0
- package/dist/utils/markerShape.js +52 -0
- package/dist/utils/markerShape.js.map +1 -0
- package/dist/utils/markerTarget.d.ts +3 -0
- package/dist/utils/markerTarget.d.ts.map +1 -0
- package/dist/utils/markerTarget.js +16 -0
- package/dist/utils/markerTarget.js.map +1 -0
- package/dist/utils/panelBootstrap.d.ts +27 -0
- package/dist/utils/panelBootstrap.d.ts.map +1 -0
- package/dist/utils/panelBootstrap.js +95 -0
- package/dist/utils/panelBootstrap.js.map +1 -0
- package/dist/utils/panelRoleStats.d.ts +18 -0
- package/dist/utils/panelRoleStats.d.ts.map +1 -0
- package/dist/utils/panelRoleStats.js +77 -0
- package/dist/utils/panelRoleStats.js.map +1 -0
- package/dist/utils/panelTabPreference.d.ts +19 -0
- package/dist/utils/panelTabPreference.d.ts.map +1 -0
- package/dist/utils/panelTabPreference.js +76 -0
- package/dist/utils/panelTabPreference.js.map +1 -0
- package/dist/utils/pathname.d.ts +2 -0
- package/dist/utils/pathname.d.ts.map +1 -1
- package/dist/utils/pathname.js +10 -0
- package/dist/utils/pathname.js.map +1 -1
- package/dist/utils/personalKey.d.ts +7 -1
- package/dist/utils/personalKey.d.ts.map +1 -1
- package/dist/utils/personalKey.js +50 -2
- package/dist/utils/personalKey.js.map +1 -1
- package/dist/utils/pickProbe.d.ts +21 -0
- package/dist/utils/pickProbe.d.ts.map +1 -0
- package/dist/utils/pickProbe.js +285 -0
- package/dist/utils/pickProbe.js.map +1 -0
- package/dist/utils/pickProbeLayout.d.ts +16 -0
- package/dist/utils/pickProbeLayout.d.ts.map +1 -0
- package/dist/utils/pickProbeLayout.js +52 -0
- package/dist/utils/pickProbeLayout.js.map +1 -0
- package/dist/utils/pickProbeSession.d.ts +14 -0
- package/dist/utils/pickProbeSession.d.ts.map +1 -0
- package/dist/utils/pickProbeSession.js +134 -0
- package/dist/utils/pickProbeSession.js.map +1 -0
- package/dist/utils/pickTargetDeleteAnimation.d.ts +3 -0
- package/dist/utils/pickTargetDeleteAnimation.d.ts.map +1 -0
- package/dist/utils/pickTargetDeleteAnimation.js +29 -0
- package/dist/utils/pickTargetDeleteAnimation.js.map +1 -0
- package/dist/utils/pickTargetInspect.d.ts +12 -0
- package/dist/utils/pickTargetInspect.d.ts.map +1 -0
- package/dist/utils/pickTargetInspect.js +75 -0
- package/dist/utils/pickTargetInspect.js.map +1 -0
- package/dist/utils/probeColor.d.ts +6 -0
- package/dist/utils/probeColor.d.ts.map +1 -0
- package/dist/utils/probeColor.js +49 -0
- package/dist/utils/probeColor.js.map +1 -0
- package/dist/utils/probeLayout.d.ts +27 -0
- package/dist/utils/probeLayout.d.ts.map +1 -0
- package/dist/utils/probeLayout.js +86 -0
- package/dist/utils/probeLayout.js.map +1 -0
- package/dist/utils/probeSessionHistory.d.ts +8 -0
- package/dist/utils/probeSessionHistory.d.ts.map +1 -0
- package/dist/utils/probeSessionHistory.js +102 -0
- package/dist/utils/probeSessionHistory.js.map +1 -0
- package/dist/utils/replyHistory.d.ts +20 -0
- package/dist/utils/replyHistory.d.ts.map +1 -0
- package/dist/utils/replyHistory.js +82 -0
- package/dist/utils/replyHistory.js.map +1 -0
- package/dist/utils/reportCases.d.ts +54 -0
- package/dist/utils/reportCases.d.ts.map +1 -0
- package/dist/utils/reportCases.js +297 -0
- package/dist/utils/reportCases.js.map +1 -0
- package/dist/utils/reportPosition.d.ts +9 -0
- package/dist/utils/reportPosition.d.ts.map +1 -0
- package/dist/utils/reportPosition.js +18 -0
- package/dist/utils/reportPosition.js.map +1 -0
- package/dist/utils/reportProject.d.ts +1 -7
- package/dist/utils/reportProject.d.ts.map +1 -1
- package/dist/utils/reportProject.js +4 -4
- package/dist/utils/reportProject.js.map +1 -1
- package/dist/utils/reportSummary.d.ts +7 -0
- package/dist/utils/reportSummary.d.ts.map +1 -0
- package/dist/utils/reportSummary.js +49 -0
- package/dist/utils/reportSummary.js.map +1 -0
- package/dist/utils/reportTeam.d.ts +20 -5
- package/dist/utils/reportTeam.d.ts.map +1 -1
- package/dist/utils/reportTeam.js +60 -3
- package/dist/utils/reportTeam.js.map +1 -1
- package/dist/utils/reportUi.d.ts +10 -11
- package/dist/utils/reportUi.d.ts.map +1 -1
- package/dist/utils/reportUi.js +21 -6
- package/dist/utils/reportUi.js.map +1 -1
- package/dist/utils/reportVisibility.d.ts +1 -9
- package/dist/utils/reportVisibility.d.ts.map +1 -1
- package/dist/utils/reportVisibility.js +4 -4
- package/dist/utils/reportVisibility.js.map +1 -1
- package/dist/utils/reportVisual.d.ts +3 -1
- package/dist/utils/reportVisual.d.ts.map +1 -1
- package/dist/utils/reportVisual.js +17 -6
- package/dist/utils/reportVisual.js.map +1 -1
- package/dist/utils/routeDetailStatus.d.ts.map +1 -1
- package/dist/utils/routeDetailStatus.js +4 -1
- package/dist/utils/routeDetailStatus.js.map +1 -1
- package/dist/utils/storage.d.ts +3 -1
- package/dist/utils/storage.d.ts.map +1 -1
- package/dist/utils/storage.js +6 -2
- package/dist/utils/storage.js.map +1 -1
- package/dist/utils/targetSelector.d.ts +20 -0
- package/dist/utils/targetSelector.d.ts.map +1 -0
- package/dist/utils/targetSelector.js +123 -0
- package/dist/utils/targetSelector.js.map +1 -0
- package/dist/utils/validateFeedbackImport.d.ts +2 -1
- package/dist/utils/validateFeedbackImport.d.ts.map +1 -1
- package/dist/utils/validateFeedbackImport.js +114 -45
- package/dist/utils/validateFeedbackImport.js.map +1 -1
- package/package.json +78 -78
- package/dist/components/motion/index.d.ts +0 -48
- package/dist/components/motion/index.d.ts.map +0 -1
- package/dist/components/motion/index.js +0 -910
- package/dist/components/motion/index.js.map +0 -1
- package/dist/components/panel/PanelMoreMenu.d.ts +0 -20
- package/dist/components/panel/PanelMoreMenu.d.ts.map +0 -1
- package/dist/components/panel/PanelMoreMenu.js +0 -20
- package/dist/components/panel/PanelMoreMenu.js.map +0 -1
- package/dist/components/panel/feedback/FeedbackIssueHeader.d.ts +0 -12
- package/dist/components/panel/feedback/FeedbackIssueHeader.d.ts.map +0 -1
- package/dist/components/panel/feedback/FeedbackIssueHeader.js +0 -10
- package/dist/components/panel/feedback/FeedbackIssueHeader.js.map +0 -1
- package/dist/components/panel/feedback/FieldTagSelector.d.ts +0 -9
- package/dist/components/panel/feedback/FieldTagSelector.d.ts.map +0 -1
- package/dist/components/panel/feedback/FieldTagSelector.js +0 -15
- package/dist/components/panel/feedback/FieldTagSelector.js.map +0 -1
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState, Fragment } from "react";
|
|
3
|
+
import { getMarkerDotSize } from "../../utils/markerRuntime.js";
|
|
4
|
+
import { useDraggableWindow, clampWindowPosition } from "../../hooks/useDraggableWindow.js";
|
|
5
|
+
import { useGhostCornerResize } from "../../hooks/useGhostCornerResize.js";
|
|
6
|
+
import { useNativeHover } from "../../hooks/useNativeHover.js";
|
|
7
|
+
import { useReport } from "../../providers/reportContext.js";
|
|
8
|
+
import { shouldShowCaseReplyComposer } from "../../utils/feedbackThread.js";
|
|
9
|
+
import { getCaseAssigneeName, getCaseById } from "../../utils/reportCases.js";
|
|
10
|
+
import { getFieldTags } from "../../utils/fields.js";
|
|
11
|
+
import { copyTextToClipboard } from "../../utils/feedbackDataTransfer.js";
|
|
12
|
+
import { buildFeedbackShareUrl } from "../../utils/feedbackDeepLink.js";
|
|
13
|
+
import { CloseIcon, LinkIcon, MaximizeIcon, MinimizeIcon, RestoreIcon, SidePanelIcon } from "../../components/icons/Icons.js";
|
|
14
|
+
import { FeedbackFieldTags } from "../../components/panel/feedback/FeedbackFieldTags.js";
|
|
15
|
+
import { CornerResizeGhost } from "../../components/ui/CornerResizeGhost.js";
|
|
16
|
+
import { CornerResizeHandle } from "../../components/ui/CornerResizeHandle.js";
|
|
17
|
+
import { FeedbackComposer } from "../../components/panel/feedback/FeedbackComposer.js";
|
|
18
|
+
import { CaseAssigneeInfo } from "../../components/panel/feedback/CaseAssigneeInfo.js";
|
|
19
|
+
import { FeedbackThread } from "../../components/panel/feedback/FeedbackThread.js";
|
|
20
|
+
import { MarkerCaseSidebar } from "./MarkerCaseSidebar.js";
|
|
21
|
+
import { ProcessingDots } from "../../components/ui/ProcessingDots.js";
|
|
22
|
+
import { Text } from "../../components/ui/Text/index.js";
|
|
23
|
+
const WINDOW_MARGIN = 16;
|
|
24
|
+
const DEFAULT_WINDOW_SIZE = { width: 600, height: 460 };
|
|
25
|
+
const MIN_WINDOW_WIDTH = 420;
|
|
26
|
+
const MIN_WINDOW_HEIGHT = 280;
|
|
27
|
+
const DEFAULT_SIDEBAR_WIDTH = 208;
|
|
28
|
+
const SIDEBAR_MIN_WIDTH = 150;
|
|
29
|
+
const RIGHT_MIN_WIDTH = 280;
|
|
30
|
+
const COLLAPSED_SIDEBAR_WIDTH = 46;
|
|
31
|
+
const WINDOW_CLOSE_ANIMATION_MS = 220;
|
|
32
|
+
const LEFT_SECTION_TRANSITION = "transition-[background-color,backdrop-filter] duration-200 ease-[cubic-bezier(0.22,1,0.36,1)]";
|
|
33
|
+
const LEFT_SECTION_FLAT_CLASS = `${LEFT_SECTION_TRANSITION} bg-[var(--adaptive-black50)]`;
|
|
34
|
+
const LEFT_SECTION_BLUR_CLASS = `${LEFT_SECTION_TRANSITION} bg-[var(--adaptive-fillOpacity500)] backdrop-blur-[20px] shadow-[inset_0_20px_0_20px_var(--adaptive-black500)]]`;
|
|
35
|
+
function getLeftSectionClass(phase) {
|
|
36
|
+
return phase === "idle" ? LEFT_SECTION_BLUR_CLASS : LEFT_SECTION_FLAT_CLASS;
|
|
37
|
+
}
|
|
38
|
+
const HEADER_BUTTON_CLASS = "flex h-[24px] w-[24px] items-center justify-center rounded-[6px] text-[var(--adaptive-black600)] transition-colors hover:bg-[var(--adaptive-tintOpacity200)] hover:text-[var(--adaptive-black900)]";
|
|
39
|
+
function getViewportSize() {
|
|
40
|
+
if (typeof window === "undefined") {
|
|
41
|
+
return { width: DEFAULT_WINDOW_SIZE.width, height: DEFAULT_WINDOW_SIZE.height };
|
|
42
|
+
}
|
|
43
|
+
return { width: window.innerWidth, height: window.innerHeight };
|
|
44
|
+
}
|
|
45
|
+
function clampMarkerWindowSize(width, height) {
|
|
46
|
+
const viewport = getViewportSize();
|
|
47
|
+
const maxWidth = Math.max(MIN_WINDOW_WIDTH, viewport.width - WINDOW_MARGIN * 2);
|
|
48
|
+
const maxHeight = Math.max(MIN_WINDOW_HEIGHT, viewport.height - WINDOW_MARGIN * 2);
|
|
49
|
+
return {
|
|
50
|
+
width: Math.min(Math.max(width, MIN_WINDOW_WIDTH), maxWidth),
|
|
51
|
+
height: Math.min(Math.max(height, MIN_WINDOW_HEIGHT), maxHeight),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function clampSidebarWidth(width, windowWidth) {
|
|
55
|
+
const maxWidth = Math.max(SIDEBAR_MIN_WIDTH, windowWidth - RIGHT_MIN_WIDTH);
|
|
56
|
+
return Math.min(Math.max(width, SIDEBAR_MIN_WIDTH), maxWidth);
|
|
57
|
+
}
|
|
58
|
+
function WindowControlButton({ onClick, ariaLabel, title, className = "", children }) {
|
|
59
|
+
return (_jsx("button", { type: "button", "data-fivepixels-interactive": "", onPointerDown: (event) => event.stopPropagation(), onClick: onClick, "aria-label": ariaLabel, title: title, className: `${HEADER_BUTTON_CLASS} ${className}`, children: children }));
|
|
60
|
+
}
|
|
61
|
+
function MarkerWindowShareButton({ report, messages }) {
|
|
62
|
+
const [copied, setCopied] = useState(false);
|
|
63
|
+
const handleCopy = () => {
|
|
64
|
+
void copyTextToClipboard(buildFeedbackShareUrl(report))
|
|
65
|
+
.then(() => {
|
|
66
|
+
setCopied(true);
|
|
67
|
+
window.setTimeout(() => setCopied(false), 1500);
|
|
68
|
+
})
|
|
69
|
+
.catch(() => {
|
|
70
|
+
setCopied(false);
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
return (_jsx(WindowControlButton, { onClick: handleCopy, ariaLabel: messages.marker.shareLinkAriaLabel, title: copied ? messages.marker.shareLinkCopiedTitle : messages.marker.shareLinkTitle, children: _jsx(LinkIcon, { className: "h-[15px] w-[15px]" }) }));
|
|
74
|
+
}
|
|
75
|
+
export function MarkerFeedbackWindow({ report, anchor }) {
|
|
76
|
+
const { messages, fields, authors, pendingComposer, replyDraft, replyAuthorName, confirmAuthorName, showConfirmAuthorSelect, errorMessage, setErrorMessage, isUpdating, isSubmittingReply, isClaimingAssignee, focusedCaseId, selectCase, closeReplyComposer, clearHoverLeaveTimeout, scheduleHoverLeave, setHoveredMarkerId, setReplyDraft, setReplyAuthorName, setConfirmAuthorName, toggleConfirmAuthorSelect, handleReplySubmit, startDenyReview, startCheckoutReview, startAskQuestion, handleClaimAssignee, handleTransferAssignee, handleConfirmResolution, } = useReport();
|
|
77
|
+
const windowRef = useRef(null);
|
|
78
|
+
const surfaceRef = useRef(null);
|
|
79
|
+
const closeRequestedRef = useRef(false);
|
|
80
|
+
const closeFinishedRef = useRef(false);
|
|
81
|
+
const [windowMode, setWindowMode] = useState("normal");
|
|
82
|
+
const [windowSurfacePhase, setWindowSurfacePhase] = useState("entering");
|
|
83
|
+
const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false);
|
|
84
|
+
const [size, setSize] = useState(DEFAULT_WINDOW_SIZE);
|
|
85
|
+
const [sidebarWidth, setSidebarWidth] = useState(DEFAULT_SIDEBAR_WIDTH);
|
|
86
|
+
const splitStateRef = useRef(null);
|
|
87
|
+
const splitListenersRef = useRef(null);
|
|
88
|
+
const hoverRef = useNativeHover({
|
|
89
|
+
onEnter: () => {
|
|
90
|
+
clearHoverLeaveTimeout();
|
|
91
|
+
setHoveredMarkerId(report.id);
|
|
92
|
+
},
|
|
93
|
+
onLeave: () => {
|
|
94
|
+
scheduleHoverLeave(report.id);
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
const bindWindowRef = useCallback((node) => {
|
|
98
|
+
windowRef.current = node;
|
|
99
|
+
hoverRef(node);
|
|
100
|
+
}, [hoverRef]);
|
|
101
|
+
const { position, handleDragHandlePointerDown } = useDraggableWindow({
|
|
102
|
+
enabled: windowMode !== "maximized",
|
|
103
|
+
windowRef,
|
|
104
|
+
});
|
|
105
|
+
const { isResizing, ghostRef, handleResizePointerDown } = useGhostCornerResize({
|
|
106
|
+
enabled: windowMode === "normal",
|
|
107
|
+
targetRef: surfaceRef,
|
|
108
|
+
handleCorner: "bottom-right",
|
|
109
|
+
clampSize: clampMarkerWindowSize,
|
|
110
|
+
onResizeComplete: setSize,
|
|
111
|
+
});
|
|
112
|
+
const finishClose = useCallback(() => {
|
|
113
|
+
if (closeFinishedRef.current) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
closeFinishedRef.current = true;
|
|
117
|
+
clearHoverLeaveTimeout();
|
|
118
|
+
setHoveredMarkerId(null);
|
|
119
|
+
closeReplyComposer();
|
|
120
|
+
}, [clearHoverLeaveTimeout, closeReplyComposer, setHoveredMarkerId]);
|
|
121
|
+
const requestClose = useCallback(() => {
|
|
122
|
+
if (closeRequestedRef.current) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
closeRequestedRef.current = true;
|
|
126
|
+
setWindowSurfacePhase("exiting");
|
|
127
|
+
}, []);
|
|
128
|
+
const handleWindowAnimationEnd = useCallback((event) => {
|
|
129
|
+
if (event.currentTarget !== event.target) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (event.animationName.endsWith("fivepixels-marker-window-in")) {
|
|
133
|
+
setWindowSurfacePhase("idle");
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (event.animationName.endsWith("fivepixels-marker-window-out") && closeRequestedRef.current) {
|
|
137
|
+
finishClose();
|
|
138
|
+
}
|
|
139
|
+
}, [finishClose]);
|
|
140
|
+
useEffect(() => {
|
|
141
|
+
if (windowSurfacePhase !== "exiting") {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const fallbackId = window.setTimeout(finishClose, WINDOW_CLOSE_ANIMATION_MS + 60);
|
|
145
|
+
return () => {
|
|
146
|
+
window.clearTimeout(fallbackId);
|
|
147
|
+
};
|
|
148
|
+
}, [finishClose, windowSurfacePhase]);
|
|
149
|
+
useEffect(() => {
|
|
150
|
+
if (!focusedCaseId) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const handlePointerDown = (event) => {
|
|
154
|
+
if (closeRequestedRef.current) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const path = event.composedPath();
|
|
158
|
+
if (windowRef.current && path.includes(windowRef.current)) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const clickedMarker = path.find((node) => node instanceof Element && node.hasAttribute("data-marker-report-id"));
|
|
162
|
+
if (clickedMarker instanceof Element) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
requestClose();
|
|
166
|
+
};
|
|
167
|
+
window.addEventListener("pointerdown", handlePointerDown);
|
|
168
|
+
return () => {
|
|
169
|
+
window.removeEventListener("pointerdown", handlePointerDown);
|
|
170
|
+
};
|
|
171
|
+
}, [focusedCaseId, requestClose]);
|
|
172
|
+
const detachSplitListeners = useCallback(() => {
|
|
173
|
+
const listeners = splitListenersRef.current;
|
|
174
|
+
if (!listeners) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
window.removeEventListener("pointermove", listeners.move, true);
|
|
178
|
+
window.removeEventListener("pointerup", listeners.up, true);
|
|
179
|
+
window.removeEventListener("pointercancel", listeners.up, true);
|
|
180
|
+
splitListenersRef.current = null;
|
|
181
|
+
}, []);
|
|
182
|
+
useEffect(() => () => detachSplitListeners(), [detachSplitListeners]);
|
|
183
|
+
const isCreatorQuestionComposer = pendingComposer?.type === "question";
|
|
184
|
+
const showComposer = useMemo(() => {
|
|
185
|
+
if (!focusedCaseId) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
return shouldShowCaseReplyComposer(report, focusedCaseId, pendingComposer);
|
|
189
|
+
}, [focusedCaseId, pendingComposer, report]);
|
|
190
|
+
const focusedCase = focusedCaseId ? getCaseById(report, focusedCaseId) : undefined;
|
|
191
|
+
const focusedCaseAssigneeName = focusedCaseId ? getCaseAssigneeName(report, focusedCaseId) : null;
|
|
192
|
+
const showAssigneeAssigned = Boolean(focusedCaseAssigneeName) || isClaimingAssignee;
|
|
193
|
+
const fieldTags = useMemo(() => getFieldTags(fields, report.field_values), [fields, report.field_values]);
|
|
194
|
+
const viewport = getViewportSize();
|
|
195
|
+
const maximizedSize = {
|
|
196
|
+
width: Math.max(MIN_WINDOW_WIDTH, viewport.width - WINDOW_MARGIN * 2),
|
|
197
|
+
height: Math.max(MIN_WINDOW_HEIGHT, viewport.height - WINDOW_MARGIN * 2),
|
|
198
|
+
};
|
|
199
|
+
const isMinimized = windowMode === "minimized";
|
|
200
|
+
const isMaximized = windowMode === "maximized";
|
|
201
|
+
const effectiveSize = isMaximized ? maximizedSize : size;
|
|
202
|
+
const resolvedSidebarWidth = clampSidebarWidth(sidebarWidth, effectiveSize.width);
|
|
203
|
+
const initialPosition = useMemo(() => clampWindowPosition(anchor.left + getMarkerDotSize() / 2 - size.width / 2, anchor.top + getMarkerDotSize() / 2 - size.height / 2, size.width, size.height), [anchor.left, anchor.top, size.height, size.width]);
|
|
204
|
+
const resolvedPosition = isMaximized ? { left: WINDOW_MARGIN, top: WINDOW_MARGIN } : (position ?? initialPosition);
|
|
205
|
+
const leftSectionClass = getLeftSectionClass(windowSurfacePhase);
|
|
206
|
+
const windowAnimationClass = windowSurfacePhase === "exiting" ? "fivepixels-marker-window-exit" : windowSurfacePhase === "entering" ? "fivepixels-marker-window-enter pointer-events-auto" : "pointer-events-auto";
|
|
207
|
+
const handleSplitPointerDown = useCallback((event) => {
|
|
208
|
+
if (event.button !== 0) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
event.preventDefault();
|
|
212
|
+
event.stopPropagation();
|
|
213
|
+
detachSplitListeners();
|
|
214
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
215
|
+
splitStateRef.current = { startX: event.clientX, startWidth: resolvedSidebarWidth, windowWidth: effectiveSize.width };
|
|
216
|
+
const handlePointerMove = (moveEvent) => {
|
|
217
|
+
const state = splitStateRef.current;
|
|
218
|
+
if (!state) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
setSidebarWidth(clampSidebarWidth(state.startWidth + (moveEvent.clientX - state.startX), state.windowWidth));
|
|
222
|
+
};
|
|
223
|
+
const handlePointerUp = () => {
|
|
224
|
+
detachSplitListeners();
|
|
225
|
+
splitStateRef.current = null;
|
|
226
|
+
};
|
|
227
|
+
splitListenersRef.current = { move: handlePointerMove, up: handlePointerUp };
|
|
228
|
+
window.addEventListener("pointermove", handlePointerMove, true);
|
|
229
|
+
window.addEventListener("pointerup", handlePointerUp, true);
|
|
230
|
+
window.addEventListener("pointercancel", handlePointerUp, true);
|
|
231
|
+
}, [detachSplitListeners, effectiveSize.width, resolvedSidebarWidth]);
|
|
232
|
+
const handleToggleMinimize = () => {
|
|
233
|
+
setWindowMode((current) => (current === "minimized" ? "normal" : "minimized"));
|
|
234
|
+
};
|
|
235
|
+
const handleToggleMaximize = () => {
|
|
236
|
+
setWindowMode((current) => (current === "maximized" ? "normal" : "maximized"));
|
|
237
|
+
};
|
|
238
|
+
const leftControls = (_jsxs(_Fragment, { children: [_jsx(WindowControlButton, { onClick: requestClose, ariaLabel: messages.marker.windowCloseAriaLabel, children: _jsx(CloseIcon, { className: "h-[15px] w-[15px]" }) }), _jsx(WindowControlButton, { onClick: handleToggleMinimize, ariaLabel: isMinimized ? messages.marker.windowRestoreAriaLabel : messages.marker.windowMinimizeAriaLabel, children: _jsx(MinimizeIcon, { className: "h-[15px] w-[15px]" }) }), _jsx(WindowControlButton, { onClick: handleToggleMaximize, ariaLabel: isMaximized ? messages.marker.windowRestoreAriaLabel : messages.marker.windowMaximizeAriaLabel, children: isMaximized ? _jsx(RestoreIcon, { className: "h-[15px] w-[15px]" }) : _jsx(MaximizeIcon, { className: "h-[15px] w-[15px]" }) })] }));
|
|
239
|
+
const sidebarToggleButton = (_jsx(WindowControlButton, { onClick: () => setIsSidebarCollapsed((current) => !current), ariaLabel: isSidebarCollapsed ? messages.marker.sidebarExpandAriaLabel : messages.marker.sidebarCollapseAriaLabel, className: isSidebarCollapsed ? "" : "text-[var(--adaptive-blue500)]", children: _jsx(SidePanelIcon, { className: "h-[16px] w-[16px]" }) }));
|
|
240
|
+
const shareButton = (_jsx(MarkerWindowShareButton, { report: report, messages: messages }));
|
|
241
|
+
const rightSection = (_jsxs("div", { className: "flex min-w-0 flex-1 flex-col bg-[var(--adaptive-black50)]", children: [_jsx("div", { className: "shrink-0 border-b border-[var(--adaptive-border-subtle)] px-[16px] py-[8px]", children: focusedCase ? (_jsxs(Fragment, { children: [_jsx("p", { className: `truncate text-[15px] font-semibold leading-[1.4] text-[var(--adaptive-black900)] ${focusedCase.status === "resolved" ? "text-[var(--adaptive-black500)] line-through" : ""}`, title: focusedCase.text, children: focusedCase.text }), _jsxs("div", { className: "mt-[2px] flex min-w-0 items-center justify-between gap-[8px]", children: [_jsx("div", { className: "flex min-w-0 flex-1 items-center gap-[6px]", children: showAssigneeAssigned ? (_jsxs(_Fragment, { children: [_jsx(ProcessingDots, {}), _jsx(Text.Shimmer, { className: "min-w-0 truncate text-[12px] leading-[1.4]", color: {
|
|
242
|
+
start: "var(--adaptive-black900)",
|
|
243
|
+
end: "var(--adaptive-blue400)",
|
|
244
|
+
}, duration: 5, children: messages.marker.assigneeAssigned })] })) : (_jsx("p", { className: "min-w-0 truncate text-[12px] leading-[1.4] text-[var(--adaptive-black500)]", children: messages.marker.assigneeUnassigned })) }), _jsxs("div", { className: "flex min-w-0 shrink-0 items-center gap-[8px]", children: [_jsx(FeedbackFieldTags, { tags: fieldTags }), showAssigneeAssigned && focusedCase ? (_jsx(CaseAssigneeInfo, { caseItem: focusedCase, authors: authors })) : null] })] })] })) : (_jsx("p", { className: "text-[13px] text-[var(--adaptive-black500)]", children: messages.cases.selectToView })) }), _jsxs("div", { className: "flex min-h-0 flex-1 flex-col relative", children: [_jsx(FeedbackThread, { report: report, authors: authors, pendingComposer: pendingComposer, confirmAuthorName: confirmAuthorName, showConfirmAuthorSelect: showConfirmAuthorSelect, onConfirmAuthorNameChange: setConfirmAuthorName, onToggleConfirmAuthorSelect: toggleConfirmAuthorSelect, onStartDeny: startDenyReview, onStartCheckout: startCheckoutReview, onStartAskQuestion: startAskQuestion, onClaimAssignee: () => void handleClaimAssignee(), onTransferAssignee: () => void handleTransferAssignee(), onConfirm: () => void handleConfirmResolution(), isUpdating: isUpdating, isClaimingAssignee: isClaimingAssignee, hideCaseSelector: true }), showComposer ? (_jsx("section", { className: "relative shrink-0 overflow-visible p-[4px] absolute bottom-0 left-0 w-full", children: _jsx(FeedbackComposer, { message: replyDraft, onMessageChange: (value) => {
|
|
245
|
+
setReplyDraft(value);
|
|
246
|
+
if (errorMessage) {
|
|
247
|
+
setErrorMessage("");
|
|
248
|
+
}
|
|
249
|
+
}, authorName: replyAuthorName, onAuthorNameChange: setReplyAuthorName, authors: authors, fields: fields, fieldValues: report.field_values, onFieldChange: () => undefined, showTags: false, hideAuthorSelector: true, onSubmit: () => void handleReplySubmit(), isSubmitting: isSubmittingReply || isUpdating, autoFocus: pendingComposer !== null, askQuestionForced: isCreatorQuestionComposer, errorMessage: errorMessage }) })) : null] })] }));
|
|
250
|
+
return (_jsxs(_Fragment, { children: [isResizing ? _jsx(CornerResizeGhost, { ghostRef: ghostRef }) : null, _jsx("div", { ref: bindWindowRef, "data-fivepixels-interactive": "", onClick: (event) => event.stopPropagation(), onAnimationEnd: handleWindowAnimationEnd, className: `fixed z-[1000001] ${windowAnimationClass}`, style: {
|
|
251
|
+
left: resolvedPosition.left,
|
|
252
|
+
top: resolvedPosition.top,
|
|
253
|
+
width: effectiveSize.width,
|
|
254
|
+
...(isMinimized ? null : { height: effectiveSize.height }),
|
|
255
|
+
}, children: isMinimized ? (_jsxs("div", { ref: surfaceRef, className: `flex items-center justify-between gap-[8px] overflow-hidden rounded-[16px] border border-[var(--adaptive-border-subtle)] px-[10px] py-[8px] shadow-[var(--adaptive-popup-shadow)] ${leftSectionClass}`, children: [_jsx("div", { onPointerDown: handleDragHandlePointerDown, className: "flex flex-1 cursor-move touch-none select-none items-center gap-[2px]", children: leftControls }), shareButton, sidebarToggleButton] })) : (_jsxs("div", { ref: surfaceRef, className: "flex h-full w-full flex-row overflow-hidden rounded-[16px] shadow-[var(--adaptive-popup-shadow)] border border-[var(--adaptive-border-subtle)]", children: [isSidebarCollapsed ? (_jsxs("div", { onPointerDown: handleDragHandlePointerDown, className: `flex shrink-0 cursor-move touch-none select-none flex-col items-center gap-[2px] py-[8px] ${leftSectionClass}`, style: { width: COLLAPSED_SIDEBAR_WIDTH }, children: [leftControls, shareButton, sidebarToggleButton] })) : (_jsxs("div", { className: `flex shrink-0 flex-col overflow-hidden ${leftSectionClass}`, style: { width: resolvedSidebarWidth }, children: [_jsxs("header", { onPointerDown: handleDragHandlePointerDown, className: "flex shrink-0 cursor-move touch-none select-none items-center justify-between gap-[8px] px-[10px] py-[8px]", children: [_jsx("div", { className: "flex items-center gap-[2px]", children: leftControls }), _jsxs("div", { className: "flex items-center gap-[2px]", children: [shareButton, sidebarToggleButton] })] }), _jsx(MarkerCaseSidebar, { report: report, focusedCaseId: focusedCaseId, onSelectCase: selectCase })] })), isSidebarCollapsed ? null : (_jsx("div", { role: "separator", "aria-orientation": "vertical", onPointerDown: handleSplitPointerDown, className: "group relative w-[1px] shrink-0 cursor-col-resize touch-none self-stretch bg-[var(--adaptive-black50)] group-hover:bg-[var(--adaptive-blue500)] transition-colors" })), rightSection, windowMode === "normal" ? (_jsx(CornerResizeHandle, { corner: "bottom-right", ariaLabel: messages.marker.resizeAriaLabel, onPointerDown: handleResizePointerDown })) : null] })) })] }));
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=MarkerFeedbackWindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkerFeedbackWindow.js","sourceRoot":"","sources":["../../../src/components/point/MarkerFeedbackWindow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportDraftMarker.d.ts","sourceRoot":"","sources":["../../../src/components/point/ReportDraftMarker.tsx"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ReportDraftMarker.d.ts","sourceRoot":"","sources":["../../../src/components/point/ReportDraftMarker.tsx"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,mDAyBhC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FEEDBACK_HIGHLIGHT } from "../../constants/report.js";
|
|
3
3
|
import { useReport } from "../../providers/reportContext.js";
|
|
4
4
|
import { getDraftMarkerPosition } from "../../utils/coordinates.js";
|
|
5
5
|
const DRAFT_MARKER_CLASS = "pointer-events-none fixed z-[1000000000] flex h-4 w-4 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full border-2 border-white shadow-lg";
|
|
@@ -9,23 +9,14 @@ export function ReportDraftMarker() {
|
|
|
9
9
|
return null;
|
|
10
10
|
}
|
|
11
11
|
const { left, top, clampedEdge } = getDraftMarkerPosition(draft, selectedTarget);
|
|
12
|
-
const markerColor =
|
|
12
|
+
const markerColor = FEEDBACK_HIGHLIGHT.outline;
|
|
13
13
|
if (clampedEdge !== null) {
|
|
14
14
|
return null;
|
|
15
15
|
}
|
|
16
|
-
return (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
width: selectedTarget.rect.width,
|
|
22
|
-
height: selectedTarget.rect.height,
|
|
23
|
-
// outline: `1px solid ${markerColor}`,
|
|
24
|
-
// backgroundColor: TARGET_SURFACE[draft.reportType],
|
|
25
|
-
} })) : null, _jsx("div", { "aria-hidden": true, className: DRAFT_MARKER_CLASS, style: {
|
|
26
|
-
left,
|
|
27
|
-
top,
|
|
28
|
-
backgroundColor: markerColor,
|
|
29
|
-
} })] }));
|
|
16
|
+
return (_jsx("div", { "aria-hidden": true, className: DRAFT_MARKER_CLASS, style: {
|
|
17
|
+
left,
|
|
18
|
+
top,
|
|
19
|
+
backgroundColor: markerColor,
|
|
20
|
+
} }));
|
|
30
21
|
}
|
|
31
22
|
//# sourceMappingURL=ReportDraftMarker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportDraftMarker.js","sourceRoot":"","sources":["../../../src/components/point/ReportDraftMarker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ReportDraftMarker.js","sourceRoot":"","sources":["../../../src/components/point/ReportDraftMarker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,kBAAkB,GAAG,kKAAkK,CAAC;AAE9L,MAAM,UAAU,iBAAiB;IAC7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,SAAS,EAAE,CAAC;IAEpD,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAE/C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,mCAEI,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE;YACH,IAAI;YACJ,GAAG;YACH,eAAe,EAAE,WAAW;SAC/B,GACH,CACL,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportMarkersLayer.d.ts","sourceRoot":"","sources":["../../../src/components/point/ReportMarkersLayer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReportMarkersLayer.d.ts","sourceRoot":"","sources":["../../../src/components/point/ReportMarkersLayer.tsx"],"names":[],"mappings":"AAsLA,wBAAgB,kBAAkB,mDAgKjC"}
|
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback,
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
3
|
import { useNativeHover } from "../../hooks/useNativeHover.js";
|
|
4
4
|
import { useTooltipLayout } from "../../hooks/useTooltipLayout.js";
|
|
5
5
|
import { useReport } from "../../providers/reportContext.js";
|
|
6
6
|
import { resolveMarkerOverflowHints } from "../../utils/coordinates.js";
|
|
7
7
|
import { scrollContainerTowardEdge } from "../../utils/dom.js";
|
|
8
|
-
import { getDetachedMarkerAriaLabel,
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { getDetachedMarkerAriaLabel, getModalGhostFrame } from "../../utils/markerContext.js";
|
|
9
|
+
import { getMarkerDotSize } from "../../utils/markerRuntime.js";
|
|
10
|
+
import { resolveMarkerShapeStyle } from "../../utils/markerShape.js";
|
|
11
|
+
import { getMarkerLabelFontSizePx } from "../../constants/markerAppearance.js";
|
|
12
|
+
import { getMarkerColor, getMarkerDisplayLabel } from "../../utils/reportVisual.js";
|
|
11
13
|
import { FeedbackHoverCard } from "../../components/panel/feedback/FeedbackHoverCard.js";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
const TOOLTIP_SURFACE_CLASS = "overflow-hidden rounded-[12px] border border-[var(--adaptive-
|
|
14
|
+
import { getReplyCount } from "../../utils/feedbackThread.js";
|
|
15
|
+
import { MarkerFeedbackWindow } from "./MarkerFeedbackWindow.js";
|
|
16
|
+
const TOOLTIP_SURFACE_CLASS = "overflow-hidden rounded-[12px] border-[3px] border-[var(--adaptive-black200)] bg-[var(--adaptive-fillOpacity800)] backdrop-blur-[5px] shadow-[var(--adaptive-popup-shadow)]";
|
|
17
|
+
// "overflow-hidden rounded-[12px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-blackOpacity500)] backdrop-blur-[10px] shadow-[var(--adaptive-popup-shadow)]";
|
|
15
18
|
const TOOLTIP_FIXED_CLASS = `fixed z-[1000001] ${TOOLTIP_SURFACE_CLASS}`;
|
|
16
|
-
const
|
|
17
|
-
const MARKER_ANCHOR_CLASS = "pointer-events-none fixed z-[1000000] -translate-x-1/2 -translate-y-1/2";
|
|
19
|
+
const MARKER_ANCHOR_BASE_CLASS = "pointer-events-none fixed z-[1000000]";
|
|
18
20
|
const MARKER_BUTTON_BASE_CLASS = "flex items-center justify-center";
|
|
19
|
-
const OVERFLOW_HINT_BASE_CLASS = "pointer-events-auto fixed z-[1000000] flex items-center justify-center rounded-full
|
|
20
|
-
const OVERFLOW_HINT_TEXT_CLASS = "max-w-[220px] whitespace-nowrap px-[10px] py-[6px] text-[12px] font-medium leading-none";
|
|
21
|
+
const OVERFLOW_HINT_BASE_CLASS = "pointer-events-auto fixed z-[1000000] flex items-center justify-center rounded-full bg-[#000000b3] backdrop-blur-[6px]";
|
|
22
|
+
const OVERFLOW_HINT_TEXT_CLASS = "max-w-[220px] whitespace-nowrap px-[10px] py-[6px] text-[12px] font-medium leading-none text-white";
|
|
21
23
|
const OVERFLOW_HINT_ARROW_CLASS = "flex h-[28px] w-[28px] items-center justify-center text-[16px] font-semibold leading-none";
|
|
22
24
|
const MODAL_GHOST_LAYER_CLASS = "pointer-events-none fixed inset-0 z-[999999]";
|
|
23
25
|
function MarkerOverflowHintButton({ hint, label, onActivate }) {
|
|
24
26
|
const isVertical = hint.edge === "top" || hint.edge === "bottom";
|
|
25
|
-
const transform = hint.edge === "top"
|
|
26
|
-
? "translate(-50%, 0)"
|
|
27
|
-
: hint.edge === "bottom"
|
|
28
|
-
? "translate(-50%, -100%)"
|
|
29
|
-
: hint.edge === "left"
|
|
30
|
-
? "translate(0, -50%)"
|
|
31
|
-
: "translate(-100%, -50%)";
|
|
27
|
+
const transform = hint.edge === "top" ? "translate(-50%, 0)" : hint.edge === "bottom" ? "translate(-50%, -100%)" : hint.edge === "left" ? "translate(0, -50%)" : "translate(-100%, -50%)";
|
|
32
28
|
return (_jsx("button", { type: "button", "data-fivepixels-interactive": "", "aria-label": label, onClick: () => onActivate(hint), className: OVERFLOW_HINT_BASE_CLASS, style: {
|
|
33
29
|
left: hint.left,
|
|
34
30
|
top: hint.top,
|
|
@@ -49,36 +45,48 @@ function DetachedModalGhostFrame({ markerItem }) {
|
|
|
49
45
|
height: frame.dialog.height,
|
|
50
46
|
} })] }));
|
|
51
47
|
}
|
|
52
|
-
function MarkerButton({ markerItem, isSelected, detachedAriaLabel, detachedModalAriaLabel, onActivate, onHoverStart, onHoverEnd }) {
|
|
48
|
+
function MarkerButton({ markerItem, isSelected, detachedAriaLabel, detachedModalAriaLabel, markerAppearance, typography, onActivate, onHoverStart, onHoverEnd }) {
|
|
53
49
|
const hoverRef = useNativeHover({
|
|
54
50
|
onEnter: onHoverStart,
|
|
55
51
|
onLeave: onHoverEnd,
|
|
56
52
|
});
|
|
57
|
-
const replyCount = markerItem.report
|
|
58
|
-
const
|
|
53
|
+
const replyCount = getReplyCount(markerItem.report);
|
|
54
|
+
const markerBadgeLabel = getMarkerDisplayLabel(markerItem.report, replyCount);
|
|
55
|
+
const markerLabel = markerBadgeLabel
|
|
56
|
+
? `${markerItem.report.report_type} · ${markerItem.report.report_id} · ${markerBadgeLabel}`
|
|
57
|
+
: `${markerItem.report.report_type} · ${markerItem.report.report_id}`;
|
|
59
58
|
const isDetached = markerItem.detached;
|
|
60
59
|
const isModalDetached = markerItem.detachedKind === "modal";
|
|
61
60
|
const resolvedDetachedAriaLabel = getDetachedMarkerAriaLabel(markerItem.detachedKind, {
|
|
62
61
|
detachedAriaLabel,
|
|
63
62
|
detachedModalAriaLabel,
|
|
64
63
|
});
|
|
65
|
-
const
|
|
66
|
-
const
|
|
64
|
+
const dotSize = getMarkerDotSize();
|
|
65
|
+
const showMarkerLabel = typography.fontSize !== "none" && Boolean(markerBadgeLabel);
|
|
66
|
+
const shapeStyle = resolveMarkerShapeStyle(markerAppearance.shape, dotSize, showMarkerLabel, isModalDetached);
|
|
67
67
|
const ringColorClass = isModalDetached ? "border-[#a5b4fc]/90" : "border-white/80";
|
|
68
|
-
|
|
68
|
+
const markerFontSizePx = typography.fontSize === "none" ? undefined : getMarkerLabelFontSizePx(typography.fontSize);
|
|
69
|
+
return (_jsx("div", { className: `${MARKER_ANCHOR_BASE_CLASS} ${shapeStyle.anchorClass}`, style: {
|
|
69
70
|
left: markerItem.left,
|
|
70
71
|
top: markerItem.top,
|
|
71
|
-
}, children: _jsxs("div", { className: "relative pointer-events-auto", children: [isDetached ? (_jsx("div", { "aria-hidden": true, className: `pointer-events-none absolute -inset-[6px] border border-dashed ${
|
|
72
|
+
}, children: _jsxs("div", { className: "relative pointer-events-auto", children: [isDetached ? (_jsx("div", { "aria-hidden": true, className: `pointer-events-none absolute -inset-[6px] border border-dashed ${shapeStyle.ringClass} ${ringColorClass}` })) : null, _jsx("button", { ref: hoverRef, type: "button", "data-fivepixels-interactive": "", "data-marker-report-id": markerItem.report.id, "aria-label": isDetached ? `${resolvedDetachedAriaLabel} · ${markerLabel}` : markerLabel, onClick: () => {
|
|
72
73
|
void onActivate(markerItem.report);
|
|
73
|
-
}, className: `${isSelected
|
|
74
|
-
|
|
75
|
-
: `${MARKER_BUTTON_BASE_CLASS} min-h-[16px] min-w-[16px] border-[2px] border-white shadow-[0_4px_10px_#00000090]`} ${markerShapeClass} ${replyCount > 0 ? "p-[4px_8px] text-white" : ""} ${isDetached ? "border-dashed opacity-75" : ""}`, style: {
|
|
76
|
-
backgroundColor: getMarkerColor(markerItem.report),
|
|
74
|
+
}, className: `${MARKER_BUTTON_BASE_CLASS} border-[2px] border-white shadow-[0_4px_10px_#00000090] ${shapeStyle.shapeClass} ${isSelected ? "scale-[1.4]" : ""} ${isDetached ? "border-dashed opacity-75" : ""} ${showMarkerLabel ? "text-white" : ""}`, style: {
|
|
75
|
+
backgroundColor: getMarkerColor(markerItem.report, markerAppearance.colors),
|
|
77
76
|
pointerEvents: "auto",
|
|
78
|
-
|
|
77
|
+
width: shapeStyle.width,
|
|
78
|
+
height: shapeStyle.height,
|
|
79
|
+
minWidth: shapeStyle.width,
|
|
80
|
+
minHeight: shapeStyle.height,
|
|
81
|
+
paddingLeft: shapeStyle.paddingX,
|
|
82
|
+
paddingRight: shapeStyle.paddingX,
|
|
83
|
+
clipPath: shapeStyle.clipPath,
|
|
84
|
+
fontSize: markerFontSizePx === undefined ? undefined : `${markerFontSizePx}px`,
|
|
85
|
+
fontFamily: showMarkerLabel ? typography.fontFamily : undefined,
|
|
86
|
+
}, children: showMarkerLabel ? (markerBadgeLabel) : isModalDetached ? (_jsx("span", { "aria-hidden": true, className: "block h-[7px] w-[9px] border border-white/90 bg-white/15" })) : null }, markerItem.id)] }) }));
|
|
79
87
|
}
|
|
80
88
|
export function ReportMarkersLayer() {
|
|
81
|
-
const { mode, markers, selectedReport,
|
|
89
|
+
const { mode, markers, selectedReport, activeReplyReport, activeReplyReportId, tooltipReport, tooltipAnchor, editingReportId, messages, markerAppearance, typography, selectReport, activateFeedbackMarker, clearHoverLeaveTimeout, scheduleHoverLeave, setHoveredMarkerId, } = useReport();
|
|
82
90
|
const handleMarkerHoverStart = useCallback((reportId) => {
|
|
83
91
|
clearHoverLeaveTimeout();
|
|
84
92
|
setHoveredMarkerId(reportId);
|
|
@@ -94,49 +102,7 @@ export function ReportMarkersLayer() {
|
|
|
94
102
|
clearHoverLeaveTimeout();
|
|
95
103
|
setHoveredMarkerId((current) => (current === reportId ? null : current));
|
|
96
104
|
}, [activeReplyReportId, clearHoverLeaveTimeout, scheduleHoverLeave, setHoveredMarkerId]);
|
|
97
|
-
const tooltipContainerRef = useRef(null);
|
|
98
|
-
const expandedTooltipHoverRef = useNativeHover({
|
|
99
|
-
onEnter: () => {
|
|
100
|
-
if (tooltipReport) {
|
|
101
|
-
clearHoverLeaveTimeout();
|
|
102
|
-
setHoveredMarkerId(tooltipReport.id);
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
onLeave: () => {
|
|
106
|
-
if (tooltipReport) {
|
|
107
|
-
scheduleHoverLeave(tooltipReport.id);
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
});
|
|
111
|
-
const showComposer = useMemo(() => {
|
|
112
|
-
if (!activeReplyReport || activeReplyReport.status === "resolved") {
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
return activeReplyReport.replies.length === 0 || pendingComposer !== null;
|
|
116
|
-
}, [activeReplyReport, pendingComposer]);
|
|
117
105
|
const isExpandedTooltip = Boolean(activeReplyReport && tooltipReport && activeReplyReport.id === tooltipReport.id);
|
|
118
|
-
useEffect(() => {
|
|
119
|
-
if (!activeReplyReportId) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
const handlePointerDown = (event) => {
|
|
123
|
-
const path = event.composedPath();
|
|
124
|
-
if (tooltipContainerRef.current && path.includes(tooltipContainerRef.current)) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
const clickedMarker = path.find((node) => node instanceof Element && node.hasAttribute("data-marker-report-id"));
|
|
128
|
-
if (clickedMarker instanceof Element) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
clearHoverLeaveTimeout();
|
|
132
|
-
setHoveredMarkerId(null);
|
|
133
|
-
closeReplyComposer();
|
|
134
|
-
};
|
|
135
|
-
window.addEventListener("pointerdown", handlePointerDown);
|
|
136
|
-
return () => {
|
|
137
|
-
window.removeEventListener("pointerdown", handlePointerDown);
|
|
138
|
-
};
|
|
139
|
-
}, [activeReplyReportId, clearHoverLeaveTimeout, closeReplyComposer, setHoveredMarkerId]);
|
|
140
106
|
const isViewMode = mode === "view";
|
|
141
107
|
const visibleMarkers = useMemo(() => markers.filter((marker) => marker.clampedEdge === null), [markers]);
|
|
142
108
|
const overflowHints = useMemo(() => resolveMarkerOverflowHints(markers), [markers]);
|
|
@@ -151,12 +117,6 @@ export function ReportMarkersLayer() {
|
|
|
151
117
|
}
|
|
152
118
|
return marker;
|
|
153
119
|
}, [selectedReport?.id, tooltipReport?.id, visibleMarkers]);
|
|
154
|
-
const resolvedDetachedHint = tooltipAnchor
|
|
155
|
-
? getDetachedMarkerHint(tooltipAnchor.detachedKind, {
|
|
156
|
-
detachedHint: messages.marker.detachedHint,
|
|
157
|
-
detachedModalHint: messages.marker.detachedModalHint,
|
|
158
|
-
})
|
|
159
|
-
: null;
|
|
160
120
|
const getOverflowHintLabel = useCallback((hint) => {
|
|
161
121
|
switch (hint.edge) {
|
|
162
122
|
case "top":
|
|
@@ -179,29 +139,15 @@ export function ReportMarkersLayer() {
|
|
|
179
139
|
const bindHoverTooltipRef = useCallback((node) => {
|
|
180
140
|
setTooltipElement(node);
|
|
181
141
|
}, [setTooltipElement]);
|
|
182
|
-
const bindExpandedTooltipRef = useCallback((node) => {
|
|
183
|
-
tooltipContainerRef.current = node;
|
|
184
|
-
if (node instanceof HTMLDivElement) {
|
|
185
|
-
expandedTooltipHoverRef(node);
|
|
186
|
-
}
|
|
187
|
-
setTooltipElement(node);
|
|
188
|
-
}, [expandedTooltipHoverRef, setTooltipElement]);
|
|
189
142
|
if (!isViewMode) {
|
|
190
143
|
return null;
|
|
191
144
|
}
|
|
192
|
-
return (_jsxs(_Fragment, { children: [ghostFrameMarker ? _jsx(DetachedModalGhostFrame, { markerItem: ghostFrameMarker }) : null, visibleMarkers.map((markerItem) => (_jsx(MarkerButton, { markerItem: markerItem, isSelected: markerItem.report.id === selectedReport?.id, detachedAriaLabel: messages.marker.detachedAriaLabel, detachedModalAriaLabel: messages.marker.detachedModalAriaLabel, onActivate: activateFeedbackMarker, onHoverStart: () => handleMarkerHoverStart(markerItem.report.id), onHoverEnd: () => handleMarkerHoverEnd(markerItem.report.id) }, markerItem.id))), overflowHints.map((hint) => (_jsx(MarkerOverflowHintButton, { hint: hint, label: getOverflowHintLabel(hint), onActivate: handleOverflowHintActivate }, hint.id))), showTooltip && !isExpandedTooltip && tooltipReport && tooltipPosition && tooltipAnchorStyle ? (_jsx("div", { ref: bindHoverTooltipRef, className: `pointer-events-none ${TOOLTIP_FIXED_CLASS}`, style: {
|
|
145
|
+
return (_jsxs(_Fragment, { children: [ghostFrameMarker ? _jsx(DetachedModalGhostFrame, { markerItem: ghostFrameMarker }) : null, visibleMarkers.map((markerItem) => (_jsx(MarkerButton, { markerItem: markerItem, isSelected: markerItem.report.id === selectedReport?.id, detachedAriaLabel: messages.marker.detachedAriaLabel, detachedModalAriaLabel: messages.marker.detachedModalAriaLabel, markerAppearance: markerAppearance, typography: typography, onActivate: activateFeedbackMarker, onHoverStart: () => handleMarkerHoverStart(markerItem.report.id), onHoverEnd: () => handleMarkerHoverEnd(markerItem.report.id) }, markerItem.id))), overflowHints.map((hint) => (_jsx(MarkerOverflowHintButton, { hint: hint, label: getOverflowHintLabel(hint), onActivate: handleOverflowHintActivate }, hint.id))), showTooltip && !isExpandedTooltip && tooltipReport && tooltipPosition && tooltipAnchorStyle ? (_jsx("div", { ref: bindHoverTooltipRef, className: `pointer-events-none ${TOOLTIP_FIXED_CLASS}`, style: {
|
|
193
146
|
left: tooltipPosition.left,
|
|
194
147
|
top: tooltipPosition.top,
|
|
195
148
|
width: tooltipPosition.width,
|
|
196
149
|
...tooltipAnchorStyle,
|
|
197
150
|
pointerEvents: "none",
|
|
198
|
-
}, children: _jsx(FeedbackHoverCard, { report: tooltipReport,
|
|
199
|
-
left: tooltipPosition.left,
|
|
200
|
-
top: tooltipPosition.top,
|
|
201
|
-
width: tooltipPosition.width,
|
|
202
|
-
...tooltipAnchorStyle,
|
|
203
|
-
}, children: _jsx("div", { className: TOOLTIP_SURFACE_CLASS, style: {
|
|
204
|
-
pointerEvents: "auto",
|
|
205
|
-
}, children: _jsxs("div", { onClick: (event) => event.stopPropagation(), onPointerDown: (event) => event.stopPropagation(), children: [_jsx(FeedbackIssueHeader, { report: activeReplyReport, fieldTags: tooltipFieldTags, expanded: true }), tooltipAnchor?.detached && resolvedDetachedHint ? (_jsx("p", { className: "border-b border-[var(--adaptive-border-subtle)] px-[12px] pb-[10px] text-[12px] leading-[1.4] text-[var(--adaptive-black500)]", children: resolvedDetachedHint })) : null, showComposer ? (_jsx("section", { className: "border-t border-[var(--adaptive-border-subtle)] bg-transparent", children: _jsx(FeedbackComposer, { message: replyDraft, onMessageChange: setReplyDraft, authorName: replyAuthorName, onAuthorNameChange: setReplyAuthorName, authors: authors, fields: fields, fieldValues: activeReplyReport.field_values, onFieldChange: () => undefined, showTags: false, onSubmit: () => void handleReplySubmit(), isSubmitting: isUpdating, autoFocus: pendingComposer !== null }) })) : null, _jsx(FeedbackThread, { report: activeReplyReport, authors: authors, pendingComposer: pendingComposer, confirmAuthorName: confirmAuthorName, showConfirmAuthorSelect: showConfirmAuthorSelect, onConfirmAuthorNameChange: setConfirmAuthorName, onToggleConfirmAuthorSelect: toggleConfirmAuthorSelect, onStartDeny: startDenyReview, onStartCheckout: startCheckoutReview, onConfirm: () => void handleConfirmResolution(), isUpdating: isUpdating })] }) }) })) : null] }));
|
|
151
|
+
}, children: _jsx(FeedbackHoverCard, { report: tooltipReport, detached: Boolean(tooltipAnchor?.detached), detachedKind: tooltipAnchor?.detachedKind ?? null, detachedHint: messages.marker.detachedHint, detachedModalHint: messages.marker.detachedModalHint }) })) : null, isExpandedTooltip && activeReplyReport && tooltipAnchor ? (_jsx(MarkerFeedbackWindow, { report: activeReplyReport, anchor: tooltipAnchor }, activeReplyReport.id)) : null] }));
|
|
206
152
|
}
|
|
207
153
|
//# sourceMappingURL=ReportMarkersLayer.js.map
|