@fivepixels-js/react 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +648 -0
  3. package/dist/components/ShortcutHint.d.ts +8 -0
  4. package/dist/components/ShortcutHint.d.ts.map +1 -0
  5. package/dist/components/ShortcutHint.js +9 -0
  6. package/dist/components/ShortcutHint.js.map +1 -0
  7. package/dist/components/icons/Icons.d.ts +70 -0
  8. package/dist/components/icons/Icons.d.ts.map +1 -0
  9. package/dist/components/icons/Icons.js +127 -0
  10. package/dist/components/icons/Icons.js.map +1 -0
  11. package/dist/components/icons/MaterialIcon.d.ts +8 -0
  12. package/dist/components/icons/MaterialIcon.d.ts.map +1 -0
  13. package/dist/components/icons/MaterialIcon.js +5 -0
  14. package/dist/components/icons/MaterialIcon.js.map +1 -0
  15. package/dist/components/motion/index.d.ts +48 -0
  16. package/dist/components/motion/index.d.ts.map +1 -0
  17. package/dist/components/motion/index.js +910 -0
  18. package/dist/components/motion/index.js.map +1 -0
  19. package/dist/components/overlay/ReportOverlayLayer.d.ts +7 -0
  20. package/dist/components/overlay/ReportOverlayLayer.d.ts.map +1 -0
  21. package/dist/components/overlay/ReportOverlayLayer.js +14 -0
  22. package/dist/components/overlay/ReportOverlayLayer.js.map +1 -0
  23. package/dist/components/overlay/TargetHighlights.d.ts +9 -0
  24. package/dist/components/overlay/TargetHighlights.d.ts.map +1 -0
  25. package/dist/components/overlay/TargetHighlights.js +24 -0
  26. package/dist/components/overlay/TargetHighlights.js.map +1 -0
  27. package/dist/components/panel/PanelDockGuides.d.ts +8 -0
  28. package/dist/components/panel/PanelDockGuides.d.ts.map +1 -0
  29. package/dist/components/panel/PanelDockGuides.js +15 -0
  30. package/dist/components/panel/PanelDockGuides.js.map +1 -0
  31. package/dist/components/panel/PanelDropdownMenu.d.ts +19 -0
  32. package/dist/components/panel/PanelDropdownMenu.d.ts.map +1 -0
  33. package/dist/components/panel/PanelDropdownMenu.js +132 -0
  34. package/dist/components/panel/PanelDropdownMenu.js.map +1 -0
  35. package/dist/components/panel/PanelMoreMenu.d.ts +20 -0
  36. package/dist/components/panel/PanelMoreMenu.d.ts.map +1 -0
  37. package/dist/components/panel/PanelMoreMenu.js +20 -0
  38. package/dist/components/panel/PanelMoreMenu.js.map +1 -0
  39. package/dist/components/panel/PanelOptionSwitch.d.ts +14 -0
  40. package/dist/components/panel/PanelOptionSwitch.d.ts.map +1 -0
  41. package/dist/components/panel/PanelOptionSwitch.js +10 -0
  42. package/dist/components/panel/PanelOptionSwitch.js.map +1 -0
  43. package/dist/components/panel/ReportCommandPanel.d.ts +18 -0
  44. package/dist/components/panel/ReportCommandPanel.d.ts.map +1 -0
  45. package/dist/components/panel/ReportCommandPanel.js +43 -0
  46. package/dist/components/panel/ReportCommandPanel.js.map +1 -0
  47. package/dist/components/panel/ReportCommandReplaceConfirmDialog.d.ts +9 -0
  48. package/dist/components/panel/ReportCommandReplaceConfirmDialog.d.ts.map +1 -0
  49. package/dist/components/panel/ReportCommandReplaceConfirmDialog.js +7 -0
  50. package/dist/components/panel/ReportCommandReplaceConfirmDialog.js.map +1 -0
  51. package/dist/components/panel/ReportControlPanel.d.ts +2 -0
  52. package/dist/components/panel/ReportControlPanel.d.ts.map +1 -0
  53. package/dist/components/panel/ReportControlPanel.js +119 -0
  54. package/dist/components/panel/ReportControlPanel.js.map +1 -0
  55. package/dist/components/panel/ReportDraftForm.d.ts +2 -0
  56. package/dist/components/panel/ReportDraftForm.d.ts.map +1 -0
  57. package/dist/components/panel/ReportDraftForm.js +33 -0
  58. package/dist/components/panel/ReportDraftForm.js.map +1 -0
  59. package/dist/components/panel/ReportFeedbackList.d.ts +2 -0
  60. package/dist/components/panel/ReportFeedbackList.d.ts.map +1 -0
  61. package/dist/components/panel/ReportFeedbackList.js +165 -0
  62. package/dist/components/panel/ReportFeedbackList.js.map +1 -0
  63. package/dist/components/panel/ReportImportConfirmDialog.d.ts +8 -0
  64. package/dist/components/panel/ReportImportConfirmDialog.d.ts.map +1 -0
  65. package/dist/components/panel/ReportImportConfirmDialog.js +7 -0
  66. package/dist/components/panel/ReportImportConfirmDialog.js.map +1 -0
  67. package/dist/components/panel/ReportImportProjectMismatchDialog.d.ts +12 -0
  68. package/dist/components/panel/ReportImportProjectMismatchDialog.d.ts.map +1 -0
  69. package/dist/components/panel/ReportImportProjectMismatchDialog.js +19 -0
  70. package/dist/components/panel/ReportImportProjectMismatchDialog.js.map +1 -0
  71. package/dist/components/panel/ReportPersonalKeyDialog.d.ts +8 -0
  72. package/dist/components/panel/ReportPersonalKeyDialog.d.ts.map +1 -0
  73. package/dist/components/panel/ReportPersonalKeyDialog.js +60 -0
  74. package/dist/components/panel/ReportPersonalKeyDialog.js.map +1 -0
  75. package/dist/components/panel/ReportRouteDetails.d.ts +2 -0
  76. package/dist/components/panel/ReportRouteDetails.d.ts.map +1 -0
  77. package/dist/components/panel/ReportRouteDetails.js +18 -0
  78. package/dist/components/panel/ReportRouteDetails.js.map +1 -0
  79. package/dist/components/panel/feedback/AuthorSelector.d.ts +9 -0
  80. package/dist/components/panel/feedback/AuthorSelector.d.ts.map +1 -0
  81. package/dist/components/panel/feedback/AuthorSelector.js +17 -0
  82. package/dist/components/panel/feedback/AuthorSelector.js.map +1 -0
  83. package/dist/components/panel/feedback/FeedbackComposer.d.ts +23 -0
  84. package/dist/components/panel/feedback/FeedbackComposer.d.ts.map +1 -0
  85. package/dist/components/panel/feedback/FeedbackComposer.js +48 -0
  86. package/dist/components/panel/feedback/FeedbackComposer.js.map +1 -0
  87. package/dist/components/panel/feedback/FeedbackCreatorBadge.d.ts +2 -0
  88. package/dist/components/panel/feedback/FeedbackCreatorBadge.d.ts.map +1 -0
  89. package/dist/components/panel/feedback/FeedbackCreatorBadge.js +7 -0
  90. package/dist/components/panel/feedback/FeedbackCreatorBadge.js.map +1 -0
  91. package/dist/components/panel/feedback/FeedbackFieldTags.d.ts +9 -0
  92. package/dist/components/panel/feedback/FeedbackFieldTags.d.ts.map +1 -0
  93. package/dist/components/panel/feedback/FeedbackFieldTags.js +8 -0
  94. package/dist/components/panel/feedback/FeedbackFieldTags.js.map +1 -0
  95. package/dist/components/panel/feedback/FeedbackHoverCard.d.ts +11 -0
  96. package/dist/components/panel/feedback/FeedbackHoverCard.d.ts.map +1 -0
  97. package/dist/components/panel/feedback/FeedbackHoverCard.js +14 -0
  98. package/dist/components/panel/feedback/FeedbackHoverCard.js.map +1 -0
  99. package/dist/components/panel/feedback/FeedbackIssueHeader.d.ts +12 -0
  100. package/dist/components/panel/feedback/FeedbackIssueHeader.d.ts.map +1 -0
  101. package/dist/components/panel/feedback/FeedbackIssueHeader.js +10 -0
  102. package/dist/components/panel/feedback/FeedbackIssueHeader.js.map +1 -0
  103. package/dist/components/panel/feedback/FeedbackStatusBadge.d.ts +8 -0
  104. package/dist/components/panel/feedback/FeedbackStatusBadge.d.ts.map +1 -0
  105. package/dist/components/panel/feedback/FeedbackStatusBadge.js +10 -0
  106. package/dist/components/panel/feedback/FeedbackStatusBadge.js.map +1 -0
  107. package/dist/components/panel/feedback/FeedbackThread.d.ts +21 -0
  108. package/dist/components/panel/feedback/FeedbackThread.d.ts.map +1 -0
  109. package/dist/components/panel/feedback/FeedbackThread.js +90 -0
  110. package/dist/components/panel/feedback/FeedbackThread.js.map +1 -0
  111. package/dist/components/panel/feedback/FieldTagSelector.d.ts +9 -0
  112. package/dist/components/panel/feedback/FieldTagSelector.d.ts.map +1 -0
  113. package/dist/components/panel/feedback/FieldTagSelector.js +15 -0
  114. package/dist/components/panel/feedback/FieldTagSelector.js.map +1 -0
  115. package/dist/components/panel/feedback/GitIssueButton.d.ts +12 -0
  116. package/dist/components/panel/feedback/GitIssueButton.d.ts.map +1 -0
  117. package/dist/components/panel/feedback/GitIssueButton.js +43 -0
  118. package/dist/components/panel/feedback/GitIssueButton.js.map +1 -0
  119. package/dist/components/panel/feedback/GitIssuedThreadEntry.d.ts +8 -0
  120. package/dist/components/panel/feedback/GitIssuedThreadEntry.d.ts.map +1 -0
  121. package/dist/components/panel/feedback/GitIssuedThreadEntry.js +25 -0
  122. package/dist/components/panel/feedback/GitIssuedThreadEntry.js.map +1 -0
  123. package/dist/components/point/ReportDraftMarker.d.ts +2 -0
  124. package/dist/components/point/ReportDraftMarker.d.ts.map +1 -0
  125. package/dist/components/point/ReportDraftMarker.js +28 -0
  126. package/dist/components/point/ReportDraftMarker.js.map +1 -0
  127. package/dist/components/point/ReportMarkersLayer.d.ts +2 -0
  128. package/dist/components/point/ReportMarkersLayer.d.ts.map +1 -0
  129. package/dist/components/point/ReportMarkersLayer.js +129 -0
  130. package/dist/components/point/ReportMarkersLayer.js.map +1 -0
  131. package/dist/components/report/FivePixels.d.ts +50 -0
  132. package/dist/components/report/FivePixels.d.ts.map +1 -0
  133. package/dist/components/report/FivePixels.js +15 -0
  134. package/dist/components/report/FivePixels.js.map +1 -0
  135. package/dist/components/report/ReportView.d.ts +2 -0
  136. package/dist/components/report/ReportView.d.ts.map +1 -0
  137. package/dist/components/report/ReportView.js +14 -0
  138. package/dist/components/report/ReportView.js.map +1 -0
  139. package/dist/components/report/ShadowReportRoot.d.ts +9 -0
  140. package/dist/components/report/ShadowReportRoot.d.ts.map +1 -0
  141. package/dist/components/report/ShadowReportRoot.js +80 -0
  142. package/dist/components/report/ShadowReportRoot.js.map +1 -0
  143. package/dist/components/report/index.d.ts +13 -0
  144. package/dist/components/report/index.d.ts.map +1 -0
  145. package/dist/components/report/index.js +9 -0
  146. package/dist/components/report/index.js.map +1 -0
  147. package/dist/components/ui/HoverTooltip.d.ts +10 -0
  148. package/dist/components/ui/HoverTooltip.d.ts.map +1 -0
  149. package/dist/components/ui/HoverTooltip.js +64 -0
  150. package/dist/components/ui/HoverTooltip.js.map +1 -0
  151. package/dist/components/ui/IconTooltipButton.d.ts +12 -0
  152. package/dist/components/ui/IconTooltipButton.d.ts.map +1 -0
  153. package/dist/components/ui/IconTooltipButton.js +7 -0
  154. package/dist/components/ui/IconTooltipButton.js.map +1 -0
  155. package/dist/constants/feedbackStatus.d.ts +6 -0
  156. package/dist/constants/feedbackStatus.d.ts.map +1 -0
  157. package/dist/constants/feedbackStatus.js +27 -0
  158. package/dist/constants/feedbackStatus.js.map +1 -0
  159. package/dist/constants/project.d.ts +2 -0
  160. package/dist/constants/project.d.ts.map +1 -0
  161. package/dist/constants/project.js +2 -0
  162. package/dist/constants/project.js.map +1 -0
  163. package/dist/constants/report.d.ts +7 -0
  164. package/dist/constants/report.d.ts.map +1 -0
  165. package/dist/constants/report.js +14 -0
  166. package/dist/constants/report.js.map +1 -0
  167. package/dist/constants/reportShortcuts.d.ts +31 -0
  168. package/dist/constants/reportShortcuts.d.ts.map +1 -0
  169. package/dist/constants/reportShortcuts.js +9 -0
  170. package/dist/constants/reportShortcuts.js.map +1 -0
  171. package/dist/constants/storageKeys.d.ts +5 -0
  172. package/dist/constants/storageKeys.d.ts.map +1 -0
  173. package/dist/constants/storageKeys.js +16 -0
  174. package/dist/constants/storageKeys.js.map +1 -0
  175. package/dist/hooks/report.api.d.ts +8 -0
  176. package/dist/hooks/report.api.d.ts.map +1 -0
  177. package/dist/hooks/report.api.js +20 -0
  178. package/dist/hooks/report.api.js.map +1 -0
  179. package/dist/hooks/report.query.d.ts +27 -0
  180. package/dist/hooks/report.query.d.ts.map +1 -0
  181. package/dist/hooks/report.query.js +137 -0
  182. package/dist/hooks/report.query.js.map +1 -0
  183. package/dist/hooks/useAppearancePreference.d.ts +6 -0
  184. package/dist/hooks/useAppearancePreference.d.ts.map +1 -0
  185. package/dist/hooks/useAppearancePreference.js +40 -0
  186. package/dist/hooks/useAppearancePreference.js.map +1 -0
  187. package/dist/hooks/useCurrentPathname.d.ts +2 -0
  188. package/dist/hooks/useCurrentPathname.d.ts.map +1 -0
  189. package/dist/hooks/useCurrentPathname.js +18 -0
  190. package/dist/hooks/useCurrentPathname.js.map +1 -0
  191. package/dist/hooks/useIsMobileViewport.d.ts +2 -0
  192. package/dist/hooks/useIsMobileViewport.d.ts.map +1 -0
  193. package/dist/hooks/useIsMobileViewport.js +12 -0
  194. package/dist/hooks/useIsMobileViewport.js.map +1 -0
  195. package/dist/hooks/useLocalePreference.d.ts +6 -0
  196. package/dist/hooks/useLocalePreference.d.ts.map +1 -0
  197. package/dist/hooks/useLocalePreference.js +40 -0
  198. package/dist/hooks/useLocalePreference.js.map +1 -0
  199. package/dist/hooks/useNativeHover.d.ts +7 -0
  200. package/dist/hooks/useNativeHover.d.ts.map +1 -0
  201. package/dist/hooks/useNativeHover.js +28 -0
  202. package/dist/hooks/useNativeHover.js.map +1 -0
  203. package/dist/hooks/usePanelDock.d.ts +29 -0
  204. package/dist/hooks/usePanelDock.d.ts.map +1 -0
  205. package/dist/hooks/usePanelDock.js +279 -0
  206. package/dist/hooks/usePanelDock.js.map +1 -0
  207. package/dist/hooks/usePanelFeedbackTransfer.d.ts +59 -0
  208. package/dist/hooks/usePanelFeedbackTransfer.d.ts.map +1 -0
  209. package/dist/hooks/usePanelFeedbackTransfer.js +250 -0
  210. package/dist/hooks/usePanelFeedbackTransfer.js.map +1 -0
  211. package/dist/hooks/usePersonalKey.d.ts +30 -0
  212. package/dist/hooks/usePersonalKey.d.ts.map +1 -0
  213. package/dist/hooks/usePersonalKey.js +72 -0
  214. package/dist/hooks/usePersonalKey.js.map +1 -0
  215. package/dist/hooks/useReportPersistence.d.ts +63 -0
  216. package/dist/hooks/useReportPersistence.d.ts.map +1 -0
  217. package/dist/hooks/useReportPersistence.js +142 -0
  218. package/dist/hooks/useReportPersistence.js.map +1 -0
  219. package/dist/hooks/useReportShortcuts.d.ts +5 -0
  220. package/dist/hooks/useReportShortcuts.d.ts.map +1 -0
  221. package/dist/hooks/useReportShortcuts.js +117 -0
  222. package/dist/hooks/useReportShortcuts.js.map +1 -0
  223. package/dist/hooks/useReportState.d.ts +177 -0
  224. package/dist/hooks/useReportState.d.ts.map +1 -0
  225. package/dist/hooks/useReportState.js +904 -0
  226. package/dist/hooks/useReportState.js.map +1 -0
  227. package/dist/hooks/useResolvedAppearance.d.ts +4 -0
  228. package/dist/hooks/useResolvedAppearance.d.ts.map +1 -0
  229. package/dist/hooks/useResolvedAppearance.js +23 -0
  230. package/dist/hooks/useResolvedAppearance.js.map +1 -0
  231. package/dist/hooks/useTooltipLayout.d.ts +21 -0
  232. package/dist/hooks/useTooltipLayout.d.ts.map +1 -0
  233. package/dist/hooks/useTooltipLayout.js +45 -0
  234. package/dist/hooks/useTooltipLayout.js.map +1 -0
  235. package/dist/i18n/en.d.ts +3 -0
  236. package/dist/i18n/en.d.ts.map +1 -0
  237. package/dist/i18n/en.js +277 -0
  238. package/dist/i18n/en.js.map +1 -0
  239. package/dist/i18n/index.d.ts +20 -0
  240. package/dist/i18n/index.d.ts.map +1 -0
  241. package/dist/i18n/index.js +77 -0
  242. package/dist/i18n/index.js.map +1 -0
  243. package/dist/i18n/ko.d.ts +3 -0
  244. package/dist/i18n/ko.d.ts.map +1 -0
  245. package/dist/i18n/ko.js +277 -0
  246. package/dist/i18n/ko.js.map +1 -0
  247. package/dist/i18n/types.d.ts +267 -0
  248. package/dist/i18n/types.d.ts.map +1 -0
  249. package/dist/i18n/types.js +2 -0
  250. package/dist/i18n/types.js.map +1 -0
  251. package/dist/index.d.ts +4 -0
  252. package/dist/index.d.ts.map +1 -0
  253. package/dist/index.js +3 -0
  254. package/dist/index.js.map +1 -0
  255. package/dist/providers/ReportProvider.d.ts +52 -0
  256. package/dist/providers/ReportProvider.d.ts.map +1 -0
  257. package/dist/providers/ReportProvider.js +49 -0
  258. package/dist/providers/ReportProvider.js.map +1 -0
  259. package/dist/providers/reportContext.d.ts +286 -0
  260. package/dist/providers/reportContext.d.ts.map +1 -0
  261. package/dist/providers/reportContext.js +11 -0
  262. package/dist/providers/reportContext.js.map +1 -0
  263. package/dist/storage/local/localStorageAdapter.d.ts +12 -0
  264. package/dist/storage/local/localStorageAdapter.d.ts.map +1 -0
  265. package/dist/storage/local/localStorageAdapter.js +187 -0
  266. package/dist/storage/local/localStorageAdapter.js.map +1 -0
  267. package/dist/styles/reportStylesheet.d.ts +2 -0
  268. package/dist/styles/reportStylesheet.d.ts.map +1 -0
  269. package/dist/styles/reportStylesheet.js +3 -0
  270. package/dist/styles/reportStylesheet.js.map +1 -0
  271. package/dist/types/report-ui.d.ts +47 -0
  272. package/dist/types/report-ui.d.ts.map +1 -0
  273. package/dist/types/report-ui.js +2 -0
  274. package/dist/types/report-ui.js.map +1 -0
  275. package/dist/types/report.d.ts +177 -0
  276. package/dist/types/report.d.ts.map +1 -0
  277. package/dist/types/report.js +8 -0
  278. package/dist/types/report.js.map +1 -0
  279. package/dist/utils/coordinates.d.ts +63 -0
  280. package/dist/utils/coordinates.d.ts.map +1 -0
  281. package/dist/utils/coordinates.js +236 -0
  282. package/dist/utils/coordinates.js.map +1 -0
  283. package/dist/utils/dom.d.ts +14 -0
  284. package/dist/utils/dom.d.ts.map +1 -0
  285. package/dist/utils/dom.js +104 -0
  286. package/dist/utils/dom.js.map +1 -0
  287. package/dist/utils/env.d.ts +6 -0
  288. package/dist/utils/env.d.ts.map +1 -0
  289. package/dist/utils/env.js +18 -0
  290. package/dist/utils/env.js.map +1 -0
  291. package/dist/utils/feedbackDataTransfer.d.ts +31 -0
  292. package/dist/utils/feedbackDataTransfer.d.ts.map +1 -0
  293. package/dist/utils/feedbackDataTransfer.js +195 -0
  294. package/dist/utils/feedbackDataTransfer.js.map +1 -0
  295. package/dist/utils/feedbackThread.d.ts +14 -0
  296. package/dist/utils/feedbackThread.d.ts.map +1 -0
  297. package/dist/utils/feedbackThread.js +57 -0
  298. package/dist/utils/feedbackThread.js.map +1 -0
  299. package/dist/utils/feedbackTransferSchema.d.ts +37 -0
  300. package/dist/utils/feedbackTransferSchema.d.ts.map +1 -0
  301. package/dist/utils/feedbackTransferSchema.js +162 -0
  302. package/dist/utils/feedbackTransferSchema.js.map +1 -0
  303. package/dist/utils/fields.d.ts +11 -0
  304. package/dist/utils/fields.d.ts.map +1 -0
  305. package/dist/utils/fields.js +43 -0
  306. package/dist/utils/fields.js.map +1 -0
  307. package/dist/utils/format.d.ts +6 -0
  308. package/dist/utils/format.d.ts.map +1 -0
  309. package/dist/utils/format.js +46 -0
  310. package/dist/utils/format.js.map +1 -0
  311. package/dist/utils/formatStatCount.d.ts +2 -0
  312. package/dist/utils/formatStatCount.d.ts.map +1 -0
  313. package/dist/utils/formatStatCount.js +4 -0
  314. package/dist/utils/formatStatCount.js.map +1 -0
  315. package/dist/utils/githubIntegration.d.ts +12 -0
  316. package/dist/utils/githubIntegration.d.ts.map +1 -0
  317. package/dist/utils/githubIntegration.js +56 -0
  318. package/dist/utils/githubIntegration.js.map +1 -0
  319. package/dist/utils/hoverTooltipLayout.d.ts +8 -0
  320. package/dist/utils/hoverTooltipLayout.d.ts.map +1 -0
  321. package/dist/utils/hoverTooltipLayout.js +30 -0
  322. package/dist/utils/hoverTooltipLayout.js.map +1 -0
  323. package/dist/utils/locateFeedback.d.ts +11 -0
  324. package/dist/utils/locateFeedback.d.ts.map +1 -0
  325. package/dist/utils/locateFeedback.js +16 -0
  326. package/dist/utils/locateFeedback.js.map +1 -0
  327. package/dist/utils/panelTypography.d.ts +4 -0
  328. package/dist/utils/panelTypography.d.ts.map +1 -0
  329. package/dist/utils/panelTypography.js +4 -0
  330. package/dist/utils/panelTypography.js.map +1 -0
  331. package/dist/utils/pathname.d.ts +2 -0
  332. package/dist/utils/pathname.d.ts.map +1 -0
  333. package/dist/utils/pathname.js +10 -0
  334. package/dist/utils/pathname.js.map +1 -0
  335. package/dist/utils/pathnameNavigation.d.ts +4 -0
  336. package/dist/utils/pathnameNavigation.d.ts.map +1 -0
  337. package/dist/utils/pathnameNavigation.js +52 -0
  338. package/dist/utils/pathnameNavigation.js.map +1 -0
  339. package/dist/utils/personalKey.d.ts +45 -0
  340. package/dist/utils/personalKey.d.ts.map +1 -0
  341. package/dist/utils/personalKey.js +180 -0
  342. package/dist/utils/personalKey.js.map +1 -0
  343. package/dist/utils/projectId.d.ts +2 -0
  344. package/dist/utils/projectId.d.ts.map +1 -0
  345. package/dist/utils/projectId.js +14 -0
  346. package/dist/utils/projectId.js.map +1 -0
  347. package/dist/utils/reportCallbacks.d.ts +20 -0
  348. package/dist/utils/reportCallbacks.d.ts.map +1 -0
  349. package/dist/utils/reportCallbacks.js +42 -0
  350. package/dist/utils/reportCallbacks.js.map +1 -0
  351. package/dist/utils/reportProject.d.ts +17 -0
  352. package/dist/utils/reportProject.d.ts.map +1 -0
  353. package/dist/utils/reportProject.js +9 -0
  354. package/dist/utils/reportProject.js.map +1 -0
  355. package/dist/utils/reportTeam.d.ts +15 -0
  356. package/dist/utils/reportTeam.d.ts.map +1 -0
  357. package/dist/utils/reportTeam.js +8 -0
  358. package/dist/utils/reportTeam.js.map +1 -0
  359. package/dist/utils/reportUi.d.ts +24 -0
  360. package/dist/utils/reportUi.d.ts.map +1 -0
  361. package/dist/utils/reportUi.js +19 -0
  362. package/dist/utils/reportUi.js.map +1 -0
  363. package/dist/utils/reportVisibility.d.ts +19 -0
  364. package/dist/utils/reportVisibility.d.ts.map +1 -0
  365. package/dist/utils/reportVisibility.js +12 -0
  366. package/dist/utils/reportVisibility.js.map +1 -0
  367. package/dist/utils/reportVisual.d.ts +12 -0
  368. package/dist/utils/reportVisual.d.ts.map +1 -0
  369. package/dist/utils/reportVisual.js +31 -0
  370. package/dist/utils/reportVisual.js.map +1 -0
  371. package/dist/utils/routeDetailStatus.d.ts +7 -0
  372. package/dist/utils/routeDetailStatus.d.ts.map +1 -0
  373. package/dist/utils/routeDetailStatus.js +29 -0
  374. package/dist/utils/routeDetailStatus.js.map +1 -0
  375. package/dist/utils/shortcuts.d.ts +12 -0
  376. package/dist/utils/shortcuts.d.ts.map +1 -0
  377. package/dist/utils/shortcuts.js +59 -0
  378. package/dist/utils/shortcuts.js.map +1 -0
  379. package/dist/utils/storage.d.ts +17 -0
  380. package/dist/utils/storage.d.ts.map +1 -0
  381. package/dist/utils/storage.js +36 -0
  382. package/dist/utils/storage.js.map +1 -0
  383. package/dist/utils/validateFeedbackImport.d.ts +4 -0
  384. package/dist/utils/validateFeedbackImport.d.ts.map +1 -0
  385. package/dist/utils/validateFeedbackImport.js +187 -0
  386. package/dist/utils/validateFeedbackImport.js.map +1 -0
  387. package/package.json +68 -0
@@ -0,0 +1,119 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { panelAnchorSide, placementToCollapsedPanelStyle, usePanelDock } from "../../hooks/usePanelDock.js";
4
+ import { usePanelFeedbackTransfer } from "../../hooks/usePanelFeedbackTransfer.js";
5
+ import { useReport } from "../../providers/reportContext.js";
6
+ import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, EyeOpenIcon, LogoIcon, RouteWaitStatusIcon, SelectIcon } from "../../components/icons/Icons.js";
7
+ import { IconTooltipButton } from "../../components/ui/IconTooltipButton.js";
8
+ import { HoverTooltip } from "../../components/ui/HoverTooltip.js";
9
+ import { PanelDockGuides } from "./PanelDockGuides.js";
10
+ import { ReportFeedbackList } from "./ReportFeedbackList.js";
11
+ import { ReportRouteDetails } from "./ReportRouteDetails.js";
12
+ import { ReportCommandPanel } from "./ReportCommandPanel.js";
13
+ import { ReportCommandReplaceConfirmDialog } from "./ReportCommandReplaceConfirmDialog.js";
14
+ import { ReportImportConfirmDialog } from "./ReportImportConfirmDialog.js";
15
+ import { ReportImportProjectMismatchDialog } from "./ReportImportProjectMismatchDialog.js";
16
+ import { ReportPersonalKeyDialog } from "./ReportPersonalKeyDialog.js";
17
+ import { PanelMoreMenu } from "./PanelMoreMenu.js";
18
+ import { formatStatCount } from "../../utils/formatStatCount.js";
19
+ import { panelNumericClassName } from "../../utils/panelTypography.js";
20
+ function PanelCollapseTab({ collapsed, anchorSide, onClick, messages }) {
21
+ const hideIcon = anchorSide === "right" ? _jsx(ChevronRightIcon, { className: "h-4 w-4" }) : _jsx(ChevronLeftIcon, { className: "h-4 w-4" });
22
+ const expandIcon = anchorSide === "right" ? _jsx(ChevronLeftIcon, { className: "h-4 w-4" }) : _jsx(ChevronRightIcon, { className: "h-4 w-4" });
23
+ return (_jsx(HoverTooltip, { label: collapsed ? messages.panel.expand : messages.panel.collapse, children: _jsx("button", { type: "button", onClick: onClick, "aria-expanded": !collapsed, "aria-label": collapsed ? messages.panel.expand : messages.panel.collapse, className: collapsed
24
+ ? anchorSide === "right"
25
+ ? "flex h-[105px] w-[32px] items-center justify-center rounded-l-[12px] rounded-r-none bg-[var(--adaptive-black200)] text-[var(--adaptive-blue500)] shadow-[0_0_24px_0_rgba(0,0,0,0.35)]"
26
+ : "flex h-[105px] w-[32px] items-center justify-center rounded-r-[12px] rounded-l-none bg-[var(--adaptive-black200)] text-[var(--adaptive-blue500)] shadow-[0_0_24px_0_rgba(0,0,0,0.35)]"
27
+ : "flex items-center justify-center px-[4px] py-[8px] text-[var(--adaptive-text-muted)]", children: collapsed ? expandIcon : hideIcon }) }));
28
+ }
29
+ function PanelTabButton({ label, active, onClick }) {
30
+ return (_jsxs("button", { type: "button", onClick: onClick, className: `flex flex-1 items-center justify-center gap-[6px] px-[10px] py-[2px] ${active ? "bg-[var(--adaptive-black100)] text-[var(--adaptive-black900)]" : "text-[var(--adaptive-black600)]"}`, children: [_jsx("p", { className: "font-[500]", children: label }), _jsx(ChevronDownIcon, { className: `h-4 w-4 shrink-0 transition-transform ${active ? "rotate-180" : ""}` })] }));
31
+ }
32
+ function EnvironmentBadge({ environment }) {
33
+ if (!environment) {
34
+ return null;
35
+ }
36
+ return (_jsxs("span", { className: "inline-flex items-center gap-[4px] rounded-full border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-black50)] px-[4px] py-[2px]", children: [_jsx("span", { className: "text-[12px] text-[var(--adaptive-black500)]", children: environment }), _jsx("span", { className: "inline-flex h-[4px] w-[4px] rounded-full bg-[var(--adaptive-green500)]", "aria-hidden": true })] }));
37
+ }
38
+ const RECORDING_STATUS_SHADOW = "drop-shadow(0 1px 2px rgba(0,0,0,0.95)) drop-shadow(0 2px 6px rgba(0,0,0,0.9)) drop-shadow(0 4px 16px rgba(0,0,0,0.85)) drop-shadow(0 0 24px rgba(0,0,0,0.75))";
39
+ export function ReportControlPanel() {
40
+ const { mode, targetStats, statusText, errorMessage, environment, projectId, appVersion, showFeedbackList, showTargetPreview, isMobileViewport, panelTab, appearance, setAppearance, canTransferFeedback, personalKey, publicKey, personalKeyRequired, personalKeyPendingRegistration, messages, toggleReportMode, toggleTargetPreview, toggleIssueMode, openPanelTab, setErrorMessage, refetch, } = useReport();
41
+ const [panelCollapsed, setPanelCollapsed] = useState(false);
42
+ const [moreMenuOpen, setMoreMenuOpen] = useState(false);
43
+ const [personalKeyStep, setPersonalKeyStep] = useState("none");
44
+ const [personalKeyNotice, setPersonalKeyNotice] = useState("");
45
+ const isRecording = mode === "report";
46
+ const isIssueMode = mode === "view";
47
+ const transferScope = { projectId, environment, appVersion };
48
+ const { isDragOver, pendingImport, importStep, pendingCommand, commandConflicts, commandStep, commandNotice, setCommandNotice, handleExport, handleImportFromMenu, handleOpenCommand, handleCloseCommand, handleCommandExecute, handleCancelCommandReplace, handleConfirmCommandReplace, handleCancelImport, handleProceedImportAfterMismatch, handleApplyImport, handleBackupAndApplyImport, handleDragEnter, handleDragLeave, handleDragOver, handleDrop, } = usePanelFeedbackTransfer({
49
+ transferScope,
50
+ canTransferFeedback,
51
+ messages,
52
+ setErrorMessage,
53
+ refetch,
54
+ openPanelTab,
55
+ onMoreMenuClose: () => setMoreMenuOpen(false),
56
+ isRecording,
57
+ });
58
+ const { panelRef, panelStyle, placementCorner, isDragging, activeCorner, handleDragHandlePointerDown } = usePanelDock({
59
+ enabled: !isMobileViewport,
60
+ measureKey: `${panelCollapsed}-${isRecording}-${panelTab ?? "none"}-${isIssueMode}-${importStep !== "none" ? "import" : "none"}-${commandStep !== "none" ? "command" : "none"}`,
61
+ });
62
+ const anchorSide = panelAnchorSide(placementCorner);
63
+ useEffect(() => {
64
+ if (personalKeyRequired && !personalKey) {
65
+ setPersonalKeyStep("required");
66
+ }
67
+ }, [personalKey, personalKeyRequired]);
68
+ const handleKeyCopy = async () => {
69
+ if (!personalKey) {
70
+ return;
71
+ }
72
+ try {
73
+ await navigator.clipboard.writeText(personalKey);
74
+ setPersonalKeyNotice(messages.personalKey.copySuccess);
75
+ setMoreMenuOpen(false);
76
+ }
77
+ catch {
78
+ setErrorMessage(messages.errors.clipboardCopyFailed);
79
+ }
80
+ };
81
+ const handlePublicKeyCopy = async () => {
82
+ if (!publicKey) {
83
+ return;
84
+ }
85
+ try {
86
+ await navigator.clipboard.writeText(publicKey);
87
+ setPersonalKeyNotice(messages.personalKey.publicKeyCopied);
88
+ setMoreMenuOpen(false);
89
+ }
90
+ catch {
91
+ setErrorMessage(messages.errors.clipboardCopyFailed);
92
+ }
93
+ };
94
+ const handlePanelTabClick = (tab) => {
95
+ openPanelTab(tab);
96
+ };
97
+ const handleTogglePanelCollapsed = () => {
98
+ setMoreMenuOpen(false);
99
+ setPanelCollapsed((current) => !current);
100
+ };
101
+ const resolvedPanelStyle = panelCollapsed && !isRecording ? placementToCollapsedPanelStyle({ corner: placementCorner }) : panelStyle;
102
+ return (_jsxs(_Fragment, { children: [_jsx(PanelDockGuides, { visible: isDragging, activeCorner: activeCorner }), _jsx("div", { ref: panelRef, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, className: `pointer-events-auto fixed z-[1000000] flex ${isRecording
103
+ ? "min-h-[40px] bg-[var(--adaptive-surface-overlay)] p-[4px] backdrop-blur-[50px] rounded-[12px] shadow-[0_0_120px_0_var(--adaptive-blackOpacity500)]"
104
+ : panelCollapsed
105
+ ? ""
106
+ : "max-h-[calc(100svh-(16px*2))] max-w-[calc(100svw-(16px*2))] bg-[var(--adaptive-surface-overlay)] backdrop-blur-[50px] rounded-[12px] shadow-[0_0_120px_0_var(--adaptive-blackOpacity500)]"}`, style: { ...resolvedPanelStyle, fontSize: "14px" }, children: _jsx("div", { className: panelCollapsed && !isRecording ? "flex shrink-0" : "flex min-w-0 flex-1 flex-col w-full", children: isRecording ? (_jsxs("section", { className: "flex items-center justify-between gap-[16px] px-[12px] py-[8px]", children: [_jsx("section", { className: "flex items-center gap-[4px] justify-start shrink-0", children: _jsx(LogoIcon, { className: "w-[94px]" }) }), _jsx("button", { type: "button", onClick: toggleReportMode, className: "flex items-center shrink-0", children: _jsx("p", { className: "text-[14px] font-bold text-[var(--adaptive-blue500)]", children: messages.panel.stopFeedback }) })] })) : panelCollapsed ? (_jsx(PanelCollapseTab, { collapsed: panelCollapsed, anchorSide: anchorSide, onClick: handleTogglePanelCollapsed, messages: messages })) : (_jsx(_Fragment, { children: _jsxs("section", { className: "relative flex min-w-0 flex-1 flex-col h-full", children: [isDragOver ? (_jsx("div", { className: "pointer-events-none absolute inset-0 z-[30] flex items-center justify-center rounded-[12px] bg-[#dbeafe]/90 px-[16px] text-center backdrop-blur-[2px]", children: _jsx("p", { className: "text-[14px] font-bold text-[var(--adaptive-blue500)]", children: messages.panel.importDragOverlay }) })) : null, _jsxs("section", { className: "flex", children: [anchorSide === "left" ? (_jsx(PanelCollapseTab, { collapsed: panelCollapsed, anchorSide: anchorSide, onClick: handleTogglePanelCollapsed, messages: messages })) : null, _jsxs("div", { className: "flex flex-col gap-[8px] p-[8px_8px_8px_12px] flex-1", children: [_jsxs("section", { className: "flex items-center justify-between gap-[8px]", children: [_jsx("section", { className: "flex min-w-0 items-center gap-[4px]", children: _jsx(LogoIcon, { className: "w-[94px] shrink-0" }) }), _jsxs("section", { className: "flex shrink-0 items-center gap-[4px]", children: [_jsxs("button", { type: "button", onClick: toggleReportMode, className: "flex items-center gap-[4px] rounded-[8px] bg-[var(--adaptive-black100)] p-[0_8px] h-[24px]", children: [_jsx(SelectIcon, { className: "w-[16px]" }), _jsx("p", { className: "text-[12px] text-[var(--adaptive-black900)]", children: messages.panel.addFeedback })] }), _jsx(IconTooltipButton, { label: messages.panel.viewSelectableElements, active: showTargetPreview, disabled: mode !== "idle", onClick: toggleTargetPreview, children: _jsx(EyeOpenIcon, { className: "h-[16px] w-[16px]" }) }), _jsx(IconTooltipButton, { label: messages.panel.viewFeedbacks, active: isIssueMode, onClick: toggleIssueMode, children: _jsx(RouteWaitStatusIcon, { className: "h-[16px] w-[16px]" }) })] })] }), _jsx("section", { className: "flex gap-[12px]", children: _jsxs("section", { className: "flex cursor-move flex-1", onPointerDown: handleDragHandlePointerDown, "aria-label": messages.panel.repositionAriaLabel, title: messages.panel.repositionTitle, style: isDragging ? { opacity: 0.8 } : undefined, children: [_jsxs("section", { className: "flex flex-col items-start gap-[4px] flex-1", children: [_jsx("p", { className: "text-[12px] text-[var(--adaptive-black500)]", children: messages.panel.statsFound }), _jsx("p", { className: `text-[14px] font-semibold text-[var(--adaptive-black900)] ${panelNumericClassName}`, children: formatStatCount(targetStats.found) })] }), _jsxs("section", { className: "flex flex-col items-start gap-[4px] flex-1", children: [_jsx("p", { className: "text-[12px] text-[var(--adaptive-black500)]", children: messages.panel.statsGroup }), _jsx("p", { className: `text-[14px] font-semibold text-[var(--adaptive-black900)] ${panelNumericClassName}`, children: formatStatCount(targetStats.group) })] }), _jsxs("section", { className: "flex flex-col items-start gap-[4px] flex-1", children: [_jsx("p", { className: "text-[12px] text-[var(--adaptive-black500)]", children: messages.panel.statsItem }), _jsx("p", { className: `text-[14px] font-semibold text-[var(--adaptive-black900)] ${panelNumericClassName}`, children: formatStatCount(targetStats.item) })] })] }) })] }), anchorSide === "right" ? (_jsx(PanelCollapseTab, { collapsed: panelCollapsed, anchorSide: anchorSide, onClick: handleTogglePanelCollapsed, messages: messages })) : null] }), _jsxs("section", { className: "flex items-stretch border-t border-[var(--adaptive-border-subtle)]", children: [_jsxs("div", { className: "flex min-w-0 flex-1 overflow-hidden", children: [_jsx(PanelTabButton, { label: messages.panel.tabPageDetails, active: panelTab === "route-details", onClick: () => handlePanelTabClick("route-details") }), _jsx("div", { className: "h-full w-[1px] bg-[var(--adaptive-border-subtle)]" }), showFeedbackList ? (_jsx(PanelTabButton, { label: messages.panel.tabFeedbackList, active: panelTab === "feedback-list", onClick: () => handlePanelTabClick("feedback-list") })) : null] }), _jsx("div", { className: "h-full w-[1px] bg-[var(--adaptive-border-subtle)]" }), _jsx(PanelMoreMenu, { open: moreMenuOpen, transferDisabled: !canTransferFeedback, appearance: appearance, onAppearanceChange: setAppearance, onToggle: () => setMoreMenuOpen((current) => !current), onClose: () => setMoreMenuOpen(false), onExport: handleExport, onImport: handleImportFromMenu, onCommand: handleOpenCommand, hasPersonalKey: Boolean(personalKey), onKeyCopy: () => void handleKeyCopy(), onPublicKeyCopy: () => void handlePublicKeyCopy(), onKeyInsert: () => {
107
+ setMoreMenuOpen(false);
108
+ setPersonalKeyStep("insert");
109
+ setPersonalKeyNotice("");
110
+ }, onKeyRotate: () => {
111
+ setMoreMenuOpen(false);
112
+ setPersonalKeyStep("rotate");
113
+ setPersonalKeyNotice("");
114
+ } })] }), errorMessage && importStep === "none" && commandStep === "none" ? _jsx("p", { className: "px-[8px] text-[12px] text-rose-700", children: errorMessage }) : null, personalKeyNotice ? _jsx("p", { className: "px-[8px] py-[4px] text-[12px] text-[var(--adaptive-green500)]", children: personalKeyNotice }) : null, personalKeyPendingRegistration ? _jsx("p", { className: "px-[8px] py-[4px] text-[12px] text-amber-700", children: messages.personalKey.registrationPending }) : null, personalKeyStep !== "none" ? (_jsx(ReportPersonalKeyDialog, { mode: personalKeyStep, onCancel: () => setPersonalKeyStep("none"), onComplete: (message) => {
115
+ setPersonalKeyNotice(message);
116
+ setPersonalKeyStep("none");
117
+ } })) : null, personalKeyStep === "none" && importStep === "project-mismatch" && pendingImport ? (_jsx(ReportImportProjectMismatchDialog, { currentProject: transferScope, importedProject: pendingImport.project, exportedAt: pendingImport.exportedAt, onProceed: handleProceedImportAfterMismatch, onCancel: handleCancelImport })) : null, personalKeyStep === "none" && importStep === "confirm" && pendingImport ? (_jsx(ReportImportConfirmDialog, { onApply: handleApplyImport, onCancel: handleCancelImport, onBackupAndApply: handleBackupAndApplyImport })) : null, personalKeyStep === "none" && panelTab === "route-details" && importStep === "none" && commandStep === "none" ? _jsx(ReportRouteDetails, {}) : null, personalKeyStep === "none" && panelTab === "feedback-list" && showFeedbackList && importStep === "none" && commandStep === "none" ? _jsx(ReportFeedbackList, {}) : null, personalKeyStep === "none" && commandStep === "replace-confirm" && pendingCommand ? (_jsx(ReportCommandReplaceConfirmDialog, { conflicts: commandConflicts, onConfirm: handleConfirmCommandReplace, onCancel: handleCancelCommandReplace })) : null, personalKeyStep === "none" && panelTab === "command" && importStep === "none" && commandStep === "none" ? (_jsx(ReportCommandPanel, { onExecute: handleCommandExecute, onClose: handleCloseCommand, notice: commandNotice, onNoticeClear: () => setCommandNotice(null) })) : null] }) })) }) })] }));
118
+ }
119
+ //# sourceMappingURL=ReportControlPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportControlPanel.js","sourceRoot":"","sources":["../../../src/components/panel/ReportControlPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ReportDraftForm(): import("react/jsx-runtime").JSX.Element | null;
2
+ //# sourceMappingURL=ReportDraftForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportDraftForm.d.ts","sourceRoot":"","sources":["../../../src/components/panel/ReportDraftForm.tsx"],"names":[],"mappings":"AASA,wBAAgB,eAAe,mDAsC9B"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { useTooltipLayout } from "../../hooks/useTooltipLayout.js";
4
+ import { useReport } from "../../providers/reportContext.js";
5
+ import { getDraftMarkerPosition } from "../../utils/coordinates.js";
6
+ import { FeedbackComposer } from "./feedback/FeedbackComposer.js";
7
+ const TOOLTIP_SURFACE_CLASS = "overflow-hidden rounded-[12px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-black50)] shadow-[var(--adaptive-popup-shadow)] backdrop-blur-[20px]";
8
+ const EXPANDED_TOOLTIP_ANCHOR_CLASS = "pointer-events-auto fixed z-[1000001]";
9
+ export function ReportDraftForm() {
10
+ const { draft, fields, authors, isCreating, selectedTarget, updateDraftMessage, updateDraftField, handleCreateSubmit, handleCreateSubmitWithGitHubIssue, canCreateGitHubIssueOnCreate, isDraftGitHubIssueSubmitting, draftAuthorName, setDraftAuthorName, } = useReport();
11
+ if (!draft) {
12
+ return null;
13
+ }
14
+ return (_jsx(ReportDraftFormContent, { draft: draft, fields: fields, authors: authors, isCreating: isCreating, selectedTarget: selectedTarget, updateDraftMessage: updateDraftMessage, updateDraftField: updateDraftField, handleCreateSubmit: handleCreateSubmit, handleCreateSubmitWithGitHubIssue: handleCreateSubmitWithGitHubIssue, canCreateGitHubIssueOnCreate: canCreateGitHubIssueOnCreate, isDraftGitHubIssueSubmitting: isDraftGitHubIssueSubmitting, draftAuthorName: draftAuthorName, setDraftAuthorName: setDraftAuthorName }));
15
+ }
16
+ function ReportDraftFormContent({ draft, fields, authors, isCreating, selectedTarget, updateDraftMessage, updateDraftField, handleCreateSubmit, handleCreateSubmitWithGitHubIssue, canCreateGitHubIssueOnCreate, isDraftGitHubIssueSubmitting, draftAuthorName, setDraftAuthorName, }) {
17
+ const anchor = useMemo(() => getDraftMarkerPosition(draft, selectedTarget), [draft, selectedTarget]);
18
+ const { layout: tooltipLayout, setTooltipElement } = useTooltipLayout(anchor, true, true);
19
+ const tooltipPosition = tooltipLayout?.position ?? null;
20
+ const tooltipAnchorStyle = tooltipLayout?.anchorStyle;
21
+ if (!tooltipPosition || !tooltipAnchorStyle) {
22
+ return null;
23
+ }
24
+ return (_jsx("div", { ref: setTooltipElement, "data-fivepixels-interactive": "", onClick: (event) => event.stopPropagation(), className: EXPANDED_TOOLTIP_ANCHOR_CLASS, style: {
25
+ left: tooltipPosition.left,
26
+ top: tooltipPosition.top,
27
+ width: tooltipPosition.width,
28
+ ...tooltipAnchorStyle,
29
+ }, children: _jsx("div", { className: TOOLTIP_SURFACE_CLASS, style: {
30
+ pointerEvents: "auto",
31
+ }, children: _jsx(FeedbackComposer, { message: draft.message, onMessageChange: updateDraftMessage, authorName: draftAuthorName, onAuthorNameChange: setDraftAuthorName, authors: authors, fields: fields, fieldValues: draft.fieldValues, onFieldChange: updateDraftField, showTags: true, onSubmit: () => void handleCreateSubmit(), isSubmitting: isCreating, showGitHubIssueOnCreate: canCreateGitHubIssueOnCreate, onGitHubIssueSubmit: () => void handleCreateSubmitWithGitHubIssue(), isGitHubIssueSubmitting: isDraftGitHubIssueSubmitting, autoFocus: true }) }) }));
32
+ }
33
+ //# sourceMappingURL=ReportDraftForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportDraftForm.js","sourceRoot":"","sources":["../../../src/components/panel/ReportDraftForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ReportFeedbackList(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ReportFeedbackList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportFeedbackList.d.ts","sourceRoot":"","sources":["../../../src/components/panel/ReportFeedbackList.tsx"],"names":[],"mappings":"AAsIA,wBAAgB,kBAAkB,4CA2VjC"}
@@ -0,0 +1,165 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef, useState } from "react";
3
+ import { REPORT_SHORTCUTS } from "../../constants/reportShortcuts.js";
4
+ import { useReport } from "../../providers/reportContext.js";
5
+ import { formatDateOnly, formatTimeOnly } from "../../utils/format.js";
6
+ import { getFieldTags } from "../../utils/fields.js";
7
+ import { getFeedbackDisplayStatus } from "../../utils/feedbackThread.js";
8
+ import { ShortcutHint } from "../../components/ShortcutHint.js";
9
+ import { HoverTooltip } from "../../components/ui/HoverTooltip.js";
10
+ import { FeedbackFieldTags } from "./feedback/FeedbackFieldTags.js";
11
+ import { FeedbackStatusBadge } from "./feedback/FeedbackStatusBadge.js";
12
+ import { SearchIcon, CopyIcon, TrashIcon, ChevronDownIcon } from "../../components/icons/Icons.js";
13
+ import { copyTextToClipboard, serializeFeedbackItem } from "../../utils/feedbackDataTransfer.js";
14
+ import { PanelDropdownMenu, PanelDropdownMenuItem } from "./PanelDropdownMenu.js";
15
+ import { GitIssueButton } from "./feedback/GitIssueButton.js";
16
+ const FEEDBACK_PAGE_SIZE = 20;
17
+ function getDateGroupKey(value) {
18
+ const date = new Date(value);
19
+ const year = date.getFullYear();
20
+ const month = String(date.getMonth() + 1).padStart(2, "0");
21
+ const day = String(date.getDate()).padStart(2, "0");
22
+ return `${year}-${month}-${day}`;
23
+ }
24
+ function groupReportsByDate(reports, locale) {
25
+ const groups = [];
26
+ const groupMap = new Map();
27
+ for (const report of reports) {
28
+ const dateKey = getDateGroupKey(report.created_at);
29
+ const existing = groupMap.get(dateKey);
30
+ if (existing) {
31
+ existing.push(report);
32
+ }
33
+ else {
34
+ groupMap.set(dateKey, [report]);
35
+ }
36
+ }
37
+ for (const [dateKey, groupedReports] of groupMap) {
38
+ groups.push({
39
+ dateKey,
40
+ label: formatDateOnly(groupedReports[0].created_at, locale),
41
+ reports: groupedReports,
42
+ });
43
+ }
44
+ return groups;
45
+ }
46
+ function FeedbackListDeleteButton({ report, onDelete, disabled = false, messages }) {
47
+ const [confirming, setConfirming] = useState(false);
48
+ useEffect(() => {
49
+ if (!confirming) {
50
+ return;
51
+ }
52
+ const timer = window.setTimeout(() => setConfirming(false), 1500);
53
+ return () => {
54
+ window.clearTimeout(timer);
55
+ };
56
+ }, [confirming]);
57
+ const handleDelete = (event) => {
58
+ event.stopPropagation();
59
+ if (!confirming) {
60
+ setConfirming(true);
61
+ return;
62
+ }
63
+ void onDelete(report.id).finally(() => {
64
+ setConfirming(false);
65
+ });
66
+ };
67
+ return (_jsx(HoverTooltip, { label: confirming ? messages.feedbackList.deleteConfirmTitle : messages.feedbackList.deleteTitle, children: _jsxs("button", { type: "button", "data-fivepixels-interactive": "", onClick: handleDelete, disabled: disabled, "aria-label": confirming ? messages.feedbackList.deleteConfirmAriaLabel : messages.feedbackList.deleteAriaLabel, className: `flex shrink-0 items-center justify-center gap-[2px] self-start rounded-[6px] p-[6px] disabled:opacity-50 ${confirming ? "text-rose-700 hover:bg-rose-50" : "text-[var(--adaptive-black500)] hover:bg-[var(--adaptive-black100)] hover:text-rose-700"}`, children: [_jsx(TrashIcon, { className: "h-[16px] w-[16px]" }), confirming ? _jsx("span", { className: "text-[10px] font-semibold", children: messages.feedbackList.deleteConfirmLabel }) : null] }) }));
68
+ }
69
+ function FeedbackListCopyButton({ report, messages }) {
70
+ const [copied, setCopied] = useState(false);
71
+ const handleCopy = (event) => {
72
+ event.stopPropagation();
73
+ void copyTextToClipboard(serializeFeedbackItem(report))
74
+ .then(() => {
75
+ setCopied(true);
76
+ window.setTimeout(() => setCopied(false), 1500);
77
+ })
78
+ .catch(() => {
79
+ setCopied(false);
80
+ });
81
+ };
82
+ return (_jsx(HoverTooltip, { label: copied ? messages.feedbackList.copiedTitle : messages.feedbackList.copyTitle, children: _jsx("button", { type: "button", "data-fivepixels-interactive": "", onClick: handleCopy, "aria-label": messages.feedbackList.copyAriaLabel, className: "flex shrink-0 items-center justify-center self-start rounded-[6px] p-[6px] text-[var(--adaptive-black500)] hover:bg-[var(--adaptive-black100)] hover:text-[var(--adaptive-black800)]", children: copied ? _jsx("span", { className: "text-[10px] font-semibold text-[var(--adaptive-blue500)]", children: messages.common.ok }) : _jsx(CopyIcon, { className: "h-[16px] w-[16px]" }) }) }));
83
+ }
84
+ export function ReportFeedbackList() {
85
+ const { filters, setFilters, filteredReports, reports, listScope, setListScope, canListAllFeedback, fields, locale, messages, isError, isFetching, hasNextPage, isFetchingNextPage, fetchNextPage, isDeleting, queryErrorMessage, visibleShortcutKeys, searchInputRef, locateFeedback, refetch, handleDelete, canCreateGitHubIssueFromList, creatingGitHubIssueId, handleCreateGitHubIssue, } = useReport();
86
+ const [visibleCount, setVisibleCount] = useState(FEEDBACK_PAGE_SIZE);
87
+ const [expandedGroups, setExpandedGroups] = useState(() => new Set());
88
+ const [statusMenuOpen, setStatusMenuOpen] = useState(false);
89
+ const [reportTypeMenuOpen, setReportTypeMenuOpen] = useState(false);
90
+ const loadMoreRef = useRef(null);
91
+ const statusLabel = filters.status === "all" ? messages.feedbackList.filterStatusAll : messages.status.routeDetail[filters.status];
92
+ const reportTypeLabel = filters.reportType === "all" ? messages.feedbackList.filterTypeAll : filters.reportType === "item" ? messages.feedbackList.reportTypeItem : messages.feedbackList.reportTypeGroup;
93
+ const visibleReports = useMemo(() => filteredReports.slice(0, visibleCount), [filteredReports, visibleCount]);
94
+ const groupedReports = useMemo(() => groupReportsByDate(visibleReports, locale), [locale, visibleReports]);
95
+ useEffect(() => {
96
+ setVisibleCount(FEEDBACK_PAGE_SIZE);
97
+ }, [filters.keyword, filters.reportType, filters.status, listScope, reports.length]);
98
+ useEffect(() => {
99
+ const firstGroupKey = groupedReports[0]?.dateKey;
100
+ if (firstGroupKey) {
101
+ setExpandedGroups(new Set([firstGroupKey]));
102
+ }
103
+ else {
104
+ setExpandedGroups(new Set());
105
+ }
106
+ }, [filters.keyword, filters.reportType, filters.status, listScope, reports.length]);
107
+ const toggleGroup = (dateKey) => {
108
+ setExpandedGroups((current) => {
109
+ const next = new Set(current);
110
+ if (next.has(dateKey)) {
111
+ next.delete(dateKey);
112
+ }
113
+ else {
114
+ next.add(dateKey);
115
+ }
116
+ return next;
117
+ });
118
+ };
119
+ useEffect(() => {
120
+ const node = loadMoreRef.current;
121
+ if (!node || (visibleCount >= filteredReports.length && !hasNextPage)) {
122
+ return;
123
+ }
124
+ const observer = new IntersectionObserver((entries) => {
125
+ if (entries.some((entry) => entry.isIntersecting)) {
126
+ if (visibleCount < filteredReports.length) {
127
+ setVisibleCount((current) => Math.min(current + FEEDBACK_PAGE_SIZE, filteredReports.length));
128
+ }
129
+ else {
130
+ void fetchNextPage();
131
+ }
132
+ }
133
+ }, { root: node.parentElement, rootMargin: "120px" });
134
+ observer.observe(node);
135
+ return () => {
136
+ observer.disconnect();
137
+ };
138
+ }, [fetchNextPage, filteredReports.length, hasNextPage, visibleCount]);
139
+ return (_jsxs("section", { className: "flex min-h-0 flex-1 flex-col bg-[var(--adaptive-black50)] rounded-[0_0_24px_24px]", children: [canListAllFeedback ? (_jsx("div", { className: "flex border-t border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-black50)] p-[4px]", role: "group", "aria-label": messages.feedbackList.scopeAriaLabel, children: ["current", "all"].map((scope) => (_jsx("button", { type: "button", "aria-pressed": listScope === scope, onClick: () => setListScope(scope), className: `flex-1 rounded-[6px] px-[8px] py-[4px] text-[12px] font-[600] ${listScope === scope ? "bg-[var(--adaptive-black200)] text-[var(--adaptive-black900)]" : "text-[var(--adaptive-black500)] hover:bg-[var(--adaptive-black100)]"}`, children: scope === "current" ? messages.feedbackList.scopeCurrentPage : messages.feedbackList.scopeAllPages }, scope))) })) : null, _jsxs("div", { className: "flex bg-[var(--adaptive-black50)] border-y border-y-[var(--adaptive-border-subtle)]", children: [_jsxs("section", { className: "flex flex-1 items-center gap-[4px]", children: [_jsxs(PanelDropdownMenu, { open: statusMenuOpen, onClose: () => setStatusMenuOpen(false), align: "left", trigger: _jsxs("button", { type: "button", onClick: () => setStatusMenuOpen((current) => !current), "aria-expanded": statusMenuOpen, "aria-haspopup": "menu", "aria-label": messages.feedbackList.filterStatusAriaLabel, className: "flex items-center gap-[4px] px-[8px] text-[12px] text-[var(--adaptive-black800)] outline-none", children: [_jsx("span", { children: statusLabel }), _jsx(ChevronDownIcon, { className: `h-[14px] w-[14px] text-[var(--adaptive-black600)] transition-transform ${statusMenuOpen ? "rotate-180" : ""}` })] }), children: [_jsx(PanelDropdownMenuItem, { active: filters.status === "all", onClick: () => {
140
+ setStatusMenuOpen(false);
141
+ setFilters((current) => ({ ...current, status: "all" }));
142
+ }, children: messages.feedbackList.filterStatusAll }), Object.keys(messages.status.routeDetail).map((status) => (_jsx(PanelDropdownMenuItem, { active: filters.status === status, onClick: () => {
143
+ setStatusMenuOpen(false);
144
+ setFilters((current) => ({ ...current, status }));
145
+ }, children: messages.status.routeDetail[status] }, status)))] }), _jsxs(PanelDropdownMenu, { open: reportTypeMenuOpen, onClose: () => setReportTypeMenuOpen(false), align: "left", trigger: _jsxs("button", { type: "button", onClick: () => setReportTypeMenuOpen((current) => !current), "aria-expanded": reportTypeMenuOpen, "aria-haspopup": "menu", "aria-label": messages.feedbackList.filterTypeAriaLabel, className: "flex items-center gap-[4px] px-[8px] text-[12px] text-[var(--adaptive-black800)] outline-none", children: [_jsx("span", { children: reportTypeLabel }), _jsx(ChevronDownIcon, { className: `h-[14px] w-[14px] text-[var(--adaptive-black600)] transition-transform ${reportTypeMenuOpen ? "rotate-180" : ""}` })] }), children: [_jsx(PanelDropdownMenuItem, { active: filters.reportType === "all", onClick: () => {
146
+ setReportTypeMenuOpen(false);
147
+ setFilters((current) => ({ ...current, reportType: "all" }));
148
+ }, children: messages.feedbackList.filterTypeAll }), _jsx(PanelDropdownMenuItem, { active: filters.reportType === "item", onClick: () => {
149
+ setReportTypeMenuOpen(false);
150
+ setFilters((current) => ({ ...current, reportType: "item" }));
151
+ }, children: messages.feedbackList.reportTypeItem }), _jsx(PanelDropdownMenuItem, { active: filters.reportType === "group", onClick: () => {
152
+ setReportTypeMenuOpen(false);
153
+ setFilters((current) => ({ ...current, reportType: "group" }));
154
+ }, children: messages.feedbackList.reportTypeGroup })] })] }), _jsxs("section", { className: "flex-1 relative", children: [_jsx("input", { ref: searchInputRef, value: filters.keyword, onChange: (event) => setFilters((current) => ({ ...current, keyword: event.target.value })), placeholder: messages.feedbackList.searchPlaceholder, className: "h-[32px] w-full rounded-[8px] px-[8px] pr-[30px] text-[12px] text-[var(--adaptive-black800)] outline-none" }), _jsx(SearchIcon, { className: "pointer-events-none absolute right-[8px] top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--adaptive-black500)]" }), _jsx("div", { className: "absolute right-[30px] top-1/2 -translate-y-1/2", children: _jsx(ShortcutHint, { binding: REPORT_SHORTCUTS.focusSearch, visible: visibleShortcutKeys }) })] })] }), _jsxs("div", { className: "min-h-0 flex-1 overflow-y-auto bg-[var(--adaptive-black50)] rounded-[0_0_24px_24px]", children: [isError ? (_jsxs("div", { className: "space-y-1 rounded-md border border-[var(--adaptive-border-subtle)] bg-rose-50 p-2 text-xs text-rose-800", children: [_jsx("strong", { className: "text-sm font-semibold", children: messages.feedbackList.loadFailedTitle }), _jsx("p", { children: queryErrorMessage ?? messages.feedbackList.loadFailedRetry }), _jsx("button", { type: "button", onClick: () => void refetch(), className: "inline-flex items-center justify-center rounded-md border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-surface)] px-3 py-1 text-xs font-medium text-[var(--adaptive-text-secondary)]", children: messages.common.retry })] })) : null, !isError && !isFetching && filteredReports.length === 0 ? (_jsxs("div", { className: "p-[12px] flex flex-col gap-[4px] bg-[var(--adaptive-black200)]", children: [_jsx("h6", { className: "font-semibold text-[var(--adaptive-black900)]", children: messages.feedbackList.emptyTitle }), _jsx("p", { className: "text-[12px] text-[var(--adaptive-black500)] whitespace-break-spaces leading-[1.5]", children: reports.length === 0 ? messages.feedbackList.emptyNoFeedback : messages.feedbackList.emptyNoMatch })] })) : null, _jsx("section", { className: "flex flex-col", children: groupedReports.map(({ dateKey, label, reports: groupReports }) => {
155
+ const isExpanded = expandedGroups.has(dateKey);
156
+ return (_jsxs("div", { className: "flex flex-col", children: [_jsxs("button", { type: "button", onClick: () => toggleGroup(dateKey), "aria-expanded": isExpanded, className: "sticky z-10 flex w-full items-center justify-between bg-[var(--adaptive-black100)] p-[4px_8px]", children: [_jsx("p", { className: "text-[12px] font-[600] text-[var(--adaptive-black700)]", children: label }), _jsx(ChevronDownIcon, { className: `h-4 w-4 shrink-0 transition-transform ${isExpanded ? "rotate-180" : ""}` })] }), isExpanded
157
+ ? groupReports.map((report) => {
158
+ const displayStatus = getFeedbackDisplayStatus(report, true);
159
+ const fieldTags = getFieldTags(fields, report.field_values);
160
+ return (_jsxs("div", { className: "flex w-full items-start gap-[4px] border-b border-[var(--adaptive-border-subtle)] last:border-b-0", children: [_jsxs("button", { type: "button", onClick: () => locateFeedback(report.id), className: "flex min-w-0 flex-1 flex-col gap-[6px] p-[12px] text-left", children: [_jsxs("section", { className: "flex flex-col gap-[4px]", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-[6px]", children: [_jsx("strong", { className: "max-w-full truncate font-bold text-[var(--adaptive-black900)]", children: report.report_id }), _jsx(FeedbackFieldTags, { tags: fieldTags }), _jsx(FeedbackStatusBadge, { status: displayStatus })] }), _jsx("p", { className: "text-[var(--adaptive-black700)]", children: report.message }), listScope === "all" ? _jsx("p", { className: "truncate text-[11px] text-[var(--adaptive-black500)]", children: report.pathname }) : null] }), _jsx("p", { className: "text-[var(--adaptive-black500)] text-[12px]", children: formatTimeOnly(report.created_at, locale) })] }), _jsxs("div", { className: "flex shrink-0 items-start gap-[2px] p-[12px] pl-0", children: [_jsx(FeedbackListCopyButton, { report: report, messages: messages }), canCreateGitHubIssueFromList ? (_jsx(GitIssueButton, { report: report, messages: messages, disabled: isDeleting, isSubmitting: creatingGitHubIssueId === report.id, onCreateIssue: handleCreateGitHubIssue })) : null, _jsx(FeedbackListDeleteButton, { report: report, onDelete: handleDelete, disabled: isDeleting, messages: messages })] })] }, report.id));
161
+ })
162
+ : null] }, dateKey));
163
+ }) }), visibleCount < filteredReports.length || hasNextPage ? (_jsx("div", { ref: loadMoreRef, className: "py-[8px] text-center text-[12px] text-[var(--adaptive-black500)]", children: isFetchingNextPage ? messages.feedbackList.loadingMore : "" })) : null] })] }));
164
+ }
165
+ //# sourceMappingURL=ReportFeedbackList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportFeedbackList.js","sourceRoot":"","sources":["../../../src/components/panel/ReportFeedbackList.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ type ReportImportConfirmDialogProps = {
2
+ onApply: () => void;
3
+ onCancel: () => void;
4
+ onBackupAndApply: () => void;
5
+ };
6
+ export declare function ReportImportConfirmDialog({ onApply, onCancel, onBackupAndApply }: ReportImportConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=ReportImportConfirmDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportImportConfirmDialog.d.ts","sourceRoot":"","sources":["../../../src/components/panel/ReportImportConfirmDialog.tsx"],"names":[],"mappings":"AAEA,KAAK,8BAA8B,GAAG;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,8BAA8B,2CAqChH"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useReport } from "../../providers/reportContext.js";
3
+ export function ReportImportConfirmDialog({ onApply, onCancel, onBackupAndApply }) {
4
+ const { messages } = useReport();
5
+ return (_jsxs("section", { className: "bg-[var(--adaptive-grey100)] p-[16px]", children: [_jsx("p", { className: "text-[14px] font-bold text-[var(--adaptive-black900)]", children: messages.importConfirm.title }), _jsx("p", { className: "mt-[8px] leading-[1.4] text-[var(--adaptive-black700)]", children: messages.importConfirm.description }), _jsxs("div", { className: "mt-[14px] flex items-center justify-end gap-[10px]", children: [_jsx("button", { type: "button", onClick: onApply, className: "border border-[var(--adaptive-grey300)] p-[4px_8px] rounded-[8px] font-semibold text-[var(--adaptive-black700)]", children: messages.importConfirm.applyDirectly }), _jsx("div", { className: "w-[1px] h-[16px] bg-[var(--adaptive-black400)]" }), _jsxs("section", { className: "flex gap-[4px]", children: [_jsx("button", { type: "button", onClick: onCancel, className: "bg-[var(--adaptive-grey300)] p-[4px_8px] rounded-[8px] font-semibold text-[var(--adaptive-black700)] border border-transparent", children: messages.common.cancel }), _jsx("button", { type: "button", onClick: onBackupAndApply, className: "bg-[var(--adaptive-blue100)] p-[4px_8px] rounded-[8px] font-bold text-[var(--adaptive-blue500)] border border-transparent", children: messages.importConfirm.backupAndApply })] })] })] }));
6
+ }
7
+ //# sourceMappingURL=ReportImportConfirmDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportImportConfirmDialog.js","sourceRoot":"","sources":["../../../src/components/panel/ReportImportConfirmDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAQzD,MAAM,UAAU,yBAAyB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAkC;IAC7G,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjC,OAAO,CACH,mBAAS,SAAS,EAAC,uCAAuC,aACtD,YAAG,SAAS,EAAC,uDAAuD,YAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAK,EACvG,YAAG,SAAS,EAAC,wDAAwD,YAAE,QAAQ,CAAC,aAAa,CAAC,WAAW,GAAK,EAC9G,eAAK,SAAS,EAAC,oDAAoD,aAC/D,iBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,iHAAiH,YAE1H,QAAQ,CAAC,aAAa,CAAC,aAAa,GAChC,EAET,cAAK,SAAS,EAAC,gDAAgD,GAAG,EAElE,mBAAS,SAAS,EAAC,gBAAgB,aAC/B,iBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAC,gIAAgI,YAEzI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAClB,EACT,iBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAC,2HAA2H,YAEpI,QAAQ,CAAC,aAAa,CAAC,cAAc,GACjC,IACH,IACR,IACA,CACb,CAAC;AACN,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ReportProject } from "../../types/report.js";
2
+ import type { ResolvedReportProject } from "../../utils/reportProject.js";
3
+ type ReportImportProjectMismatchDialogProps = {
4
+ currentProject: ResolvedReportProject;
5
+ importedProject?: ReportProject;
6
+ exportedAt?: string;
7
+ onProceed: () => void;
8
+ onCancel: () => void;
9
+ };
10
+ export declare function ReportImportProjectMismatchDialog({ currentProject, importedProject, exportedAt, onProceed, onCancel }: ReportImportProjectMismatchDialogProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=ReportImportProjectMismatchDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportImportProjectMismatchDialog.d.ts","sourceRoot":"","sources":["../../../src/components/panel/ReportImportProjectMismatchDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,KAAK,sCAAsC,GAAG;IAC1C,cAAc,EAAE,qBAAqB,CAAC;IACtC,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAgBF,wBAAgB,iCAAiC,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,sCAAsC,2CAiE7J"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useReport } from "../../providers/reportContext.js";
3
+ import { buildProjectComparisonLines } from "../../utils/feedbackTransferSchema.js";
4
+ function formatExportedAt(value, noneLabel, locale) {
5
+ if (!value) {
6
+ return noneLabel;
7
+ }
8
+ const date = new Date(value);
9
+ if (Number.isNaN(date.getTime())) {
10
+ return value;
11
+ }
12
+ return date.toLocaleString(locale);
13
+ }
14
+ export function ReportImportProjectMismatchDialog({ currentProject, importedProject, exportedAt, onProceed, onCancel }) {
15
+ const { locale, messages } = useReport();
16
+ const comparisonLines = buildProjectComparisonLines(currentProject, importedProject);
17
+ return (_jsxs("article", { className: "bg-[var(--adaptive-grey100)]", children: [_jsxs("section", { className: "flex flex-col gap-[4px] p-[16px]", children: [_jsx("h6", { className: "text-[14px] font-bold text-[var(--adaptive-black900)]", children: messages.importMismatch.title }), _jsx("p", { className: "leading-[1.5] text-[var(--adaptive-black500)]", children: messages.importMismatch.description })] }), _jsxs("section", { className: "flex flex-col gap-[4px] p-[12px]", children: [_jsx("p", { className: "text-[12px] text-[var(--adaptive-black700)]", children: messages.importMismatch.currentData }), _jsx("dl", { className: "", children: comparisonLines.map((line) => (_jsxs("div", { className: "grid grid-cols-[112px_1fr] gap-[8px] text-[12px]", children: [_jsx("p", { className: "font-medium text-[var(--adaptive-black500)]", children: line.label }), _jsx("p", { className: `${line.differs ? "text-[var(--adaptive-blue500)]" : "text-[var(--adaptive-black800)]"}`, children: line.current })] }, line.label))) })] }), _jsxs("section", { className: "flex flex-col gap-[4px] p-[12px]", children: [_jsx("p", { className: "text-[12px] text-[var(--adaptive-black700)]", children: messages.importMismatch.updatedData }), _jsxs("dl", { className: "", children: [comparisonLines.map((line) => (_jsxs("div", { className: "grid grid-cols-[112px_1fr] gap-[8px] text-[12px]", children: [_jsx("p", { className: "font-medium text-[var(--adaptive-black500)]", children: line.label }), _jsx("p", { className: `${line.differs ? "text-rose-700" : "text-[var(--adaptive-black800)]"}`, children: line.imported })] }, line.label))), _jsxs("div", { className: "grid grid-cols-[112px_1fr] gap-[8px] text-[12px]", children: [_jsx("p", { className: "font-medium text-[var(--adaptive-black500)]", children: messages.importMismatch.exportedAtLabel }), _jsx("p", { className: "text-[var(--adaptive-black800)]", children: formatExportedAt(exportedAt, messages.common.none, locale === "ko" ? "ko-KR" : "en-US") })] })] })] }), _jsxs("section", { className: "flex items-center justify-end gap-[10px] p-[16px]", children: [_jsx("button", { type: "button", onClick: onCancel, className: "bg-[var(--adaptive-grey300)] p-[4px_8px] rounded-[8px] font-semibold text-[var(--adaptive-black700)] border border-transparent", children: messages.common.cancel }), _jsx("button", { type: "button", onClick: onProceed, className: "bg-[var(--adaptive-blue100)] p-[4px_8px] rounded-[8px] font-bold text-[var(--adaptive-blue500)] border border-transparent", children: messages.common.proceed })] })] }));
18
+ }
19
+ //# sourceMappingURL=ReportImportProjectMismatchDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportImportProjectMismatchDialog.js","sourceRoot":"","sources":["../../../src/components/panel/ReportImportProjectMismatchDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ type ReportPersonalKeyDialogProps = {
2
+ mode: "required" | "insert" | "rotate";
3
+ onCancel: () => void;
4
+ onComplete: (message: string) => void;
5
+ };
6
+ export declare function ReportPersonalKeyDialog({ mode, onCancel, onComplete }: ReportPersonalKeyDialogProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=ReportPersonalKeyDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportPersonalKeyDialog.d.ts","sourceRoot":"","sources":["../../../src/components/panel/ReportPersonalKeyDialog.tsx"],"names":[],"mappings":"AAGA,KAAK,4BAA4B,GAAG;IAChC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,4BAA4B,2CA2HnG"}
@@ -0,0 +1,60 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { useReport } from "../../providers/reportContext.js";
4
+ export function ReportPersonalKeyDialog({ mode, onCancel, onComplete }) {
5
+ const { issuePersonalKey, rotatePersonalKey, insertPersonalKey, personalKeyCandidates, messages } = useReport();
6
+ const [key, setKey] = useState("");
7
+ const [authorId, setAuthorId] = useState(personalKeyCandidates.length === 1 ? personalKeyCandidates[0].id : "");
8
+ const [error, setError] = useState("");
9
+ const handleConfirm = async () => {
10
+ if (mode === "rotate") {
11
+ const issuedKey = await rotatePersonalKey();
12
+ if (!issuedKey) {
13
+ setError(messages.personalKey.invalidKey);
14
+ return;
15
+ }
16
+ try {
17
+ await navigator.clipboard.writeText(issuedKey.publicKey);
18
+ onComplete(messages.personalKey.publicKeyCopied);
19
+ }
20
+ catch {
21
+ onComplete(messages.personalKey.registrationPending);
22
+ }
23
+ return;
24
+ }
25
+ if (mode === "required") {
26
+ const issuedKey = await issuePersonalKey(authorId);
27
+ if (!issuedKey) {
28
+ setError(messages.personalKey.ownerRequired);
29
+ return;
30
+ }
31
+ try {
32
+ await navigator.clipboard.writeText(issuedKey.publicKey);
33
+ onComplete(messages.personalKey.publicKeyCopied);
34
+ }
35
+ catch {
36
+ onComplete(messages.personalKey.registrationPending);
37
+ }
38
+ return;
39
+ }
40
+ const inserted = await insertPersonalKey(key);
41
+ if (!inserted) {
42
+ setError(messages.personalKey.invalidKey);
43
+ return;
44
+ }
45
+ onComplete(inserted.authorized ? messages.personalKey.setupSuccess : messages.personalKey.registrationPending);
46
+ };
47
+ return (_jsxs("section", { className: "bg-[var(--adaptive-grey100)] p-[16px]", children: [_jsx("h6", { className: "text-[14px] font-bold text-[var(--adaptive-black900)]", children: mode === "required"
48
+ ? messages.personalKey.requiredTitle
49
+ : mode === "rotate"
50
+ ? messages.personalKey.rotateTitle
51
+ : messages.personalKey.insertTitle }), _jsx("p", { className: "mt-[8px] leading-[1.4] text-[var(--adaptive-black700)]", children: mode === "required"
52
+ ? messages.personalKey.requiredDescription
53
+ : mode === "rotate"
54
+ ? messages.personalKey.rotateDescription
55
+ : messages.personalKey.insertDescription }), mode === "required" ? (_jsxs(_Fragment, { children: [_jsxs("select", { value: authorId, onChange: (event) => setAuthorId(event.target.value), className: "mt-[12px] w-full rounded-[8px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-surface)] px-[10px] py-[8px] text-[12px] text-[var(--adaptive-text-primary)] outline-none", children: [_jsx("option", { value: "", children: messages.personalKey.reviewerPlaceholder }), personalKeyCandidates.map((author) => (_jsx("option", { value: author.id, children: author.name }, author.id)))] }), _jsxs("ul", { className: "mt-[10px] list-disc space-y-[4px] pl-[18px] text-[12px] leading-[1.4] text-[var(--adaptive-black600)]", children: [_jsx("li", { children: messages.personalKey.backupWarning }), _jsx("li", { children: messages.personalKey.restoreGuide })] })] })) : mode === "insert" ? (_jsx("input", { autoFocus: true, value: key, onChange: (event) => {
56
+ setKey(event.target.value);
57
+ setError("");
58
+ }, placeholder: messages.personalKey.inputPlaceholder, className: "mt-[12px] w-full rounded-[8px] border border-[var(--adaptive-border-subtle)] bg-[var(--adaptive-surface)] px-[10px] py-[8px] text-[12px] text-[var(--adaptive-text-primary)] outline-none" })) : (_jsx("p", { className: "mt-[10px] rounded-[8px] bg-amber-50 p-[10px] text-[12px] leading-[1.4] text-amber-800", children: messages.personalKey.rotateWarning })), error ? _jsx("p", { className: "mt-[8px] text-[12px] text-rose-700", children: error }) : null, _jsxs("div", { className: "mt-[14px] flex items-center justify-end gap-[10px]", children: [_jsx("button", { type: "button", onClick: onCancel, className: "rounded-[8px] bg-[var(--adaptive-grey300)] p-[4px_8px] font-semibold text-[var(--adaptive-black700)]", children: messages.common.cancel }), _jsx("button", { type: "button", disabled: mode === "required" ? !authorId : mode === "insert" ? !key.trim() : false, onClick: () => void handleConfirm(), className: "rounded-[8px] bg-[var(--adaptive-blue100)] p-[4px_8px] font-bold text-[var(--adaptive-blue500)] disabled:opacity-50", children: messages.common.confirm })] })] }));
59
+ }
60
+ //# sourceMappingURL=ReportPersonalKeyDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportPersonalKeyDialog.js","sourceRoot":"","sources":["../../../src/components/panel/ReportPersonalKeyDialog.tsx"],"names":[],"mappings":"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"}