@burdenoff/microfe-devportal 2026.1108.1 → 2026.1108.2

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 (1402) hide show
  1. package/dist/__tests__/utils/renderWithProviders.d.ts +0 -2
  2. package/dist/_virtual/_rolldown/runtime.js +4 -5
  3. package/dist/dev/main.d.ts +0 -1
  4. package/dist/devportal/AdminDevportalRoot.d.ts +0 -2
  5. package/dist/devportal/AdminDevportalRoot.js +9 -6
  6. package/dist/devportal/AdminDevportalRoot.js.map +1 -1
  7. package/dist/devportal/AdminDevportalRoutes.d.ts +1 -2
  8. package/dist/devportal/AdminDevportalRoutes.js +1 -2
  9. package/dist/devportal/AdminDevportalRoutes.js.map +1 -1
  10. package/dist/devportal/DevportalRoot.d.ts +0 -2
  11. package/dist/devportal/DevportalRoot.js +13 -10
  12. package/dist/devportal/DevportalRoot.js.map +1 -1
  13. package/dist/devportal/DevportalRoutes.d.ts +1 -2
  14. package/dist/devportal/DevportalRoutes.js +19 -17
  15. package/dist/devportal/DevportalRoutes.js.map +1 -1
  16. package/dist/devportal/components/AppCard.d.ts +0 -2
  17. package/dist/devportal/components/AppCard.js +21 -22
  18. package/dist/devportal/components/AppCard.js.map +1 -1
  19. package/dist/devportal/components/ConfirmDialog.d.ts +0 -2
  20. package/dist/devportal/components/ConfirmDialog.js +9 -10
  21. package/dist/devportal/components/ConfirmDialog.js.map +1 -1
  22. package/dist/devportal/components/DataTable.d.ts +1 -3
  23. package/dist/devportal/components/DataTable.js +20 -21
  24. package/dist/devportal/components/DataTable.js.map +1 -1
  25. package/dist/devportal/components/EmptyState.d.ts +0 -2
  26. package/dist/devportal/components/EmptyState.js +1 -2
  27. package/dist/devportal/components/EmptyState.js.map +1 -1
  28. package/dist/devportal/components/FeatureFlaggedRoute.d.ts +0 -2
  29. package/dist/devportal/components/FeatureFlaggedRoute.js +1 -2
  30. package/dist/devportal/components/FeatureFlaggedRoute.js.map +1 -1
  31. package/dist/devportal/components/FormField.d.ts +0 -2
  32. package/dist/devportal/components/FormField.js +23 -24
  33. package/dist/devportal/components/FormField.js.map +1 -1
  34. package/dist/devportal/components/GrantDelegationModal.d.ts +0 -2
  35. package/dist/devportal/components/GrantDelegationModal.js +1 -2
  36. package/dist/devportal/components/GrantDelegationModal.js.map +1 -1
  37. package/dist/devportal/components/ImageUploadField.d.ts +0 -2
  38. package/dist/devportal/components/ImageUploadField.js +1 -2
  39. package/dist/devportal/components/ImageUploadField.js.map +1 -1
  40. package/dist/devportal/components/LoadingState.d.ts +0 -2
  41. package/dist/devportal/components/LoadingState.js +6 -7
  42. package/dist/devportal/components/LoadingState.js.map +1 -1
  43. package/dist/devportal/components/ManifestViewer.d.ts +0 -2
  44. package/dist/devportal/components/ManifestViewer.js +1 -2
  45. package/dist/devportal/components/ManifestViewer.js.map +1 -1
  46. package/dist/devportal/components/MarkdownEditor.d.ts +0 -2
  47. package/dist/devportal/components/MarkdownEditor.js +1 -2
  48. package/dist/devportal/components/MarkdownEditor.js.map +1 -1
  49. package/dist/devportal/components/MultiSelectCombobox.d.ts +1 -2
  50. package/dist/devportal/components/MultiSelectCombobox.js +1 -2
  51. package/dist/devportal/components/MultiSelectCombobox.js.map +1 -1
  52. package/dist/devportal/components/NodeSmokePanel.d.ts +0 -2
  53. package/dist/devportal/components/NodeSmokePanel.js +17 -18
  54. package/dist/devportal/components/NodeSmokePanel.js.map +1 -1
  55. package/dist/devportal/components/OnboardingChecklist.d.ts +0 -2
  56. package/dist/devportal/components/OnboardingChecklist.js +15 -16
  57. package/dist/devportal/components/OnboardingChecklist.js.map +1 -1
  58. package/dist/devportal/components/PackageValidationPanel.d.ts +0 -2
  59. package/dist/devportal/components/PackageValidationPanel.js +12 -13
  60. package/dist/devportal/components/PackageValidationPanel.js.map +1 -1
  61. package/dist/devportal/components/PageLayout.d.ts +0 -2
  62. package/dist/devportal/components/PageLayout.js +16 -17
  63. package/dist/devportal/components/PageLayout.js.map +1 -1
  64. package/dist/devportal/components/PermissionGuard.d.ts +0 -2
  65. package/dist/devportal/components/PermissionGuard.js +5 -6
  66. package/dist/devportal/components/PermissionGuard.js.map +1 -1
  67. package/dist/devportal/components/RegisterPickupLocationModal.d.ts +0 -2
  68. package/dist/devportal/components/RegisterPickupLocationModal.js +13 -14
  69. package/dist/devportal/components/RegisterPickupLocationModal.js.map +1 -1
  70. package/dist/devportal/components/ReportOrderIssueModal.d.ts +0 -2
  71. package/dist/devportal/components/ReportOrderIssueModal.js +1 -2
  72. package/dist/devportal/components/ReportOrderIssueModal.js.map +1 -1
  73. package/dist/devportal/components/SecretDisplay.d.ts +0 -2
  74. package/dist/devportal/components/SecretDisplay.js +8 -9
  75. package/dist/devportal/components/SecretDisplay.js.map +1 -1
  76. package/dist/devportal/components/SectionNav.d.ts +0 -2
  77. package/dist/devportal/components/SectionNav.js +11 -12
  78. package/dist/devportal/components/SectionNav.js.map +1 -1
  79. package/dist/devportal/components/SelectionCheckbox.d.ts +1 -2
  80. package/dist/devportal/components/SelectionCheckbox.js +1 -2
  81. package/dist/devportal/components/SelectionCheckbox.js.map +1 -1
  82. package/dist/devportal/components/StatCard.d.ts +0 -2
  83. package/dist/devportal/components/StatCard.js +1 -2
  84. package/dist/devportal/components/StatCard.js.map +1 -1
  85. package/dist/devportal/components/StatusBadge.d.ts +0 -2
  86. package/dist/devportal/components/StatusBadge.js +18 -19
  87. package/dist/devportal/components/StatusBadge.js.map +1 -1
  88. package/dist/devportal/components/TelemetryErrorBoundary.d.ts +0 -2
  89. package/dist/devportal/components/TelemetryErrorBoundary.js +1 -2
  90. package/dist/devportal/components/TelemetryErrorBoundary.js.map +1 -1
  91. package/dist/devportal/components/index.d.ts +0 -1
  92. package/dist/devportal/components/index.js +22 -21
  93. package/dist/devportal/constants/appCategories.d.ts +0 -1
  94. package/dist/devportal/constants/appCategories.js +1 -2
  95. package/dist/devportal/constants/appCategories.js.map +1 -1
  96. package/dist/devportal/constants/developerLinks.d.ts +0 -1
  97. package/dist/devportal/constants/developerLinks.js +23 -23
  98. package/dist/devportal/constants/developerLinks.js.map +1 -1
  99. package/dist/devportal/constants/permissions.d.ts +0 -1
  100. package/dist/devportal/constants/permissions.js +1 -2
  101. package/dist/devportal/constants/permissions.js.map +1 -1
  102. package/dist/devportal/events/index.d.ts +0 -1
  103. package/dist/devportal/events/index.js +1 -2
  104. package/dist/devportal/events/index.js.map +1 -1
  105. package/dist/devportal/hooks/DevPortalProvider.d.ts +1 -3
  106. package/dist/devportal/hooks/DevPortalProvider.js +2 -3
  107. package/dist/devportal/hooks/DevPortalProvider.js.map +1 -1
  108. package/dist/devportal/hooks/index.d.ts +0 -1
  109. package/dist/devportal/hooks/index.js +6 -5
  110. package/dist/devportal/hooks/useCarrierPickupLocations.d.ts +0 -1
  111. package/dist/devportal/hooks/useCarrierPickupLocations.js +1 -2
  112. package/dist/devportal/hooks/useCarrierPickupLocations.js.map +1 -1
  113. package/dist/devportal/hooks/useGraphQL.d.ts +0 -2
  114. package/dist/devportal/hooks/useGraphQL.js +42 -53
  115. package/dist/devportal/hooks/useGraphQL.js.map +1 -1
  116. package/dist/devportal/hooks/useIsSellerSection.d.ts +0 -1
  117. package/dist/devportal/hooks/useIsSellerSection.js +1 -2
  118. package/dist/devportal/hooks/useIsSellerSection.js.map +1 -1
  119. package/dist/devportal/hooks/useOrganizationPickupAddresses.d.ts +0 -1
  120. package/dist/devportal/hooks/useOrganizationPickupAddresses.js +3 -8
  121. package/dist/devportal/hooks/useOrganizationPickupAddresses.js.map +1 -1
  122. package/dist/devportal/hooks/usePackageUpload.d.ts +0 -1
  123. package/dist/devportal/hooks/usePackageUpload.js +4 -4
  124. package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
  125. package/dist/devportal/hooks/usePermission.d.ts +0 -2
  126. package/dist/devportal/hooks/usePermission.js +2 -3
  127. package/dist/devportal/hooks/usePermission.js.map +1 -1
  128. package/dist/devportal/hooks/useProducts.d.ts +0 -1
  129. package/dist/devportal/hooks/useProducts.js +1 -2
  130. package/dist/devportal/hooks/useProducts.js.map +1 -1
  131. package/dist/devportal/hooks/useSellerOrganization.d.ts +0 -1
  132. package/dist/devportal/hooks/useSellerOrganization.js +1 -2
  133. package/dist/devportal/hooks/useSellerOrganization.js.map +1 -1
  134. package/dist/devportal/index.d.ts +0 -1
  135. package/dist/devportal/index.js +13 -12
  136. package/dist/devportal/pages/AdminOrganizationVerificationPage.d.ts +0 -2
  137. package/dist/devportal/pages/AdminOrganizationVerificationPage.js +13 -13
  138. package/dist/devportal/pages/AdminOrganizationVerificationPage.js.map +1 -1
  139. package/dist/devportal/pages/AdminReviewPage.d.ts +0 -2
  140. package/dist/devportal/pages/AdminReviewPage.js +134 -135
  141. package/dist/devportal/pages/AdminReviewPage.js.map +1 -1
  142. package/dist/devportal/pages/AnalyticsDashboardPage.d.ts +0 -2
  143. package/dist/devportal/pages/AnalyticsDashboardPage.js +66 -67
  144. package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
  145. package/dist/devportal/pages/ApiKeysPage.d.ts +0 -2
  146. package/dist/devportal/pages/ApiKeysPage.js +127 -128
  147. package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
  148. package/dist/devportal/pages/AppLogsPage.d.ts +0 -2
  149. package/dist/devportal/pages/AppLogsPage.js +18 -19
  150. package/dist/devportal/pages/AppLogsPage.js.map +1 -1
  151. package/dist/devportal/pages/ApplicationDetailPage.d.ts +0 -2
  152. package/dist/devportal/pages/ApplicationDetailPage.js +779 -778
  153. package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
  154. package/dist/devportal/pages/ApplicationVersionsPage.d.ts +0 -2
  155. package/dist/devportal/pages/ApplicationVersionsPage.js +482 -483
  156. package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
  157. package/dist/devportal/pages/ApplicationsPage.d.ts +0 -2
  158. package/dist/devportal/pages/ApplicationsPage.js +35 -36
  159. package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
  160. package/dist/devportal/pages/CreateApiKeyPage.d.ts +0 -2
  161. package/dist/devportal/pages/CreateApiKeyPage.js +39 -39
  162. package/dist/devportal/pages/CreateApiKeyPage.js.map +1 -1
  163. package/dist/devportal/pages/CreateApplicationPage.d.ts +0 -2
  164. package/dist/devportal/pages/CreateApplicationPage.js +136 -137
  165. package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
  166. package/dist/devportal/pages/CreateOAuthClientPage.d.ts +0 -2
  167. package/dist/devportal/pages/CreateOAuthClientPage.js +25 -24
  168. package/dist/devportal/pages/CreateOAuthClientPage.js.map +1 -1
  169. package/dist/devportal/pages/CreateOrganizationPage.d.ts +0 -2
  170. package/dist/devportal/pages/CreateOrganizationPage.js +32 -39
  171. package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
  172. package/dist/devportal/pages/CreatePhysicalItemPage.d.ts +0 -2
  173. package/dist/devportal/pages/CreatePhysicalItemPage.js +102 -103
  174. package/dist/devportal/pages/CreatePhysicalItemPage.js.map +1 -1
  175. package/dist/devportal/pages/CreateWebhookPage.d.ts +0 -2
  176. package/dist/devportal/pages/CreateWebhookPage.js +31 -32
  177. package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
  178. package/dist/devportal/pages/DashboardPage.d.ts +0 -2
  179. package/dist/devportal/pages/DashboardPage.js +21 -22
  180. package/dist/devportal/pages/DashboardPage.js.map +1 -1
  181. package/dist/devportal/pages/DelegationsPage.d.ts +0 -2
  182. package/dist/devportal/pages/DelegationsPage.js +83 -84
  183. package/dist/devportal/pages/DelegationsPage.js.map +1 -1
  184. package/dist/devportal/pages/DocumentationPage.d.ts +0 -2
  185. package/dist/devportal/pages/DocumentationPage.js +1 -2
  186. package/dist/devportal/pages/DocumentationPage.js.map +1 -1
  187. package/dist/devportal/pages/EditApplicationPage.d.ts +0 -2
  188. package/dist/devportal/pages/EditApplicationPage.js +69 -70
  189. package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
  190. package/dist/devportal/pages/EditPhysicalItemPage.d.ts +0 -2
  191. package/dist/devportal/pages/EditPhysicalItemPage.js +334 -335
  192. package/dist/devportal/pages/EditPhysicalItemPage.js.map +1 -1
  193. package/dist/devportal/pages/InvitationDecisionPage.d.ts +0 -2
  194. package/dist/devportal/pages/InvitationDecisionPage.js +16 -17
  195. package/dist/devportal/pages/InvitationDecisionPage.js.map +1 -1
  196. package/dist/devportal/pages/ListingPreviewPage.d.ts +0 -2
  197. package/dist/devportal/pages/ListingPreviewPage.js +14 -15
  198. package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
  199. package/dist/devportal/pages/NodeLifecyclePage.d.ts +0 -2
  200. package/dist/devportal/pages/NodeLifecyclePage.js +216 -221
  201. package/dist/devportal/pages/NodeLifecyclePage.js.map +1 -1
  202. package/dist/devportal/pages/OAuthCallbackPage.d.ts +0 -2
  203. package/dist/devportal/pages/OAuthCallbackPage.js +4 -5
  204. package/dist/devportal/pages/OAuthCallbackPage.js.map +1 -1
  205. package/dist/devportal/pages/OAuthClientDetailPage.d.ts +0 -2
  206. package/dist/devportal/pages/OAuthClientDetailPage.js +17 -16
  207. package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
  208. package/dist/devportal/pages/OAuthClientsPage.d.ts +0 -2
  209. package/dist/devportal/pages/OAuthClientsPage.js +18 -19
  210. package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
  211. package/dist/devportal/pages/OrganizationDetailPage.d.ts +0 -2
  212. package/dist/devportal/pages/OrganizationDetailPage.js +444 -450
  213. package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
  214. package/dist/devportal/pages/OrganizationMembersPage.d.ts +0 -2
  215. package/dist/devportal/pages/OrganizationMembersPage.js +240 -241
  216. package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
  217. package/dist/devportal/pages/OrganizationsPage.d.ts +0 -2
  218. package/dist/devportal/pages/OrganizationsPage.js +34 -35
  219. package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
  220. package/dist/devportal/pages/PublishPage.d.ts +0 -2
  221. package/dist/devportal/pages/PublishPage.js +90 -91
  222. package/dist/devportal/pages/PublishPage.js.map +1 -1
  223. package/dist/devportal/pages/PublisherPayoutsPage.d.ts +0 -2
  224. package/dist/devportal/pages/PublisherPayoutsPage.js +251 -258
  225. package/dist/devportal/pages/PublisherPayoutsPage.js.map +1 -1
  226. package/dist/devportal/pages/PublisherProfilePage.d.ts +0 -2
  227. package/dist/devportal/pages/PublisherProfilePage.js +26 -27
  228. package/dist/devportal/pages/PublisherProfilePage.js.map +1 -1
  229. package/dist/devportal/pages/ResourcesPage.d.ts +0 -2
  230. package/dist/devportal/pages/ResourcesPage.js +17 -18
  231. package/dist/devportal/pages/ResourcesPage.js.map +1 -1
  232. package/dist/devportal/pages/RevenueDashboardPage.d.ts +0 -2
  233. package/dist/devportal/pages/RevenueDashboardPage.js +308 -308
  234. package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
  235. package/dist/devportal/pages/RevenueRedirectPage.d.ts +0 -2
  236. package/dist/devportal/pages/SellerDashboardPage.d.ts +0 -2
  237. package/dist/devportal/pages/SellerDashboardPage.js +14 -15
  238. package/dist/devportal/pages/SellerDashboardPage.js.map +1 -1
  239. package/dist/devportal/pages/SellerItemsPage.d.ts +0 -2
  240. package/dist/devportal/pages/SellerItemsPage.js +8 -9
  241. package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
  242. package/dist/devportal/pages/SellerOrdersPage.d.ts +0 -2
  243. package/dist/devportal/pages/SellerOrdersPage.js +10 -14
  244. package/dist/devportal/pages/SellerOrdersPage.js.map +1 -1
  245. package/dist/devportal/pages/SettingsPage.d.ts +0 -2
  246. package/dist/devportal/pages/SettingsPage.js +20 -21
  247. package/dist/devportal/pages/SettingsPage.js.map +1 -1
  248. package/dist/devportal/pages/SetupPage.d.ts +0 -2
  249. package/dist/devportal/pages/SetupPage.js +276 -277
  250. package/dist/devportal/pages/SetupPage.js.map +1 -1
  251. package/dist/devportal/pages/StoreSubmissionPage.d.ts +0 -2
  252. package/dist/devportal/pages/StoreSubmissionPage.js +4 -5
  253. package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
  254. package/dist/devportal/pages/WebhookDetailPage.d.ts +0 -2
  255. package/dist/devportal/pages/WebhookDetailPage.js +62 -67
  256. package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
  257. package/dist/devportal/pages/WebhooksPage.d.ts +0 -2
  258. package/dist/devportal/pages/WebhooksPage.js +130 -131
  259. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  260. package/dist/devportal/providers/DevportalProvider.d.ts +0 -2
  261. package/dist/devportal/providers/DevportalProvider.js +2 -3
  262. package/dist/devportal/providers/DevportalProvider.js.map +1 -1
  263. package/dist/devportal/store/devportalStore.d.ts +0 -2
  264. package/dist/devportal/store/devportalStore.js +1 -2
  265. package/dist/devportal/store/devportalStore.js.map +1 -1
  266. package/dist/devportal/types/index.d.ts +0 -2
  267. package/dist/devportal/types/index.js +1 -2
  268. package/dist/devportal/types/index.js.map +1 -1
  269. package/dist/devportal/utils/cn.d.ts +0 -2
  270. package/dist/devportal/utils/cn.js +2 -3
  271. package/dist/devportal/utils/cn.js.map +1 -1
  272. package/dist/devportal/utils/constants.d.ts +0 -1
  273. package/dist/devportal/utils/constants.js +1 -2
  274. package/dist/devportal/utils/constants.js.map +1 -1
  275. package/dist/devportal/utils/currency.d.ts +0 -1
  276. package/dist/devportal/utils/currency.js +1 -2
  277. package/dist/devportal/utils/currency.js.map +1 -1
  278. package/dist/devportal/utils/developerOnboarding.d.ts +0 -1
  279. package/dist/devportal/utils/developerOnboarding.js +4 -5
  280. package/dist/devportal/utils/developerOnboarding.js.map +1 -1
  281. package/dist/devportal/utils/graphqlEndpoint.d.ts +0 -1
  282. package/dist/devportal/utils/graphqlEndpoint.js +1 -2
  283. package/dist/devportal/utils/graphqlEndpoint.js.map +1 -1
  284. package/dist/devportal/utils/i18n.d.ts +0 -1
  285. package/dist/devportal/utils/i18n.js +1 -2
  286. package/dist/devportal/utils/i18n.js.map +1 -1
  287. package/dist/devportal/utils/nodeLifecycle.d.ts +0 -2
  288. package/dist/devportal/utils/nodeLifecycle.js +6 -7
  289. package/dist/devportal/utils/nodeLifecycle.js.map +1 -1
  290. package/dist/devportal/utils/publisherPayouts.d.ts +0 -1
  291. package/dist/devportal/utils/publisherPayouts.js +14 -15
  292. package/dist/devportal/utils/publisherPayouts.js.map +1 -1
  293. package/dist/devportal/utils/recaptcha.d.ts +0 -1
  294. package/dist/devportal/utils/recaptcha.js +1 -2
  295. package/dist/devportal/utils/recaptcha.js.map +1 -1
  296. package/dist/devportal/utils/submitForReview.d.ts +0 -1
  297. package/dist/devportal/utils/submitForReview.js +15 -14
  298. package/dist/devportal/utils/submitForReview.js.map +1 -1
  299. package/dist/devportal/utils/uploadErrors.d.ts +0 -1
  300. package/dist/devportal/utils/uploadErrors.js +30 -30
  301. package/dist/devportal/utils/uploadErrors.js.map +1 -1
  302. package/dist/generated/global-operations.d.ts +2379 -2423
  303. package/dist/generated/global-operations.js +6 -5
  304. package/dist/generated/global-operations.js.map +1 -1
  305. package/dist/generated/global-types.d.ts +2 -22
  306. package/dist/generated/global-types.js +1 -2
  307. package/dist/generated/global-types.js.map +1 -1
  308. package/dist/generated/wspace-operations.d.ts +31 -8
  309. package/dist/generated/wspace-operations.js +2 -3
  310. package/dist/generated/wspace-operations.js.map +1 -1
  311. package/dist/generated/wspace-types.d.ts +4 -24
  312. package/dist/index.d.ts +0 -1
  313. package/dist/index.js +1 -1
  314. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +1 -2
  315. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -1
  316. package/dist/node_modules/@apollo/client/errors/ServerError.js +1 -2
  317. package/dist/node_modules/@apollo/client/errors/ServerError.js.map +1 -1
  318. package/dist/node_modules/@apollo/client/errors/utils.js +1 -2
  319. package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -1
  320. package/dist/node_modules/@apollo/client/link/core/ApolloLink.js +7 -8
  321. package/dist/node_modules/@apollo/client/link/core/ApolloLink.js.map +1 -1
  322. package/dist/node_modules/@apollo/client/link/subscriptions/index.js +16 -17
  323. package/dist/node_modules/@apollo/client/link/subscriptions/index.js.map +1 -1
  324. package/dist/node_modules/@apollo/client/link/utils/createOperation.js +5 -6
  325. package/dist/node_modules/@apollo/client/link/utils/createOperation.js.map +1 -1
  326. package/dist/node_modules/@apollo/client/utilities/caching/sizes.js +0 -1
  327. package/dist/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -1
  328. package/dist/node_modules/@apollo/client/utilities/graphql/print.js +4 -5
  329. package/dist/node_modules/@apollo/client/utilities/graphql/print.js.map +1 -1
  330. package/dist/node_modules/@apollo/client/utilities/internal/caches.js +1 -2
  331. package/dist/node_modules/@apollo/client/utilities/internal/caches.js.map +1 -1
  332. package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js +1 -2
  333. package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +1 -1
  334. package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +2 -3
  335. package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +1 -1
  336. package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +1 -2
  337. package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -1
  338. package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js +1 -2
  339. package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +1 -1
  340. package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js +1 -2
  341. package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +1 -1
  342. package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js +1 -2
  343. package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js.map +1 -1
  344. package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js +1 -2
  345. package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +1 -1
  346. package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +1 -2
  347. package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +1 -1
  348. package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js +1 -2
  349. package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +1 -1
  350. package/dist/node_modules/@apollo/client/utilities/internal/memoize.js +1 -2
  351. package/dist/node_modules/@apollo/client/utilities/internal/memoize.js.map +1 -1
  352. package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js +1 -2
  353. package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +1 -1
  354. package/dist/node_modules/@apollo/client/utilities/invariant/index.js +2 -3
  355. package/dist/node_modules/@apollo/client/utilities/invariant/index.js.map +1 -1
  356. package/dist/node_modules/@apollo/client/version.js +2 -3
  357. package/dist/node_modules/@apollo/client/version.js.map +1 -1
  358. package/dist/node_modules/@wry/caches/lib/weak.js +1 -2
  359. package/dist/node_modules/@wry/caches/lib/weak.js.map +1 -1
  360. package/dist/node_modules/@wry/trie/lib/index.js +2 -3
  361. package/dist/node_modules/@wry/trie/lib/index.js.map +1 -1
  362. package/dist/node_modules/clsx/dist/clsx.js +8 -7
  363. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  364. package/dist/node_modules/d3-array/dist/d3-array.js +204 -0
  365. package/dist/node_modules/d3-array/dist/d3-array.js.map +1 -0
  366. package/dist/node_modules/d3-color/dist/d3-color.js +388 -0
  367. package/dist/node_modules/d3-color/dist/d3-color.js.map +1 -0
  368. package/dist/node_modules/d3-format/dist/d3-format.js +186 -0
  369. package/dist/node_modules/d3-format/dist/d3-format.js.map +1 -0
  370. package/dist/node_modules/d3-interpolate/dist/d3-interpolate.js +185 -0
  371. package/dist/node_modules/d3-interpolate/dist/d3-interpolate.js.map +1 -0
  372. package/dist/node_modules/d3-path/{src/path.js → dist/d3-path.js} +39 -14
  373. package/dist/node_modules/d3-path/dist/d3-path.js.map +1 -0
  374. package/dist/node_modules/d3-scale/dist/d3-scale.js +622 -0
  375. package/dist/node_modules/d3-scale/dist/d3-scale.js.map +1 -0
  376. package/dist/node_modules/d3-shape/dist/d3-shape.js +901 -0
  377. package/dist/node_modules/d3-shape/dist/d3-shape.js.map +1 -0
  378. package/dist/node_modules/d3-time/dist/d3-time.js +241 -0
  379. package/dist/node_modules/d3-time/dist/d3-time.js.map +1 -0
  380. package/dist/node_modules/d3-time-format/{src/locale.js → dist/d3-time-format.js} +229 -174
  381. package/dist/node_modules/d3-time-format/dist/d3-time-format.js.map +1 -0
  382. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +1 -2
  383. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -1
  384. package/dist/node_modules/date-fns/_lib/defaultOptions.js +1 -2
  385. package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -1
  386. package/dist/node_modules/date-fns/_lib/format/formatters.js +29 -22
  387. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
  388. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +3 -4
  389. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
  390. package/dist/node_modules/date-fns/_lib/format/longFormatters.js +2 -5
  391. package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -1
  392. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +2 -3
  393. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -1
  394. package/dist/node_modules/date-fns/_lib/protectedTokens.js +1 -2
  395. package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -1
  396. package/dist/node_modules/date-fns/constants.js +5 -5
  397. package/dist/node_modules/date-fns/constants.js.map +1 -1
  398. package/dist/node_modules/date-fns/constructFrom.js +2 -3
  399. package/dist/node_modules/date-fns/constructFrom.js.map +1 -1
  400. package/dist/node_modules/date-fns/differenceInCalendarDays.js +2 -3
  401. package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -1
  402. package/dist/node_modules/date-fns/format.js +15 -16
  403. package/dist/node_modules/date-fns/format.js.map +1 -1
  404. package/dist/node_modules/date-fns/getDayOfYear.js +7 -8
  405. package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -1
  406. package/dist/node_modules/date-fns/getISOWeek.js +8 -9
  407. package/dist/node_modules/date-fns/getISOWeek.js.map +1 -1
  408. package/dist/node_modules/date-fns/getISOWeekYear.js +8 -9
  409. package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -1
  410. package/dist/node_modules/date-fns/getWeek.js +8 -9
  411. package/dist/node_modules/date-fns/getWeek.js.map +1 -1
  412. package/dist/node_modules/date-fns/getWeekYear.js +9 -10
  413. package/dist/node_modules/date-fns/getWeekYear.js.map +1 -1
  414. package/dist/node_modules/date-fns/isDate.js +2 -3
  415. package/dist/node_modules/date-fns/isDate.js.map +1 -1
  416. package/dist/node_modules/date-fns/isValid.js +6 -7
  417. package/dist/node_modules/date-fns/isValid.js.map +1 -1
  418. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +1 -2
  419. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
  420. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +1 -2
  421. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
  422. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +1 -2
  423. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
  424. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +1 -2
  425. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
  426. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +1 -2
  427. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -1
  428. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +0 -1
  429. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -1
  430. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +1 -2
  431. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -1
  432. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +0 -1
  433. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -1
  434. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +0 -1
  435. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -1
  436. package/dist/node_modules/date-fns/locale/en-US.js +2 -3
  437. package/dist/node_modules/date-fns/locale/en-US.js.map +1 -1
  438. package/dist/node_modules/date-fns/startOfDay.js +2 -3
  439. package/dist/node_modules/date-fns/startOfDay.js.map +1 -1
  440. package/dist/node_modules/date-fns/startOfISOWeek.js +2 -3
  441. package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -1
  442. package/dist/node_modules/date-fns/startOfISOWeekYear.js +5 -6
  443. package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -1
  444. package/dist/node_modules/date-fns/startOfWeek.js +2 -3
  445. package/dist/node_modules/date-fns/startOfWeek.js.map +1 -1
  446. package/dist/node_modules/date-fns/startOfWeekYear.js +6 -7
  447. package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -1
  448. package/dist/node_modules/date-fns/startOfYear.js +3 -4
  449. package/dist/node_modules/date-fns/startOfYear.js.map +1 -1
  450. package/dist/node_modules/date-fns/toDate.js +2 -3
  451. package/dist/node_modules/date-fns/toDate.js.map +1 -1
  452. package/dist/node_modules/decimal.js-light/decimal.js +33 -30
  453. package/dist/node_modules/decimal.js-light/decimal.js.map +1 -1
  454. package/dist/node_modules/eventemitter3/index.js +2 -3
  455. package/dist/node_modules/eventemitter3/index.js.map +1 -1
  456. package/dist/node_modules/fast-equals/dist/es/index.js +109 -79
  457. package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -1
  458. package/dist/node_modules/graphql-ws/dist/client.js +76 -69
  459. package/dist/node_modules/graphql-ws/dist/client.js.map +1 -1
  460. package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js +2 -3
  461. package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +1 -1
  462. package/dist/node_modules/lodash/_DataView.js +4 -5
  463. package/dist/node_modules/lodash/_DataView.js.map +1 -1
  464. package/dist/node_modules/lodash/_Hash.js +1 -2
  465. package/dist/node_modules/lodash/_Hash.js.map +1 -1
  466. package/dist/node_modules/lodash/_ListCache.js +1 -2
  467. package/dist/node_modules/lodash/_ListCache.js.map +1 -1
  468. package/dist/node_modules/lodash/_Map.js +4 -5
  469. package/dist/node_modules/lodash/_Map.js.map +1 -1
  470. package/dist/node_modules/lodash/_MapCache.js +1 -2
  471. package/dist/node_modules/lodash/_MapCache.js.map +1 -1
  472. package/dist/node_modules/lodash/_Promise.js +4 -5
  473. package/dist/node_modules/lodash/_Promise.js.map +1 -1
  474. package/dist/node_modules/lodash/_Set.js +4 -5
  475. package/dist/node_modules/lodash/_Set.js.map +1 -1
  476. package/dist/node_modules/lodash/_SetCache.js +1 -2
  477. package/dist/node_modules/lodash/_SetCache.js.map +1 -1
  478. package/dist/node_modules/lodash/_Stack.js +3 -3
  479. package/dist/node_modules/lodash/_Stack.js.map +1 -1
  480. package/dist/node_modules/lodash/_Symbol.js +1 -2
  481. package/dist/node_modules/lodash/_Symbol.js.map +1 -1
  482. package/dist/node_modules/lodash/_Uint8Array.js +1 -2
  483. package/dist/node_modules/lodash/_Uint8Array.js.map +1 -1
  484. package/dist/node_modules/lodash/_WeakMap.js +4 -5
  485. package/dist/node_modules/lodash/_WeakMap.js.map +1 -1
  486. package/dist/node_modules/lodash/_apply.js +1 -2
  487. package/dist/node_modules/lodash/_apply.js.map +1 -1
  488. package/dist/node_modules/lodash/_arrayEvery.js +1 -2
  489. package/dist/node_modules/lodash/_arrayEvery.js.map +1 -1
  490. package/dist/node_modules/lodash/_arrayFilter.js +1 -2
  491. package/dist/node_modules/lodash/_arrayFilter.js.map +1 -1
  492. package/dist/node_modules/lodash/_arrayIncludes.js +1 -2
  493. package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -1
  494. package/dist/node_modules/lodash/_arrayIncludesWith.js +1 -2
  495. package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -1
  496. package/dist/node_modules/lodash/_arrayLikeKeys.js +5 -6
  497. package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -1
  498. package/dist/node_modules/lodash/_arrayMap.js +1 -2
  499. package/dist/node_modules/lodash/_arrayMap.js.map +1 -1
  500. package/dist/node_modules/lodash/_arrayPush.js +1 -2
  501. package/dist/node_modules/lodash/_arrayPush.js.map +1 -1
  502. package/dist/node_modules/lodash/_arraySome.js +1 -2
  503. package/dist/node_modules/lodash/_arraySome.js.map +1 -1
  504. package/dist/node_modules/lodash/_asciiToArray.js +1 -2
  505. package/dist/node_modules/lodash/_asciiToArray.js.map +1 -1
  506. package/dist/node_modules/lodash/_assocIndexOf.js +1 -2
  507. package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -1
  508. package/dist/node_modules/lodash/_baseAssignValue.js +1 -2
  509. package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -1
  510. package/dist/node_modules/lodash/_baseEach.js +1 -2
  511. package/dist/node_modules/lodash/_baseEach.js.map +1 -1
  512. package/dist/node_modules/lodash/_baseEvery.js +1 -2
  513. package/dist/node_modules/lodash/_baseEvery.js.map +1 -1
  514. package/dist/node_modules/lodash/_baseExtremum.js +1 -2
  515. package/dist/node_modules/lodash/_baseExtremum.js.map +1 -1
  516. package/dist/node_modules/lodash/_baseFindIndex.js +1 -2
  517. package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -1
  518. package/dist/node_modules/lodash/_baseFlatten.js +1 -2
  519. package/dist/node_modules/lodash/_baseFlatten.js.map +1 -1
  520. package/dist/node_modules/lodash/_baseFor.js +1 -2
  521. package/dist/node_modules/lodash/_baseFor.js.map +1 -1
  522. package/dist/node_modules/lodash/_baseForOwn.js +4 -5
  523. package/dist/node_modules/lodash/_baseForOwn.js.map +1 -1
  524. package/dist/node_modules/lodash/_baseGet.js +1 -2
  525. package/dist/node_modules/lodash/_baseGet.js.map +1 -1
  526. package/dist/node_modules/lodash/_baseGetAllKeys.js +4 -5
  527. package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -1
  528. package/dist/node_modules/lodash/_baseGetTag.js +1 -2
  529. package/dist/node_modules/lodash/_baseGetTag.js.map +1 -1
  530. package/dist/node_modules/lodash/_baseGt.js +1 -2
  531. package/dist/node_modules/lodash/_baseGt.js.map +1 -1
  532. package/dist/node_modules/lodash/_baseHasIn.js +1 -2
  533. package/dist/node_modules/lodash/_baseHasIn.js.map +1 -1
  534. package/dist/node_modules/lodash/_baseIndexOf.js +1 -2
  535. package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -1
  536. package/dist/node_modules/lodash/_baseIsArguments.js +1 -2
  537. package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -1
  538. package/dist/node_modules/lodash/_baseIsEqual.js +4 -5
  539. package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -1
  540. package/dist/node_modules/lodash/_baseIsEqualDeep.js +10 -11
  541. package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -1
  542. package/dist/node_modules/lodash/_baseIsMatch.js +1 -2
  543. package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -1
  544. package/dist/node_modules/lodash/_baseIsNaN.js +1 -2
  545. package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -1
  546. package/dist/node_modules/lodash/_baseIsNative.js +5 -6
  547. package/dist/node_modules/lodash/_baseIsNative.js.map +1 -1
  548. package/dist/node_modules/lodash/_baseIsTypedArray.js +4 -5
  549. package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -1
  550. package/dist/node_modules/lodash/_baseIteratee.js +6 -7
  551. package/dist/node_modules/lodash/_baseIteratee.js.map +1 -1
  552. package/dist/node_modules/lodash/_baseKeys.js +1 -2
  553. package/dist/node_modules/lodash/_baseKeys.js.map +1 -1
  554. package/dist/node_modules/lodash/_baseLt.js +1 -2
  555. package/dist/node_modules/lodash/_baseLt.js.map +1 -1
  556. package/dist/node_modules/lodash/_baseMap.js +4 -5
  557. package/dist/node_modules/lodash/_baseMap.js.map +1 -1
  558. package/dist/node_modules/lodash/_baseMatches.js +1 -2
  559. package/dist/node_modules/lodash/_baseMatches.js.map +1 -1
  560. package/dist/node_modules/lodash/_baseMatchesProperty.js +7 -8
  561. package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -1
  562. package/dist/node_modules/lodash/_baseOrderBy.js +11 -12
  563. package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -1
  564. package/dist/node_modules/lodash/_baseProperty.js +1 -2
  565. package/dist/node_modules/lodash/_baseProperty.js.map +1 -1
  566. package/dist/node_modules/lodash/_basePropertyDeep.js +1 -2
  567. package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -1
  568. package/dist/node_modules/lodash/_baseRange.js +1 -2
  569. package/dist/node_modules/lodash/_baseRange.js.map +1 -1
  570. package/dist/node_modules/lodash/_baseRest.js +1 -2
  571. package/dist/node_modules/lodash/_baseRest.js.map +1 -1
  572. package/dist/node_modules/lodash/_baseSetToString.js +5 -6
  573. package/dist/node_modules/lodash/_baseSetToString.js.map +1 -1
  574. package/dist/node_modules/lodash/_baseSlice.js +1 -2
  575. package/dist/node_modules/lodash/_baseSlice.js.map +1 -1
  576. package/dist/node_modules/lodash/_baseSome.js +1 -2
  577. package/dist/node_modules/lodash/_baseSome.js.map +1 -1
  578. package/dist/node_modules/lodash/_baseSortBy.js +1 -2
  579. package/dist/node_modules/lodash/_baseSortBy.js.map +1 -1
  580. package/dist/node_modules/lodash/_baseTimes.js +1 -2
  581. package/dist/node_modules/lodash/_baseTimes.js.map +1 -1
  582. package/dist/node_modules/lodash/_baseToString.js +6 -7
  583. package/dist/node_modules/lodash/_baseToString.js.map +1 -1
  584. package/dist/node_modules/lodash/_baseTrim.js +1 -2
  585. package/dist/node_modules/lodash/_baseTrim.js.map +1 -1
  586. package/dist/node_modules/lodash/_baseUnary.js +1 -2
  587. package/dist/node_modules/lodash/_baseUnary.js.map +1 -1
  588. package/dist/node_modules/lodash/_baseUniq.js +7 -8
  589. package/dist/node_modules/lodash/_baseUniq.js.map +1 -1
  590. package/dist/node_modules/lodash/_cacheHas.js +1 -2
  591. package/dist/node_modules/lodash/_cacheHas.js.map +1 -1
  592. package/dist/node_modules/lodash/_castPath.js +1 -2
  593. package/dist/node_modules/lodash/_castPath.js.map +1 -1
  594. package/dist/node_modules/lodash/_castSlice.js +1 -2
  595. package/dist/node_modules/lodash/_castSlice.js.map +1 -1
  596. package/dist/node_modules/lodash/_compareAscending.js +1 -2
  597. package/dist/node_modules/lodash/_compareAscending.js.map +1 -1
  598. package/dist/node_modules/lodash/_compareMultiple.js +1 -2
  599. package/dist/node_modules/lodash/_compareMultiple.js.map +1 -1
  600. package/dist/node_modules/lodash/_coreJsData.js +1 -2
  601. package/dist/node_modules/lodash/_coreJsData.js.map +1 -1
  602. package/dist/node_modules/lodash/_createBaseEach.js +1 -2
  603. package/dist/node_modules/lodash/_createBaseEach.js.map +1 -1
  604. package/dist/node_modules/lodash/_createBaseFor.js +1 -2
  605. package/dist/node_modules/lodash/_createBaseFor.js.map +1 -1
  606. package/dist/node_modules/lodash/_createCaseFirst.js +6 -7
  607. package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -1
  608. package/dist/node_modules/lodash/_createFind.js +5 -6
  609. package/dist/node_modules/lodash/_createFind.js.map +1 -1
  610. package/dist/node_modules/lodash/_createRange.js +4 -5
  611. package/dist/node_modules/lodash/_createRange.js.map +1 -1
  612. package/dist/node_modules/lodash/_createSet.js +6 -7
  613. package/dist/node_modules/lodash/_createSet.js.map +1 -1
  614. package/dist/node_modules/lodash/_defineProperty.js +1 -2
  615. package/dist/node_modules/lodash/_defineProperty.js.map +1 -1
  616. package/dist/node_modules/lodash/_equalArrays.js +1 -2
  617. package/dist/node_modules/lodash/_equalArrays.js.map +1 -1
  618. package/dist/node_modules/lodash/_equalByTag.js +5 -6
  619. package/dist/node_modules/lodash/_equalByTag.js.map +1 -1
  620. package/dist/node_modules/lodash/_equalObjects.js +1 -2
  621. package/dist/node_modules/lodash/_equalObjects.js.map +1 -1
  622. package/dist/node_modules/lodash/_freeGlobal.js +1 -2
  623. package/dist/node_modules/lodash/_freeGlobal.js.map +1 -1
  624. package/dist/node_modules/lodash/_getAllKeys.js +1 -2
  625. package/dist/node_modules/lodash/_getAllKeys.js.map +1 -1
  626. package/dist/node_modules/lodash/_getMapData.js +1 -2
  627. package/dist/node_modules/lodash/_getMapData.js.map +1 -1
  628. package/dist/node_modules/lodash/_getMatchData.js +4 -5
  629. package/dist/node_modules/lodash/_getMatchData.js.map +1 -1
  630. package/dist/node_modules/lodash/_getNative.js +1 -2
  631. package/dist/node_modules/lodash/_getNative.js.map +1 -1
  632. package/dist/node_modules/lodash/_getPrototype.js +1 -2
  633. package/dist/node_modules/lodash/_getPrototype.js.map +1 -1
  634. package/dist/node_modules/lodash/_getRawTag.js +1 -2
  635. package/dist/node_modules/lodash/_getRawTag.js.map +1 -1
  636. package/dist/node_modules/lodash/_getSymbols.js +1 -2
  637. package/dist/node_modules/lodash/_getSymbols.js.map +1 -1
  638. package/dist/node_modules/lodash/_getTag.js +9 -10
  639. package/dist/node_modules/lodash/_getTag.js.map +1 -1
  640. package/dist/node_modules/lodash/_getValue.js +1 -2
  641. package/dist/node_modules/lodash/_getValue.js.map +1 -1
  642. package/dist/node_modules/lodash/_hasPath.js +8 -9
  643. package/dist/node_modules/lodash/_hasPath.js.map +1 -1
  644. package/dist/node_modules/lodash/_hasUnicode.js +1 -2
  645. package/dist/node_modules/lodash/_hasUnicode.js.map +1 -1
  646. package/dist/node_modules/lodash/_hashClear.js +1 -2
  647. package/dist/node_modules/lodash/_hashClear.js.map +1 -1
  648. package/dist/node_modules/lodash/_hashDelete.js +1 -2
  649. package/dist/node_modules/lodash/_hashDelete.js.map +1 -1
  650. package/dist/node_modules/lodash/_hashGet.js +1 -2
  651. package/dist/node_modules/lodash/_hashGet.js.map +1 -1
  652. package/dist/node_modules/lodash/_hashHas.js +1 -2
  653. package/dist/node_modules/lodash/_hashHas.js.map +1 -1
  654. package/dist/node_modules/lodash/_hashSet.js +1 -2
  655. package/dist/node_modules/lodash/_hashSet.js.map +1 -1
  656. package/dist/node_modules/lodash/_isFlattenable.js +5 -6
  657. package/dist/node_modules/lodash/_isFlattenable.js.map +1 -1
  658. package/dist/node_modules/lodash/_isIndex.js +6 -7
  659. package/dist/node_modules/lodash/_isIndex.js.map +1 -1
  660. package/dist/node_modules/lodash/_isIterateeCall.js +5 -6
  661. package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -1
  662. package/dist/node_modules/lodash/_isKey.js +1 -2
  663. package/dist/node_modules/lodash/_isKey.js.map +1 -1
  664. package/dist/node_modules/lodash/_isKeyable.js +1 -2
  665. package/dist/node_modules/lodash/_isKeyable.js.map +1 -1
  666. package/dist/node_modules/lodash/_isMasked.js +1 -2
  667. package/dist/node_modules/lodash/_isMasked.js.map +1 -1
  668. package/dist/node_modules/lodash/_isPrototype.js +1 -2
  669. package/dist/node_modules/lodash/_isPrototype.js.map +1 -1
  670. package/dist/node_modules/lodash/_isStrictComparable.js +1 -2
  671. package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -1
  672. package/dist/node_modules/lodash/_listCacheClear.js +1 -2
  673. package/dist/node_modules/lodash/_listCacheClear.js.map +1 -1
  674. package/dist/node_modules/lodash/_listCacheDelete.js +1 -2
  675. package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -1
  676. package/dist/node_modules/lodash/_listCacheGet.js +1 -2
  677. package/dist/node_modules/lodash/_listCacheGet.js.map +1 -1
  678. package/dist/node_modules/lodash/_listCacheHas.js +1 -2
  679. package/dist/node_modules/lodash/_listCacheHas.js.map +1 -1
  680. package/dist/node_modules/lodash/_listCacheSet.js +1 -2
  681. package/dist/node_modules/lodash/_listCacheSet.js.map +1 -1
  682. package/dist/node_modules/lodash/_mapCacheClear.js +1 -2
  683. package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -1
  684. package/dist/node_modules/lodash/_mapCacheDelete.js +1 -2
  685. package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -1
  686. package/dist/node_modules/lodash/_mapCacheGet.js +1 -2
  687. package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -1
  688. package/dist/node_modules/lodash/_mapCacheHas.js +1 -2
  689. package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -1
  690. package/dist/node_modules/lodash/_mapCacheSet.js +1 -2
  691. package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -1
  692. package/dist/node_modules/lodash/_mapToArray.js +1 -2
  693. package/dist/node_modules/lodash/_mapToArray.js.map +1 -1
  694. package/dist/node_modules/lodash/_matchesStrictComparable.js +2 -3
  695. package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -1
  696. package/dist/node_modules/lodash/_memoizeCapped.js +1 -2
  697. package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -1
  698. package/dist/node_modules/lodash/_nativeCreate.js +1 -2
  699. package/dist/node_modules/lodash/_nativeCreate.js.map +1 -1
  700. package/dist/node_modules/lodash/_nativeKeys.js +1 -2
  701. package/dist/node_modules/lodash/_nativeKeys.js.map +1 -1
  702. package/dist/node_modules/lodash/_nodeUtil.js +1 -2
  703. package/dist/node_modules/lodash/_nodeUtil.js.map +1 -1
  704. package/dist/node_modules/lodash/_objectToString.js +1 -2
  705. package/dist/node_modules/lodash/_objectToString.js.map +1 -1
  706. package/dist/node_modules/lodash/_overArg.js +1 -2
  707. package/dist/node_modules/lodash/_overArg.js.map +1 -1
  708. package/dist/node_modules/lodash/_overRest.js +1 -2
  709. package/dist/node_modules/lodash/_overRest.js.map +1 -1
  710. package/dist/node_modules/lodash/_root.js +1 -2
  711. package/dist/node_modules/lodash/_root.js.map +1 -1
  712. package/dist/node_modules/lodash/_setCacheAdd.js +4 -6
  713. package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -1
  714. package/dist/node_modules/lodash/_setCacheHas.js +1 -2
  715. package/dist/node_modules/lodash/_setCacheHas.js.map +1 -1
  716. package/dist/node_modules/lodash/_setToArray.js +1 -2
  717. package/dist/node_modules/lodash/_setToArray.js.map +1 -1
  718. package/dist/node_modules/lodash/_setToString.js +1 -2
  719. package/dist/node_modules/lodash/_setToString.js.map +1 -1
  720. package/dist/node_modules/lodash/_shortOut.js +8 -9
  721. package/dist/node_modules/lodash/_shortOut.js.map +1 -1
  722. package/dist/node_modules/lodash/_stackClear.js +1 -2
  723. package/dist/node_modules/lodash/_stackClear.js.map +1 -1
  724. package/dist/node_modules/lodash/_stackDelete.js +1 -2
  725. package/dist/node_modules/lodash/_stackDelete.js.map +1 -1
  726. package/dist/node_modules/lodash/_stackGet.js +1 -2
  727. package/dist/node_modules/lodash/_stackGet.js.map +1 -1
  728. package/dist/node_modules/lodash/_stackHas.js +1 -2
  729. package/dist/node_modules/lodash/_stackHas.js.map +1 -1
  730. package/dist/node_modules/lodash/_stackSet.js +1 -2
  731. package/dist/node_modules/lodash/_stackSet.js.map +1 -1
  732. package/dist/node_modules/lodash/_strictIndexOf.js +1 -2
  733. package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -1
  734. package/dist/node_modules/lodash/_stringToArray.js +4 -5
  735. package/dist/node_modules/lodash/_stringToArray.js.map +1 -1
  736. package/dist/node_modules/lodash/_stringToPath.js +1 -2
  737. package/dist/node_modules/lodash/_stringToPath.js.map +1 -1
  738. package/dist/node_modules/lodash/_toKey.js +2 -3
  739. package/dist/node_modules/lodash/_toKey.js.map +1 -1
  740. package/dist/node_modules/lodash/_toSource.js +1 -2
  741. package/dist/node_modules/lodash/_toSource.js.map +1 -1
  742. package/dist/node_modules/lodash/_trimmedEndIndex.js +1 -2
  743. package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -1
  744. package/dist/node_modules/lodash/_unicodeToArray.js +1 -2
  745. package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -1
  746. package/dist/node_modules/lodash/constant.js +1 -2
  747. package/dist/node_modules/lodash/constant.js.map +1 -1
  748. package/dist/node_modules/lodash/debounce.js +1 -2
  749. package/dist/node_modules/lodash/debounce.js.map +1 -1
  750. package/dist/node_modules/lodash/eq.js +1 -2
  751. package/dist/node_modules/lodash/eq.js.map +1 -1
  752. package/dist/node_modules/lodash/every.js +7 -8
  753. package/dist/node_modules/lodash/every.js.map +1 -1
  754. package/dist/node_modules/lodash/find.js +1 -2
  755. package/dist/node_modules/lodash/find.js.map +1 -1
  756. package/dist/node_modules/lodash/findIndex.js +4 -5
  757. package/dist/node_modules/lodash/findIndex.js.map +1 -1
  758. package/dist/node_modules/lodash/flatMap.js +1 -2
  759. package/dist/node_modules/lodash/flatMap.js.map +1 -1
  760. package/dist/node_modules/lodash/get.js +1 -2
  761. package/dist/node_modules/lodash/get.js.map +1 -1
  762. package/dist/node_modules/lodash/hasIn.js +1 -2
  763. package/dist/node_modules/lodash/hasIn.js.map +1 -1
  764. package/dist/node_modules/lodash/identity.js +1 -2
  765. package/dist/node_modules/lodash/identity.js.map +1 -1
  766. package/dist/node_modules/lodash/isArguments.js +4 -5
  767. package/dist/node_modules/lodash/isArguments.js.map +1 -1
  768. package/dist/node_modules/lodash/isArray.js +1 -2
  769. package/dist/node_modules/lodash/isArray.js.map +1 -1
  770. package/dist/node_modules/lodash/isArrayLike.js +1 -2
  771. package/dist/node_modules/lodash/isArrayLike.js.map +1 -1
  772. package/dist/node_modules/lodash/isBoolean.js +1 -2
  773. package/dist/node_modules/lodash/isBoolean.js.map +1 -1
  774. package/dist/node_modules/lodash/isBuffer.js +1 -2
  775. package/dist/node_modules/lodash/isBuffer.js.map +1 -1
  776. package/dist/node_modules/lodash/isEqual.js +1 -2
  777. package/dist/node_modules/lodash/isEqual.js.map +1 -1
  778. package/dist/node_modules/lodash/isFunction.js +1 -2
  779. package/dist/node_modules/lodash/isFunction.js.map +1 -1
  780. package/dist/node_modules/lodash/isLength.js +4 -6
  781. package/dist/node_modules/lodash/isLength.js.map +1 -1
  782. package/dist/node_modules/lodash/isNaN.js +1 -2
  783. package/dist/node_modules/lodash/isNaN.js.map +1 -1
  784. package/dist/node_modules/lodash/isNil.js +1 -2
  785. package/dist/node_modules/lodash/isNil.js.map +1 -1
  786. package/dist/node_modules/lodash/isNumber.js +1 -2
  787. package/dist/node_modules/lodash/isNumber.js.map +1 -1
  788. package/dist/node_modules/lodash/isObject.js +1 -2
  789. package/dist/node_modules/lodash/isObject.js.map +1 -1
  790. package/dist/node_modules/lodash/isObjectLike.js +1 -2
  791. package/dist/node_modules/lodash/isObjectLike.js.map +1 -1
  792. package/dist/node_modules/lodash/isPlainObject.js +4 -5
  793. package/dist/node_modules/lodash/isPlainObject.js.map +1 -1
  794. package/dist/node_modules/lodash/isString.js +4 -5
  795. package/dist/node_modules/lodash/isString.js.map +1 -1
  796. package/dist/node_modules/lodash/isSymbol.js +1 -2
  797. package/dist/node_modules/lodash/isSymbol.js.map +1 -1
  798. package/dist/node_modules/lodash/isTypedArray.js +1 -2
  799. package/dist/node_modules/lodash/isTypedArray.js.map +1 -1
  800. package/dist/node_modules/lodash/keys.js +1 -2
  801. package/dist/node_modules/lodash/keys.js.map +1 -1
  802. package/dist/node_modules/lodash/last.js +1 -2
  803. package/dist/node_modules/lodash/last.js.map +1 -1
  804. package/dist/node_modules/lodash/map.js +6 -7
  805. package/dist/node_modules/lodash/map.js.map +1 -1
  806. package/dist/node_modules/lodash/mapValues.js +4 -5
  807. package/dist/node_modules/lodash/mapValues.js.map +1 -1
  808. package/dist/node_modules/lodash/max.js +5 -6
  809. package/dist/node_modules/lodash/max.js.map +1 -1
  810. package/dist/node_modules/lodash/memoize.js +1 -2
  811. package/dist/node_modules/lodash/memoize.js.map +1 -1
  812. package/dist/node_modules/lodash/min.js +5 -6
  813. package/dist/node_modules/lodash/min.js.map +1 -1
  814. package/dist/node_modules/lodash/noop.js +1 -2
  815. package/dist/node_modules/lodash/noop.js.map +1 -1
  816. package/dist/node_modules/lodash/now.js +1 -2
  817. package/dist/node_modules/lodash/now.js.map +1 -1
  818. package/dist/node_modules/lodash/property.js +6 -7
  819. package/dist/node_modules/lodash/property.js.map +1 -1
  820. package/dist/node_modules/lodash/range.js +1 -2
  821. package/dist/node_modules/lodash/range.js.map +1 -1
  822. package/dist/node_modules/lodash/some.js +7 -8
  823. package/dist/node_modules/lodash/some.js.map +1 -1
  824. package/dist/node_modules/lodash/sortBy.js +1 -2
  825. package/dist/node_modules/lodash/sortBy.js.map +1 -1
  826. package/dist/node_modules/lodash/stubArray.js +1 -2
  827. package/dist/node_modules/lodash/stubArray.js.map +1 -1
  828. package/dist/node_modules/lodash/stubFalse.js +1 -2
  829. package/dist/node_modules/lodash/stubFalse.js.map +1 -1
  830. package/dist/node_modules/lodash/throttle.js +4 -5
  831. package/dist/node_modules/lodash/throttle.js.map +1 -1
  832. package/dist/node_modules/lodash/toFinite.js +2 -3
  833. package/dist/node_modules/lodash/toFinite.js.map +1 -1
  834. package/dist/node_modules/lodash/toInteger.js +1 -2
  835. package/dist/node_modules/lodash/toInteger.js.map +1 -1
  836. package/dist/node_modules/lodash/toNumber.js +4 -5
  837. package/dist/node_modules/lodash/toNumber.js.map +1 -1
  838. package/dist/node_modules/lodash/toString.js +1 -2
  839. package/dist/node_modules/lodash/toString.js.map +1 -1
  840. package/dist/node_modules/lodash/uniqBy.js +1 -2
  841. package/dist/node_modules/lodash/uniqBy.js.map +1 -1
  842. package/dist/node_modules/lodash/upperFirst.js +1 -2
  843. package/dist/node_modules/lodash/upperFirst.js.map +1 -1
  844. package/dist/node_modules/object-assign/index.js +1 -2
  845. package/dist/node_modules/object-assign/index.js.map +1 -1
  846. package/dist/node_modules/prop-types/checkPropTypes.js +1 -2
  847. package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -1
  848. package/dist/node_modules/prop-types/factoryWithThrowingShims.js +1 -2
  849. package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -1
  850. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +3 -3
  851. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
  852. package/dist/node_modules/prop-types/index.js +1 -2
  853. package/dist/node_modules/prop-types/index.js.map +1 -1
  854. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +1 -2
  855. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -1
  856. package/dist/node_modules/prop-types/lib/has.js +1 -2
  857. package/dist/node_modules/prop-types/lib/has.js.map +1 -1
  858. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +1 -2
  859. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  860. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +1 -2
  861. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  862. package/dist/node_modules/prop-types/node_modules/react-is/index.js +2 -3
  863. package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -1
  864. package/dist/node_modules/react-is/cjs/react-is.development.js +31 -32
  865. package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  866. package/dist/node_modules/react-is/cjs/react-is.production.min.js +1 -2
  867. package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  868. package/dist/node_modules/react-is/index.js +2 -3
  869. package/dist/node_modules/react-is/index.js.map +1 -1
  870. package/dist/node_modules/react-smooth/es6/Animate.js +33 -41
  871. package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -1
  872. package/dist/node_modules/react-smooth/es6/AnimateManager.js +2 -5
  873. package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -1
  874. package/dist/node_modules/react-smooth/es6/configUpdate.js +1 -2
  875. package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -1
  876. package/dist/node_modules/react-smooth/es6/easing.js +1 -2
  877. package/dist/node_modules/react-smooth/es6/easing.js.map +1 -1
  878. package/dist/node_modules/react-smooth/es6/index.js +1 -2
  879. package/dist/node_modules/react-smooth/es6/index.js.map +1 -1
  880. package/dist/node_modules/react-smooth/es6/setRafTimeout.js +1 -2
  881. package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -1
  882. package/dist/node_modules/react-smooth/es6/util.js +17 -16
  883. package/dist/node_modules/react-smooth/es6/util.js.map +1 -1
  884. package/dist/node_modules/recharts/es6/cartesian/Bar.js +103 -104
  885. package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -1
  886. package/dist/node_modules/recharts/es6/cartesian/Brush.js +35 -36
  887. package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -1
  888. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +60 -67
  889. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -1
  890. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +45 -46
  891. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +1 -1
  892. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +20 -21
  893. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -1
  894. package/dist/node_modules/recharts/es6/cartesian/Line.js +79 -80
  895. package/dist/node_modules/recharts/es6/cartesian/Line.js.map +1 -1
  896. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +29 -30
  897. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -1
  898. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +23 -24
  899. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -1
  900. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +31 -32
  901. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -1
  902. package/dist/node_modules/recharts/es6/cartesian/XAxis.js +10 -11
  903. package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -1
  904. package/dist/node_modules/recharts/es6/cartesian/YAxis.js +10 -11
  905. package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -1
  906. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +5 -6
  907. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -1
  908. package/dist/node_modules/recharts/es6/cartesian/getTicks.js +7 -8
  909. package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -1
  910. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +2 -5
  911. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -1
  912. package/dist/node_modules/recharts/es6/chart/BarChart.js +7 -8
  913. package/dist/node_modules/recharts/es6/chart/BarChart.js.map +1 -1
  914. package/dist/node_modules/recharts/es6/chart/LineChart.js +5 -6
  915. package/dist/node_modules/recharts/es6/chart/LineChart.js.map +1 -1
  916. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +534 -533
  917. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -1
  918. package/dist/node_modules/recharts/es6/component/Cell.js +1 -2
  919. package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -1
  920. package/dist/node_modules/recharts/es6/component/Cursor.js +17 -18
  921. package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -1
  922. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +35 -36
  923. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -1
  924. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +16 -17
  925. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -1
  926. package/dist/node_modules/recharts/es6/component/Label.js +85 -86
  927. package/dist/node_modules/recharts/es6/component/Label.js.map +1 -1
  928. package/dist/node_modules/recharts/es6/component/LabelList.js +20 -21
  929. package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -1
  930. package/dist/node_modules/recharts/es6/component/Legend.js +26 -23
  931. package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -1
  932. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +16 -17
  933. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -1
  934. package/dist/node_modules/recharts/es6/component/Text.js +18 -21
  935. package/dist/node_modules/recharts/es6/component/Text.js.map +1 -1
  936. package/dist/node_modules/recharts/es6/component/Tooltip.js +16 -17
  937. package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -1
  938. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +3 -4
  939. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -1
  940. package/dist/node_modules/recharts/es6/container/Layer.js +5 -6
  941. package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -1
  942. package/dist/node_modules/recharts/es6/container/Surface.js +5 -6
  943. package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -1
  944. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +21 -21
  945. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -1
  946. package/dist/node_modules/recharts/es6/shape/Cross.js +4 -5
  947. package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -1
  948. package/dist/node_modules/recharts/es6/shape/Curve.js +38 -49
  949. package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -1
  950. package/dist/node_modules/recharts/es6/shape/Dot.js +3 -4
  951. package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -1
  952. package/dist/node_modules/recharts/es6/shape/Rectangle.js +8 -9
  953. package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -1
  954. package/dist/node_modules/recharts/es6/shape/Sector.js +33 -34
  955. package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -1
  956. package/dist/node_modules/recharts/es6/shape/Symbols.js +26 -34
  957. package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -1
  958. package/dist/node_modules/recharts/es6/shape/Trapezoid.js +8 -9
  959. package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -1
  960. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +24 -25
  961. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -1
  962. package/dist/node_modules/recharts/es6/util/BarUtils.js +10 -11
  963. package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -1
  964. package/dist/node_modules/recharts/es6/util/CartesianUtils.js +33 -34
  965. package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -1
  966. package/dist/node_modules/recharts/es6/util/ChartUtils.js +231 -236
  967. package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -1
  968. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +1 -2
  969. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -1
  970. package/dist/node_modules/recharts/es6/util/DOMUtils.js +1 -2
  971. package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -1
  972. package/dist/node_modules/recharts/es6/util/DataUtils.js +7 -8
  973. package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -1
  974. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +20 -21
  975. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -1
  976. package/dist/node_modules/recharts/es6/util/Events.js +0 -1
  977. package/dist/node_modules/recharts/es6/util/Events.js.map +1 -1
  978. package/dist/node_modules/recharts/es6/util/Global.js +0 -1
  979. package/dist/node_modules/recharts/es6/util/Global.js.map +1 -1
  980. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +1 -2
  981. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -1
  982. package/dist/node_modules/recharts/es6/util/LogUtils.js +9 -8
  983. package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -1
  984. package/dist/node_modules/recharts/es6/util/PolarUtils.js +4 -5
  985. package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -1
  986. package/dist/node_modules/recharts/es6/util/ReactUtils.js +11 -12
  987. package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -1
  988. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +5 -6
  989. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -1
  990. package/dist/node_modules/recharts/es6/util/ShallowEqual.js +1 -2
  991. package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -1
  992. package/dist/node_modules/recharts/es6/util/TickUtils.js +4 -4
  993. package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -1
  994. package/dist/node_modules/recharts/es6/util/calculateViewBox.js +0 -1
  995. package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -1
  996. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +7 -6
  997. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -1
  998. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +1 -2
  999. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -1
  1000. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +1 -2
  1001. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -1
  1002. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +1 -2
  1003. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -1
  1004. package/dist/node_modules/recharts/es6/util/getLegendProps.js +9 -10
  1005. package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -1
  1006. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +1 -2
  1007. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -1
  1008. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +4 -5
  1009. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -1
  1010. package/dist/node_modules/recharts/es6/util/tooltip/translate.js +3 -4
  1011. package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -1
  1012. package/dist/node_modules/recharts/es6/util/types.js +2 -3
  1013. package/dist/node_modules/recharts/es6/util/types.js.map +1 -1
  1014. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +2 -3
  1015. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -1
  1016. package/dist/node_modules/recharts-scale/es6/index.js +1 -1
  1017. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +1 -2
  1018. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -1
  1019. package/dist/node_modules/recharts-scale/es6/util/utils.js +3 -4
  1020. package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -1
  1021. package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js +2 -3
  1022. package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +1 -1
  1023. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +41 -42
  1024. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -1
  1025. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +14 -15
  1026. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -1
  1027. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +21 -18
  1028. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -1
  1029. package/dist/node_modules/rxjs/dist/esm5/internal/config.js +1 -2
  1030. package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -1
  1031. package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js +1 -2
  1032. package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -1
  1033. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +2 -3
  1034. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -1
  1035. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +1 -2
  1036. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -1
  1037. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +1 -2
  1038. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -1
  1039. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +1 -2
  1040. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -1
  1041. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +1 -2
  1042. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -1
  1043. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +1 -2
  1044. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -1
  1045. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +1 -2
  1046. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -1
  1047. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +1 -2
  1048. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -1
  1049. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +1 -2
  1050. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -1
  1051. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +1 -2
  1052. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -1
  1053. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +1 -2
  1054. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -1
  1055. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +229 -167
  1056. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  1057. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +2 -3
  1058. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -1
  1059. package/dist/node_modules/{rxjs/node_modules/tslib → tslib}/tslib.es6.js +1 -2
  1060. package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
  1061. package/dist/node_modules/victory-vendor/es/d3-scale.js +28 -45
  1062. package/dist/node_modules/victory-vendor/es/d3-scale.js.map +1 -1
  1063. package/dist/test/happydom.d.ts +1 -0
  1064. package/dist/translations/en.d.ts +0 -1
  1065. package/dist/translations/en.js +1 -2
  1066. package/dist/translations/en.js.map +1 -1
  1067. package/dist/utils/nativeBridge.d.ts +0 -1
  1068. package/dist/utils/nativeBridge.js +1 -2
  1069. package/package.json +76 -60
  1070. package/dist/__tests__/setup.d.ts +0 -2
  1071. package/dist/__tests__/setup.d.ts.map +0 -1
  1072. package/dist/__tests__/utils/renderWithProviders.d.ts.map +0 -1
  1073. package/dist/dev/main.d.ts.map +0 -1
  1074. package/dist/devportal/AdminDevportalRoot.d.ts.map +0 -1
  1075. package/dist/devportal/AdminDevportalRoutes.d.ts.map +0 -1
  1076. package/dist/devportal/DevportalRoot.d.ts.map +0 -1
  1077. package/dist/devportal/DevportalRoutes.d.ts.map +0 -1
  1078. package/dist/devportal/components/AppCard.d.ts.map +0 -1
  1079. package/dist/devportal/components/ConfirmDialog.d.ts.map +0 -1
  1080. package/dist/devportal/components/DataTable.d.ts.map +0 -1
  1081. package/dist/devportal/components/EmptyState.d.ts.map +0 -1
  1082. package/dist/devportal/components/FeatureFlaggedRoute.d.ts.map +0 -1
  1083. package/dist/devportal/components/FormField.d.ts.map +0 -1
  1084. package/dist/devportal/components/GrantDelegationModal.d.ts.map +0 -1
  1085. package/dist/devportal/components/ImageUploadField.d.ts.map +0 -1
  1086. package/dist/devportal/components/LoadingState.d.ts.map +0 -1
  1087. package/dist/devportal/components/ManifestViewer.d.ts.map +0 -1
  1088. package/dist/devportal/components/MarkdownEditor.d.ts.map +0 -1
  1089. package/dist/devportal/components/MultiSelectCombobox.d.ts.map +0 -1
  1090. package/dist/devportal/components/NodeSmokePanel.d.ts.map +0 -1
  1091. package/dist/devportal/components/OnboardingChecklist.d.ts.map +0 -1
  1092. package/dist/devportal/components/PackageValidationPanel.d.ts.map +0 -1
  1093. package/dist/devportal/components/PageLayout.d.ts.map +0 -1
  1094. package/dist/devportal/components/PermissionGuard.d.ts.map +0 -1
  1095. package/dist/devportal/components/RegisterPickupLocationModal.d.ts.map +0 -1
  1096. package/dist/devportal/components/ReportOrderIssueModal.d.ts.map +0 -1
  1097. package/dist/devportal/components/SecretDisplay.d.ts.map +0 -1
  1098. package/dist/devportal/components/SectionNav.d.ts.map +0 -1
  1099. package/dist/devportal/components/SelectionCheckbox.d.ts.map +0 -1
  1100. package/dist/devportal/components/StatCard.d.ts.map +0 -1
  1101. package/dist/devportal/components/StatusBadge.d.ts.map +0 -1
  1102. package/dist/devportal/components/TelemetryErrorBoundary.d.ts.map +0 -1
  1103. package/dist/devportal/components/index.d.ts.map +0 -1
  1104. package/dist/devportal/constants/appCategories.d.ts.map +0 -1
  1105. package/dist/devportal/constants/developerLinks.d.ts.map +0 -1
  1106. package/dist/devportal/constants/permissions.d.ts.map +0 -1
  1107. package/dist/devportal/events/index.d.ts.map +0 -1
  1108. package/dist/devportal/hooks/DevPortalProvider.d.ts.map +0 -1
  1109. package/dist/devportal/hooks/index.d.ts.map +0 -1
  1110. package/dist/devportal/hooks/useCarrierPickupLocations.d.ts.map +0 -1
  1111. package/dist/devportal/hooks/useGraphQL.d.ts.map +0 -1
  1112. package/dist/devportal/hooks/useIsSellerSection.d.ts.map +0 -1
  1113. package/dist/devportal/hooks/useOrganizationPickupAddresses.d.ts.map +0 -1
  1114. package/dist/devportal/hooks/usePackageUpload.d.ts.map +0 -1
  1115. package/dist/devportal/hooks/usePermission.d.ts.map +0 -1
  1116. package/dist/devportal/hooks/useProducts.d.ts.map +0 -1
  1117. package/dist/devportal/hooks/useSellerOrganization.d.ts.map +0 -1
  1118. package/dist/devportal/index.d.ts.map +0 -1
  1119. package/dist/devportal/pages/AdminOrganizationVerificationPage.d.ts.map +0 -1
  1120. package/dist/devportal/pages/AdminReviewPage.d.ts.map +0 -1
  1121. package/dist/devportal/pages/AnalyticsDashboardPage.d.ts.map +0 -1
  1122. package/dist/devportal/pages/ApiKeysPage.d.ts.map +0 -1
  1123. package/dist/devportal/pages/AppLogsPage.d.ts.map +0 -1
  1124. package/dist/devportal/pages/ApplicationDetailPage.d.ts.map +0 -1
  1125. package/dist/devportal/pages/ApplicationVersionsPage.d.ts.map +0 -1
  1126. package/dist/devportal/pages/ApplicationsPage.d.ts.map +0 -1
  1127. package/dist/devportal/pages/CreateApiKeyPage.d.ts.map +0 -1
  1128. package/dist/devportal/pages/CreateApplicationPage.d.ts.map +0 -1
  1129. package/dist/devportal/pages/CreateOAuthClientPage.d.ts.map +0 -1
  1130. package/dist/devportal/pages/CreateOrganizationPage.d.ts.map +0 -1
  1131. package/dist/devportal/pages/CreatePhysicalItemPage.d.ts.map +0 -1
  1132. package/dist/devportal/pages/CreateWebhookPage.d.ts.map +0 -1
  1133. package/dist/devportal/pages/DashboardPage.d.ts.map +0 -1
  1134. package/dist/devportal/pages/DelegationsPage.d.ts.map +0 -1
  1135. package/dist/devportal/pages/DocumentationPage.d.ts.map +0 -1
  1136. package/dist/devportal/pages/EditApplicationPage.d.ts.map +0 -1
  1137. package/dist/devportal/pages/EditPhysicalItemPage.d.ts.map +0 -1
  1138. package/dist/devportal/pages/InvitationDecisionPage.d.ts.map +0 -1
  1139. package/dist/devportal/pages/ListingPreviewPage.d.ts.map +0 -1
  1140. package/dist/devportal/pages/NodeLifecyclePage.d.ts.map +0 -1
  1141. package/dist/devportal/pages/OAuthCallbackPage.d.ts.map +0 -1
  1142. package/dist/devportal/pages/OAuthClientDetailPage.d.ts.map +0 -1
  1143. package/dist/devportal/pages/OAuthClientsPage.d.ts.map +0 -1
  1144. package/dist/devportal/pages/OrganizationDetailPage.d.ts.map +0 -1
  1145. package/dist/devportal/pages/OrganizationMembersPage.d.ts.map +0 -1
  1146. package/dist/devportal/pages/OrganizationsPage.d.ts.map +0 -1
  1147. package/dist/devportal/pages/PublishPage.d.ts.map +0 -1
  1148. package/dist/devportal/pages/PublisherPayoutsPage.d.ts.map +0 -1
  1149. package/dist/devportal/pages/PublisherProfilePage.d.ts.map +0 -1
  1150. package/dist/devportal/pages/ResourcesPage.d.ts.map +0 -1
  1151. package/dist/devportal/pages/RevenueDashboardPage.d.ts.map +0 -1
  1152. package/dist/devportal/pages/RevenueRedirectPage.d.ts.map +0 -1
  1153. package/dist/devportal/pages/SellerDashboardPage.d.ts.map +0 -1
  1154. package/dist/devportal/pages/SellerItemsPage.d.ts.map +0 -1
  1155. package/dist/devportal/pages/SellerOrdersPage.d.ts.map +0 -1
  1156. package/dist/devportal/pages/SettingsPage.d.ts.map +0 -1
  1157. package/dist/devportal/pages/SetupPage.d.ts.map +0 -1
  1158. package/dist/devportal/pages/StoreSubmissionPage.d.ts.map +0 -1
  1159. package/dist/devportal/pages/WebhookDetailPage.d.ts.map +0 -1
  1160. package/dist/devportal/pages/WebhooksPage.d.ts.map +0 -1
  1161. package/dist/devportal/providers/DevportalProvider.d.ts.map +0 -1
  1162. package/dist/devportal/store/devportalStore.d.ts.map +0 -1
  1163. package/dist/devportal/types/index.d.ts.map +0 -1
  1164. package/dist/devportal/utils/cn.d.ts.map +0 -1
  1165. package/dist/devportal/utils/constants.d.ts.map +0 -1
  1166. package/dist/devportal/utils/currency.d.ts.map +0 -1
  1167. package/dist/devportal/utils/developerOnboarding.d.ts.map +0 -1
  1168. package/dist/devportal/utils/graphqlEndpoint.d.ts.map +0 -1
  1169. package/dist/devportal/utils/i18n.d.ts.map +0 -1
  1170. package/dist/devportal/utils/nodeLifecycle.d.ts.map +0 -1
  1171. package/dist/devportal/utils/publisherPayouts.d.ts.map +0 -1
  1172. package/dist/devportal/utils/recaptcha.d.ts.map +0 -1
  1173. package/dist/devportal/utils/submitForReview.d.ts.map +0 -1
  1174. package/dist/devportal/utils/uploadErrors.d.ts.map +0 -1
  1175. package/dist/generated/global-operations.d.ts.map +0 -1
  1176. package/dist/generated/global-types.d.ts.map +0 -1
  1177. package/dist/generated/wspace-operations.d.ts.map +0 -1
  1178. package/dist/generated/wspace-types.d.ts.map +0 -1
  1179. package/dist/index.d.ts.map +0 -1
  1180. package/dist/node_modules/d3-array/src/ascending.js +0 -8
  1181. package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
  1182. package/dist/node_modules/d3-array/src/bisect.js +0 -10
  1183. package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
  1184. package/dist/node_modules/d3-array/src/bisector.js +0 -43
  1185. package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
  1186. package/dist/node_modules/d3-array/src/descending.js +0 -8
  1187. package/dist/node_modules/d3-array/src/descending.js.map +0 -1
  1188. package/dist/node_modules/d3-array/src/max.js +0 -14
  1189. package/dist/node_modules/d3-array/src/max.js.map +0 -1
  1190. package/dist/node_modules/d3-array/src/min.js +0 -14
  1191. package/dist/node_modules/d3-array/src/min.js.map +0 -1
  1192. package/dist/node_modules/d3-array/src/number.js +0 -15
  1193. package/dist/node_modules/d3-array/src/number.js.map +0 -1
  1194. package/dist/node_modules/d3-array/src/quantile.js +0 -25
  1195. package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
  1196. package/dist/node_modules/d3-array/src/quickselect.js +0 -26
  1197. package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
  1198. package/dist/node_modules/d3-array/src/range.js +0 -10
  1199. package/dist/node_modules/d3-array/src/range.js.map +0 -1
  1200. package/dist/node_modules/d3-array/src/sort.js +0 -17
  1201. package/dist/node_modules/d3-array/src/sort.js.map +0 -1
  1202. package/dist/node_modules/d3-array/src/ticks.js +0 -34
  1203. package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
  1204. package/dist/node_modules/d3-color/src/color.js +0 -291
  1205. package/dist/node_modules/d3-color/src/color.js.map +0 -1
  1206. package/dist/node_modules/d3-color/src/define.js +0 -13
  1207. package/dist/node_modules/d3-color/src/define.js.map +0 -1
  1208. package/dist/node_modules/d3-format/src/defaultLocale.js +0 -15
  1209. package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
  1210. package/dist/node_modules/d3-format/src/exponent.js +0 -9
  1211. package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
  1212. package/dist/node_modules/d3-format/src/formatDecimal.js +0 -13
  1213. package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
  1214. package/dist/node_modules/d3-format/src/formatGroup.js +0 -11
  1215. package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
  1216. package/dist/node_modules/d3-format/src/formatNumerals.js +0 -12
  1217. package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
  1218. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -13
  1219. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
  1220. package/dist/node_modules/d3-format/src/formatRounded.js +0 -12
  1221. package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
  1222. package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -29
  1223. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
  1224. package/dist/node_modules/d3-format/src/formatTrim.js +0 -20
  1225. package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
  1226. package/dist/node_modules/d3-format/src/formatTypes.js +0 -23
  1227. package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
  1228. package/dist/node_modules/d3-format/src/identity.js +0 -8
  1229. package/dist/node_modules/d3-format/src/identity.js.map +0 -1
  1230. package/dist/node_modules/d3-format/src/locale.js +0 -86
  1231. package/dist/node_modules/d3-format/src/locale.js.map +0 -1
  1232. package/dist/node_modules/d3-format/src/precisionFixed.js +0 -9
  1233. package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
  1234. package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -9
  1235. package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
  1236. package/dist/node_modules/d3-format/src/precisionRound.js +0 -9
  1237. package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
  1238. package/dist/node_modules/d3-interpolate/src/array.js +0 -15
  1239. package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
  1240. package/dist/node_modules/d3-interpolate/src/basis.js +0 -16
  1241. package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
  1242. package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -13
  1243. package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
  1244. package/dist/node_modules/d3-interpolate/src/color.js +0 -25
  1245. package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
  1246. package/dist/node_modules/d3-interpolate/src/constant.js +0 -6
  1247. package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
  1248. package/dist/node_modules/d3-interpolate/src/date.js +0 -11
  1249. package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
  1250. package/dist/node_modules/d3-interpolate/src/number.js +0 -10
  1251. package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
  1252. package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -16
  1253. package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
  1254. package/dist/node_modules/d3-interpolate/src/object.js +0 -14
  1255. package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
  1256. package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -14
  1257. package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
  1258. package/dist/node_modules/d3-interpolate/src/rgb.js +0 -19
  1259. package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
  1260. package/dist/node_modules/d3-interpolate/src/round.js +0 -10
  1261. package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
  1262. package/dist/node_modules/d3-interpolate/src/string.js +0 -28
  1263. package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
  1264. package/dist/node_modules/d3-interpolate/src/value.js +0 -18
  1265. package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
  1266. package/dist/node_modules/d3-path/src/path.js.map +0 -1
  1267. package/dist/node_modules/d3-scale/src/band.js +0 -52
  1268. package/dist/node_modules/d3-scale/src/band.js.map +0 -1
  1269. package/dist/node_modules/d3-scale/src/constant.js +0 -10
  1270. package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
  1271. package/dist/node_modules/d3-scale/src/continuous.js +0 -73
  1272. package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
  1273. package/dist/node_modules/d3-scale/src/diverging.js +0 -82
  1274. package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
  1275. package/dist/node_modules/d3-scale/src/identity.js +0 -20
  1276. package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
  1277. package/dist/node_modules/d3-scale/src/init.js +0 -29
  1278. package/dist/node_modules/d3-scale/src/init.js.map +0 -1
  1279. package/dist/node_modules/d3-scale/src/linear.js +0 -36
  1280. package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
  1281. package/dist/node_modules/d3-scale/src/log.js +0 -77
  1282. package/dist/node_modules/d3-scale/src/log.js.map +0 -1
  1283. package/dist/node_modules/d3-scale/src/nice.js +0 -10
  1284. package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
  1285. package/dist/node_modules/d3-scale/src/number.js +0 -8
  1286. package/dist/node_modules/d3-scale/src/number.js.map +0 -1
  1287. package/dist/node_modules/d3-scale/src/ordinal.js +0 -31
  1288. package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
  1289. package/dist/node_modules/d3-scale/src/pow.js +0 -37
  1290. package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
  1291. package/dist/node_modules/d3-scale/src/quantile.js +0 -37
  1292. package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
  1293. package/dist/node_modules/d3-scale/src/quantize.js +0 -33
  1294. package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
  1295. package/dist/node_modules/d3-scale/src/radial.js +0 -39
  1296. package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
  1297. package/dist/node_modules/d3-scale/src/sequential.js +0 -67
  1298. package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
  1299. package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -30
  1300. package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
  1301. package/dist/node_modules/d3-scale/src/symlog.js +0 -30
  1302. package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
  1303. package/dist/node_modules/d3-scale/src/threshold.js +0 -25
  1304. package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
  1305. package/dist/node_modules/d3-scale/src/tickFormat.js +0 -31
  1306. package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
  1307. package/dist/node_modules/d3-scale/src/time.js +0 -47
  1308. package/dist/node_modules/d3-scale/src/time.js.map +0 -1
  1309. package/dist/node_modules/d3-scale/src/utcTime.js +0 -19
  1310. package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
  1311. package/dist/node_modules/d3-shape/src/area.js +0 -55
  1312. package/dist/node_modules/d3-shape/src/area.js.map +0 -1
  1313. package/dist/node_modules/d3-shape/src/array.js +0 -8
  1314. package/dist/node_modules/d3-shape/src/array.js.map +0 -1
  1315. package/dist/node_modules/d3-shape/src/constant.js +0 -10
  1316. package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
  1317. package/dist/node_modules/d3-shape/src/curve/basis.js +0 -49
  1318. package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
  1319. package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -50
  1320. package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
  1321. package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -46
  1322. package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
  1323. package/dist/node_modules/d3-shape/src/curve/bump.js +0 -40
  1324. package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
  1325. package/dist/node_modules/d3-shape/src/curve/linear.js +0 -36
  1326. package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
  1327. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -25
  1328. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
  1329. package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -94
  1330. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
  1331. package/dist/node_modules/d3-shape/src/curve/natural.js +0 -39
  1332. package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
  1333. package/dist/node_modules/d3-shape/src/curve/step.js +0 -47
  1334. package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
  1335. package/dist/node_modules/d3-shape/src/line.js +0 -30
  1336. package/dist/node_modules/d3-shape/src/line.js.map +0 -1
  1337. package/dist/node_modules/d3-shape/src/math.js +0 -8
  1338. package/dist/node_modules/d3-shape/src/math.js.map +0 -1
  1339. package/dist/node_modules/d3-shape/src/noop.js +0 -6
  1340. package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
  1341. package/dist/node_modules/d3-shape/src/offset/expand.js +0 -15
  1342. package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
  1343. package/dist/node_modules/d3-shape/src/offset/none.js +0 -8
  1344. package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
  1345. package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -15
  1346. package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
  1347. package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -21
  1348. package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
  1349. package/dist/node_modules/d3-shape/src/order/none.js +0 -9
  1350. package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
  1351. package/dist/node_modules/d3-shape/src/path.js +0 -19
  1352. package/dist/node_modules/d3-shape/src/path.js.map +0 -1
  1353. package/dist/node_modules/d3-shape/src/point.js +0 -11
  1354. package/dist/node_modules/d3-shape/src/point.js.map +0 -1
  1355. package/dist/node_modules/d3-shape/src/stack.js +0 -34
  1356. package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
  1357. package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -10
  1358. package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
  1359. package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -10
  1360. package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
  1361. package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -10
  1362. package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
  1363. package/dist/node_modules/d3-shape/src/symbol/square.js +0 -10
  1364. package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
  1365. package/dist/node_modules/d3-shape/src/symbol/star.js +0 -15
  1366. package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
  1367. package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -10
  1368. package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
  1369. package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -10
  1370. package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
  1371. package/dist/node_modules/d3-shape/src/symbol.js +0 -23
  1372. package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
  1373. package/dist/node_modules/d3-time/src/day.js +0 -21
  1374. package/dist/node_modules/d3-time/src/day.js.map +0 -1
  1375. package/dist/node_modules/d3-time/src/duration.js +0 -6
  1376. package/dist/node_modules/d3-time/src/duration.js.map +0 -1
  1377. package/dist/node_modules/d3-time/src/hour.js +0 -19
  1378. package/dist/node_modules/d3-time/src/hour.js.map +0 -1
  1379. package/dist/node_modules/d3-time/src/interval.js +0 -28
  1380. package/dist/node_modules/d3-time/src/interval.js.map +0 -1
  1381. package/dist/node_modules/d3-time/src/millisecond.js +0 -14
  1382. package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
  1383. package/dist/node_modules/d3-time/src/minute.js +0 -19
  1384. package/dist/node_modules/d3-time/src/minute.js.map +0 -1
  1385. package/dist/node_modules/d3-time/src/month.js +0 -18
  1386. package/dist/node_modules/d3-time/src/month.js.map +0 -1
  1387. package/dist/node_modules/d3-time/src/second.js +0 -13
  1388. package/dist/node_modules/d3-time/src/second.js.map +0 -1
  1389. package/dist/node_modules/d3-time/src/ticks.js +0 -125
  1390. package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
  1391. package/dist/node_modules/d3-time/src/week.js +0 -25
  1392. package/dist/node_modules/d3-time/src/week.js.map +0 -1
  1393. package/dist/node_modules/d3-time/src/year.js +0 -26
  1394. package/dist/node_modules/d3-time/src/year.js.map +0 -1
  1395. package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -62
  1396. package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
  1397. package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
  1398. package/dist/node_modules/internmap/src/index.js +0 -40
  1399. package/dist/node_modules/internmap/src/index.js.map +0 -1
  1400. package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +0 -1
  1401. package/dist/translations/en.d.ts.map +0 -1
  1402. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AdminReviewPage.js","names":[],"sources":["../../../src/devportal/pages/AdminReviewPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useState } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n CheckCircle,\n XCircle,\n Clock,\n Search,\n Loader2,\n AlertCircle,\n Eye,\n ChevronDown,\n ChevronUp,\n Download,\n GitBranch,\n Package,\n} from \"lucide-react\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport {\n PermissionGuard,\n ManifestViewer,\n PackageValidationPanel,\n} from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\nimport {\n useGetApplicationsQuery,\n useApproveApplicationMutation,\n useRejectApplicationMutation,\n useGetApplicationForReviewQuery,\n useGetApplicationsWithPendingVersionsQuery,\n useApproveApplicationVersionMutation,\n useRejectApplicationVersionMutation,\n getErrorMessage,\n useDevportalPermission,\n type ApplicationFieldsFragment,\n type ApplicationVersionFieldsFragment,\n type GetApplicationsWithPendingVersionsQuery,\n} from \"../hooks\";\n\ntype AppWithPendingVersions = NonNullable<\n GetApplicationsWithPendingVersionsQuery[\"applicationsWithPendingVersions\"][\"edges\"][number][\"node\"]\n>;\n\n// ============================================================================\n// ZIP verification banner (Node / Workflow apps only)\n// ============================================================================\n\nconst ZIP_TYPE_LABELS: Partial<Record<string, string>> = {\n NODE: \"Node package\",\n WORKFLOW: \"Workflow bundle\",\n};\n\ninterface ZipDownloadProps {\n appType: string;\n packageUrl: string | null | undefined;\n packageSize: string | null | undefined;\n tr: (key: string, fallback: string) => string;\n}\n\nconst ZipDownload: FC<ZipDownloadProps> = ({\n appType,\n packageUrl,\n packageSize,\n tr,\n}) => {\n const label = ZIP_TYPE_LABELS[appType];\n if (!label) return null;\n\n return (\n <div className=\"rounded-lg border border-status-warning-bg bg-status-warning-bg-subtle p-3 space-y-2\">\n <div className=\"flex items-center gap-2 text-xs font-medium text-status-warning-text\">\n <Package size={13} className=\"flex-shrink-0\" />\n {tr(\n \"devportal.zipVerificationRequired\",\n \"ZIP verification required — download and test before approving\",\n )}\n </div>\n {packageUrl ? (\n <a\n href={packageUrl}\n download\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-3 py-1.5 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <Download size={14} />\n {tr(\"devportal.download\", \"Download\")} {label}\n {packageSize && (\n <span className=\"opacity-70 text-xs\">({packageSize})</span>\n )}\n </a>\n ) : (\n <p className=\"text-xs text-status-error-text flex items-center gap-1.5\">\n <AlertCircle size={12} />\n {tr(\n \"devportal.noZipUploaded\",\n \"No ZIP uploaded — developer must upload before this can be approved\",\n )}\n </p>\n )}\n </div>\n );\n};\n\n// ============================================================================\n// Review Row Component\n// ============================================================================\n\ninterface ReviewRowProps {\n app: ApplicationFieldsFragment;\n onApprove: (id: string, notes: string) => void;\n onReject: (id: string, notes: string) => void;\n processing: boolean;\n hasPendingVersions: boolean;\n}\n\nconst ReviewRow: FC<ReviewRowProps> = ({\n app,\n onApprove,\n onReject,\n processing,\n hasPendingVersions,\n}) => {\n const { navigate, basePath } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const [expanded, setExpanded] = useState(false);\n const [reviewNotes, setReviewNotes] = useState(\"\");\n const approvePerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_APPROVE);\n const rejectPerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_REJECT);\n\n const { data: versionData } = useGetApplicationForReviewQuery({\n variables: { id: app.id },\n skip: !expanded,\n fetchPolicy: \"cache-first\",\n });\n const latestVersion = versionData?.application?.versions?.edges?.[0]?.node;\n\n return (\n <div className=\"rounded-card border border-border-seam bg-bg-surface overflow-hidden\">\n {/* Header row */}\n <div className=\"flex items-center gap-4 p-4\">\n {app.iconUrl ? (\n <img\n src={app.iconUrl}\n alt={app.name}\n className=\"h-12 w-12 rounded-lg object-cover flex-shrink-0\"\n />\n ) : (\n <div className=\"h-12 w-12 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0\">\n <span className=\"text-lg font-bold text-text-secondary\">\n {app.name.charAt(0).toUpperCase()}\n </span>\n </div>\n )}\n\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <h3 className=\"font-semibold truncate\">{app.name}</h3>\n <span className=\"inline-flex items-center rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text\">\n {app.status}\n </span>\n <span className=\"inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary\">\n {app.appType.replace(/_/g, \" \")}\n </span>\n </div>\n <p className=\"text-sm text-text-secondary truncate\">\n {app.shortDescription ??\n app.description ??\n tr(\"devportal.noDescription\", \"No description\")}\n </p>\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {tr(\"devportal.submitted\", \"Submitted\")}:{\" \"}\n {app.submittedAt\n ? new Date(app.submittedAt).toLocaleDateString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n })\n : tr(\"devportal.unknown\", \"Unknown\")}\n </p>\n </div>\n\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <button\n onClick={() => navigate?.(`${basePath}/apps/${app.id}`)}\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n title={tr(\"devportal.viewAppDetails\", \"View app details\")}\n >\n <Eye size={14} />\n {tr(\"devportal.view\", \"View\")}\n </button>\n <button\n onClick={() => setExpanded((v) => !v)}\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n {expanded ? <ChevronUp size={14} /> : <ChevronDown size={14} />}\n {tr(\"devportal.review\", \"Review\")}\n </button>\n </div>\n </div>\n\n {/* Expanded review panel */}\n {expanded && (\n <div className=\"border-t bg-bg-sunken/30 p-4 space-y-4\">\n {/* Version approval hint — shown when this app also has pending versions */}\n {hasPendingVersions && (\n <div className=\"flex items-start gap-2 rounded-md border border-status-warning-bg bg-status-warning-bg-subtle px-3 py-2.5 text-xs text-status-warning-text\">\n <GitBranch\n size={14}\n className=\"mt-0.5 shrink-0\"\n aria-hidden=\"true\"\n />\n <span>\n This app has a pending version. Approve the version in the{\" \"}\n <strong>Version Updates</strong> section below before approving\n the app — the version must be live before the app can go public.\n </span>\n </div>\n )}\n\n {/* Submission notes from developer */}\n {app.reviewNotes && (\n <div className=\"rounded-md border bg-bg-surface p-3\">\n <p className=\"text-xs font-medium text-text-secondary mb-1\">\n {tr(\"devportal.developerNotes\", \"Developer Notes\")}\n </p>\n <p className=\"text-sm\">{app.reviewNotes}</p>\n </div>\n )}\n\n {/* App details summary */}\n <div className=\"grid grid-cols-2 gap-3 text-sm\">\n <div>\n <span className=\"text-text-secondary\">\n {tr(\"devportal.category\", \"Category\")}:{\" \"}\n </span>\n <span>{app.category ?? \"—\"}</span>\n </div>\n <div>\n <span className=\"text-text-secondary\">\n {tr(\"devportal.pricing\", \"Pricing\")}:{\" \"}\n </span>\n <span>{app.pricingType ?? \"FREE\"}</span>\n </div>\n <div>\n <span className=\"text-text-secondary\">\n {tr(\"devportal.website\", \"Website\")}:{\" \"}\n </span>\n {app.websiteUrl ? (\n <a\n href={app.websiteUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary underline hover:no-underline\"\n >\n {tr(\"devportal.link\", \"Link\")}\n </a>\n ) : (\n <span>—</span>\n )}\n </div>\n <div>\n <span className=\"text-text-secondary\">\n {tr(\"devportal.privacyPolicy\", \"Privacy Policy\")}:{\" \"}\n </span>\n {app.privacyPolicyUrl ? (\n <a\n href={app.privacyPolicyUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary underline hover:no-underline\"\n >\n {tr(\"devportal.link\", \"Link\")}\n </a>\n ) : (\n <span className=\"text-status-error-text\">\n {tr(\"devportal.missing\", \"Missing\")}\n </span>\n )}\n </div>\n </div>\n\n {/* Latest version package for review */}\n {latestVersion && (\n <div className=\"rounded-md border bg-bg-surface p-3 space-y-3\">\n <p className=\"text-xs font-medium text-text-secondary\">\n {tr(\"devportal.latestVersion\", \"Latest Version\")}:{\" \"}\n <span className=\"font-mono text-text-primary\">\n {latestVersion.version}\n </span>\n </p>\n\n {/* ZIP download — prominent banner for Node/Workflow, plain link otherwise */}\n {ZIP_TYPE_LABELS[app.appType] ? (\n <ZipDownload\n appType={app.appType}\n packageUrl={latestVersion.packageUrl}\n packageSize={latestVersion.packageSize}\n tr={tr}\n />\n ) : (\n latestVersion.packageUrl && (\n <div className=\"flex flex-wrap gap-2\">\n <a\n href={latestVersion.packageUrl}\n download\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n <Download size={14} />\n {tr(\"devportal.downloadPackage\", \"Download Package\")}\n {latestVersion.packageSize && (\n <span className=\"text-text-secondary text-xs ml-1\">\n ({latestVersion.packageSize})\n </span>\n )}\n </a>\n </div>\n )\n )}\n\n {latestVersion.manifest && (\n <ManifestViewer\n manifest={latestVersion.manifest as Record<string, unknown>}\n tr={tr}\n />\n )}\n </div>\n )}\n\n {/* Reviewer notes input */}\n <div>\n <label className=\"text-sm font-medium\">\n {tr(\"devportal.reviewNotes\", \"Review Notes\")}\n </label>\n <textarea\n value={reviewNotes}\n onChange={(e) => setReviewNotes(e.target.value)}\n placeholder={tr(\n \"devportal.reviewNotesPlaceholder\",\n \"Add feedback for the developer (required for rejection)...\",\n )}\n rows={3}\n className=\"mt-1 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none\"\n />\n </div>\n\n {/* Action buttons */}\n <div className=\"flex gap-3\">\n <button\n onClick={() => onApprove(app.id, reviewNotes)}\n disabled={processing || !approvePerm.allowed}\n aria-disabled={processing || !approvePerm.allowed}\n title={\n !approvePerm.allowed\n ? tr(\n \"devportal.common.noPermission\",\n \"You do not have permission to perform this action\",\n )\n : undefined\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-status-success-bg px-4 py-2 text-sm font-medium text-white hover:bg-status-success-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n {processing ? (\n <Loader2\n size={14}\n className=\"animate-spin\"\n aria-hidden=\"true\"\n />\n ) : (\n <CheckCircle size={14} aria-hidden=\"true\" />\n )}\n {tr(\"devportal.approve\", \"Approve\")}\n </button>\n <button\n onClick={() => onReject(app.id, reviewNotes)}\n disabled={\n processing || !reviewNotes.trim() || !rejectPerm.allowed\n }\n aria-disabled={\n processing || !reviewNotes.trim() || !rejectPerm.allowed\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n title={\n !rejectPerm.allowed\n ? tr(\n \"devportal.common.noPermission\",\n \"You do not have permission to perform this action\",\n )\n : !reviewNotes.trim()\n ? tr(\n \"devportal.notesRequiredForRejection\",\n \"Notes required for rejection\",\n )\n : undefined\n }\n >\n {processing ? (\n <Loader2\n size={14}\n className=\"animate-spin\"\n aria-hidden=\"true\"\n />\n ) : (\n <XCircle size={14} aria-hidden=\"true\" />\n )}\n {tr(\"devportal.reject\", \"Reject\")}\n </button>\n </div>\n </div>\n )}\n </div>\n );\n};\n\n// ============================================================================\n// Version Review Row Component\n// ============================================================================\n\ninterface VersionReviewRowProps {\n app: AppWithPendingVersions;\n onApproveVersion: (versionId: string, appId: string, notes: string) => void;\n onRejectVersion: (versionId: string, appId: string, reason: string) => void;\n processingVersionIds: Set<string>;\n}\n\nconst VersionReviewRow: FC<VersionReviewRowProps> = ({\n app,\n onApproveVersion,\n onRejectVersion,\n processingVersionIds,\n}) => {\n const { navigate, basePath } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const [expanded, setExpanded] = useState(false);\n\n const pendingVersions = app.versions.edges\n .map((e) => e.node)\n .filter((v) => v.status === \"pending_review\");\n\n if (pendingVersions.length === 0) return null;\n\n return (\n <div className=\"rounded-card border border-border-seam bg-bg-surface overflow-hidden\">\n <div className=\"flex items-center gap-4 p-4\">\n {app.iconUrl ? (\n <img\n src={app.iconUrl}\n alt={app.name}\n className=\"h-12 w-12 rounded-lg object-cover flex-shrink-0\"\n />\n ) : (\n <div className=\"h-12 w-12 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0\">\n <span className=\"text-lg font-bold text-text-secondary\">\n {app.name.charAt(0).toUpperCase()}\n </span>\n </div>\n )}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <h3 className=\"font-semibold truncate\">{app.name}</h3>\n <span className=\"inline-flex items-center rounded-full bg-status-info-bg-subtle px-2 py-0.5 text-xs font-medium text-status-info-text\">\n {pendingVersions.length} version\n {pendingVersions.length !== 1 ? \"s\" : \"\"} pending\n </span>\n </div>\n <p className=\"text-sm text-text-secondary truncate\">\n {app.shortDescription ??\n app.description ??\n tr(\"devportal.noDescription\", \"No description\")}\n </p>\n </div>\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <button\n onClick={() => navigate?.(`${basePath}/apps/${app.id}`)}\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n <Eye size={14} />\n {tr(\"devportal.view\", \"View\")}\n </button>\n <button\n onClick={() => setExpanded((v) => !v)}\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n {expanded ? <ChevronUp size={14} /> : <ChevronDown size={14} />}\n {tr(\"devportal.review\", \"Review\")}\n </button>\n </div>\n </div>\n\n {expanded && (\n <div className=\"border-t bg-bg-sunken/30 p-4 space-y-4\">\n {pendingVersions.map((version) => (\n <VersionCard\n key={version.id}\n version={version}\n appId={app.id}\n appType={app.appType}\n onApprove={onApproveVersion}\n onReject={onRejectVersion}\n processing={processingVersionIds.has(version.id)}\n tr={tr}\n />\n ))}\n </div>\n )}\n </div>\n );\n};\n\ntype PendingVersion =\n AppWithPendingVersions[\"versions\"][\"edges\"][number][\"node\"];\n\ninterface VersionCardProps {\n version: PendingVersion;\n appId: string;\n appType: string;\n onApprove: (versionId: string, appId: string, notes: string) => void;\n onReject: (versionId: string, appId: string, reason: string) => void;\n processing: boolean;\n tr: (key: string, fallback: string) => string;\n}\n\nconst VersionCard: FC<VersionCardProps> = ({\n version,\n appId,\n appType,\n onApprove,\n onReject,\n processing,\n tr,\n}) => {\n const [notes, setNotes] = useState(\"\");\n const approvePerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_APPROVE);\n const rejectPerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_REJECT);\n\n return (\n <div className=\"rounded-md border bg-bg-surface p-4 space-y-3\">\n <div className=\"flex items-center gap-3\">\n <GitBranch size={14} className=\"text-text-secondary flex-shrink-0\" />\n <span className=\"font-mono font-semibold text-sm\">\n {version.version}\n </span>\n {version.isLatest && (\n <span className=\"inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary\">\n Latest\n </span>\n )}\n <span className=\"text-xs text-text-secondary ml-auto\">\n {tr(\"devportal.submitted\", \"Submitted\")}:{\" \"}\n {new Date(version.createdAt).toLocaleDateString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n })}\n </span>\n </div>\n\n {version.releaseNotes && (\n <p className=\"text-sm text-text-secondary\">{version.releaseNotes}</p>\n )}\n\n {ZIP_TYPE_LABELS[appType] ? (\n <ZipDownload\n appType={appType}\n packageUrl={version.packageUrl}\n packageSize={version.packageSize}\n tr={tr}\n />\n ) : (\n version.packageUrl && (\n <div className=\"flex flex-wrap gap-2\">\n <a\n href={version.packageUrl}\n download\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n <Download size={14} />\n {tr(\"devportal.downloadPackage\", \"Download Package\")}\n {version.packageSize && (\n <span className=\"text-text-secondary text-xs ml-1\">\n ({version.packageSize})\n </span>\n )}\n </a>\n </div>\n )\n )}\n\n {appType === \"NODE\" && (\n <div className=\"space-y-1\">\n <p className=\"text-sm font-medium\">\n {tr(\"devportal.packageValidation.title\", \"Package validation\")}\n </p>\n <PackageValidationPanel metadata={version.metadata} defaultExpanded />\n </div>\n )}\n\n {version.manifest && (\n <ManifestViewer\n manifest={version.manifest as Record<string, unknown>}\n tr={tr}\n />\n )}\n\n <div>\n <label className=\"text-sm font-medium\">\n {tr(\"devportal.reviewNotes\", \"Review Notes\")}\n </label>\n <textarea\n value={notes}\n onChange={(e) => setNotes(e.target.value)}\n placeholder={tr(\n \"devportal.reviewNotesPlaceholder\",\n \"Add feedback for the developer (required for rejection)...\",\n )}\n rows={2}\n className=\"mt-1 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none\"\n />\n </div>\n\n <div className=\"flex gap-3\">\n <button\n onClick={() => onApprove(version.id, appId, notes)}\n disabled={processing || !approvePerm.allowed}\n aria-disabled={processing || !approvePerm.allowed}\n className=\"inline-flex items-center gap-2 rounded-md bg-status-success-bg px-4 py-2 text-sm font-medium text-white hover:bg-status-success-bg/90 disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {processing ? (\n <Loader2 size={14} className=\"animate-spin\" />\n ) : (\n <CheckCircle size={14} />\n )}\n {tr(\"devportal.approveVersion\", \"Approve Version\")}\n </button>\n <button\n onClick={() => onReject(version.id, appId, notes)}\n disabled={processing || !notes.trim() || !rejectPerm.allowed}\n aria-disabled={processing || !notes.trim() || !rejectPerm.allowed}\n className=\"inline-flex items-center gap-2 rounded-md bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/90 disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {processing ? (\n <Loader2 size={14} className=\"animate-spin\" />\n ) : (\n <XCircle size={14} />\n )}\n {tr(\"devportal.rejectVersion\", \"Reject Version\")}\n </button>\n </div>\n </div>\n );\n};\n\n// ============================================================================\n// Admin Review Page\n// ============================================================================\n\nexport const AdminReviewPage: FC = () => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [processingIds, setProcessingIds] = useState<Set<string>>(new Set());\n const [processingVersionIds, setProcessingVersionIds] = useState<Set<string>>(\n new Set(),\n );\n const [actionError, setActionError] = useState<string | null>(null);\n const [actionSuccess, setActionSuccess] = useState<string | null>(null);\n\n const addProcessing = (id: string) =>\n setProcessingIds((prev) => new Set(prev).add(id));\n const removeProcessing = (id: string) =>\n setProcessingIds((prev) => {\n const next = new Set(prev);\n next.delete(id);\n return next;\n });\n const addProcessingVersion = (id: string) =>\n setProcessingVersionIds((prev) => new Set(prev).add(id));\n const removeProcessingVersion = (id: string) =>\n setProcessingVersionIds((prev) => {\n const next = new Set(prev);\n next.delete(id);\n return next;\n });\n\n const { data, loading, error, refetch } = useGetApplicationsQuery({\n variables: { status: \"SUBMITTED\" as const, limit: 100 },\n fetchPolicy: \"cache-and-network\",\n });\n\n const { data: pendingVersionData, refetch: refetchPendingVersions } =\n useGetApplicationsWithPendingVersionsQuery({\n variables: { limit: 100 },\n fetchPolicy: \"cache-and-network\",\n });\n\n const [approveApplication] = useApproveApplicationMutation();\n const [rejectApplication] = useRejectApplicationMutation();\n const [approveApplicationVersion] = useApproveApplicationVersionMutation();\n const [rejectApplicationVersion] = useRejectApplicationVersionMutation();\n\n const apps =\n data?.applications?.edges?.map(\n (edge: { node: ApplicationFieldsFragment }) => edge.node,\n ) ?? [];\n\n const appsWithPendingVersions =\n pendingVersionData?.applicationsWithPendingVersions?.edges?.map(\n (edge: { node: AppWithPendingVersions }) => edge.node,\n ) ?? [];\n\n const pendingVersionAppIds = new Set(\n appsWithPendingVersions.map((a: AppWithPendingVersions) => a.id),\n );\n\n const filteredApps = searchQuery\n ? apps.filter(\n (app: ApplicationFieldsFragment) =>\n app.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n (app.shortDescription ?? \"\")\n .toLowerCase()\n .includes(searchQuery.toLowerCase()),\n )\n : apps;\n\n const handleApprove = async (id: string, notes: string) => {\n addProcessing(id);\n setActionError(null);\n setActionSuccess(null);\n try {\n const result = await approveApplication({\n variables: { id, notes: notes || undefined },\n });\n if (result.error) {\n throw result.error;\n }\n setActionSuccess(\n tr(\n \"devportal.applicationApprovedSuccess\",\n \"Application approved successfully.\",\n ),\n );\n await refetch();\n } catch (err) {\n setActionError(\n err instanceof Error\n ? err.message\n : tr(\n \"devportal.failedToApproveApplication\",\n \"Failed to approve application\",\n ),\n );\n } finally {\n removeProcessing(id);\n }\n };\n\n const handleReject = async (id: string, notes: string) => {\n if (!notes.trim()) return;\n addProcessing(id);\n setActionError(null);\n setActionSuccess(null);\n try {\n const result = await rejectApplication({ variables: { id, notes } });\n if (result.error) {\n throw result.error;\n }\n setActionSuccess(\n tr(\"devportal.applicationRejected\", \"Application rejected.\"),\n );\n await refetch();\n } catch (err) {\n setActionError(\n err instanceof Error\n ? err.message\n : tr(\n \"devportal.failedToRejectApplication\",\n \"Failed to reject application\",\n ),\n );\n } finally {\n removeProcessing(id);\n }\n };\n\n const handleApproveVersion = async (\n versionId: string,\n _appId: string,\n notes: string,\n ) => {\n addProcessingVersion(versionId);\n setActionError(null);\n setActionSuccess(null);\n try {\n const result = await approveApplicationVersion({\n variables: { id: versionId, notes: notes || undefined },\n });\n if (result.error) throw result.error;\n setActionSuccess(\n tr(\n \"devportal.versionApprovedSuccess\",\n \"Version approved and published.\",\n ),\n );\n await refetchPendingVersions();\n } catch (err) {\n setActionError(\n err instanceof Error\n ? err.message\n : tr(\"devportal.failedToApproveVersion\", \"Failed to approve version\"),\n );\n } finally {\n removeProcessingVersion(versionId);\n }\n };\n\n const handleRejectVersion = async (\n versionId: string,\n _appId: string,\n reason: string,\n ) => {\n if (!reason.trim()) return;\n addProcessingVersion(versionId);\n setActionError(null);\n setActionSuccess(null);\n try {\n const result = await rejectApplicationVersion({\n variables: { id: versionId, reason },\n });\n if (result.error) throw result.error;\n setActionSuccess(\n tr(\n \"devportal.versionRejectedSuccess\",\n \"Version rejected and returned to draft.\",\n ),\n );\n await refetchPendingVersions();\n } catch (err) {\n setActionError(\n err instanceof Error\n ? err.message\n : tr(\"devportal.failedToRejectVersion\", \"Failed to reject version\"),\n );\n } finally {\n removeProcessingVersion(versionId);\n }\n };\n\n if (loading && !data) {\n return (\n <PageLayout\n title={tr(\"devportal.appReviewQueue\", \"App Review Queue\")}\n description={tr(\n \"devportal.appReviewQueueDescription\",\n \"Review submitted applications for approval\",\n )}\n >\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n </div>\n </PageLayout>\n );\n }\n\n if (error) {\n return (\n <PageLayout\n title={tr(\"devportal.appReviewQueue\", \"App Review Queue\")}\n description={tr(\n \"devportal.appReviewQueueDescription\",\n \"Review submitted applications for approval\",\n )}\n >\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center\">\n <AlertCircle className=\"mx-auto h-8 w-8 text-status-error-text\" />\n <p className=\"mt-2 text-sm text-text-secondary\">\n {getErrorMessage(error)}\n </p>\n <button\n onClick={() => refetch()}\n className=\"mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n {tr(\"devportal.retry\", \"Retry\")}\n </button>\n </div>\n </PageLayout>\n );\n }\n\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.REVIEW_MANAGE}>\n <PageLayout\n title={tr(\"devportal.appReviewQueue\", \"App Review Queue\")}\n description={tr(\n \"devportal.appReviewQueueFullDescription\",\n \"Review submitted applications for approval or rejection\",\n )}\n purpose={tr(\n \"devportal.appReviewQueuePurpose\",\n \"The moderation queue for apps developers have submitted to the marketplace. Open each submission to check its listing, permissions, and behaviour against the guidelines, then approve it to go live or reject it with feedback.\",\n )}\n actions={\n <button\n onClick={() => {\n void refetch();\n void refetchPendingVersions();\n }}\n className=\"rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n {tr(\"devportal.refresh\", \"Refresh\")}\n </button>\n }\n >\n {/* Stats bar */}\n <div className=\"flex items-center gap-6 rounded-card border border-border-seam bg-bg-surface p-4\">\n <div className=\"flex items-center gap-2\">\n <Clock size={18} className=\"text-status-warning-text\" />\n <span className=\"text-sm font-medium\">\n {apps.length} {tr(\"devportal.pendingReview\", \"pending review\")}\n </span>\n </div>\n {appsWithPendingVersions.length > 0 && (\n <div className=\"flex items-center gap-2\">\n <GitBranch size={18} className=\"text-status-info-text\" />\n <span className=\"text-sm font-medium\">\n {appsWithPendingVersions.length}{\" \"}\n {tr(\"devportal.withPendingVersions\", \"with pending versions\")}\n </span>\n </div>\n )}\n {(processingIds.size > 0 || processingVersionIds.size > 0) && (\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Loader2 size={14} className=\"animate-spin\" />\n {tr(\"devportal.processing\", \"Processing...\")}\n </div>\n )}\n </div>\n\n {/* Feedback messages */}\n {actionSuccess && (\n <div className=\"flex items-center gap-2 rounded-lg border border-border-subtle bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text\">\n <CheckCircle size={16} />\n {actionSuccess}\n </div>\n )}\n {actionError && (\n <div className=\"flex items-center gap-2 rounded-lg border border-status-error-border/50 bg-status-error-bg/10 px-4 py-3 text-sm text-status-error-text\">\n <AlertCircle size={16} />\n {actionError}\n </div>\n )}\n\n {/* Search */}\n {apps.length > 0 && (\n <div className=\"relative max-w-sm\">\n <Search\n size={14}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <input\n type=\"text\"\n placeholder={tr(\n \"devportal.searchSubmittedApps\",\n \"Search submitted apps...\",\n )}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </div>\n )}\n\n {/* New app submissions */}\n <PageSection\n title={tr(\"devportal.newAppSubmissions\", \"New App Submissions\")}\n >\n {filteredApps.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n icon={<CheckCircle size={32} />}\n title={tr(\n \"devportal.noAppsPendingReview\",\n \"No apps pending review\",\n )}\n description={\n searchQuery\n ? tr(\n \"devportal.noAppsMatchSearch\",\n \"No apps match your search\",\n )\n : tr(\n \"devportal.allApplicationsReviewed\",\n \"All submitted applications have been reviewed\",\n )\n }\n />\n ) : (\n <div className=\"space-y-3\">\n {filteredApps.map((app: ApplicationFieldsFragment) => (\n <ReviewRow\n key={app.id}\n app={app}\n onApprove={handleApprove}\n onReject={handleReject}\n processing={processingIds.has(app.id)}\n hasPendingVersions={pendingVersionAppIds.has(app.id)}\n />\n ))}\n </div>\n )}\n </PageSection>\n\n {/* Version updates for published apps */}\n <PageSection\n title={tr(\n \"devportal.versionUpdates\",\n \"Version Updates (Published Apps)\",\n )}\n >\n {appsWithPendingVersions.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n icon={<GitBranch size={32} />}\n title={tr(\n \"devportal.noPendingVersions\",\n \"No pending version updates\",\n )}\n description={tr(\n \"devportal.allVersionsReviewed\",\n \"All version updates from published apps have been reviewed\",\n )}\n />\n ) : (\n <div className=\"space-y-3\">\n {appsWithPendingVersions.map((app: AppWithPendingVersions) => (\n <VersionReviewRow\n key={app.id}\n app={app}\n onApproveVersion={handleApproveVersion}\n onRejectVersion={handleRejectVersion}\n processingVersionIds={processingVersionIds}\n />\n ))}\n </div>\n )}\n </PageSection>\n </PageLayout>\n </PermissionGuard>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdminReviewPage.js","names":["ZIP_TYPE_LABELS","ZipDownload","label","appType","Package","tr","packageUrl","Download","packageSize","AlertCircle","ReviewRow","useDevportal","useI18n","value","t","key","fallback","expanded","setExpanded","useState","reviewNotes","setReviewNotes","approvePerm","useDevportalPermission","DEVPORTAL_PERMISSIONS","rejectPerm","versionData","useGetApplicationForReviewQuery","app","latestVersion","navigate","basePath","Eye","v","jsx","ChevronUp","ChevronDown","hasPendingVersions","GitBranch","ManifestViewer","onApprove","processing","Loader2","CheckCircle","onReject","XCircle","VersionReviewRow","pendingVersions","VersionCard","onApproveVersion","onRejectVersion","processingVersionIds","version","notes","setNotes","PackageValidationPanel","appId","AdminReviewPage","searchQuery","setSearchQuery","processingIds","setProcessingIds","setProcessingVersionIds","actionError","setActionError","actionSuccess","setActionSuccess","addProcessing","prev","id","removeProcessing","next","addProcessingVersion","removeProcessingVersion","useGetApplicationsQuery","pendingVersionData","refetchPendingVersions","useGetApplicationsWithPendingVersionsQuery","approveApplication","useApproveApplicationMutation","rejectApplication","useRejectApplicationMutation","approveApplicationVersion","useApproveApplicationVersionMutation","rejectApplicationVersion","useRejectApplicationVersionMutation","apps","data","edge","appsWithPendingVersions","pendingVersionAppIds","a","filteredApps","handleApprove","result","refetch","err","handleReject","handleApproveVersion","versionId","handleRejectVersion","reason","loading","PageLayout","error","getErrorMessage","PermissionGuard","Clock","Search","PageSection","EmptyState"],"sources":["../../../src/devportal/pages/AdminReviewPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useState } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n CheckCircle,\n XCircle,\n Clock,\n Search,\n Loader2,\n AlertCircle,\n Eye,\n ChevronDown,\n ChevronUp,\n Download,\n GitBranch,\n Package,\n} from \"lucide-react\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport {\n PermissionGuard,\n ManifestViewer,\n PackageValidationPanel,\n} from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\nimport {\n useGetApplicationsQuery,\n useApproveApplicationMutation,\n useRejectApplicationMutation,\n useGetApplicationForReviewQuery,\n useGetApplicationsWithPendingVersionsQuery,\n useApproveApplicationVersionMutation,\n useRejectApplicationVersionMutation,\n getErrorMessage,\n useDevportalPermission,\n type ApplicationFieldsFragment,\n type ApplicationVersionFieldsFragment,\n type GetApplicationsWithPendingVersionsQuery,\n} from \"../hooks\";\n\ntype AppWithPendingVersions = NonNullable<\n GetApplicationsWithPendingVersionsQuery[\"applicationsWithPendingVersions\"][\"edges\"][number][\"node\"]\n>;\n\n// ============================================================================\n// ZIP verification banner (Node / Workflow apps only)\n// ============================================================================\n\nconst ZIP_TYPE_LABELS: Partial<Record<string, string>> = {\n NODE: \"Node package\",\n WORKFLOW: \"Workflow bundle\",\n};\n\ninterface ZipDownloadProps {\n appType: string;\n packageUrl: string | null | undefined;\n packageSize: string | null | undefined;\n tr: (key: string, fallback: string) => string;\n}\n\nconst ZipDownload: FC<ZipDownloadProps> = ({\n appType,\n packageUrl,\n packageSize,\n tr,\n}) => {\n const label = ZIP_TYPE_LABELS[appType];\n if (!label) return null;\n\n return (\n <div className=\"rounded-lg border border-status-warning-bg bg-status-warning-bg-subtle p-3 space-y-2\">\n <div className=\"flex items-center gap-2 text-xs font-medium text-status-warning-text\">\n <Package size={13} className=\"flex-shrink-0\" />\n {tr(\n \"devportal.zipVerificationRequired\",\n \"ZIP verification required — download and test before approving\",\n )}\n </div>\n {packageUrl ? (\n <a\n href={packageUrl}\n download\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-3 py-1.5 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <Download size={14} />\n {tr(\"devportal.download\", \"Download\")} {label}\n {packageSize && (\n <span className=\"opacity-70 text-xs\">({packageSize})</span>\n )}\n </a>\n ) : (\n <p className=\"text-xs text-status-error-text flex items-center gap-1.5\">\n <AlertCircle size={12} />\n {tr(\n \"devportal.noZipUploaded\",\n \"No ZIP uploaded — developer must upload before this can be approved\",\n )}\n </p>\n )}\n </div>\n );\n};\n\n// ============================================================================\n// Review Row Component\n// ============================================================================\n\ninterface ReviewRowProps {\n app: ApplicationFieldsFragment;\n onApprove: (id: string, notes: string) => void;\n onReject: (id: string, notes: string) => void;\n processing: boolean;\n hasPendingVersions: boolean;\n}\n\nconst ReviewRow: FC<ReviewRowProps> = ({\n app,\n onApprove,\n onReject,\n processing,\n hasPendingVersions,\n}) => {\n const { navigate, basePath } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const [expanded, setExpanded] = useState(false);\n const [reviewNotes, setReviewNotes] = useState(\"\");\n const approvePerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_APPROVE);\n const rejectPerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_REJECT);\n\n const { data: versionData } = useGetApplicationForReviewQuery({\n variables: { id: app.id },\n skip: !expanded,\n fetchPolicy: \"cache-first\",\n });\n const latestVersion = versionData?.application?.versions?.edges?.[0]?.node;\n\n return (\n <div className=\"rounded-card border border-border-seam bg-bg-surface overflow-hidden\">\n {/* Header row */}\n <div className=\"flex items-center gap-4 p-4\">\n {app.iconUrl ? (\n <img\n src={app.iconUrl}\n alt={app.name}\n className=\"h-12 w-12 rounded-lg object-cover flex-shrink-0\"\n />\n ) : (\n <div className=\"h-12 w-12 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0\">\n <span className=\"text-lg font-bold text-text-secondary\">\n {app.name.charAt(0).toUpperCase()}\n </span>\n </div>\n )}\n\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <h3 className=\"font-semibold truncate\">{app.name}</h3>\n <span className=\"inline-flex items-center rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text\">\n {app.status}\n </span>\n <span className=\"inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary\">\n {app.appType.replace(/_/g, \" \")}\n </span>\n </div>\n <p className=\"text-sm text-text-secondary truncate\">\n {app.shortDescription ??\n app.description ??\n tr(\"devportal.noDescription\", \"No description\")}\n </p>\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {tr(\"devportal.submitted\", \"Submitted\")}:{\" \"}\n {app.submittedAt\n ? new Date(app.submittedAt).toLocaleDateString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n })\n : tr(\"devportal.unknown\", \"Unknown\")}\n </p>\n </div>\n\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <button\n onClick={() => navigate?.(`${basePath}/apps/${app.id}`)}\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n title={tr(\"devportal.viewAppDetails\", \"View app details\")}\n >\n <Eye size={14} />\n {tr(\"devportal.view\", \"View\")}\n </button>\n <button\n onClick={() => setExpanded((v) => !v)}\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n {expanded ? <ChevronUp size={14} /> : <ChevronDown size={14} />}\n {tr(\"devportal.review\", \"Review\")}\n </button>\n </div>\n </div>\n\n {/* Expanded review panel */}\n {expanded && (\n <div className=\"border-t bg-bg-sunken/30 p-4 space-y-4\">\n {/* Version approval hint — shown when this app also has pending versions */}\n {hasPendingVersions && (\n <div className=\"flex items-start gap-2 rounded-md border border-status-warning-bg bg-status-warning-bg-subtle px-3 py-2.5 text-xs text-status-warning-text\">\n <GitBranch\n size={14}\n className=\"mt-0.5 shrink-0\"\n aria-hidden=\"true\"\n />\n <span>\n This app has a pending version. Approve the version in the{\" \"}\n <strong>Version Updates</strong> section below before approving\n the app — the version must be live before the app can go public.\n </span>\n </div>\n )}\n\n {/* Submission notes from developer */}\n {app.reviewNotes && (\n <div className=\"rounded-md border bg-bg-surface p-3\">\n <p className=\"text-xs font-medium text-text-secondary mb-1\">\n {tr(\"devportal.developerNotes\", \"Developer Notes\")}\n </p>\n <p className=\"text-sm\">{app.reviewNotes}</p>\n </div>\n )}\n\n {/* App details summary */}\n <div className=\"grid grid-cols-2 gap-3 text-sm\">\n <div>\n <span className=\"text-text-secondary\">\n {tr(\"devportal.category\", \"Category\")}:{\" \"}\n </span>\n <span>{app.category ?? \"—\"}</span>\n </div>\n <div>\n <span className=\"text-text-secondary\">\n {tr(\"devportal.pricing\", \"Pricing\")}:{\" \"}\n </span>\n <span>{app.pricingType ?? \"FREE\"}</span>\n </div>\n <div>\n <span className=\"text-text-secondary\">\n {tr(\"devportal.website\", \"Website\")}:{\" \"}\n </span>\n {app.websiteUrl ? (\n <a\n href={app.websiteUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary underline hover:no-underline\"\n >\n {tr(\"devportal.link\", \"Link\")}\n </a>\n ) : (\n <span>—</span>\n )}\n </div>\n <div>\n <span className=\"text-text-secondary\">\n {tr(\"devportal.privacyPolicy\", \"Privacy Policy\")}:{\" \"}\n </span>\n {app.privacyPolicyUrl ? (\n <a\n href={app.privacyPolicyUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary underline hover:no-underline\"\n >\n {tr(\"devportal.link\", \"Link\")}\n </a>\n ) : (\n <span className=\"text-status-error-text\">\n {tr(\"devportal.missing\", \"Missing\")}\n </span>\n )}\n </div>\n </div>\n\n {/* Latest version package for review */}\n {latestVersion && (\n <div className=\"rounded-md border bg-bg-surface p-3 space-y-3\">\n <p className=\"text-xs font-medium text-text-secondary\">\n {tr(\"devportal.latestVersion\", \"Latest Version\")}:{\" \"}\n <span className=\"font-mono text-text-primary\">\n {latestVersion.version}\n </span>\n </p>\n\n {/* ZIP download — prominent banner for Node/Workflow, plain link otherwise */}\n {ZIP_TYPE_LABELS[app.appType] ? (\n <ZipDownload\n appType={app.appType}\n packageUrl={latestVersion.packageUrl}\n packageSize={latestVersion.packageSize}\n tr={tr}\n />\n ) : (\n latestVersion.packageUrl && (\n <div className=\"flex flex-wrap gap-2\">\n <a\n href={latestVersion.packageUrl}\n download\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n <Download size={14} />\n {tr(\"devportal.downloadPackage\", \"Download Package\")}\n {latestVersion.packageSize && (\n <span className=\"text-text-secondary text-xs ml-1\">\n ({latestVersion.packageSize})\n </span>\n )}\n </a>\n </div>\n )\n )}\n\n {latestVersion.manifest && (\n <ManifestViewer\n manifest={latestVersion.manifest as Record<string, unknown>}\n tr={tr}\n />\n )}\n </div>\n )}\n\n {/* Reviewer notes input */}\n <div>\n <label className=\"text-sm font-medium\">\n {tr(\"devportal.reviewNotes\", \"Review Notes\")}\n </label>\n <textarea\n value={reviewNotes}\n onChange={(e) => setReviewNotes(e.target.value)}\n placeholder={tr(\n \"devportal.reviewNotesPlaceholder\",\n \"Add feedback for the developer (required for rejection)...\",\n )}\n rows={3}\n className=\"mt-1 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none\"\n />\n </div>\n\n {/* Action buttons */}\n <div className=\"flex gap-3\">\n <button\n onClick={() => onApprove(app.id, reviewNotes)}\n disabled={processing || !approvePerm.allowed}\n aria-disabled={processing || !approvePerm.allowed}\n title={\n !approvePerm.allowed\n ? tr(\n \"devportal.common.noPermission\",\n \"You do not have permission to perform this action\",\n )\n : undefined\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-status-success-bg px-4 py-2 text-sm font-medium text-white hover:bg-status-success-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n {processing ? (\n <Loader2\n size={14}\n className=\"animate-spin\"\n aria-hidden=\"true\"\n />\n ) : (\n <CheckCircle size={14} aria-hidden=\"true\" />\n )}\n {tr(\"devportal.approve\", \"Approve\")}\n </button>\n <button\n onClick={() => onReject(app.id, reviewNotes)}\n disabled={\n processing || !reviewNotes.trim() || !rejectPerm.allowed\n }\n aria-disabled={\n processing || !reviewNotes.trim() || !rejectPerm.allowed\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n title={\n !rejectPerm.allowed\n ? tr(\n \"devportal.common.noPermission\",\n \"You do not have permission to perform this action\",\n )\n : !reviewNotes.trim()\n ? tr(\n \"devportal.notesRequiredForRejection\",\n \"Notes required for rejection\",\n )\n : undefined\n }\n >\n {processing ? (\n <Loader2\n size={14}\n className=\"animate-spin\"\n aria-hidden=\"true\"\n />\n ) : (\n <XCircle size={14} aria-hidden=\"true\" />\n )}\n {tr(\"devportal.reject\", \"Reject\")}\n </button>\n </div>\n </div>\n )}\n </div>\n );\n};\n\n// ============================================================================\n// Version Review Row Component\n// ============================================================================\n\ninterface VersionReviewRowProps {\n app: AppWithPendingVersions;\n onApproveVersion: (versionId: string, appId: string, notes: string) => void;\n onRejectVersion: (versionId: string, appId: string, reason: string) => void;\n processingVersionIds: Set<string>;\n}\n\nconst VersionReviewRow: FC<VersionReviewRowProps> = ({\n app,\n onApproveVersion,\n onRejectVersion,\n processingVersionIds,\n}) => {\n const { navigate, basePath } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const [expanded, setExpanded] = useState(false);\n\n const pendingVersions = app.versions.edges\n .map((e) => e.node)\n .filter((v) => v.status === \"pending_review\");\n\n if (pendingVersions.length === 0) return null;\n\n return (\n <div className=\"rounded-card border border-border-seam bg-bg-surface overflow-hidden\">\n <div className=\"flex items-center gap-4 p-4\">\n {app.iconUrl ? (\n <img\n src={app.iconUrl}\n alt={app.name}\n className=\"h-12 w-12 rounded-lg object-cover flex-shrink-0\"\n />\n ) : (\n <div className=\"h-12 w-12 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0\">\n <span className=\"text-lg font-bold text-text-secondary\">\n {app.name.charAt(0).toUpperCase()}\n </span>\n </div>\n )}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <h3 className=\"font-semibold truncate\">{app.name}</h3>\n <span className=\"inline-flex items-center rounded-full bg-status-info-bg-subtle px-2 py-0.5 text-xs font-medium text-status-info-text\">\n {pendingVersions.length} version\n {pendingVersions.length !== 1 ? \"s\" : \"\"} pending\n </span>\n </div>\n <p className=\"text-sm text-text-secondary truncate\">\n {app.shortDescription ??\n app.description ??\n tr(\"devportal.noDescription\", \"No description\")}\n </p>\n </div>\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <button\n onClick={() => navigate?.(`${basePath}/apps/${app.id}`)}\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n <Eye size={14} />\n {tr(\"devportal.view\", \"View\")}\n </button>\n <button\n onClick={() => setExpanded((v) => !v)}\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n {expanded ? <ChevronUp size={14} /> : <ChevronDown size={14} />}\n {tr(\"devportal.review\", \"Review\")}\n </button>\n </div>\n </div>\n\n {expanded && (\n <div className=\"border-t bg-bg-sunken/30 p-4 space-y-4\">\n {pendingVersions.map((version) => (\n <VersionCard\n key={version.id}\n version={version}\n appId={app.id}\n appType={app.appType}\n onApprove={onApproveVersion}\n onReject={onRejectVersion}\n processing={processingVersionIds.has(version.id)}\n tr={tr}\n />\n ))}\n </div>\n )}\n </div>\n );\n};\n\ntype PendingVersion =\n AppWithPendingVersions[\"versions\"][\"edges\"][number][\"node\"];\n\ninterface VersionCardProps {\n version: PendingVersion;\n appId: string;\n appType: string;\n onApprove: (versionId: string, appId: string, notes: string) => void;\n onReject: (versionId: string, appId: string, reason: string) => void;\n processing: boolean;\n tr: (key: string, fallback: string) => string;\n}\n\nconst VersionCard: FC<VersionCardProps> = ({\n version,\n appId,\n appType,\n onApprove,\n onReject,\n processing,\n tr,\n}) => {\n const [notes, setNotes] = useState(\"\");\n const approvePerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_APPROVE);\n const rejectPerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_REJECT);\n\n return (\n <div className=\"rounded-md border bg-bg-surface p-4 space-y-3\">\n <div className=\"flex items-center gap-3\">\n <GitBranch size={14} className=\"text-text-secondary flex-shrink-0\" />\n <span className=\"font-mono font-semibold text-sm\">\n {version.version}\n </span>\n {version.isLatest && (\n <span className=\"inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary\">\n Latest\n </span>\n )}\n <span className=\"text-xs text-text-secondary ml-auto\">\n {tr(\"devportal.submitted\", \"Submitted\")}:{\" \"}\n {new Date(version.createdAt).toLocaleDateString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n })}\n </span>\n </div>\n\n {version.releaseNotes && (\n <p className=\"text-sm text-text-secondary\">{version.releaseNotes}</p>\n )}\n\n {ZIP_TYPE_LABELS[appType] ? (\n <ZipDownload\n appType={appType}\n packageUrl={version.packageUrl}\n packageSize={version.packageSize}\n tr={tr}\n />\n ) : (\n version.packageUrl && (\n <div className=\"flex flex-wrap gap-2\">\n <a\n href={version.packageUrl}\n download\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n <Download size={14} />\n {tr(\"devportal.downloadPackage\", \"Download Package\")}\n {version.packageSize && (\n <span className=\"text-text-secondary text-xs ml-1\">\n ({version.packageSize})\n </span>\n )}\n </a>\n </div>\n )\n )}\n\n {appType === \"NODE\" && (\n <div className=\"space-y-1\">\n <p className=\"text-sm font-medium\">\n {tr(\"devportal.packageValidation.title\", \"Package validation\")}\n </p>\n <PackageValidationPanel metadata={version.metadata} defaultExpanded />\n </div>\n )}\n\n {version.manifest && (\n <ManifestViewer\n manifest={version.manifest as Record<string, unknown>}\n tr={tr}\n />\n )}\n\n <div>\n <label className=\"text-sm font-medium\">\n {tr(\"devportal.reviewNotes\", \"Review Notes\")}\n </label>\n <textarea\n value={notes}\n onChange={(e) => setNotes(e.target.value)}\n placeholder={tr(\n \"devportal.reviewNotesPlaceholder\",\n \"Add feedback for the developer (required for rejection)...\",\n )}\n rows={2}\n className=\"mt-1 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none\"\n />\n </div>\n\n <div className=\"flex gap-3\">\n <button\n onClick={() => onApprove(version.id, appId, notes)}\n disabled={processing || !approvePerm.allowed}\n aria-disabled={processing || !approvePerm.allowed}\n className=\"inline-flex items-center gap-2 rounded-md bg-status-success-bg px-4 py-2 text-sm font-medium text-white hover:bg-status-success-bg/90 disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {processing ? (\n <Loader2 size={14} className=\"animate-spin\" />\n ) : (\n <CheckCircle size={14} />\n )}\n {tr(\"devportal.approveVersion\", \"Approve Version\")}\n </button>\n <button\n onClick={() => onReject(version.id, appId, notes)}\n disabled={processing || !notes.trim() || !rejectPerm.allowed}\n aria-disabled={processing || !notes.trim() || !rejectPerm.allowed}\n className=\"inline-flex items-center gap-2 rounded-md bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/90 disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {processing ? (\n <Loader2 size={14} className=\"animate-spin\" />\n ) : (\n <XCircle size={14} />\n )}\n {tr(\"devportal.rejectVersion\", \"Reject Version\")}\n </button>\n </div>\n </div>\n );\n};\n\n// ============================================================================\n// Admin Review Page\n// ============================================================================\n\nexport const AdminReviewPage: FC = () => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [processingIds, setProcessingIds] = useState<Set<string>>(new Set());\n const [processingVersionIds, setProcessingVersionIds] = useState<Set<string>>(\n new Set(),\n );\n const [actionError, setActionError] = useState<string | null>(null);\n const [actionSuccess, setActionSuccess] = useState<string | null>(null);\n\n const addProcessing = (id: string) =>\n setProcessingIds((prev) => new Set(prev).add(id));\n const removeProcessing = (id: string) =>\n setProcessingIds((prev) => {\n const next = new Set(prev);\n next.delete(id);\n return next;\n });\n const addProcessingVersion = (id: string) =>\n setProcessingVersionIds((prev) => new Set(prev).add(id));\n const removeProcessingVersion = (id: string) =>\n setProcessingVersionIds((prev) => {\n const next = new Set(prev);\n next.delete(id);\n return next;\n });\n\n const { data, loading, error, refetch } = useGetApplicationsQuery({\n variables: { status: \"SUBMITTED\" as const, limit: 100 },\n fetchPolicy: \"cache-and-network\",\n });\n\n const { data: pendingVersionData, refetch: refetchPendingVersions } =\n useGetApplicationsWithPendingVersionsQuery({\n variables: { limit: 100 },\n fetchPolicy: \"cache-and-network\",\n });\n\n const [approveApplication] = useApproveApplicationMutation();\n const [rejectApplication] = useRejectApplicationMutation();\n const [approveApplicationVersion] = useApproveApplicationVersionMutation();\n const [rejectApplicationVersion] = useRejectApplicationVersionMutation();\n\n const apps =\n data?.applications?.edges?.map(\n (edge: { node: ApplicationFieldsFragment }) => edge.node,\n ) ?? [];\n\n const appsWithPendingVersions =\n pendingVersionData?.applicationsWithPendingVersions?.edges?.map(\n (edge: { node: AppWithPendingVersions }) => edge.node,\n ) ?? [];\n\n const pendingVersionAppIds = new Set(\n appsWithPendingVersions.map((a: AppWithPendingVersions) => a.id),\n );\n\n const filteredApps = searchQuery\n ? apps.filter(\n (app: ApplicationFieldsFragment) =>\n app.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n (app.shortDescription ?? \"\")\n .toLowerCase()\n .includes(searchQuery.toLowerCase()),\n )\n : apps;\n\n const handleApprove = async (id: string, notes: string) => {\n addProcessing(id);\n setActionError(null);\n setActionSuccess(null);\n try {\n const result = await approveApplication({\n variables: { id, notes: notes || undefined },\n });\n if (result.error) {\n throw result.error;\n }\n setActionSuccess(\n tr(\n \"devportal.applicationApprovedSuccess\",\n \"Application approved successfully.\",\n ),\n );\n await refetch();\n } catch (err) {\n setActionError(\n err instanceof Error\n ? err.message\n : tr(\n \"devportal.failedToApproveApplication\",\n \"Failed to approve application\",\n ),\n );\n } finally {\n removeProcessing(id);\n }\n };\n\n const handleReject = async (id: string, notes: string) => {\n if (!notes.trim()) return;\n addProcessing(id);\n setActionError(null);\n setActionSuccess(null);\n try {\n const result = await rejectApplication({ variables: { id, notes } });\n if (result.error) {\n throw result.error;\n }\n setActionSuccess(\n tr(\"devportal.applicationRejected\", \"Application rejected.\"),\n );\n await refetch();\n } catch (err) {\n setActionError(\n err instanceof Error\n ? err.message\n : tr(\n \"devportal.failedToRejectApplication\",\n \"Failed to reject application\",\n ),\n );\n } finally {\n removeProcessing(id);\n }\n };\n\n const handleApproveVersion = async (\n versionId: string,\n _appId: string,\n notes: string,\n ) => {\n addProcessingVersion(versionId);\n setActionError(null);\n setActionSuccess(null);\n try {\n const result = await approveApplicationVersion({\n variables: { id: versionId, notes: notes || undefined },\n });\n if (result.error) throw result.error;\n setActionSuccess(\n tr(\n \"devportal.versionApprovedSuccess\",\n \"Version approved and published.\",\n ),\n );\n await refetchPendingVersions();\n } catch (err) {\n setActionError(\n err instanceof Error\n ? err.message\n : tr(\"devportal.failedToApproveVersion\", \"Failed to approve version\"),\n );\n } finally {\n removeProcessingVersion(versionId);\n }\n };\n\n const handleRejectVersion = async (\n versionId: string,\n _appId: string,\n reason: string,\n ) => {\n if (!reason.trim()) return;\n addProcessingVersion(versionId);\n setActionError(null);\n setActionSuccess(null);\n try {\n const result = await rejectApplicationVersion({\n variables: { id: versionId, reason },\n });\n if (result.error) throw result.error;\n setActionSuccess(\n tr(\n \"devportal.versionRejectedSuccess\",\n \"Version rejected and returned to draft.\",\n ),\n );\n await refetchPendingVersions();\n } catch (err) {\n setActionError(\n err instanceof Error\n ? err.message\n : tr(\"devportal.failedToRejectVersion\", \"Failed to reject version\"),\n );\n } finally {\n removeProcessingVersion(versionId);\n }\n };\n\n if (loading && !data) {\n return (\n <PageLayout\n title={tr(\"devportal.appReviewQueue\", \"App Review Queue\")}\n description={tr(\n \"devportal.appReviewQueueDescription\",\n \"Review submitted applications for approval\",\n )}\n >\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n </div>\n </PageLayout>\n );\n }\n\n if (error) {\n return (\n <PageLayout\n title={tr(\"devportal.appReviewQueue\", \"App Review Queue\")}\n description={tr(\n \"devportal.appReviewQueueDescription\",\n \"Review submitted applications for approval\",\n )}\n >\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center\">\n <AlertCircle className=\"mx-auto h-8 w-8 text-status-error-text\" />\n <p className=\"mt-2 text-sm text-text-secondary\">\n {getErrorMessage(error)}\n </p>\n <button\n onClick={() => refetch()}\n className=\"mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n {tr(\"devportal.retry\", \"Retry\")}\n </button>\n </div>\n </PageLayout>\n );\n }\n\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.REVIEW_MANAGE}>\n <PageLayout\n title={tr(\"devportal.appReviewQueue\", \"App Review Queue\")}\n description={tr(\n \"devportal.appReviewQueueFullDescription\",\n \"Review submitted applications for approval or rejection\",\n )}\n purpose={tr(\n \"devportal.appReviewQueuePurpose\",\n \"The moderation queue for apps developers have submitted to the marketplace. Open each submission to check its listing, permissions, and behaviour against the guidelines, then approve it to go live or reject it with feedback.\",\n )}\n actions={\n <button\n onClick={() => {\n void refetch();\n void refetchPendingVersions();\n }}\n className=\"rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken\"\n >\n {tr(\"devportal.refresh\", \"Refresh\")}\n </button>\n }\n >\n {/* Stats bar */}\n <div className=\"flex items-center gap-6 rounded-card border border-border-seam bg-bg-surface p-4\">\n <div className=\"flex items-center gap-2\">\n <Clock size={18} className=\"text-status-warning-text\" />\n <span className=\"text-sm font-medium\">\n {apps.length} {tr(\"devportal.pendingReview\", \"pending review\")}\n </span>\n </div>\n {appsWithPendingVersions.length > 0 && (\n <div className=\"flex items-center gap-2\">\n <GitBranch size={18} className=\"text-status-info-text\" />\n <span className=\"text-sm font-medium\">\n {appsWithPendingVersions.length}{\" \"}\n {tr(\"devportal.withPendingVersions\", \"with pending versions\")}\n </span>\n </div>\n )}\n {(processingIds.size > 0 || processingVersionIds.size > 0) && (\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Loader2 size={14} className=\"animate-spin\" />\n {tr(\"devportal.processing\", \"Processing...\")}\n </div>\n )}\n </div>\n\n {/* Feedback messages */}\n {actionSuccess && (\n <div className=\"flex items-center gap-2 rounded-lg border border-border-subtle bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text\">\n <CheckCircle size={16} />\n {actionSuccess}\n </div>\n )}\n {actionError && (\n <div className=\"flex items-center gap-2 rounded-lg border border-status-error-border/50 bg-status-error-bg/10 px-4 py-3 text-sm text-status-error-text\">\n <AlertCircle size={16} />\n {actionError}\n </div>\n )}\n\n {/* Search */}\n {apps.length > 0 && (\n <div className=\"relative max-w-sm\">\n <Search\n size={14}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <input\n type=\"text\"\n placeholder={tr(\n \"devportal.searchSubmittedApps\",\n \"Search submitted apps...\",\n )}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </div>\n )}\n\n {/* New app submissions */}\n <PageSection\n title={tr(\"devportal.newAppSubmissions\", \"New App Submissions\")}\n >\n {filteredApps.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n icon={<CheckCircle size={32} />}\n title={tr(\n \"devportal.noAppsPendingReview\",\n \"No apps pending review\",\n )}\n description={\n searchQuery\n ? tr(\n \"devportal.noAppsMatchSearch\",\n \"No apps match your search\",\n )\n : tr(\n \"devportal.allApplicationsReviewed\",\n \"All submitted applications have been reviewed\",\n )\n }\n />\n ) : (\n <div className=\"space-y-3\">\n {filteredApps.map((app: ApplicationFieldsFragment) => (\n <ReviewRow\n key={app.id}\n app={app}\n onApprove={handleApprove}\n onReject={handleReject}\n processing={processingIds.has(app.id)}\n hasPendingVersions={pendingVersionAppIds.has(app.id)}\n />\n ))}\n </div>\n )}\n </PageSection>\n\n {/* Version updates for published apps */}\n <PageSection\n title={tr(\n \"devportal.versionUpdates\",\n \"Version Updates (Published Apps)\",\n )}\n >\n {appsWithPendingVersions.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n icon={<GitBranch size={32} />}\n title={tr(\n \"devportal.noPendingVersions\",\n \"No pending version updates\",\n )}\n description={tr(\n \"devportal.allVersionsReviewed\",\n \"All version updates from published apps have been reviewed\",\n )}\n />\n ) : (\n <div className=\"space-y-3\">\n {appsWithPendingVersions.map((app: AppWithPendingVersions) => (\n <VersionReviewRow\n key={app.id}\n app={app}\n onApproveVersion={handleApproveVersion}\n onRejectVersion={handleRejectVersion}\n processingVersionIds={processingVersionIds}\n />\n ))}\n </div>\n )}\n </PageSection>\n </PageLayout>\n </PermissionGuard>\n );\n};\n"],"mappings":"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"}
@@ -1,4 +1,2 @@
1
1
  import { FC } from 'react';
2
-
3
2
  export declare const AnalyticsDashboardPage: FC;
4
- //# sourceMappingURL=AnalyticsDashboardPage.d.ts.map
@@ -1,28 +1,28 @@
1
- import { useDevportal as e } from "../providers/DevportalProvider.js";
2
- import { useTr as t } from "../utils/i18n.js";
3
- import { EmptyState as n } from "../components/EmptyState.js";
1
+ import { Bar as e } from "../../node_modules/recharts/es6/cartesian/Bar.js";
2
+ import { BarChart as t } from "../../node_modules/recharts/es6/chart/BarChart.js";
3
+ import { CartesianGrid as n } from "../../node_modules/recharts/es6/cartesian/CartesianGrid.js";
4
4
  import { useGetAnalyticsDashboardOptionsQuery as r, useGetApplicationAnalyticsDashboardQuery as i } from "../../generated/global-operations.js";
5
5
  import { getErrorMessage as a } from "../hooks/useGraphQL.js";
6
- import { PageLayout as o, PageSection as s } from "../components/PageLayout.js";
7
- import { AppListItem as ee } from "../components/AppCard.js";
8
- import { StatCard as c, StatCardGrid as te } from "../components/StatCard.js";
9
- import { DataTable as ne } from "../components/DataTable.js";
10
- import "../hooks/index.js";
6
+ import { Line as o } from "../../node_modules/recharts/es6/cartesian/Line.js";
7
+ import { LineChart as s } from "../../node_modules/recharts/es6/chart/LineChart.js";
8
+ import { ResponsiveContainer as c } from "../../node_modules/recharts/es6/component/ResponsiveContainer.js";
11
9
  import { Tooltip as l } from "../../node_modules/recharts/es6/component/Tooltip.js";
12
- import { ResponsiveContainer as u } from "../../node_modules/recharts/es6/component/ResponsiveContainer.js";
13
- import { Bar as d } from "../../node_modules/recharts/es6/cartesian/Bar.js";
14
- import { CartesianGrid as f } from "../../node_modules/recharts/es6/cartesian/CartesianGrid.js";
15
- import { Line as p } from "../../node_modules/recharts/es6/cartesian/Line.js";
16
- import { XAxis as m } from "../../node_modules/recharts/es6/cartesian/XAxis.js";
17
- import { YAxis as h } from "../../node_modules/recharts/es6/cartesian/YAxis.js";
18
- import { LineChart as re } from "../../node_modules/recharts/es6/chart/LineChart.js";
19
- import { BarChart as ie } from "../../node_modules/recharts/es6/chart/BarChart.js";
20
- import { useEffect as g, useMemo as _, useState as v } from "react";
21
- import { Activity as ae, AlertCircle as y, AlertTriangle as oe, BarChart3 as b, Clock as se, Loader2 as x, Users as S } from "lucide-react";
22
- import { useParams as C } from "react-router";
10
+ import { XAxis as u } from "../../node_modules/recharts/es6/cartesian/XAxis.js";
11
+ import { YAxis as d } from "../../node_modules/recharts/es6/cartesian/YAxis.js";
12
+ import { PageLayout as f, PageSection as p } from "../components/PageLayout.js";
13
+ import { DataTable as m } from "../components/DataTable.js";
14
+ import { EmptyState as h } from "../components/EmptyState.js";
15
+ import { StatCard as g, StatCardGrid as ee } from "../components/StatCard.js";
16
+ import { AppListItem as te } from "../components/AppCard.js";
17
+ import { useDevportal as ne } from "../providers/DevportalProvider.js";
18
+ import "../hooks/index.js";
19
+ import { useTr as re } from "../utils/i18n.js";
20
+ import { useEffect as ie, useMemo as _, useState as v } from "react";
21
+ import { Activity as y, AlertCircle as b, AlertTriangle as ae, BarChart3 as x, Clock as S, Loader2 as C, Users as oe } from "lucide-react";
22
+ import { useParams as se } from "react-router";
23
23
  import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
24
24
  import { EmphasisPanel as D, GlassCard as O } from "@burdenoff/fe-libs/ui";
25
- //#region src/devportal/pages/AnalyticsDashboardPage.tsx
25
+ // src/devportal/pages/AnalyticsDashboardPage.tsx
26
26
  var ce = {
27
27
  "7d": 7,
28
28
  "30d": 30,
@@ -33,7 +33,7 @@ var ce = {
33
33
  tertiary: "var(--color-chart-4)",
34
34
  negative: "var(--color-chart-negative)"
35
35
  }, A = () => {
36
- let { appId: A } = C(), { navigate: j, basePath: le, activeOrgId: M } = e(), N = t(), [P, F] = v("30d"), [I, L] = v(A || ""), R = _(() => /* @__PURE__ */ new Date(), []), z = _(() => {
36
+ let { appId: A } = se(), { navigate: le, basePath: j, activeOrgId: M } = ne(), N = re(), [P, F] = v("30d"), [I, L] = v(A || ""), R = _(() => /* @__PURE__ */ new Date(), []), z = _(() => {
37
37
  let e = new Date(R);
38
38
  return e.setDate(e.getDate() - ce[P]), e.toISOString();
39
39
  }, [R, P]), { data: B, loading: V, error: H } = r({
@@ -49,7 +49,7 @@ var ce = {
49
49
  skip: !(I || A),
50
50
  fetchPolicy: "cache-and-network"
51
51
  }), G = B?.applications?.edges?.map((e) => e.node) ?? [], K = M ? G.filter((e) => e.developerOrganizationId === M) : G, q = U?.application;
52
- g(() => {
52
+ ie(() => {
53
53
  let e = q?.name, t = A || I;
54
54
  if (!t || !e) return;
55
55
  let n = window.__breadcrumbRegistry;
@@ -71,55 +71,55 @@ var ce = {
71
71
  sessions: e.sessions,
72
72
  avgResponseTime: e.avgResponseTime ?? 0
73
73
  })), Q = Y && Y.apiCalls > 0 ? Y.errors / Y.apiCalls * 100 : 0, de = X && X.apiCalls > 0 ? X.errors / X.apiCalls * 100 : 0, $ = Y?.avgResponseTime && X?.avgResponseTime ? X.avgResponseTime - Y.avgResponseTime : void 0, fe = (e) => {
74
- j?.(`${le}${e}`);
74
+ le?.(`${j}${e}`);
75
75
  };
76
- return !A && V && !B ? /* @__PURE__ */ T(o, {
76
+ return !A && V && !B ? /* @__PURE__ */ T(f, {
77
77
  title: N("devportal.analytics.title", "Analytics"),
78
78
  description: N("devportal.analytics.description", "Explore live application usage and performance metrics"),
79
79
  children: /* @__PURE__ */ T("div", {
80
80
  className: "flex items-center justify-center py-16 text-text-secondary",
81
- children: /* @__PURE__ */ T(x, { className: "h-8 w-8 animate-spin" })
81
+ children: /* @__PURE__ */ T(C, { className: "h-8 w-8 animate-spin" })
82
82
  })
83
- }) : !A && H ? /* @__PURE__ */ T(o, {
83
+ }) : !A && H ? /* @__PURE__ */ T(f, {
84
84
  title: N("devportal.analytics.title", "Analytics"),
85
85
  description: N("devportal.analytics.description", "Explore live application usage and performance metrics"),
86
- children: /* @__PURE__ */ T(n, {
87
- icon: /* @__PURE__ */ T(y, {
86
+ children: /* @__PURE__ */ T(h, {
87
+ icon: /* @__PURE__ */ T(b, {
88
88
  size: 32,
89
89
  className: "text-status-error-text"
90
90
  }),
91
91
  title: N("devportal.analytics.errorLoadApps", "Unable to load applications"),
92
92
  description: a(H)
93
93
  })
94
- }) : !A && !I ? /* @__PURE__ */ T(o, {
94
+ }) : !A && !I ? /* @__PURE__ */ T(f, {
95
95
  title: N("devportal.analytics.title", "Analytics"),
96
96
  description: N("devportal.analytics.selectAppDescription", "Select an application to review live usage metrics from the public gateway"),
97
97
  children: K.length > 0 ? /* @__PURE__ */ T("div", {
98
98
  className: "space-y-2",
99
- children: K.map((e) => /* @__PURE__ */ T(ee, {
99
+ children: K.map((e) => /* @__PURE__ */ T(te, {
100
100
  app: e,
101
101
  onClick: () => L(e.id)
102
102
  }, e.id))
103
- }) : /* @__PURE__ */ T(n, {
103
+ }) : /* @__PURE__ */ T(h, {
104
104
  illustration: "empty-data",
105
- icon: /* @__PURE__ */ T(b, { size: 32 }),
105
+ icon: /* @__PURE__ */ T(x, { size: 32 }),
106
106
  title: N("devportal.analytics.noAppsTitle", "No applications available"),
107
107
  description: N("devportal.analytics.noAppsDescription", "Create an application before viewing analytics.")
108
108
  })
109
- }) : W ? /* @__PURE__ */ T(o, {
109
+ }) : W ? /* @__PURE__ */ T(f, {
110
110
  title: N("devportal.analytics.title", "Analytics"),
111
111
  description: N("devportal.analytics.description", "Explore live application usage and performance metrics"),
112
112
  backLink: I ? `/apps/${I}` : void 0,
113
113
  backLabel: N("devportal.analytics.backToApplication", "Back to Application"),
114
- children: /* @__PURE__ */ T(n, {
115
- icon: /* @__PURE__ */ T(y, {
114
+ children: /* @__PURE__ */ T(h, {
115
+ icon: /* @__PURE__ */ T(b, {
116
116
  size: 32,
117
117
  className: "text-status-error-text"
118
118
  }),
119
119
  title: N("devportal.analytics.errorLoadAnalytics", "Unable to load analytics"),
120
120
  description: a(W)
121
121
  })
122
- }) : /* @__PURE__ */ T(o, {
122
+ }) : /* @__PURE__ */ T(f, {
123
123
  title: A ? N("devportal.analytics.appTitle", "Application Analytics") : N("devportal.analytics.title", "Analytics"),
124
124
  description: q ? `${N("devportal.analytics.liveUsageFor", "Live usage and performance for")} ${q.name}` : N("devportal.analytics.description", "Explore live application usage and performance metrics"),
125
125
  purpose: N("devportal.analytics.purpose", "Analytics shows how your apps are actually used — API call volume, active installs, latency, and error rates over time — so you can spot regressions, plan capacity, and prove value to your users. Pick an app and a time range to drill in."),
@@ -159,36 +159,36 @@ var ce = {
159
159
  }),
160
160
  children: ue && !J.length ? /* @__PURE__ */ T("div", {
161
161
  className: "flex items-center justify-center py-16 text-text-secondary",
162
- children: /* @__PURE__ */ T(x, { className: "h-8 w-8 animate-spin" })
162
+ children: /* @__PURE__ */ T(C, { className: "h-8 w-8 animate-spin" })
163
163
  }) : J.length > 0 ? /* @__PURE__ */ E(w, { children: [
164
164
  /* @__PURE__ */ T(D, {
165
165
  className: "mb-6",
166
- children: /* @__PURE__ */ E(te, {
166
+ children: /* @__PURE__ */ E(ee, {
167
167
  columns: 4,
168
168
  children: [
169
- /* @__PURE__ */ T(c, {
169
+ /* @__PURE__ */ T(g, {
170
170
  title: N("devportal.analytics.apiCalls", "API Calls"),
171
171
  value: (Y?.apiCalls ?? 0).toLocaleString(),
172
- icon: /* @__PURE__ */ T(ae, { size: 20 })
172
+ icon: /* @__PURE__ */ T(y, { size: 20 })
173
173
  }),
174
- /* @__PURE__ */ T(c, {
174
+ /* @__PURE__ */ T(g, {
175
175
  title: N("devportal.analytics.activeUsers", "Active Users"),
176
176
  value: (Y?.activeUsers ?? 0).toLocaleString(),
177
- icon: /* @__PURE__ */ T(S, { size: 20 })
177
+ icon: /* @__PURE__ */ T(oe, { size: 20 })
178
178
  }),
179
- /* @__PURE__ */ T(c, {
179
+ /* @__PURE__ */ T(g, {
180
180
  title: N("devportal.analytics.errorRate", "Error Rate"),
181
181
  value: `${Q.toFixed(2)}%`,
182
- icon: /* @__PURE__ */ T(oe, { size: 20 }),
182
+ icon: /* @__PURE__ */ T(ae, { size: 20 }),
183
183
  trend: X ? {
184
184
  value: de - Q,
185
185
  label: N("devportal.analytics.vsPrevious", "vs previous period")
186
186
  } : void 0
187
187
  }),
188
- /* @__PURE__ */ T(c, {
188
+ /* @__PURE__ */ T(g, {
189
189
  title: N("devportal.analytics.avgResponseTime", "Avg Response Time"),
190
190
  value: Y?.avgResponseTime ? `${Y.avgResponseTime}ms` : N("devportal.common.na", "N/A"),
191
- icon: /* @__PURE__ */ T(se, { size: 20 }),
191
+ icon: /* @__PURE__ */ T(S, { size: 20 }),
192
192
  trend: typeof $ == "number" ? {
193
193
  value: $,
194
194
  label: N("devportal.analytics.fasterThanPrevious", "faster than previous")
@@ -199,27 +199,27 @@ var ce = {
199
199
  }),
200
200
  /* @__PURE__ */ E("div", {
201
201
  className: "grid gap-6 xl:grid-cols-2",
202
- children: [/* @__PURE__ */ T(s, {
202
+ children: [/* @__PURE__ */ T(p, {
203
203
  title: N("devportal.analytics.trafficTrend", "Traffic trend"),
204
204
  children: /* @__PURE__ */ T(O, {
205
205
  treatment: "insight",
206
206
  className: "p-4",
207
- children: /* @__PURE__ */ T(u, {
207
+ children: /* @__PURE__ */ T(c, {
208
208
  width: "100%",
209
209
  height: 300,
210
- children: /* @__PURE__ */ E(re, {
210
+ children: /* @__PURE__ */ E(s, {
211
211
  data: Z,
212
212
  children: [
213
- /* @__PURE__ */ T(f, {
213
+ /* @__PURE__ */ T(n, {
214
214
  strokeDasharray: "3 3",
215
215
  stroke: "var(--color-chart-grid)"
216
216
  }),
217
- /* @__PURE__ */ T(m, {
217
+ /* @__PURE__ */ T(u, {
218
218
  dataKey: "date",
219
219
  stroke: "var(--color-chart-axis)",
220
220
  fontSize: 12
221
221
  }),
222
- /* @__PURE__ */ T(h, {
222
+ /* @__PURE__ */ T(d, {
223
223
  stroke: "var(--color-chart-axis)",
224
224
  fontSize: 12
225
225
  }),
@@ -228,14 +228,14 @@ var ce = {
228
228
  border: "1px solid var(--color-border-default)",
229
229
  borderRadius: 12
230
230
  } }),
231
- /* @__PURE__ */ T(p, {
231
+ /* @__PURE__ */ T(o, {
232
232
  type: "monotone",
233
233
  dataKey: "apiCalls",
234
234
  stroke: k.primary,
235
235
  strokeWidth: 2,
236
236
  dot: !1
237
237
  }),
238
- /* @__PURE__ */ T(p, {
238
+ /* @__PURE__ */ T(o, {
239
239
  type: "monotone",
240
240
  dataKey: "errors",
241
241
  stroke: k.negative,
@@ -246,27 +246,27 @@ var ce = {
246
246
  })
247
247
  })
248
248
  })
249
- }), /* @__PURE__ */ T(s, {
249
+ }), /* @__PURE__ */ T(p, {
250
250
  title: N("devportal.analytics.userActivity", "User activity"),
251
251
  children: /* @__PURE__ */ T(O, {
252
252
  treatment: "insight",
253
253
  className: "p-4",
254
- children: /* @__PURE__ */ T(u, {
254
+ children: /* @__PURE__ */ T(c, {
255
255
  width: "100%",
256
256
  height: 300,
257
- children: /* @__PURE__ */ E(ie, {
257
+ children: /* @__PURE__ */ E(t, {
258
258
  data: Z,
259
259
  children: [
260
- /* @__PURE__ */ T(f, {
260
+ /* @__PURE__ */ T(n, {
261
261
  strokeDasharray: "3 3",
262
262
  stroke: "var(--color-chart-grid)"
263
263
  }),
264
- /* @__PURE__ */ T(m, {
264
+ /* @__PURE__ */ T(u, {
265
265
  dataKey: "date",
266
266
  stroke: "var(--color-chart-axis)",
267
267
  fontSize: 12
268
268
  }),
269
- /* @__PURE__ */ T(h, {
269
+ /* @__PURE__ */ T(d, {
270
270
  stroke: "var(--color-chart-axis)",
271
271
  fontSize: 12
272
272
  }),
@@ -275,7 +275,7 @@ var ce = {
275
275
  border: "1px solid var(--color-border-default)",
276
276
  borderRadius: 12
277
277
  } }),
278
- /* @__PURE__ */ T(d, {
278
+ /* @__PURE__ */ T(e, {
279
279
  dataKey: "activeUsers",
280
280
  fill: k.primary,
281
281
  radius: [
@@ -285,7 +285,7 @@ var ce = {
285
285
  0
286
286
  ]
287
287
  }),
288
- /* @__PURE__ */ T(d, {
288
+ /* @__PURE__ */ T(e, {
289
289
  dataKey: "newUsers",
290
290
  fill: k.secondary,
291
291
  radius: [
@@ -301,9 +301,9 @@ var ce = {
301
301
  })
302
302
  })]
303
303
  }),
304
- /* @__PURE__ */ T(s, {
304
+ /* @__PURE__ */ T(p, {
305
305
  title: N("devportal.analytics.dailyBreakdown", "Daily breakdown"),
306
- children: /* @__PURE__ */ T(ne, {
306
+ children: /* @__PURE__ */ T(m, {
307
307
  data: J,
308
308
  keyField: "id",
309
309
  columns: [
@@ -349,9 +349,9 @@ var ce = {
349
349
  ]
350
350
  })
351
351
  })
352
- ] }) : /* @__PURE__ */ T(n, {
352
+ ] }) : /* @__PURE__ */ T(h, {
353
353
  illustration: "empty-data",
354
- icon: /* @__PURE__ */ T(b, { size: 32 }),
354
+ icon: /* @__PURE__ */ T(x, { size: 32 }),
355
355
  title: N("devportal.analytics.noAnalyticsTitle", "No analytics available yet"),
356
356
  description: N("devportal.analytics.noAnalyticsDescription", "Analytics will appear after this application starts receiving traffic through the public gateway."),
357
357
  action: A ? void 0 : /* @__PURE__ */ T("button", {
@@ -363,7 +363,6 @@ var ce = {
363
363
  })
364
364
  });
365
365
  };
366
- //#endregion
367
366
  export { A as AnalyticsDashboardPage };
368
367
 
369
368
  //# sourceMappingURL=AnalyticsDashboardPage.js.map