@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.
Files changed (311) hide show
  1. package/THIRD_PARTY_NOTICES.md +29 -0
  2. package/dist/components/icons/Icons.d.ts +9 -0
  3. package/dist/components/icons/Icons.d.ts.map +1 -1
  4. package/dist/components/icons/Icons.js +12 -0
  5. package/dist/components/icons/Icons.js.map +1 -1
  6. package/dist/components/overlay/DeviceFrameArtwork.d.ts +10 -0
  7. package/dist/components/overlay/DeviceFrameArtwork.d.ts.map +1 -0
  8. package/dist/components/overlay/DeviceFrameArtwork.js +112 -0
  9. package/dist/components/overlay/DeviceFrameArtwork.js.map +1 -0
  10. package/dist/components/overlay/DevicePreviewChrome.d.ts +2 -0
  11. package/dist/components/overlay/DevicePreviewChrome.d.ts.map +1 -0
  12. package/dist/components/overlay/DevicePreviewChrome.js +523 -0
  13. package/dist/components/overlay/DevicePreviewChrome.js.map +1 -0
  14. package/dist/components/overlay/DevicePreviewQrCard.d.ts +18 -0
  15. package/dist/components/overlay/DevicePreviewQrCard.d.ts.map +1 -0
  16. package/dist/components/overlay/DevicePreviewQrCard.js +94 -0
  17. package/dist/components/overlay/DevicePreviewQrCard.js.map +1 -0
  18. package/dist/components/overlay/DeviceStatusBar.d.ts +13 -0
  19. package/dist/components/overlay/DeviceStatusBar.d.ts.map +1 -0
  20. package/dist/components/overlay/DeviceStatusBar.js +168 -0
  21. package/dist/components/overlay/DeviceStatusBar.js.map +1 -0
  22. package/dist/components/overlay/DotWaveOverlay.d.ts.map +1 -1
  23. package/dist/components/overlay/DotWaveOverlay.js +3 -1
  24. package/dist/components/overlay/DotWaveOverlay.js.map +1 -1
  25. package/dist/components/overlay/FloatingPinRail.d.ts.map +1 -1
  26. package/dist/components/overlay/FloatingPinRail.js +47 -27
  27. package/dist/components/overlay/FloatingPinRail.js.map +1 -1
  28. package/dist/components/overlay/PickTargetContextMenu.js +1 -1
  29. package/dist/components/overlay/PickTargetContextMenu.js.map +1 -1
  30. package/dist/components/overlay/PickTargetHoverTooltip.d.ts.map +1 -1
  31. package/dist/components/overlay/PickTargetHoverTooltip.js +5 -2
  32. package/dist/components/overlay/PickTargetHoverTooltip.js.map +1 -1
  33. package/dist/components/panel/AppearanceThemePicker.d.ts +3 -1
  34. package/dist/components/panel/AppearanceThemePicker.d.ts.map +1 -1
  35. package/dist/components/panel/AppearanceThemePicker.js +7 -6
  36. package/dist/components/panel/AppearanceThemePicker.js.map +1 -1
  37. package/dist/components/panel/DiscreteScaleDial.d.ts.map +1 -1
  38. package/dist/components/panel/DiscreteScaleDial.js +7 -11
  39. package/dist/components/panel/DiscreteScaleDial.js.map +1 -1
  40. package/dist/components/panel/MarkerShapePicker.d.ts +4 -2
  41. package/dist/components/panel/MarkerShapePicker.d.ts.map +1 -1
  42. package/dist/components/panel/MarkerShapePicker.js +10 -13
  43. package/dist/components/panel/MarkerShapePicker.js.map +1 -1
  44. package/dist/components/panel/MarkerSizePreview.d.ts +4 -2
  45. package/dist/components/panel/MarkerSizePreview.d.ts.map +1 -1
  46. package/dist/components/panel/MarkerSizePreview.js +19 -21
  47. package/dist/components/panel/MarkerSizePreview.js.map +1 -1
  48. package/dist/components/panel/PanelAutoRefreshControl.js +1 -1
  49. package/dist/components/panel/PanelAutoRefreshControl.js.map +1 -1
  50. package/dist/components/panel/PanelDropdownMenu.js +1 -1
  51. package/dist/components/panel/PanelDropdownMenu.js.map +1 -1
  52. package/dist/components/panel/PanelKeyGate.d.ts.map +1 -1
  53. package/dist/components/panel/PanelKeyGate.js +7 -2
  54. package/dist/components/panel/PanelKeyGate.js.map +1 -1
  55. package/dist/components/panel/PanelMarkerDisplayControls.d.ts +3 -8
  56. package/dist/components/panel/PanelMarkerDisplayControls.d.ts.map +1 -1
  57. package/dist/components/panel/PanelMarkerDisplayControls.js +4 -4
  58. package/dist/components/panel/PanelMarkerDisplayControls.js.map +1 -1
  59. package/dist/components/panel/PanelOnboarding.d.ts.map +1 -1
  60. package/dist/components/panel/PanelOnboarding.js +26 -5
  61. package/dist/components/panel/PanelOnboarding.js.map +1 -1
  62. package/dist/components/panel/PanelProjectFooter.js +1 -1
  63. package/dist/components/panel/PanelProjectFooter.js.map +1 -1
  64. package/dist/components/panel/PanelRoleSwitch.js +1 -1
  65. package/dist/components/panel/PanelRoleSwitch.js.map +1 -1
  66. package/dist/components/panel/PanelSettings.d.ts.map +1 -1
  67. package/dist/components/panel/PanelSettings.js +54 -11
  68. package/dist/components/panel/PanelSettings.js.map +1 -1
  69. package/dist/components/panel/PanelStatusBanner.d.ts +26 -0
  70. package/dist/components/panel/PanelStatusBanner.d.ts.map +1 -0
  71. package/dist/components/panel/PanelStatusBanner.js +11 -0
  72. package/dist/components/panel/PanelStatusBanner.js.map +1 -0
  73. package/dist/components/panel/PanelStatusBannerStack.d.ts +5 -0
  74. package/dist/components/panel/PanelStatusBannerStack.d.ts.map +1 -0
  75. package/dist/components/panel/PanelStatusBannerStack.js +129 -0
  76. package/dist/components/panel/PanelStatusBannerStack.js.map +1 -0
  77. package/dist/components/panel/ReportControlPanel.d.ts.map +1 -1
  78. package/dist/components/panel/ReportControlPanel.js +8 -8
  79. package/dist/components/panel/ReportControlPanel.js.map +1 -1
  80. package/dist/components/panel/ReportDraftForm.js +2 -2
  81. package/dist/components/panel/ReportDraftForm.js.map +1 -1
  82. package/dist/components/panel/ReportFeedbackList.js +2 -2
  83. package/dist/components/panel/ReportFeedbackList.js.map +1 -1
  84. package/dist/components/panel/ThemePreviewSkeleton.d.ts +3 -1
  85. package/dist/components/panel/ThemePreviewSkeleton.d.ts.map +1 -1
  86. package/dist/components/panel/ThemePreviewSkeleton.js +60 -18
  87. package/dist/components/panel/ThemePreviewSkeleton.js.map +1 -1
  88. package/dist/components/panel/feedback/CaseAssigneeInfo.d.ts.map +1 -1
  89. package/dist/components/panel/feedback/CaseAssigneeInfo.js +1 -1
  90. package/dist/components/panel/feedback/CaseAssigneeInfo.js.map +1 -1
  91. package/dist/components/panel/feedback/DraftComposerToolbar.js +1 -1
  92. package/dist/components/panel/feedback/DraftComposerToolbar.js.map +1 -1
  93. package/dist/components/panel/feedback/FeedbackComposer.d.ts +2 -1
  94. package/dist/components/panel/feedback/FeedbackComposer.d.ts.map +1 -1
  95. package/dist/components/panel/feedback/FeedbackComposer.js +7 -6
  96. package/dist/components/panel/feedback/FeedbackComposer.js.map +1 -1
  97. package/dist/components/panel/feedback/FeedbackHoverCard.d.ts.map +1 -1
  98. package/dist/components/panel/feedback/FeedbackHoverCard.js +18 -9
  99. package/dist/components/panel/feedback/FeedbackHoverCard.js.map +1 -1
  100. package/dist/components/panel/feedback/FeedbackThread.d.ts.map +1 -1
  101. package/dist/components/panel/feedback/FeedbackThread.js +9 -9
  102. package/dist/components/panel/feedback/FeedbackThread.js.map +1 -1
  103. package/dist/components/panel/feedback/MentionComposerInput.d.ts.map +1 -1
  104. package/dist/components/panel/feedback/MentionComposerInput.js +1 -1
  105. package/dist/components/panel/feedback/MentionComposerInput.js.map +1 -1
  106. package/dist/components/panel/feedback/QuestionThreadGroup.d.ts +3 -2
  107. package/dist/components/panel/feedback/QuestionThreadGroup.d.ts.map +1 -1
  108. package/dist/components/panel/feedback/QuestionThreadGroup.js +2 -2
  109. package/dist/components/panel/feedback/QuestionThreadGroup.js.map +1 -1
  110. package/dist/components/panel/feedback/ThreadAuthorMeta.d.ts +5 -1
  111. package/dist/components/panel/feedback/ThreadAuthorMeta.d.ts.map +1 -1
  112. package/dist/components/panel/feedback/ThreadAuthorMeta.js +4 -2
  113. package/dist/components/panel/feedback/ThreadAuthorMeta.js.map +1 -1
  114. package/dist/components/panel/feedback/ThreadChildReply.d.ts +3 -2
  115. package/dist/components/panel/feedback/ThreadChildReply.d.ts.map +1 -1
  116. package/dist/components/panel/feedback/ThreadChildReply.js +2 -2
  117. package/dist/components/panel/feedback/ThreadChildReply.js.map +1 -1
  118. package/dist/components/point/MarkerCaseSidebar.d.ts.map +1 -1
  119. package/dist/components/point/MarkerCaseSidebar.js +8 -5
  120. package/dist/components/point/MarkerCaseSidebar.js.map +1 -1
  121. package/dist/components/point/MarkerFeedbackWindow.d.ts.map +1 -1
  122. package/dist/components/point/MarkerFeedbackWindow.js +13 -5
  123. package/dist/components/point/MarkerFeedbackWindow.js.map +1 -1
  124. package/dist/components/point/MarkerReplyBadge.d.ts +9 -0
  125. package/dist/components/point/MarkerReplyBadge.d.ts.map +1 -0
  126. package/dist/components/point/MarkerReplyBadge.js +14 -0
  127. package/dist/components/point/MarkerReplyBadge.js.map +1 -0
  128. package/dist/components/point/MarkerShapeGlyph.d.ts +20 -0
  129. package/dist/components/point/MarkerShapeGlyph.d.ts.map +1 -0
  130. package/dist/components/point/MarkerShapeGlyph.js +17 -0
  131. package/dist/components/point/MarkerShapeGlyph.js.map +1 -0
  132. package/dist/components/point/ReportDraftMarker.d.ts.map +1 -1
  133. package/dist/components/point/ReportDraftMarker.js +8 -3
  134. package/dist/components/point/ReportDraftMarker.js.map +1 -1
  135. package/dist/components/point/ReportMarkersLayer.d.ts.map +1 -1
  136. package/dist/components/point/ReportMarkersLayer.js +67 -48
  137. package/dist/components/point/ReportMarkersLayer.js.map +1 -1
  138. package/dist/components/report/ReportView.d.ts.map +1 -1
  139. package/dist/components/report/ReportView.js +13 -3
  140. package/dist/components/report/ReportView.js.map +1 -1
  141. package/dist/components/ui/FloatingWindow.d.ts +46 -0
  142. package/dist/components/ui/FloatingWindow.d.ts.map +1 -0
  143. package/dist/components/ui/FloatingWindow.js +183 -0
  144. package/dist/components/ui/FloatingWindow.js.map +1 -0
  145. package/dist/components/ui/IconTooltipButton.js +1 -1
  146. package/dist/components/ui/IconTooltipButton.js.map +1 -1
  147. package/dist/constants/accentColors.d.ts +32 -0
  148. package/dist/constants/accentColors.d.ts.map +1 -0
  149. package/dist/constants/accentColors.js +32 -0
  150. package/dist/constants/accentColors.js.map +1 -0
  151. package/dist/constants/appearance.d.ts +1 -1
  152. package/dist/constants/appearance.js +2 -2
  153. package/dist/constants/appearance.js.map +1 -1
  154. package/dist/constants/devicePreview.d.ts +137 -0
  155. package/dist/constants/devicePreview.d.ts.map +1 -0
  156. package/dist/constants/devicePreview.js +501 -0
  157. package/dist/constants/devicePreview.js.map +1 -0
  158. package/dist/constants/feedbackStatus.d.ts.map +1 -1
  159. package/dist/constants/feedbackStatus.js +8 -7
  160. package/dist/constants/feedbackStatus.js.map +1 -1
  161. package/dist/constants/markerAppearance.d.ts +24 -9
  162. package/dist/constants/markerAppearance.d.ts.map +1 -1
  163. package/dist/constants/markerAppearance.js +67 -16
  164. package/dist/constants/markerAppearance.js.map +1 -1
  165. package/dist/constants/markerShapePaths.d.ts +64 -0
  166. package/dist/constants/markerShapePaths.d.ts.map +1 -0
  167. package/dist/constants/markerShapePaths.js +63 -0
  168. package/dist/constants/markerShapePaths.js.map +1 -0
  169. package/dist/constants/markerShapeRegistry.d.ts +18 -0
  170. package/dist/constants/markerShapeRegistry.d.ts.map +1 -0
  171. package/dist/constants/markerShapeRegistry.js +35 -0
  172. package/dist/constants/markerShapeRegistry.js.map +1 -0
  173. package/dist/constants/motionClasses.d.ts +2 -0
  174. package/dist/constants/motionClasses.d.ts.map +1 -1
  175. package/dist/constants/motionClasses.js +2 -0
  176. package/dist/constants/motionClasses.js.map +1 -1
  177. package/dist/constants/overlayChrome.d.ts +13 -0
  178. package/dist/constants/overlayChrome.d.ts.map +1 -0
  179. package/dist/constants/overlayChrome.js +13 -0
  180. package/dist/constants/overlayChrome.js.map +1 -0
  181. package/dist/constants/report.d.ts +1 -1
  182. package/dist/constants/report.d.ts.map +1 -1
  183. package/dist/constants/report.js +3 -1
  184. package/dist/constants/report.js.map +1 -1
  185. package/dist/hooks/report/assembleReportContextValue.d.ts +21 -0
  186. package/dist/hooks/report/assembleReportContextValue.d.ts.map +1 -1
  187. package/dist/hooks/report/assembleReportContextValue.js +21 -0
  188. package/dist/hooks/report/assembleReportContextValue.js.map +1 -1
  189. package/dist/hooks/report/useReportMarkers.d.ts.map +1 -1
  190. package/dist/hooks/report/useReportMarkers.js +7 -1
  191. package/dist/hooks/report/useReportMarkers.js.map +1 -1
  192. package/dist/hooks/report/useReportPanelShell.d.ts +20 -0
  193. package/dist/hooks/report/useReportPanelShell.d.ts.map +1 -1
  194. package/dist/hooks/report/useReportPanelShell.js +31 -12
  195. package/dist/hooks/report/useReportPanelShell.js.map +1 -1
  196. package/dist/hooks/report/useReportState.d.ts +21 -0
  197. package/dist/hooks/report/useReportState.d.ts.map +1 -1
  198. package/dist/hooks/useDetachedMarkerVisibilityPreference.d.ts +8 -0
  199. package/dist/hooks/useDetachedMarkerVisibilityPreference.d.ts.map +1 -0
  200. package/dist/hooks/useDetachedMarkerVisibilityPreference.js +49 -0
  201. package/dist/hooks/useDetachedMarkerVisibilityPreference.js.map +1 -0
  202. package/dist/hooks/useDevicePreviewPreference.d.ts +17 -0
  203. package/dist/hooks/useDevicePreviewPreference.d.ts.map +1 -0
  204. package/dist/hooks/useDevicePreviewPreference.js +123 -0
  205. package/dist/hooks/useDevicePreviewPreference.js.map +1 -0
  206. package/dist/hooks/useMarkerAppearancePreference.d.ts +2 -1
  207. package/dist/hooks/useMarkerAppearancePreference.d.ts.map +1 -1
  208. package/dist/hooks/useMarkerAppearancePreference.js +9 -1
  209. package/dist/hooks/useMarkerAppearancePreference.js.map +1 -1
  210. package/dist/hooks/useNativeHover.d.ts.map +1 -1
  211. package/dist/hooks/useNativeHover.js +18 -6
  212. package/dist/hooks/useNativeHover.js.map +1 -1
  213. package/dist/hooks/useOverlayChrome.d.ts +16 -0
  214. package/dist/hooks/useOverlayChrome.d.ts.map +1 -0
  215. package/dist/hooks/useOverlayChrome.js +131 -0
  216. package/dist/hooks/useOverlayChrome.js.map +1 -0
  217. package/dist/hooks/usePanelDock.d.ts +2 -0
  218. package/dist/hooks/usePanelDock.d.ts.map +1 -1
  219. package/dist/hooks/usePanelDock.js +22 -0
  220. package/dist/hooks/usePanelDock.js.map +1 -1
  221. package/dist/hooks/usePinnedFeedbackPreference.d.ts +3 -1
  222. package/dist/hooks/usePinnedFeedbackPreference.d.ts.map +1 -1
  223. package/dist/hooks/usePinnedFeedbackPreference.js +11 -1
  224. package/dist/hooks/usePinnedFeedbackPreference.js.map +1 -1
  225. package/dist/i18n/en.d.ts.map +1 -1
  226. package/dist/i18n/en.js +84 -8
  227. package/dist/i18n/en.js.map +1 -1
  228. package/dist/i18n/ko.d.ts.map +1 -1
  229. package/dist/i18n/ko.js +89 -13
  230. package/dist/i18n/ko.js.map +1 -1
  231. package/dist/i18n/types.d.ts +77 -1
  232. package/dist/i18n/types.d.ts.map +1 -1
  233. package/dist/providers/reportContext.d.ts +106 -1
  234. package/dist/providers/reportContext.d.ts.map +1 -1
  235. package/dist/providers/reportContextPartitions.d.ts +1 -1
  236. package/dist/providers/reportContextPartitions.d.ts.map +1 -1
  237. package/dist/providers/reportContextPartitions.js +21 -0
  238. package/dist/providers/reportContextPartitions.js.map +1 -1
  239. package/dist/styles/reportStylesheet.d.ts +1 -1
  240. package/dist/styles/reportStylesheet.d.ts.map +1 -1
  241. package/dist/styles/reportStylesheet.js +1 -1
  242. package/dist/styles/reportStylesheet.js.map +1 -1
  243. package/dist/types/pinnedFeedback.d.ts +7 -0
  244. package/dist/types/pinnedFeedback.d.ts.map +1 -1
  245. package/dist/types/pinnedFeedback.js.map +1 -1
  246. package/dist/utils/feedback/feedbackThread.d.ts +4 -0
  247. package/dist/utils/feedback/feedbackThread.d.ts.map +1 -1
  248. package/dist/utils/feedback/feedbackThread.js +20 -0
  249. package/dist/utils/feedback/feedbackThread.js.map +1 -1
  250. package/dist/utils/marker/markerContext.d.ts +5 -1
  251. package/dist/utils/marker/markerContext.d.ts.map +1 -1
  252. package/dist/utils/marker/markerContext.js +18 -15
  253. package/dist/utils/marker/markerContext.js.map +1 -1
  254. package/dist/utils/marker/markerRuntime.d.ts +1 -0
  255. package/dist/utils/marker/markerRuntime.d.ts.map +1 -1
  256. package/dist/utils/marker/markerRuntime.js +8 -5
  257. package/dist/utils/marker/markerRuntime.js.map +1 -1
  258. package/dist/utils/marker/markerShape.d.ts +13 -7
  259. package/dist/utils/marker/markerShape.d.ts.map +1 -1
  260. package/dist/utils/marker/markerShape.js +25 -45
  261. package/dist/utils/marker/markerShape.js.map +1 -1
  262. package/dist/utils/overlay/devicePreviewCapture.d.ts +51 -0
  263. package/dist/utils/overlay/devicePreviewCapture.d.ts.map +1 -0
  264. package/dist/utils/overlay/devicePreviewCapture.js +156 -0
  265. package/dist/utils/overlay/devicePreviewCapture.js.map +1 -0
  266. package/dist/utils/overlay/edgeDock.d.ts +47 -0
  267. package/dist/utils/overlay/edgeDock.d.ts.map +1 -0
  268. package/dist/utils/overlay/edgeDock.js +144 -0
  269. package/dist/utils/overlay/edgeDock.js.map +1 -0
  270. package/dist/utils/overlay/floatingWindowStack.d.ts +6 -0
  271. package/dist/utils/overlay/floatingWindowStack.d.ts.map +1 -0
  272. package/dist/utils/overlay/floatingWindowStack.js +17 -0
  273. package/dist/utils/overlay/floatingWindowStack.js.map +1 -0
  274. package/dist/utils/panel/formatStatCount.js +1 -1
  275. package/dist/utils/panel/formatStatCount.js.map +1 -1
  276. package/dist/utils/panel/panelRoleStats.d.ts +3 -5
  277. package/dist/utils/panel/panelRoleStats.d.ts.map +1 -1
  278. package/dist/utils/panel/panelRoleStats.js +26 -54
  279. package/dist/utils/panel/panelRoleStats.js.map +1 -1
  280. package/dist/utils/panel/panelTypography.d.ts +2 -2
  281. package/dist/utils/panel/panelTypography.d.ts.map +1 -1
  282. package/dist/utils/panel/panelTypography.js +2 -2
  283. package/dist/utils/panel/panelTypography.js.map +1 -1
  284. package/dist/utils/pinned/pinnedFeedback.d.ts.map +1 -1
  285. package/dist/utils/pinned/pinnedFeedback.js +5 -2
  286. package/dist/utils/pinned/pinnedFeedback.js.map +1 -1
  287. package/dist/utils/qr/devicePreviewShareUrl.d.ts +13 -0
  288. package/dist/utils/qr/devicePreviewShareUrl.d.ts.map +1 -0
  289. package/dist/utils/qr/devicePreviewShareUrl.js +53 -0
  290. package/dist/utils/qr/devicePreviewShareUrl.js.map +1 -0
  291. package/dist/utils/qr/encodeQrSvg.d.ts +13 -0
  292. package/dist/utils/qr/encodeQrSvg.d.ts.map +1 -0
  293. package/dist/utils/qr/encodeQrSvg.js +31 -0
  294. package/dist/utils/qr/encodeQrSvg.js.map +1 -0
  295. package/dist/utils/report/reportVisual.d.ts +2 -1
  296. package/dist/utils/report/reportVisual.d.ts.map +1 -1
  297. package/dist/utils/report/reportVisual.js +4 -4
  298. package/dist/utils/report/reportVisual.js.map +1 -1
  299. package/dist/utils/shared/format.d.ts +15 -0
  300. package/dist/utils/shared/format.d.ts.map +1 -1
  301. package/dist/utils/shared/format.js +71 -0
  302. package/dist/utils/shared/format.js.map +1 -1
  303. package/dist/vendor/nayuki/qrcodegen.d.ts +94 -0
  304. package/dist/vendor/nayuki/qrcodegen.d.ts.map +1 -0
  305. package/dist/vendor/nayuki/qrcodegen.js +836 -0
  306. package/dist/vendor/nayuki/qrcodegen.js.map +1 -0
  307. package/package.json +7 -2
  308. package/dist/components/panel/ProbeEditModeBanner.d.ts +0 -2
  309. package/dist/components/panel/ProbeEditModeBanner.d.ts.map +0 -1
  310. package/dist/components/panel/ProbeEditModeBanner.js +0 -23
  311. 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 { useReportSession } from "../../providers/reportContext.js";
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 h-4 w-4 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full border-2 border-white shadow-lg";
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;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,kBAAkB,GAAG,kKAAkK,CAAC;AAE9L,MAAM,UAAU,iBAAiB;IAC7B,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEtE,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;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
+ {"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":"AAyNA,wBAAgB,kBAAkB,uCAoMjC"}
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 { getMarkerLabelFontSizePx } from "../../constants/markerAppearance.js";
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
- const TOOLTIP_SURFACE_CLASS = "overflow-hidden rounded-[16px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-fillOpacity800)] backdrop-blur-[5px] shadow-[var(--adaptive-popup-shadow)]";
18
- // "overflow-hidden rounded-[12px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-fillOpacity500)] backdrop-blur-[10px] shadow-[var(--adaptive-popup-shadow)]";
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({ markerItem }) {
37
- const frame = useMemo(() => getModalGhostFrame(markerItem.report), [markerItem.report]);
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, isSelected, isReportMode, isProximityHighlighted, detachedAriaLabel, detachedModalAriaLabel, markerAppearance, typography, onActivate, onHoverStart, onHoverEnd, onPointerMove, }) {
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, replyCount);
57
- const markerLabel = markerBadgeLabel
58
- ? `${markerItem.report.report_type} · ${markerItem.report.report_id} · ${markerBadgeLabel}`
59
- : `${markerItem.report.report_type} · ${markerItem.report.report_id}`;
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 showMarkerLabel = typography.fontSize !== "none" && Boolean(markerBadgeLabel);
68
- const shapeStyle = resolveMarkerShapeStyle(markerAppearance.shape, dotSize, showMarkerLabel, isModalDetached);
69
- const ringColorClass = isModalDetached ? "border-[#a5b4fc]/90" : "border-white/80";
70
- const markerFontSizePx = typography.fontSize === "none" ? undefined : getMarkerLabelFontSizePx(typography.fontSize);
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: _jsxs("div", { className: `relative transition-opacity duration-150 ${isReportMode ? (isProximityHighlighted ? "pointer-events-none opacity-100" : "pointer-events-none opacity-50") : "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, "aria-hidden": isReportMode || undefined, tabIndex: isReportMode ? -1 : undefined, onClick: isReportMode
75
- ? undefined
76
- : () => {
77
- void onActivate(markerItem.report);
78
- }, onPointerMove: isReportMode
79
- ? undefined
80
- : (event) => {
81
- onPointerMove(event.clientX, event.clientY);
82
- }, className: `${MARKER_BUTTON_BASE_CLASS} border-[2px] border-white shadow-[0_4px_10px_#00000090] transition-transform duration-150 ${shapeStyle.shapeClass} ${isSelected ? "scale-[1.4]" : ""} ${isDetached ? "border-dashed" : ""} ${isReportMode ? (isProximityHighlighted ? "scale-110" : "") : isDetached ? "opacity-75" : ""} ${showMarkerLabel ? "text-white" : ""}`, style: {
83
- backgroundColor: getMarkerColor(markerItem.report, markerAppearance.colors),
84
- pointerEvents: isReportMode ? "none" : "auto",
85
- width: shapeStyle.width,
86
- height: shapeStyle.height,
87
- minWidth: shapeStyle.width,
88
- minHeight: shapeStyle.height,
89
- paddingLeft: shapeStyle.paddingX,
90
- paddingRight: shapeStyle.paddingX,
91
- clipPath: shapeStyle.clipPath,
92
- fontSize: markerFontSizePx === undefined ? undefined : `${markerFontSizePx}px`,
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, selectedReport, activeReplyReport, activeReplyReportId, tooltipReport, tooltipAnchor, editingReportId, hoverPointer, setHoverPointer, messages, markerAppearance, typography, selectReport, activateFeedbackMarker, clearHoverLeaveTimeout, scheduleHoverLeave, setHoveredMarkerId, } = useReport();
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
- if (!editingReportId) {
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) => marker.clampedEdge === null), [markers]);
118
- const overflowHints = useMemo(() => resolveMarkerOverflowHints(markers), [markers]);
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 ?? selectedReport?.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
- }, [selectedReport?.id, tooltipReport?.id, visibleMarkers]);
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, { markerItem: ghostFrameMarker }) : null, visibleMarkers.map((markerItem) => (_jsx(MarkerButton, { markerItem: markerItem, isSelected: isViewMode && markerItem.report.id === selectedReport?.id, 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
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":"AAaA,wBAAgB,UAAU,gCAyCzB"}
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
- 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, {})] }), showOverlay ? (_jsx(ThemeScope, { appearance: resolvedTooltipAppearance, children: _jsx(ReportOverlayLayer, { children: mode !== "idle" ? (_jsxs(_Fragment, { children: [_jsx(ReportMarkersLayer, {}), _jsx(ReportDraftMarker, {}), _jsx(ReportDraftForm, {})] })) : null }) })) : null] }));
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,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACjI,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC7F,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAI,KAAK,MAAM,IAAI,iBAAiB,IAAI,uBAAuB,IAAI,kBAAkB,CAAC;IAC1G,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;IAC7F,MAAM,oBAAoB,GAAG,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1F,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAE5G,OAAO,CACH,MAAC,gBAAgB,IAAC,eAAe,EAAE,uBAAuB,aACtD,KAAC,UAAU,IACP,UAAU,EAAE,uBAAuB,EACnC,SAAS,EAAC,8CAA8C,YAExD,KAAC,cAAc,IACX,MAAM,EAAE,IAAI,KAAK,QAAQ,EACzB,KAAK,EAAE,4BAA4B,GACrC,GACO,EAEb,MAAC,UAAU,IAAC,UAAU,EAAE,uBAAuB,aAC3C,KAAC,kBAAkB,KAAG,EACtB,KAAC,eAAe,KAAG,IACV,EAEZ,WAAW,CAAC,CAAC,CAAC,CACX,KAAC,UAAU,IAAC,UAAU,EAAE,yBAAyB,YAC7C,KAAC,kBAAkB,cACd,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACf,8BACI,KAAC,kBAAkB,KAAG,EACtB,KAAC,iBAAiB,KAAG,EACrB,KAAC,eAAe,KAAG,IACpB,CACN,CAAC,CAAC,CAAC,IAAI,GACS,GACZ,CAChB,CAAC,CAAC,CAAC,IAAI,IACO,CACtB,CAAC;AACN,CAAC"}
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