@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":"EditPhysicalItemPage.js","names":[],"sources":["../../../src/devportal/pages/EditPhysicalItemPage.tsx"],"sourcesContent":["import type { FC, ChangeEvent } from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { useParams } from \"react-router\";\nimport {\n Loader2,\n AlertCircle,\n Info,\n Edit as EditIcon,\n CheckCircle,\n Clock,\n XCircle,\n ImageOff,\n} from \"lucide-react\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport {\n InputField,\n TextareaField,\n SelectField,\n CheckboxField,\n} from \"../components/FormField\";\nimport {\n ImageUploadField,\n ScreenshotGallery,\n} from \"../components/ImageUploadField\";\nimport { DetailList } from \"../components/DataTable\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { usePackageUpload } from \"../hooks/usePackageUpload\";\nimport { cn } from \"../utils/cn\";\nimport { resolveGlobalGraphqlEndpoint } from \"../utils/graphqlEndpoint\";\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\ninterface FormState {\n name: string;\n shortDescription: string;\n longDescription: string;\n price: string;\n currency: string;\n tags: string;\n stockQuantity: string;\n sku: string;\n trackInventory: boolean;\n allowBackorder: boolean;\n lowStockThreshold: string;\n requiresShipping: boolean;\n weightKg: string;\n weightUnit: string;\n length: string;\n width: string;\n height: string;\n dimensionUnit: string;\n brand: string;\n manufacturer: string;\n countryOfOrigin: string;\n warrantyInfo: string;\n returnPolicy: string;\n}\n\n// ─── Constants ────────────────────────────────────────────────────────────────\n\nconst CURRENCIES = [\n { value: \"USD\", label: \"USD — US Dollar\" },\n { value: \"INR\", label: \"INR — Indian Rupee\" },\n { value: \"EUR\", label: \"EUR — Euro\" },\n { value: \"GBP\", label: \"GBP — British Pound\" },\n { value: \"SGD\", label: \"SGD — Singapore Dollar\" },\n { value: \"AED\", label: \"AED — UAE Dirham\" },\n];\n\nconst WEIGHT_UNITS = [\n { value: \"GRAM\", label: \"Grams (g)\" },\n { value: \"KILOGRAM\", label: \"Kilograms (kg)\" },\n { value: \"OUNCE\", label: \"Ounces (oz)\" },\n { value: \"POUND\", label: \"Pounds (lb)\" },\n];\n\nconst DIMENSION_UNITS = [\n { value: \"CENTIMETER\", label: \"Centimeters (cm)\" },\n { value: \"INCH\", label: \"Inches (in)\" },\n { value: \"METER\", label: \"Meters (m)\" },\n];\n\nconst REQUIRED_FIELDS: (keyof FormState)[] = [\n \"name\",\n \"shortDescription\",\n \"price\",\n \"currency\",\n \"stockQuantity\",\n];\n\nconst PRODUCT_TYPE_LABELS: Record<string, string> = {\n MERCHANDISE: \"Merchandise\",\n HARDWARE: \"Hardware\",\n ACCESSORY: \"Accessory\",\n BOOK: \"Book\",\n EQUIPMENT: \"Equipment\",\n APPAREL: \"Apparel\",\n COLLECTIBLE: \"Collectible\",\n CONSUMABLE: \"Consumable\",\n};\n\nconst STATUS_BADGE_STYLES: Record<\n string,\n { label: string; className: string }\n> = {\n PUBLISHED: {\n label: \"Published\",\n className: \"text-status-success-text bg-status-success-bg-subtle\",\n },\n PENDING_REVIEW: {\n label: \"Pending Review\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n DRAFT: {\n label: \"Draft\",\n className: \"text-text-muted bg-bg-muted\",\n },\n REJECTED: {\n label: \"Rejected\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n INACTIVE: {\n label: \"Inactive\",\n className: \"text-text-muted bg-bg-muted\",\n },\n};\n\ntype TabId = \"overview\" | \"edit\";\n\n// ─── GraphQL ──────────────────────────────────────────────────────────────────\n\nconst GET_PRODUCT_QUERY = /* GraphQL */ `\n query GetPhysicalProduct($id: ID!) {\n product(id: $id) {\n id\n name\n slug\n type\n status\n nature\n description\n longDescription\n price\n currency\n tags\n stockQuantity\n sku\n trackInventory\n allowBackorder\n lowStockThreshold\n requiresShipping\n weight\n weightUnit\n length\n width\n height\n dimensionUnit\n brand\n manufacturer\n countryOfOrigin\n warrantyInfo\n returnPolicy\n icon\n bannerUrl\n screenshots\n category\n viewCount\n rating\n reviewCount\n createdAt\n updatedAt\n submittedAt\n reviewedAt\n reviewNotes\n rejectedReason\n publishedAt\n }\n }\n`;\n\nconst UPDATE_PHYSICAL_PRODUCT_MUTATION = /* GraphQL */ `\n mutation UpdatePhysicalProduct(\n $id: ID!\n $input: UpdatePhysicalProductInput!\n ) {\n updatePhysicalProduct(id: $id, input: $input) {\n id\n name\n status\n }\n }\n`;\n\nconst SUBMIT_PRODUCT_MUTATION = /* GraphQL */ `\n mutation SubmitProductForReview($id: ID!, $notes: String) {\n submitProduct(id: $id, notes: $notes) {\n id\n status\n }\n }\n`;\n\n// ─── Helpers ──────────────────────────────────────────────────────────────────\n\nfunction isFormValid(form: FormState): boolean {\n return REQUIRED_FIELDS.every((field) => {\n const value = form[field];\n if (typeof value === \"boolean\") return true;\n return String(value).trim() !== \"\";\n });\n}\n\nconst StatCard: FC<{ label: string; value: string }> = ({ label, value }) => (\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-text-secondary\">{label}</p>\n <p className=\"text-2xl font-bold tabular-nums\">{value}</p>\n </GlassCard>\n);\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport const EditPhysicalItemPage: FC = () => {\n const {\n navigate,\n basePath,\n apiGatewayUrl,\n authToken,\n workspacesGatewayUrl,\n workspaceId,\n getWorkspaceToken,\n } = useDevportal();\n const { itemId } = useParams<{ itemId: string }>();\n\n const endpoint = resolveGlobalGraphqlEndpoint(apiGatewayUrl);\n\n const [loadingProduct, setLoadingProduct] = useState(true);\n const [loadError, setLoadError] = useState<string | null>(null);\n const [productStatus, setProductStatus] = useState<string | null>(null);\n const [activeTab, setActiveTab] = useState<TabId>(\"overview\");\n\n interface OverviewInfo {\n slug: string;\n type: string;\n category: string | null;\n viewCount: number;\n rating: number | null;\n reviewCount: number;\n createdAt: string;\n updatedAt: string;\n submittedAt: string | null;\n reviewedAt: string | null;\n reviewNotes: string | null;\n rejectedReason: string | null;\n publishedAt: string | null;\n }\n const [overview, setOverview] = useState<OverviewInfo | null>(null);\n\n const [form, setForm] = useState<FormState>({\n name: \"\",\n shortDescription: \"\",\n longDescription: \"\",\n price: \"\",\n currency: \"USD\",\n tags: \"\",\n stockQuantity: \"0\",\n sku: \"\",\n trackInventory: true,\n allowBackorder: false,\n lowStockThreshold: \"\",\n requiresShipping: true,\n weightKg: \"\",\n weightUnit: \"KILOGRAM\",\n length: \"\",\n width: \"\",\n height: \"\",\n dimensionUnit: \"CENTIMETER\",\n brand: \"\",\n manufacturer: \"\",\n countryOfOrigin: \"\",\n warrantyInfo: \"\",\n returnPolicy: \"\",\n });\n\n const [icon, setIcon] = useState(\"\");\n const [bannerUrl, setBannerUrl] = useState(\"\");\n const [screenshots, setScreenshots] = useState<string[]>([]);\n const {\n upload: uploadIcon,\n uploading: iconUploading,\n progress: iconProgress,\n error: iconUploadError,\n } = usePackageUpload(\n workspacesGatewayUrl,\n authToken,\n workspaceId,\n getWorkspaceToken,\n \"/DevPortal/Assets\",\n );\n const {\n upload: uploadBanner,\n uploading: bannerUploading,\n progress: bannerProgress,\n error: bannerUploadError,\n } = usePackageUpload(\n workspacesGatewayUrl,\n authToken,\n workspaceId,\n getWorkspaceToken,\n \"/DevPortal/Assets\",\n );\n const {\n upload: uploadScreenshot,\n uploading: screenshotUploading,\n progress: screenshotProgress,\n error: screenshotUploadError,\n } = usePackageUpload(\n workspacesGatewayUrl,\n authToken,\n workspaceId,\n getWorkspaceToken,\n \"/DevPortal/Assets\",\n );\n\n const [saving, setSaving] = useState(false);\n const [saveError, setSaveError] = useState<string | null>(null);\n const [saveSuccess, setSaveSuccess] = useState(false);\n\n const imagesUploading =\n iconUploading || bannerUploading || screenshotUploading;\n const isValid = isFormValid(form) && !imagesUploading;\n\n // ─── GQL helper ───────────────────────────────────────────────────────────\n\n async function gqlFetch<T = unknown>(\n query: string,\n variables?: Record<string, unknown>,\n ): Promise<T> {\n const res = await fetch(endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(authToken ? { Authorization: `Bearer ${authToken}` } : {}),\n },\n credentials: \"include\",\n body: JSON.stringify({ query, variables }),\n });\n const json = (await res.json()) as {\n data?: T;\n errors?: { message: string }[];\n };\n if (json.errors?.length) {\n throw new Error(json.errors.map((e) => e.message).join(\"; \"));\n }\n return json.data as T;\n }\n\n // ─── Load product ─────────────────────────────────────────────────────────\n\n useEffect(() => {\n if (!itemId) return;\n let cancelled = false;\n setLoadingProduct(true);\n setLoadError(null);\n\n const run = async () => {\n try {\n const data = await gqlFetch<{\n product: {\n id: string;\n name: string;\n slug: string;\n type: string;\n status: string;\n description: string | null;\n longDescription: string | null;\n price: number;\n currency: string;\n tags: string[] | null;\n stockQuantity: number;\n sku: string | null;\n trackInventory: boolean | null;\n allowBackorder: boolean | null;\n lowStockThreshold: number | null;\n requiresShipping: boolean | null;\n weight: number | null;\n weightUnit: string | null;\n length: number | null;\n width: number | null;\n height: number | null;\n dimensionUnit: string | null;\n brand: string | null;\n manufacturer: string | null;\n countryOfOrigin: string | null;\n warrantyInfo: string | null;\n returnPolicy: string | null;\n icon: string | null;\n bannerUrl: string | null;\n screenshots: string[] | null;\n category: string | null;\n viewCount: number;\n rating: number | null;\n reviewCount: number;\n createdAt: string;\n updatedAt: string;\n submittedAt: string | null;\n reviewedAt: string | null;\n reviewNotes: string | null;\n rejectedReason: string | null;\n publishedAt: string | null;\n } | null;\n }>(GET_PRODUCT_QUERY, { id: itemId });\n\n if (cancelled) return;\n const p = data.product;\n if (!p) {\n setLoadError(\"Product not found.\");\n return;\n }\n\n setProductStatus(p.status);\n setForm({\n name: p.name,\n shortDescription: p.description ?? \"\",\n longDescription: p.longDescription ?? \"\",\n price: String(p.price),\n currency: p.currency || \"USD\",\n tags: (p.tags ?? []).join(\", \"),\n stockQuantity: String(p.stockQuantity),\n sku: p.sku ?? \"\",\n trackInventory: p.trackInventory ?? true,\n allowBackorder: p.allowBackorder ?? false,\n lowStockThreshold:\n p.lowStockThreshold != null ? String(p.lowStockThreshold) : \"\",\n requiresShipping: p.requiresShipping ?? true,\n weightKg: p.weight != null ? String(p.weight) : \"\",\n weightUnit: p.weightUnit ?? \"KILOGRAM\",\n length: p.length != null ? String(p.length) : \"\",\n width: p.width != null ? String(p.width) : \"\",\n height: p.height != null ? String(p.height) : \"\",\n dimensionUnit: p.dimensionUnit ?? \"CENTIMETER\",\n brand: p.brand ?? \"\",\n manufacturer: p.manufacturer ?? \"\",\n countryOfOrigin: p.countryOfOrigin ?? \"\",\n warrantyInfo: p.warrantyInfo ?? \"\",\n returnPolicy: p.returnPolicy ?? \"\",\n });\n setOverview({\n slug: p.slug,\n type: p.type,\n category: p.category,\n viewCount: p.viewCount,\n rating: p.rating,\n reviewCount: p.reviewCount,\n createdAt: p.createdAt,\n updatedAt: p.updatedAt,\n submittedAt: p.submittedAt,\n reviewedAt: p.reviewedAt,\n reviewNotes: p.reviewNotes,\n rejectedReason: p.rejectedReason,\n publishedAt: p.publishedAt,\n });\n setIcon(p.icon ?? \"\");\n setBannerUrl(p.bannerUrl ?? \"\");\n setScreenshots(p.screenshots ?? []);\n } catch (err) {\n if (!cancelled) {\n setLoadError(\n err instanceof Error ? err.message : \"Failed to load product\",\n );\n }\n } finally {\n if (!cancelled) setLoadingProduct(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemId, endpoint, authToken]);\n\n // ─── Field helpers ────────────────────────────────────────────────────────\n\n const setField = <K extends keyof FormState>(key: K, value: FormState[K]) => {\n setForm((prev) => ({ ...prev, [key]: value }));\n };\n\n const handleCheckboxChange =\n (key: \"trackInventory\" | \"requiresShipping\" | \"allowBackorder\") =>\n (e: ChangeEvent<HTMLInputElement>) => {\n setField(key, e.target.checked);\n };\n\n // ─── Save ─────────────────────────────────────────────────────────────────\n\n const handleSave = async (andResubmit = false) => {\n if (!isValid || saving || !itemId) return;\n setSaving(true);\n setSaveError(null);\n setSaveSuccess(false);\n\n try {\n const parsedTags = form.tags\n .split(\",\")\n .map((t) => t.trim())\n .filter(Boolean);\n const hasDimensions =\n form.length.trim() || form.width.trim() || form.height.trim();\n\n await gqlFetch(UPDATE_PHYSICAL_PRODUCT_MUTATION, {\n id: itemId,\n input: {\n name: form.name.trim(),\n description: form.shortDescription.trim(),\n longDescription: form.longDescription.trim() || null,\n price: parseFloat(form.price),\n currency: form.currency,\n tags: parsedTags.length > 0 ? parsedTags : null,\n stockQuantity: parseInt(form.stockQuantity, 10),\n sku: form.sku.trim() || null,\n trackInventory: form.trackInventory,\n allowBackorder: form.allowBackorder,\n lowStockThreshold: form.lowStockThreshold.trim()\n ? parseInt(form.lowStockThreshold, 10)\n : null,\n requiresShipping: form.requiresShipping,\n weight:\n form.requiresShipping && form.weightKg.trim()\n ? parseFloat(form.weightKg)\n : null,\n weightUnit:\n form.requiresShipping && form.weightKg.trim()\n ? form.weightUnit\n : null,\n length:\n form.requiresShipping && form.length.trim()\n ? parseFloat(form.length)\n : null,\n width:\n form.requiresShipping && form.width.trim()\n ? parseFloat(form.width)\n : null,\n height:\n form.requiresShipping && form.height.trim()\n ? parseFloat(form.height)\n : null,\n dimensionUnit:\n form.requiresShipping && hasDimensions ? form.dimensionUnit : null,\n brand: form.brand.trim() || null,\n manufacturer: form.manufacturer.trim() || null,\n countryOfOrigin: form.countryOfOrigin.trim() || null,\n warrantyInfo: form.warrantyInfo.trim() || null,\n returnPolicy: form.returnPolicy.trim() || null,\n icon: icon || null,\n bannerUrl: bannerUrl || null,\n screenshots: screenshots.length > 0 ? screenshots : null,\n },\n });\n\n if (andResubmit) {\n await gqlFetch(SUBMIT_PRODUCT_MUTATION, {\n id: itemId,\n notes: \"Resubmitted after edits\",\n });\n }\n\n setSaveSuccess(true);\n setTimeout(() => {\n navigate?.(`${basePath}/seller/items`);\n }, 1500);\n } catch (err) {\n setSaveError(\n err instanceof Error ? err.message : \"Save failed. Please try again.\",\n );\n } finally {\n setSaving(false);\n }\n };\n\n // ─── Render ───────────────────────────────────────────────────────────────\n\n if (loadingProduct) {\n return (\n <PageLayout\n title=\"Edit Item\"\n backLink=\"/seller/items\"\n backLabel=\"Back to My Items\"\n >\n <div className=\"flex items-center justify-center py-20\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n </div>\n </PageLayout>\n );\n }\n\n if (loadError) {\n return (\n <PageLayout\n title=\"Edit Item\"\n backLink=\"/seller/items\"\n backLabel=\"Back to My Items\"\n >\n <div className=\"flex items-center gap-3 rounded-lg border border-status-error-border/50 bg-status-error-bg/10 px-4 py-3 text-sm\">\n <AlertCircle size={16} className=\"shrink-0 text-status-error-text\" />\n <span className=\"text-status-error-text\">{loadError}</span>\n </div>\n </PageLayout>\n );\n }\n\n const isDraft = productStatus === \"DRAFT\" || productStatus === \"REJECTED\";\n const canResubmit = isDraft;\n const statusStyle = productStatus\n ? STATUS_BADGE_STYLES[productStatus]\n : undefined;\n\n return (\n <PageLayout\n title={\n <div className=\"flex items-center gap-3\">\n {icon ? (\n <img\n src={icon}\n alt=\"\"\n className=\"h-10 w-10 shrink-0 rounded-input border border-border-subtle object-cover\"\n />\n ) : (\n <div className=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-input border border-border-subtle bg-bg-sunken\">\n <ImageOff size={16} className=\"text-text-muted\" />\n </div>\n )}\n <span>{form.name || \"Item\"}</span>\n </div>\n }\n description={form.shortDescription || undefined}\n purpose=\"Everything about this listing in one place — its performance, its store presence, and its editable details. Use the tabs to review or update it.\"\n backLink=\"/seller/items\"\n backLabel=\"Back to My Items\"\n actions={\n activeTab === \"overview\" ? (\n <button\n type=\"button\"\n onClick={() => setActiveTab(\"edit\")}\n className=\"inline-flex items-center gap-2 rounded-button bg-action-primary-bg px-5 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <EditIcon size={15} />\n Edit Listing\n </button>\n ) : undefined\n }\n >\n <div className=\"space-y-6\">\n {/* Success banner */}\n {saveSuccess && (\n <div className=\"rounded-card border border-status-success-text/30 bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text\">\n Saved successfully! Redirecting to your items...\n </div>\n )}\n\n {/* Error banner */}\n {saveError && (\n <div className=\"rounded-card border border-status-error-text/30 bg-status-error-bg-subtle px-4 py-3 text-sm text-status-error-text\">\n {saveError}\n </div>\n )}\n\n {/* Status badges */}\n <div className=\"flex flex-wrap items-center gap-2\">\n {statusStyle && (\n <span\n className={cn(\n \"inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium\",\n statusStyle.className,\n )}\n >\n {statusStyle.label}\n </span>\n )}\n <span className=\"text-sm text-text-secondary\">\n {PRODUCT_TYPE_LABELS[overview?.type ?? \"\"] || overview?.type}\n </span>\n {overview?.category && (\n <span className=\"rounded-full bg-bg-sunken px-2.5 py-0.5 text-xs text-text-secondary\">\n {overview.category}\n </span>\n )}\n </div>\n\n {/* Status banner */}\n {productStatus === \"PENDING_REVIEW\" && (\n <div className=\"flex items-start gap-3 rounded-lg border border-border-subtle bg-status-warning-bg-subtle p-4\">\n <Clock\n size={18}\n className=\"text-status-warning-text mt-0.5 flex-shrink-0\"\n />\n <div className=\"text-sm\">\n <p className=\"font-medium text-status-warning-text\">\n Under Review\n </p>\n <p className=\"mt-0.5 text-text-secondary\">\n Your listing is being reviewed by our team. You'll be notified\n of the outcome.\n {overview?.submittedAt && (\n <span className=\"ml-1\">\n Submitted{\" \"}\n {new Date(overview.submittedAt).toLocaleDateString()}.\n </span>\n )}\n </p>\n </div>\n </div>\n )}\n {productStatus === \"REJECTED\" && (\n <div className=\"flex items-start gap-3 rounded-lg border border-status-error-bg bg-status-error-bg-subtle p-4\">\n <XCircle\n size={18}\n className=\"text-status-error-text mt-0.5 flex-shrink-0\"\n />\n <div className=\"text-sm\">\n <p className=\"font-medium text-status-error-text\">\n Review Rejected\n </p>\n <p className=\"mt-0.5 text-text-secondary\">\n {overview?.rejectedReason ||\n overview?.reviewNotes ||\n \"Your submission was not approved. Please review the feedback, update your listing, and re-submit.\"}\n </p>\n <button\n type=\"button\"\n onClick={() => setActiveTab(\"edit\")}\n className=\"mt-2 inline-flex items-center gap-1 text-xs font-medium text-primary underline\"\n >\n Edit listing and re-submit →\n </button>\n </div>\n </div>\n )}\n {productStatus === \"PUBLISHED\" && (\n <div className=\"flex items-start gap-3 rounded-lg border border-status-success-bg bg-status-success-bg-subtle p-4\">\n <CheckCircle\n size={18}\n className=\"text-status-success-text mt-0.5 flex-shrink-0\"\n />\n <div className=\"text-sm\">\n <p className=\"font-medium text-status-success-text\">\n Live in the Store\n </p>\n <p className=\"mt-0.5 text-text-secondary\">\n Your listing is published and visible to buyers in the\n marketplace.\n </p>\n </div>\n </div>\n )}\n\n {/* Tabs */}\n <div className=\"border-b\">\n <nav\n className=\"-mb-px flex gap-4 overflow-x-auto\"\n role=\"tablist\"\n aria-label=\"Item sections\"\n >\n {(\n [\n { id: \"overview\" as const, label: \"Overview\" },\n { id: \"edit\" as const, label: \"Edit Listing\" },\n ] satisfies { id: TabId; label: string }[]\n ).map((tab) => (\n <button\n key={tab.id}\n id={`item-tab-${tab.id}`}\n role=\"tab\"\n aria-selected={activeTab === tab.id}\n aria-controls={`item-panel-${tab.id}`}\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n \"flex items-center gap-2 border-b-2 px-1 py-3 text-sm font-medium transition-colors\",\n activeTab === tab.id\n ? \"border-primary text-primary\"\n : \"border-transparent text-text-secondary hover:text-text-primary hover:border-muted-foreground\",\n )}\n >\n {tab.label}\n </button>\n ))}\n </nav>\n </div>\n\n {/* ── Overview tab ── */}\n {activeTab === \"overview\" && (\n <div\n id=\"item-panel-overview\"\n role=\"tabpanel\"\n aria-labelledby=\"item-tab-overview\"\n className=\"grid gap-6 lg:grid-cols-3\"\n >\n <div className=\"lg:col-span-2 space-y-6\">\n <EmphasisPanel>\n <div className=\"grid gap-4 sm:grid-cols-4\">\n <StatCard\n label=\"Price\"\n value={`${form.currency} ${Number(form.price || 0).toFixed(2)}`}\n />\n <StatCard label=\"Stock\" value={form.stockQuantity || \"0\"} />\n <StatCard\n label=\"Views\"\n value={(overview?.viewCount ?? 0).toLocaleString()}\n />\n <StatCard\n label=\"Rating\"\n value={\n overview?.rating\n ? `${overview.rating.toFixed(1)} ★`\n : \"N/A\"\n }\n />\n </div>\n </EmphasisPanel>\n\n <PageSection title=\"Product Images\">\n {icon || bannerUrl || screenshots.length > 0 ? (\n <div className=\"space-y-4\">\n <div className=\"flex flex-wrap gap-4\">\n {icon && (\n <div className=\"space-y-1\">\n <img\n src={icon}\n alt=\"Icon\"\n className=\"h-24 w-24 rounded-input border border-border-subtle object-cover\"\n />\n <p className=\"text-xs text-text-muted\">Icon</p>\n </div>\n )}\n {bannerUrl && (\n <div className=\"space-y-1\">\n <img\n src={bannerUrl}\n alt=\"Banner\"\n className=\"h-24 w-24 rounded-input border border-border-subtle object-cover\"\n />\n <p className=\"text-xs text-text-muted\">Banner</p>\n </div>\n )}\n </div>\n {screenshots.length > 0 && (\n <div className=\"space-y-1\">\n <p className=\"text-xs text-text-muted\">Screenshots</p>\n <div className=\"flex flex-wrap gap-3\">\n {screenshots.map((url, i) => (\n <img\n key={url}\n src={url}\n alt={`Screenshot ${i + 1}`}\n className=\"h-24 w-36 rounded-input border border-border-subtle object-cover\"\n />\n ))}\n </div>\n </div>\n )}\n </div>\n ) : (\n <p className=\"text-sm text-text-secondary\">\n No images uploaded yet.\n </p>\n )}\n </PageSection>\n\n <PageSection title=\"Description\">\n {form.shortDescription && (\n <p className=\"text-sm font-medium text-text-primary\">\n {form.shortDescription}\n </p>\n )}\n {form.longDescription ? (\n <p className=\"mt-2 whitespace-pre-wrap text-sm text-text-secondary\">\n {form.longDescription}\n </p>\n ) : (\n !form.shortDescription && (\n <p className=\"text-sm text-text-secondary\">\n No description provided.\n </p>\n )\n )}\n </PageSection>\n\n {form.tags && (\n <PageSection title=\"Tags\">\n <div className=\"flex flex-wrap gap-2\">\n {form.tags\n .split(\",\")\n .map((t) => t.trim())\n .filter(Boolean)\n .map((tag) => (\n <span\n key={tag}\n className=\"rounded-full bg-action-primary-bg/10 px-3 py-1 text-xs font-medium text-primary\"\n >\n {tag}\n </span>\n ))}\n </div>\n </PageSection>\n )}\n </div>\n\n {/* Sidebar */}\n <div className=\"space-y-6\">\n <PageSection title=\"Details\">\n <DetailList\n items={[\n {\n label: \"Item ID\",\n value: <code className=\"text-xs\">{itemId}</code>,\n },\n { label: \"Slug\", value: overview?.slug ?? \"—\" },\n {\n label: \"SKU\",\n value: form.sku || \"—\",\n },\n {\n label: \"Brand\",\n value: form.brand || \"—\",\n },\n {\n label: \"Created\",\n value: overview?.createdAt\n ? new Date(overview.createdAt).toLocaleDateString()\n : \"—\",\n },\n {\n label: \"Updated\",\n value: overview?.updatedAt\n ? new Date(overview.updatedAt).toLocaleDateString()\n : \"—\",\n },\n ...(overview?.publishedAt\n ? [\n {\n label: \"Published\",\n value: new Date(\n overview.publishedAt,\n ).toLocaleDateString(),\n },\n ]\n : []),\n ]}\n />\n </PageSection>\n\n <PageSection title=\"Inventory & Shipping\">\n <DetailList\n items={[\n {\n label: \"Stock quantity\",\n value: form.stockQuantity || \"0\",\n },\n {\n label: \"Track inventory\",\n value: form.trackInventory ? \"Yes\" : \"No\",\n },\n {\n label: \"Requires shipping\",\n value: form.requiresShipping ? \"Yes\" : \"No\",\n },\n ...(form.requiresShipping && form.weightKg\n ? [\n {\n label: \"Weight\",\n value: `${form.weightKg} ${form.weightUnit.toLowerCase()}`,\n },\n ]\n : []),\n ]}\n />\n </PageSection>\n </div>\n </div>\n )}\n\n {/* ── Edit Listing tab ── */}\n {activeTab === \"edit\" && (\n <div\n id=\"item-panel-edit\"\n role=\"tabpanel\"\n aria-labelledby=\"item-tab-edit\"\n className=\"space-y-8 max-w-3xl\"\n >\n {/* Status notice */}\n {productStatus && (\n <div className=\"flex items-start gap-2 rounded-input border border-border-subtle bg-bg-sunken px-3 py-2 text-xs text-text-secondary\">\n <Info size={13} className=\"mt-0.5 shrink-0 text-text-muted\" />\n Current status:{\" \"}\n <span className=\"font-medium text-text-primary\">\n {productStatus.replace(/_/g, \" \")}\n </span>\n {canResubmit && (\n <span className=\"ml-1\">\n — use \"Save & Resubmit\" to send it for review again.\n </span>\n )}\n </div>\n )}\n\n {/* ── Section 1: Basic Information ── */}\n <PageSection\n title=\"Basic Information\"\n description=\"Core details shown in the store listing.\"\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <InputField\n label=\"Name\"\n required\n value={form.name}\n onChange={(e) => setField(\"name\", e.target.value)}\n placeholder=\"e.g. Wireless Ergonomic Keyboard\"\n maxLength={120}\n />\n\n <InputField\n label=\"Short Description\"\n required\n value={form.shortDescription}\n onChange={(e) => setField(\"shortDescription\", e.target.value)}\n placeholder=\"One-line summary shown on the store card\"\n maxLength={160}\n hint={`${form.shortDescription.length}/160`}\n />\n\n <TextareaField\n label=\"Long Description\"\n value={form.longDescription}\n onChange={(e) => setField(\"longDescription\", e.target.value)}\n rows={5}\n placeholder=\"Detailed product description, features, specs…\"\n />\n </div>\n </PageSection>\n\n {/* ── Section 1b: Product Images ── */}\n <PageSection\n title=\"Product Images\"\n description=\"Visual assets shown to buyers browsing the store.\"\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <div className=\"grid gap-5 sm:grid-cols-2\">\n <ImageUploadField\n label=\"Icon\"\n value={icon}\n onChange={setIcon}\n hint=\"Shown in marketplace cards and search — square proportions (1:1)\"\n aspectClass=\"aspect-square\"\n upload={uploadIcon}\n uploading={iconUploading}\n progress={iconProgress}\n error={iconUploadError}\n />\n <ImageUploadField\n label=\"Banner\"\n value={bannerUrl}\n onChange={setBannerUrl}\n hint=\"Fills the right panel on the product page — square or portrait works best on all screen sizes (1:1)\"\n aspectClass=\"aspect-square\"\n upload={uploadBanner}\n uploading={bannerUploading}\n progress={bannerProgress}\n error={bannerUploadError}\n />\n </div>\n <ScreenshotGallery\n urls={screenshots}\n onChange={setScreenshots}\n upload={uploadScreenshot}\n uploading={screenshotUploading}\n progress={screenshotProgress}\n error={screenshotUploadError}\n />\n </div>\n </PageSection>\n\n {/* ── Section 2: Pricing ── */}\n <PageSection title=\"Pricing\">\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2\">\n <InputField\n label=\"Price\"\n required\n type=\"number\"\n value={form.price}\n onChange={(e) => setField(\"price\", e.target.value)}\n placeholder=\"0.00\"\n min={0.01}\n step=\"0.01\"\n />\n\n <SelectField\n label=\"Currency\"\n required\n value={form.currency}\n onChange={(e) => setField(\"currency\", e.target.value)}\n options={CURRENCIES}\n placeholder=\"Select currency\"\n />\n </div>\n\n <InputField\n label=\"Tags\"\n value={form.tags}\n onChange={(e) => setField(\"tags\", e.target.value)}\n placeholder=\"mechanical, wireless, ergonomic\"\n hint=\"Comma-separated keywords.\"\n />\n </div>\n </PageSection>\n\n {/* ── Section 3: Inventory ── */}\n <PageSection title=\"Inventory\">\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2\">\n <InputField\n label=\"Stock Quantity\"\n required\n type=\"number\"\n value={form.stockQuantity}\n onChange={(e) => setField(\"stockQuantity\", e.target.value)}\n min={0}\n step={1}\n />\n\n <InputField\n label=\"SKU\"\n value={form.sku}\n onChange={(e) => setField(\"sku\", e.target.value)}\n placeholder=\"e.g. KB-WL-001\"\n hint=\"Your internal stock-keeping unit reference.\"\n />\n </div>\n\n <InputField\n label=\"Low Stock Threshold\"\n type=\"number\"\n value={form.lowStockThreshold}\n onChange={(e) =>\n setField(\"lowStockThreshold\", e.target.value)\n }\n placeholder=\"e.g. 5\"\n min={0}\n step={1}\n hint=\"Get flagged when stock falls to or below this number.\"\n />\n\n <CheckboxField\n label=\"Track Inventory\"\n description=\"Automatically reduce stock when orders are placed.\"\n checked={form.trackInventory}\n onChange={handleCheckboxChange(\"trackInventory\")}\n />\n\n <CheckboxField\n label=\"Allow Backorder\"\n description=\"Let buyers order even when stock quantity is zero.\"\n checked={form.allowBackorder}\n onChange={handleCheckboxChange(\"allowBackorder\")}\n />\n </div>\n </PageSection>\n\n {/* ── Section 4: Shipping ── */}\n <PageSection title=\"Shipping\">\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <CheckboxField\n label=\"Requires Shipping\"\n description=\"This item will be physically shipped to the buyer.\"\n checked={form.requiresShipping}\n onChange={handleCheckboxChange(\"requiresShipping\")}\n />\n\n {form.requiresShipping && (\n <>\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2\">\n <InputField\n label=\"Weight\"\n type=\"number\"\n value={form.weightKg}\n onChange={(e) => setField(\"weightKg\", e.target.value)}\n placeholder=\"0.0\"\n min={0}\n step=\"0.01\"\n hint=\"Used to calculate shipping costs.\"\n />\n\n <SelectField\n label=\"Weight Unit\"\n value={form.weightUnit}\n onChange={(e) => setField(\"weightUnit\", e.target.value)}\n options={WEIGHT_UNITS}\n />\n </div>\n\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-3\">\n <InputField\n label=\"Length\"\n type=\"number\"\n value={form.length}\n onChange={(e) => setField(\"length\", e.target.value)}\n placeholder=\"0.0\"\n min={0}\n step=\"0.01\"\n />\n\n <InputField\n label=\"Width\"\n type=\"number\"\n value={form.width}\n onChange={(e) => setField(\"width\", e.target.value)}\n placeholder=\"0.0\"\n min={0}\n step=\"0.01\"\n />\n\n <InputField\n label=\"Height\"\n type=\"number\"\n value={form.height}\n onChange={(e) => setField(\"height\", e.target.value)}\n placeholder=\"0.0\"\n min={0}\n step=\"0.01\"\n />\n </div>\n\n <SelectField\n label=\"Dimension Unit\"\n value={form.dimensionUnit}\n onChange={(e) =>\n setField(\"dimensionUnit\", e.target.value)\n }\n options={DIMENSION_UNITS}\n hint=\"Applies to length, width, and height above.\"\n />\n </>\n )}\n </div>\n </PageSection>\n\n {/* ── Section 5: Product Details ── */}\n <PageSection\n title=\"Product Details\"\n description=\"Optional supplemental information for buyers.\"\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2\">\n <InputField\n label=\"Brand\"\n value={form.brand}\n onChange={(e) => setField(\"brand\", e.target.value)}\n placeholder=\"e.g. Logitech\"\n />\n\n <InputField\n label=\"Manufacturer\"\n value={form.manufacturer}\n onChange={(e) => setField(\"manufacturer\", e.target.value)}\n placeholder=\"e.g. Logitech Manufacturing Ltd.\"\n />\n </div>\n\n <InputField\n label=\"Country of Origin\"\n value={form.countryOfOrigin}\n onChange={(e) => setField(\"countryOfOrigin\", e.target.value)}\n placeholder=\"e.g. China\"\n />\n\n <InputField\n label=\"Warranty Info\"\n value={form.warrantyInfo}\n onChange={(e) => setField(\"warrantyInfo\", e.target.value)}\n placeholder=\"e.g. 1-year limited manufacturer warranty\"\n />\n\n <TextareaField\n label=\"Return Policy\"\n value={form.returnPolicy}\n onChange={(e) => setField(\"returnPolicy\", e.target.value)}\n rows={3}\n placeholder=\"e.g. 30-day returns accepted\"\n />\n </div>\n </PageSection>\n\n {/* ── Actions ── */}\n <div className=\"flex flex-wrap items-center gap-3 pb-8\">\n <button\n type=\"button\"\n onClick={() => navigate?.(`${basePath}/seller/items`)}\n className=\"rounded-button border border-border-strong px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n Cancel\n </button>\n\n <button\n type=\"button\"\n onClick={() => void handleSave(false)}\n disabled={!isValid || saving}\n aria-disabled={!isValid || saving}\n title={\n !isValid\n ? \"Fill in all required fields to continue\"\n : undefined\n }\n className={cn(\n \"inline-flex items-center gap-2 rounded-button px-5 py-2 text-sm font-medium transition-colors\",\n \"border border-border-strong bg-bg-surface text-text-primary\",\n \"hover:bg-bg-sunken\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n )}\n >\n {saving ? (\n <>\n <Loader2 size={15} className=\"animate-spin\" />\n Saving...\n </>\n ) : (\n \"Save Changes\"\n )}\n </button>\n\n {canResubmit && (\n <button\n type=\"button\"\n onClick={() => void handleSave(true)}\n disabled={!isValid || saving}\n aria-disabled={!isValid || saving}\n className={cn(\n \"inline-flex items-center gap-2 rounded-button px-5 py-2 text-sm font-medium transition-colors\",\n \"bg-action-primary-bg text-action-primary-text\",\n \"hover:bg-action-primary-bg/90\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n )}\n >\n {saving ? (\n <>\n <Loader2 size={15} className=\"animate-spin\" />\n Saving...\n </>\n ) : (\n \"Save & Resubmit for Review\"\n )}\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"EditPhysicalItemPage.js","names":["EditIcon","_Fragment","CURRENCIES","WEIGHT_UNITS","DIMENSION_UNITS","REQUIRED_FIELDS","PRODUCT_TYPE_LABELS","STATUS_BADGE_STYLES","GET_PRODUCT_QUERY","UPDATE_PHYSICAL_PRODUCT_MUTATION","SUBMIT_PRODUCT_MUTATION","isFormValid","value","form","field","StatCard","GlassCard","label","EditPhysicalItemPage","useDevportal","useParams","endpoint","resolveGlobalGraphqlEndpoint","apiGatewayUrl","loadingProduct","setLoadingProduct","useState","loadError","setLoadError","productStatus","setProductStatus","activeTab","setActiveTab","overview","setOverview","setForm","icon","setIcon","bannerUrl","setBannerUrl","screenshots","setScreenshots","uploadIcon","iconUploading","iconProgress","iconUploadError","usePackageUpload","workspacesGatewayUrl","authToken","workspaceId","getWorkspaceToken","uploadBanner","bannerUploading","bannerProgress","bannerUploadError","uploadScreenshot","screenshotUploading","screenshotProgress","screenshotUploadError","saving","setSaving","saveError","setSaveError","saveSuccess","setSaveSuccess","imagesUploading","isValid","gqlFetch","json","itemId","cancelled","data","p","err","setField","prev","key","handleCheckboxChange","e","handleSave","parsedTags","t","hasDimensions","andResubmit","basePath","PageLayout","Loader2","AlertCircle","canResubmit","statusStyle","ImageOff","Edit","cn","Clock","XCircle","CheckCircle","tab","EmphasisPanel","PageSection","url","i","tag","DetailList","Info","InputField","TextareaField","ImageUploadField","ScreenshotGallery","SelectField","CheckboxField","Fragment","navigate"],"sources":["../../../src/devportal/pages/EditPhysicalItemPage.tsx"],"sourcesContent":["import type { FC, ChangeEvent } from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { useParams } from \"react-router\";\nimport {\n Loader2,\n AlertCircle,\n Info,\n Edit as EditIcon,\n CheckCircle,\n Clock,\n XCircle,\n ImageOff,\n} from \"lucide-react\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport {\n InputField,\n TextareaField,\n SelectField,\n CheckboxField,\n} from \"../components/FormField\";\nimport {\n ImageUploadField,\n ScreenshotGallery,\n} from \"../components/ImageUploadField\";\nimport { DetailList } from \"../components/DataTable\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { usePackageUpload } from \"../hooks/usePackageUpload\";\nimport { cn } from \"../utils/cn\";\nimport { resolveGlobalGraphqlEndpoint } from \"../utils/graphqlEndpoint\";\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\ninterface FormState {\n name: string;\n shortDescription: string;\n longDescription: string;\n price: string;\n currency: string;\n tags: string;\n stockQuantity: string;\n sku: string;\n trackInventory: boolean;\n allowBackorder: boolean;\n lowStockThreshold: string;\n requiresShipping: boolean;\n weightKg: string;\n weightUnit: string;\n length: string;\n width: string;\n height: string;\n dimensionUnit: string;\n brand: string;\n manufacturer: string;\n countryOfOrigin: string;\n warrantyInfo: string;\n returnPolicy: string;\n}\n\n// ─── Constants ────────────────────────────────────────────────────────────────\n\nconst CURRENCIES = [\n { value: \"USD\", label: \"USD — US Dollar\" },\n { value: \"INR\", label: \"INR — Indian Rupee\" },\n { value: \"EUR\", label: \"EUR — Euro\" },\n { value: \"GBP\", label: \"GBP — British Pound\" },\n { value: \"SGD\", label: \"SGD — Singapore Dollar\" },\n { value: \"AED\", label: \"AED — UAE Dirham\" },\n];\n\nconst WEIGHT_UNITS = [\n { value: \"GRAM\", label: \"Grams (g)\" },\n { value: \"KILOGRAM\", label: \"Kilograms (kg)\" },\n { value: \"OUNCE\", label: \"Ounces (oz)\" },\n { value: \"POUND\", label: \"Pounds (lb)\" },\n];\n\nconst DIMENSION_UNITS = [\n { value: \"CENTIMETER\", label: \"Centimeters (cm)\" },\n { value: \"INCH\", label: \"Inches (in)\" },\n { value: \"METER\", label: \"Meters (m)\" },\n];\n\nconst REQUIRED_FIELDS: (keyof FormState)[] = [\n \"name\",\n \"shortDescription\",\n \"price\",\n \"currency\",\n \"stockQuantity\",\n];\n\nconst PRODUCT_TYPE_LABELS: Record<string, string> = {\n MERCHANDISE: \"Merchandise\",\n HARDWARE: \"Hardware\",\n ACCESSORY: \"Accessory\",\n BOOK: \"Book\",\n EQUIPMENT: \"Equipment\",\n APPAREL: \"Apparel\",\n COLLECTIBLE: \"Collectible\",\n CONSUMABLE: \"Consumable\",\n};\n\nconst STATUS_BADGE_STYLES: Record<\n string,\n { label: string; className: string }\n> = {\n PUBLISHED: {\n label: \"Published\",\n className: \"text-status-success-text bg-status-success-bg-subtle\",\n },\n PENDING_REVIEW: {\n label: \"Pending Review\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n DRAFT: {\n label: \"Draft\",\n className: \"text-text-muted bg-bg-muted\",\n },\n REJECTED: {\n label: \"Rejected\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n INACTIVE: {\n label: \"Inactive\",\n className: \"text-text-muted bg-bg-muted\",\n },\n};\n\ntype TabId = \"overview\" | \"edit\";\n\n// ─── GraphQL ──────────────────────────────────────────────────────────────────\n\nconst GET_PRODUCT_QUERY = /* GraphQL */ `\n query GetPhysicalProduct($id: ID!) {\n product(id: $id) {\n id\n name\n slug\n type\n status\n nature\n description\n longDescription\n price\n currency\n tags\n stockQuantity\n sku\n trackInventory\n allowBackorder\n lowStockThreshold\n requiresShipping\n weight\n weightUnit\n length\n width\n height\n dimensionUnit\n brand\n manufacturer\n countryOfOrigin\n warrantyInfo\n returnPolicy\n icon\n bannerUrl\n screenshots\n category\n viewCount\n rating\n reviewCount\n createdAt\n updatedAt\n submittedAt\n reviewedAt\n reviewNotes\n rejectedReason\n publishedAt\n }\n }\n`;\n\nconst UPDATE_PHYSICAL_PRODUCT_MUTATION = /* GraphQL */ `\n mutation UpdatePhysicalProduct(\n $id: ID!\n $input: UpdatePhysicalProductInput!\n ) {\n updatePhysicalProduct(id: $id, input: $input) {\n id\n name\n status\n }\n }\n`;\n\nconst SUBMIT_PRODUCT_MUTATION = /* GraphQL */ `\n mutation SubmitProductForReview($id: ID!, $notes: String) {\n submitProduct(id: $id, notes: $notes) {\n id\n status\n }\n }\n`;\n\n// ─── Helpers ──────────────────────────────────────────────────────────────────\n\nfunction isFormValid(form: FormState): boolean {\n return REQUIRED_FIELDS.every((field) => {\n const value = form[field];\n if (typeof value === \"boolean\") return true;\n return String(value).trim() !== \"\";\n });\n}\n\nconst StatCard: FC<{ label: string; value: string }> = ({ label, value }) => (\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-text-secondary\">{label}</p>\n <p className=\"text-2xl font-bold tabular-nums\">{value}</p>\n </GlassCard>\n);\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport const EditPhysicalItemPage: FC = () => {\n const {\n navigate,\n basePath,\n apiGatewayUrl,\n authToken,\n workspacesGatewayUrl,\n workspaceId,\n getWorkspaceToken,\n } = useDevportal();\n const { itemId } = useParams<{ itemId: string }>();\n\n const endpoint = resolveGlobalGraphqlEndpoint(apiGatewayUrl);\n\n const [loadingProduct, setLoadingProduct] = useState(true);\n const [loadError, setLoadError] = useState<string | null>(null);\n const [productStatus, setProductStatus] = useState<string | null>(null);\n const [activeTab, setActiveTab] = useState<TabId>(\"overview\");\n\n interface OverviewInfo {\n slug: string;\n type: string;\n category: string | null;\n viewCount: number;\n rating: number | null;\n reviewCount: number;\n createdAt: string;\n updatedAt: string;\n submittedAt: string | null;\n reviewedAt: string | null;\n reviewNotes: string | null;\n rejectedReason: string | null;\n publishedAt: string | null;\n }\n const [overview, setOverview] = useState<OverviewInfo | null>(null);\n\n const [form, setForm] = useState<FormState>({\n name: \"\",\n shortDescription: \"\",\n longDescription: \"\",\n price: \"\",\n currency: \"USD\",\n tags: \"\",\n stockQuantity: \"0\",\n sku: \"\",\n trackInventory: true,\n allowBackorder: false,\n lowStockThreshold: \"\",\n requiresShipping: true,\n weightKg: \"\",\n weightUnit: \"KILOGRAM\",\n length: \"\",\n width: \"\",\n height: \"\",\n dimensionUnit: \"CENTIMETER\",\n brand: \"\",\n manufacturer: \"\",\n countryOfOrigin: \"\",\n warrantyInfo: \"\",\n returnPolicy: \"\",\n });\n\n const [icon, setIcon] = useState(\"\");\n const [bannerUrl, setBannerUrl] = useState(\"\");\n const [screenshots, setScreenshots] = useState<string[]>([]);\n const {\n upload: uploadIcon,\n uploading: iconUploading,\n progress: iconProgress,\n error: iconUploadError,\n } = usePackageUpload(\n workspacesGatewayUrl,\n authToken,\n workspaceId,\n getWorkspaceToken,\n \"/DevPortal/Assets\",\n );\n const {\n upload: uploadBanner,\n uploading: bannerUploading,\n progress: bannerProgress,\n error: bannerUploadError,\n } = usePackageUpload(\n workspacesGatewayUrl,\n authToken,\n workspaceId,\n getWorkspaceToken,\n \"/DevPortal/Assets\",\n );\n const {\n upload: uploadScreenshot,\n uploading: screenshotUploading,\n progress: screenshotProgress,\n error: screenshotUploadError,\n } = usePackageUpload(\n workspacesGatewayUrl,\n authToken,\n workspaceId,\n getWorkspaceToken,\n \"/DevPortal/Assets\",\n );\n\n const [saving, setSaving] = useState(false);\n const [saveError, setSaveError] = useState<string | null>(null);\n const [saveSuccess, setSaveSuccess] = useState(false);\n\n const imagesUploading =\n iconUploading || bannerUploading || screenshotUploading;\n const isValid = isFormValid(form) && !imagesUploading;\n\n // ─── GQL helper ───────────────────────────────────────────────────────────\n\n async function gqlFetch<T = unknown>(\n query: string,\n variables?: Record<string, unknown>,\n ): Promise<T> {\n const res = await fetch(endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(authToken ? { Authorization: `Bearer ${authToken}` } : {}),\n },\n credentials: \"include\",\n body: JSON.stringify({ query, variables }),\n });\n const json = (await res.json()) as {\n data?: T;\n errors?: { message: string }[];\n };\n if (json.errors?.length) {\n throw new Error(json.errors.map((e) => e.message).join(\"; \"));\n }\n return json.data as T;\n }\n\n // ─── Load product ─────────────────────────────────────────────────────────\n\n useEffect(() => {\n if (!itemId) return;\n let cancelled = false;\n setLoadingProduct(true);\n setLoadError(null);\n\n const run = async () => {\n try {\n const data = await gqlFetch<{\n product: {\n id: string;\n name: string;\n slug: string;\n type: string;\n status: string;\n description: string | null;\n longDescription: string | null;\n price: number;\n currency: string;\n tags: string[] | null;\n stockQuantity: number;\n sku: string | null;\n trackInventory: boolean | null;\n allowBackorder: boolean | null;\n lowStockThreshold: number | null;\n requiresShipping: boolean | null;\n weight: number | null;\n weightUnit: string | null;\n length: number | null;\n width: number | null;\n height: number | null;\n dimensionUnit: string | null;\n brand: string | null;\n manufacturer: string | null;\n countryOfOrigin: string | null;\n warrantyInfo: string | null;\n returnPolicy: string | null;\n icon: string | null;\n bannerUrl: string | null;\n screenshots: string[] | null;\n category: string | null;\n viewCount: number;\n rating: number | null;\n reviewCount: number;\n createdAt: string;\n updatedAt: string;\n submittedAt: string | null;\n reviewedAt: string | null;\n reviewNotes: string | null;\n rejectedReason: string | null;\n publishedAt: string | null;\n } | null;\n }>(GET_PRODUCT_QUERY, { id: itemId });\n\n if (cancelled) return;\n const p = data.product;\n if (!p) {\n setLoadError(\"Product not found.\");\n return;\n }\n\n setProductStatus(p.status);\n setForm({\n name: p.name,\n shortDescription: p.description ?? \"\",\n longDescription: p.longDescription ?? \"\",\n price: String(p.price),\n currency: p.currency || \"USD\",\n tags: (p.tags ?? []).join(\", \"),\n stockQuantity: String(p.stockQuantity),\n sku: p.sku ?? \"\",\n trackInventory: p.trackInventory ?? true,\n allowBackorder: p.allowBackorder ?? false,\n lowStockThreshold:\n p.lowStockThreshold != null ? String(p.lowStockThreshold) : \"\",\n requiresShipping: p.requiresShipping ?? true,\n weightKg: p.weight != null ? String(p.weight) : \"\",\n weightUnit: p.weightUnit ?? \"KILOGRAM\",\n length: p.length != null ? String(p.length) : \"\",\n width: p.width != null ? String(p.width) : \"\",\n height: p.height != null ? String(p.height) : \"\",\n dimensionUnit: p.dimensionUnit ?? \"CENTIMETER\",\n brand: p.brand ?? \"\",\n manufacturer: p.manufacturer ?? \"\",\n countryOfOrigin: p.countryOfOrigin ?? \"\",\n warrantyInfo: p.warrantyInfo ?? \"\",\n returnPolicy: p.returnPolicy ?? \"\",\n });\n setOverview({\n slug: p.slug,\n type: p.type,\n category: p.category,\n viewCount: p.viewCount,\n rating: p.rating,\n reviewCount: p.reviewCount,\n createdAt: p.createdAt,\n updatedAt: p.updatedAt,\n submittedAt: p.submittedAt,\n reviewedAt: p.reviewedAt,\n reviewNotes: p.reviewNotes,\n rejectedReason: p.rejectedReason,\n publishedAt: p.publishedAt,\n });\n setIcon(p.icon ?? \"\");\n setBannerUrl(p.bannerUrl ?? \"\");\n setScreenshots(p.screenshots ?? []);\n } catch (err) {\n if (!cancelled) {\n setLoadError(\n err instanceof Error ? err.message : \"Failed to load product\",\n );\n }\n } finally {\n if (!cancelled) setLoadingProduct(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemId, endpoint, authToken]);\n\n // ─── Field helpers ────────────────────────────────────────────────────────\n\n const setField = <K extends keyof FormState>(key: K, value: FormState[K]) => {\n setForm((prev) => ({ ...prev, [key]: value }));\n };\n\n const handleCheckboxChange =\n (key: \"trackInventory\" | \"requiresShipping\" | \"allowBackorder\") =>\n (e: ChangeEvent<HTMLInputElement>) => {\n setField(key, e.target.checked);\n };\n\n // ─── Save ─────────────────────────────────────────────────────────────────\n\n const handleSave = async (andResubmit = false) => {\n if (!isValid || saving || !itemId) return;\n setSaving(true);\n setSaveError(null);\n setSaveSuccess(false);\n\n try {\n const parsedTags = form.tags\n .split(\",\")\n .map((t) => t.trim())\n .filter(Boolean);\n const hasDimensions =\n form.length.trim() || form.width.trim() || form.height.trim();\n\n await gqlFetch(UPDATE_PHYSICAL_PRODUCT_MUTATION, {\n id: itemId,\n input: {\n name: form.name.trim(),\n description: form.shortDescription.trim(),\n longDescription: form.longDescription.trim() || null,\n price: parseFloat(form.price),\n currency: form.currency,\n tags: parsedTags.length > 0 ? parsedTags : null,\n stockQuantity: parseInt(form.stockQuantity, 10),\n sku: form.sku.trim() || null,\n trackInventory: form.trackInventory,\n allowBackorder: form.allowBackorder,\n lowStockThreshold: form.lowStockThreshold.trim()\n ? parseInt(form.lowStockThreshold, 10)\n : null,\n requiresShipping: form.requiresShipping,\n weight:\n form.requiresShipping && form.weightKg.trim()\n ? parseFloat(form.weightKg)\n : null,\n weightUnit:\n form.requiresShipping && form.weightKg.trim()\n ? form.weightUnit\n : null,\n length:\n form.requiresShipping && form.length.trim()\n ? parseFloat(form.length)\n : null,\n width:\n form.requiresShipping && form.width.trim()\n ? parseFloat(form.width)\n : null,\n height:\n form.requiresShipping && form.height.trim()\n ? parseFloat(form.height)\n : null,\n dimensionUnit:\n form.requiresShipping && hasDimensions ? form.dimensionUnit : null,\n brand: form.brand.trim() || null,\n manufacturer: form.manufacturer.trim() || null,\n countryOfOrigin: form.countryOfOrigin.trim() || null,\n warrantyInfo: form.warrantyInfo.trim() || null,\n returnPolicy: form.returnPolicy.trim() || null,\n icon: icon || null,\n bannerUrl: bannerUrl || null,\n screenshots: screenshots.length > 0 ? screenshots : null,\n },\n });\n\n if (andResubmit) {\n await gqlFetch(SUBMIT_PRODUCT_MUTATION, {\n id: itemId,\n notes: \"Resubmitted after edits\",\n });\n }\n\n setSaveSuccess(true);\n setTimeout(() => {\n navigate?.(`${basePath}/seller/items`);\n }, 1500);\n } catch (err) {\n setSaveError(\n err instanceof Error ? err.message : \"Save failed. Please try again.\",\n );\n } finally {\n setSaving(false);\n }\n };\n\n // ─── Render ───────────────────────────────────────────────────────────────\n\n if (loadingProduct) {\n return (\n <PageLayout\n title=\"Edit Item\"\n backLink=\"/seller/items\"\n backLabel=\"Back to My Items\"\n >\n <div className=\"flex items-center justify-center py-20\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n </div>\n </PageLayout>\n );\n }\n\n if (loadError) {\n return (\n <PageLayout\n title=\"Edit Item\"\n backLink=\"/seller/items\"\n backLabel=\"Back to My Items\"\n >\n <div className=\"flex items-center gap-3 rounded-lg border border-status-error-border/50 bg-status-error-bg/10 px-4 py-3 text-sm\">\n <AlertCircle size={16} className=\"shrink-0 text-status-error-text\" />\n <span className=\"text-status-error-text\">{loadError}</span>\n </div>\n </PageLayout>\n );\n }\n\n const isDraft = productStatus === \"DRAFT\" || productStatus === \"REJECTED\";\n const canResubmit = isDraft;\n const statusStyle = productStatus\n ? STATUS_BADGE_STYLES[productStatus]\n : undefined;\n\n return (\n <PageLayout\n title={\n <div className=\"flex items-center gap-3\">\n {icon ? (\n <img\n src={icon}\n alt=\"\"\n className=\"h-10 w-10 shrink-0 rounded-input border border-border-subtle object-cover\"\n />\n ) : (\n <div className=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-input border border-border-subtle bg-bg-sunken\">\n <ImageOff size={16} className=\"text-text-muted\" />\n </div>\n )}\n <span>{form.name || \"Item\"}</span>\n </div>\n }\n description={form.shortDescription || undefined}\n purpose=\"Everything about this listing in one place — its performance, its store presence, and its editable details. Use the tabs to review or update it.\"\n backLink=\"/seller/items\"\n backLabel=\"Back to My Items\"\n actions={\n activeTab === \"overview\" ? (\n <button\n type=\"button\"\n onClick={() => setActiveTab(\"edit\")}\n className=\"inline-flex items-center gap-2 rounded-button bg-action-primary-bg px-5 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <EditIcon size={15} />\n Edit Listing\n </button>\n ) : undefined\n }\n >\n <div className=\"space-y-6\">\n {/* Success banner */}\n {saveSuccess && (\n <div className=\"rounded-card border border-status-success-text/30 bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text\">\n Saved successfully! Redirecting to your items...\n </div>\n )}\n\n {/* Error banner */}\n {saveError && (\n <div className=\"rounded-card border border-status-error-text/30 bg-status-error-bg-subtle px-4 py-3 text-sm text-status-error-text\">\n {saveError}\n </div>\n )}\n\n {/* Status badges */}\n <div className=\"flex flex-wrap items-center gap-2\">\n {statusStyle && (\n <span\n className={cn(\n \"inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium\",\n statusStyle.className,\n )}\n >\n {statusStyle.label}\n </span>\n )}\n <span className=\"text-sm text-text-secondary\">\n {PRODUCT_TYPE_LABELS[overview?.type ?? \"\"] || overview?.type}\n </span>\n {overview?.category && (\n <span className=\"rounded-full bg-bg-sunken px-2.5 py-0.5 text-xs text-text-secondary\">\n {overview.category}\n </span>\n )}\n </div>\n\n {/* Status banner */}\n {productStatus === \"PENDING_REVIEW\" && (\n <div className=\"flex items-start gap-3 rounded-lg border border-border-subtle bg-status-warning-bg-subtle p-4\">\n <Clock\n size={18}\n className=\"text-status-warning-text mt-0.5 flex-shrink-0\"\n />\n <div className=\"text-sm\">\n <p className=\"font-medium text-status-warning-text\">\n Under Review\n </p>\n <p className=\"mt-0.5 text-text-secondary\">\n Your listing is being reviewed by our team. You'll be notified\n of the outcome.\n {overview?.submittedAt && (\n <span className=\"ml-1\">\n Submitted{\" \"}\n {new Date(overview.submittedAt).toLocaleDateString()}.\n </span>\n )}\n </p>\n </div>\n </div>\n )}\n {productStatus === \"REJECTED\" && (\n <div className=\"flex items-start gap-3 rounded-lg border border-status-error-bg bg-status-error-bg-subtle p-4\">\n <XCircle\n size={18}\n className=\"text-status-error-text mt-0.5 flex-shrink-0\"\n />\n <div className=\"text-sm\">\n <p className=\"font-medium text-status-error-text\">\n Review Rejected\n </p>\n <p className=\"mt-0.5 text-text-secondary\">\n {overview?.rejectedReason ||\n overview?.reviewNotes ||\n \"Your submission was not approved. Please review the feedback, update your listing, and re-submit.\"}\n </p>\n <button\n type=\"button\"\n onClick={() => setActiveTab(\"edit\")}\n className=\"mt-2 inline-flex items-center gap-1 text-xs font-medium text-primary underline\"\n >\n Edit listing and re-submit →\n </button>\n </div>\n </div>\n )}\n {productStatus === \"PUBLISHED\" && (\n <div className=\"flex items-start gap-3 rounded-lg border border-status-success-bg bg-status-success-bg-subtle p-4\">\n <CheckCircle\n size={18}\n className=\"text-status-success-text mt-0.5 flex-shrink-0\"\n />\n <div className=\"text-sm\">\n <p className=\"font-medium text-status-success-text\">\n Live in the Store\n </p>\n <p className=\"mt-0.5 text-text-secondary\">\n Your listing is published and visible to buyers in the\n marketplace.\n </p>\n </div>\n </div>\n )}\n\n {/* Tabs */}\n <div className=\"border-b\">\n <nav\n className=\"-mb-px flex gap-4 overflow-x-auto\"\n role=\"tablist\"\n aria-label=\"Item sections\"\n >\n {(\n [\n { id: \"overview\" as const, label: \"Overview\" },\n { id: \"edit\" as const, label: \"Edit Listing\" },\n ] satisfies { id: TabId; label: string }[]\n ).map((tab) => (\n <button\n key={tab.id}\n id={`item-tab-${tab.id}`}\n role=\"tab\"\n aria-selected={activeTab === tab.id}\n aria-controls={`item-panel-${tab.id}`}\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n \"flex items-center gap-2 border-b-2 px-1 py-3 text-sm font-medium transition-colors\",\n activeTab === tab.id\n ? \"border-primary text-primary\"\n : \"border-transparent text-text-secondary hover:text-text-primary hover:border-muted-foreground\",\n )}\n >\n {tab.label}\n </button>\n ))}\n </nav>\n </div>\n\n {/* ── Overview tab ── */}\n {activeTab === \"overview\" && (\n <div\n id=\"item-panel-overview\"\n role=\"tabpanel\"\n aria-labelledby=\"item-tab-overview\"\n className=\"grid gap-6 lg:grid-cols-3\"\n >\n <div className=\"lg:col-span-2 space-y-6\">\n <EmphasisPanel>\n <div className=\"grid gap-4 sm:grid-cols-4\">\n <StatCard\n label=\"Price\"\n value={`${form.currency} ${Number(form.price || 0).toFixed(2)}`}\n />\n <StatCard label=\"Stock\" value={form.stockQuantity || \"0\"} />\n <StatCard\n label=\"Views\"\n value={(overview?.viewCount ?? 0).toLocaleString()}\n />\n <StatCard\n label=\"Rating\"\n value={\n overview?.rating\n ? `${overview.rating.toFixed(1)} ★`\n : \"N/A\"\n }\n />\n </div>\n </EmphasisPanel>\n\n <PageSection title=\"Product Images\">\n {icon || bannerUrl || screenshots.length > 0 ? (\n <div className=\"space-y-4\">\n <div className=\"flex flex-wrap gap-4\">\n {icon && (\n <div className=\"space-y-1\">\n <img\n src={icon}\n alt=\"Icon\"\n className=\"h-24 w-24 rounded-input border border-border-subtle object-cover\"\n />\n <p className=\"text-xs text-text-muted\">Icon</p>\n </div>\n )}\n {bannerUrl && (\n <div className=\"space-y-1\">\n <img\n src={bannerUrl}\n alt=\"Banner\"\n className=\"h-24 w-24 rounded-input border border-border-subtle object-cover\"\n />\n <p className=\"text-xs text-text-muted\">Banner</p>\n </div>\n )}\n </div>\n {screenshots.length > 0 && (\n <div className=\"space-y-1\">\n <p className=\"text-xs text-text-muted\">Screenshots</p>\n <div className=\"flex flex-wrap gap-3\">\n {screenshots.map((url, i) => (\n <img\n key={url}\n src={url}\n alt={`Screenshot ${i + 1}`}\n className=\"h-24 w-36 rounded-input border border-border-subtle object-cover\"\n />\n ))}\n </div>\n </div>\n )}\n </div>\n ) : (\n <p className=\"text-sm text-text-secondary\">\n No images uploaded yet.\n </p>\n )}\n </PageSection>\n\n <PageSection title=\"Description\">\n {form.shortDescription && (\n <p className=\"text-sm font-medium text-text-primary\">\n {form.shortDescription}\n </p>\n )}\n {form.longDescription ? (\n <p className=\"mt-2 whitespace-pre-wrap text-sm text-text-secondary\">\n {form.longDescription}\n </p>\n ) : (\n !form.shortDescription && (\n <p className=\"text-sm text-text-secondary\">\n No description provided.\n </p>\n )\n )}\n </PageSection>\n\n {form.tags && (\n <PageSection title=\"Tags\">\n <div className=\"flex flex-wrap gap-2\">\n {form.tags\n .split(\",\")\n .map((t) => t.trim())\n .filter(Boolean)\n .map((tag) => (\n <span\n key={tag}\n className=\"rounded-full bg-action-primary-bg/10 px-3 py-1 text-xs font-medium text-primary\"\n >\n {tag}\n </span>\n ))}\n </div>\n </PageSection>\n )}\n </div>\n\n {/* Sidebar */}\n <div className=\"space-y-6\">\n <PageSection title=\"Details\">\n <DetailList\n items={[\n {\n label: \"Item ID\",\n value: <code className=\"text-xs\">{itemId}</code>,\n },\n { label: \"Slug\", value: overview?.slug ?? \"—\" },\n {\n label: \"SKU\",\n value: form.sku || \"—\",\n },\n {\n label: \"Brand\",\n value: form.brand || \"—\",\n },\n {\n label: \"Created\",\n value: overview?.createdAt\n ? new Date(overview.createdAt).toLocaleDateString()\n : \"—\",\n },\n {\n label: \"Updated\",\n value: overview?.updatedAt\n ? new Date(overview.updatedAt).toLocaleDateString()\n : \"—\",\n },\n ...(overview?.publishedAt\n ? [\n {\n label: \"Published\",\n value: new Date(\n overview.publishedAt,\n ).toLocaleDateString(),\n },\n ]\n : []),\n ]}\n />\n </PageSection>\n\n <PageSection title=\"Inventory & Shipping\">\n <DetailList\n items={[\n {\n label: \"Stock quantity\",\n value: form.stockQuantity || \"0\",\n },\n {\n label: \"Track inventory\",\n value: form.trackInventory ? \"Yes\" : \"No\",\n },\n {\n label: \"Requires shipping\",\n value: form.requiresShipping ? \"Yes\" : \"No\",\n },\n ...(form.requiresShipping && form.weightKg\n ? [\n {\n label: \"Weight\",\n value: `${form.weightKg} ${form.weightUnit.toLowerCase()}`,\n },\n ]\n : []),\n ]}\n />\n </PageSection>\n </div>\n </div>\n )}\n\n {/* ── Edit Listing tab ── */}\n {activeTab === \"edit\" && (\n <div\n id=\"item-panel-edit\"\n role=\"tabpanel\"\n aria-labelledby=\"item-tab-edit\"\n className=\"space-y-8 max-w-3xl\"\n >\n {/* Status notice */}\n {productStatus && (\n <div className=\"flex items-start gap-2 rounded-input border border-border-subtle bg-bg-sunken px-3 py-2 text-xs text-text-secondary\">\n <Info size={13} className=\"mt-0.5 shrink-0 text-text-muted\" />\n Current status:{\" \"}\n <span className=\"font-medium text-text-primary\">\n {productStatus.replace(/_/g, \" \")}\n </span>\n {canResubmit && (\n <span className=\"ml-1\">\n — use \"Save & Resubmit\" to send it for review again.\n </span>\n )}\n </div>\n )}\n\n {/* ── Section 1: Basic Information ── */}\n <PageSection\n title=\"Basic Information\"\n description=\"Core details shown in the store listing.\"\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <InputField\n label=\"Name\"\n required\n value={form.name}\n onChange={(e) => setField(\"name\", e.target.value)}\n placeholder=\"e.g. Wireless Ergonomic Keyboard\"\n maxLength={120}\n />\n\n <InputField\n label=\"Short Description\"\n required\n value={form.shortDescription}\n onChange={(e) => setField(\"shortDescription\", e.target.value)}\n placeholder=\"One-line summary shown on the store card\"\n maxLength={160}\n hint={`${form.shortDescription.length}/160`}\n />\n\n <TextareaField\n label=\"Long Description\"\n value={form.longDescription}\n onChange={(e) => setField(\"longDescription\", e.target.value)}\n rows={5}\n placeholder=\"Detailed product description, features, specs…\"\n />\n </div>\n </PageSection>\n\n {/* ── Section 1b: Product Images ── */}\n <PageSection\n title=\"Product Images\"\n description=\"Visual assets shown to buyers browsing the store.\"\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <div className=\"grid gap-5 sm:grid-cols-2\">\n <ImageUploadField\n label=\"Icon\"\n value={icon}\n onChange={setIcon}\n hint=\"Shown in marketplace cards and search — square proportions (1:1)\"\n aspectClass=\"aspect-square\"\n upload={uploadIcon}\n uploading={iconUploading}\n progress={iconProgress}\n error={iconUploadError}\n />\n <ImageUploadField\n label=\"Banner\"\n value={bannerUrl}\n onChange={setBannerUrl}\n hint=\"Fills the right panel on the product page — square or portrait works best on all screen sizes (1:1)\"\n aspectClass=\"aspect-square\"\n upload={uploadBanner}\n uploading={bannerUploading}\n progress={bannerProgress}\n error={bannerUploadError}\n />\n </div>\n <ScreenshotGallery\n urls={screenshots}\n onChange={setScreenshots}\n upload={uploadScreenshot}\n uploading={screenshotUploading}\n progress={screenshotProgress}\n error={screenshotUploadError}\n />\n </div>\n </PageSection>\n\n {/* ── Section 2: Pricing ── */}\n <PageSection title=\"Pricing\">\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2\">\n <InputField\n label=\"Price\"\n required\n type=\"number\"\n value={form.price}\n onChange={(e) => setField(\"price\", e.target.value)}\n placeholder=\"0.00\"\n min={0.01}\n step=\"0.01\"\n />\n\n <SelectField\n label=\"Currency\"\n required\n value={form.currency}\n onChange={(e) => setField(\"currency\", e.target.value)}\n options={CURRENCIES}\n placeholder=\"Select currency\"\n />\n </div>\n\n <InputField\n label=\"Tags\"\n value={form.tags}\n onChange={(e) => setField(\"tags\", e.target.value)}\n placeholder=\"mechanical, wireless, ergonomic\"\n hint=\"Comma-separated keywords.\"\n />\n </div>\n </PageSection>\n\n {/* ── Section 3: Inventory ── */}\n <PageSection title=\"Inventory\">\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2\">\n <InputField\n label=\"Stock Quantity\"\n required\n type=\"number\"\n value={form.stockQuantity}\n onChange={(e) => setField(\"stockQuantity\", e.target.value)}\n min={0}\n step={1}\n />\n\n <InputField\n label=\"SKU\"\n value={form.sku}\n onChange={(e) => setField(\"sku\", e.target.value)}\n placeholder=\"e.g. KB-WL-001\"\n hint=\"Your internal stock-keeping unit reference.\"\n />\n </div>\n\n <InputField\n label=\"Low Stock Threshold\"\n type=\"number\"\n value={form.lowStockThreshold}\n onChange={(e) =>\n setField(\"lowStockThreshold\", e.target.value)\n }\n placeholder=\"e.g. 5\"\n min={0}\n step={1}\n hint=\"Get flagged when stock falls to or below this number.\"\n />\n\n <CheckboxField\n label=\"Track Inventory\"\n description=\"Automatically reduce stock when orders are placed.\"\n checked={form.trackInventory}\n onChange={handleCheckboxChange(\"trackInventory\")}\n />\n\n <CheckboxField\n label=\"Allow Backorder\"\n description=\"Let buyers order even when stock quantity is zero.\"\n checked={form.allowBackorder}\n onChange={handleCheckboxChange(\"allowBackorder\")}\n />\n </div>\n </PageSection>\n\n {/* ── Section 4: Shipping ── */}\n <PageSection title=\"Shipping\">\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <CheckboxField\n label=\"Requires Shipping\"\n description=\"This item will be physically shipped to the buyer.\"\n checked={form.requiresShipping}\n onChange={handleCheckboxChange(\"requiresShipping\")}\n />\n\n {form.requiresShipping && (\n <>\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2\">\n <InputField\n label=\"Weight\"\n type=\"number\"\n value={form.weightKg}\n onChange={(e) => setField(\"weightKg\", e.target.value)}\n placeholder=\"0.0\"\n min={0}\n step=\"0.01\"\n hint=\"Used to calculate shipping costs.\"\n />\n\n <SelectField\n label=\"Weight Unit\"\n value={form.weightUnit}\n onChange={(e) => setField(\"weightUnit\", e.target.value)}\n options={WEIGHT_UNITS}\n />\n </div>\n\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-3\">\n <InputField\n label=\"Length\"\n type=\"number\"\n value={form.length}\n onChange={(e) => setField(\"length\", e.target.value)}\n placeholder=\"0.0\"\n min={0}\n step=\"0.01\"\n />\n\n <InputField\n label=\"Width\"\n type=\"number\"\n value={form.width}\n onChange={(e) => setField(\"width\", e.target.value)}\n placeholder=\"0.0\"\n min={0}\n step=\"0.01\"\n />\n\n <InputField\n label=\"Height\"\n type=\"number\"\n value={form.height}\n onChange={(e) => setField(\"height\", e.target.value)}\n placeholder=\"0.0\"\n min={0}\n step=\"0.01\"\n />\n </div>\n\n <SelectField\n label=\"Dimension Unit\"\n value={form.dimensionUnit}\n onChange={(e) =>\n setField(\"dimensionUnit\", e.target.value)\n }\n options={DIMENSION_UNITS}\n hint=\"Applies to length, width, and height above.\"\n />\n </>\n )}\n </div>\n </PageSection>\n\n {/* ── Section 5: Product Details ── */}\n <PageSection\n title=\"Product Details\"\n description=\"Optional supplemental information for buyers.\"\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-5\">\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2\">\n <InputField\n label=\"Brand\"\n value={form.brand}\n onChange={(e) => setField(\"brand\", e.target.value)}\n placeholder=\"e.g. Logitech\"\n />\n\n <InputField\n label=\"Manufacturer\"\n value={form.manufacturer}\n onChange={(e) => setField(\"manufacturer\", e.target.value)}\n placeholder=\"e.g. Logitech Manufacturing Ltd.\"\n />\n </div>\n\n <InputField\n label=\"Country of Origin\"\n value={form.countryOfOrigin}\n onChange={(e) => setField(\"countryOfOrigin\", e.target.value)}\n placeholder=\"e.g. China\"\n />\n\n <InputField\n label=\"Warranty Info\"\n value={form.warrantyInfo}\n onChange={(e) => setField(\"warrantyInfo\", e.target.value)}\n placeholder=\"e.g. 1-year limited manufacturer warranty\"\n />\n\n <TextareaField\n label=\"Return Policy\"\n value={form.returnPolicy}\n onChange={(e) => setField(\"returnPolicy\", e.target.value)}\n rows={3}\n placeholder=\"e.g. 30-day returns accepted\"\n />\n </div>\n </PageSection>\n\n {/* ── Actions ── */}\n <div className=\"flex flex-wrap items-center gap-3 pb-8\">\n <button\n type=\"button\"\n onClick={() => navigate?.(`${basePath}/seller/items`)}\n className=\"rounded-button border border-border-strong px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n Cancel\n </button>\n\n <button\n type=\"button\"\n onClick={() => void handleSave(false)}\n disabled={!isValid || saving}\n aria-disabled={!isValid || saving}\n title={\n !isValid\n ? \"Fill in all required fields to continue\"\n : undefined\n }\n className={cn(\n \"inline-flex items-center gap-2 rounded-button px-5 py-2 text-sm font-medium transition-colors\",\n \"border border-border-strong bg-bg-surface text-text-primary\",\n \"hover:bg-bg-sunken\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n )}\n >\n {saving ? (\n <>\n <Loader2 size={15} className=\"animate-spin\" />\n Saving...\n </>\n ) : (\n \"Save Changes\"\n )}\n </button>\n\n {canResubmit && (\n <button\n type=\"button\"\n onClick={() => void handleSave(true)}\n disabled={!isValid || saving}\n aria-disabled={!isValid || saving}\n className={cn(\n \"inline-flex items-center gap-2 rounded-button px-5 py-2 text-sm font-medium transition-colors\",\n \"bg-action-primary-bg text-action-primary-text\",\n \"hover:bg-action-primary-bg/90\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n )}\n >\n {saving ? (\n <>\n <Loader2 size={15} className=\"animate-spin\" />\n Saving...\n </>\n ) : (\n \"Save & Resubmit for Review\"\n )}\n </button>\n )}\n </div>\n </div>\n )}\n </div>\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 InvitationDecisionPage: FC;
4
- //# sourceMappingURL=InvitationDecisionPage.d.ts.map
@@ -1,31 +1,31 @@
1
- import { useDevportal as e } from "../providers/DevportalProvider.js";
2
- import { EmptyState as t } from "../components/EmptyState.js";
3
- import { useAcceptInvitationMutation as n, useGetInvitationByTokenQuery as r, useRejectInvitationMutation as i } from "../../generated/global-operations.js";
4
- import { PageLayout as a, PageSection as o } from "../components/PageLayout.js";
1
+ import { PageLayout as e, PageSection as t } from "../components/PageLayout.js";
2
+ import { EmptyState as n } from "../components/EmptyState.js";
3
+ import { useAcceptInvitationMutation as r, useGetInvitationByTokenQuery as i, useRejectInvitationMutation as a } from "../../generated/global-operations.js";
4
+ import { useDevportal as o } from "../providers/DevportalProvider.js";
5
5
  import "../hooks/index.js";
6
6
  import { CheckCircle as s, Loader2 as c, Mail as l, Shield as u, XCircle as d } from "lucide-react";
7
7
  import { useParams as f } from "react-router";
8
8
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
9
- //#region src/devportal/pages/InvitationDecisionPage.tsx
9
+ // src/devportal/pages/InvitationDecisionPage.tsx
10
10
  var h = () => {
11
- let { token: h } = f(), { navigate: g, basePath: _ } = e(), { data: v, loading: y, error: b } = r({
11
+ let { token: h } = f(), { navigate: g, basePath: _ } = o(), { data: v, loading: y, error: b } = i({
12
12
  variables: { token: h ?? "" },
13
13
  skip: !h,
14
14
  fetchPolicy: "cache-and-network"
15
- }), [x, { loading: S, data: C }] = n(), [w, { loading: T, data: E }] = i(), D = v?.developerOrgInvitationByToken, O = C?.acceptDeveloperOrgInvitation, k = E?.rejectDeveloperOrgInvitation, A = async () => {
15
+ }), [x, { loading: S, data: C }] = r(), [w, { loading: T, data: E }] = a(), D = v?.developerOrgInvitationByToken, O = C?.acceptDeveloperOrgInvitation, k = E?.rejectDeveloperOrgInvitation, A = async () => {
16
16
  h && await x({ variables: { token: h } });
17
17
  }, j = async () => {
18
18
  h && await w({ variables: { token: h } });
19
19
  };
20
- return y && !D ? /* @__PURE__ */ p(a, {
20
+ return y && !D ? /* @__PURE__ */ p(e, {
21
21
  title: "Developer Team Invitation",
22
22
  children: /* @__PURE__ */ p("div", {
23
23
  className: "flex items-center justify-center py-16 text-text-secondary",
24
24
  children: /* @__PURE__ */ p(c, { className: "h-8 w-8 animate-spin" })
25
25
  })
26
- }) : b || !D ? /* @__PURE__ */ p(a, {
26
+ }) : b || !D ? /* @__PURE__ */ p(e, {
27
27
  title: "Developer Team Invitation",
28
- children: /* @__PURE__ */ p(t, {
28
+ children: /* @__PURE__ */ p(n, {
29
29
  icon: /* @__PURE__ */ p(d, {
30
30
  size: 32,
31
31
  className: "text-status-error-text"
@@ -33,9 +33,9 @@ var h = () => {
33
33
  title: "Invitation not available",
34
34
  description: b?.message || "This invitation is invalid, expired, or not available to your signed-in account."
35
35
  })
36
- }) : O ? /* @__PURE__ */ p(a, {
36
+ }) : O ? /* @__PURE__ */ p(e, {
37
37
  title: "Invitation accepted",
38
- children: /* @__PURE__ */ p(t, {
38
+ children: /* @__PURE__ */ p(n, {
39
39
  icon: /* @__PURE__ */ p(s, {
40
40
  size: 32,
41
41
  className: "text-status-success-text"
@@ -49,9 +49,9 @@ var h = () => {
49
49
  children: "Open organization"
50
50
  })
51
51
  })
52
- }) : k ? /* @__PURE__ */ p(a, {
52
+ }) : k ? /* @__PURE__ */ p(e, {
53
53
  title: "Invitation declined",
54
- children: /* @__PURE__ */ p(t, {
54
+ children: /* @__PURE__ */ p(n, {
55
55
  icon: /* @__PURE__ */ p(d, {
56
56
  size: 32,
57
57
  className: "text-status-warning-text"
@@ -65,12 +65,12 @@ var h = () => {
65
65
  children: "Return to Devportal"
66
66
  })
67
67
  })
68
- }) : /* @__PURE__ */ p(a, {
68
+ }) : /* @__PURE__ */ p(e, {
69
69
  title: "Developer Team Invitation",
70
70
  description: "Review your invitation to join a developer organization",
71
71
  children: /* @__PURE__ */ m("div", {
72
72
  className: "mx-auto max-w-2xl space-y-6",
73
- children: [/* @__PURE__ */ p(o, {
73
+ children: [/* @__PURE__ */ p(t, {
74
74
  title: "Invitation details",
75
75
  children: /* @__PURE__ */ m("div", {
76
76
  className: "rounded-card border border-border-seam bg-bg-surface p-6 space-y-4",
@@ -136,7 +136,6 @@ var h = () => {
136
136
  })
137
137
  });
138
138
  };
139
- //#endregion
140
139
  export { h as InvitationDecisionPage };
141
140
 
142
141
  //# sourceMappingURL=InvitationDecisionPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvitationDecisionPage.js","names":[],"sources":["../../../src/devportal/pages/InvitationDecisionPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useParams } from \"react-router\";\nimport { CheckCircle, Loader2, Mail, Shield, XCircle } from \"lucide-react\";\n\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport {\n useAcceptInvitationMutation,\n useGetInvitationByTokenQuery,\n useRejectInvitationMutation,\n} from \"../hooks\";\n\nexport const InvitationDecisionPage: FC = () => {\n const { token } = useParams<{ token: string }>();\n const { navigate, basePath } = useDevportal();\n\n const { data, loading, error } = useGetInvitationByTokenQuery({\n variables: { token: token ?? \"\" },\n skip: !token,\n fetchPolicy: \"cache-and-network\",\n });\n\n const [acceptInvitation, { loading: accepting, data: acceptedData }] =\n useAcceptInvitationMutation();\n const [rejectInvitation, { loading: rejecting, data: rejectedData }] =\n useRejectInvitationMutation();\n\n const invitation = data?.developerOrgInvitationByToken;\n const acceptedMember = acceptedData?.acceptDeveloperOrgInvitation;\n const rejected = rejectedData?.rejectDeveloperOrgInvitation;\n\n const handleAccept = async () => {\n if (!token) return;\n await acceptInvitation({ variables: { token } });\n };\n\n const handleReject = async () => {\n if (!token) return;\n await rejectInvitation({ variables: { token } });\n };\n\n if (loading && !invitation) {\n return (\n <PageLayout title=\"Developer Team Invitation\">\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 (error || !invitation) {\n return (\n <PageLayout title=\"Developer Team Invitation\">\n <EmptyState\n icon={<XCircle size={32} className=\"text-status-error-text\" />}\n title=\"Invitation not available\"\n description={\n error?.message ||\n \"This invitation is invalid, expired, or not available to your signed-in account.\"\n }\n />\n </PageLayout>\n );\n }\n\n if (acceptedMember) {\n return (\n <PageLayout title=\"Invitation accepted\">\n <EmptyState\n icon={<CheckCircle size={32} className=\"text-status-success-text\" />}\n title=\"You joined the developer organization\"\n description={`You now have ${invitation.role.toLowerCase()} access to ${invitation.organization.name}.`}\n action={\n <button\n type=\"button\"\n onClick={() =>\n navigate?.(\n `${basePath}/organizations/${invitation.organization.id}`,\n )\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n Open organization\n </button>\n }\n />\n </PageLayout>\n );\n }\n\n if (rejected) {\n return (\n <PageLayout title=\"Invitation declined\">\n <EmptyState\n icon={<XCircle size={32} className=\"text-status-warning-text\" />}\n title=\"Invitation declined\"\n description={`You declined the invitation to join ${invitation.organization.name}.`}\n action={\n <button\n type=\"button\"\n onClick={() => navigate?.(`${basePath}`)}\n className=\"inline-flex items-center gap-2 rounded-md border border-border-seam px-4 py-2 text-sm font-medium hover:bg-bg-sunken\"\n >\n Return to Devportal\n </button>\n }\n />\n </PageLayout>\n );\n }\n\n return (\n <PageLayout\n title=\"Developer Team Invitation\"\n description=\"Review your invitation to join a developer organization\"\n >\n <div className=\"mx-auto max-w-2xl space-y-6\">\n <PageSection title=\"Invitation details\">\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Organization</p>\n <p className=\"text-lg font-semibold text-text-primary\">\n {invitation.organization.name}\n </p>\n </div>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div>\n <p className=\"text-sm text-text-secondary\">Invited email</p>\n <p className=\"flex items-center gap-2 text-text-primary\">\n <Mail size={14} />\n {invitation.invitedEmail}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Role</p>\n <p className=\"flex items-center gap-2 text-text-primary\">\n <Shield size={14} />\n {invitation.role}\n </p>\n </div>\n </div>\n {invitation.message ? (\n <div>\n <p className=\"text-sm text-text-secondary\">Message</p>\n <p className=\"rounded-md bg-bg-sunken px-3 py-2 text-sm text-text-primary whitespace-pre-line\">\n {invitation.message}\n </p>\n </div>\n ) : null}\n <p className=\"text-xs text-text-secondary\">\n Expires on {new Date(invitation.expiresAt).toLocaleString()}\n </p>\n </div>\n </PageSection>\n\n <div className=\"flex flex-wrap gap-3 justify-end\">\n <button\n type=\"button\"\n onClick={() => void handleReject()}\n disabled={accepting || rejecting}\n className=\"inline-flex items-center gap-2 rounded-md border border-border-seam px-4 py-2 text-sm font-medium hover:bg-bg-sunken disabled:opacity-50\"\n >\n {rejecting ? <Loader2 size={14} className=\"animate-spin\" /> : null}\n Decline\n </button>\n <button\n type=\"button\"\n onClick={() => void handleAccept()}\n disabled={accepting || rejecting}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50\"\n >\n {accepting ? <Loader2 size={14} className=\"animate-spin\" /> : null}\n Accept invitation\n </button>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"InvitationDecisionPage.js","names":["InvitationDecisionPage","useParams","useDevportal","useGetInvitationByTokenQuery","token","acceptInvitation","accepting","acceptedData","useAcceptInvitationMutation","rejectInvitation","rejecting","rejectedData","useRejectInvitationMutation","invitation","data","acceptedMember","rejected","handleAccept","handleReject","loading","PageLayout","Loader2","error","EmptyState","XCircle","CheckCircle","navigate","basePath","PageSection","Mail","Shield"],"sources":["../../../src/devportal/pages/InvitationDecisionPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useParams } from \"react-router\";\nimport { CheckCircle, Loader2, Mail, Shield, XCircle } from \"lucide-react\";\n\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport {\n useAcceptInvitationMutation,\n useGetInvitationByTokenQuery,\n useRejectInvitationMutation,\n} from \"../hooks\";\n\nexport const InvitationDecisionPage: FC = () => {\n const { token } = useParams<{ token: string }>();\n const { navigate, basePath } = useDevportal();\n\n const { data, loading, error } = useGetInvitationByTokenQuery({\n variables: { token: token ?? \"\" },\n skip: !token,\n fetchPolicy: \"cache-and-network\",\n });\n\n const [acceptInvitation, { loading: accepting, data: acceptedData }] =\n useAcceptInvitationMutation();\n const [rejectInvitation, { loading: rejecting, data: rejectedData }] =\n useRejectInvitationMutation();\n\n const invitation = data?.developerOrgInvitationByToken;\n const acceptedMember = acceptedData?.acceptDeveloperOrgInvitation;\n const rejected = rejectedData?.rejectDeveloperOrgInvitation;\n\n const handleAccept = async () => {\n if (!token) return;\n await acceptInvitation({ variables: { token } });\n };\n\n const handleReject = async () => {\n if (!token) return;\n await rejectInvitation({ variables: { token } });\n };\n\n if (loading && !invitation) {\n return (\n <PageLayout title=\"Developer Team Invitation\">\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 (error || !invitation) {\n return (\n <PageLayout title=\"Developer Team Invitation\">\n <EmptyState\n icon={<XCircle size={32} className=\"text-status-error-text\" />}\n title=\"Invitation not available\"\n description={\n error?.message ||\n \"This invitation is invalid, expired, or not available to your signed-in account.\"\n }\n />\n </PageLayout>\n );\n }\n\n if (acceptedMember) {\n return (\n <PageLayout title=\"Invitation accepted\">\n <EmptyState\n icon={<CheckCircle size={32} className=\"text-status-success-text\" />}\n title=\"You joined the developer organization\"\n description={`You now have ${invitation.role.toLowerCase()} access to ${invitation.organization.name}.`}\n action={\n <button\n type=\"button\"\n onClick={() =>\n navigate?.(\n `${basePath}/organizations/${invitation.organization.id}`,\n )\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n Open organization\n </button>\n }\n />\n </PageLayout>\n );\n }\n\n if (rejected) {\n return (\n <PageLayout title=\"Invitation declined\">\n <EmptyState\n icon={<XCircle size={32} className=\"text-status-warning-text\" />}\n title=\"Invitation declined\"\n description={`You declined the invitation to join ${invitation.organization.name}.`}\n action={\n <button\n type=\"button\"\n onClick={() => navigate?.(`${basePath}`)}\n className=\"inline-flex items-center gap-2 rounded-md border border-border-seam px-4 py-2 text-sm font-medium hover:bg-bg-sunken\"\n >\n Return to Devportal\n </button>\n }\n />\n </PageLayout>\n );\n }\n\n return (\n <PageLayout\n title=\"Developer Team Invitation\"\n description=\"Review your invitation to join a developer organization\"\n >\n <div className=\"mx-auto max-w-2xl space-y-6\">\n <PageSection title=\"Invitation details\">\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6 space-y-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Organization</p>\n <p className=\"text-lg font-semibold text-text-primary\">\n {invitation.organization.name}\n </p>\n </div>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div>\n <p className=\"text-sm text-text-secondary\">Invited email</p>\n <p className=\"flex items-center gap-2 text-text-primary\">\n <Mail size={14} />\n {invitation.invitedEmail}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Role</p>\n <p className=\"flex items-center gap-2 text-text-primary\">\n <Shield size={14} />\n {invitation.role}\n </p>\n </div>\n </div>\n {invitation.message ? (\n <div>\n <p className=\"text-sm text-text-secondary\">Message</p>\n <p className=\"rounded-md bg-bg-sunken px-3 py-2 text-sm text-text-primary whitespace-pre-line\">\n {invitation.message}\n </p>\n </div>\n ) : null}\n <p className=\"text-xs text-text-secondary\">\n Expires on {new Date(invitation.expiresAt).toLocaleString()}\n </p>\n </div>\n </PageSection>\n\n <div className=\"flex flex-wrap gap-3 justify-end\">\n <button\n type=\"button\"\n onClick={() => void handleReject()}\n disabled={accepting || rejecting}\n className=\"inline-flex items-center gap-2 rounded-md border border-border-seam px-4 py-2 text-sm font-medium hover:bg-bg-sunken disabled:opacity-50\"\n >\n {rejecting ? <Loader2 size={14} className=\"animate-spin\" /> : null}\n Decline\n </button>\n <button\n type=\"button\"\n onClick={() => void handleAccept()}\n disabled={accepting || rejecting}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50\"\n >\n {accepting ? <Loader2 size={14} className=\"animate-spin\" /> : null}\n Accept invitation\n </button>\n </div>\n </div>\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 ListingPreviewPage: FC;
4
- //# sourceMappingURL=ListingPreviewPage.d.ts.map
@@ -1,16 +1,16 @@
1
- import { useDevportal as e } from "../providers/DevportalProvider.js";
2
- import { useGetApplicationQuery as t } from "../../generated/global-operations.js";
3
- import { PageLayout as n, PageSection as r } from "../components/PageLayout.js";
4
- import { Alert as i } from "../components/ConfirmDialog.js";
5
- import { PermissionGuard as a } from "../components/PermissionGuard.js";
1
+ import { PageLayout as e, PageSection as t } from "../components/PageLayout.js";
2
+ import { Alert as n } from "../components/ConfirmDialog.js";
3
+ import { useDevportal as r } from "../providers/DevportalProvider.js";
6
4
  import "../components/index.js";
5
+ import { PermissionGuard as i } from "../components/PermissionGuard.js";
6
+ import { useGetApplicationQuery as a } from "../../generated/global-operations.js";
7
7
  import { useEffect as o } from "react";
8
8
  import { Markdown as s } from "@burdenoff/fe-libs/shared/components";
9
9
  import { CheckCircle as c, Download as l, ExternalLink as u, Eye as d, FileText as f, Globe as p, Loader2 as m, Shield as h, Star as g, Tag as _ } from "lucide-react";
10
10
  import { useParams as v } from "react-router";
11
11
  import { jsx as y, jsxs as b } from "react/jsx-runtime";
12
12
  import { useI18n as x } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
13
- //#region src/devportal/pages/ListingPreviewPage.tsx
13
+ // src/devportal/pages/ListingPreviewPage.tsx
14
14
  var S = {
15
15
  FREE: "Free",
16
16
  FREEMIUM: "Free with in-app purchases",
@@ -35,10 +35,10 @@ var S = {
35
35
  CLI_TOOL: "CLI Tool",
36
36
  SERVICE: "Service"
37
37
  }, w = () => {
38
- let { appId: w } = v(), { navigate: T, basePath: E } = e(), { t: D } = x(), O = (e, t) => {
38
+ let { appId: w } = v(), { navigate: T, basePath: E } = r(), { t: D } = x(), O = (e, t) => {
39
39
  let n = D(e);
40
40
  return n === e ? t : n;
41
- }, { data: k, loading: A, error: j } = t({
41
+ }, { data: k, loading: A, error: j } = a({
42
42
  variables: { id: w },
43
43
  skip: !w,
44
44
  fetchPolicy: "cache-and-network"
@@ -48,7 +48,7 @@ var S = {
48
48
  if (!w || !e) return;
49
49
  let t = window.__breadcrumbRegistry;
50
50
  return t?.register(w, e), () => t?.unregister(w);
51
- }, [w, M?.name]), A) return /* @__PURE__ */ y(n, {
51
+ }, [w, M?.name]), A) return /* @__PURE__ */ y(e, {
52
52
  title: O("devportal.marketplacePreview", "Marketplace Preview"),
53
53
  description: O("devportal.loading", "Loading..."),
54
54
  backLink: `/apps/${w}`,
@@ -58,21 +58,21 @@ var S = {
58
58
  children: /* @__PURE__ */ y(m, { className: "h-8 w-8 animate-spin text-text-secondary" })
59
59
  })
60
60
  });
61
- if (j || !M) return /* @__PURE__ */ y(n, {
61
+ if (j || !M) return /* @__PURE__ */ y(e, {
62
62
  title: O("devportal.marketplacePreview", "Marketplace Preview"),
63
63
  description: O("devportal.couldNotLoadApplication", "Could not load application"),
64
64
  backLink: `/apps/${w}`,
65
65
  backLabel: O("devportal.backToApplication", "Back to Application"),
66
- children: /* @__PURE__ */ y(i, {
66
+ children: /* @__PURE__ */ y(n, {
67
67
  variant: "error",
68
68
  title: O("devportal.failedToLoadApplication", "Failed to load application"),
69
69
  children: j?.message ?? O("devportal.applicationNotFound", "Application not found")
70
70
  })
71
71
  });
72
72
  let N = Array.isArray(M.screenshots) ? M.screenshots : [], P = M.status === "PUBLISHED";
73
- return /* @__PURE__ */ y(a, {
73
+ return /* @__PURE__ */ y(i, {
74
74
  authOnly: !0,
75
- children: /* @__PURE__ */ b(n, {
75
+ children: /* @__PURE__ */ b(e, {
76
76
  title: O("devportal.marketplacePreview", "Marketplace Preview"),
77
77
  description: O("devportal.marketplacePreviewDescription", "Preview how your app will appear in the marketplace"),
78
78
  purpose: O("devportal.marketplacePreviewPurpose", "See exactly how shoppers will experience your store listing — icon, screenshots, description, and pricing — before it goes live. Use it to catch missing assets or typos, then submit for review when the listing looks right."),
@@ -296,7 +296,7 @@ var S = {
296
296
  })
297
297
  ]
298
298
  }),
299
- /* @__PURE__ */ b(r, {
299
+ /* @__PURE__ */ b(t, {
300
300
  title: O("devportal.listingCompleteness", "Listing Completeness"),
301
301
  children: [/* @__PURE__ */ y("div", {
302
302
  className: "space-y-2",
@@ -357,7 +357,6 @@ var S = {
357
357
  })
358
358
  });
359
359
  };
360
- //#endregion
361
360
  export { w as ListingPreviewPage };
362
361
 
363
362
  //# sourceMappingURL=ListingPreviewPage.js.map