@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,49 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { getDefaultFields } from "../i18n/index.js";
3
+ import { useReportState } from "../hooks/useReportState.js";
4
+ import { resolveReportEnabled } from "../utils/env.js";
5
+ import { resolveReportProject } from "../utils/reportProject.js";
6
+ import { resolveReportTeam } from "../utils/reportTeam.js";
7
+ import { resolveReportUi } from "../utils/reportUi.js";
8
+ import { resolveReportVisibility } from "../utils/reportVisibility.js";
9
+ import { ReportContext } from "./reportContext.js";
10
+ function ReportProviderEnabled({ projectId, environment, appVersion, appearance, fields, authors, requireReviewerKey, shortcut, identify, onList, onListAll, onNavigate, onCreate, onUpdate, onDelete, onEvent, onReply, github, routeKey, showFeedbackList, visibleShortcutKeys, locale, messageOverrides, children, }) {
11
+ const value = useReportState({
12
+ projectId,
13
+ environment,
14
+ appVersion,
15
+ appearance,
16
+ fields,
17
+ authors,
18
+ requireReviewerKey,
19
+ shortcut,
20
+ identify,
21
+ onList,
22
+ onListAll,
23
+ onNavigate,
24
+ onCreate,
25
+ onUpdate,
26
+ onDelete,
27
+ onEvent,
28
+ onReply,
29
+ github,
30
+ routeKey,
31
+ showFeedbackList,
32
+ visibleShortcutKeys,
33
+ initialLocale: locale,
34
+ messageOverrides,
35
+ });
36
+ return _jsx(ReportContext.Provider, { value: value, children: children });
37
+ }
38
+ export function ReportProvider({ project, projectId, environment, appVersion, ui, appearance, showFeedbackList, visibleShortcutKeys, shortcut, visibility, enabled, devOnly, routeKey, pathname, team, identify, authors, fields, onList, onListAll, onNavigate, onCreate, onUpdate, onDelete, onEvent, onReply, github, children, }) {
39
+ const resolvedProject = resolveReportProject({ project, projectId, environment, appVersion });
40
+ const resolvedUi = resolveReportUi({ ui, appearance, showFeedbackList, visibleShortcutKeys, shortcut });
41
+ const resolvedVisibility = resolveReportVisibility({ visibility, enabled, devOnly, routeKey, pathname });
42
+ const resolvedTeam = resolveReportTeam({ team, identify, authors });
43
+ const resolvedFields = fields ?? getDefaultFields(resolvedUi.messages);
44
+ if (!resolveReportEnabled(resolvedVisibility)) {
45
+ return _jsx(_Fragment, { children: children });
46
+ }
47
+ return (_jsx(ReportProviderEnabled, { projectId: resolvedProject.projectId, environment: resolvedProject.environment, appVersion: resolvedProject.appVersion, appearance: resolvedUi.appearance, showFeedbackList: resolvedUi.showFeedbackList, visibleShortcutKeys: resolvedUi.visibleShortcutKeys, shortcut: resolvedUi.shortcut, fields: resolvedFields, authors: resolvedTeam.reviewers, requireReviewerKey: resolvedTeam.requireReviewerKey, identify: resolvedTeam.user, onList: onList, onListAll: onListAll, onNavigate: onNavigate, onCreate: onCreate, onUpdate: onUpdate, onDelete: onDelete, onEvent: onEvent, onReply: onReply, github: github, routeKey: resolvedVisibility.routeKey, locale: resolvedUi.locale, messageOverrides: ui?.messages, children: children }));
48
+ }
49
+ //# sourceMappingURL=ReportProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportProvider.js","sourceRoot":"","sources":["../../src/providers/ReportProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ import type { useReportState } from "../hooks/useReportState.js";
2
+ export type ReportContextValue = ReturnType<typeof useReportState>;
3
+ declare const ReportContext: import("react").Context<{
4
+ appearance: import("..").ReportAppearance;
5
+ setAppearance: (nextAppearance: import("..").ReportAppearance) => void;
6
+ locale: import("..").ReportLocale;
7
+ setLocale: (nextLocale: import("..").ReportLocale) => void;
8
+ messages: import("..").ReportMessages;
9
+ fields: import("..").ReportField[];
10
+ authors: import("..").ReportIdentify[];
11
+ projectId: string;
12
+ environment: string | undefined;
13
+ appVersion: string | undefined;
14
+ currentPathname: string;
15
+ showFeedbackList: boolean;
16
+ panelTab: import("../types/report-ui").ReportPanelTab | null;
17
+ routeDetailsStats: {
18
+ pathname: string;
19
+ statusRows: {
20
+ status: import("../constants/feedbackStatus").FeedbackDisplayStatus;
21
+ all: number;
22
+ today: number;
23
+ }[];
24
+ fieldCounts: {
25
+ key: string;
26
+ label: string;
27
+ type: "textarea" | "checkbox";
28
+ count: number;
29
+ }[];
30
+ };
31
+ canTransferFeedback: boolean;
32
+ personalKey: string | null;
33
+ publicKey: string | null;
34
+ personalKeyRequired: boolean;
35
+ personalKeyPendingRegistration: boolean;
36
+ personalKeyCandidates: import("..").ReportAuthor[];
37
+ issuePersonalKey: (authorId?: string) => Promise<{
38
+ privateKey: string;
39
+ publicKey: string;
40
+ } | null>;
41
+ rotatePersonalKey: () => Promise<{
42
+ privateKey: string;
43
+ publicKey: string;
44
+ } | null>;
45
+ insertPersonalKey: (key: string) => Promise<{
46
+ authorized: boolean;
47
+ } | null>;
48
+ canListAllFeedback: boolean;
49
+ visibleShortcutKeys: boolean;
50
+ searchInputRef: import("react").MutableRefObject<HTMLInputElement | null>;
51
+ resolvedAppearance: import("../types/report-ui").ResolvedAppearance;
52
+ isMobileViewport: boolean;
53
+ mode: import("../types/report-ui").ReportMode;
54
+ showTargetPreview: boolean;
55
+ selectableTargets: import("../types/report-ui").TargetSnapshot[];
56
+ filters: import("../types/report-ui").ReportFilters;
57
+ setFilters: import("react").Dispatch<import("react").SetStateAction<import("../types/report-ui").ReportFilters>>;
58
+ listScope: import("../types/report-ui").ReportListScope;
59
+ setListScope: import("react").Dispatch<import("react").SetStateAction<import("../types/report-ui").ReportListScope>>;
60
+ reports: import("..").ReportFeedback[];
61
+ filteredReports: import("..").ReportFeedback[];
62
+ isError: boolean;
63
+ isFetching: boolean;
64
+ hasNextPage: boolean;
65
+ isFetchingNextPage: boolean;
66
+ fetchNextPage: () => Promise<void>;
67
+ isCreating: boolean;
68
+ isUpdating: boolean;
69
+ isDeleting: boolean;
70
+ queryErrorMessage: string | undefined;
71
+ refetch: () => Promise<import("..").ReportFeedback[]>;
72
+ errorMessage: string;
73
+ setErrorMessage: import("react").Dispatch<import("react").SetStateAction<string>>;
74
+ draft: import("../types/report-ui").DraftReport | null;
75
+ hoveredTarget: import("../types/report-ui").TargetSnapshot | null;
76
+ selectedTarget: import("../types/report-ui").TargetSnapshot | null;
77
+ markers: import("../types/report-ui").Marker[];
78
+ selectedReport: import("..").ReportFeedback;
79
+ editingReportId: string | null;
80
+ editableDraft: import("../types/report-ui").EditableDraft | null;
81
+ setEditableDraft: import("react").Dispatch<import("react").SetStateAction<import("../types/report-ui").EditableDraft | null>>;
82
+ overlayRef: import("react").MutableRefObject<HTMLDivElement | null>;
83
+ activeReplyReportId: string | null;
84
+ activeReplyReport: import("..").ReportFeedback | null;
85
+ tooltipReport: import("..").ReportFeedback | null;
86
+ tooltipAnchor: import("../types/report-ui").Marker | null;
87
+ tooltipFieldTags: {
88
+ key: string;
89
+ label: string;
90
+ }[];
91
+ replyDraft: string;
92
+ setReplyDraft: import("react").Dispatch<import("react").SetStateAction<string>>;
93
+ draftAuthorName: string;
94
+ setDraftAuthorName: import("react").Dispatch<import("react").SetStateAction<string>>;
95
+ replyAuthorName: string;
96
+ setReplyAuthorName: import("react").Dispatch<import("react").SetStateAction<string>>;
97
+ pendingComposer: import("../types/report-ui").PendingFeedbackComposer;
98
+ startDenyReview: () => void;
99
+ startCheckoutReview: (replyId: string) => void;
100
+ cancelPendingComposer: () => void;
101
+ confirmAuthorName: string;
102
+ setConfirmAuthorName: import("react").Dispatch<import("react").SetStateAction<string>>;
103
+ showConfirmAuthorSelect: boolean;
104
+ toggleConfirmAuthorSelect: () => void;
105
+ handleConfirmResolution: () => Promise<void>;
106
+ targetStats: {
107
+ found: number;
108
+ group: number;
109
+ item: number;
110
+ };
111
+ statusText: string;
112
+ toggleReportMode: () => void;
113
+ toggleTargetPreview: () => void;
114
+ toggleIssueMode: () => void;
115
+ openPanelTab: (nextTab: import("../types/report-ui").ReportPanelTab) => void;
116
+ togglePanelTab: (nextTab: import("../types/report-ui").ReportPanelTab) => void;
117
+ selectReport: (reportId: string) => void;
118
+ locateFeedback: (reportId: string) => Promise<void>;
119
+ focusSearchInput: () => void;
120
+ selectAdjacentReport: (direction: "up" | "down") => void;
121
+ openReplyComposer: (report: import("..").ReportFeedback) => void;
122
+ closeReplyComposer: () => void;
123
+ clearHoverLeaveTimeout: () => void;
124
+ scheduleHoverLeave: (markerId: string) => void;
125
+ setHoveredMarkerId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
126
+ handleOverlayMove: (event: import("react").MouseEvent<HTMLDivElement>) => void;
127
+ handleOverlayClick: (event: import("react").MouseEvent<HTMLDivElement>) => void;
128
+ cancelDraft: () => void;
129
+ updateDraftMessage: (nextMessage: string) => void;
130
+ updateDraftField: (key: string, nextValue: string | boolean) => void;
131
+ handleCreateSubmit: () => Promise<void>;
132
+ startEditing: (report: import("..").ReportFeedback) => void;
133
+ stopEditing: () => void;
134
+ handleUpdateSubmit: () => Promise<void>;
135
+ handleReplySubmit: () => Promise<void>;
136
+ handleDelete: (id: string) => Promise<void>;
137
+ canCreateGitHubIssueFromList: boolean;
138
+ canCreateGitHubIssueOnCreate: boolean;
139
+ creatingGitHubIssueId: string | null;
140
+ handleCreateGitHubIssue: (report: import("..").ReportFeedback) => Promise<void>;
141
+ handleCreateSubmitWithGitHubIssue: () => Promise<void>;
142
+ isDraftGitHubIssueSubmitting: boolean;
143
+ } | null>;
144
+ export declare function useReport(): {
145
+ appearance: import("..").ReportAppearance;
146
+ setAppearance: (nextAppearance: import("..").ReportAppearance) => void;
147
+ locale: import("..").ReportLocale;
148
+ setLocale: (nextLocale: import("..").ReportLocale) => void;
149
+ messages: import("..").ReportMessages;
150
+ fields: import("..").ReportField[];
151
+ authors: import("..").ReportIdentify[];
152
+ projectId: string;
153
+ environment: string | undefined;
154
+ appVersion: string | undefined;
155
+ currentPathname: string;
156
+ showFeedbackList: boolean;
157
+ panelTab: import("../types/report-ui").ReportPanelTab | null;
158
+ routeDetailsStats: {
159
+ pathname: string;
160
+ statusRows: {
161
+ status: import("../constants/feedbackStatus").FeedbackDisplayStatus;
162
+ all: number;
163
+ today: number;
164
+ }[];
165
+ fieldCounts: {
166
+ key: string;
167
+ label: string;
168
+ type: "textarea" | "checkbox";
169
+ count: number;
170
+ }[];
171
+ };
172
+ canTransferFeedback: boolean;
173
+ personalKey: string | null;
174
+ publicKey: string | null;
175
+ personalKeyRequired: boolean;
176
+ personalKeyPendingRegistration: boolean;
177
+ personalKeyCandidates: import("..").ReportAuthor[];
178
+ issuePersonalKey: (authorId?: string) => Promise<{
179
+ privateKey: string;
180
+ publicKey: string;
181
+ } | null>;
182
+ rotatePersonalKey: () => Promise<{
183
+ privateKey: string;
184
+ publicKey: string;
185
+ } | null>;
186
+ insertPersonalKey: (key: string) => Promise<{
187
+ authorized: boolean;
188
+ } | null>;
189
+ canListAllFeedback: boolean;
190
+ visibleShortcutKeys: boolean;
191
+ searchInputRef: import("react").MutableRefObject<HTMLInputElement | null>;
192
+ resolvedAppearance: import("../types/report-ui").ResolvedAppearance;
193
+ isMobileViewport: boolean;
194
+ mode: import("../types/report-ui").ReportMode;
195
+ showTargetPreview: boolean;
196
+ selectableTargets: import("../types/report-ui").TargetSnapshot[];
197
+ filters: import("../types/report-ui").ReportFilters;
198
+ setFilters: import("react").Dispatch<import("react").SetStateAction<import("../types/report-ui").ReportFilters>>;
199
+ listScope: import("../types/report-ui").ReportListScope;
200
+ setListScope: import("react").Dispatch<import("react").SetStateAction<import("../types/report-ui").ReportListScope>>;
201
+ reports: import("..").ReportFeedback[];
202
+ filteredReports: import("..").ReportFeedback[];
203
+ isError: boolean;
204
+ isFetching: boolean;
205
+ hasNextPage: boolean;
206
+ isFetchingNextPage: boolean;
207
+ fetchNextPage: () => Promise<void>;
208
+ isCreating: boolean;
209
+ isUpdating: boolean;
210
+ isDeleting: boolean;
211
+ queryErrorMessage: string | undefined;
212
+ refetch: () => Promise<import("..").ReportFeedback[]>;
213
+ errorMessage: string;
214
+ setErrorMessage: import("react").Dispatch<import("react").SetStateAction<string>>;
215
+ draft: import("../types/report-ui").DraftReport | null;
216
+ hoveredTarget: import("../types/report-ui").TargetSnapshot | null;
217
+ selectedTarget: import("../types/report-ui").TargetSnapshot | null;
218
+ markers: import("../types/report-ui").Marker[];
219
+ selectedReport: import("..").ReportFeedback;
220
+ editingReportId: string | null;
221
+ editableDraft: import("../types/report-ui").EditableDraft | null;
222
+ setEditableDraft: import("react").Dispatch<import("react").SetStateAction<import("../types/report-ui").EditableDraft | null>>;
223
+ overlayRef: import("react").MutableRefObject<HTMLDivElement | null>;
224
+ activeReplyReportId: string | null;
225
+ activeReplyReport: import("..").ReportFeedback | null;
226
+ tooltipReport: import("..").ReportFeedback | null;
227
+ tooltipAnchor: import("../types/report-ui").Marker | null;
228
+ tooltipFieldTags: {
229
+ key: string;
230
+ label: string;
231
+ }[];
232
+ replyDraft: string;
233
+ setReplyDraft: import("react").Dispatch<import("react").SetStateAction<string>>;
234
+ draftAuthorName: string;
235
+ setDraftAuthorName: import("react").Dispatch<import("react").SetStateAction<string>>;
236
+ replyAuthorName: string;
237
+ setReplyAuthorName: import("react").Dispatch<import("react").SetStateAction<string>>;
238
+ pendingComposer: import("../types/report-ui").PendingFeedbackComposer;
239
+ startDenyReview: () => void;
240
+ startCheckoutReview: (replyId: string) => void;
241
+ cancelPendingComposer: () => void;
242
+ confirmAuthorName: string;
243
+ setConfirmAuthorName: import("react").Dispatch<import("react").SetStateAction<string>>;
244
+ showConfirmAuthorSelect: boolean;
245
+ toggleConfirmAuthorSelect: () => void;
246
+ handleConfirmResolution: () => Promise<void>;
247
+ targetStats: {
248
+ found: number;
249
+ group: number;
250
+ item: number;
251
+ };
252
+ statusText: string;
253
+ toggleReportMode: () => void;
254
+ toggleTargetPreview: () => void;
255
+ toggleIssueMode: () => void;
256
+ openPanelTab: (nextTab: import("../types/report-ui").ReportPanelTab) => void;
257
+ togglePanelTab: (nextTab: import("../types/report-ui").ReportPanelTab) => void;
258
+ selectReport: (reportId: string) => void;
259
+ locateFeedback: (reportId: string) => Promise<void>;
260
+ focusSearchInput: () => void;
261
+ selectAdjacentReport: (direction: "up" | "down") => void;
262
+ openReplyComposer: (report: import("..").ReportFeedback) => void;
263
+ closeReplyComposer: () => void;
264
+ clearHoverLeaveTimeout: () => void;
265
+ scheduleHoverLeave: (markerId: string) => void;
266
+ setHoveredMarkerId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
267
+ handleOverlayMove: (event: import("react").MouseEvent<HTMLDivElement>) => void;
268
+ handleOverlayClick: (event: import("react").MouseEvent<HTMLDivElement>) => void;
269
+ cancelDraft: () => void;
270
+ updateDraftMessage: (nextMessage: string) => void;
271
+ updateDraftField: (key: string, nextValue: string | boolean) => void;
272
+ handleCreateSubmit: () => Promise<void>;
273
+ startEditing: (report: import("..").ReportFeedback) => void;
274
+ stopEditing: () => void;
275
+ handleUpdateSubmit: () => Promise<void>;
276
+ handleReplySubmit: () => Promise<void>;
277
+ handleDelete: (id: string) => Promise<void>;
278
+ canCreateGitHubIssueFromList: boolean;
279
+ canCreateGitHubIssueOnCreate: boolean;
280
+ creatingGitHubIssueId: string | null;
281
+ handleCreateGitHubIssue: (report: import("..").ReportFeedback) => Promise<void>;
282
+ handleCreateSubmitWithGitHubIssue: () => Promise<void>;
283
+ isDraftGitHubIssueSubmitting: boolean;
284
+ };
285
+ export { ReportContext };
286
+ //# sourceMappingURL=reportContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportContext.d.ts","sourceRoot":"","sources":["../../src/providers/reportContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEnE,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAiD,CAAC;AAErE,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQxB;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { createContext, useContext } from "react";
2
+ const ReportContext = createContext(null);
3
+ export function useReport() {
4
+ const context = useContext(ReportContext);
5
+ if (!context) {
6
+ throw new Error("useReport must be used within ReportProvider");
7
+ }
8
+ return context;
9
+ }
10
+ export { ReportContext };
11
+ //# sourceMappingURL=reportContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportContext.js","sourceRoot":"","sources":["../../src/providers/reportContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAKlD,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AAErE,MAAM,UAAU,SAAS;IACrB,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ReportFeedback, ReportProject, ReportStorageAdapter } from "../../types/report.js";
2
+ export type LocalStorageReportAdapterOptions = {
3
+ projectId: string;
4
+ environment?: string;
5
+ appVersion?: string;
6
+ };
7
+ export declare function readAllReportsFromStorage(storageKey: string): ReportFeedback[];
8
+ export declare function writeAllReportsToStorage(storageKey: string, items: ReportFeedback[], project?: ReportProject): void;
9
+ export declare function createLocalStorageReportAdapter({ projectId, environment, appVersion }: LocalStorageReportAdapterOptions): ReportStorageAdapter;
10
+ /** @deprecated Use createLocalStorageReportAdapter({ projectId }) instead. */
11
+ export declare const localStorageReportAdapter: ReportStorageAdapter;
12
+ //# sourceMappingURL=localStorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/storage/local/localStorageAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAER,cAAc,EAId,aAAa,EAGb,oBAAoB,EAGvB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,MAAM,gCAAgC,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAuHF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,oBA4B3D;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,QAM5G;AAUD,wBAAgB,+BAA+B,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,gCAAgC,GAAG,oBAAoB,CA+D9I;AAED,8EAA8E;AAC9E,eAAO,MAAM,yBAAyB,sBAAqE,CAAC"}
@@ -0,0 +1,187 @@
1
+ import { getActiveReportMessages } from "../../i18n/index.js";
2
+ import { DEFAULT_PROJECT_ID } from "../../constants/project.js";
3
+ import { getReportsStorageKey } from "../../constants/storageKeys.js";
4
+ import { parseFeedbackStorageEnvelope, serializeFeedbackStorageEnvelope } from "../../utils/feedbackTransferSchema.js";
5
+ function createId() {
6
+ if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
7
+ return crypto.randomUUID();
8
+ }
9
+ return `report-${Date.now()}-${Math.random().toString(16).slice(2)}`;
10
+ }
11
+ function isReportStatus(value) {
12
+ return value === "open" || value === "git_issued" || value === "resolved" || value === "archived";
13
+ }
14
+ function normalizeFieldValues(value) {
15
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
16
+ return {};
17
+ }
18
+ return Object.entries(value).reduce((acc, [key, itemValue]) => {
19
+ if (typeof itemValue === "string" || typeof itemValue === "boolean") {
20
+ acc[key] = itemValue;
21
+ }
22
+ return acc;
23
+ }, {});
24
+ }
25
+ function isReplyStatus(value) {
26
+ return value === "suggested" || value === "found_error" || value === "recheck_requested" || value === "resolved";
27
+ }
28
+ function normalizeReplyStatus(value) {
29
+ if (isReplyStatus(value)) {
30
+ return value;
31
+ }
32
+ return "suggested";
33
+ }
34
+ function normalizeReplies(value) {
35
+ if (!Array.isArray(value)) {
36
+ return [];
37
+ }
38
+ return value.flatMap((item) => {
39
+ if (!item || typeof item !== "object") {
40
+ return [];
41
+ }
42
+ const reply = item;
43
+ if (typeof reply.id !== "string" || typeof reply.message !== "string" || typeof reply.created_at !== "string") {
44
+ return [];
45
+ }
46
+ return [
47
+ {
48
+ id: reply.id,
49
+ message: reply.message,
50
+ created_at: reply.created_at,
51
+ status: normalizeReplyStatus(reply.status),
52
+ author_type: reply.author_type,
53
+ author_name: reply.author_name ?? null,
54
+ auth: reply.auth,
55
+ },
56
+ ];
57
+ });
58
+ }
59
+ function normalizeGitHubIntegration(value) {
60
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
61
+ return undefined;
62
+ }
63
+ const github = value;
64
+ if (typeof github.issue_number !== "number" ||
65
+ !Number.isFinite(github.issue_number) ||
66
+ typeof github.issue_url !== "string" ||
67
+ github.issue_url.trim().length === 0 ||
68
+ typeof github.issued_at !== "string") {
69
+ return undefined;
70
+ }
71
+ return {
72
+ issue_number: github.issue_number,
73
+ issue_url: github.issue_url,
74
+ issued_at: github.issued_at,
75
+ };
76
+ }
77
+ function normalizeIntegrations(value) {
78
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
79
+ return undefined;
80
+ }
81
+ const integrations = value;
82
+ const github = normalizeGitHubIntegration(integrations.github);
83
+ if (!github) {
84
+ return undefined;
85
+ }
86
+ return { github };
87
+ }
88
+ function normalizeReport(item) {
89
+ return {
90
+ ...item,
91
+ status: isReportStatus(item.status) ? item.status : "open",
92
+ field_values: normalizeFieldValues(item.field_values),
93
+ replies: normalizeReplies(item.replies),
94
+ integrations: normalizeIntegrations(item.integrations),
95
+ };
96
+ }
97
+ export function readAllReportsFromStorage(storageKey) {
98
+ if (typeof window === "undefined") {
99
+ return [];
100
+ }
101
+ const raw = window.localStorage.getItem(storageKey);
102
+ if (!raw) {
103
+ return [];
104
+ }
105
+ try {
106
+ const parsed = JSON.parse(raw);
107
+ if (Array.isArray(parsed)) {
108
+ return parsed.map(normalizeReport);
109
+ }
110
+ const envelope = parseFeedbackStorageEnvelope(raw);
111
+ if (envelope) {
112
+ return envelope.items.map(normalizeReport);
113
+ }
114
+ return [];
115
+ }
116
+ catch {
117
+ return [];
118
+ }
119
+ }
120
+ export function writeAllReportsToStorage(storageKey, items, project) {
121
+ if (typeof window === "undefined") {
122
+ return;
123
+ }
124
+ window.localStorage.setItem(storageKey, serializeFeedbackStorageEnvelope(project ?? {}, items.map(normalizeReport)));
125
+ }
126
+ function readAll(storageKey) {
127
+ return readAllReportsFromStorage(storageKey);
128
+ }
129
+ function writeAll(storageKey, items, project) {
130
+ writeAllReportsToStorage(storageKey, items, project);
131
+ }
132
+ export function createLocalStorageReportAdapter({ projectId, environment, appVersion }) {
133
+ const storageKey = getReportsStorageKey(projectId, environment, appVersion);
134
+ const project = {
135
+ id: projectId,
136
+ env: environment,
137
+ version: appVersion,
138
+ };
139
+ return {
140
+ async list({ pathname }) {
141
+ return readAll(storageKey)
142
+ .filter((item) => item.pathname === pathname)
143
+ .sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
144
+ },
145
+ async listAll({ cursor, limit }) {
146
+ const offset = Math.max(0, Number.parseInt(cursor ?? "0", 10) || 0);
147
+ const items = readAll(storageKey).sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
148
+ const nextOffset = offset + limit;
149
+ return {
150
+ items: items.slice(offset, nextOffset),
151
+ nextCursor: nextOffset < items.length ? String(nextOffset) : undefined,
152
+ };
153
+ },
154
+ async create(payload) {
155
+ const nextItem = {
156
+ ...payload,
157
+ id: createId(),
158
+ created_at: new Date().toISOString(),
159
+ replies: payload.replies ?? [],
160
+ };
161
+ const items = readAll(storageKey);
162
+ const normalized = normalizeReport(nextItem);
163
+ writeAll(storageKey, [normalized, ...items], project);
164
+ return normalized;
165
+ },
166
+ async update(id, payload) {
167
+ const items = readAll(storageKey);
168
+ const index = items.findIndex((item) => item.id === id);
169
+ if (index < 0) {
170
+ throw new Error(getActiveReportMessages().errors.feedbackNotFound);
171
+ }
172
+ const nextItem = normalizeReport({
173
+ ...items[index],
174
+ ...payload,
175
+ });
176
+ items[index] = nextItem;
177
+ writeAll(storageKey, items, project);
178
+ return nextItem;
179
+ },
180
+ async remove(id) {
181
+ writeAll(storageKey, readAll(storageKey).filter((item) => item.id !== id), project);
182
+ },
183
+ };
184
+ }
185
+ /** @deprecated Use createLocalStorageReportAdapter({ projectId }) instead. */
186
+ export const localStorageReportAdapter = createLocalStorageReportAdapter({ projectId: DEFAULT_PROJECT_ID });
187
+ //# sourceMappingURL=localStorageAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localStorageAdapter.js","sourceRoot":"","sources":["../../../src/storage/local/localStorageAdapter.ts"],"names":[],"mappings":"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"}