@burdenoff/microfe-devportal 2026.1107.3 → 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 (1400) 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 +46 -40
  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 +19 -0
  224. package/dist/devportal/pages/PublisherPayoutsPage.js +650 -0
  225. package/dist/devportal/pages/PublisherPayoutsPage.js.map +1 -0
  226. package/dist/devportal/pages/PublisherProfilePage.d.ts +0 -2
  227. package/dist/devportal/pages/PublisherProfilePage.js +175 -163
  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 +136 -0
  291. package/dist/devportal/utils/publisherPayouts.js +166 -0
  292. package/dist/devportal/utils/publisherPayouts.js.map +1 -0
  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 +2614 -2317
  303. package/dist/generated/global-operations.js +412 -272
  304. package/dist/generated/global-operations.js.map +1 -1
  305. package/dist/generated/global-types.d.ts +2288 -339
  306. package/dist/generated/global-types.js +4 -3
  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 +91 -1
  1065. package/dist/translations/en.js +92 -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/PublisherProfilePage.d.ts.map +0 -1
  1149. package/dist/devportal/pages/ResourcesPage.d.ts.map +0 -1
  1150. package/dist/devportal/pages/RevenueDashboardPage.d.ts.map +0 -1
  1151. package/dist/devportal/pages/RevenueRedirectPage.d.ts.map +0 -1
  1152. package/dist/devportal/pages/SellerDashboardPage.d.ts.map +0 -1
  1153. package/dist/devportal/pages/SellerItemsPage.d.ts.map +0 -1
  1154. package/dist/devportal/pages/SellerOrdersPage.d.ts.map +0 -1
  1155. package/dist/devportal/pages/SettingsPage.d.ts.map +0 -1
  1156. package/dist/devportal/pages/SetupPage.d.ts.map +0 -1
  1157. package/dist/devportal/pages/StoreSubmissionPage.d.ts.map +0 -1
  1158. package/dist/devportal/pages/WebhookDetailPage.d.ts.map +0 -1
  1159. package/dist/devportal/pages/WebhooksPage.d.ts.map +0 -1
  1160. package/dist/devportal/providers/DevportalProvider.d.ts.map +0 -1
  1161. package/dist/devportal/store/devportalStore.d.ts.map +0 -1
  1162. package/dist/devportal/types/index.d.ts.map +0 -1
  1163. package/dist/devportal/utils/cn.d.ts.map +0 -1
  1164. package/dist/devportal/utils/constants.d.ts.map +0 -1
  1165. package/dist/devportal/utils/currency.d.ts.map +0 -1
  1166. package/dist/devportal/utils/developerOnboarding.d.ts.map +0 -1
  1167. package/dist/devportal/utils/graphqlEndpoint.d.ts.map +0 -1
  1168. package/dist/devportal/utils/i18n.d.ts.map +0 -1
  1169. package/dist/devportal/utils/nodeLifecycle.d.ts.map +0 -1
  1170. package/dist/devportal/utils/recaptcha.d.ts.map +0 -1
  1171. package/dist/devportal/utils/submitForReview.d.ts.map +0 -1
  1172. package/dist/devportal/utils/uploadErrors.d.ts.map +0 -1
  1173. package/dist/generated/global-operations.d.ts.map +0 -1
  1174. package/dist/generated/global-types.d.ts.map +0 -1
  1175. package/dist/generated/wspace-operations.d.ts.map +0 -1
  1176. package/dist/generated/wspace-types.d.ts.map +0 -1
  1177. package/dist/index.d.ts.map +0 -1
  1178. package/dist/node_modules/d3-array/src/ascending.js +0 -8
  1179. package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
  1180. package/dist/node_modules/d3-array/src/bisect.js +0 -10
  1181. package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
  1182. package/dist/node_modules/d3-array/src/bisector.js +0 -43
  1183. package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
  1184. package/dist/node_modules/d3-array/src/descending.js +0 -8
  1185. package/dist/node_modules/d3-array/src/descending.js.map +0 -1
  1186. package/dist/node_modules/d3-array/src/max.js +0 -14
  1187. package/dist/node_modules/d3-array/src/max.js.map +0 -1
  1188. package/dist/node_modules/d3-array/src/min.js +0 -14
  1189. package/dist/node_modules/d3-array/src/min.js.map +0 -1
  1190. package/dist/node_modules/d3-array/src/number.js +0 -15
  1191. package/dist/node_modules/d3-array/src/number.js.map +0 -1
  1192. package/dist/node_modules/d3-array/src/quantile.js +0 -25
  1193. package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
  1194. package/dist/node_modules/d3-array/src/quickselect.js +0 -26
  1195. package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
  1196. package/dist/node_modules/d3-array/src/range.js +0 -10
  1197. package/dist/node_modules/d3-array/src/range.js.map +0 -1
  1198. package/dist/node_modules/d3-array/src/sort.js +0 -17
  1199. package/dist/node_modules/d3-array/src/sort.js.map +0 -1
  1200. package/dist/node_modules/d3-array/src/ticks.js +0 -34
  1201. package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
  1202. package/dist/node_modules/d3-color/src/color.js +0 -291
  1203. package/dist/node_modules/d3-color/src/color.js.map +0 -1
  1204. package/dist/node_modules/d3-color/src/define.js +0 -13
  1205. package/dist/node_modules/d3-color/src/define.js.map +0 -1
  1206. package/dist/node_modules/d3-format/src/defaultLocale.js +0 -15
  1207. package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
  1208. package/dist/node_modules/d3-format/src/exponent.js +0 -9
  1209. package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
  1210. package/dist/node_modules/d3-format/src/formatDecimal.js +0 -13
  1211. package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
  1212. package/dist/node_modules/d3-format/src/formatGroup.js +0 -11
  1213. package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
  1214. package/dist/node_modules/d3-format/src/formatNumerals.js +0 -12
  1215. package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
  1216. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -13
  1217. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
  1218. package/dist/node_modules/d3-format/src/formatRounded.js +0 -12
  1219. package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
  1220. package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -29
  1221. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
  1222. package/dist/node_modules/d3-format/src/formatTrim.js +0 -20
  1223. package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
  1224. package/dist/node_modules/d3-format/src/formatTypes.js +0 -23
  1225. package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
  1226. package/dist/node_modules/d3-format/src/identity.js +0 -8
  1227. package/dist/node_modules/d3-format/src/identity.js.map +0 -1
  1228. package/dist/node_modules/d3-format/src/locale.js +0 -86
  1229. package/dist/node_modules/d3-format/src/locale.js.map +0 -1
  1230. package/dist/node_modules/d3-format/src/precisionFixed.js +0 -9
  1231. package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
  1232. package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -9
  1233. package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
  1234. package/dist/node_modules/d3-format/src/precisionRound.js +0 -9
  1235. package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
  1236. package/dist/node_modules/d3-interpolate/src/array.js +0 -15
  1237. package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
  1238. package/dist/node_modules/d3-interpolate/src/basis.js +0 -16
  1239. package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
  1240. package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -13
  1241. package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
  1242. package/dist/node_modules/d3-interpolate/src/color.js +0 -25
  1243. package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
  1244. package/dist/node_modules/d3-interpolate/src/constant.js +0 -6
  1245. package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
  1246. package/dist/node_modules/d3-interpolate/src/date.js +0 -11
  1247. package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
  1248. package/dist/node_modules/d3-interpolate/src/number.js +0 -10
  1249. package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
  1250. package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -16
  1251. package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
  1252. package/dist/node_modules/d3-interpolate/src/object.js +0 -14
  1253. package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
  1254. package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -14
  1255. package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
  1256. package/dist/node_modules/d3-interpolate/src/rgb.js +0 -19
  1257. package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
  1258. package/dist/node_modules/d3-interpolate/src/round.js +0 -10
  1259. package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
  1260. package/dist/node_modules/d3-interpolate/src/string.js +0 -28
  1261. package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
  1262. package/dist/node_modules/d3-interpolate/src/value.js +0 -18
  1263. package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
  1264. package/dist/node_modules/d3-path/src/path.js.map +0 -1
  1265. package/dist/node_modules/d3-scale/src/band.js +0 -52
  1266. package/dist/node_modules/d3-scale/src/band.js.map +0 -1
  1267. package/dist/node_modules/d3-scale/src/constant.js +0 -10
  1268. package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
  1269. package/dist/node_modules/d3-scale/src/continuous.js +0 -73
  1270. package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
  1271. package/dist/node_modules/d3-scale/src/diverging.js +0 -82
  1272. package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
  1273. package/dist/node_modules/d3-scale/src/identity.js +0 -20
  1274. package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
  1275. package/dist/node_modules/d3-scale/src/init.js +0 -29
  1276. package/dist/node_modules/d3-scale/src/init.js.map +0 -1
  1277. package/dist/node_modules/d3-scale/src/linear.js +0 -36
  1278. package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
  1279. package/dist/node_modules/d3-scale/src/log.js +0 -77
  1280. package/dist/node_modules/d3-scale/src/log.js.map +0 -1
  1281. package/dist/node_modules/d3-scale/src/nice.js +0 -10
  1282. package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
  1283. package/dist/node_modules/d3-scale/src/number.js +0 -8
  1284. package/dist/node_modules/d3-scale/src/number.js.map +0 -1
  1285. package/dist/node_modules/d3-scale/src/ordinal.js +0 -31
  1286. package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
  1287. package/dist/node_modules/d3-scale/src/pow.js +0 -37
  1288. package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
  1289. package/dist/node_modules/d3-scale/src/quantile.js +0 -37
  1290. package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
  1291. package/dist/node_modules/d3-scale/src/quantize.js +0 -33
  1292. package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
  1293. package/dist/node_modules/d3-scale/src/radial.js +0 -39
  1294. package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
  1295. package/dist/node_modules/d3-scale/src/sequential.js +0 -67
  1296. package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
  1297. package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -30
  1298. package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
  1299. package/dist/node_modules/d3-scale/src/symlog.js +0 -30
  1300. package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
  1301. package/dist/node_modules/d3-scale/src/threshold.js +0 -25
  1302. package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
  1303. package/dist/node_modules/d3-scale/src/tickFormat.js +0 -31
  1304. package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
  1305. package/dist/node_modules/d3-scale/src/time.js +0 -47
  1306. package/dist/node_modules/d3-scale/src/time.js.map +0 -1
  1307. package/dist/node_modules/d3-scale/src/utcTime.js +0 -19
  1308. package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
  1309. package/dist/node_modules/d3-shape/src/area.js +0 -55
  1310. package/dist/node_modules/d3-shape/src/area.js.map +0 -1
  1311. package/dist/node_modules/d3-shape/src/array.js +0 -8
  1312. package/dist/node_modules/d3-shape/src/array.js.map +0 -1
  1313. package/dist/node_modules/d3-shape/src/constant.js +0 -10
  1314. package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
  1315. package/dist/node_modules/d3-shape/src/curve/basis.js +0 -49
  1316. package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
  1317. package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -50
  1318. package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
  1319. package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -46
  1320. package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
  1321. package/dist/node_modules/d3-shape/src/curve/bump.js +0 -40
  1322. package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
  1323. package/dist/node_modules/d3-shape/src/curve/linear.js +0 -36
  1324. package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
  1325. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -25
  1326. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
  1327. package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -94
  1328. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
  1329. package/dist/node_modules/d3-shape/src/curve/natural.js +0 -39
  1330. package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
  1331. package/dist/node_modules/d3-shape/src/curve/step.js +0 -47
  1332. package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
  1333. package/dist/node_modules/d3-shape/src/line.js +0 -30
  1334. package/dist/node_modules/d3-shape/src/line.js.map +0 -1
  1335. package/dist/node_modules/d3-shape/src/math.js +0 -8
  1336. package/dist/node_modules/d3-shape/src/math.js.map +0 -1
  1337. package/dist/node_modules/d3-shape/src/noop.js +0 -6
  1338. package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
  1339. package/dist/node_modules/d3-shape/src/offset/expand.js +0 -15
  1340. package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
  1341. package/dist/node_modules/d3-shape/src/offset/none.js +0 -8
  1342. package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
  1343. package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -15
  1344. package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
  1345. package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -21
  1346. package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
  1347. package/dist/node_modules/d3-shape/src/order/none.js +0 -9
  1348. package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
  1349. package/dist/node_modules/d3-shape/src/path.js +0 -19
  1350. package/dist/node_modules/d3-shape/src/path.js.map +0 -1
  1351. package/dist/node_modules/d3-shape/src/point.js +0 -11
  1352. package/dist/node_modules/d3-shape/src/point.js.map +0 -1
  1353. package/dist/node_modules/d3-shape/src/stack.js +0 -34
  1354. package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
  1355. package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -10
  1356. package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
  1357. package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -10
  1358. package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
  1359. package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -10
  1360. package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
  1361. package/dist/node_modules/d3-shape/src/symbol/square.js +0 -10
  1362. package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
  1363. package/dist/node_modules/d3-shape/src/symbol/star.js +0 -15
  1364. package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
  1365. package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -10
  1366. package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
  1367. package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -10
  1368. package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
  1369. package/dist/node_modules/d3-shape/src/symbol.js +0 -23
  1370. package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
  1371. package/dist/node_modules/d3-time/src/day.js +0 -21
  1372. package/dist/node_modules/d3-time/src/day.js.map +0 -1
  1373. package/dist/node_modules/d3-time/src/duration.js +0 -6
  1374. package/dist/node_modules/d3-time/src/duration.js.map +0 -1
  1375. package/dist/node_modules/d3-time/src/hour.js +0 -19
  1376. package/dist/node_modules/d3-time/src/hour.js.map +0 -1
  1377. package/dist/node_modules/d3-time/src/interval.js +0 -28
  1378. package/dist/node_modules/d3-time/src/interval.js.map +0 -1
  1379. package/dist/node_modules/d3-time/src/millisecond.js +0 -14
  1380. package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
  1381. package/dist/node_modules/d3-time/src/minute.js +0 -19
  1382. package/dist/node_modules/d3-time/src/minute.js.map +0 -1
  1383. package/dist/node_modules/d3-time/src/month.js +0 -18
  1384. package/dist/node_modules/d3-time/src/month.js.map +0 -1
  1385. package/dist/node_modules/d3-time/src/second.js +0 -13
  1386. package/dist/node_modules/d3-time/src/second.js.map +0 -1
  1387. package/dist/node_modules/d3-time/src/ticks.js +0 -125
  1388. package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
  1389. package/dist/node_modules/d3-time/src/week.js +0 -25
  1390. package/dist/node_modules/d3-time/src/week.js.map +0 -1
  1391. package/dist/node_modules/d3-time/src/year.js +0 -26
  1392. package/dist/node_modules/d3-time/src/year.js.map +0 -1
  1393. package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -62
  1394. package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
  1395. package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
  1396. package/dist/node_modules/internmap/src/index.js +0 -40
  1397. package/dist/node_modules/internmap/src/index.js.map +0 -1
  1398. package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +0 -1
  1399. package/dist/translations/en.d.ts.map +0 -1
  1400. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RevenueDashboardPage.js","names":[],"sources":["../../../src/devportal/pages/RevenueDashboardPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useMemo, useState } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Line,\n LineChart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport {\n AlertCircle,\n ArrowDownToLine,\n Banknote,\n Building2,\n Check,\n CreditCard,\n DollarSign,\n Link2,\n Loader2,\n Send,\n Wallet,\n} from \"lucide-react\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { useIsSellerSection } from \"../hooks/useIsSellerSection\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { DataTable } from \"../components/DataTable\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { StatCard, StatCardGrid } from \"../components/StatCard\";\nimport { StatusBadge } from \"../components/StatusBadge\";\nimport type { DeveloperOrganization } from \"../types\";\nimport { DevPortalPaymentMethodType } from \"../../generated/global-types\";\nimport {\n type GetMyOrganizationsQuery,\n type GetPaymentMethodsQuery,\n type GetRevenueDashboardDataQuery,\n getErrorMessage,\n useAddPaymentMethodMutation,\n useGetBillingAccountsByOrgQuery,\n useGetMyOrganizationsQuery,\n useGetPaymentMethodsQuery,\n useGetRevenueDashboardDataQuery,\n useLinkDevOrgBillingAccountMutation,\n useRequestPayoutMutation,\n} from \"../hooks\";\nimport { cn } from \"../utils/cn\";\nimport { formatCurrency } from \"../utils/currency\";\nimport { useTr } from \"../utils/i18n\";\n\n// Real business rule (devportal's createDeveloperOrgPayoutRequest resolver,\n// sales.ts) — kept in sync here so the button can be disabled with a clear\n// reason up front instead of letting the request round-trip and fail.\nconst MIN_PAYOUT_THRESHOLD = 100;\n\ntype TimeRange = \"30d\" | \"90d\" | \"12m\";\n\nconst chartColors = {\n primary: \"var(--color-chart-1)\",\n secondary: \"var(--color-chart-2)\",\n tertiary: \"var(--color-chart-4)\",\n};\n\ntype RevenueSale =\n GetRevenueDashboardDataQuery[\"developerOrgSales\"][\"edges\"][number][\"node\"];\ntype RevenuePayout =\n GetRevenueDashboardDataQuery[\"developerOrgPayouts\"][\"edges\"][number][\"node\"];\n\nconst daysByRange: Record<TimeRange, number> = {\n \"30d\": 30,\n \"90d\": 90,\n \"12m\": 365,\n};\n\nexport const RevenueDashboardPage: FC = () => {\n const tr = useTr();\n const {\n activeOrgId: activeDigitalOrgId,\n activePhysicalOrgId,\n tenantId,\n } = useDevportal();\n const isSeller = useIsSellerSection();\n // Shared page for both kinds — reads whichever active-org slot matches the\n // section it's reached from (seller portal vs regular devportal). Every\n // existing `activeOrgId` reference below keeps working unchanged. See\n // DeveloperOrgKind (BOFF-7285).\n const activeOrgId = isSeller ? activePhysicalOrgId : activeDigitalOrgId;\n const [timeRange, setTimeRange] = useState<TimeRange>(\"90d\");\n const [linkingBilling, setLinkingBilling] = useState(false);\n const [linkBillingError, setLinkBillingError] = useState<string | null>(null);\n\n const [linkBillingAccount] = useLinkDevOrgBillingAccountMutation();\n const [showBillingPicker, setShowBillingPicker] = useState(false);\n const [selectedBillingAccountId, setSelectedBillingAccountId] = useState<\n string | null\n >(null);\n const [searchParams] = useSearchParams();\n const now = useMemo(() => new Date(), []);\n\n // Request Withdrawal (BOFF-7192) — the actual withdrawal executes on\n // billing's side (requestPayout mirrors a canonical PayoutRequest there);\n // this panel only starts that request and, if needed, collects a payout\n // method first.\n const [showWithdrawPanel, setShowWithdrawPanel] = useState(false);\n const [withdrawError, setWithdrawError] = useState<string | null>(null);\n const [selectedPaymentMethodId, setSelectedPaymentMethodId] = useState<\n string | null\n >(null);\n const [showAddMethodForm, setShowAddMethodForm] = useState(false);\n const [newMethodType, setNewMethodType] =\n useState<DevPortalPaymentMethodType>(\n DevPortalPaymentMethodType.BankAccount,\n );\n const [newMethodName, setNewMethodName] = useState(\"\");\n const [newMethodAccountNumber, setNewMethodAccountNumber] = useState(\"\");\n const [newMethodRoutingNumber, setNewMethodRoutingNumber] = useState(\"\");\n const [newMethodEmail, setNewMethodEmail] = useState(\"\");\n const [addMethodError, setAddMethodError] = useState<string | null>(null);\n\n const { data: paymentMethodsData, loading: paymentMethodsLoading } =\n useGetPaymentMethodsQuery({\n variables: { organizationId: activeOrgId ?? \"\" },\n skip: !activeOrgId,\n fetchPolicy: \"cache-and-network\",\n });\n const [addPaymentMethod, { loading: addingMethod }] =\n useAddPaymentMethodMutation();\n const [requestPayout, { loading: requestingWithdraw }] =\n useRequestPayoutMutation();\n\n const { data: billingAccountsData, loading: billingAccountsLoading } =\n useGetBillingAccountsByOrgQuery({\n fetchPolicy: \"cache-and-network\",\n context: { headers: { \"x-org-id\": tenantId ?? \"\" } },\n });\n // searchParams kept for deep-link compatibility (URL ?org= still works via OrgSwitcher auto-select)\n void searchParams;\n const startDate = useMemo(() => {\n const nextDate = new Date(now);\n nextDate.setDate(nextDate.getDate() - daysByRange[timeRange]);\n return nextDate.toISOString();\n }, [now, timeRange]);\n\n const {\n data: organizationsData,\n loading: organizationsLoading,\n error: organizationsError,\n } = useGetMyOrganizationsQuery({\n fetchPolicy: \"cache-and-network\",\n });\n const { data, loading, error } = useGetRevenueDashboardDataQuery({\n variables: {\n organizationId: activeOrgId ?? \"\",\n period: \"monthly\",\n startDate,\n endDate: now.toISOString(),\n salesLimit: 10,\n salesOffset: 0,\n payoutsLimit: 10,\n payoutsOffset: 0,\n },\n skip: !activeOrgId,\n fetchPolicy: \"cache-and-network\",\n });\n\n const organizations: DeveloperOrganization[] = useMemo(\n () =>\n organizationsData?.myDeveloperOrganizations?.map(\n (\n organization: GetMyOrganizationsQuery[\"myDeveloperOrganizations\"][number],\n ) => organization as unknown as DeveloperOrganization,\n ) ?? [],\n [organizationsData?.myDeveloperOrganizations],\n );\n\n const selectedOrganization = organizations.find(\n (organization) => organization.id === activeOrgId,\n );\n\n type BillingAccount = NonNullable<\n typeof billingAccountsData\n >[\"getBillingAccountsByOrg\"][number];\n const existingBillingAccounts: BillingAccount[] =\n billingAccountsData?.getBillingAccountsByOrg ?? [];\n\n const linkedBillingAccount =\n existingBillingAccounts.find(\n (a) => a.id === selectedOrganization?.billingAccountId,\n ) ?? null;\n\n const handleOpenBillingPicker = () => {\n // Pre-select the currently linked account; fall back to default or first\n setSelectedBillingAccountId(\n selectedOrganization?.billingAccountId ??\n existingBillingAccounts.find((a) => a.isDefault)?.id ??\n existingBillingAccounts[0]?.id ??\n null,\n );\n setShowBillingPicker(true);\n };\n\n const handleLinkExisting = async () => {\n if (!activeOrgId || !selectedBillingAccountId) return;\n setLinkingBilling(true);\n setLinkBillingError(null);\n try {\n await linkBillingAccount({\n variables: {\n organizationId: activeOrgId,\n billingAccountId: selectedBillingAccountId,\n },\n refetchQueries: [\"GetMyOrganizations\"],\n });\n setShowBillingPicker(false);\n } catch (err) {\n setLinkBillingError(\n err instanceof Error ? err.message : \"Failed to link billing account\",\n );\n } finally {\n setLinkingBilling(false);\n }\n };\n\n type PaymentMethod =\n GetPaymentMethodsQuery[\"developerOrgPaymentMethods\"][number];\n const paymentMethods: PaymentMethod[] =\n paymentMethodsData?.developerOrgPaymentMethods ?? [];\n const activePaymentMethods = paymentMethods.filter(\n (method: PaymentMethod) => method.isActive,\n );\n\n const handleOpenWithdrawPanel = () => {\n const defaultMethod =\n activePaymentMethods.find((method: PaymentMethod) => method.isDefault) ??\n activePaymentMethods[0];\n setSelectedPaymentMethodId(defaultMethod?.id ?? null);\n setShowAddMethodForm(activePaymentMethods.length === 0);\n setAddMethodError(null);\n setWithdrawError(null);\n setShowWithdrawPanel(true);\n };\n\n const handleAddPaymentMethod = async () => {\n if (!activeOrgId) return;\n setAddMethodError(null);\n const isPaypal = newMethodType === DevPortalPaymentMethodType.Paypal;\n const accountDetails = isPaypal\n ? { email: newMethodEmail }\n : {\n accountNumber: newMethodAccountNumber,\n routingNumber: newMethodRoutingNumber,\n };\n try {\n const result = await addPaymentMethod({\n variables: {\n organizationId: activeOrgId,\n input: {\n type: newMethodType,\n name: newMethodName || (isPaypal ? \"PayPal\" : \"Bank Account\"),\n accountDetails,\n isDefault: activePaymentMethods.length === 0,\n },\n },\n refetchQueries: [\"GetPaymentMethods\"],\n });\n const created = result.data?.addDeveloperOrgPaymentMethod;\n if (created) {\n setSelectedPaymentMethodId(created.id);\n }\n setShowAddMethodForm(false);\n setNewMethodName(\"\");\n setNewMethodAccountNumber(\"\");\n setNewMethodRoutingNumber(\"\");\n setNewMethodEmail(\"\");\n } catch (err) {\n setAddMethodError(\n err instanceof Error ? err.message : \"Failed to add payout method\",\n );\n }\n };\n\n const handleRequestWithdrawal = async () => {\n if (!activeOrgId || !selectedPaymentMethodId) return;\n setWithdrawError(null);\n try {\n await requestPayout({\n variables: {\n organizationId: activeOrgId,\n paymentMethodId: selectedPaymentMethodId,\n },\n refetchQueries: [\"GetRevenueDashboardData\"],\n });\n setShowWithdrawPanel(false);\n } catch (err) {\n setWithdrawError(\n err instanceof Error ? err.message : \"Failed to request withdrawal\",\n );\n }\n };\n\n const summary = data?.developerOrgRevenueSummary;\n const canRequestWithdrawal =\n (summary?.pendingBalance ?? 0) >= MIN_PAYOUT_THRESHOLD;\n const analytics = [...(data?.developerOrgRevenueAnalytics ?? [])].sort(\n (left, right) =>\n new Date(left.date).getTime() - new Date(right.date).getTime(),\n );\n const sales: RevenueSale[] =\n data?.developerOrgSales?.edges?.map(\n (\n edge: GetRevenueDashboardDataQuery[\"developerOrgSales\"][\"edges\"][number],\n ) => edge.node,\n ) ?? [];\n const payouts: RevenuePayout[] =\n data?.developerOrgPayouts?.edges?.map(\n (\n edge: GetRevenueDashboardDataQuery[\"developerOrgPayouts\"][\"edges\"][number],\n ) => edge.node,\n ) ?? [];\n\n const chartData = analytics.map((entry) => ({\n date: new Date(entry.date).toLocaleDateString(undefined, {\n month: \"short\",\n day: \"numeric\",\n }),\n grossRevenue: entry.grossRevenue,\n netRevenue: entry.netRevenue,\n platformFees: entry.platformFees,\n refunds: entry.refunds,\n salesCount: entry.salesCount,\n }));\n\n if (organizationsLoading && !organizationsData) {\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={tr(\n \"devportal.revenue.description\",\n \"Track real revenue, sales, and payout activity for your developer organizations\",\n )}\n >\n <div className=\"flex items-center justify-center py-16 text-text-secondary\">\n <Loader2 className=\"h-8 w-8 animate-spin\" />\n </div>\n </PageLayout>\n );\n }\n\n if (organizationsError) {\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={tr(\n \"devportal.revenue.description\",\n \"Track real revenue, sales, and payout activity for your developer organizations\",\n )}\n >\n <EmptyState\n icon={<AlertCircle size={32} className=\"text-status-error-text\" />}\n title={tr(\n \"devportal.revenue.errorLoadOrgs\",\n \"Unable to load organizations\",\n )}\n description={getErrorMessage(organizationsError)}\n />\n </PageLayout>\n );\n }\n\n if (!activeOrgId) {\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={tr(\n \"devportal.revenue.description\",\n \"Track real revenue, sales, and payout activity for your developer organizations\",\n )}\n >\n <EmptyState\n illustration=\"empty-people\"\n icon={<Building2 size={32} className=\"text-text-secondary\" />}\n title={tr(\n \"devportal.revenue.selectOrgTitle\",\n \"Select an organization\",\n )}\n description={tr(\n \"devportal.revenue.selectOrgHint\",\n \"Use the organization switcher in the nav bar above to choose which organization's revenue to view.\",\n )}\n />\n </PageLayout>\n );\n }\n\n if (error) {\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={tr(\n \"devportal.revenue.description\",\n \"Track real revenue, sales, and payout activity for your developer organizations\",\n )}\n >\n <EmptyState\n icon={<AlertCircle size={32} className=\"text-status-error-text\" />}\n title={tr(\n \"devportal.revenue.errorLoadData\",\n \"Unable to load revenue data\",\n )}\n description={getErrorMessage(error)}\n />\n </PageLayout>\n );\n }\n\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={\n selectedOrganization\n ? `${tr(\"devportal.revenue.financialPerformanceFor\", \"Financial performance for\")} ${selectedOrganization.name}`\n : tr(\n \"devportal.revenue.shortDescription\",\n \"Track revenue, sales, and payouts\",\n )\n }\n purpose={tr(\n \"devportal.revenue.purpose\",\n \"Revenue tracks the money your paid apps earn — gross sales, platform fees, and what gets paid out to your organization. Link a billing account, then use this to reconcile payouts and watch growth across time ranges.\",\n )}\n actions={\n <div className=\"flex flex-wrap gap-2\">\n <select\n value={timeRange}\n onChange={(event) => setTimeRange(event.target.value as TimeRange)}\n aria-label={tr(\n \"devportal.revenue.selectRangeAria\",\n \"Select time range\",\n )}\n className=\"rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary\"\n >\n <option value=\"30d\">\n {tr(\"devportal.revenue.range.30d\", \"Last 30 days\")}\n </option>\n <option value=\"90d\">\n {tr(\"devportal.revenue.range.90d\", \"Last 90 days\")}\n </option>\n <option value=\"12m\">\n {tr(\"devportal.revenue.range.12m\", \"Last 12 months\")}\n </option>\n </select>\n </div>\n }\n >\n {/* Billing account link banner for orgs not yet linked */}\n {selectedOrganization && !selectedOrganization.billingAccountId && (\n <div className=\"mb-6 rounded-card border border-border-seam bg-status-info-bg-subtle p-4 flex flex-col gap-3\">\n <div className=\"flex items-start gap-3\">\n <Link2\n size={20}\n className=\"text-accent-blue flex-shrink-0 mt-0.5\"\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-status-info-text\">\n {tr(\n \"devportal.revenue.billingNotLinkedTitle\",\n \"Link a billing account to receive store revenue\",\n )}\n </p>\n <p className=\"mt-1 text-sm text-status-info-text\">\n {tr(\n \"devportal.revenue.billingNotLinkedDesc\",\n \"Once linked, net earnings from app sales will appear in your billing credits — you can spend them on platform services or withdraw to your bank.\",\n )}\n </p>\n {linkBillingError && (\n <p className=\"mt-2 text-sm text-status-error-text\">\n {linkBillingError}\n </p>\n )}\n </div>\n <button\n type=\"button\"\n onClick={handleOpenBillingPicker}\n disabled={linkingBilling || billingAccountsLoading}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50 flex-shrink-0\"\n >\n {linkingBilling || billingAccountsLoading ? (\n <Loader2 size={14} className=\"animate-spin\" />\n ) : (\n <Link2 size={14} />\n )}\n {linkingBilling\n ? tr(\"devportal.revenue.linking\", \"Linking...\")\n : tr(\n \"devportal.revenue.linkBillingAccount\",\n \"Link Billing Account\",\n )}\n </button>\n </div>\n\n {/* No billing accounts message */}\n {showBillingPicker && existingBillingAccounts.length === 0 && (\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 ml-8 text-sm text-text-secondary\">\n {tr(\n \"devportal.revenue.noBillingAccounts\",\n \"You don't have any billing accounts yet. Create one from your account billing settings first.\",\n )}\n </div>\n )}\n\n {/* Billing account picker — shown when user has existing accounts */}\n {showBillingPicker && existingBillingAccounts.length > 0 && (\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 ml-8 space-y-3\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.chooseBillingAccount\",\n \"Choose a billing account to link\",\n )}\n </p>\n <div className=\"space-y-2\">\n {existingBillingAccounts.map((account) => (\n <button\n key={account.id}\n type=\"button\"\n onClick={() =>\n setSelectedBillingAccountId(account.id ?? null)\n }\n className={cn(\n \"flex w-full items-center gap-3 rounded-md border px-3 py-2.5 text-sm text-left transition-colors\",\n selectedBillingAccountId === account.id\n ? \"border-primary bg-action-primary-bg/5 text-text-primary\"\n : \"border-border-subtle hover:bg-accent text-text-primary\",\n )}\n >\n <Check\n size={14}\n className={cn(\n \"flex-shrink-0\",\n selectedBillingAccountId === account.id\n ? \"opacity-100 text-primary\"\n : \"opacity-0\",\n )}\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">{account.name}</p>\n {account.isDefault && (\n <p className=\"text-xs text-text-secondary\">\n {tr(\"devportal.revenue.defaultAccount\", \"Default\")}\n </p>\n )}\n </div>\n </button>\n ))}\n </div>\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <button\n type=\"button\"\n onClick={() => {\n setShowBillingPicker(false);\n setLinkBillingError(null);\n }}\n className=\"rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-accent transition-colors\"\n >\n {tr(\"devportal.cancel\", \"Cancel\")}\n </button>\n <button\n type=\"button\"\n disabled={linkingBilling || !selectedBillingAccountId}\n onClick={() => void handleLinkExisting()}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50\"\n >\n {linkingBilling ? (\n <Loader2 size={13} className=\"animate-spin\" />\n ) : (\n <Link2 size={13} />\n )}\n {tr(\"devportal.revenue.confirm\", \"Confirm\")}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n\n {/* Linked billing account info — shown when billing is already linked */}\n {selectedOrganization?.billingAccountId && (\n <div className=\"mb-6 rounded-lg border border-border-subtle bg-bg-surface p-3 flex flex-col gap-3\">\n <div className=\"flex items-center gap-3\">\n <CreditCard\n size={16}\n className=\"text-text-secondary flex-shrink-0\"\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium truncate\">\n {linkedBillingAccount?.name ??\n tr(\"devportal.revenue.billingAccount\", \"Billing account\")}\n </p>\n <p className=\"text-xs text-text-secondary truncate\">\n {linkedBillingAccount\n ? `${linkedBillingAccount.currency}${linkedBillingAccount.email ? ` · ${linkedBillingAccount.email}` : \"\"}`\n : selectedOrganization.billingAccountId}\n </p>\n </div>\n {!showBillingPicker && (\n <button\n type=\"button\"\n onClick={handleOpenBillingPicker}\n disabled={billingAccountsLoading}\n className=\"text-xs text-text-secondary hover:text-text-primary transition-colors flex-shrink-0 disabled:opacity-50\"\n >\n {tr(\"devportal.revenue.changeBillingAccount\", \"Change\")}\n </button>\n )}\n </div>\n {/* Picker for changing the linked account */}\n {showBillingPicker && existingBillingAccounts.length > 0 && (\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 space-y-3\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.chooseBillingAccount\",\n \"Choose a billing account to link\",\n )}\n </p>\n <div className=\"space-y-2\">\n {existingBillingAccounts.map((account) => (\n <button\n key={account.id}\n type=\"button\"\n onClick={() =>\n setSelectedBillingAccountId(account.id ?? null)\n }\n className={cn(\n \"flex w-full items-center gap-3 rounded-md border px-3 py-2.5 text-sm text-left transition-colors\",\n selectedBillingAccountId === account.id\n ? \"border-primary bg-action-primary-bg/5 text-text-primary\"\n : \"border-border-subtle hover:bg-accent text-text-primary\",\n )}\n >\n <Check\n size={14}\n className={cn(\n \"flex-shrink-0\",\n selectedBillingAccountId === account.id\n ? \"opacity-100 text-primary\"\n : \"opacity-0\",\n )}\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">{account.name}</p>\n {account.isDefault && (\n <p className=\"text-xs text-text-secondary\">\n {tr(\"devportal.revenue.defaultAccount\", \"Default\")}\n </p>\n )}\n </div>\n </button>\n ))}\n </div>\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <button\n type=\"button\"\n onClick={() => {\n setShowBillingPicker(false);\n setLinkBillingError(null);\n }}\n className=\"rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-accent transition-colors\"\n >\n {tr(\"devportal.cancel\", \"Cancel\")}\n </button>\n <button\n type=\"button\"\n disabled={linkingBilling || !selectedBillingAccountId}\n onClick={() => void handleLinkExisting()}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50\"\n >\n {linkingBilling ? (\n <Loader2 size={13} className=\"animate-spin\" />\n ) : (\n <Link2 size={13} />\n )}\n {tr(\"devportal.revenue.confirm\", \"Confirm\")}\n </button>\n </div>\n {linkBillingError && (\n <p className=\"text-xs text-status-error-text\">\n {linkBillingError}\n </p>\n )}\n </div>\n )}\n </div>\n )}\n\n {/* Request Withdrawal (BOFF-7192) — only once billing is linked; the\n actual money movement happens on billing's side. */}\n {selectedOrganization?.billingAccountId && summary && (\n <div className=\"mb-6 rounded-lg border border-border-subtle bg-bg-surface p-3 flex flex-col gap-3\">\n <div className=\"flex items-center gap-3\">\n <Banknote size={16} className=\"text-text-secondary flex-shrink-0\" />\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.withdrawTitle\",\n \"Withdraw earned credits\",\n )}\n </p>\n <p className=\"text-xs text-text-secondary\">\n {canRequestWithdrawal\n ? `${tr(\"devportal.revenue.available\", \"Available\")}: ${formatCurrency(summary.pendingBalance, summary.currency)}`\n : `${tr(\"devportal.revenue.belowMinimum\", \"Minimum payout is\")} $${MIN_PAYOUT_THRESHOLD} — ${tr(\"devportal.revenue.youHave\", \"you have\")} ${formatCurrency(summary.pendingBalance, summary.currency)} ${tr(\"devportal.revenue.pending\", \"pending\")}.`}\n </p>\n </div>\n {!showWithdrawPanel && (\n <button\n type=\"button\"\n onClick={handleOpenWithdrawPanel}\n disabled={!canRequestWithdrawal}\n title={\n canRequestWithdrawal\n ? undefined\n : tr(\n \"devportal.revenue.belowMinimumHint\",\n `Payouts require a pending balance of at least $${MIN_PAYOUT_THRESHOLD}.`,\n )\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex-shrink-0\"\n >\n <Send size={14} />\n {tr(\n \"devportal.revenue.requestWithdrawal\",\n \"Request Withdrawal\",\n )}\n </button>\n )}\n </div>\n\n {showWithdrawPanel && (\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 ml-8 space-y-3\">\n {paymentMethodsLoading ? (\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Loader2 size={14} className=\"animate-spin\" />\n {tr(\n \"devportal.revenue.loadingMethods\",\n \"Loading payout methods...\",\n )}\n </div>\n ) : showAddMethodForm ? (\n <div className=\"space-y-3\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.addPayoutMethod\",\n \"Add a payout method\",\n )}\n </p>\n <div className=\"grid grid-cols-2 gap-2\">\n <button\n type=\"button\"\n onClick={() =>\n setNewMethodType(DevPortalPaymentMethodType.BankAccount)\n }\n className={cn(\n \"rounded-md border px-3 py-2 text-sm text-left transition-colors\",\n newMethodType === DevPortalPaymentMethodType.BankAccount\n ? \"border-primary bg-action-primary-bg/5\"\n : \"border-border-subtle hover:bg-accent\",\n )}\n >\n {tr(\"devportal.revenue.bankAccount\", \"Bank Account\")}\n </button>\n <button\n type=\"button\"\n onClick={() =>\n setNewMethodType(DevPortalPaymentMethodType.Paypal)\n }\n className={cn(\n \"rounded-md border px-3 py-2 text-sm text-left transition-colors\",\n newMethodType === DevPortalPaymentMethodType.Paypal\n ? \"border-primary bg-action-primary-bg/5\"\n : \"border-border-subtle hover:bg-accent\",\n )}\n >\n {tr(\"devportal.revenue.paypal\", \"PayPal\")}\n </button>\n </div>\n\n <input\n type=\"text\"\n value={newMethodName}\n onChange={(event) => setNewMethodName(event.target.value)}\n placeholder={tr(\n \"devportal.revenue.methodNamePlaceholder\",\n 'Label (e.g. \"Primary account\")',\n )}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n\n {newMethodType === DevPortalPaymentMethodType.Paypal ? (\n <input\n type=\"email\"\n value={newMethodEmail}\n onChange={(event) =>\n setNewMethodEmail(event.target.value)\n }\n placeholder={tr(\n \"devportal.revenue.paypalEmailPlaceholder\",\n \"PayPal email\",\n )}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n ) : (\n <>\n <input\n type=\"text\"\n value={newMethodAccountNumber}\n onChange={(event) =>\n setNewMethodAccountNumber(event.target.value)\n }\n placeholder={tr(\n \"devportal.revenue.accountNumberPlaceholder\",\n \"Account number\",\n )}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n <input\n type=\"text\"\n value={newMethodRoutingNumber}\n onChange={(event) =>\n setNewMethodRoutingNumber(event.target.value)\n }\n placeholder={tr(\n \"devportal.revenue.routingNumberPlaceholder\",\n \"Routing number\",\n )}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </>\n )}\n\n {addMethodError && (\n <p className=\"text-xs text-status-error-text\">\n {addMethodError}\n </p>\n )}\n\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <button\n type=\"button\"\n onClick={() => setShowWithdrawPanel(false)}\n className=\"rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-accent transition-colors\"\n >\n {tr(\"devportal.cancel\", \"Cancel\")}\n </button>\n <button\n type=\"button\"\n disabled={\n addingMethod ||\n (newMethodType === DevPortalPaymentMethodType.Paypal\n ? !newMethodEmail\n : !newMethodAccountNumber)\n }\n onClick={() => void handleAddPaymentMethod()}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50\"\n >\n {addingMethod ? (\n <Loader2 size={13} className=\"animate-spin\" />\n ) : (\n <Check size={13} />\n )}\n {tr(\"devportal.revenue.saveMethod\", \"Save method\")}\n </button>\n </div>\n </div>\n ) : (\n <div className=\"space-y-3\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.chooseMethod\",\n \"Choose where to send this payout\",\n )}\n </p>\n <div className=\"space-y-2\">\n {activePaymentMethods.map((method: PaymentMethod) => (\n <button\n key={method.id}\n type=\"button\"\n onClick={() => setSelectedPaymentMethodId(method.id)}\n className={cn(\n \"flex w-full items-center gap-3 rounded-md border px-3 py-2.5 text-sm text-left transition-colors\",\n selectedPaymentMethodId === method.id\n ? \"border-primary bg-action-primary-bg/5 text-text-primary\"\n : \"border-border-subtle hover:bg-accent text-text-primary\",\n )}\n >\n <Check\n size={14}\n className={cn(\n \"flex-shrink-0\",\n selectedPaymentMethodId === method.id\n ? \"opacity-100 text-primary\"\n : \"opacity-0\",\n )}\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">\n {method.displayName ?? method.name}\n </p>\n {method.isDefault && (\n <p className=\"text-xs text-text-secondary\">\n {tr(\n \"devportal.revenue.defaultAccount\",\n \"Default\",\n )}\n </p>\n )}\n </div>\n </button>\n ))}\n <button\n type=\"button\"\n onClick={() => setShowAddMethodForm(true)}\n className=\"w-full rounded-md border border-dashed border-border-subtle px-3 py-2 text-sm text-text-secondary hover:bg-accent transition-colors\"\n >\n +{\" \"}\n {tr(\n \"devportal.revenue.addAnotherMethod\",\n \"Add a different method\",\n )}\n </button>\n </div>\n\n {withdrawError && (\n <p className=\"text-xs text-status-error-text\">\n {withdrawError}\n </p>\n )}\n\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <button\n type=\"button\"\n onClick={() => setShowWithdrawPanel(false)}\n className=\"rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-accent transition-colors\"\n >\n {tr(\"devportal.cancel\", \"Cancel\")}\n </button>\n <button\n type=\"button\"\n disabled={requestingWithdraw || !selectedPaymentMethodId}\n onClick={() => void handleRequestWithdrawal()}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50\"\n >\n {requestingWithdraw ? (\n <Loader2 size={13} className=\"animate-spin\" />\n ) : (\n <Send size={13} />\n )}\n {tr(\"devportal.revenue.confirmWithdrawal\", \"Request\")}{\" \"}\n {formatCurrency(summary.pendingBalance, summary.currency)}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n\n {loading && !summary ? (\n <div className=\"flex items-center justify-center py-16 text-text-secondary\">\n <Loader2 className=\"h-8 w-8 animate-spin\" />\n </div>\n ) : summary ? (\n <>\n <EmphasisPanel className=\"mb-6\">\n <StatCardGrid columns={4}>\n <StatCard\n title={tr(\"devportal.revenue.grossRevenue\", \"Gross Revenue\")}\n value={formatCurrency(\n summary.totalGrossRevenue,\n summary.currency,\n )}\n icon={<DollarSign size={20} />}\n />\n <StatCard\n title={tr(\"devportal.revenue.netRevenue\", \"Net Revenue\")}\n value={formatCurrency(\n summary.totalNetRevenue,\n summary.currency,\n )}\n icon={<Wallet size={20} />}\n />\n <StatCard\n title={tr(\n \"devportal.revenue.pendingBalance\",\n \"Pending Balance\",\n )}\n value={formatCurrency(summary.pendingBalance, summary.currency)}\n icon={<CreditCard size={20} />}\n description={\n summary.nextPayoutDate\n ? `${tr(\"devportal.revenue.nextPayout\", \"Next payout\")} ${new Date(summary.nextPayoutDate).toLocaleDateString()}`\n : tr(\n \"devportal.revenue.noPayoutScheduled\",\n \"No payout scheduled\",\n )\n }\n />\n <StatCard\n title={tr(\"devportal.revenue.platformFees\", \"Platform Fees\")}\n value={formatCurrency(\n summary.totalPlatformFees,\n summary.currency,\n )}\n icon={<ArrowDownToLine size={20} />}\n description={`${summary.totalRefundsCount} ${tr(\"devportal.revenue.refunds\", \"refunds\")}`}\n />\n </StatCardGrid>\n </EmphasisPanel>\n\n <div className=\"grid gap-6 xl:grid-cols-2\">\n <PageSection\n title={tr(\"devportal.revenue.revenueTrend\", \"Revenue trend\")}\n >\n <GlassCard treatment=\"insight\" className=\"p-4\">\n {chartData.length > 0 ? (\n <ResponsiveContainer width=\"100%\" height={300}>\n <LineChart data={chartData}>\n <CartesianGrid\n strokeDasharray=\"3 3\"\n stroke=\"var(--color-chart-grid)\"\n />\n <XAxis\n dataKey=\"date\"\n stroke=\"var(--color-chart-axis)\"\n fontSize={12}\n />\n <YAxis stroke=\"var(--color-chart-axis)\" fontSize={12} />\n <Tooltip\n contentStyle={{\n backgroundColor: \"var(--color-card)\",\n border: \"1px solid var(--color-border-default)\",\n borderRadius: 12,\n }}\n />\n <Line\n type=\"monotone\"\n dataKey=\"grossRevenue\"\n stroke={chartColors.primary}\n strokeWidth={2}\n dot={false}\n />\n <Line\n type=\"monotone\"\n dataKey=\"netRevenue\"\n stroke={chartColors.secondary}\n strokeWidth={2}\n dot={false}\n />\n </LineChart>\n </ResponsiveContainer>\n ) : (\n <div className=\"flex h-[300px] flex-col items-center justify-center gap-2 text-text-secondary\">\n <p className=\"text-sm font-medium\">\n {tr(\"devportal.revenue.noTrendData\", \"No trend data yet\")}\n </p>\n <p className=\"text-xs text-text-tertiary\">\n {tr(\n \"devportal.revenue.noTrendDataHint\",\n \"Revenue trend appears once daily analytics have been aggregated.\",\n )}\n </p>\n </div>\n )}\n </GlassCard>\n </PageSection>\n\n <PageSection\n title={tr(\n \"devportal.revenue.topApps\",\n \"Top applications by revenue\",\n )}\n >\n {summary.topApps.length > 0 ? (\n <div className=\"space-y-2\">\n {summary.topApps.map(\n (\n application: GetRevenueDashboardDataQuery[\"developerOrgRevenueSummary\"][\"topApps\"][number],\n ) => (\n <GlassCard\n key={application.applicationId}\n treatment=\"insight\"\n className=\"border-border-seam p-4\"\n >\n <div className=\"flex items-start justify-between gap-3\">\n <div>\n <p className=\"font-medium\">\n {application.applicationName}\n </p>\n <p className=\"text-sm text-text-secondary\">\n {application.salesCount}{\" \"}\n {tr(\"devportal.revenue.sales\", \"sales\")}\n </p>\n </div>\n <div className=\"text-right\">\n <p className=\"font-semibold\">\n {formatCurrency(\n application.grossRevenue,\n application.currency,\n )}\n </p>\n <p className=\"text-sm text-text-secondary\">\n {tr(\"devportal.revenue.net\", \"Net\")}{\" \"}\n {formatCurrency(\n application.netRevenue,\n application.currency,\n )}\n </p>\n </div>\n </div>\n </GlassCard>\n ),\n )}\n </div>\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Building2 size={24} />}\n title={tr(\n \"devportal.revenue.noLeadersTitle\",\n \"No revenue leaders yet\",\n )}\n description={tr(\n \"devportal.revenue.noLeadersDescription\",\n \"Top-performing applications will appear here once revenue is recorded.\",\n )}\n />\n )}\n </PageSection>\n </div>\n\n <PageSection\n title={tr(\"devportal.revenue.salesVolume\", \"Sales volume\")}\n >\n <GlassCard treatment=\"insight\" className=\"p-4\">\n {chartData.length > 0 ? (\n <ResponsiveContainer width=\"100%\" height={280}>\n <BarChart data={chartData}>\n <CartesianGrid\n strokeDasharray=\"3 3\"\n stroke=\"var(--color-chart-grid)\"\n />\n <XAxis\n dataKey=\"date\"\n stroke=\"var(--color-chart-axis)\"\n fontSize={12}\n />\n <YAxis stroke=\"var(--color-chart-axis)\" fontSize={12} />\n <Tooltip\n contentStyle={{\n backgroundColor: \"var(--color-card)\",\n border: \"1px solid var(--color-border-default)\",\n borderRadius: 12,\n }}\n />\n <Bar\n dataKey=\"salesCount\"\n fill={chartColors.tertiary}\n radius={[6, 6, 0, 0]}\n />\n </BarChart>\n </ResponsiveContainer>\n ) : (\n <div className=\"flex h-[280px] flex-col items-center justify-center gap-2 text-text-secondary\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.noVolumeData\",\n \"No sales volume data yet\",\n )}\n </p>\n <p className=\"text-xs text-text-tertiary\">\n {tr(\n \"devportal.revenue.noVolumeDataHint\",\n \"Sales volume by period appears once analytics have been aggregated.\",\n )}\n </p>\n </div>\n )}\n </GlassCard>\n </PageSection>\n\n <div className=\"grid gap-6 xl:grid-cols-2\">\n <PageSection\n title={tr(\"devportal.revenue.recentSales\", \"Recent sales\")}\n >\n <DataTable\n data={sales}\n keyField=\"id\"\n columns={[\n {\n key: \"application\",\n header: tr(\"devportal.revenue.application\", \"Application\"),\n render: (sale) =>\n sale.application?.name ||\n sale.planName ||\n tr(\"devportal.common.unknown\", \"Unknown\"),\n },\n {\n key: \"grossAmount\",\n header: tr(\"devportal.revenue.gross\", \"Gross\"),\n render: (sale) =>\n formatCurrency(sale.grossAmount, sale.currency),\n },\n {\n key: \"netAmount\",\n header: tr(\"devportal.revenue.net\", \"Net\"),\n render: (sale) =>\n formatCurrency(sale.netAmount, sale.currency),\n },\n {\n key: \"status\",\n header: tr(\"devportal.revenue.status\", \"Status\"),\n render: (sale) => (\n <StatusBadge status={sale.status} type=\"app\" />\n ),\n },\n ]}\n />\n </PageSection>\n\n <PageSection\n title={tr(\"devportal.revenue.payoutHistory\", \"Payout history\")}\n >\n <DataTable\n data={payouts}\n keyField=\"id\"\n columns={[\n {\n key: \"periodLabel\",\n header: tr(\"devportal.revenue.period\", \"Period\"),\n render: (payout) => payout.periodLabel,\n },\n {\n key: \"netAmount\",\n header: tr(\"devportal.revenue.netPayout\", \"Net payout\"),\n render: (payout) =>\n formatCurrency(payout.netAmount, payout.currency),\n },\n {\n key: \"status\",\n header: tr(\"devportal.revenue.status\", \"Status\"),\n render: (payout) => (\n <StatusBadge status={payout.status} type=\"app\" />\n ),\n },\n ]}\n />\n </PageSection>\n </div>\n </>\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n icon={<DollarSign size={32} />}\n title={tr(\"devportal.revenue.noDataTitle\", \"No revenue data yet\")}\n description={tr(\n \"devportal.revenue.noDataDescription\",\n \"Revenue metrics will appear after this organization starts recording marketplace sales.\",\n )}\n />\n )}\n </PageLayout>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"RevenueDashboardPage.js","names":["EmptyState","_Fragment","EmptyState$1","MIN_PAYOUT_THRESHOLD","chartColors","daysByRange","RevenueDashboardPage","tr","useTr","activeDigitalOrgId","useDevportal","activeOrgId","useIsSellerSection","activePhysicalOrgId","timeRange","setTimeRange","useState","linkingBilling","setLinkingBilling","linkBillingError","setLinkBillingError","linkBillingAccount","useLinkDevOrgBillingAccountMutation","showBillingPicker","setShowBillingPicker","selectedBillingAccountId","setSelectedBillingAccountId","searchParams","useSearchParams","now","useMemo","showWithdrawPanel","setShowWithdrawPanel","withdrawError","setWithdrawError","selectedPaymentMethodId","setSelectedPaymentMethodId","showAddMethodForm","setShowAddMethodForm","newMethodType","setNewMethodType","DevPortalPaymentMethodType","newMethodName","setNewMethodName","newMethodAccountNumber","setNewMethodAccountNumber","newMethodRoutingNumber","setNewMethodRoutingNumber","newMethodEmail","setNewMethodEmail","addMethodError","setAddMethodError","paymentMethodsData","paymentMethodsLoading","useGetPaymentMethodsQuery","addPaymentMethod","addingMethod","useAddPaymentMethodMutation","requestPayout","requestingWithdraw","useRequestPayoutMutation","billingAccountsData","billingAccountsLoading","useGetBillingAccountsByOrgQuery","tenantId","startDate","nextDate","organizationsData","organizationsLoading","organizationsError","useGetMyOrganizationsQuery","useGetRevenueDashboardDataQuery","selectedOrganization","organization","existingBillingAccounts","linkedBillingAccount","a","handleOpenBillingPicker","handleLinkExisting","err","activePaymentMethods","method","handleOpenWithdrawPanel","defaultMethod","handleAddPaymentMethod","isPaypal","accountDetails","created","handleRequestWithdrawal","summary","data","canRequestWithdrawal","analytics","left","right","sales","edge","payouts","chartData","entry","PageLayout","Loader2","AlertCircle","getErrorMessage","error","event","Link2","account","cn","Check","CreditCard","Banknote","formatCurrency","Send","Fragment","loading","EmphasisPanel","StatCardGrid","StatCard","DollarSign","Wallet","ArrowDownToLine","PageSection","GlassCard","ResponsiveContainer","LineChart","CartesianGrid","XAxis","YAxis","Tooltip","Line","application","Building2","BarChart","Bar","DataTable","sale","StatusBadge","payout"],"sources":["../../../src/devportal/pages/RevenueDashboardPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useMemo, useState } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Line,\n LineChart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport {\n AlertCircle,\n ArrowDownToLine,\n Banknote,\n Building2,\n Check,\n CreditCard,\n DollarSign,\n Link2,\n Loader2,\n Send,\n Wallet,\n} from \"lucide-react\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { useIsSellerSection } from \"../hooks/useIsSellerSection\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { DataTable } from \"../components/DataTable\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { StatCard, StatCardGrid } from \"../components/StatCard\";\nimport { StatusBadge } from \"../components/StatusBadge\";\nimport type { DeveloperOrganization } from \"../types\";\nimport { DevPortalPaymentMethodType } from \"../../generated/global-types\";\nimport {\n type GetMyOrganizationsQuery,\n type GetPaymentMethodsQuery,\n type GetRevenueDashboardDataQuery,\n getErrorMessage,\n useAddPaymentMethodMutation,\n useGetBillingAccountsByOrgQuery,\n useGetMyOrganizationsQuery,\n useGetPaymentMethodsQuery,\n useGetRevenueDashboardDataQuery,\n useLinkDevOrgBillingAccountMutation,\n useRequestPayoutMutation,\n} from \"../hooks\";\nimport { cn } from \"../utils/cn\";\nimport { formatCurrency } from \"../utils/currency\";\nimport { useTr } from \"../utils/i18n\";\n\n// Real business rule (devportal's createDeveloperOrgPayoutRequest resolver,\n// sales.ts) — kept in sync here so the button can be disabled with a clear\n// reason up front instead of letting the request round-trip and fail.\nconst MIN_PAYOUT_THRESHOLD = 100;\n\ntype TimeRange = \"30d\" | \"90d\" | \"12m\";\n\nconst chartColors = {\n primary: \"var(--color-chart-1)\",\n secondary: \"var(--color-chart-2)\",\n tertiary: \"var(--color-chart-4)\",\n};\n\ntype RevenueSale =\n GetRevenueDashboardDataQuery[\"developerOrgSales\"][\"edges\"][number][\"node\"];\ntype RevenuePayout =\n GetRevenueDashboardDataQuery[\"developerOrgPayouts\"][\"edges\"][number][\"node\"];\n\nconst daysByRange: Record<TimeRange, number> = {\n \"30d\": 30,\n \"90d\": 90,\n \"12m\": 365,\n};\n\nexport const RevenueDashboardPage: FC = () => {\n const tr = useTr();\n const {\n activeOrgId: activeDigitalOrgId,\n activePhysicalOrgId,\n tenantId,\n } = useDevportal();\n const isSeller = useIsSellerSection();\n // Shared page for both kinds — reads whichever active-org slot matches the\n // section it's reached from (seller portal vs regular devportal). Every\n // existing `activeOrgId` reference below keeps working unchanged. See\n // DeveloperOrgKind (BOFF-7285).\n const activeOrgId = isSeller ? activePhysicalOrgId : activeDigitalOrgId;\n const [timeRange, setTimeRange] = useState<TimeRange>(\"90d\");\n const [linkingBilling, setLinkingBilling] = useState(false);\n const [linkBillingError, setLinkBillingError] = useState<string | null>(null);\n\n const [linkBillingAccount] = useLinkDevOrgBillingAccountMutation();\n const [showBillingPicker, setShowBillingPicker] = useState(false);\n const [selectedBillingAccountId, setSelectedBillingAccountId] = useState<\n string | null\n >(null);\n const [searchParams] = useSearchParams();\n const now = useMemo(() => new Date(), []);\n\n // Request Withdrawal (BOFF-7192) — the actual withdrawal executes on\n // billing's side (requestPayout mirrors a canonical PayoutRequest there);\n // this panel only starts that request and, if needed, collects a payout\n // method first.\n const [showWithdrawPanel, setShowWithdrawPanel] = useState(false);\n const [withdrawError, setWithdrawError] = useState<string | null>(null);\n const [selectedPaymentMethodId, setSelectedPaymentMethodId] = useState<\n string | null\n >(null);\n const [showAddMethodForm, setShowAddMethodForm] = useState(false);\n const [newMethodType, setNewMethodType] =\n useState<DevPortalPaymentMethodType>(\n DevPortalPaymentMethodType.BankAccount,\n );\n const [newMethodName, setNewMethodName] = useState(\"\");\n const [newMethodAccountNumber, setNewMethodAccountNumber] = useState(\"\");\n const [newMethodRoutingNumber, setNewMethodRoutingNumber] = useState(\"\");\n const [newMethodEmail, setNewMethodEmail] = useState(\"\");\n const [addMethodError, setAddMethodError] = useState<string | null>(null);\n\n const { data: paymentMethodsData, loading: paymentMethodsLoading } =\n useGetPaymentMethodsQuery({\n variables: { organizationId: activeOrgId ?? \"\" },\n skip: !activeOrgId,\n fetchPolicy: \"cache-and-network\",\n });\n const [addPaymentMethod, { loading: addingMethod }] =\n useAddPaymentMethodMutation();\n const [requestPayout, { loading: requestingWithdraw }] =\n useRequestPayoutMutation();\n\n const { data: billingAccountsData, loading: billingAccountsLoading } =\n useGetBillingAccountsByOrgQuery({\n fetchPolicy: \"cache-and-network\",\n context: { headers: { \"x-org-id\": tenantId ?? \"\" } },\n });\n // searchParams kept for deep-link compatibility (URL ?org= still works via OrgSwitcher auto-select)\n void searchParams;\n const startDate = useMemo(() => {\n const nextDate = new Date(now);\n nextDate.setDate(nextDate.getDate() - daysByRange[timeRange]);\n return nextDate.toISOString();\n }, [now, timeRange]);\n\n const {\n data: organizationsData,\n loading: organizationsLoading,\n error: organizationsError,\n } = useGetMyOrganizationsQuery({\n fetchPolicy: \"cache-and-network\",\n });\n const { data, loading, error } = useGetRevenueDashboardDataQuery({\n variables: {\n organizationId: activeOrgId ?? \"\",\n period: \"monthly\",\n startDate,\n endDate: now.toISOString(),\n salesLimit: 10,\n salesOffset: 0,\n payoutsLimit: 10,\n payoutsOffset: 0,\n },\n skip: !activeOrgId,\n fetchPolicy: \"cache-and-network\",\n });\n\n const organizations: DeveloperOrganization[] = useMemo(\n () =>\n organizationsData?.myDeveloperOrganizations?.map(\n (\n organization: GetMyOrganizationsQuery[\"myDeveloperOrganizations\"][number],\n ) => organization as unknown as DeveloperOrganization,\n ) ?? [],\n [organizationsData?.myDeveloperOrganizations],\n );\n\n const selectedOrganization = organizations.find(\n (organization) => organization.id === activeOrgId,\n );\n\n type BillingAccount = NonNullable<\n typeof billingAccountsData\n >[\"getBillingAccountsByOrg\"][number];\n const existingBillingAccounts: BillingAccount[] =\n billingAccountsData?.getBillingAccountsByOrg ?? [];\n\n const linkedBillingAccount =\n existingBillingAccounts.find(\n (a) => a.id === selectedOrganization?.billingAccountId,\n ) ?? null;\n\n const handleOpenBillingPicker = () => {\n // Pre-select the currently linked account; fall back to default or first\n setSelectedBillingAccountId(\n selectedOrganization?.billingAccountId ??\n existingBillingAccounts.find((a) => a.isDefault)?.id ??\n existingBillingAccounts[0]?.id ??\n null,\n );\n setShowBillingPicker(true);\n };\n\n const handleLinkExisting = async () => {\n if (!activeOrgId || !selectedBillingAccountId) return;\n setLinkingBilling(true);\n setLinkBillingError(null);\n try {\n await linkBillingAccount({\n variables: {\n organizationId: activeOrgId,\n billingAccountId: selectedBillingAccountId,\n },\n refetchQueries: [\"GetMyOrganizations\"],\n });\n setShowBillingPicker(false);\n } catch (err) {\n setLinkBillingError(\n err instanceof Error ? err.message : \"Failed to link billing account\",\n );\n } finally {\n setLinkingBilling(false);\n }\n };\n\n type PaymentMethod =\n GetPaymentMethodsQuery[\"developerOrgPaymentMethods\"][number];\n const paymentMethods: PaymentMethod[] =\n paymentMethodsData?.developerOrgPaymentMethods ?? [];\n const activePaymentMethods = paymentMethods.filter(\n (method: PaymentMethod) => method.isActive,\n );\n\n const handleOpenWithdrawPanel = () => {\n const defaultMethod =\n activePaymentMethods.find((method: PaymentMethod) => method.isDefault) ??\n activePaymentMethods[0];\n setSelectedPaymentMethodId(defaultMethod?.id ?? null);\n setShowAddMethodForm(activePaymentMethods.length === 0);\n setAddMethodError(null);\n setWithdrawError(null);\n setShowWithdrawPanel(true);\n };\n\n const handleAddPaymentMethod = async () => {\n if (!activeOrgId) return;\n setAddMethodError(null);\n const isPaypal = newMethodType === DevPortalPaymentMethodType.Paypal;\n const accountDetails = isPaypal\n ? { email: newMethodEmail }\n : {\n accountNumber: newMethodAccountNumber,\n routingNumber: newMethodRoutingNumber,\n };\n try {\n const result = await addPaymentMethod({\n variables: {\n organizationId: activeOrgId,\n input: {\n type: newMethodType,\n name: newMethodName || (isPaypal ? \"PayPal\" : \"Bank Account\"),\n accountDetails,\n isDefault: activePaymentMethods.length === 0,\n },\n },\n refetchQueries: [\"GetPaymentMethods\"],\n });\n const created = result.data?.addDeveloperOrgPaymentMethod;\n if (created) {\n setSelectedPaymentMethodId(created.id);\n }\n setShowAddMethodForm(false);\n setNewMethodName(\"\");\n setNewMethodAccountNumber(\"\");\n setNewMethodRoutingNumber(\"\");\n setNewMethodEmail(\"\");\n } catch (err) {\n setAddMethodError(\n err instanceof Error ? err.message : \"Failed to add payout method\",\n );\n }\n };\n\n const handleRequestWithdrawal = async () => {\n if (!activeOrgId || !selectedPaymentMethodId) return;\n setWithdrawError(null);\n try {\n await requestPayout({\n variables: {\n organizationId: activeOrgId,\n paymentMethodId: selectedPaymentMethodId,\n },\n refetchQueries: [\"GetRevenueDashboardData\"],\n });\n setShowWithdrawPanel(false);\n } catch (err) {\n setWithdrawError(\n err instanceof Error ? err.message : \"Failed to request withdrawal\",\n );\n }\n };\n\n const summary = data?.developerOrgRevenueSummary;\n const canRequestWithdrawal =\n (summary?.pendingBalance ?? 0) >= MIN_PAYOUT_THRESHOLD;\n const analytics = [...(data?.developerOrgRevenueAnalytics ?? [])].sort(\n (left, right) =>\n new Date(left.date).getTime() - new Date(right.date).getTime(),\n );\n const sales: RevenueSale[] =\n data?.developerOrgSales?.edges?.map(\n (\n edge: GetRevenueDashboardDataQuery[\"developerOrgSales\"][\"edges\"][number],\n ) => edge.node,\n ) ?? [];\n const payouts: RevenuePayout[] =\n data?.developerOrgPayouts?.edges?.map(\n (\n edge: GetRevenueDashboardDataQuery[\"developerOrgPayouts\"][\"edges\"][number],\n ) => edge.node,\n ) ?? [];\n\n const chartData = analytics.map((entry) => ({\n date: new Date(entry.date).toLocaleDateString(undefined, {\n month: \"short\",\n day: \"numeric\",\n }),\n grossRevenue: entry.grossRevenue,\n netRevenue: entry.netRevenue,\n platformFees: entry.platformFees,\n refunds: entry.refunds,\n salesCount: entry.salesCount,\n }));\n\n if (organizationsLoading && !organizationsData) {\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={tr(\n \"devportal.revenue.description\",\n \"Track real revenue, sales, and payout activity for your developer organizations\",\n )}\n >\n <div className=\"flex items-center justify-center py-16 text-text-secondary\">\n <Loader2 className=\"h-8 w-8 animate-spin\" />\n </div>\n </PageLayout>\n );\n }\n\n if (organizationsError) {\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={tr(\n \"devportal.revenue.description\",\n \"Track real revenue, sales, and payout activity for your developer organizations\",\n )}\n >\n <EmptyState\n icon={<AlertCircle size={32} className=\"text-status-error-text\" />}\n title={tr(\n \"devportal.revenue.errorLoadOrgs\",\n \"Unable to load organizations\",\n )}\n description={getErrorMessage(organizationsError)}\n />\n </PageLayout>\n );\n }\n\n if (!activeOrgId) {\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={tr(\n \"devportal.revenue.description\",\n \"Track real revenue, sales, and payout activity for your developer organizations\",\n )}\n >\n <EmptyState\n illustration=\"empty-people\"\n icon={<Building2 size={32} className=\"text-text-secondary\" />}\n title={tr(\n \"devportal.revenue.selectOrgTitle\",\n \"Select an organization\",\n )}\n description={tr(\n \"devportal.revenue.selectOrgHint\",\n \"Use the organization switcher in the nav bar above to choose which organization's revenue to view.\",\n )}\n />\n </PageLayout>\n );\n }\n\n if (error) {\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={tr(\n \"devportal.revenue.description\",\n \"Track real revenue, sales, and payout activity for your developer organizations\",\n )}\n >\n <EmptyState\n icon={<AlertCircle size={32} className=\"text-status-error-text\" />}\n title={tr(\n \"devportal.revenue.errorLoadData\",\n \"Unable to load revenue data\",\n )}\n description={getErrorMessage(error)}\n />\n </PageLayout>\n );\n }\n\n return (\n <PageLayout\n title={tr(\"devportal.revenue.title\", \"Revenue\")}\n description={\n selectedOrganization\n ? `${tr(\"devportal.revenue.financialPerformanceFor\", \"Financial performance for\")} ${selectedOrganization.name}`\n : tr(\n \"devportal.revenue.shortDescription\",\n \"Track revenue, sales, and payouts\",\n )\n }\n purpose={tr(\n \"devportal.revenue.purpose\",\n \"Revenue tracks the money your paid apps earn — gross sales, platform fees, and what gets paid out to your organization. Link a billing account, then use this to reconcile payouts and watch growth across time ranges.\",\n )}\n actions={\n <div className=\"flex flex-wrap gap-2\">\n <select\n value={timeRange}\n onChange={(event) => setTimeRange(event.target.value as TimeRange)}\n aria-label={tr(\n \"devportal.revenue.selectRangeAria\",\n \"Select time range\",\n )}\n className=\"rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary\"\n >\n <option value=\"30d\">\n {tr(\"devportal.revenue.range.30d\", \"Last 30 days\")}\n </option>\n <option value=\"90d\">\n {tr(\"devportal.revenue.range.90d\", \"Last 90 days\")}\n </option>\n <option value=\"12m\">\n {tr(\"devportal.revenue.range.12m\", \"Last 12 months\")}\n </option>\n </select>\n </div>\n }\n >\n {/* Billing account link banner for orgs not yet linked */}\n {selectedOrganization && !selectedOrganization.billingAccountId && (\n <div className=\"mb-6 rounded-card border border-border-seam bg-status-info-bg-subtle p-4 flex flex-col gap-3\">\n <div className=\"flex items-start gap-3\">\n <Link2\n size={20}\n className=\"text-accent-blue flex-shrink-0 mt-0.5\"\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-status-info-text\">\n {tr(\n \"devportal.revenue.billingNotLinkedTitle\",\n \"Link a billing account to receive store revenue\",\n )}\n </p>\n <p className=\"mt-1 text-sm text-status-info-text\">\n {tr(\n \"devportal.revenue.billingNotLinkedDesc\",\n \"Once linked, net earnings from app sales will appear in your billing credits — you can spend them on platform services or withdraw to your bank.\",\n )}\n </p>\n {linkBillingError && (\n <p className=\"mt-2 text-sm text-status-error-text\">\n {linkBillingError}\n </p>\n )}\n </div>\n <button\n type=\"button\"\n onClick={handleOpenBillingPicker}\n disabled={linkingBilling || billingAccountsLoading}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50 flex-shrink-0\"\n >\n {linkingBilling || billingAccountsLoading ? (\n <Loader2 size={14} className=\"animate-spin\" />\n ) : (\n <Link2 size={14} />\n )}\n {linkingBilling\n ? tr(\"devportal.revenue.linking\", \"Linking...\")\n : tr(\n \"devportal.revenue.linkBillingAccount\",\n \"Link Billing Account\",\n )}\n </button>\n </div>\n\n {/* No billing accounts message */}\n {showBillingPicker && existingBillingAccounts.length === 0 && (\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 ml-8 text-sm text-text-secondary\">\n {tr(\n \"devportal.revenue.noBillingAccounts\",\n \"You don't have any billing accounts yet. Create one from your account billing settings first.\",\n )}\n </div>\n )}\n\n {/* Billing account picker — shown when user has existing accounts */}\n {showBillingPicker && existingBillingAccounts.length > 0 && (\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 ml-8 space-y-3\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.chooseBillingAccount\",\n \"Choose a billing account to link\",\n )}\n </p>\n <div className=\"space-y-2\">\n {existingBillingAccounts.map((account) => (\n <button\n key={account.id}\n type=\"button\"\n onClick={() =>\n setSelectedBillingAccountId(account.id ?? null)\n }\n className={cn(\n \"flex w-full items-center gap-3 rounded-md border px-3 py-2.5 text-sm text-left transition-colors\",\n selectedBillingAccountId === account.id\n ? \"border-primary bg-action-primary-bg/5 text-text-primary\"\n : \"border-border-subtle hover:bg-accent text-text-primary\",\n )}\n >\n <Check\n size={14}\n className={cn(\n \"flex-shrink-0\",\n selectedBillingAccountId === account.id\n ? \"opacity-100 text-primary\"\n : \"opacity-0\",\n )}\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">{account.name}</p>\n {account.isDefault && (\n <p className=\"text-xs text-text-secondary\">\n {tr(\"devportal.revenue.defaultAccount\", \"Default\")}\n </p>\n )}\n </div>\n </button>\n ))}\n </div>\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <button\n type=\"button\"\n onClick={() => {\n setShowBillingPicker(false);\n setLinkBillingError(null);\n }}\n className=\"rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-accent transition-colors\"\n >\n {tr(\"devportal.cancel\", \"Cancel\")}\n </button>\n <button\n type=\"button\"\n disabled={linkingBilling || !selectedBillingAccountId}\n onClick={() => void handleLinkExisting()}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50\"\n >\n {linkingBilling ? (\n <Loader2 size={13} className=\"animate-spin\" />\n ) : (\n <Link2 size={13} />\n )}\n {tr(\"devportal.revenue.confirm\", \"Confirm\")}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n\n {/* Linked billing account info — shown when billing is already linked */}\n {selectedOrganization?.billingAccountId && (\n <div className=\"mb-6 rounded-lg border border-border-subtle bg-bg-surface p-3 flex flex-col gap-3\">\n <div className=\"flex items-center gap-3\">\n <CreditCard\n size={16}\n className=\"text-text-secondary flex-shrink-0\"\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium truncate\">\n {linkedBillingAccount?.name ??\n tr(\"devportal.revenue.billingAccount\", \"Billing account\")}\n </p>\n <p className=\"text-xs text-text-secondary truncate\">\n {linkedBillingAccount\n ? `${linkedBillingAccount.currency}${linkedBillingAccount.email ? ` · ${linkedBillingAccount.email}` : \"\"}`\n : selectedOrganization.billingAccountId}\n </p>\n </div>\n {!showBillingPicker && (\n <button\n type=\"button\"\n onClick={handleOpenBillingPicker}\n disabled={billingAccountsLoading}\n className=\"text-xs text-text-secondary hover:text-text-primary transition-colors flex-shrink-0 disabled:opacity-50\"\n >\n {tr(\"devportal.revenue.changeBillingAccount\", \"Change\")}\n </button>\n )}\n </div>\n {/* Picker for changing the linked account */}\n {showBillingPicker && existingBillingAccounts.length > 0 && (\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 space-y-3\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.chooseBillingAccount\",\n \"Choose a billing account to link\",\n )}\n </p>\n <div className=\"space-y-2\">\n {existingBillingAccounts.map((account) => (\n <button\n key={account.id}\n type=\"button\"\n onClick={() =>\n setSelectedBillingAccountId(account.id ?? null)\n }\n className={cn(\n \"flex w-full items-center gap-3 rounded-md border px-3 py-2.5 text-sm text-left transition-colors\",\n selectedBillingAccountId === account.id\n ? \"border-primary bg-action-primary-bg/5 text-text-primary\"\n : \"border-border-subtle hover:bg-accent text-text-primary\",\n )}\n >\n <Check\n size={14}\n className={cn(\n \"flex-shrink-0\",\n selectedBillingAccountId === account.id\n ? \"opacity-100 text-primary\"\n : \"opacity-0\",\n )}\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">{account.name}</p>\n {account.isDefault && (\n <p className=\"text-xs text-text-secondary\">\n {tr(\"devportal.revenue.defaultAccount\", \"Default\")}\n </p>\n )}\n </div>\n </button>\n ))}\n </div>\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <button\n type=\"button\"\n onClick={() => {\n setShowBillingPicker(false);\n setLinkBillingError(null);\n }}\n className=\"rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-accent transition-colors\"\n >\n {tr(\"devportal.cancel\", \"Cancel\")}\n </button>\n <button\n type=\"button\"\n disabled={linkingBilling || !selectedBillingAccountId}\n onClick={() => void handleLinkExisting()}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50\"\n >\n {linkingBilling ? (\n <Loader2 size={13} className=\"animate-spin\" />\n ) : (\n <Link2 size={13} />\n )}\n {tr(\"devportal.revenue.confirm\", \"Confirm\")}\n </button>\n </div>\n {linkBillingError && (\n <p className=\"text-xs text-status-error-text\">\n {linkBillingError}\n </p>\n )}\n </div>\n )}\n </div>\n )}\n\n {/* Request Withdrawal (BOFF-7192) — only once billing is linked; the\n actual money movement happens on billing's side. */}\n {selectedOrganization?.billingAccountId && summary && (\n <div className=\"mb-6 rounded-lg border border-border-subtle bg-bg-surface p-3 flex flex-col gap-3\">\n <div className=\"flex items-center gap-3\">\n <Banknote size={16} className=\"text-text-secondary flex-shrink-0\" />\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.withdrawTitle\",\n \"Withdraw earned credits\",\n )}\n </p>\n <p className=\"text-xs text-text-secondary\">\n {canRequestWithdrawal\n ? `${tr(\"devportal.revenue.available\", \"Available\")}: ${formatCurrency(summary.pendingBalance, summary.currency)}`\n : `${tr(\"devportal.revenue.belowMinimum\", \"Minimum payout is\")} $${MIN_PAYOUT_THRESHOLD} — ${tr(\"devportal.revenue.youHave\", \"you have\")} ${formatCurrency(summary.pendingBalance, summary.currency)} ${tr(\"devportal.revenue.pending\", \"pending\")}.`}\n </p>\n </div>\n {!showWithdrawPanel && (\n <button\n type=\"button\"\n onClick={handleOpenWithdrawPanel}\n disabled={!canRequestWithdrawal}\n title={\n canRequestWithdrawal\n ? undefined\n : tr(\n \"devportal.revenue.belowMinimumHint\",\n `Payouts require a pending balance of at least $${MIN_PAYOUT_THRESHOLD}.`,\n )\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex-shrink-0\"\n >\n <Send size={14} />\n {tr(\n \"devportal.revenue.requestWithdrawal\",\n \"Request Withdrawal\",\n )}\n </button>\n )}\n </div>\n\n {showWithdrawPanel && (\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 ml-8 space-y-3\">\n {paymentMethodsLoading ? (\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Loader2 size={14} className=\"animate-spin\" />\n {tr(\n \"devportal.revenue.loadingMethods\",\n \"Loading payout methods...\",\n )}\n </div>\n ) : showAddMethodForm ? (\n <div className=\"space-y-3\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.addPayoutMethod\",\n \"Add a payout method\",\n )}\n </p>\n <div className=\"grid grid-cols-2 gap-2\">\n <button\n type=\"button\"\n onClick={() =>\n setNewMethodType(DevPortalPaymentMethodType.BankAccount)\n }\n className={cn(\n \"rounded-md border px-3 py-2 text-sm text-left transition-colors\",\n newMethodType === DevPortalPaymentMethodType.BankAccount\n ? \"border-primary bg-action-primary-bg/5\"\n : \"border-border-subtle hover:bg-accent\",\n )}\n >\n {tr(\"devportal.revenue.bankAccount\", \"Bank Account\")}\n </button>\n <button\n type=\"button\"\n onClick={() =>\n setNewMethodType(DevPortalPaymentMethodType.Paypal)\n }\n className={cn(\n \"rounded-md border px-3 py-2 text-sm text-left transition-colors\",\n newMethodType === DevPortalPaymentMethodType.Paypal\n ? \"border-primary bg-action-primary-bg/5\"\n : \"border-border-subtle hover:bg-accent\",\n )}\n >\n {tr(\"devportal.revenue.paypal\", \"PayPal\")}\n </button>\n </div>\n\n <input\n type=\"text\"\n value={newMethodName}\n onChange={(event) => setNewMethodName(event.target.value)}\n placeholder={tr(\n \"devportal.revenue.methodNamePlaceholder\",\n 'Label (e.g. \"Primary account\")',\n )}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n\n {newMethodType === DevPortalPaymentMethodType.Paypal ? (\n <input\n type=\"email\"\n value={newMethodEmail}\n onChange={(event) =>\n setNewMethodEmail(event.target.value)\n }\n placeholder={tr(\n \"devportal.revenue.paypalEmailPlaceholder\",\n \"PayPal email\",\n )}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n ) : (\n <>\n <input\n type=\"text\"\n value={newMethodAccountNumber}\n onChange={(event) =>\n setNewMethodAccountNumber(event.target.value)\n }\n placeholder={tr(\n \"devportal.revenue.accountNumberPlaceholder\",\n \"Account number\",\n )}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n <input\n type=\"text\"\n value={newMethodRoutingNumber}\n onChange={(event) =>\n setNewMethodRoutingNumber(event.target.value)\n }\n placeholder={tr(\n \"devportal.revenue.routingNumberPlaceholder\",\n \"Routing number\",\n )}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </>\n )}\n\n {addMethodError && (\n <p className=\"text-xs text-status-error-text\">\n {addMethodError}\n </p>\n )}\n\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <button\n type=\"button\"\n onClick={() => setShowWithdrawPanel(false)}\n className=\"rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-accent transition-colors\"\n >\n {tr(\"devportal.cancel\", \"Cancel\")}\n </button>\n <button\n type=\"button\"\n disabled={\n addingMethod ||\n (newMethodType === DevPortalPaymentMethodType.Paypal\n ? !newMethodEmail\n : !newMethodAccountNumber)\n }\n onClick={() => void handleAddPaymentMethod()}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50\"\n >\n {addingMethod ? (\n <Loader2 size={13} className=\"animate-spin\" />\n ) : (\n <Check size={13} />\n )}\n {tr(\"devportal.revenue.saveMethod\", \"Save method\")}\n </button>\n </div>\n </div>\n ) : (\n <div className=\"space-y-3\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.chooseMethod\",\n \"Choose where to send this payout\",\n )}\n </p>\n <div className=\"space-y-2\">\n {activePaymentMethods.map((method: PaymentMethod) => (\n <button\n key={method.id}\n type=\"button\"\n onClick={() => setSelectedPaymentMethodId(method.id)}\n className={cn(\n \"flex w-full items-center gap-3 rounded-md border px-3 py-2.5 text-sm text-left transition-colors\",\n selectedPaymentMethodId === method.id\n ? \"border-primary bg-action-primary-bg/5 text-text-primary\"\n : \"border-border-subtle hover:bg-accent text-text-primary\",\n )}\n >\n <Check\n size={14}\n className={cn(\n \"flex-shrink-0\",\n selectedPaymentMethodId === method.id\n ? \"opacity-100 text-primary\"\n : \"opacity-0\",\n )}\n />\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">\n {method.displayName ?? method.name}\n </p>\n {method.isDefault && (\n <p className=\"text-xs text-text-secondary\">\n {tr(\n \"devportal.revenue.defaultAccount\",\n \"Default\",\n )}\n </p>\n )}\n </div>\n </button>\n ))}\n <button\n type=\"button\"\n onClick={() => setShowAddMethodForm(true)}\n className=\"w-full rounded-md border border-dashed border-border-subtle px-3 py-2 text-sm text-text-secondary hover:bg-accent transition-colors\"\n >\n +{\" \"}\n {tr(\n \"devportal.revenue.addAnotherMethod\",\n \"Add a different method\",\n )}\n </button>\n </div>\n\n {withdrawError && (\n <p className=\"text-xs text-status-error-text\">\n {withdrawError}\n </p>\n )}\n\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <button\n type=\"button\"\n onClick={() => setShowWithdrawPanel(false)}\n className=\"rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-accent transition-colors\"\n >\n {tr(\"devportal.cancel\", \"Cancel\")}\n </button>\n <button\n type=\"button\"\n disabled={requestingWithdraw || !selectedPaymentMethodId}\n onClick={() => void handleRequestWithdrawal()}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-1.5 text-xs font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50\"\n >\n {requestingWithdraw ? (\n <Loader2 size={13} className=\"animate-spin\" />\n ) : (\n <Send size={13} />\n )}\n {tr(\"devportal.revenue.confirmWithdrawal\", \"Request\")}{\" \"}\n {formatCurrency(summary.pendingBalance, summary.currency)}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n\n {loading && !summary ? (\n <div className=\"flex items-center justify-center py-16 text-text-secondary\">\n <Loader2 className=\"h-8 w-8 animate-spin\" />\n </div>\n ) : summary ? (\n <>\n <EmphasisPanel className=\"mb-6\">\n <StatCardGrid columns={4}>\n <StatCard\n title={tr(\"devportal.revenue.grossRevenue\", \"Gross Revenue\")}\n value={formatCurrency(\n summary.totalGrossRevenue,\n summary.currency,\n )}\n icon={<DollarSign size={20} />}\n />\n <StatCard\n title={tr(\"devportal.revenue.netRevenue\", \"Net Revenue\")}\n value={formatCurrency(\n summary.totalNetRevenue,\n summary.currency,\n )}\n icon={<Wallet size={20} />}\n />\n <StatCard\n title={tr(\n \"devportal.revenue.pendingBalance\",\n \"Pending Balance\",\n )}\n value={formatCurrency(summary.pendingBalance, summary.currency)}\n icon={<CreditCard size={20} />}\n description={\n summary.nextPayoutDate\n ? `${tr(\"devportal.revenue.nextPayout\", \"Next payout\")} ${new Date(summary.nextPayoutDate).toLocaleDateString()}`\n : tr(\n \"devportal.revenue.noPayoutScheduled\",\n \"No payout scheduled\",\n )\n }\n />\n <StatCard\n title={tr(\"devportal.revenue.platformFees\", \"Platform Fees\")}\n value={formatCurrency(\n summary.totalPlatformFees,\n summary.currency,\n )}\n icon={<ArrowDownToLine size={20} />}\n description={`${summary.totalRefundsCount} ${tr(\"devportal.revenue.refunds\", \"refunds\")}`}\n />\n </StatCardGrid>\n </EmphasisPanel>\n\n <div className=\"grid gap-6 xl:grid-cols-2\">\n <PageSection\n title={tr(\"devportal.revenue.revenueTrend\", \"Revenue trend\")}\n >\n <GlassCard treatment=\"insight\" className=\"p-4\">\n {chartData.length > 0 ? (\n <ResponsiveContainer width=\"100%\" height={300}>\n <LineChart data={chartData}>\n <CartesianGrid\n strokeDasharray=\"3 3\"\n stroke=\"var(--color-chart-grid)\"\n />\n <XAxis\n dataKey=\"date\"\n stroke=\"var(--color-chart-axis)\"\n fontSize={12}\n />\n <YAxis stroke=\"var(--color-chart-axis)\" fontSize={12} />\n <Tooltip\n contentStyle={{\n backgroundColor: \"var(--color-card)\",\n border: \"1px solid var(--color-border-default)\",\n borderRadius: 12,\n }}\n />\n <Line\n type=\"monotone\"\n dataKey=\"grossRevenue\"\n stroke={chartColors.primary}\n strokeWidth={2}\n dot={false}\n />\n <Line\n type=\"monotone\"\n dataKey=\"netRevenue\"\n stroke={chartColors.secondary}\n strokeWidth={2}\n dot={false}\n />\n </LineChart>\n </ResponsiveContainer>\n ) : (\n <div className=\"flex h-[300px] flex-col items-center justify-center gap-2 text-text-secondary\">\n <p className=\"text-sm font-medium\">\n {tr(\"devportal.revenue.noTrendData\", \"No trend data yet\")}\n </p>\n <p className=\"text-xs text-text-tertiary\">\n {tr(\n \"devportal.revenue.noTrendDataHint\",\n \"Revenue trend appears once daily analytics have been aggregated.\",\n )}\n </p>\n </div>\n )}\n </GlassCard>\n </PageSection>\n\n <PageSection\n title={tr(\n \"devportal.revenue.topApps\",\n \"Top applications by revenue\",\n )}\n >\n {summary.topApps.length > 0 ? (\n <div className=\"space-y-2\">\n {summary.topApps.map(\n (\n application: GetRevenueDashboardDataQuery[\"developerOrgRevenueSummary\"][\"topApps\"][number],\n ) => (\n <GlassCard\n key={application.applicationId}\n treatment=\"insight\"\n className=\"border-border-seam p-4\"\n >\n <div className=\"flex items-start justify-between gap-3\">\n <div>\n <p className=\"font-medium\">\n {application.applicationName}\n </p>\n <p className=\"text-sm text-text-secondary\">\n {application.salesCount}{\" \"}\n {tr(\"devportal.revenue.sales\", \"sales\")}\n </p>\n </div>\n <div className=\"text-right\">\n <p className=\"font-semibold\">\n {formatCurrency(\n application.grossRevenue,\n application.currency,\n )}\n </p>\n <p className=\"text-sm text-text-secondary\">\n {tr(\"devportal.revenue.net\", \"Net\")}{\" \"}\n {formatCurrency(\n application.netRevenue,\n application.currency,\n )}\n </p>\n </div>\n </div>\n </GlassCard>\n ),\n )}\n </div>\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Building2 size={24} />}\n title={tr(\n \"devportal.revenue.noLeadersTitle\",\n \"No revenue leaders yet\",\n )}\n description={tr(\n \"devportal.revenue.noLeadersDescription\",\n \"Top-performing applications will appear here once revenue is recorded.\",\n )}\n />\n )}\n </PageSection>\n </div>\n\n <PageSection\n title={tr(\"devportal.revenue.salesVolume\", \"Sales volume\")}\n >\n <GlassCard treatment=\"insight\" className=\"p-4\">\n {chartData.length > 0 ? (\n <ResponsiveContainer width=\"100%\" height={280}>\n <BarChart data={chartData}>\n <CartesianGrid\n strokeDasharray=\"3 3\"\n stroke=\"var(--color-chart-grid)\"\n />\n <XAxis\n dataKey=\"date\"\n stroke=\"var(--color-chart-axis)\"\n fontSize={12}\n />\n <YAxis stroke=\"var(--color-chart-axis)\" fontSize={12} />\n <Tooltip\n contentStyle={{\n backgroundColor: \"var(--color-card)\",\n border: \"1px solid var(--color-border-default)\",\n borderRadius: 12,\n }}\n />\n <Bar\n dataKey=\"salesCount\"\n fill={chartColors.tertiary}\n radius={[6, 6, 0, 0]}\n />\n </BarChart>\n </ResponsiveContainer>\n ) : (\n <div className=\"flex h-[280px] flex-col items-center justify-center gap-2 text-text-secondary\">\n <p className=\"text-sm font-medium\">\n {tr(\n \"devportal.revenue.noVolumeData\",\n \"No sales volume data yet\",\n )}\n </p>\n <p className=\"text-xs text-text-tertiary\">\n {tr(\n \"devportal.revenue.noVolumeDataHint\",\n \"Sales volume by period appears once analytics have been aggregated.\",\n )}\n </p>\n </div>\n )}\n </GlassCard>\n </PageSection>\n\n <div className=\"grid gap-6 xl:grid-cols-2\">\n <PageSection\n title={tr(\"devportal.revenue.recentSales\", \"Recent sales\")}\n >\n <DataTable\n data={sales}\n keyField=\"id\"\n columns={[\n {\n key: \"application\",\n header: tr(\"devportal.revenue.application\", \"Application\"),\n render: (sale) =>\n sale.application?.name ||\n sale.planName ||\n tr(\"devportal.common.unknown\", \"Unknown\"),\n },\n {\n key: \"grossAmount\",\n header: tr(\"devportal.revenue.gross\", \"Gross\"),\n render: (sale) =>\n formatCurrency(sale.grossAmount, sale.currency),\n },\n {\n key: \"netAmount\",\n header: tr(\"devportal.revenue.net\", \"Net\"),\n render: (sale) =>\n formatCurrency(sale.netAmount, sale.currency),\n },\n {\n key: \"status\",\n header: tr(\"devportal.revenue.status\", \"Status\"),\n render: (sale) => (\n <StatusBadge status={sale.status} type=\"app\" />\n ),\n },\n ]}\n />\n </PageSection>\n\n <PageSection\n title={tr(\"devportal.revenue.payoutHistory\", \"Payout history\")}\n >\n <DataTable\n data={payouts}\n keyField=\"id\"\n columns={[\n {\n key: \"periodLabel\",\n header: tr(\"devportal.revenue.period\", \"Period\"),\n render: (payout) => payout.periodLabel,\n },\n {\n key: \"netAmount\",\n header: tr(\"devportal.revenue.netPayout\", \"Net payout\"),\n render: (payout) =>\n formatCurrency(payout.netAmount, payout.currency),\n },\n {\n key: \"status\",\n header: tr(\"devportal.revenue.status\", \"Status\"),\n render: (payout) => (\n <StatusBadge status={payout.status} type=\"app\" />\n ),\n },\n ]}\n />\n </PageSection>\n </div>\n </>\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n icon={<DollarSign size={32} />}\n title={tr(\"devportal.revenue.noDataTitle\", \"No revenue data yet\")}\n description={tr(\n \"devportal.revenue.noDataDescription\",\n \"Revenue metrics will appear after this organization starts recording marketplace sales.\",\n )}\n />\n )}\n </PageLayout>\n );\n};\n"],"mappings":"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"}
@@ -1,4 +1,2 @@
1
1
  import { FC } from 'react';
2
-
3
2
  export declare const RevenueRedirectPage: FC;
4
- //# sourceMappingURL=RevenueRedirectPage.d.ts.map
@@ -1,4 +1,2 @@
1
1
  import { FC } from 'react';
2
-
3
2
  export declare const SellerDashboardPage: FC;
4
- //# sourceMappingURL=SellerDashboardPage.d.ts.map
@@ -1,16 +1,16 @@
1
- import { useDevportal as e } from "../providers/DevportalProvider.js";
1
+ import { PageLayout as e } from "../components/PageLayout.js";
2
2
  import { EmptyState as t } from "../components/EmptyState.js";
3
- import { PageLayout as n } from "../components/PageLayout.js";
3
+ import { useDevportal as n } from "../providers/DevportalProvider.js";
4
4
  import { PermissionGuard as r } from "../components/PermissionGuard.js";
5
5
  import "../components/index.js";
6
- import { resolveGlobalGraphqlEndpoint as i } from "../utils/graphqlEndpoint.js";
7
- import { formatCurrency as a } from "../utils/currency.js";
6
+ import { formatCurrency as i } from "../utils/currency.js";
7
+ import { resolveGlobalGraphqlEndpoint as a } from "../utils/graphqlEndpoint.js";
8
8
  import { useEffect as o, useState as s } from "react";
9
9
  import { ArrowRight as c, Building2 as l, CheckCircle2 as u, Clock as d, DollarSign as f, Loader2 as p, Package as m, Plus as h } from "lucide-react";
10
10
  import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
11
11
  import { useI18n as y } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
12
12
  import { GlassCard as b, GradientText as x } from "@burdenoff/fe-libs/ui";
13
- //#region src/devportal/pages/SellerDashboardPage.tsx
13
+ // src/devportal/pages/SellerDashboardPage.tsx
14
14
  var S = {
15
15
  PUBLISHED: {
16
16
  label: "Published",
@@ -47,10 +47,10 @@ function T(e) {
47
47
  return `query SellerDashboardOrgCurrencies {\n ${e.map((e, t) => `o${t}: developerOrgRevenueSummary(organizationId: ${JSON.stringify(e)}, period: "monthly") { currency }`).join("\n ")}\n }`;
48
48
  }
49
49
  var E = "\n query SellerDashboardProducts($publisherId: String!) {\n products(filter: { publisherId: $publisherId, nature: PHYSICAL }, limit: 3, offset: 0) {\n id\n name\n slug\n type\n status\n price\n currency\n stockQuantity\n icon\n }\n }\n", D = () => {
50
- let { navigate: a, basePath: f, apiGatewayUrl: b, authToken: S } = e(), { t: C } = y(), D = (e, t) => {
50
+ let { navigate: i, basePath: f, apiGatewayUrl: b, authToken: S } = n(), { t: C } = y(), D = (e, t) => {
51
51
  let n = C(e);
52
52
  return n === e ? t : n;
53
- }, M = i(b), [N, P] = s(!0), [F, I] = s(!1), [L, R] = s([]), [z, B] = s(null), [V, H] = s([]), [U, W] = s({});
53
+ }, M = a(b), [N, P] = s(!0), [F, I] = s(!1), [L, R] = s([]), [z, B] = s(null), [V, H] = s([]), [U, W] = s({});
54
54
  o(() => {
55
55
  let e = !1;
56
56
  return P(!0), (async () => {
@@ -92,7 +92,7 @@ var E = "\n query SellerDashboardProducts($publisherId: String!) {\n product
92
92
  if (e) return;
93
93
  let n = await t.json();
94
94
  if (e) return;
95
- let r = new Set([
95
+ let r = /* @__PURE__ */ new Set([
96
96
  "APP",
97
97
  "NODE",
98
98
  "WORKFLOW"
@@ -143,11 +143,11 @@ var E = "\n query SellerDashboardProducts($publisherId: String!) {\n product
143
143
  S
144
144
  ]);
145
145
  let G = N, K = N || F, q = V.length, J = V.filter((e) => e.status === "PENDING_REVIEW").length, Y = V.filter((e) => e.status === "PUBLISHED").length, X = (e) => {
146
- a?.(`${f}${e}`);
146
+ i?.(`${f}${e}`);
147
147
  };
148
148
  return /* @__PURE__ */ _(r, {
149
149
  authOnly: !0,
150
- children: /* @__PURE__ */ _(n, {
150
+ children: /* @__PURE__ */ _(e, {
151
151
  title: /* @__PURE__ */ v(g, { children: [
152
152
  D("devportal.seller", "Seller"),
153
153
  " ",
@@ -313,7 +313,7 @@ var E = "\n query SellerDashboardProducts($publisherId: String!) {\n product
313
313
  })]
314
314
  });
315
315
  }, j = ({ org: e, currency: t, onClick: n }) => {
316
- let { t: r } = y(), i = (e, t) => {
316
+ let { t: r } = y(), a = (e, t) => {
317
317
  let n = r(e);
318
318
  return n === e ? t : n;
319
319
  }, o = e.name.split(" ").map((e) => e[0]).join("").slice(0, 2).toUpperCase();
@@ -347,7 +347,7 @@ var E = "\n query SellerDashboardProducts($publisherId: String!) {\n product
347
347
  children: [
348
348
  e.publishedApps ?? 0,
349
349
  " ",
350
- i("devportal.appsPublished", "apps published")
350
+ a("devportal.appsPublished", "apps published")
351
351
  ]
352
352
  })]
353
353
  }),
@@ -365,16 +365,15 @@ var E = "\n query SellerDashboardProducts($publisherId: String!) {\n product
365
365
  className: "text-text-muted shrink-0"
366
366
  }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
367
367
  className: "text-[11px] text-text-secondary leading-none mb-0.5",
368
- children: i("devportal.revenue", "Revenue")
368
+ children: a("devportal.revenue", "Revenue")
369
369
  }), /* @__PURE__ */ _("p", {
370
370
  className: "text-sm font-semibold tabular-nums",
371
- children: a(e.totalRevenue ?? 0, t)
371
+ children: i(e.totalRevenue ?? 0, t)
372
372
  })] })]
373
373
  })
374
374
  })]
375
375
  });
376
376
  };
377
- //#endregion
378
377
  export { D as SellerDashboardPage };
379
378
 
380
379
  //# sourceMappingURL=SellerDashboardPage.js.map