@fivepixels-js/react 0.2.7 → 0.2.9
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/THIRD_PARTY_NOTICES.md +29 -0
- package/dist/components/icons/Icons.d.ts +9 -0
- package/dist/components/icons/Icons.d.ts.map +1 -1
- package/dist/components/icons/Icons.js +12 -0
- package/dist/components/icons/Icons.js.map +1 -1
- package/dist/components/overlay/DeviceFrameArtwork.d.ts +10 -0
- package/dist/components/overlay/DeviceFrameArtwork.d.ts.map +1 -0
- package/dist/components/overlay/DeviceFrameArtwork.js +112 -0
- package/dist/components/overlay/DeviceFrameArtwork.js.map +1 -0
- package/dist/components/overlay/DevicePreviewChrome.d.ts +2 -0
- package/dist/components/overlay/DevicePreviewChrome.d.ts.map +1 -0
- package/dist/components/overlay/DevicePreviewChrome.js +523 -0
- package/dist/components/overlay/DevicePreviewChrome.js.map +1 -0
- package/dist/components/overlay/DevicePreviewQrCard.d.ts +18 -0
- package/dist/components/overlay/DevicePreviewQrCard.d.ts.map +1 -0
- package/dist/components/overlay/DevicePreviewQrCard.js +94 -0
- package/dist/components/overlay/DevicePreviewQrCard.js.map +1 -0
- package/dist/components/overlay/DeviceStatusBar.d.ts +13 -0
- package/dist/components/overlay/DeviceStatusBar.d.ts.map +1 -0
- package/dist/components/overlay/DeviceStatusBar.js +168 -0
- package/dist/components/overlay/DeviceStatusBar.js.map +1 -0
- package/dist/components/overlay/DotWaveOverlay.d.ts.map +1 -1
- package/dist/components/overlay/DotWaveOverlay.js +3 -1
- package/dist/components/overlay/DotWaveOverlay.js.map +1 -1
- package/dist/components/overlay/FloatingPinRail.d.ts.map +1 -1
- package/dist/components/overlay/FloatingPinRail.js +47 -27
- package/dist/components/overlay/FloatingPinRail.js.map +1 -1
- package/dist/components/overlay/PickTargetContextMenu.js +1 -1
- package/dist/components/overlay/PickTargetContextMenu.js.map +1 -1
- package/dist/components/overlay/PickTargetHoverTooltip.d.ts.map +1 -1
- package/dist/components/overlay/PickTargetHoverTooltip.js +5 -2
- package/dist/components/overlay/PickTargetHoverTooltip.js.map +1 -1
- package/dist/components/panel/AppearanceThemePicker.d.ts +3 -1
- package/dist/components/panel/AppearanceThemePicker.d.ts.map +1 -1
- package/dist/components/panel/AppearanceThemePicker.js +7 -6
- package/dist/components/panel/AppearanceThemePicker.js.map +1 -1
- package/dist/components/panel/DiscreteScaleDial.d.ts.map +1 -1
- package/dist/components/panel/DiscreteScaleDial.js +7 -11
- package/dist/components/panel/DiscreteScaleDial.js.map +1 -1
- package/dist/components/panel/MarkerShapePicker.d.ts +4 -2
- package/dist/components/panel/MarkerShapePicker.d.ts.map +1 -1
- package/dist/components/panel/MarkerShapePicker.js +10 -13
- package/dist/components/panel/MarkerShapePicker.js.map +1 -1
- package/dist/components/panel/MarkerSizePreview.d.ts +4 -2
- package/dist/components/panel/MarkerSizePreview.d.ts.map +1 -1
- package/dist/components/panel/MarkerSizePreview.js +19 -21
- package/dist/components/panel/MarkerSizePreview.js.map +1 -1
- package/dist/components/panel/PanelAutoRefreshControl.js +1 -1
- package/dist/components/panel/PanelAutoRefreshControl.js.map +1 -1
- package/dist/components/panel/PanelDropdownMenu.js +1 -1
- package/dist/components/panel/PanelDropdownMenu.js.map +1 -1
- package/dist/components/panel/PanelKeyGate.d.ts.map +1 -1
- package/dist/components/panel/PanelKeyGate.js +7 -2
- package/dist/components/panel/PanelKeyGate.js.map +1 -1
- package/dist/components/panel/PanelMarkerDisplayControls.d.ts +3 -8
- package/dist/components/panel/PanelMarkerDisplayControls.d.ts.map +1 -1
- package/dist/components/panel/PanelMarkerDisplayControls.js +4 -4
- package/dist/components/panel/PanelMarkerDisplayControls.js.map +1 -1
- package/dist/components/panel/PanelOnboarding.d.ts.map +1 -1
- package/dist/components/panel/PanelOnboarding.js +26 -5
- package/dist/components/panel/PanelOnboarding.js.map +1 -1
- package/dist/components/panel/PanelProjectFooter.js +1 -1
- package/dist/components/panel/PanelProjectFooter.js.map +1 -1
- package/dist/components/panel/PanelRoleSwitch.js +1 -1
- package/dist/components/panel/PanelRoleSwitch.js.map +1 -1
- package/dist/components/panel/PanelSettings.d.ts.map +1 -1
- package/dist/components/panel/PanelSettings.js +54 -11
- package/dist/components/panel/PanelSettings.js.map +1 -1
- package/dist/components/panel/PanelStatusBanner.d.ts +26 -0
- package/dist/components/panel/PanelStatusBanner.d.ts.map +1 -0
- package/dist/components/panel/PanelStatusBanner.js +11 -0
- package/dist/components/panel/PanelStatusBanner.js.map +1 -0
- package/dist/components/panel/PanelStatusBannerStack.d.ts +5 -0
- package/dist/components/panel/PanelStatusBannerStack.d.ts.map +1 -0
- package/dist/components/panel/PanelStatusBannerStack.js +129 -0
- package/dist/components/panel/PanelStatusBannerStack.js.map +1 -0
- package/dist/components/panel/ReportControlPanel.d.ts.map +1 -1
- package/dist/components/panel/ReportControlPanel.js +8 -8
- package/dist/components/panel/ReportControlPanel.js.map +1 -1
- package/dist/components/panel/ReportDraftForm.js +2 -2
- package/dist/components/panel/ReportDraftForm.js.map +1 -1
- package/dist/components/panel/ReportFeedbackList.js +2 -2
- package/dist/components/panel/ReportFeedbackList.js.map +1 -1
- package/dist/components/panel/ThemePreviewSkeleton.d.ts +3 -1
- package/dist/components/panel/ThemePreviewSkeleton.d.ts.map +1 -1
- package/dist/components/panel/ThemePreviewSkeleton.js +60 -18
- package/dist/components/panel/ThemePreviewSkeleton.js.map +1 -1
- package/dist/components/panel/feedback/CaseAssigneeInfo.d.ts.map +1 -1
- package/dist/components/panel/feedback/CaseAssigneeInfo.js +1 -1
- package/dist/components/panel/feedback/CaseAssigneeInfo.js.map +1 -1
- package/dist/components/panel/feedback/DraftComposerToolbar.js +1 -1
- package/dist/components/panel/feedback/DraftComposerToolbar.js.map +1 -1
- package/dist/components/panel/feedback/FeedbackComposer.d.ts +2 -1
- package/dist/components/panel/feedback/FeedbackComposer.d.ts.map +1 -1
- package/dist/components/panel/feedback/FeedbackComposer.js +7 -6
- package/dist/components/panel/feedback/FeedbackComposer.js.map +1 -1
- package/dist/components/panel/feedback/FeedbackHoverCard.d.ts.map +1 -1
- package/dist/components/panel/feedback/FeedbackHoverCard.js +18 -9
- package/dist/components/panel/feedback/FeedbackHoverCard.js.map +1 -1
- package/dist/components/panel/feedback/FeedbackThread.d.ts.map +1 -1
- package/dist/components/panel/feedback/FeedbackThread.js +9 -9
- package/dist/components/panel/feedback/FeedbackThread.js.map +1 -1
- package/dist/components/panel/feedback/MentionComposerInput.d.ts.map +1 -1
- package/dist/components/panel/feedback/MentionComposerInput.js +1 -1
- package/dist/components/panel/feedback/MentionComposerInput.js.map +1 -1
- package/dist/components/panel/feedback/QuestionThreadGroup.d.ts +3 -2
- package/dist/components/panel/feedback/QuestionThreadGroup.d.ts.map +1 -1
- package/dist/components/panel/feedback/QuestionThreadGroup.js +2 -2
- package/dist/components/panel/feedback/QuestionThreadGroup.js.map +1 -1
- package/dist/components/panel/feedback/ThreadAuthorMeta.d.ts +5 -1
- package/dist/components/panel/feedback/ThreadAuthorMeta.d.ts.map +1 -1
- package/dist/components/panel/feedback/ThreadAuthorMeta.js +4 -2
- package/dist/components/panel/feedback/ThreadAuthorMeta.js.map +1 -1
- package/dist/components/panel/feedback/ThreadChildReply.d.ts +3 -2
- package/dist/components/panel/feedback/ThreadChildReply.d.ts.map +1 -1
- package/dist/components/panel/feedback/ThreadChildReply.js +2 -2
- package/dist/components/panel/feedback/ThreadChildReply.js.map +1 -1
- package/dist/components/point/MarkerCaseSidebar.d.ts.map +1 -1
- package/dist/components/point/MarkerCaseSidebar.js +8 -5
- package/dist/components/point/MarkerCaseSidebar.js.map +1 -1
- package/dist/components/point/MarkerFeedbackWindow.d.ts.map +1 -1
- package/dist/components/point/MarkerFeedbackWindow.js +13 -5
- package/dist/components/point/MarkerFeedbackWindow.js.map +1 -1
- package/dist/components/point/MarkerReplyBadge.d.ts +9 -0
- package/dist/components/point/MarkerReplyBadge.d.ts.map +1 -0
- package/dist/components/point/MarkerReplyBadge.js +14 -0
- package/dist/components/point/MarkerReplyBadge.js.map +1 -0
- package/dist/components/point/MarkerShapeGlyph.d.ts +20 -0
- package/dist/components/point/MarkerShapeGlyph.d.ts.map +1 -0
- package/dist/components/point/MarkerShapeGlyph.js +17 -0
- package/dist/components/point/MarkerShapeGlyph.js.map +1 -0
- package/dist/components/point/ReportDraftMarker.d.ts.map +1 -1
- package/dist/components/point/ReportDraftMarker.js +8 -3
- 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 +67 -48
- package/dist/components/point/ReportMarkersLayer.js.map +1 -1
- package/dist/components/report/ReportView.d.ts.map +1 -1
- package/dist/components/report/ReportView.js +13 -3
- package/dist/components/report/ReportView.js.map +1 -1
- package/dist/components/ui/FloatingWindow.d.ts +46 -0
- package/dist/components/ui/FloatingWindow.d.ts.map +1 -0
- package/dist/components/ui/FloatingWindow.js +183 -0
- package/dist/components/ui/FloatingWindow.js.map +1 -0
- package/dist/components/ui/IconTooltipButton.js +1 -1
- package/dist/components/ui/IconTooltipButton.js.map +1 -1
- package/dist/constants/accentColors.d.ts +32 -0
- package/dist/constants/accentColors.d.ts.map +1 -0
- package/dist/constants/accentColors.js +32 -0
- package/dist/constants/accentColors.js.map +1 -0
- package/dist/constants/appearance.d.ts +1 -1
- package/dist/constants/appearance.js +2 -2
- package/dist/constants/appearance.js.map +1 -1
- package/dist/constants/devicePreview.d.ts +137 -0
- package/dist/constants/devicePreview.d.ts.map +1 -0
- package/dist/constants/devicePreview.js +501 -0
- package/dist/constants/devicePreview.js.map +1 -0
- package/dist/constants/feedbackStatus.d.ts.map +1 -1
- package/dist/constants/feedbackStatus.js +8 -7
- package/dist/constants/feedbackStatus.js.map +1 -1
- package/dist/constants/markerAppearance.d.ts +24 -9
- package/dist/constants/markerAppearance.d.ts.map +1 -1
- package/dist/constants/markerAppearance.js +67 -16
- package/dist/constants/markerAppearance.js.map +1 -1
- package/dist/constants/markerShapePaths.d.ts +64 -0
- package/dist/constants/markerShapePaths.d.ts.map +1 -0
- package/dist/constants/markerShapePaths.js +63 -0
- package/dist/constants/markerShapePaths.js.map +1 -0
- package/dist/constants/markerShapeRegistry.d.ts +18 -0
- package/dist/constants/markerShapeRegistry.d.ts.map +1 -0
- package/dist/constants/markerShapeRegistry.js +35 -0
- package/dist/constants/markerShapeRegistry.js.map +1 -0
- package/dist/constants/motionClasses.d.ts +2 -0
- package/dist/constants/motionClasses.d.ts.map +1 -1
- package/dist/constants/motionClasses.js +2 -0
- package/dist/constants/motionClasses.js.map +1 -1
- package/dist/constants/overlayChrome.d.ts +13 -0
- package/dist/constants/overlayChrome.d.ts.map +1 -0
- package/dist/constants/overlayChrome.js +13 -0
- package/dist/constants/overlayChrome.js.map +1 -0
- package/dist/constants/report.d.ts +1 -1
- package/dist/constants/report.d.ts.map +1 -1
- package/dist/constants/report.js +3 -1
- package/dist/constants/report.js.map +1 -1
- package/dist/hooks/report/assembleReportContextValue.d.ts +21 -0
- package/dist/hooks/report/assembleReportContextValue.d.ts.map +1 -1
- package/dist/hooks/report/assembleReportContextValue.js +21 -0
- package/dist/hooks/report/assembleReportContextValue.js.map +1 -1
- package/dist/hooks/report/useReportMarkers.d.ts.map +1 -1
- package/dist/hooks/report/useReportMarkers.js +7 -1
- package/dist/hooks/report/useReportMarkers.js.map +1 -1
- package/dist/hooks/report/useReportPanelShell.d.ts +20 -0
- package/dist/hooks/report/useReportPanelShell.d.ts.map +1 -1
- package/dist/hooks/report/useReportPanelShell.js +31 -12
- package/dist/hooks/report/useReportPanelShell.js.map +1 -1
- package/dist/hooks/report/useReportState.d.ts +21 -0
- package/dist/hooks/report/useReportState.d.ts.map +1 -1
- package/dist/hooks/useDetachedMarkerVisibilityPreference.d.ts +8 -0
- package/dist/hooks/useDetachedMarkerVisibilityPreference.d.ts.map +1 -0
- package/dist/hooks/useDetachedMarkerVisibilityPreference.js +49 -0
- package/dist/hooks/useDetachedMarkerVisibilityPreference.js.map +1 -0
- package/dist/hooks/useDevicePreviewPreference.d.ts +17 -0
- package/dist/hooks/useDevicePreviewPreference.d.ts.map +1 -0
- package/dist/hooks/useDevicePreviewPreference.js +123 -0
- package/dist/hooks/useDevicePreviewPreference.js.map +1 -0
- package/dist/hooks/useMarkerAppearancePreference.d.ts +2 -1
- package/dist/hooks/useMarkerAppearancePreference.d.ts.map +1 -1
- package/dist/hooks/useMarkerAppearancePreference.js +9 -1
- package/dist/hooks/useMarkerAppearancePreference.js.map +1 -1
- package/dist/hooks/useNativeHover.d.ts.map +1 -1
- package/dist/hooks/useNativeHover.js +18 -6
- package/dist/hooks/useNativeHover.js.map +1 -1
- package/dist/hooks/useOverlayChrome.d.ts +16 -0
- package/dist/hooks/useOverlayChrome.d.ts.map +1 -0
- package/dist/hooks/useOverlayChrome.js +131 -0
- package/dist/hooks/useOverlayChrome.js.map +1 -0
- package/dist/hooks/usePanelDock.d.ts +2 -0
- package/dist/hooks/usePanelDock.d.ts.map +1 -1
- package/dist/hooks/usePanelDock.js +22 -0
- package/dist/hooks/usePanelDock.js.map +1 -1
- package/dist/hooks/usePinnedFeedbackPreference.d.ts +3 -1
- package/dist/hooks/usePinnedFeedbackPreference.d.ts.map +1 -1
- package/dist/hooks/usePinnedFeedbackPreference.js +11 -1
- package/dist/hooks/usePinnedFeedbackPreference.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +84 -8
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +89 -13
- package/dist/i18n/ko.js.map +1 -1
- package/dist/i18n/types.d.ts +77 -1
- package/dist/i18n/types.d.ts.map +1 -1
- package/dist/providers/reportContext.d.ts +106 -1
- package/dist/providers/reportContext.d.ts.map +1 -1
- package/dist/providers/reportContextPartitions.d.ts +1 -1
- package/dist/providers/reportContextPartitions.d.ts.map +1 -1
- package/dist/providers/reportContextPartitions.js +21 -0
- package/dist/providers/reportContextPartitions.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/pinnedFeedback.d.ts +7 -0
- package/dist/types/pinnedFeedback.d.ts.map +1 -1
- package/dist/types/pinnedFeedback.js.map +1 -1
- package/dist/utils/feedback/feedbackThread.d.ts +4 -0
- package/dist/utils/feedback/feedbackThread.d.ts.map +1 -1
- package/dist/utils/feedback/feedbackThread.js +20 -0
- package/dist/utils/feedback/feedbackThread.js.map +1 -1
- package/dist/utils/marker/markerContext.d.ts +5 -1
- package/dist/utils/marker/markerContext.d.ts.map +1 -1
- package/dist/utils/marker/markerContext.js +18 -15
- package/dist/utils/marker/markerContext.js.map +1 -1
- package/dist/utils/marker/markerRuntime.d.ts +1 -0
- package/dist/utils/marker/markerRuntime.d.ts.map +1 -1
- package/dist/utils/marker/markerRuntime.js +8 -5
- package/dist/utils/marker/markerRuntime.js.map +1 -1
- package/dist/utils/marker/markerShape.d.ts +13 -7
- package/dist/utils/marker/markerShape.d.ts.map +1 -1
- package/dist/utils/marker/markerShape.js +25 -45
- package/dist/utils/marker/markerShape.js.map +1 -1
- package/dist/utils/overlay/devicePreviewCapture.d.ts +51 -0
- package/dist/utils/overlay/devicePreviewCapture.d.ts.map +1 -0
- package/dist/utils/overlay/devicePreviewCapture.js +156 -0
- package/dist/utils/overlay/devicePreviewCapture.js.map +1 -0
- package/dist/utils/overlay/edgeDock.d.ts +47 -0
- package/dist/utils/overlay/edgeDock.d.ts.map +1 -0
- package/dist/utils/overlay/edgeDock.js +144 -0
- package/dist/utils/overlay/edgeDock.js.map +1 -0
- package/dist/utils/overlay/floatingWindowStack.d.ts +6 -0
- package/dist/utils/overlay/floatingWindowStack.d.ts.map +1 -0
- package/dist/utils/overlay/floatingWindowStack.js +17 -0
- package/dist/utils/overlay/floatingWindowStack.js.map +1 -0
- package/dist/utils/panel/formatStatCount.js +1 -1
- package/dist/utils/panel/formatStatCount.js.map +1 -1
- package/dist/utils/panel/panelRoleStats.d.ts +3 -5
- package/dist/utils/panel/panelRoleStats.d.ts.map +1 -1
- package/dist/utils/panel/panelRoleStats.js +26 -54
- package/dist/utils/panel/panelRoleStats.js.map +1 -1
- package/dist/utils/panel/panelTypography.d.ts +2 -2
- package/dist/utils/panel/panelTypography.d.ts.map +1 -1
- package/dist/utils/panel/panelTypography.js +2 -2
- package/dist/utils/panel/panelTypography.js.map +1 -1
- package/dist/utils/pinned/pinnedFeedback.d.ts.map +1 -1
- package/dist/utils/pinned/pinnedFeedback.js +5 -2
- package/dist/utils/pinned/pinnedFeedback.js.map +1 -1
- package/dist/utils/qr/devicePreviewShareUrl.d.ts +13 -0
- package/dist/utils/qr/devicePreviewShareUrl.d.ts.map +1 -0
- package/dist/utils/qr/devicePreviewShareUrl.js +53 -0
- package/dist/utils/qr/devicePreviewShareUrl.js.map +1 -0
- package/dist/utils/qr/encodeQrSvg.d.ts +13 -0
- package/dist/utils/qr/encodeQrSvg.d.ts.map +1 -0
- package/dist/utils/qr/encodeQrSvg.js +31 -0
- package/dist/utils/qr/encodeQrSvg.js.map +1 -0
- package/dist/utils/report/reportVisual.d.ts +2 -1
- package/dist/utils/report/reportVisual.d.ts.map +1 -1
- package/dist/utils/report/reportVisual.js +4 -4
- package/dist/utils/report/reportVisual.js.map +1 -1
- package/dist/utils/shared/format.d.ts +15 -0
- package/dist/utils/shared/format.d.ts.map +1 -1
- package/dist/utils/shared/format.js +71 -0
- package/dist/utils/shared/format.js.map +1 -1
- package/dist/vendor/nayuki/qrcodegen.d.ts +94 -0
- package/dist/vendor/nayuki/qrcodegen.d.ts.map +1 -0
- package/dist/vendor/nayuki/qrcodegen.js +836 -0
- package/dist/vendor/nayuki/qrcodegen.js.map +1 -0
- package/package.json +7 -2
- package/dist/components/panel/ProbeEditModeBanner.d.ts +0 -2
- package/dist/components/panel/ProbeEditModeBanner.d.ts.map +0 -1
- package/dist/components/panel/ProbeEditModeBanner.js +0 -23
- package/dist/components/panel/ProbeEditModeBanner.js.map +0 -1
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { FEEDBACK_HIGHLIGHT } from "../../constants/report.js";
|
|
3
|
-
import {
|
|
2
|
+
import { DOT_SIZE, FEEDBACK_HIGHLIGHT } from "../../constants/report.js";
|
|
3
|
+
import { getMarkerScaleFactor } from "../../constants/markerAppearance.js";
|
|
4
|
+
import { useReportPreferences, useReportSession } from "../../providers/reportContext.js";
|
|
4
5
|
import { getDraftMarkerPosition } from "../../utils/marker/coordinates.js";
|
|
5
|
-
const DRAFT_MARKER_CLASS = "pointer-events-none fixed z-[1000000000] flex
|
|
6
|
+
const DRAFT_MARKER_CLASS = "pointer-events-none fixed z-[1000000000] flex -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full border-2 border-white shadow-lg";
|
|
6
7
|
export function ReportDraftMarker() {
|
|
7
8
|
const { draft, selectedTarget, editingReportId } = useReportSession();
|
|
9
|
+
const { markerAppearance } = useReportPreferences();
|
|
8
10
|
// Edit mode reuses the existing report marker — do not paint a second "create" draft dot.
|
|
9
11
|
if (!draft || editingReportId) {
|
|
10
12
|
return null;
|
|
11
13
|
}
|
|
12
14
|
const { left, top, clampedEdge } = getDraftMarkerPosition(draft, selectedTarget);
|
|
13
15
|
const markerColor = FEEDBACK_HIGHLIGHT.outline;
|
|
16
|
+
const dotSize = DOT_SIZE * getMarkerScaleFactor(markerAppearance.size);
|
|
14
17
|
if (clampedEdge !== null) {
|
|
15
18
|
return null;
|
|
16
19
|
}
|
|
17
20
|
return (_jsx("div", { "aria-hidden": true, className: DRAFT_MARKER_CLASS, style: {
|
|
18
21
|
left,
|
|
19
22
|
top,
|
|
23
|
+
width: dotSize,
|
|
24
|
+
height: dotSize,
|
|
20
25
|
backgroundColor: markerColor,
|
|
21
26
|
} }));
|
|
22
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportDraftMarker.js","sourceRoot":"","sources":["../../../src/components/point/ReportDraftMarker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ReportDraftMarker.js","sourceRoot":"","sources":["../../../src/components/point/ReportDraftMarker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,kBAAkB,GACpB,0JAA0J,CAAC;AAE/J,MAAM,UAAU,iBAAiB;IAC7B,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtE,MAAM,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAEpD,0FAA0F;IAC1F,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;QAC5B,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;IAC/C,MAAM,OAAO,GAAG,QAAQ,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEvE,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,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,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":"AAqOA,wBAAgB,kBAAkB,uCAsNjC"}
|
|
@@ -7,15 +7,16 @@ import { resolveMarkerOverflowHints } from "../../utils/marker/coordinates.js";
|
|
|
7
7
|
import { scrollContainerTowardEdge } from "../../utils/shared/dom.js";
|
|
8
8
|
import { getDetachedMarkerAriaLabel, getModalGhostFrame } from "../../utils/marker/markerContext.js";
|
|
9
9
|
import { getMarkerDotSize } from "../../utils/marker/markerRuntime.js";
|
|
10
|
-
import { resolveMarkerShapeStyle } from "../../utils/marker/markerShape.js";
|
|
11
|
-
import {
|
|
12
|
-
import { getMarkerColor, getMarkerDisplayLabel } from "../../utils/report/reportVisual.js";
|
|
10
|
+
import { getMarkerReplyBadgeSize, resolveMarkerGlyphPaint, resolveMarkerShapeStyle } from "../../utils/marker/markerShape.js";
|
|
11
|
+
import { resolveMarkerBadgeDisplay } from "../../constants/markerAppearance.js";
|
|
12
|
+
import { getMarkerColor, getMarkerDisplayLabel, hasMarkerReplyIndicator } from "../../utils/report/reportVisual.js";
|
|
13
13
|
import { FeedbackHoverCard } from "../../components/panel/feedback/FeedbackHoverCard.js";
|
|
14
14
|
import { getReplyCount } from "../../utils/feedback/feedbackThread.js";
|
|
15
15
|
import { MOTION } from "../../constants/motionClasses.js";
|
|
16
16
|
import { MarkerFeedbackWindow } from "./MarkerFeedbackWindow.js";
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
import { MarkerReplyBadge } from "./MarkerReplyBadge.js";
|
|
18
|
+
import { MarkerShapeGlyph } from "./MarkerShapeGlyph.js";
|
|
19
|
+
const TOOLTIP_SURFACE_CLASS = "overflow-hidden rounded-[16px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-neutralTintOpacity800)] backdrop-blur-[5px] shadow-[var(--adaptive-popup-shadow)]";
|
|
19
20
|
const TOOLTIP_FIXED_CLASS = `fixed z-[1000001] ${TOOLTIP_SURFACE_CLASS} ${MOTION.tooltipFadeIn}`;
|
|
20
21
|
const MARKER_ANCHOR_BASE_CLASS = "pointer-events-none fixed z-[1000000]";
|
|
21
22
|
const MARKER_BUTTON_BASE_CLASS = "flex items-center justify-center";
|
|
@@ -33,8 +34,8 @@ function MarkerOverflowHintButton({ hint, label, onActivate }) {
|
|
|
33
34
|
transform,
|
|
34
35
|
}, children: isVertical ? _jsx("span", { className: OVERFLOW_HINT_TEXT_CLASS, children: label }) : _jsx("span", { className: OVERFLOW_HINT_ARROW_CLASS, children: hint.edge === "left" ? "←" : "→" }) }));
|
|
35
36
|
}
|
|
36
|
-
function DetachedModalGhostFrame(
|
|
37
|
-
const frame = useMemo(() => getModalGhostFrame(
|
|
37
|
+
function DetachedModalGhostFrame() {
|
|
38
|
+
const frame = useMemo(() => getModalGhostFrame(), []);
|
|
38
39
|
return (_jsxs("div", { className: MODAL_GHOST_LAYER_CLASS, "aria-hidden": true, children: [_jsx("div", { className: "absolute bg-[#0f172a]/12", style: {
|
|
39
40
|
left: frame.backdrop.left,
|
|
40
41
|
top: frame.backdrop.top,
|
|
@@ -47,61 +48,65 @@ function DetachedModalGhostFrame({ markerItem }) {
|
|
|
47
48
|
height: frame.dialog.height,
|
|
48
49
|
} })] }));
|
|
49
50
|
}
|
|
50
|
-
function MarkerButton({ markerItem,
|
|
51
|
+
function MarkerButton({ markerItem, isHovered, isReportMode, isProximityHighlighted, detachedAriaLabel, detachedModalAriaLabel, markerAppearance, typography, onActivate, onHoverStart, onHoverEnd, onPointerMove, }) {
|
|
51
52
|
const hoverRef = useNativeHover({
|
|
52
53
|
onEnter: onHoverStart,
|
|
53
54
|
onLeave: onHoverEnd,
|
|
54
55
|
});
|
|
55
56
|
const replyCount = getReplyCount(markerItem.report);
|
|
56
|
-
const markerBadgeLabel = getMarkerDisplayLabel(markerItem.report
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
const markerBadgeLabel = getMarkerDisplayLabel(markerItem.report);
|
|
58
|
+
const showReplyIndicator = hasMarkerReplyIndicator(markerItem.report, replyCount);
|
|
59
|
+
const markerLabelParts = [
|
|
60
|
+
markerItem.report.report_type,
|
|
61
|
+
markerItem.report.report_id,
|
|
62
|
+
markerBadgeLabel,
|
|
63
|
+
showReplyIndicator ? `+${replyCount}` : null,
|
|
64
|
+
].filter(Boolean);
|
|
65
|
+
const markerLabel = markerLabelParts.join(" · ");
|
|
60
66
|
const isDetached = markerItem.detached;
|
|
61
|
-
const isModalDetached = markerItem.detachedKind === "modal";
|
|
62
67
|
const resolvedDetachedAriaLabel = getDetachedMarkerAriaLabel(markerItem.detachedKind, {
|
|
63
68
|
detachedAriaLabel,
|
|
64
69
|
detachedModalAriaLabel,
|
|
65
70
|
});
|
|
66
71
|
const dotSize = getMarkerDotSize();
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
const
|
|
72
|
+
const hasBadgeSource = typography.fontSize !== "none" && Boolean(markerBadgeLabel);
|
|
73
|
+
const badgeDisplay = hasBadgeSource ? resolveMarkerBadgeDisplay(markerAppearance.size, markerBadgeLabel) : { content: null, fontSizePx: undefined, fontWeight: undefined };
|
|
74
|
+
const showMarkerLabel = Boolean(badgeDisplay.content);
|
|
75
|
+
const glyphShape = markerItem.detachedKind === "modal" ? "ghostish" : markerItem.detachedKind === "hidden" ? "puffy" : markerAppearance.shape;
|
|
76
|
+
const shapeStyle = resolveMarkerShapeStyle(glyphShape, dotSize);
|
|
77
|
+
const markerColor = getMarkerColor(markerItem.report, markerAppearance.colors);
|
|
78
|
+
const paint = resolveMarkerGlyphPaint(markerColor, markerAppearance.fillStyle, shapeStyle.strokeWidthPx);
|
|
79
|
+
const replyBadgeSize = getMarkerReplyBadgeSize(dotSize);
|
|
80
|
+
const scaleClass = isHovered ? "scale-[1.4]" : isReportMode && isProximityHighlighted ? "scale-110" : "";
|
|
71
81
|
return (_jsx("div", { className: `${MARKER_ANCHOR_BASE_CLASS} ${shapeStyle.anchorClass}`, style: {
|
|
72
82
|
left: markerItem.left,
|
|
73
83
|
top: markerItem.top,
|
|
74
|
-
}, children:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
fontFamily: showMarkerLabel ? typography.fontFamily : undefined,
|
|
94
|
-
}, 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)] }) }));
|
|
84
|
+
}, children: _jsx("div", { className: `relative transition-opacity duration-150 ${isReportMode ? (isProximityHighlighted ? "pointer-events-none opacity-100" : "pointer-events-none opacity-50") : "pointer-events-auto"}`, children: _jsxs("div", { className: `relative transition-transform duration-150 ${scaleClass}`, children: [_jsxs("button", { ref: hoverRef, type: "button", "data-fivepixels-interactive": "", "data-marker-report-id": markerItem.report.id, "aria-label": isDetached ? `${resolvedDetachedAriaLabel} · ${markerLabel}` : markerLabel, "aria-hidden": isReportMode || undefined, tabIndex: isReportMode ? -1 : undefined, onClick: isReportMode
|
|
85
|
+
? undefined
|
|
86
|
+
: () => {
|
|
87
|
+
void onActivate(markerItem.report);
|
|
88
|
+
}, onPointerMove: isReportMode
|
|
89
|
+
? undefined
|
|
90
|
+
: (event) => {
|
|
91
|
+
onPointerMove(event.clientX, event.clientY);
|
|
92
|
+
}, className: `${MARKER_BUTTON_BASE_CLASS} relative border-0 bg-transparent p-0 shadow-none ${isReportMode ? "" : isDetached ? "opacity-75" : ""}`, style: {
|
|
93
|
+
pointerEvents: isReportMode ? "none" : "auto",
|
|
94
|
+
width: shapeStyle.width,
|
|
95
|
+
height: shapeStyle.height,
|
|
96
|
+
minWidth: shapeStyle.width,
|
|
97
|
+
minHeight: shapeStyle.height,
|
|
98
|
+
color: showMarkerLabel ? paint.labelColor : undefined,
|
|
99
|
+
fontSize: badgeDisplay.fontSizePx === undefined ? undefined : `${badgeDisplay.fontSizePx}px`,
|
|
100
|
+
fontWeight: badgeDisplay.fontWeight,
|
|
101
|
+
fontFamily: showMarkerLabel ? typography.fontFamily : undefined,
|
|
102
|
+
}, children: [_jsx("span", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: _jsx(MarkerShapeGlyph, { shape: glyphShape, fill: paint.fill, width: shapeStyle.width, height: shapeStyle.height, stroke: paint.stroke, strokeWidthPx: paint.strokeWidthPx }) }), _jsx("span", { className: "relative z-[1] flex items-center justify-center", children: showMarkerLabel ? badgeDisplay.content : null })] }, markerItem.id), showReplyIndicator ? (_jsx(MarkerReplyBadge, { size: replyBadgeSize, accentColor: markerColor })) : null] }) }) }));
|
|
95
103
|
}
|
|
96
104
|
export function ReportMarkersLayer() {
|
|
97
|
-
const { mode, markers,
|
|
105
|
+
const { mode, markers, activeReplyReport, activeReplyReportId, tooltipReport, tooltipAnchor, editingReportId, hoverPointer, setHoverPointer, messages, markerAppearance, typography, showHiddenDetachedMarkers, showModalDetachedMarkers, activateFeedbackMarker, clearHoverLeaveTimeout, scheduleHoverLeave, setHoveredMarkerId, } = useReport();
|
|
98
106
|
const handleMarkerHoverStart = useCallback((reportId) => {
|
|
99
107
|
clearHoverLeaveTimeout();
|
|
100
108
|
setHoveredMarkerId(reportId);
|
|
101
|
-
|
|
102
|
-
selectReport(reportId);
|
|
103
|
-
}
|
|
104
|
-
}, [clearHoverLeaveTimeout, editingReportId, selectReport, setHoveredMarkerId]);
|
|
109
|
+
}, [clearHoverLeaveTimeout, setHoveredMarkerId]);
|
|
105
110
|
const handleMarkerHoverEnd = useCallback((reportId) => {
|
|
106
111
|
setHoverPointer(null);
|
|
107
112
|
if (activeReplyReportId) {
|
|
@@ -114,8 +119,19 @@ export function ReportMarkersLayer() {
|
|
|
114
119
|
const isExpandedTooltip = Boolean(activeReplyReport && tooltipReport && activeReplyReport.id === tooltipReport.id);
|
|
115
120
|
const isViewMode = mode === "view";
|
|
116
121
|
const isReportMode = mode === "report";
|
|
117
|
-
const visibleMarkers = useMemo(() => markers.filter((marker) =>
|
|
118
|
-
|
|
122
|
+
const visibleMarkers = useMemo(() => markers.filter((marker) => {
|
|
123
|
+
if (marker.clampedEdge !== null) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
if (marker.detachedKind === "hidden" && !showHiddenDetachedMarkers) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
if (marker.detachedKind === "modal" && !showModalDetachedMarkers) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
return true;
|
|
133
|
+
}), [markers, showHiddenDetachedMarkers, showModalDetachedMarkers]);
|
|
134
|
+
const overflowHints = useMemo(() => resolveMarkerOverflowHints(visibleMarkers), [visibleMarkers]);
|
|
119
135
|
const proximityHighlightedMarkerId = useMemo(() => {
|
|
120
136
|
if (!isReportMode || !hoverPointer) {
|
|
121
137
|
return null;
|
|
@@ -136,8 +152,11 @@ export function ReportMarkersLayer() {
|
|
|
136
152
|
setHoveredMarkerId(proximityHighlightedMarkerId);
|
|
137
153
|
}
|
|
138
154
|
}, [isReportMode, proximityHighlightedMarkerId, setHoveredMarkerId]);
|
|
155
|
+
// Only show the modal ghost while the marker is actively hovered / reply-open.
|
|
156
|
+
// Do not key off selectedReport — list selection fallback would flash the
|
|
157
|
+
// silhouette whenever a modal-classified marker merely scrolled out of view.
|
|
139
158
|
const ghostFrameMarker = useMemo(() => {
|
|
140
|
-
const activeReportId = tooltipReport?.id
|
|
159
|
+
const activeReportId = tooltipReport?.id;
|
|
141
160
|
if (!activeReportId) {
|
|
142
161
|
return null;
|
|
143
162
|
}
|
|
@@ -146,7 +165,7 @@ export function ReportMarkersLayer() {
|
|
|
146
165
|
return null;
|
|
147
166
|
}
|
|
148
167
|
return marker;
|
|
149
|
-
}, [
|
|
168
|
+
}, [tooltipReport?.id, visibleMarkers]);
|
|
150
169
|
const getOverflowHintLabel = useCallback((hint) => {
|
|
151
170
|
switch (hint.edge) {
|
|
152
171
|
case "top":
|
|
@@ -172,7 +191,7 @@ export function ReportMarkersLayer() {
|
|
|
172
191
|
if (!isViewMode && !isReportMode) {
|
|
173
192
|
return null;
|
|
174
193
|
}
|
|
175
|
-
return (_jsxs(_Fragment, { children: [isViewMode && ghostFrameMarker ? _jsx(DetachedModalGhostFrame, {
|
|
194
|
+
return (_jsxs(_Fragment, { children: [isViewMode && ghostFrameMarker ? _jsx(DetachedModalGhostFrame, {}) : null, visibleMarkers.map((markerItem) => (_jsx(MarkerButton, { markerItem: markerItem, isHovered: isViewMode && tooltipReport?.id === markerItem.report.id && !isExpandedTooltip, isReportMode: isReportMode, isProximityHighlighted: markerItem.id === proximityHighlightedMarkerId, detachedAriaLabel: messages.marker.detachedAriaLabel, detachedModalAriaLabel: messages.marker.detachedModalAriaLabel, markerAppearance: markerAppearance, typography: typography, onActivate: activateFeedbackMarker, onHoverStart: () => handleMarkerHoverStart(markerItem.report.id), onHoverEnd: () => handleMarkerHoverEnd(markerItem.report.id), onPointerMove: (clientX, clientY) => setHoverPointer({ clientX, clientY }) }, markerItem.id))), isViewMode
|
|
176
195
|
? overflowHints.map((hint) => (_jsx(MarkerOverflowHintButton, { hint: hint, label: getOverflowHintLabel(hint), onActivate: handleOverflowHintActivate }, hint.id)))
|
|
177
196
|
: null, showTooltip && !isExpandedTooltip && tooltipReport && tooltipPosition && tooltipAnchorStyle ? (_jsx("div", { ref: bindHoverTooltipRef, className: `pointer-events-none ${TOOLTIP_FIXED_CLASS}`, style: {
|
|
178
197
|
left: tooltipPosition.left,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportMarkersLayer.js","sourceRoot":"","sources":["../../../src/components/point/ReportMarkersLayer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReportMarkersLayer.js","sourceRoot":"","sources":["../../../src/components/point/ReportMarkersLayer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportView.d.ts","sourceRoot":"","sources":["../../../src/components/report/ReportView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReportView.d.ts","sourceRoot":"","sources":["../../../src/components/report/ReportView.tsx"],"names":[],"mappings":"AAeA,wBAAgB,UAAU,gCAiEzB"}
|
|
@@ -1,23 +1,33 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useReportPreferences, useReportSession } from "../../providers/reportContext.js";
|
|
3
3
|
import { ReportOverlayLayer } from "../../components/overlay/ReportOverlayLayer.js";
|
|
4
|
+
import { DevicePreviewChrome } from "../../components/overlay/DevicePreviewChrome.js";
|
|
4
5
|
import { ReportControlPanel } from "../../components/panel/ReportControlPanel.js";
|
|
5
6
|
import { ReportDraftForm } from "../../components/panel/ReportDraftForm.js";
|
|
6
7
|
import { ReportDraftMarker } from "../../components/point/ReportDraftMarker.js";
|
|
7
8
|
import { ReportMarkersLayer } from "../../components/point/ReportMarkersLayer.js";
|
|
8
9
|
import { DotWaveOverlay } from "../../components/overlay/DotWaveOverlay.js";
|
|
9
10
|
import { FloatingPinRail } from "../../components/overlay/FloatingPinRail.js";
|
|
11
|
+
import { useOverlayChrome } from "../../hooks/useOverlayChrome.js";
|
|
10
12
|
import { ShadowReportRoot } from "./ShadowReportRoot.js";
|
|
11
13
|
import { ThemeScope } from "./ThemeScope.js";
|
|
12
14
|
const FEEDBACK_ERROR_DOT_COLOR = "#ef4444";
|
|
13
15
|
export function ReportView() {
|
|
14
|
-
const { showMarkerTargetPreview, resolvedPanelAppearance, resolvedTooltipAppearance, markerAppearance } = useReportPreferences();
|
|
15
|
-
const { mode, showTargetPreview, savedProbeEdits, draft, errorMessage } = useReportSession();
|
|
16
|
+
const { showMarkerTargetPreview, devicePreviewUiOpen, resolvedPanelAppearance, resolvedTooltipAppearance, markerAppearance, pinnedFeedbackItems, pinRailCollapsed, setPinRailCollapsed, } = useReportPreferences();
|
|
17
|
+
const { mode, showTargetPreview, savedProbeEdits, draft, errorMessage, panelCollapsed, setPanelCollapsed } = useReportSession();
|
|
16
18
|
const hasSavedProbeEdits = Object.keys(savedProbeEdits).length > 0;
|
|
17
19
|
const showOverlay = mode !== "idle" || showTargetPreview || showMarkerTargetPreview || hasSavedProbeEdits;
|
|
18
20
|
const feedbackModeDotColor = markerAppearance.feedbackModeDotColors[resolvedPanelAppearance];
|
|
19
21
|
const hasDraftContentError = mode === "report" && Boolean(draft) && Boolean(errorMessage);
|
|
20
22
|
const resolvedFeedbackModeDotColor = hasDraftContentError ? FEEDBACK_ERROR_DOT_COLOR : feedbackModeDotColor;
|
|
21
|
-
|
|
23
|
+
useOverlayChrome({
|
|
24
|
+
mode,
|
|
25
|
+
panelCollapsed,
|
|
26
|
+
setPanelCollapsed,
|
|
27
|
+
pinRailCollapsed,
|
|
28
|
+
setPinRailCollapsed,
|
|
29
|
+
hasPins: pinnedFeedbackItems.length > 0,
|
|
30
|
+
});
|
|
31
|
+
return (_jsxs(ShadowReportRoot, { panelAppearance: resolvedPanelAppearance, children: [_jsx(ThemeScope, { appearance: resolvedPanelAppearance, className: "pointer-events-none fixed inset-0 z-[999998]", children: _jsx(DotWaveOverlay, { active: mode === "report", color: resolvedFeedbackModeDotColor }) }), _jsxs(ThemeScope, { appearance: resolvedPanelAppearance, children: [_jsx(ReportControlPanel, {}), _jsx(FloatingPinRail, {})] }), devicePreviewUiOpen ? (_jsx(ThemeScope, { appearance: resolvedPanelAppearance, children: _jsx(DevicePreviewChrome, {}) })) : null, showOverlay ? (_jsx(ThemeScope, { appearance: resolvedTooltipAppearance, children: _jsx(ReportOverlayLayer, { children: mode !== "idle" ? (_jsxs(_Fragment, { children: [_jsx(ReportMarkersLayer, {}), _jsx(ReportDraftMarker, {}), _jsx(ReportDraftForm, {})] })) : null }) })) : null] }));
|
|
22
32
|
}
|
|
23
33
|
//# sourceMappingURL=ReportView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportView.js","sourceRoot":"","sources":["../../../src/components/report/ReportView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAE3C,MAAM,UAAU,UAAU;IACtB,MAAM,
|
|
1
|
+
{"version":3,"file":"ReportView.js","sourceRoot":"","sources":["../../../src/components/report/ReportView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
import { type WindowPosition } from "../../hooks/useDraggableWindow.js";
|
|
3
|
+
import { type BoxSize } from "../../hooks/useGhostCornerResize.js";
|
|
4
|
+
export type FloatingWindowMode = "normal" | "minimized" | "maximized";
|
|
5
|
+
export type FloatingWindowControls = {
|
|
6
|
+
onClose?: () => void;
|
|
7
|
+
closeAriaLabel?: string;
|
|
8
|
+
minimizeAriaLabel?: string;
|
|
9
|
+
maximizeAriaLabel?: string;
|
|
10
|
+
restoreAriaLabel?: string;
|
|
11
|
+
closeDisabled?: boolean;
|
|
12
|
+
minimizeDisabled?: boolean;
|
|
13
|
+
maximizeDisabled?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export type FloatingWindowProps = {
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
title?: ReactNode;
|
|
18
|
+
headerRight?: ReactNode;
|
|
19
|
+
controls?: FloatingWindowControls;
|
|
20
|
+
showControls?: boolean;
|
|
21
|
+
mode?: FloatingWindowMode;
|
|
22
|
+
defaultMode?: FloatingWindowMode;
|
|
23
|
+
onModeChange?: (mode: FloatingWindowMode) => void;
|
|
24
|
+
className?: string;
|
|
25
|
+
contentClassName?: string;
|
|
26
|
+
headerClassName?: string;
|
|
27
|
+
style?: CSSProperties;
|
|
28
|
+
/** Preferred width in normal mode. */
|
|
29
|
+
width?: number | string;
|
|
30
|
+
/** Preferred height in normal mode. Omit for content-sized height until resized. */
|
|
31
|
+
height?: number | string;
|
|
32
|
+
minWidth?: number;
|
|
33
|
+
minHeight?: number;
|
|
34
|
+
resizable?: boolean;
|
|
35
|
+
resizeAriaLabel?: string;
|
|
36
|
+
zIndex?: number;
|
|
37
|
+
enabled?: boolean;
|
|
38
|
+
position: WindowPosition;
|
|
39
|
+
onPositionChange?: (position: WindowPosition) => void;
|
|
40
|
+
onSizeChange?: (size: BoxSize) => void;
|
|
41
|
+
ariaLabel?: string;
|
|
42
|
+
dataChrome?: string;
|
|
43
|
+
role?: string;
|
|
44
|
+
};
|
|
45
|
+
export declare function FloatingWindow({ children, title, headerRight, controls, showControls, mode: modeProp, defaultMode, onModeChange, className, contentClassName, headerClassName, style, width, height, minWidth, minHeight, resizable, resizeAriaLabel, zIndex, enabled, position, onPositionChange, onSizeChange, ariaLabel, dataChrome, role, }: FloatingWindowProps): import("react").JSX.Element;
|
|
46
|
+
//# sourceMappingURL=FloatingWindow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingWindow.d.ts","sourceRoot":"","sources":["../../../src/components/ui/FloatingWindow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqD,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9G,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7G,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAUrF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AA0CtE,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC3B,QAAQ,EACR,KAAK,EACL,WAAW,EACX,QAAQ,EACR,YAAmB,EACnB,IAAI,EAAE,QAAQ,EACd,WAAsB,EACtB,YAAY,EACZ,SAAc,EACd,gBAAqB,EACrB,eAAoB,EACpB,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAA4B,EAC5B,SAA8B,EAC9B,SAAgB,EAChB,eAAiC,EACjC,MAAM,EACN,OAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,IAAI,GACP,EAAE,mBAAmB,+BA6PrB"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { CornerResizeGhost } from "../../components/ui/CornerResizeGhost.js";
|
|
4
|
+
import { CornerResizeHandle } from "../../components/ui/CornerResizeHandle.js";
|
|
5
|
+
import { clampWindowPosition, useDraggableWindow } from "../../hooks/useDraggableWindow.js";
|
|
6
|
+
import { useGhostCornerResize } from "../../hooks/useGhostCornerResize.js";
|
|
7
|
+
import { claimFloatingWindowZIndex, getFloatingWindowZBase } from "../../utils/overlay/floatingWindowStack.js";
|
|
8
|
+
const TRAFFIC_LIGHT_BASE = "h-[12px] w-[12px] shrink-0 rounded-full border border-black/10 transition-[filter,transform] duration-150 hover:brightness-95 active:scale-[0.96]";
|
|
9
|
+
const MAXIMIZE_MARGIN = 12;
|
|
10
|
+
const DEFAULT_MIN_WIDTH = 200;
|
|
11
|
+
const DEFAULT_MIN_HEIGHT = 120;
|
|
12
|
+
function TrafficLightButton({ colorClassName, ariaLabel, disabled, onClick }) {
|
|
13
|
+
return (_jsx("button", { type: "button", "data-fivepixels-interactive": "", disabled: disabled || !onClick, onPointerDown: (event) => event.stopPropagation(), onClick: onClick, "aria-label": ariaLabel, className: `${TRAFFIC_LIGHT_BASE} ${colorClassName} ${disabled || !onClick ? "opacity-40" : "cursor-pointer"}` }));
|
|
14
|
+
}
|
|
15
|
+
function getViewportSize() {
|
|
16
|
+
if (typeof window === "undefined") {
|
|
17
|
+
return { width: 1280, height: 720 };
|
|
18
|
+
}
|
|
19
|
+
return { width: window.innerWidth, height: window.innerHeight };
|
|
20
|
+
}
|
|
21
|
+
function getMaximizedFrame() {
|
|
22
|
+
const viewport = getViewportSize();
|
|
23
|
+
return {
|
|
24
|
+
left: MAXIMIZE_MARGIN,
|
|
25
|
+
top: MAXIMIZE_MARGIN,
|
|
26
|
+
width: Math.max(DEFAULT_MIN_WIDTH, viewport.width - MAXIMIZE_MARGIN * 2),
|
|
27
|
+
height: Math.max(DEFAULT_MIN_HEIGHT, viewport.height - MAXIMIZE_MARGIN * 2),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function FloatingWindow({ children, title, headerRight, controls, showControls = true, mode: modeProp, defaultMode = "normal", onModeChange, className = "", contentClassName = "", headerClassName = "", style, width, height, minWidth = DEFAULT_MIN_WIDTH, minHeight = DEFAULT_MIN_HEIGHT, resizable = true, resizeAriaLabel = "Resize window", zIndex, enabled = true, position, onPositionChange, onSizeChange, ariaLabel, dataChrome, role, }) {
|
|
31
|
+
const windowRef = useRef(null);
|
|
32
|
+
const wasDraggingRef = useRef(false);
|
|
33
|
+
const restoreFrameRef = useRef(null);
|
|
34
|
+
const [stackZIndex, setStackZIndex] = useState(() => zIndex ?? claimFloatingWindowZIndex(getFloatingWindowZBase()));
|
|
35
|
+
const [uncontrolledMode, setUncontrolledMode] = useState(defaultMode);
|
|
36
|
+
const mode = modeProp ?? uncontrolledMode;
|
|
37
|
+
const isMinimized = mode === "minimized";
|
|
38
|
+
const isMaximized = mode === "maximized";
|
|
39
|
+
const bringToFront = useCallback(() => {
|
|
40
|
+
setStackZIndex(claimFloatingWindowZIndex(zIndex ?? getFloatingWindowZBase()));
|
|
41
|
+
}, [zIndex]);
|
|
42
|
+
const handleWindowPointerDown = useCallback(() => {
|
|
43
|
+
bringToFront();
|
|
44
|
+
}, [bringToFront]);
|
|
45
|
+
const numericDefaultWidth = typeof width === "number" ? width : minWidth;
|
|
46
|
+
const numericDefaultHeight = typeof height === "number" ? height : null;
|
|
47
|
+
const [normalSize, setNormalSize] = useState(() => ({
|
|
48
|
+
width: numericDefaultWidth,
|
|
49
|
+
height: numericDefaultHeight ?? minHeight,
|
|
50
|
+
}));
|
|
51
|
+
const [hasExplicitHeight, setHasExplicitHeight] = useState(numericDefaultHeight !== null);
|
|
52
|
+
const setMode = useCallback((next) => {
|
|
53
|
+
if (modeProp === undefined) {
|
|
54
|
+
setUncontrolledMode(next);
|
|
55
|
+
}
|
|
56
|
+
onModeChange?.(next);
|
|
57
|
+
}, [modeProp, onModeChange]);
|
|
58
|
+
const { position: dragPosition, isDragging, handleDragHandlePointerDown, setPosition: setDragPosition } = useDraggableWindow({
|
|
59
|
+
enabled: enabled && !isMaximized,
|
|
60
|
+
windowRef,
|
|
61
|
+
});
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (isDragging) {
|
|
64
|
+
bringToFront();
|
|
65
|
+
}
|
|
66
|
+
}, [bringToFront, isDragging]);
|
|
67
|
+
const clampSize = useCallback((nextWidth, nextHeight) => {
|
|
68
|
+
const viewport = getViewportSize();
|
|
69
|
+
return {
|
|
70
|
+
width: Math.min(Math.max(nextWidth, minWidth), Math.max(minWidth, viewport.width - MAXIMIZE_MARGIN * 2)),
|
|
71
|
+
height: Math.min(Math.max(nextHeight, minHeight), Math.max(minHeight, viewport.height - MAXIMIZE_MARGIN * 2)),
|
|
72
|
+
};
|
|
73
|
+
}, [minHeight, minWidth]);
|
|
74
|
+
const { isResizing, ghostRef, handleResizePointerDown } = useGhostCornerResize({
|
|
75
|
+
enabled: enabled && resizable && mode === "normal",
|
|
76
|
+
targetRef: windowRef,
|
|
77
|
+
handleCorner: "bottom-right",
|
|
78
|
+
clampSize,
|
|
79
|
+
onResizeComplete: (size) => {
|
|
80
|
+
setNormalSize(size);
|
|
81
|
+
setHasExplicitHeight(true);
|
|
82
|
+
onSizeChange?.(size);
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
const resolvedPosition = useMemo(() => {
|
|
86
|
+
if (isMaximized) {
|
|
87
|
+
return getMaximizedFrame();
|
|
88
|
+
}
|
|
89
|
+
return dragPosition ?? position;
|
|
90
|
+
}, [dragPosition, isMaximized, position]);
|
|
91
|
+
const resolvedSizeStyle = useMemo(() => {
|
|
92
|
+
if (isMaximized) {
|
|
93
|
+
const frame = getMaximizedFrame();
|
|
94
|
+
return { width: frame.width, height: frame.height };
|
|
95
|
+
}
|
|
96
|
+
if (isMinimized) {
|
|
97
|
+
return {
|
|
98
|
+
width: typeof width === "number" || typeof width === "string" ? width : normalSize.width,
|
|
99
|
+
height: undefined,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
width: typeof width === "string" && !hasExplicitHeight ? width : normalSize.width,
|
|
104
|
+
height: hasExplicitHeight ? normalSize.height : typeof height === "number" || typeof height === "string" ? height : undefined,
|
|
105
|
+
};
|
|
106
|
+
}, [hasExplicitHeight, height, isMaximized, isMinimized, normalSize.height, normalSize.width, width]);
|
|
107
|
+
useEffect(() => {
|
|
108
|
+
if (wasDraggingRef.current && !isDragging && dragPosition) {
|
|
109
|
+
onPositionChange?.(dragPosition);
|
|
110
|
+
}
|
|
111
|
+
wasDraggingRef.current = isDragging;
|
|
112
|
+
}, [dragPosition, isDragging, onPositionChange]);
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
if (typeof width === "number") {
|
|
115
|
+
setNormalSize((current) => (current.width === width ? current : { ...current, width }));
|
|
116
|
+
}
|
|
117
|
+
}, [width]);
|
|
118
|
+
useEffect(() => {
|
|
119
|
+
if (typeof height === "number") {
|
|
120
|
+
setHasExplicitHeight(true);
|
|
121
|
+
setNormalSize((current) => (current.height === height ? current : { ...current, height }));
|
|
122
|
+
}
|
|
123
|
+
}, [height]);
|
|
124
|
+
const captureRestoreFrame = useCallback(() => {
|
|
125
|
+
const node = windowRef.current;
|
|
126
|
+
const rect = node?.getBoundingClientRect();
|
|
127
|
+
restoreFrameRef.current = {
|
|
128
|
+
left: rect?.left ?? resolvedPosition.left,
|
|
129
|
+
top: rect?.top ?? resolvedPosition.top,
|
|
130
|
+
width: rect?.width ?? normalSize.width,
|
|
131
|
+
height: rect?.height ?? (hasExplicitHeight ? normalSize.height : Math.max(minHeight, rect?.height ?? minHeight)),
|
|
132
|
+
};
|
|
133
|
+
}, [hasExplicitHeight, minHeight, normalSize.height, normalSize.width, resolvedPosition.left, resolvedPosition.top]);
|
|
134
|
+
const handleClose = useCallback(() => {
|
|
135
|
+
controls?.onClose?.();
|
|
136
|
+
}, [controls]);
|
|
137
|
+
const handleMinimize = useCallback(() => {
|
|
138
|
+
if (isMinimized) {
|
|
139
|
+
setMode("normal");
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (isMaximized) {
|
|
143
|
+
captureRestoreFrame();
|
|
144
|
+
}
|
|
145
|
+
setMode("minimized");
|
|
146
|
+
}, [captureRestoreFrame, isMaximized, isMinimized, setMode]);
|
|
147
|
+
const handleMaximize = useCallback(() => {
|
|
148
|
+
if (isMaximized) {
|
|
149
|
+
const restore = restoreFrameRef.current;
|
|
150
|
+
if (restore) {
|
|
151
|
+
setNormalSize({ width: restore.width, height: restore.height });
|
|
152
|
+
setHasExplicitHeight(true);
|
|
153
|
+
onPositionChange?.(clampWindowPosition(restore.left, restore.top, restore.width, restore.height));
|
|
154
|
+
setDragPosition(clampWindowPosition(restore.left, restore.top, restore.width, restore.height));
|
|
155
|
+
}
|
|
156
|
+
setMode("normal");
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
captureRestoreFrame();
|
|
160
|
+
setMode("maximized");
|
|
161
|
+
}, [captureRestoreFrame, isMaximized, onPositionChange, setDragPosition, setMode]);
|
|
162
|
+
const handleHeaderDoubleClick = useCallback(() => {
|
|
163
|
+
if (controls?.maximizeDisabled) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
handleMaximize();
|
|
167
|
+
}, [controls?.maximizeDisabled, handleMaximize]);
|
|
168
|
+
const minimizeAriaLabel = isMinimized
|
|
169
|
+
? (controls?.restoreAriaLabel ?? controls?.minimizeAriaLabel ?? "Restore")
|
|
170
|
+
: (controls?.minimizeAriaLabel ?? "Minimize");
|
|
171
|
+
const maximizeAriaLabel = isMaximized
|
|
172
|
+
? (controls?.restoreAriaLabel ?? controls?.maximizeAriaLabel ?? "Restore")
|
|
173
|
+
: (controls?.maximizeAriaLabel ?? "Maximize");
|
|
174
|
+
return (_jsxs(_Fragment, { children: [isResizing ? _jsx(CornerResizeGhost, { ghostRef: ghostRef }) : null, _jsxs("div", { ref: windowRef, "data-fivepixels-interactive": "", "data-fp-chrome": dataChrome, "data-dragging": isDragging ? "true" : "false", "data-mode": mode, role: role, "aria-label": ariaLabel, onPointerDown: handleWindowPointerDown, className: `pointer-events-auto fixed flex flex-col overflow-hidden rounded-[16px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-black50)]/95 shadow-[var(--adaptive-popup-shadow)] backdrop-blur-[10px] ${className}`, style: {
|
|
175
|
+
left: resolvedPosition.left,
|
|
176
|
+
top: resolvedPosition.top,
|
|
177
|
+
zIndex: stackZIndex,
|
|
178
|
+
width: resolvedSizeStyle.width,
|
|
179
|
+
height: resolvedSizeStyle.height,
|
|
180
|
+
...style,
|
|
181
|
+
}, children: [_jsxs("header", { onPointerDown: handleDragHandlePointerDown, onDoubleClick: handleHeaderDoubleClick, className: `flex shrink-0 cursor-grab touch-none select-none items-center gap-[10px] border-b border-[var(--adaptive-border-subtle)] px-[12px] py-[8px] active:cursor-grabbing ${isMinimized ? "border-b-0" : ""} ${headerClassName}`, children: [showControls ? (_jsxs("div", { className: "flex shrink-0 items-center gap-[6px]", children: [_jsx(TrafficLightButton, { colorClassName: "bg-[#FF5F57]", ariaLabel: controls?.closeAriaLabel ?? "Close", disabled: controls?.closeDisabled, onClick: handleClose }), _jsx(TrafficLightButton, { colorClassName: "bg-[#FEBC2E]", ariaLabel: minimizeAriaLabel, disabled: controls?.minimizeDisabled, onClick: handleMinimize }), _jsx(TrafficLightButton, { colorClassName: "bg-[#28C840]", ariaLabel: maximizeAriaLabel, disabled: controls?.maximizeDisabled, onClick: handleMaximize })] })) : null, title ? _jsx("div", { className: "min-w-0 flex-1", children: title }) : _jsx("div", { className: "min-w-0 flex-1" }), headerRight ? _jsx("div", { className: "flex shrink-0 items-center gap-[6px]", children: headerRight }) : null] }), !isMinimized && children ? _jsx("div", { className: `min-h-0 min-w-0 flex-1 overflow-auto ${contentClassName}`, children: children }) : null, resizable && mode === "normal" ? (_jsx(CornerResizeHandle, { corner: "bottom-right", ariaLabel: resizeAriaLabel, onPointerDown: handleResizePointerDown })) : null] })] }));
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=FloatingWindow.js.map
|