@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
@@ -0,0 +1,123 @@
1
+ import { useCallback, useState } from "react";
2
+ import { DEFAULT_DEVICE_PREVIEW_ID, DEFAULT_DEVICE_PREVIEW_SCALE, getDevicePreviewPreset, normalizeDevicePreviewScale, } from "../constants/devicePreview.js";
3
+ const UI_OPEN_STORAGE_KEY = "fivepixels:device-preview-ui-open";
4
+ const DEVICE_STORAGE_KEY = "fivepixels:device-preview-device";
5
+ const SCALE_STORAGE_KEY = "fivepixels:device-preview-scale";
6
+ const IMAGE_STORAGE_KEY = "fivepixels:device-preview-image";
7
+ const FIT_VIEWPORT_STORAGE_KEY = "fivepixels:device-preview-fit-viewport";
8
+ const STATUS_BAR_STORAGE_KEY = "fivepixels:device-preview-status-bar";
9
+ function readStoredFlag(key, fallback) {
10
+ if (typeof window === "undefined") {
11
+ return fallback;
12
+ }
13
+ try {
14
+ const stored = window.sessionStorage.getItem(key);
15
+ if (stored === "1") {
16
+ return true;
17
+ }
18
+ if (stored === "0") {
19
+ return false;
20
+ }
21
+ return fallback;
22
+ }
23
+ catch {
24
+ return fallback;
25
+ }
26
+ }
27
+ function persistFlag(key, enabled) {
28
+ try {
29
+ window.sessionStorage.setItem(key, enabled ? "1" : "0");
30
+ }
31
+ catch {
32
+ // Ignore storage failures in restricted environments.
33
+ }
34
+ }
35
+ function readStoredDeviceId() {
36
+ if (typeof window === "undefined") {
37
+ return DEFAULT_DEVICE_PREVIEW_ID;
38
+ }
39
+ try {
40
+ return getDevicePreviewPreset(window.sessionStorage.getItem(DEVICE_STORAGE_KEY)).id;
41
+ }
42
+ catch {
43
+ return DEFAULT_DEVICE_PREVIEW_ID;
44
+ }
45
+ }
46
+ function readStoredScale() {
47
+ if (typeof window === "undefined") {
48
+ return DEFAULT_DEVICE_PREVIEW_SCALE;
49
+ }
50
+ try {
51
+ const stored = window.sessionStorage.getItem(SCALE_STORAGE_KEY);
52
+ return normalizeDevicePreviewScale(stored ? Number(stored) : DEFAULT_DEVICE_PREVIEW_SCALE);
53
+ }
54
+ catch {
55
+ return DEFAULT_DEVICE_PREVIEW_SCALE;
56
+ }
57
+ }
58
+ function persistDeviceId(deviceId) {
59
+ try {
60
+ window.sessionStorage.setItem(DEVICE_STORAGE_KEY, deviceId);
61
+ }
62
+ catch {
63
+ // Ignore storage failures in restricted environments.
64
+ }
65
+ }
66
+ function persistScale(scale) {
67
+ try {
68
+ window.sessionStorage.setItem(SCALE_STORAGE_KEY, String(scale));
69
+ }
70
+ catch {
71
+ // Ignore storage failures in restricted environments.
72
+ }
73
+ }
74
+ export function useDevicePreviewPreference() {
75
+ const [devicePreviewUiOpen, setDevicePreviewUiOpenState] = useState(() => readStoredFlag(UI_OPEN_STORAGE_KEY, false));
76
+ const [devicePreviewDeviceId, setDevicePreviewDeviceIdState] = useState(() => readStoredDeviceId());
77
+ const [devicePreviewScale, setDevicePreviewScaleState] = useState(() => readStoredScale());
78
+ const [devicePreviewImageEnabled, setDevicePreviewImageEnabledState] = useState(() => readStoredFlag(IMAGE_STORAGE_KEY, true));
79
+ const [devicePreviewFitToViewport, setDevicePreviewFitToViewportState] = useState(() => readStoredFlag(FIT_VIEWPORT_STORAGE_KEY, false));
80
+ const [devicePreviewStatusBarEnabled, setDevicePreviewStatusBarEnabledState] = useState(() => readStoredFlag(STATUS_BAR_STORAGE_KEY, true));
81
+ const setDevicePreviewUiOpen = useCallback((open) => {
82
+ setDevicePreviewUiOpenState(open);
83
+ persistFlag(UI_OPEN_STORAGE_KEY, open);
84
+ }, []);
85
+ const setDevicePreviewDeviceId = useCallback((deviceId) => {
86
+ const nextId = getDevicePreviewPreset(deviceId).id;
87
+ setDevicePreviewDeviceIdState(nextId);
88
+ persistDeviceId(nextId);
89
+ }, []);
90
+ const setDevicePreviewScale = useCallback((scale) => {
91
+ const nextScale = normalizeDevicePreviewScale(scale);
92
+ setDevicePreviewScaleState(nextScale);
93
+ persistScale(nextScale);
94
+ }, []);
95
+ const setDevicePreviewImageEnabled = useCallback((enabled) => {
96
+ setDevicePreviewImageEnabledState(enabled);
97
+ persistFlag(IMAGE_STORAGE_KEY, enabled);
98
+ }, []);
99
+ const setDevicePreviewFitToViewport = useCallback((enabled) => {
100
+ setDevicePreviewFitToViewportState(enabled);
101
+ persistFlag(FIT_VIEWPORT_STORAGE_KEY, enabled);
102
+ }, []);
103
+ const setDevicePreviewStatusBarEnabled = useCallback((enabled) => {
104
+ setDevicePreviewStatusBarEnabledState(enabled);
105
+ persistFlag(STATUS_BAR_STORAGE_KEY, enabled);
106
+ }, []);
107
+ return {
108
+ devicePreviewUiOpen,
109
+ setDevicePreviewUiOpen,
110
+ devicePreviewDeviceId,
111
+ setDevicePreviewDeviceId,
112
+ devicePreviewScale,
113
+ setDevicePreviewScale,
114
+ devicePreviewImageEnabled,
115
+ setDevicePreviewImageEnabled,
116
+ devicePreviewFitToViewport,
117
+ setDevicePreviewFitToViewport,
118
+ devicePreviewStatusBarEnabled,
119
+ setDevicePreviewStatusBarEnabled,
120
+ devicePreviewPreset: getDevicePreviewPreset(devicePreviewDeviceId),
121
+ };
122
+ }
123
+ //# sourceMappingURL=useDevicePreviewPreference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDevicePreviewPreference.js","sourceRoot":"","sources":["../../src/hooks/useDevicePreviewPreference.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { type MarkerAppearancePreferences, type MarkerColorPreferences, type FeedbackModeDotColors, type MarkerShape, type AppearanceScale } from "../constants/markerAppearance.js";
1
+ import { type MarkerAppearancePreferences, type MarkerColorPreferences, type FeedbackModeDotColors, type MarkerFillStyle, type MarkerShape, type AppearanceScale } from "../constants/markerAppearance.js";
2
2
  export declare function useMarkerAppearancePreference(): {
3
3
  markerAppearance: MarkerAppearancePreferences;
4
4
  setMarkerAppearance: (next: MarkerAppearancePreferences | ((current: MarkerAppearancePreferences) => MarkerAppearancePreferences)) => void;
5
5
  setMarkerSize: (size: AppearanceScale) => void;
6
6
  setMarkerShape: (shape: MarkerShape) => void;
7
+ setMarkerFillStyle: (fillStyle: MarkerFillStyle) => void;
7
8
  setMarkerColors: (colors: MarkerColorPreferences) => void;
8
9
  setMarkerColor: (key: keyof MarkerColorPreferences, color: string) => void;
9
10
  setFeedbackModeDotColors: (colors: FeedbackModeDotColors) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkerAppearancePreference.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkerAppearancePreference.ts"],"names":[],"mappings":"AACA,OAAO,EAOH,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,eAAe,EACvB,MAAM,iCAAiC,CAAC;AAgEzC,wBAAgB,6BAA6B;;gCAOM,2BAA2B,GAAG,CAAC,CAAC,OAAO,EAAE,2BAA2B,KAAK,2BAA2B,CAAC;0BAUzI,eAAe;4BAUd,WAAW;8BAUV,sBAAsB;0BAUzB,MAAM,sBAAsB,SAAS,MAAM;uCAaxC,qBAAqB;0CAUjB,MAAM,qBAAqB,SAAS,MAAM;EAsB9D"}
1
+ {"version":3,"file":"useMarkerAppearancePreference.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkerAppearancePreference.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACvB,MAAM,iCAAiC,CAAC;AAiEzC,wBAAgB,6BAA6B;;gCAOM,2BAA2B,GAAG,CAAC,CAAC,OAAO,EAAE,2BAA2B,KAAK,2BAA2B,CAAC;0BAUzI,eAAe;4BAUd,WAAW;oCAUP,eAAe;8BAUlB,sBAAsB;0BAUzB,MAAM,sBAAsB,SAAS,MAAM;uCAaxC,qBAAqB;0CAUjB,MAAM,qBAAqB,SAAS,MAAM;EAuB9D"}
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useState } from "react";
2
- import { DEFAULT_FEEDBACK_MODE_DOT_COLORS, DEFAULT_MARKER_APPEARANCE, DEFAULT_MARKER_COLORS, isAppearanceScale, isMarkerShape, MARKER_APPEARANCE_STORAGE_KEY, } from "../constants/markerAppearance.js";
2
+ import { DEFAULT_FEEDBACK_MODE_DOT_COLORS, DEFAULT_MARKER_APPEARANCE, DEFAULT_MARKER_COLORS, isAppearanceScale, isMarkerFillStyle, isMarkerShape, MARKER_APPEARANCE_STORAGE_KEY, } from "../constants/markerAppearance.js";
3
3
  import { isValidHexColor } from "../utils/shared/hexColor.js";
4
4
  import { setMarkerDotSizeFromScale } from "../utils/marker/markerRuntime.js";
5
5
  function normalizeMarkerColors(value) {
@@ -36,6 +36,7 @@ function readStoredMarkerAppearance() {
36
36
  return {
37
37
  size: isAppearanceScale(parsed.size) ? parsed.size : DEFAULT_MARKER_APPEARANCE.size,
38
38
  shape: isMarkerShape(parsed.shape) ? parsed.shape : DEFAULT_MARKER_APPEARANCE.shape,
39
+ fillStyle: isMarkerFillStyle(parsed.fillStyle) ? parsed.fillStyle : DEFAULT_MARKER_APPEARANCE.fillStyle,
39
40
  colors: normalizeMarkerColors(parsed.colors),
40
41
  feedbackModeDotColors: normalizeFeedbackModeDotColors(parsed.feedbackModeDotColors),
41
42
  };
@@ -78,6 +79,12 @@ export function useMarkerAppearancePreference() {
78
79
  shape,
79
80
  }));
80
81
  }, [setMarkerAppearance]);
82
+ const setMarkerFillStyle = useCallback((fillStyle) => {
83
+ setMarkerAppearance((current) => ({
84
+ ...current,
85
+ fillStyle,
86
+ }));
87
+ }, [setMarkerAppearance]);
81
88
  const setMarkerColors = useCallback((colors) => {
82
89
  setMarkerAppearance((current) => ({
83
90
  ...current,
@@ -113,6 +120,7 @@ export function useMarkerAppearancePreference() {
113
120
  setMarkerAppearance,
114
121
  setMarkerSize,
115
122
  setMarkerShape,
123
+ setMarkerFillStyle,
116
124
  setMarkerColors,
117
125
  setMarkerColor,
118
126
  setFeedbackModeDotColors,
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkerAppearancePreference.js","sourceRoot":"","sources":["../../src/hooks/useMarkerAppearancePreference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMarkerAppearancePreference.js","sourceRoot":"","sources":["../../src/hooks/useMarkerAppearancePreference.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNativeHover.d.ts","sourceRoot":"","sources":["../../src/hooks/useNativeHover.ts"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,GAAG;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,mBAAmB,aAM7C,CAAC,GAAG,IAAI,UA0B7C"}
1
+ {"version":3,"file":"useNativeHover.d.ts","sourceRoot":"","sources":["../../src/hooks/useNativeHover.ts"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,GAAG;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,mBAAmB,aAM7C,CAAC,GAAG,IAAI,UA0C7C"}
@@ -10,17 +10,29 @@ export function useNativeHover(handlers) {
10
10
  if (!node) {
11
11
  return;
12
12
  }
13
- const onEnter = () => handlersRef.current.onEnter();
14
- const onLeave = () => handlersRef.current.onLeave();
15
- node.addEventListener("mouseenter", onEnter);
16
- node.addEventListener("mouseleave", onLeave);
13
+ let inside = false;
14
+ const onEnter = () => {
15
+ inside = true;
16
+ handlersRef.current.onEnter();
17
+ };
18
+ const onLeave = () => {
19
+ if (!inside) {
20
+ return;
21
+ }
22
+ inside = false;
23
+ handlersRef.current.onLeave();
24
+ };
25
+ // Pointer events alone — pairing with mouseenter/leave double-fires and can
26
+ // leave hover state stuck when one leave is swallowed during remounts.
17
27
  node.addEventListener("pointerenter", onEnter);
18
28
  node.addEventListener("pointerleave", onLeave);
19
29
  return () => {
20
- node.removeEventListener("mouseenter", onEnter);
21
- node.removeEventListener("mouseleave", onLeave);
22
30
  node.removeEventListener("pointerenter", onEnter);
23
31
  node.removeEventListener("pointerleave", onLeave);
32
+ // Unmount / node swap without a leave event must still clear hover.
33
+ if (inside) {
34
+ handlersRef.current.onLeave();
35
+ }
24
36
  };
25
37
  }, [node]);
26
38
  return ref;
@@ -1 +1 @@
1
- {"version":3,"file":"useNativeHover.js","sourceRoot":"","sources":["../../src/hooks/useNativeHover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOjE,MAAM,UAAU,cAAc,CAAwB,QAA6B;IAC/E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAW,IAAI,CAAC,CAAC;IAEjD,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,OAAiB,EAAE,EAAE;QAC1C,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAEpD,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAE/C,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,GAAG,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"useNativeHover.js","sourceRoot":"","sources":["../../src/hooks/useNativeHover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOjE,MAAM,UAAU,cAAc,CAAwB,QAA6B;IAC/E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAW,IAAI,CAAC,CAAC;IAEjD,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,OAAiB,EAAE,EAAE;QAC1C,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,MAAM,GAAG,IAAI,CAAC;YACd,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YAED,MAAM,GAAG,KAAK,CAAC;YACf,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC,CAAC;QAEF,4EAA4E;QAC5E,uEAAuE;QACvE,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAE/C,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAElD,oEAAoE;YACpE,IAAI,MAAM,EAAE,CAAC;gBACT,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;QACL,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ReportMode } from "../types/report-ui.js";
2
+ type UseOverlayChromeArgs = {
3
+ mode: ReportMode;
4
+ panelCollapsed: boolean;
5
+ setPanelCollapsed: (collapsed: boolean | ((current: boolean) => boolean)) => void;
6
+ pinRailCollapsed: boolean;
7
+ setPinRailCollapsed: (collapsed: boolean) => void;
8
+ hasPins: boolean;
9
+ };
10
+ /**
11
+ * Host-yield + idle auto-collapse for floating chrome (panel / pin).
12
+ * Writes `data-fp-host-yield` on the shadow mount for CSS-driven dimming/peek.
13
+ */
14
+ export declare function useOverlayChrome({ mode, panelCollapsed, setPanelCollapsed, pinRailCollapsed, setPinRailCollapsed, hasPins, }: UseOverlayChromeArgs): void;
15
+ export {};
16
+ //# sourceMappingURL=useOverlayChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOverlayChrome.d.ts","sourceRoot":"","sources":["../../src/hooks/useOverlayChrome.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,KAAK,oBAAoB,GAAG;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC;IAClF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAgBF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC7B,IAAI,EACJ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,OAAO,GACV,EAAE,oBAAoB,QA0ItB"}
@@ -0,0 +1,131 @@
1
+ import { useEffect, useRef } from "react";
2
+ import { FIVEPIXELS_HOST_ID, OVERLAY_HOST_YIELD_DELAY_MS, OVERLAY_HOST_YIELD_HOLD_MS, OVERLAY_IDLE_COLLAPSE_MS, } from "../constants/overlayChrome.js";
3
+ function getMountElement() {
4
+ if (typeof document === "undefined") {
5
+ return null;
6
+ }
7
+ const host = document.getElementById(FIVEPIXELS_HOST_ID);
8
+ return host?.shadowRoot?.querySelector("[data-fivepixels-mount]");
9
+ }
10
+ function isFivepixelsPointerTarget(target) {
11
+ return target instanceof Element && (target.id === FIVEPIXELS_HOST_ID || Boolean(target.closest(`#${FIVEPIXELS_HOST_ID}`)));
12
+ }
13
+ /**
14
+ * Host-yield + idle auto-collapse for floating chrome (panel / pin).
15
+ * Writes `data-fp-host-yield` on the shadow mount for CSS-driven dimming/peek.
16
+ */
17
+ export function useOverlayChrome({ mode, panelCollapsed, setPanelCollapsed, pinRailCollapsed, setPinRailCollapsed, hasPins, }) {
18
+ const idleTimerRef = useRef(null);
19
+ const yieldDelayRef = useRef(null);
20
+ const yieldHoldRef = useRef(null);
21
+ const panelCollapsedRef = useRef(panelCollapsed);
22
+ const pinRailCollapsedRef = useRef(pinRailCollapsed);
23
+ const modeRef = useRef(mode);
24
+ const hasPinsRef = useRef(hasPins);
25
+ panelCollapsedRef.current = panelCollapsed;
26
+ pinRailCollapsedRef.current = pinRailCollapsed;
27
+ modeRef.current = mode;
28
+ hasPinsRef.current = hasPins;
29
+ useEffect(() => {
30
+ const clearIdle = () => {
31
+ if (idleTimerRef.current !== null) {
32
+ window.clearTimeout(idleTimerRef.current);
33
+ idleTimerRef.current = null;
34
+ }
35
+ };
36
+ const clearYieldTimers = () => {
37
+ if (yieldDelayRef.current !== null) {
38
+ window.clearTimeout(yieldDelayRef.current);
39
+ yieldDelayRef.current = null;
40
+ }
41
+ if (yieldHoldRef.current !== null) {
42
+ window.clearTimeout(yieldHoldRef.current);
43
+ yieldHoldRef.current = null;
44
+ }
45
+ };
46
+ const yieldingRef = { current: false };
47
+ const setYielding = (yielding) => {
48
+ if (yieldingRef.current === yielding) {
49
+ return;
50
+ }
51
+ yieldingRef.current = yielding;
52
+ const mount = getMountElement();
53
+ if (mount) {
54
+ mount.setAttribute("data-fp-host-yield", yielding ? "true" : "false");
55
+ }
56
+ };
57
+ const scheduleIdleCollapse = () => {
58
+ clearIdle();
59
+ if (modeRef.current !== "idle") {
60
+ return;
61
+ }
62
+ idleTimerRef.current = window.setTimeout(() => {
63
+ if (modeRef.current !== "idle") {
64
+ return;
65
+ }
66
+ if (!panelCollapsedRef.current) {
67
+ setPanelCollapsed(true);
68
+ }
69
+ if (hasPinsRef.current && !pinRailCollapsedRef.current) {
70
+ setPinRailCollapsed(true);
71
+ }
72
+ }, OVERLAY_IDLE_COLLAPSE_MS);
73
+ };
74
+ const markChromeActive = () => {
75
+ clearYieldTimers();
76
+ setYielding(false);
77
+ scheduleIdleCollapse();
78
+ };
79
+ const markHostActive = () => {
80
+ clearIdle();
81
+ clearYieldTimers();
82
+ yieldDelayRef.current = window.setTimeout(() => {
83
+ setYielding(true);
84
+ yieldHoldRef.current = window.setTimeout(() => {
85
+ setYielding(false);
86
+ scheduleIdleCollapse();
87
+ }, OVERLAY_HOST_YIELD_HOLD_MS);
88
+ }, OVERLAY_HOST_YIELD_DELAY_MS);
89
+ };
90
+ const handlePointerDown = (event) => {
91
+ if (isFivepixelsPointerTarget(event.target)) {
92
+ markChromeActive();
93
+ return;
94
+ }
95
+ markHostActive();
96
+ };
97
+ const handlePointerMove = (event) => {
98
+ if (!isFivepixelsPointerTarget(event.target)) {
99
+ return;
100
+ }
101
+ markChromeActive();
102
+ };
103
+ const handleKeyDown = (event) => {
104
+ if (isFivepixelsPointerTarget(event.target)) {
105
+ markChromeActive();
106
+ return;
107
+ }
108
+ markHostActive();
109
+ };
110
+ setYielding(false);
111
+ scheduleIdleCollapse();
112
+ document.addEventListener("pointerdown", handlePointerDown, true);
113
+ document.addEventListener("pointermove", handlePointerMove, true);
114
+ document.addEventListener("keydown", handleKeyDown, true);
115
+ return () => {
116
+ clearIdle();
117
+ clearYieldTimers();
118
+ setYielding(false);
119
+ document.removeEventListener("pointerdown", handlePointerDown, true);
120
+ document.removeEventListener("pointermove", handlePointerMove, true);
121
+ document.removeEventListener("keydown", handleKeyDown, true);
122
+ };
123
+ }, [setPanelCollapsed, setPinRailCollapsed]);
124
+ useEffect(() => {
125
+ if (mode !== "idle") {
126
+ const mount = getMountElement();
127
+ mount?.setAttribute("data-fp-host-yield", "false");
128
+ }
129
+ }, [mode]);
130
+ }
131
+ //# sourceMappingURL=useOverlayChrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOverlayChrome.js","sourceRoot":"","sources":["../../src/hooks/useOverlayChrome.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export type PanelPlacement = {
4
4
  corner: PanelCorner;
5
5
  };
6
6
  declare const PANEL_CORNERS: PanelCorner[];
7
+ /** Read the persisted panel corner for collision avoidance with other chrome. */
8
+ export declare function getStoredPanelCorner(): PanelCorner;
7
9
  export declare function getNearestPanelCorner(clientX: number, clientY: number): PanelCorner;
8
10
  export declare function clampPanelPlacement(placement: PanelPlacement): PanelPlacement;
9
11
  export declare function projectPointerToPlacement(clientX: number, clientY: number): PanelPlacement;
@@ -1 +1 @@
1
- {"version":3,"file":"usePanelDock.d.ts","sourceRoot":"","sources":["../../src/hooks/usePanelDock.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,aAAa,EAAE,KAAK,YAAY,IAAI,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE9I,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAIpF,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,EAAE,WAAW,CAAC;CACvB,CAAC;AAYF,QAAA,MAAM,aAAa,EAAE,WAAW,EAA6D,CAAC;AA4G9F,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAsBnF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAE7E;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAE1F;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,aAAa,CA6B9E;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,cAAc,GAAG,aAAa,CA+BvF;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CASnD;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;yCA8EhF,iBAAiB,CAAC,WAAW,CAAC;EAgD7C;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,aAAa,CAE1F;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAErE;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"usePanelDock.d.ts","sourceRoot":"","sources":["../../src/hooks/usePanelDock.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,aAAa,EAAE,KAAK,YAAY,IAAI,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE9I,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAIpF,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,EAAE,WAAW,CAAC;CACvB,CAAC;AAYF,QAAA,MAAM,aAAa,EAAE,WAAW,EAA6D,CAAC;AAqH9F,iFAAiF;AACjF,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAeD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAsBnF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAE7E;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAE1F;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,aAAa,CA6B9E;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,cAAc,GAAG,aAAa,CA+BvF;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CASnD;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;yCA8EhF,iBAAiB,CAAC,WAAW,CAAC;EAgD7C;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,aAAa,CAE1F;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAErE;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -26,6 +26,18 @@ function isLegacyPanelPlacement(value) {
26
26
  isPanelEdge(String(value.edge)) &&
27
27
  typeof value.offset === "number");
28
28
  }
29
+ /** Temporary edge+offsetRatio format used during the edge-dock experiment. */
30
+ function isTemporaryEdgeRatioPlacement(value) {
31
+ if (!value || typeof value !== "object" || "corner" in value || "offset" in value) {
32
+ return false;
33
+ }
34
+ const placement = value;
35
+ return (placement.edge === "left" || placement.edge === "right") && typeof placement.offsetRatio === "number" && Number.isFinite(placement.offsetRatio);
36
+ }
37
+ function temporaryEdgeRatioToCorner(edge, offsetRatio) {
38
+ const vertical = offsetRatio < 0.5 ? "top" : "bottom";
39
+ return `${vertical}-${edge}`;
40
+ }
29
41
  function edgeOffsetToCorner(edge, offset) {
30
42
  if (typeof window === "undefined") {
31
43
  return DEFAULT_PLACEMENT.corner;
@@ -66,6 +78,9 @@ function readStoredPlacement() {
66
78
  if (isPanelPlacement(parsed)) {
67
79
  return parsed;
68
80
  }
81
+ if (isTemporaryEdgeRatioPlacement(parsed)) {
82
+ return { corner: temporaryEdgeRatioToCorner(parsed.edge, parsed.offsetRatio) };
83
+ }
69
84
  if (isLegacyPanelPlacement(parsed)) {
70
85
  return { corner: edgeOffsetToCorner(parsed.edge, parsed.offset) };
71
86
  }
@@ -80,6 +95,10 @@ function readStoredPlacement() {
80
95
  }
81
96
  return DEFAULT_PLACEMENT;
82
97
  }
98
+ /** Read the persisted panel corner for collision avoidance with other chrome. */
99
+ export function getStoredPanelCorner() {
100
+ return readStoredPlacement().corner;
101
+ }
83
102
  function persistPlacement(placement) {
84
103
  try {
85
104
  window.localStorage.setItem(STORAGE_KEY, JSON.stringify(placement));
@@ -88,6 +107,9 @@ function persistPlacement(placement) {
88
107
  catch {
89
108
  // Ignore storage failures in restricted environments.
90
109
  }
110
+ if (typeof window !== "undefined") {
111
+ window.dispatchEvent(new CustomEvent("fivepixels:panel-placement", { detail: placement }));
112
+ }
91
113
  }
92
114
  export function getNearestPanelCorner(clientX, clientY) {
93
115
  const viewportWidth = window.innerWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"usePanelDock.js","sourceRoot":"","sources":["../../src/hooks/usePanelDock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePanelDock.js","sourceRoot":"","sources":["../../src/hooks/usePanelDock.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
- import type { PinnedFeedbackItem } from "../types/pinnedFeedback.js";
1
+ import type { PinnedFeedbackItem, PinRailPlacement } from "../types/pinnedFeedback.js";
2
2
  import type { ReportFeedback } from "../types/report.js";
3
3
  export declare function usePinnedFeedbackPreference(projectId: string, environment?: string): {
4
4
  pinnedFeedbackItems: PinnedFeedbackItem[];
5
5
  pinRailCollapsed: boolean;
6
+ pinRailPlacement: PinRailPlacement;
6
7
  togglePinnedFeedback: (item: PinnedFeedbackItem) => void;
7
8
  unpinFeedback: (reportId: string) => void;
8
9
  setPinRailCollapsed: (railCollapsed: boolean) => void;
10
+ setPinRailPlacement: (placement: PinRailPlacement) => void;
9
11
  syncPinnedFeedbackReports: (reports: ReportFeedback[]) => void;
10
12
  };
11
13
  //# sourceMappingURL=usePinnedFeedbackPreference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePinnedFeedbackPreference.d.ts","sourceRoot":"","sources":["../../src/hooks/usePinnedFeedbackPreference.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAA4B,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAkCxD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;;;iCAqBpE,kBAAkB;8BAWd,MAAM;yCAUD,OAAO;yCAUb,cAAc,EAAE;EA6DjC"}
1
+ {"version":3,"file":"usePinnedFeedbackPreference.d.ts","sourceRoot":"","sources":["../../src/hooks/usePinnedFeedbackPreference.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAA4B,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAmCxD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;;;;iCAqBpE,kBAAkB;8BAYd,MAAM;yCAUD,OAAO;qCAUX,gBAAgB;yCAUlB,cAAc,EAAE;EA+DjC"}
@@ -1,4 +1,5 @@
1
1
  import { useCallback, useEffect, useState } from "react";
2
+ import { sanitizePinRailPlacement } from "../utils/overlay/edgeDock.js";
2
3
  import { getPinnedFeedbackStorageKey, removePinnedFeedbackItem, sanitizePinnedFeedbackPreference, togglePinnedFeedbackItem, } from "../utils/pinned/pinnedFeedback.js";
3
4
  function readStoredPreference(storageKey) {
4
5
  if (typeof window === "undefined") {
@@ -41,7 +42,8 @@ export function usePinnedFeedbackPreference(projectId, environment) {
41
42
  setPreference((current) => ({
42
43
  ...current,
43
44
  items: togglePinnedFeedbackItem(current.items, item),
44
- railCollapsed: current.items.length === 0 ? false : current.railCollapsed,
45
+ // First pin arrives as a bubble so the host UI stays readable.
46
+ railCollapsed: current.items.length === 0 ? true : current.railCollapsed,
45
47
  }));
46
48
  }, [setPreference]);
47
49
  const unpinFeedback = useCallback((reportId) => {
@@ -56,6 +58,12 @@ export function usePinnedFeedbackPreference(projectId, environment) {
56
58
  railCollapsed,
57
59
  }));
58
60
  }, [setPreference]);
61
+ const setPinRailPlacement = useCallback((placement) => {
62
+ setPreference((current) => ({
63
+ ...current,
64
+ placement: sanitizePinRailPlacement(placement),
65
+ }));
66
+ }, [setPreference]);
59
67
  const syncPinnedFeedbackReports = useCallback((reports) => {
60
68
  if (reports.length === 0) {
61
69
  return;
@@ -100,9 +108,11 @@ export function usePinnedFeedbackPreference(projectId, environment) {
100
108
  return {
101
109
  pinnedFeedbackItems: preference.items,
102
110
  pinRailCollapsed: preference.railCollapsed,
111
+ pinRailPlacement: preference.placement,
103
112
  togglePinnedFeedback,
104
113
  unpinFeedback,
105
114
  setPinRailCollapsed,
115
+ setPinRailPlacement,
106
116
  syncPinnedFeedbackReports,
107
117
  };
108
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"usePinnedFeedbackPreference.js","sourceRoot":"","sources":["../../src/hooks/usePinnedFeedbackPreference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePinnedFeedbackPreference.js","sourceRoot":"","sources":["../../src/hooks/usePinnedFeedbackPreference.ts"],"names":[],"mappings":"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"}