@fivepixels-js/react 0.2.12 → 0.2.13

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 (326) hide show
  1. package/README.md +22 -8
  2. package/dist/components/icons/Icons.d.ts +6 -0
  3. package/dist/components/icons/Icons.d.ts.map +1 -1
  4. package/dist/components/icons/Icons.js +8 -0
  5. package/dist/components/icons/Icons.js.map +1 -1
  6. package/dist/components/overlay/PickTargetContextMenu.d.ts +1 -2
  7. package/dist/components/overlay/PickTargetContextMenu.d.ts.map +1 -1
  8. package/dist/components/overlay/PickTargetContextMenu.js +5 -7
  9. package/dist/components/overlay/PickTargetContextMenu.js.map +1 -1
  10. package/dist/components/overlay/PickTargetHoverTooltip.d.ts.map +1 -1
  11. package/dist/components/overlay/PickTargetHoverTooltip.js +3 -53
  12. package/dist/components/overlay/PickTargetHoverTooltip.js.map +1 -1
  13. package/dist/components/overlay/PickTargetProbePanel.d.ts.map +1 -1
  14. package/dist/components/overlay/PickTargetProbePanel.js +12 -6
  15. package/dist/components/overlay/PickTargetProbePanel.js.map +1 -1
  16. package/dist/components/overlay/ProbeLayoutControls.js +4 -4
  17. package/dist/components/overlay/ProbeLayoutControls.js.map +1 -1
  18. package/dist/components/overlay/ReportOverlayLayer.d.ts.map +1 -1
  19. package/dist/components/overlay/ReportOverlayLayer.js +8 -10
  20. package/dist/components/overlay/ReportOverlayLayer.js.map +1 -1
  21. package/dist/components/overlay/TargetHighlights.d.ts +2 -1
  22. package/dist/components/overlay/TargetHighlights.d.ts.map +1 -1
  23. package/dist/components/overlay/TargetHighlights.js +13 -2
  24. package/dist/components/overlay/TargetHighlights.js.map +1 -1
  25. package/dist/components/panel/DraftNetworkErrorBanner.js +1 -1
  26. package/dist/components/panel/DraftNetworkErrorBanner.js.map +1 -1
  27. package/dist/components/panel/PanelDropdownMenu.d.ts +9 -2
  28. package/dist/components/panel/PanelDropdownMenu.d.ts.map +1 -1
  29. package/dist/components/panel/PanelDropdownMenu.js +14 -8
  30. package/dist/components/panel/PanelDropdownMenu.js.map +1 -1
  31. package/dist/components/panel/PanelNetworkFailureBanner.js +1 -1
  32. package/dist/components/panel/PanelNetworkFailureBanner.js.map +1 -1
  33. package/dist/components/panel/PanelOnboarding.d.ts.map +1 -1
  34. package/dist/components/panel/PanelOnboarding.js +28 -10
  35. package/dist/components/panel/PanelOnboarding.js.map +1 -1
  36. package/dist/components/panel/PanelSettings.d.ts +4 -2
  37. package/dist/components/panel/PanelSettings.d.ts.map +1 -1
  38. package/dist/components/panel/PanelSettings.js +33 -6
  39. package/dist/components/panel/PanelSettings.js.map +1 -1
  40. package/dist/components/panel/ReportApiFlowPanel.d.ts.map +1 -1
  41. package/dist/components/panel/ReportApiFlowPanel.js +7 -6
  42. package/dist/components/panel/ReportApiFlowPanel.js.map +1 -1
  43. package/dist/components/panel/ReportCommandPanel.d.ts.map +1 -1
  44. package/dist/components/panel/ReportCommandPanel.js +12 -1
  45. package/dist/components/panel/ReportCommandPanel.js.map +1 -1
  46. package/dist/components/panel/ReportCommandReplaceConfirmDialog.d.ts.map +1 -1
  47. package/dist/components/panel/ReportCommandReplaceConfirmDialog.js +15 -2
  48. package/dist/components/panel/ReportCommandReplaceConfirmDialog.js.map +1 -1
  49. package/dist/components/panel/ReportControlPanel.d.ts.map +1 -1
  50. package/dist/components/panel/ReportControlPanel.js +12 -4
  51. package/dist/components/panel/ReportControlPanel.js.map +1 -1
  52. package/dist/components/panel/ReportDraftForm.js +27 -1
  53. package/dist/components/panel/ReportDraftForm.js.map +1 -1
  54. package/dist/components/panel/ReportFeedbackList.d.ts +4 -1
  55. package/dist/components/panel/ReportFeedbackList.d.ts.map +1 -1
  56. package/dist/components/panel/ReportFeedbackList.js +39 -8
  57. package/dist/components/panel/ReportFeedbackList.js.map +1 -1
  58. package/dist/components/panel/ReportImportConfirmDialog.d.ts.map +1 -1
  59. package/dist/components/panel/ReportImportConfirmDialog.js +35 -7
  60. package/dist/components/panel/ReportImportConfirmDialog.js.map +1 -1
  61. package/dist/components/panel/ReportImportProjectMismatchDialog.d.ts.map +1 -1
  62. package/dist/components/panel/ReportImportProjectMismatchDialog.js +15 -2
  63. package/dist/components/panel/ReportImportProjectMismatchDialog.js.map +1 -1
  64. package/dist/components/panel/ReportPanelNoticeDialog.d.ts +42 -0
  65. package/dist/components/panel/ReportPanelNoticeDialog.d.ts.map +1 -0
  66. package/dist/components/panel/ReportPanelNoticeDialog.js +44 -0
  67. package/dist/components/panel/ReportPanelNoticeDialog.js.map +1 -0
  68. package/dist/components/panel/ReportPersonalKeyDialog.d.ts.map +1 -1
  69. package/dist/components/panel/ReportPersonalKeyDialog.js +35 -13
  70. package/dist/components/panel/ReportPersonalKeyDialog.js.map +1 -1
  71. package/dist/components/panel/RouteDetailsTimeline.d.ts.map +1 -1
  72. package/dist/components/panel/RouteDetailsTimeline.js +3 -3
  73. package/dist/components/panel/RouteDetailsTimeline.js.map +1 -1
  74. package/dist/components/panel/feedback/AssigneeThreadEntry.d.ts.map +1 -1
  75. package/dist/components/panel/feedback/AssigneeThreadEntry.js +14 -4
  76. package/dist/components/panel/feedback/AssigneeThreadEntry.js.map +1 -1
  77. package/dist/components/panel/feedback/DraftComposerToolbar.d.ts +12 -2
  78. package/dist/components/panel/feedback/DraftComposerToolbar.d.ts.map +1 -1
  79. package/dist/components/panel/feedback/DraftComposerToolbar.js +13 -3
  80. package/dist/components/panel/feedback/DraftComposerToolbar.js.map +1 -1
  81. package/dist/components/panel/feedback/FeedbackCaseEditor.d.ts +2 -1
  82. package/dist/components/panel/feedback/FeedbackCaseEditor.d.ts.map +1 -1
  83. package/dist/components/panel/feedback/FeedbackCaseEditor.js +2 -2
  84. package/dist/components/panel/feedback/FeedbackCaseEditor.js.map +1 -1
  85. package/dist/components/panel/feedback/FeedbackCaseList.d.ts.map +1 -1
  86. package/dist/components/panel/feedback/FeedbackCaseList.js +2 -1
  87. package/dist/components/panel/feedback/FeedbackCaseList.js.map +1 -1
  88. package/dist/components/panel/feedback/FeedbackCategorySelector.d.ts.map +1 -1
  89. package/dist/components/panel/feedback/FeedbackCategorySelector.js +2 -2
  90. package/dist/components/panel/feedback/FeedbackCategorySelector.js.map +1 -1
  91. package/dist/components/panel/feedback/FeedbackComposer.d.ts.map +1 -1
  92. package/dist/components/panel/feedback/FeedbackComposer.js +2 -1
  93. package/dist/components/panel/feedback/FeedbackComposer.js.map +1 -1
  94. package/dist/components/panel/feedback/FeedbackHoverCard.d.ts.map +1 -1
  95. package/dist/components/panel/feedback/FeedbackHoverCard.js +5 -0
  96. package/dist/components/panel/feedback/FeedbackHoverCard.js.map +1 -1
  97. package/dist/components/panel/feedback/FeedbackListItem.d.ts +2 -1
  98. package/dist/components/panel/feedback/FeedbackListItem.d.ts.map +1 -1
  99. package/dist/components/panel/feedback/FeedbackListItem.js +7 -5
  100. package/dist/components/panel/feedback/FeedbackListItem.js.map +1 -1
  101. package/dist/components/panel/feedback/FeedbackThread.d.ts.map +1 -1
  102. package/dist/components/panel/feedback/FeedbackThread.js +43 -12
  103. package/dist/components/panel/feedback/FeedbackThread.js.map +1 -1
  104. package/dist/components/panel/feedback/QuestionThreadGroup.d.ts.map +1 -1
  105. package/dist/components/panel/feedback/QuestionThreadGroup.js +14 -6
  106. package/dist/components/panel/feedback/QuestionThreadGroup.js.map +1 -1
  107. package/dist/components/panel/feedback/ThreadChildReply.d.ts.map +1 -1
  108. package/dist/components/panel/feedback/ThreadChildReply.js +7 -2
  109. package/dist/components/panel/feedback/ThreadChildReply.js.map +1 -1
  110. package/dist/components/panel/feedback/feed/FeedAuthorAvatar.d.ts +8 -0
  111. package/dist/components/panel/feedback/feed/FeedAuthorAvatar.d.ts.map +1 -0
  112. package/dist/components/panel/feedback/feed/FeedAuthorAvatar.js +18 -0
  113. package/dist/components/panel/feedback/feed/FeedAuthorAvatar.js.map +1 -0
  114. package/dist/components/panel/feedback/feed/FeedCommentMeta.d.ts +22 -0
  115. package/dist/components/panel/feedback/feed/FeedCommentMeta.d.ts.map +1 -0
  116. package/dist/components/panel/feedback/feed/FeedCommentMeta.js +21 -0
  117. package/dist/components/panel/feedback/feed/FeedCommentMeta.js.map +1 -0
  118. package/dist/components/panel/feedback/feed/FeedTimelineRow.d.ts +40 -0
  119. package/dist/components/panel/feedback/feed/FeedTimelineRow.d.ts.map +1 -0
  120. package/dist/components/panel/feedback/feed/FeedTimelineRow.js +32 -0
  121. package/dist/components/panel/feedback/feed/FeedTimelineRow.js.map +1 -0
  122. package/dist/components/panel/feedback/feed/FeedTimelineTrack.d.ts +12 -0
  123. package/dist/components/panel/feedback/feed/FeedTimelineTrack.d.ts.map +1 -0
  124. package/dist/components/panel/feedback/feed/FeedTimelineTrack.js +53 -0
  125. package/dist/components/panel/feedback/feed/FeedTimelineTrack.js.map +1 -0
  126. package/dist/components/panel/feedback/feed/ThreadLayoutShell.d.ts +17 -0
  127. package/dist/components/panel/feedback/feed/ThreadLayoutShell.d.ts.map +1 -0
  128. package/dist/components/panel/feedback/feed/ThreadLayoutShell.js +13 -0
  129. package/dist/components/panel/feedback/feed/ThreadLayoutShell.js.map +1 -0
  130. package/dist/components/panel/feedback/feed/feedActivitySurface.d.ts +6 -0
  131. package/dist/components/panel/feedback/feed/feedActivitySurface.d.ts.map +1 -0
  132. package/dist/components/panel/feedback/feed/feedActivitySurface.js +44 -0
  133. package/dist/components/panel/feedback/feed/feedActivitySurface.js.map +1 -0
  134. package/dist/components/panel/onboarding/PanelOnboardingAuthSteps.d.ts.map +1 -1
  135. package/dist/components/panel/onboarding/PanelOnboardingAuthSteps.js +1 -1
  136. package/dist/components/panel/onboarding/PanelOnboardingAuthSteps.js.map +1 -1
  137. package/dist/components/point/MarkerCaseSidebar.d.ts +2 -1
  138. package/dist/components/point/MarkerCaseSidebar.d.ts.map +1 -1
  139. package/dist/components/point/MarkerCaseSidebar.js +5 -2
  140. package/dist/components/point/MarkerCaseSidebar.js.map +1 -1
  141. package/dist/components/point/MarkerFeedbackWindow.d.ts.map +1 -1
  142. package/dist/components/point/MarkerFeedbackWindow.js +2 -2
  143. package/dist/components/point/MarkerFeedbackWindow.js.map +1 -1
  144. package/dist/components/point/ReportMarkersLayer.d.ts.map +1 -1
  145. package/dist/components/point/ReportMarkersLayer.js +43 -14
  146. package/dist/components/point/ReportMarkersLayer.js.map +1 -1
  147. package/dist/components/report/FivePixels.d.ts +2 -2
  148. package/dist/components/report/FivePixels.d.ts.map +1 -1
  149. package/dist/components/report/FivePixels.js +2 -2
  150. package/dist/components/report/FivePixels.js.map +1 -1
  151. package/dist/components/report/ReportView.d.ts.map +1 -1
  152. package/dist/components/report/ReportView.js +3 -5
  153. package/dist/components/report/ReportView.js.map +1 -1
  154. package/dist/components/report/ShadowReportRoot.d.ts +2 -2
  155. package/dist/components/report/ShadowReportRoot.d.ts.map +1 -1
  156. package/dist/components/report/ShadowReportRoot.js +5 -3
  157. package/dist/components/report/ShadowReportRoot.js.map +1 -1
  158. package/dist/components/report/index.d.ts +5 -4
  159. package/dist/components/report/index.d.ts.map +1 -1
  160. package/dist/components/report/index.js +2 -1
  161. package/dist/components/report/index.js.map +1 -1
  162. package/dist/components/ui/MenuTooltip.d.ts +26 -0
  163. package/dist/components/ui/MenuTooltip.d.ts.map +1 -0
  164. package/dist/components/ui/MenuTooltip.js +25 -0
  165. package/dist/components/ui/MenuTooltip.js.map +1 -0
  166. package/dist/components/ui/PointerFollowTooltip.d.ts +4 -1
  167. package/dist/components/ui/PointerFollowTooltip.d.ts.map +1 -1
  168. package/dist/components/ui/PointerFollowTooltip.js +4 -1
  169. package/dist/components/ui/PointerFollowTooltip.js.map +1 -1
  170. package/dist/components/ui/StyleInspectTooltip.d.ts +21 -0
  171. package/dist/components/ui/StyleInspectTooltip.d.ts.map +1 -0
  172. package/dist/components/ui/StyleInspectTooltip.js +11 -0
  173. package/dist/components/ui/StyleInspectTooltip.js.map +1 -0
  174. package/dist/constants/feedbackCategory.d.ts +3 -1
  175. package/dist/constants/feedbackCategory.d.ts.map +1 -1
  176. package/dist/constants/feedbackCategory.js +3 -1
  177. package/dist/constants/feedbackCategory.js.map +1 -1
  178. package/dist/constants/loginMethod.d.ts +8 -0
  179. package/dist/constants/loginMethod.d.ts.map +1 -1
  180. package/dist/constants/loginMethod.js +18 -0
  181. package/dist/constants/loginMethod.js.map +1 -1
  182. package/dist/constants/panelTabPresets.js +10 -10
  183. package/dist/constants/panelTabPresets.js.map +1 -1
  184. package/dist/constants/panelTabRegistry.d.ts +2 -2
  185. package/dist/constants/panelTabRegistry.d.ts.map +1 -1
  186. package/dist/constants/panelTabRegistry.js +8 -0
  187. package/dist/constants/panelTabRegistry.js.map +1 -1
  188. package/dist/constants/storageKeys.d.ts +0 -2
  189. package/dist/constants/storageKeys.d.ts.map +1 -1
  190. package/dist/constants/storageKeys.js +0 -4
  191. package/dist/constants/storageKeys.js.map +1 -1
  192. package/dist/hooks/report/assembleReportContextValue.d.ts +10 -6
  193. package/dist/hooks/report/assembleReportContextValue.d.ts.map +1 -1
  194. package/dist/hooks/report/assembleReportContextValue.js +11 -7
  195. package/dist/hooks/report/assembleReportContextValue.js.map +1 -1
  196. package/dist/hooks/report/useReportAuthSession.d.ts +7 -1
  197. package/dist/hooks/report/useReportAuthSession.d.ts.map +1 -1
  198. package/dist/hooks/report/useReportAuthSession.js +50 -17
  199. package/dist/hooks/report/useReportAuthSession.js.map +1 -1
  200. package/dist/hooks/report/useReportDraftSession.d.ts +1 -8
  201. package/dist/hooks/report/useReportDraftSession.d.ts.map +1 -1
  202. package/dist/hooks/report/useReportDraftSession.js +51 -13
  203. package/dist/hooks/report/useReportDraftSession.js.map +1 -1
  204. package/dist/hooks/report/useReportPanelShell.d.ts +5 -2
  205. package/dist/hooks/report/useReportPanelShell.d.ts.map +1 -1
  206. package/dist/hooks/report/useReportPanelShell.js +6 -2
  207. package/dist/hooks/report/useReportPanelShell.js.map +1 -1
  208. package/dist/hooks/report/useReportPickProbe.d.ts.map +1 -1
  209. package/dist/hooks/report/useReportPickProbe.js +88 -1
  210. package/dist/hooks/report/useReportPickProbe.js.map +1 -1
  211. package/dist/hooks/report/useReportReplyReview.d.ts +1 -0
  212. package/dist/hooks/report/useReportReplyReview.d.ts.map +1 -1
  213. package/dist/hooks/report/useReportReplyReview.js +31 -3
  214. package/dist/hooks/report/useReportReplyReview.js.map +1 -1
  215. package/dist/hooks/report/useReportState.d.ts +14 -8
  216. package/dist/hooks/report/useReportState.d.ts.map +1 -1
  217. package/dist/hooks/report/useReportState.js +11 -6
  218. package/dist/hooks/report/useReportState.js.map +1 -1
  219. package/dist/hooks/usePanelAutoRefresh.d.ts +1 -1
  220. package/dist/hooks/useSelfProfile.d.ts +1 -0
  221. package/dist/hooks/useSelfProfile.d.ts.map +1 -1
  222. package/dist/hooks/useSelfProfile.js +13 -0
  223. package/dist/hooks/useSelfProfile.js.map +1 -1
  224. package/dist/hooks/useThreadLayoutPreference.d.ts +6 -0
  225. package/dist/hooks/useThreadLayoutPreference.d.ts.map +1 -0
  226. package/dist/hooks/useThreadLayoutPreference.js +40 -0
  227. package/dist/hooks/useThreadLayoutPreference.js.map +1 -0
  228. package/dist/i18n/en.d.ts.map +1 -1
  229. package/dist/i18n/en.js +39 -4
  230. package/dist/i18n/en.js.map +1 -1
  231. package/dist/i18n/ko.d.ts.map +1 -1
  232. package/dist/i18n/ko.js +39 -4
  233. package/dist/i18n/ko.js.map +1 -1
  234. package/dist/i18n/types.d.ts +19 -1
  235. package/dist/i18n/types.d.ts.map +1 -1
  236. package/dist/providers/ReportProvider.d.ts +1 -1
  237. package/dist/providers/ReportProvider.d.ts.map +1 -1
  238. package/dist/providers/ReportProvider.js +16 -4
  239. package/dist/providers/ReportProvider.js.map +1 -1
  240. package/dist/providers/reportContext.d.ts +52 -32
  241. package/dist/providers/reportContext.d.ts.map +1 -1
  242. package/dist/providers/reportContextPartitions.d.ts +2 -2
  243. package/dist/providers/reportContextPartitions.d.ts.map +1 -1
  244. package/dist/providers/reportContextPartitions.js +7 -6
  245. package/dist/providers/reportContextPartitions.js.map +1 -1
  246. package/dist/styles/reportStylesheet.d.ts +1 -1
  247. package/dist/styles/reportStylesheet.d.ts.map +1 -1
  248. package/dist/styles/reportStylesheet.js +1 -1
  249. package/dist/styles/reportStylesheet.js.map +1 -1
  250. package/dist/types/adapter.d.ts +66 -6
  251. package/dist/types/adapter.d.ts.map +1 -1
  252. package/dist/types/publicApi.d.ts +20 -4
  253. package/dist/types/publicApi.d.ts.map +1 -1
  254. package/dist/types/report-ui.d.ts +2 -1
  255. package/dist/types/report-ui.d.ts.map +1 -1
  256. package/dist/types/report.d.ts +17 -0
  257. package/dist/types/report.d.ts.map +1 -1
  258. package/dist/utils/adapter/resolveAdapter.d.ts +1 -1
  259. package/dist/utils/adapter/resolveAdapter.d.ts.map +1 -1
  260. package/dist/utils/adapter/resolveAdapter.js.map +1 -1
  261. package/dist/utils/auth/remoteAuthLifecycle.d.ts +15 -0
  262. package/dist/utils/auth/remoteAuthLifecycle.d.ts.map +1 -0
  263. package/dist/utils/auth/remoteAuthLifecycle.js +27 -0
  264. package/dist/utils/auth/remoteAuthLifecycle.js.map +1 -0
  265. package/dist/utils/auth/resolvePanelView.d.ts +3 -1
  266. package/dist/utils/auth/resolvePanelView.d.ts.map +1 -1
  267. package/dist/utils/auth/resolvePanelView.js +22 -3
  268. package/dist/utils/auth/resolvePanelView.js.map +1 -1
  269. package/dist/utils/feedback/feedbackCaseId.d.ts +2 -0
  270. package/dist/utils/feedback/feedbackCaseId.d.ts.map +1 -1
  271. package/dist/utils/feedback/feedbackCaseId.js +9 -0
  272. package/dist/utils/feedback/feedbackCaseId.js.map +1 -1
  273. package/dist/utils/integration/buildAdapterIntegrationStatus.d.ts +2 -1
  274. package/dist/utils/integration/buildAdapterIntegrationStatus.d.ts.map +1 -1
  275. package/dist/utils/integration/buildAdapterIntegrationStatus.js +81 -34
  276. package/dist/utils/integration/buildAdapterIntegrationStatus.js.map +1 -1
  277. package/dist/utils/network/formatApiFlowEntry.d.ts +2 -0
  278. package/dist/utils/network/formatApiFlowEntry.d.ts.map +1 -1
  279. package/dist/utils/network/formatApiFlowEntry.js +15 -0
  280. package/dist/utils/network/formatApiFlowEntry.js.map +1 -1
  281. package/dist/utils/network/networkMonitor.d.ts.map +1 -1
  282. package/dist/utils/network/networkMonitor.js +29 -21
  283. package/dist/utils/network/networkMonitor.js.map +1 -1
  284. package/dist/utils/panel/panelTabPreference.d.ts.map +1 -1
  285. package/dist/utils/panel/panelTabPreference.js +6 -1
  286. package/dist/utils/panel/panelTabPreference.js.map +1 -1
  287. package/dist/utils/report/reportTeam.d.ts +3 -1
  288. package/dist/utils/report/reportTeam.d.ts.map +1 -1
  289. package/dist/utils/report/reportTeam.js +2 -2
  290. package/dist/utils/report/reportTeam.js.map +1 -1
  291. package/dist/utils/report/reportUi.d.ts +2 -1
  292. package/dist/utils/report/reportUi.d.ts.map +1 -1
  293. package/dist/utils/report/reportUi.js +2 -0
  294. package/dist/utils/report/reportUi.js.map +1 -1
  295. package/dist/utils/report/reportVisual.d.ts.map +1 -1
  296. package/dist/utils/report/reportVisual.js +4 -0
  297. package/dist/utils/report/reportVisual.js.map +1 -1
  298. package/dist/utils/report/resolveRequire.d.ts +37 -0
  299. package/dist/utils/report/resolveRequire.d.ts.map +1 -0
  300. package/dist/utils/report/resolveRequire.js +14 -0
  301. package/dist/utils/report/resolveRequire.js.map +1 -0
  302. package/dist/utils/shared/format.d.ts +2 -0
  303. package/dist/utils/shared/format.d.ts.map +1 -1
  304. package/dist/utils/shared/format.js +18 -0
  305. package/dist/utils/shared/format.js.map +1 -1
  306. package/package.json +1 -1
  307. package/dist/components/overlay/ElementMemoComposer.d.ts +0 -2
  308. package/dist/components/overlay/ElementMemoComposer.d.ts.map +0 -1
  309. package/dist/components/overlay/ElementMemoComposer.js +0 -51
  310. package/dist/components/overlay/ElementMemoComposer.js.map +0 -1
  311. package/dist/components/point/MemoMarkersLayer.d.ts +0 -2
  312. package/dist/components/point/MemoMarkersLayer.d.ts.map +0 -1
  313. package/dist/components/point/MemoMarkersLayer.js +0 -60
  314. package/dist/components/point/MemoMarkersLayer.js.map +0 -1
  315. package/dist/hooks/report/useElementMemos.d.ts +0 -15
  316. package/dist/hooks/report/useElementMemos.d.ts.map +0 -1
  317. package/dist/hooks/report/useElementMemos.js +0 -45
  318. package/dist/hooks/report/useElementMemos.js.map +0 -1
  319. package/dist/utils/memo/elementMemoMarkers.d.ts +0 -17
  320. package/dist/utils/memo/elementMemoMarkers.d.ts.map +0 -1
  321. package/dist/utils/memo/elementMemoMarkers.js +0 -36
  322. package/dist/utils/memo/elementMemoMarkers.js.map +0 -1
  323. package/dist/utils/memo/elementMemos.d.ts +0 -15
  324. package/dist/utils/memo/elementMemos.d.ts.map +0 -1
  325. package/dist/utils/memo/elementMemos.js +0 -97
  326. package/dist/utils/memo/elementMemos.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ import { type FivePixelsSync } from "../../constants/loginMethod.js";
2
+ /**
3
+ * Policy flags for identity gates.
4
+ * Prefer this over top-level `requireAuth` / `team.requireReviewerKey`.
5
+ */
6
+ export type FivePixelsRequire = {
7
+ /**
8
+ * When `sync` is `api` or `artemis`, whether company login is required.
9
+ * - `true` (default for remote sync): login / Artemis gate
10
+ * - `false`: local-style onboarding (display name + personal key)
11
+ * Ignored when `sync="local"`.
12
+ */
13
+ authLogin?: boolean;
14
+ /**
15
+ * Whether the personal key must match an entry in `team.reviewers` (publicKey).
16
+ * Defaults to `false`.
17
+ */
18
+ reviewerKey?: boolean;
19
+ };
20
+ export type ResolvedFivePixelsRequire = {
21
+ authLogin: boolean;
22
+ reviewerKey: boolean;
23
+ };
24
+ export type ResolveFivePixelsRequireOptions = {
25
+ sync: FivePixelsSync;
26
+ require?: FivePixelsRequire;
27
+ /** @deprecated Prefer `require.authLogin`. */
28
+ requireAuth?: boolean;
29
+ /** @deprecated Prefer `require.reviewerKey`. */
30
+ teamRequireReviewerKey?: boolean;
31
+ };
32
+ /**
33
+ * Resolves require flags with legacy prop fallbacks.
34
+ * Precedence: `require.*` → deprecated props → defaults.
35
+ */
36
+ export declare function resolveFivePixelsRequire({ sync, require: requireProp, requireAuth, teamRequireReviewerKey, }: ResolveFivePixelsRequireOptions): ResolvedFivePixelsRequire;
37
+ //# sourceMappingURL=resolveRequire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRequire.d.ts","sourceRoot":"","sources":["../../../src/utils/report/resolveRequire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAErF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC1C,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,IAAI,EACJ,OAAO,EAAE,WAAW,EACpB,WAAW,EACX,sBAAsB,GACzB,EAAE,+BAA+B,GAAG,yBAAyB,CAQ7D"}
@@ -0,0 +1,14 @@
1
+ import { resolveRequireAuth } from "../../constants/loginMethod.js";
2
+ /**
3
+ * Resolves require flags with legacy prop fallbacks.
4
+ * Precedence: `require.*` → deprecated props → defaults.
5
+ */
6
+ export function resolveFivePixelsRequire({ sync, require: requireProp, requireAuth, teamRequireReviewerKey, }) {
7
+ const authLoginExplicit = requireProp?.authLogin ?? requireAuth;
8
+ const reviewerKeyExplicit = requireProp?.reviewerKey ?? teamRequireReviewerKey;
9
+ return {
10
+ authLogin: resolveRequireAuth(sync, authLoginExplicit),
11
+ reviewerKey: typeof reviewerKeyExplicit === "boolean" ? reviewerKeyExplicit : false,
12
+ };
13
+ }
14
+ //# sourceMappingURL=resolveRequire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRequire.js","sourceRoot":"","sources":["../../../src/utils/report/resolveRequire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuB,MAAM,4BAA4B,CAAC;AAmCrF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,EACrC,IAAI,EACJ,OAAO,EAAE,WAAW,EACpB,WAAW,EACX,sBAAsB,GACQ;IAC9B,MAAM,iBAAiB,GAAG,WAAW,EAAE,SAAS,IAAI,WAAW,CAAC;IAChE,MAAM,mBAAmB,GAAG,WAAW,EAAE,WAAW,IAAI,sBAAsB,CAAC;IAE/E,OAAO;QACH,SAAS,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACtD,WAAW,EAAE,OAAO,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK;KACtF,CAAC;AACN,CAAC"}
@@ -21,4 +21,6 @@ export type RelativeTimeLabels = {
21
21
  };
22
22
  export declare function getRelativeTimeParts(value: string, now?: Date): RelativeTimeParts | null;
23
23
  export declare function formatRelativeTime(value: string, labels: RelativeTimeLabels, now?: Date): string;
24
+ /** Compact feed timestamps like `12m`, `3h`, `5d` (reference activity-feed style). */
25
+ export declare function formatRelativeTimeCompact(value: string, now?: Date): string;
24
26
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/shared/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMpD,wBAAgB,aAAa,WAM5B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,YAAmB,UAEpE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,YAAmB,UAgBxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,UAM5C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,YAAmB,UAuBxE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,YAAmB,UAqB3E;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC,CAAC;AAsCF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,iBAAiB,GAAG,IAAI,CAgCpG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,GAAE,IAAiB,UAqBnG"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/shared/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMpD,wBAAgB,aAAa,WAM5B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,YAAmB,UAEpE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,YAAmB,UAgBxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,UAM5C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,YAAmB,UAuBxE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,YAAmB,UAqB3E;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC,CAAC;AAsCF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,iBAAiB,GAAG,IAAI,CAgCpG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,GAAE,IAAiB,UAqBnG;AAED,sFAAsF;AACtF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,UAoB9E"}
@@ -139,4 +139,22 @@ export function formatRelativeTime(value, labels, now = new Date()) {
139
139
  return labels.yearsAgo(parts.count);
140
140
  }
141
141
  }
142
+ /** Compact feed timestamps like `12m`, `3h`, `5d` (reference activity-feed style). */
143
+ export function formatRelativeTimeCompact(value, now = new Date()) {
144
+ const parts = getRelativeTimeParts(value, now);
145
+ if (!parts) {
146
+ return "";
147
+ }
148
+ if (parts.unit === "second") {
149
+ return "now";
150
+ }
151
+ const suffix = {
152
+ minute: "m",
153
+ hour: "h",
154
+ day: "d",
155
+ month: "mo",
156
+ year: "y",
157
+ };
158
+ return `${parts.count}${suffix[parts.unit]}`;
159
+ }
142
160
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/shared/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/shared/format.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fivepixels-js/react",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "description": "React library for DOM element feedback markers on staging, QA, and internal tool UIs",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -1,2 +0,0 @@
1
- export declare function ElementMemoComposer(): import("react").JSX.Element | null;
2
- //# sourceMappingURL=ElementMemoComposer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ElementMemoComposer.d.ts","sourceRoot":"","sources":["../../../src/components/overlay/ElementMemoComposer.tsx"],"names":[],"mappings":"AAMA,wBAAgB,mBAAmB,uCA4GlC"}
@@ -1,51 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState } from "react";
3
- import { useReportPreferences, useReportSession } from "../../providers/reportContext.js";
4
- const COMPOSER_SURFACE_CLASS = "pointer-events-auto fixed z-[1000005] w-[min(280px,calc(100vw-16px))] overflow-hidden rounded-[12px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-surface-overlay)] shadow-[var(--adaptive-popup-shadow)] backdrop-blur-[20px]";
5
- export function ElementMemoComposer() {
6
- const { messages } = useReportPreferences();
7
- const { memoComposer, elementMemos, closeMemoComposer, saveElementMemo, deleteElementMemo } = useReportSession();
8
- const [text, setText] = useState("");
9
- const textareaRef = useRef(null);
10
- useEffect(() => {
11
- if (!memoComposer) {
12
- setText("");
13
- return;
14
- }
15
- setText(elementMemos[memoComposer.elementKey]?.text ?? "");
16
- }, [elementMemos, memoComposer]);
17
- useEffect(() => {
18
- if (!memoComposer) {
19
- return;
20
- }
21
- const frameId = window.requestAnimationFrame(() => {
22
- textareaRef.current?.focus();
23
- textareaRef.current?.select();
24
- });
25
- const handleKeyDown = (event) => {
26
- if (event.key === "Escape") {
27
- closeMemoComposer();
28
- }
29
- };
30
- window.addEventListener("keydown", handleKeyDown);
31
- return () => {
32
- window.cancelAnimationFrame(frameId);
33
- window.removeEventListener("keydown", handleKeyDown);
34
- };
35
- }, [closeMemoComposer, memoComposer]);
36
- if (!memoComposer) {
37
- return null;
38
- }
39
- const viewportWidth = typeof window !== "undefined" ? window.innerWidth : 0;
40
- const viewportHeight = typeof window !== "undefined" ? window.innerHeight : 0;
41
- const panelWidth = 280;
42
- const panelHeight = 180;
43
- const left = Math.min(memoComposer.clientX, Math.max(8, viewportWidth - panelWidth - 8));
44
- const top = Math.min(memoComposer.clientY, Math.max(8, viewportHeight - panelHeight - 8));
45
- const hasExistingMemo = Boolean(elementMemos[memoComposer.elementKey]?.text);
46
- return (_jsxs("div", { "data-fivepixels-interactive": "", className: COMPOSER_SURFACE_CLASS, style: { left, top }, onClick: (event) => event.stopPropagation(), onContextMenu: (event) => {
47
- event.preventDefault();
48
- event.stopPropagation();
49
- }, children: [_jsxs("div", { className: "border-b border-[var(--adaptive-border-subtle)] px-[12px] py-[8px]", children: [_jsx("p", { className: "text-[13px] font-semibold text-[var(--adaptive-black900)]", children: messages.pickTarget.memoComposerTitle }), _jsx("p", { className: "mt-[2px] text-[11px] text-[var(--adaptive-black500)]", children: messages.pickTarget.memoComposerHint })] }), _jsx("div", { className: "px-[12px] py-[10px]", children: _jsx("textarea", { ref: textareaRef, "data-fivepixels-interactive": "", value: text, onChange: (event) => setText(event.target.value), placeholder: messages.pickTarget.memoComposerPlaceholder, rows: 4, className: "w-full resize-none rounded-[8px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-black50)] px-[10px] py-[8px] text-[13px] leading-[1.45] text-[var(--adaptive-black900)] outline-none focus:border-[var(--adaptive-blue500)]" }) }), _jsxs("div", { className: "flex items-center justify-end gap-[6px] border-t border-[var(--adaptive-border-subtle)] px-[12px] py-[8px]", children: [hasExistingMemo ? (_jsx("button", { type: "button", "data-fivepixels-interactive": "", onClick: () => deleteElementMemo(memoComposer.elementKey), className: "mr-auto rounded-[8px] px-[10px] py-[5px] text-[12px] font-medium text-[var(--adaptive-accent-red)] hover:bg-[color-mix(in_srgb,var(--adaptive-accent-red)_10%,transparent)]", children: messages.pickTarget.memoComposerDelete })) : null, _jsx("button", { type: "button", "data-fivepixels-interactive": "", onClick: closeMemoComposer, className: "rounded-[8px] px-[10px] py-[5px] text-[12px] font-medium text-[var(--adaptive-black600)] hover:bg-[var(--adaptive-black100)]", children: messages.common.cancel }), _jsx("button", { type: "button", "data-fivepixels-interactive": "", onClick: () => saveElementMemo(memoComposer.elementKey, text), className: "rounded-[8px] bg-[var(--adaptive-black900)] px-[10px] py-[5px] text-[12px] font-semibold text-[var(--adaptive-black50)] hover:bg-[var(--adaptive-blue400)] disabled:opacity-50", disabled: !text.trim(), children: messages.pickTarget.memoComposerSave })] })] }));
50
- }
51
- //# sourceMappingURL=ElementMemoComposer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ElementMemoComposer.js","sourceRoot":"","sources":["../../../src/components/overlay/ElementMemoComposer.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function MemoMarkersLayer(): import("react").JSX.Element | null;
2
- //# sourceMappingURL=MemoMarkersLayer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MemoMarkersLayer.d.ts","sourceRoot":"","sources":["../../../src/components/point/MemoMarkersLayer.tsx"],"names":[],"mappings":"AAkFA,wBAAgB,gBAAgB,uCAgD/B"}
@@ -1,60 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useMemo, useState } from "react";
3
- import { HoverTooltip } from "../../components/ui/HoverTooltip.js";
4
- import { useReportPreferences, useReportSession } from "../../providers/reportContext.js";
5
- import { getMarkerDotSize } from "../../utils/marker/markerRuntime.js";
6
- import { resolveMarkerGlyphPaint, resolveMarkerShapeStyle } from "../../utils/marker/markerShape.js";
7
- import { MEMO_MARKER_COLOR, resolveMemoMarkerPositions } from "../../utils/memo/elementMemoMarkers.js";
8
- import { MarkerShapeGlyph } from "./MarkerShapeGlyph.js";
9
- const MARKER_ANCHOR_BASE_CLASS = "pointer-events-auto fixed z-[1000000]";
10
- const MARKER_BUTTON_BASE_CLASS = "flex items-center justify-center border-0 bg-transparent p-0 shadow-none";
11
- function MemoMarkerButton({ marker, markerAppearance, ariaLabel, onActivate }) {
12
- const dotSize = getMarkerDotSize();
13
- const shapeStyle = resolveMarkerShapeStyle(markerAppearance.shape, dotSize);
14
- const paint = resolveMarkerGlyphPaint({
15
- color: MEMO_MARKER_COLOR,
16
- fillStyle: markerAppearance.fillStyle,
17
- strokeColor: markerAppearance.strokeColor,
18
- strokeWidthPx: shapeStyle.strokeWidthPx,
19
- });
20
- const handleClick = useCallback((event) => {
21
- event.stopPropagation();
22
- onActivate(marker, event.clientX, event.clientY);
23
- }, [marker, onActivate]);
24
- return (_jsx("div", { className: `${MARKER_ANCHOR_BASE_CLASS} ${shapeStyle.anchorClass}`, style: {
25
- left: marker.left,
26
- top: marker.top,
27
- }, "data-fivepixels-interactive": "", onPointerDown: (event) => event.stopPropagation(), onClick: (event) => event.stopPropagation(), children: _jsx("div", { className: "relative transition-transform duration-150", children: _jsx(HoverTooltip, { content: marker.text, multiline: true, children: _jsx("button", { type: "button", "data-fivepixels-interactive": "", "aria-label": ariaLabel, onClick: handleClick, className: `${MARKER_BUTTON_BASE_CLASS} relative`, style: {
28
- width: shapeStyle.width,
29
- height: shapeStyle.height,
30
- minWidth: shapeStyle.width,
31
- minHeight: shapeStyle.height,
32
- }, children: _jsx("span", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: _jsx(MarkerShapeGlyph, { shape: markerAppearance.shape, fill: paint.fill, width: shapeStyle.width, height: shapeStyle.height, stroke: paint.stroke, strokeWidthPx: paint.strokeWidthPx }) }) }) }) }) }));
33
- }
34
- export function MemoMarkersLayer() {
35
- const { elementMemos, openMemoComposer } = useReportSession();
36
- const { markerAppearance, messages } = useReportPreferences();
37
- const [tick, setTick] = useState(0);
38
- useEffect(() => {
39
- if (Object.keys(elementMemos).length === 0) {
40
- return;
41
- }
42
- const update = () => setTick((value) => value + 1);
43
- update();
44
- window.addEventListener("resize", update);
45
- window.addEventListener("scroll", update, true);
46
- return () => {
47
- window.removeEventListener("resize", update);
48
- window.removeEventListener("scroll", update, true);
49
- };
50
- }, [elementMemos]);
51
- const markers = useMemo(() => resolveMemoMarkerPositions(elementMemos), [elementMemos, tick]);
52
- const handleActivate = useCallback((marker, clientX, clientY) => {
53
- openMemoComposer(marker.elementKey, clientX, clientY + 8);
54
- }, [openMemoComposer]);
55
- if (markers.length === 0) {
56
- return null;
57
- }
58
- return (_jsx(_Fragment, { children: markers.map((marker) => (_jsx(MemoMarkerButton, { marker: marker, markerAppearance: markerAppearance, ariaLabel: messages.pickTarget.memoMarkerAriaLabel(marker.text), onActivate: handleActivate }, marker.elementKey))) }));
59
- }
60
- //# sourceMappingURL=MemoMarkersLayer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MemoMarkersLayer.js","sourceRoot":"","sources":["../../../src/components/point/MemoMarkersLayer.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { ElementMemoMap } from "../../utils/memo/elementMemos.js";
2
- export type ElementMemoComposerState = {
3
- elementKey: string;
4
- clientX: number;
5
- clientY: number;
6
- };
7
- export declare function useElementMemos(projectId: string, pathname: string): {
8
- elementMemos: ElementMemoMap;
9
- memoComposer: ElementMemoComposerState | null;
10
- openMemoComposer: (elementKey: string, clientX: number, clientY: number) => void;
11
- closeMemoComposer: () => void;
12
- saveElementMemo: (elementKey: string, text: string) => void;
13
- deleteElementMemo: (elementKey: string) => void;
14
- };
15
- //# sourceMappingURL=useElementMemos.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useElementMemos.d.ts","sourceRoot":"","sources":["../../../src/hooks/report/useElementMemos.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,MAAM,MAAM,wBAAwB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;mCASb,MAAM,WAAW,MAAM,WAAW,MAAM;;kCASzE,MAAM,QAAQ,MAAM;oCAmBpB,MAAM;EAgB1B"}
@@ -1,45 +0,0 @@
1
- import { useCallback, useEffect, useState } from "react";
2
- import { computeMemoElementRatios } from "../../utils/memo/elementMemoMarkers.js";
3
- import { deleteElementMemo, readElementMemos, saveElementMemo } from "../../utils/memo/elementMemos.js";
4
- export function useElementMemos(projectId, pathname) {
5
- const [elementMemos, setElementMemos] = useState(() => readElementMemos(projectId, pathname));
6
- const [memoComposer, setMemoComposer] = useState(null);
7
- useEffect(() => {
8
- setElementMemos(readElementMemos(projectId, pathname));
9
- setMemoComposer(null);
10
- }, [pathname, projectId]);
11
- const openMemoComposer = useCallback((elementKey, clientX, clientY) => {
12
- setMemoComposer({ elementKey, clientX, clientY });
13
- }, []);
14
- const closeMemoComposer = useCallback(() => {
15
- setMemoComposer(null);
16
- }, []);
17
- const saveMemo = useCallback((elementKey, text) => {
18
- const existing = elementMemos[elementKey];
19
- const position = existing?.elementXRatio !== undefined && existing?.elementYRatio !== undefined
20
- ? {
21
- elementXRatio: existing.elementXRatio,
22
- elementYRatio: existing.elementYRatio,
23
- }
24
- : memoComposer?.elementKey === elementKey
25
- ? computeMemoElementRatios(elementKey, memoComposer.clientX, memoComposer.clientY)
26
- : undefined;
27
- const next = saveElementMemo(projectId, pathname, elementKey, text, position);
28
- setElementMemos(next);
29
- setMemoComposer(null);
30
- }, [elementMemos, memoComposer, pathname, projectId]);
31
- const removeMemo = useCallback((elementKey) => {
32
- const next = deleteElementMemo(projectId, pathname, elementKey);
33
- setElementMemos(next);
34
- setMemoComposer(null);
35
- }, [pathname, projectId]);
36
- return {
37
- elementMemos,
38
- memoComposer,
39
- openMemoComposer,
40
- closeMemoComposer,
41
- saveElementMemo: saveMemo,
42
- deleteElementMemo: removeMemo,
43
- };
44
- }
45
- //# sourceMappingURL=useElementMemos.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useElementMemos.js","sourceRoot":"","sources":["../../../src/hooks/report/useElementMemos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAQpG,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,QAAgB;IAC/D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAiB,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9G,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAkC,IAAI,CAAC,CAAC;IAExF,SAAS,CAAC,GAAG,EAAE;QACX,eAAe,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvD,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1B,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,UAAkB,EAAE,OAAe,EAAE,OAAe,EAAE,EAAE;QAC1F,eAAe,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CACxB,CAAC,UAAkB,EAAE,IAAY,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,QAAQ,GACV,QAAQ,EAAE,aAAa,KAAK,SAAS,IAAI,QAAQ,EAAE,aAAa,KAAK,SAAS;YAC1E,CAAC,CAAC;gBACI,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;aACxC;YACH,CAAC,CAAC,YAAY,EAAE,UAAU,KAAK,UAAU;gBACvC,CAAC,CAAC,wBAAwB,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;gBAClF,CAAC,CAAC,SAAS,CAAC;QACtB,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9E,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EACD,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CACpD,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC1B,CAAC,UAAkB,EAAE,EAAE;QACnB,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAChE,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EACD,CAAC,QAAQ,EAAE,SAAS,CAAC,CACxB,CAAC;IAEF,OAAO;QACH,YAAY;QACZ,YAAY;QACZ,gBAAgB;QAChB,iBAAiB;QACjB,eAAe,EAAE,QAAQ;QACzB,iBAAiB,EAAE,UAAU;KAChC,CAAC;AACN,CAAC"}
@@ -1,17 +0,0 @@
1
- import type { MarkerClampEdge } from "../../types/report-ui.js";
2
- import type { ElementMemoEntry } from "./elementMemos.js";
3
- export declare const MEMO_MARKER_COLOR = "#f59e0b";
4
- export type MemoMarker = {
5
- elementKey: string;
6
- text: string;
7
- left: number;
8
- top: number;
9
- clampedEdge: MarkerClampEdge | null;
10
- };
11
- export declare function resolveMemoMarkerPosition(elementKey: string, entry: ElementMemoEntry): MemoMarker | null;
12
- export declare function resolveMemoMarkerPositions(memos: Record<string, ElementMemoEntry>): MemoMarker[];
13
- export declare function computeMemoElementRatios(elementKey: string, clientX: number, clientY: number): {
14
- elementXRatio: number;
15
- elementYRatio: number;
16
- };
17
- //# sourceMappingURL=elementMemoMarkers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elementMemoMarkers.d.ts","sourceRoot":"","sources":["../../../src/utils/memo/elementMemoMarkers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,MAAM,MAAM,UAAU,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,UAAU,GAAG,IAAI,CAgBxG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,gBAIjF;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;EAe5F"}
@@ -1,36 +0,0 @@
1
- import { getElementRatioMarkerPosition } from "../../utils/marker/coordinates.js";
2
- import { findElementByProbeKey } from "../../utils/probe/pickProbeSession.js";
3
- export const MEMO_MARKER_COLOR = "#f59e0b";
4
- export function resolveMemoMarkerPosition(elementKey, entry) {
5
- const element = findElementByProbeKey(elementKey);
6
- if (!element) {
7
- return null;
8
- }
9
- const position = getElementRatioMarkerPosition(element, entry.elementXRatio ?? 0.5, entry.elementYRatio ?? 0.5);
10
- return {
11
- elementKey,
12
- text: entry.text,
13
- left: position.left,
14
- top: position.top,
15
- clampedEdge: position.clampedEdge,
16
- };
17
- }
18
- export function resolveMemoMarkerPositions(memos) {
19
- return Object.entries(memos)
20
- .map(([elementKey, entry]) => resolveMemoMarkerPosition(elementKey, entry))
21
- .filter((marker) => marker !== null && marker.clampedEdge === null);
22
- }
23
- export function computeMemoElementRatios(elementKey, clientX, clientY) {
24
- const element = findElementByProbeKey(elementKey);
25
- if (!element) {
26
- return { elementXRatio: 0.5, elementYRatio: 0.5 };
27
- }
28
- const rect = element.getBoundingClientRect();
29
- const width = Math.max(rect.width, 1);
30
- const height = Math.max(rect.height, 1);
31
- return {
32
- elementXRatio: Math.min(1, Math.max(0, (clientX - rect.left) / width)),
33
- elementYRatio: Math.min(1, Math.max(0, (clientY - rect.top) / height)),
34
- };
35
- }
36
- //# sourceMappingURL=elementMemoMarkers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elementMemoMarkers.js","sourceRoot":"","sources":["../../../src/utils/memo/elementMemoMarkers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAU3C,MAAM,UAAU,yBAAyB,CAAC,UAAkB,EAAE,KAAuB;IACjF,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,6BAA6B,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,IAAI,GAAG,EAAE,KAAK,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;IAEhH,OAAO;QACH,UAAU;QACV,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,WAAW,EAAE,QAAQ,CAAC,WAAW;KACpC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAuC;IAC9E,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SAC1E,MAAM,CAAC,CAAC,MAAM,EAAwB,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAAkB,EAAE,OAAe,EAAE,OAAe;IACzF,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExC,OAAO;QACH,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACtE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;KACzE,CAAC;AACN,CAAC"}
@@ -1,15 +0,0 @@
1
- export type ElementMemoPosition = {
2
- elementXRatio: number;
3
- elementYRatio: number;
4
- };
5
- export type ElementMemoEntry = {
6
- text: string;
7
- updatedAt: string;
8
- elementXRatio?: number;
9
- elementYRatio?: number;
10
- };
11
- export type ElementMemoMap = Record<string, ElementMemoEntry>;
12
- export declare function readElementMemos(projectId: string, pathname: string): ElementMemoMap;
13
- export declare function saveElementMemo(projectId: string, pathname: string, elementKey: string, text: string, position?: ElementMemoPosition): ElementMemoMap;
14
- export declare function deleteElementMemo(projectId: string, pathname: string, elementKey: string): ElementMemoMap;
15
- //# sourceMappingURL=elementMemos.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elementMemos.d.ts","sourceRoot":"","sources":["../../../src/utils/memo/elementMemos.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAuF9D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAEnE;AAED,wBAAgB,eAAe,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,mBAAmB,kBAmBjC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAKxF"}
@@ -1,97 +0,0 @@
1
- import { getElementMemosStorageKey } from "../../constants/storageKeys.js";
2
- import { resolveProjectId } from "../../utils/report/projectId.js";
3
- const DEFAULT_POSITION = {
4
- elementXRatio: 0.5,
5
- elementYRatio: 0.5,
6
- };
7
- function normalizePosition(value) {
8
- if (!value || typeof value !== "object" || Array.isArray(value)) {
9
- return DEFAULT_POSITION;
10
- }
11
- const elementXRatio = "elementXRatio" in value && typeof value.elementXRatio === "number" ? value.elementXRatio : DEFAULT_POSITION.elementXRatio;
12
- const elementYRatio = "elementYRatio" in value && typeof value.elementYRatio === "number" ? value.elementYRatio : DEFAULT_POSITION.elementYRatio;
13
- return {
14
- elementXRatio: Math.min(1, Math.max(0, elementXRatio)),
15
- elementYRatio: Math.min(1, Math.max(0, elementYRatio)),
16
- };
17
- }
18
- function readMemoMap(projectId, pathname) {
19
- if (typeof window === "undefined") {
20
- return {};
21
- }
22
- try {
23
- const raw = window.localStorage.getItem(getElementMemosStorageKey(resolveProjectId(projectId), pathname));
24
- if (!raw) {
25
- return {};
26
- }
27
- const parsed = JSON.parse(raw);
28
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
29
- return {};
30
- }
31
- const next = {};
32
- for (const [elementKey, value] of Object.entries(parsed)) {
33
- if (!value || typeof value !== "object" || Array.isArray(value)) {
34
- continue;
35
- }
36
- const text = "text" in value && typeof value.text === "string" ? value.text.trim() : "";
37
- const updatedAt = "updatedAt" in value && typeof value.updatedAt === "string" ? value.updatedAt : "";
38
- if (!text) {
39
- continue;
40
- }
41
- const position = normalizePosition(value);
42
- next[elementKey] = {
43
- text,
44
- updatedAt: updatedAt || new Date(0).toISOString(),
45
- ...position,
46
- };
47
- }
48
- return next;
49
- }
50
- catch {
51
- return {};
52
- }
53
- }
54
- function writeMemoMap(projectId, pathname, memos) {
55
- if (typeof window === "undefined") {
56
- return;
57
- }
58
- try {
59
- const storageKey = getElementMemosStorageKey(resolveProjectId(projectId), pathname);
60
- if (Object.keys(memos).length === 0) {
61
- window.localStorage.removeItem(storageKey);
62
- return;
63
- }
64
- window.localStorage.setItem(storageKey, JSON.stringify(memos));
65
- }
66
- catch {
67
- // Ignore storage failures in restricted environments.
68
- }
69
- }
70
- export function readElementMemos(projectId, pathname) {
71
- return readMemoMap(projectId, pathname);
72
- }
73
- export function saveElementMemo(projectId, pathname, elementKey, text, position) {
74
- const trimmed = text.trim();
75
- const current = readMemoMap(projectId, pathname);
76
- const existing = current[elementKey];
77
- if (!trimmed) {
78
- delete current[elementKey];
79
- }
80
- else {
81
- current[elementKey] = {
82
- text: trimmed,
83
- updatedAt: new Date().toISOString(),
84
- elementXRatio: position?.elementXRatio ?? existing?.elementXRatio ?? DEFAULT_POSITION.elementXRatio,
85
- elementYRatio: position?.elementYRatio ?? existing?.elementYRatio ?? DEFAULT_POSITION.elementYRatio,
86
- };
87
- }
88
- writeMemoMap(projectId, pathname, current);
89
- return current;
90
- }
91
- export function deleteElementMemo(projectId, pathname, elementKey) {
92
- const current = readMemoMap(projectId, pathname);
93
- delete current[elementKey];
94
- writeMemoMap(projectId, pathname, current);
95
- return current;
96
- }
97
- //# sourceMappingURL=elementMemos.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elementMemos.js","sourceRoot":"","sources":["../../../src/utils/memo/elementMemos.ts"],"names":[],"mappings":"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"}