@burdenoff/microfe-devportal 2026.1108.1 → 2026.1108.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/utils/renderWithProviders.d.ts +0 -2
- package/dist/_virtual/_rolldown/runtime.js +4 -5
- package/dist/dev/main.d.ts +0 -1
- package/dist/devportal/AdminDevportalRoot.d.ts +0 -2
- package/dist/devportal/AdminDevportalRoot.js +9 -6
- package/dist/devportal/AdminDevportalRoot.js.map +1 -1
- package/dist/devportal/AdminDevportalRoutes.d.ts +1 -2
- package/dist/devportal/AdminDevportalRoutes.js +1 -2
- package/dist/devportal/AdminDevportalRoutes.js.map +1 -1
- package/dist/devportal/DevportalRoot.d.ts +0 -2
- package/dist/devportal/DevportalRoot.js +13 -10
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/DevportalRoutes.d.ts +1 -2
- package/dist/devportal/DevportalRoutes.js +19 -17
- package/dist/devportal/DevportalRoutes.js.map +1 -1
- package/dist/devportal/components/AppCard.d.ts +0 -2
- package/dist/devportal/components/AppCard.js +21 -22
- package/dist/devportal/components/AppCard.js.map +1 -1
- package/dist/devportal/components/ConfirmDialog.d.ts +0 -2
- package/dist/devportal/components/ConfirmDialog.js +9 -10
- package/dist/devportal/components/ConfirmDialog.js.map +1 -1
- package/dist/devportal/components/DataTable.d.ts +1 -3
- package/dist/devportal/components/DataTable.js +20 -21
- package/dist/devportal/components/DataTable.js.map +1 -1
- package/dist/devportal/components/EmptyState.d.ts +0 -2
- package/dist/devportal/components/EmptyState.js +1 -2
- package/dist/devportal/components/EmptyState.js.map +1 -1
- package/dist/devportal/components/FeatureFlaggedRoute.d.ts +0 -2
- package/dist/devportal/components/FeatureFlaggedRoute.js +1 -2
- package/dist/devportal/components/FeatureFlaggedRoute.js.map +1 -1
- package/dist/devportal/components/FormField.d.ts +0 -2
- package/dist/devportal/components/FormField.js +23 -24
- package/dist/devportal/components/FormField.js.map +1 -1
- package/dist/devportal/components/GrantDelegationModal.d.ts +0 -2
- package/dist/devportal/components/GrantDelegationModal.js +1 -2
- package/dist/devportal/components/GrantDelegationModal.js.map +1 -1
- package/dist/devportal/components/ImageUploadField.d.ts +0 -2
- package/dist/devportal/components/ImageUploadField.js +1 -2
- package/dist/devportal/components/ImageUploadField.js.map +1 -1
- package/dist/devportal/components/LoadingState.d.ts +0 -2
- package/dist/devportal/components/LoadingState.js +6 -7
- package/dist/devportal/components/LoadingState.js.map +1 -1
- package/dist/devportal/components/ManifestViewer.d.ts +0 -2
- package/dist/devportal/components/ManifestViewer.js +1 -2
- package/dist/devportal/components/ManifestViewer.js.map +1 -1
- package/dist/devportal/components/MarkdownEditor.d.ts +0 -2
- package/dist/devportal/components/MarkdownEditor.js +1 -2
- package/dist/devportal/components/MarkdownEditor.js.map +1 -1
- package/dist/devportal/components/MultiSelectCombobox.d.ts +1 -2
- package/dist/devportal/components/MultiSelectCombobox.js +1 -2
- package/dist/devportal/components/MultiSelectCombobox.js.map +1 -1
- package/dist/devportal/components/NodeSmokePanel.d.ts +0 -2
- package/dist/devportal/components/NodeSmokePanel.js +17 -18
- package/dist/devportal/components/NodeSmokePanel.js.map +1 -1
- package/dist/devportal/components/OnboardingChecklist.d.ts +0 -2
- package/dist/devportal/components/OnboardingChecklist.js +15 -16
- package/dist/devportal/components/OnboardingChecklist.js.map +1 -1
- package/dist/devportal/components/PackageValidationPanel.d.ts +0 -2
- package/dist/devportal/components/PackageValidationPanel.js +12 -13
- package/dist/devportal/components/PackageValidationPanel.js.map +1 -1
- package/dist/devportal/components/PageLayout.d.ts +0 -2
- package/dist/devportal/components/PageLayout.js +16 -17
- package/dist/devportal/components/PageLayout.js.map +1 -1
- package/dist/devportal/components/PermissionGuard.d.ts +0 -2
- package/dist/devportal/components/PermissionGuard.js +5 -6
- package/dist/devportal/components/PermissionGuard.js.map +1 -1
- package/dist/devportal/components/RegisterPickupLocationModal.d.ts +0 -2
- package/dist/devportal/components/RegisterPickupLocationModal.js +13 -14
- package/dist/devportal/components/RegisterPickupLocationModal.js.map +1 -1
- package/dist/devportal/components/ReportOrderIssueModal.d.ts +0 -2
- package/dist/devportal/components/ReportOrderIssueModal.js +1 -2
- package/dist/devportal/components/ReportOrderIssueModal.js.map +1 -1
- package/dist/devportal/components/SecretDisplay.d.ts +0 -2
- package/dist/devportal/components/SecretDisplay.js +8 -9
- package/dist/devportal/components/SecretDisplay.js.map +1 -1
- package/dist/devportal/components/SectionNav.d.ts +0 -2
- package/dist/devportal/components/SectionNav.js +11 -12
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/components/SelectionCheckbox.d.ts +1 -2
- package/dist/devportal/components/SelectionCheckbox.js +1 -2
- package/dist/devportal/components/SelectionCheckbox.js.map +1 -1
- package/dist/devportal/components/StatCard.d.ts +0 -2
- package/dist/devportal/components/StatCard.js +1 -2
- package/dist/devportal/components/StatCard.js.map +1 -1
- package/dist/devportal/components/StatusBadge.d.ts +0 -2
- package/dist/devportal/components/StatusBadge.js +18 -19
- package/dist/devportal/components/StatusBadge.js.map +1 -1
- package/dist/devportal/components/TelemetryErrorBoundary.d.ts +0 -2
- package/dist/devportal/components/TelemetryErrorBoundary.js +1 -2
- package/dist/devportal/components/TelemetryErrorBoundary.js.map +1 -1
- package/dist/devportal/components/index.d.ts +0 -1
- package/dist/devportal/components/index.js +22 -21
- package/dist/devportal/constants/appCategories.d.ts +0 -1
- package/dist/devportal/constants/appCategories.js +1 -2
- package/dist/devportal/constants/appCategories.js.map +1 -1
- package/dist/devportal/constants/developerLinks.d.ts +0 -1
- package/dist/devportal/constants/developerLinks.js +23 -23
- package/dist/devportal/constants/developerLinks.js.map +1 -1
- package/dist/devportal/constants/permissions.d.ts +0 -1
- package/dist/devportal/constants/permissions.js +1 -2
- package/dist/devportal/constants/permissions.js.map +1 -1
- package/dist/devportal/events/index.d.ts +0 -1
- package/dist/devportal/events/index.js +1 -2
- package/dist/devportal/events/index.js.map +1 -1
- package/dist/devportal/hooks/DevPortalProvider.d.ts +1 -3
- package/dist/devportal/hooks/DevPortalProvider.js +2 -3
- package/dist/devportal/hooks/DevPortalProvider.js.map +1 -1
- package/dist/devportal/hooks/index.d.ts +0 -1
- package/dist/devportal/hooks/index.js +6 -5
- package/dist/devportal/hooks/useCarrierPickupLocations.d.ts +0 -1
- package/dist/devportal/hooks/useCarrierPickupLocations.js +1 -2
- package/dist/devportal/hooks/useCarrierPickupLocations.js.map +1 -1
- package/dist/devportal/hooks/useGraphQL.d.ts +0 -2
- package/dist/devportal/hooks/useGraphQL.js +42 -53
- package/dist/devportal/hooks/useGraphQL.js.map +1 -1
- package/dist/devportal/hooks/useIsSellerSection.d.ts +0 -1
- package/dist/devportal/hooks/useIsSellerSection.js +1 -2
- package/dist/devportal/hooks/useIsSellerSection.js.map +1 -1
- package/dist/devportal/hooks/useOrganizationPickupAddresses.d.ts +0 -1
- package/dist/devportal/hooks/useOrganizationPickupAddresses.js +3 -8
- package/dist/devportal/hooks/useOrganizationPickupAddresses.js.map +1 -1
- package/dist/devportal/hooks/usePackageUpload.d.ts +0 -1
- package/dist/devportal/hooks/usePackageUpload.js +4 -4
- package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
- package/dist/devportal/hooks/usePermission.d.ts +0 -2
- package/dist/devportal/hooks/usePermission.js +2 -3
- package/dist/devportal/hooks/usePermission.js.map +1 -1
- package/dist/devportal/hooks/useProducts.d.ts +0 -1
- package/dist/devportal/hooks/useProducts.js +1 -2
- package/dist/devportal/hooks/useProducts.js.map +1 -1
- package/dist/devportal/hooks/useSellerOrganization.d.ts +0 -1
- package/dist/devportal/hooks/useSellerOrganization.js +1 -2
- package/dist/devportal/hooks/useSellerOrganization.js.map +1 -1
- package/dist/devportal/index.d.ts +0 -1
- package/dist/devportal/index.js +13 -12
- package/dist/devportal/pages/AdminOrganizationVerificationPage.d.ts +0 -2
- package/dist/devportal/pages/AdminOrganizationVerificationPage.js +13 -13
- package/dist/devportal/pages/AdminOrganizationVerificationPage.js.map +1 -1
- package/dist/devportal/pages/AdminReviewPage.d.ts +0 -2
- package/dist/devportal/pages/AdminReviewPage.js +134 -135
- package/dist/devportal/pages/AdminReviewPage.js.map +1 -1
- package/dist/devportal/pages/AnalyticsDashboardPage.d.ts +0 -2
- package/dist/devportal/pages/AnalyticsDashboardPage.js +66 -67
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.d.ts +0 -2
- package/dist/devportal/pages/ApiKeysPage.js +127 -128
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.d.ts +0 -2
- package/dist/devportal/pages/AppLogsPage.js +18 -19
- package/dist/devportal/pages/AppLogsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.d.ts +0 -2
- package/dist/devportal/pages/ApplicationDetailPage.js +779 -778
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.d.ts +0 -2
- package/dist/devportal/pages/ApplicationVersionsPage.js +482 -483
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.d.ts +0 -2
- package/dist/devportal/pages/ApplicationsPage.js +35 -36
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.d.ts +0 -2
- package/dist/devportal/pages/CreateApiKeyPage.js +39 -39
- package/dist/devportal/pages/CreateApiKeyPage.js.map +1 -1
- package/dist/devportal/pages/CreateApplicationPage.d.ts +0 -2
- package/dist/devportal/pages/CreateApplicationPage.js +136 -137
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.d.ts +0 -2
- package/dist/devportal/pages/CreateOAuthClientPage.js +25 -24
- package/dist/devportal/pages/CreateOAuthClientPage.js.map +1 -1
- package/dist/devportal/pages/CreateOrganizationPage.d.ts +0 -2
- package/dist/devportal/pages/CreateOrganizationPage.js +32 -39
- package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
- package/dist/devportal/pages/CreatePhysicalItemPage.d.ts +0 -2
- package/dist/devportal/pages/CreatePhysicalItemPage.js +102 -103
- package/dist/devportal/pages/CreatePhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.d.ts +0 -2
- package/dist/devportal/pages/CreateWebhookPage.js +31 -32
- package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
- package/dist/devportal/pages/DashboardPage.d.ts +0 -2
- package/dist/devportal/pages/DashboardPage.js +21 -22
- package/dist/devportal/pages/DashboardPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.d.ts +0 -2
- package/dist/devportal/pages/DelegationsPage.js +83 -84
- package/dist/devportal/pages/DelegationsPage.js.map +1 -1
- package/dist/devportal/pages/DocumentationPage.d.ts +0 -2
- package/dist/devportal/pages/DocumentationPage.js +1 -2
- package/dist/devportal/pages/DocumentationPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.d.ts +0 -2
- package/dist/devportal/pages/EditApplicationPage.js +69 -70
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/EditPhysicalItemPage.d.ts +0 -2
- package/dist/devportal/pages/EditPhysicalItemPage.js +334 -335
- package/dist/devportal/pages/EditPhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/InvitationDecisionPage.d.ts +0 -2
- package/dist/devportal/pages/InvitationDecisionPage.js +16 -17
- package/dist/devportal/pages/InvitationDecisionPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.d.ts +0 -2
- package/dist/devportal/pages/ListingPreviewPage.js +14 -15
- package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
- package/dist/devportal/pages/NodeLifecyclePage.d.ts +0 -2
- package/dist/devportal/pages/NodeLifecyclePage.js +216 -221
- package/dist/devportal/pages/NodeLifecyclePage.js.map +1 -1
- package/dist/devportal/pages/OAuthCallbackPage.d.ts +0 -2
- package/dist/devportal/pages/OAuthCallbackPage.js +4 -5
- package/dist/devportal/pages/OAuthCallbackPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.d.ts +0 -2
- package/dist/devportal/pages/OAuthClientDetailPage.js +17 -16
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.d.ts +0 -2
- package/dist/devportal/pages/OAuthClientsPage.js +18 -19
- package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.d.ts +0 -2
- package/dist/devportal/pages/OrganizationDetailPage.js +444 -450
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.d.ts +0 -2
- package/dist/devportal/pages/OrganizationMembersPage.js +240 -241
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationsPage.d.ts +0 -2
- package/dist/devportal/pages/OrganizationsPage.js +34 -35
- package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.d.ts +0 -2
- package/dist/devportal/pages/PublishPage.js +90 -91
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/PublisherPayoutsPage.d.ts +0 -2
- package/dist/devportal/pages/PublisherPayoutsPage.js +251 -258
- package/dist/devportal/pages/PublisherPayoutsPage.js.map +1 -1
- package/dist/devportal/pages/PublisherProfilePage.d.ts +0 -2
- package/dist/devportal/pages/PublisherProfilePage.js +26 -27
- package/dist/devportal/pages/PublisherProfilePage.js.map +1 -1
- package/dist/devportal/pages/ResourcesPage.d.ts +0 -2
- package/dist/devportal/pages/ResourcesPage.js +17 -18
- package/dist/devportal/pages/ResourcesPage.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.d.ts +0 -2
- package/dist/devportal/pages/RevenueDashboardPage.js +308 -308
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/pages/RevenueRedirectPage.d.ts +0 -2
- package/dist/devportal/pages/SellerDashboardPage.d.ts +0 -2
- package/dist/devportal/pages/SellerDashboardPage.js +14 -15
- package/dist/devportal/pages/SellerDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerItemsPage.d.ts +0 -2
- package/dist/devportal/pages/SellerItemsPage.js +8 -9
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/SellerOrdersPage.d.ts +0 -2
- package/dist/devportal/pages/SellerOrdersPage.js +10 -14
- package/dist/devportal/pages/SellerOrdersPage.js.map +1 -1
- package/dist/devportal/pages/SettingsPage.d.ts +0 -2
- package/dist/devportal/pages/SettingsPage.js +20 -21
- package/dist/devportal/pages/SettingsPage.js.map +1 -1
- package/dist/devportal/pages/SetupPage.d.ts +0 -2
- package/dist/devportal/pages/SetupPage.js +276 -277
- package/dist/devportal/pages/SetupPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.d.ts +0 -2
- package/dist/devportal/pages/StoreSubmissionPage.js +4 -5
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.d.ts +0 -2
- package/dist/devportal/pages/WebhookDetailPage.js +62 -67
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.d.ts +0 -2
- package/dist/devportal/pages/WebhooksPage.js +130 -131
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/providers/DevportalProvider.d.ts +0 -2
- package/dist/devportal/providers/DevportalProvider.js +2 -3
- package/dist/devportal/providers/DevportalProvider.js.map +1 -1
- package/dist/devportal/store/devportalStore.d.ts +0 -2
- package/dist/devportal/store/devportalStore.js +1 -2
- package/dist/devportal/store/devportalStore.js.map +1 -1
- package/dist/devportal/types/index.d.ts +0 -2
- package/dist/devportal/types/index.js +1 -2
- package/dist/devportal/types/index.js.map +1 -1
- package/dist/devportal/utils/cn.d.ts +0 -2
- package/dist/devportal/utils/cn.js +2 -3
- package/dist/devportal/utils/cn.js.map +1 -1
- package/dist/devportal/utils/constants.d.ts +0 -1
- package/dist/devportal/utils/constants.js +1 -2
- package/dist/devportal/utils/constants.js.map +1 -1
- package/dist/devportal/utils/currency.d.ts +0 -1
- package/dist/devportal/utils/currency.js +1 -2
- package/dist/devportal/utils/currency.js.map +1 -1
- package/dist/devportal/utils/developerOnboarding.d.ts +0 -1
- package/dist/devportal/utils/developerOnboarding.js +4 -5
- package/dist/devportal/utils/developerOnboarding.js.map +1 -1
- package/dist/devportal/utils/graphqlEndpoint.d.ts +0 -1
- package/dist/devportal/utils/graphqlEndpoint.js +1 -2
- package/dist/devportal/utils/graphqlEndpoint.js.map +1 -1
- package/dist/devportal/utils/i18n.d.ts +0 -1
- package/dist/devportal/utils/i18n.js +1 -2
- package/dist/devportal/utils/i18n.js.map +1 -1
- package/dist/devportal/utils/nodeLifecycle.d.ts +0 -2
- package/dist/devportal/utils/nodeLifecycle.js +6 -7
- package/dist/devportal/utils/nodeLifecycle.js.map +1 -1
- package/dist/devportal/utils/publisherPayouts.d.ts +0 -1
- package/dist/devportal/utils/publisherPayouts.js +14 -15
- package/dist/devportal/utils/publisherPayouts.js.map +1 -1
- package/dist/devportal/utils/recaptcha.d.ts +0 -1
- package/dist/devportal/utils/recaptcha.js +1 -2
- package/dist/devportal/utils/recaptcha.js.map +1 -1
- package/dist/devportal/utils/submitForReview.d.ts +0 -1
- package/dist/devportal/utils/submitForReview.js +15 -14
- package/dist/devportal/utils/submitForReview.js.map +1 -1
- package/dist/devportal/utils/uploadErrors.d.ts +0 -1
- package/dist/devportal/utils/uploadErrors.js +30 -30
- package/dist/devportal/utils/uploadErrors.js.map +1 -1
- package/dist/generated/global-operations.d.ts +2379 -2423
- package/dist/generated/global-operations.js +6 -5
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/global-types.d.ts +2 -22
- package/dist/generated/global-types.js +1 -2
- package/dist/generated/global-types.js.map +1 -1
- package/dist/generated/wspace-operations.d.ts +31 -8
- package/dist/generated/wspace-operations.js +2 -3
- package/dist/generated/wspace-operations.js.map +1 -1
- package/dist/generated/wspace-types.d.ts +4 -24
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -1
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +1 -2
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -1
- package/dist/node_modules/@apollo/client/errors/ServerError.js +1 -2
- package/dist/node_modules/@apollo/client/errors/ServerError.js.map +1 -1
- package/dist/node_modules/@apollo/client/errors/utils.js +1 -2
- package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -1
- package/dist/node_modules/@apollo/client/link/core/ApolloLink.js +7 -8
- package/dist/node_modules/@apollo/client/link/core/ApolloLink.js.map +1 -1
- package/dist/node_modules/@apollo/client/link/subscriptions/index.js +16 -17
- package/dist/node_modules/@apollo/client/link/subscriptions/index.js.map +1 -1
- package/dist/node_modules/@apollo/client/link/utils/createOperation.js +5 -6
- package/dist/node_modules/@apollo/client/link/utils/createOperation.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/caching/sizes.js +0 -1
- package/dist/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/graphql/print.js +4 -5
- package/dist/node_modules/@apollo/client/utilities/graphql/print.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/caches.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/caches.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +2 -3
- package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/memoize.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/memoize.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js +1 -2
- package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +1 -1
- package/dist/node_modules/@apollo/client/utilities/invariant/index.js +2 -3
- package/dist/node_modules/@apollo/client/utilities/invariant/index.js.map +1 -1
- package/dist/node_modules/@apollo/client/version.js +2 -3
- package/dist/node_modules/@apollo/client/version.js.map +1 -1
- package/dist/node_modules/@wry/caches/lib/weak.js +1 -2
- package/dist/node_modules/@wry/caches/lib/weak.js.map +1 -1
- package/dist/node_modules/@wry/trie/lib/index.js +2 -3
- package/dist/node_modules/@wry/trie/lib/index.js.map +1 -1
- package/dist/node_modules/clsx/dist/clsx.js +8 -7
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
- package/dist/node_modules/d3-array/dist/d3-array.js +204 -0
- package/dist/node_modules/d3-array/dist/d3-array.js.map +1 -0
- package/dist/node_modules/d3-color/dist/d3-color.js +388 -0
- package/dist/node_modules/d3-color/dist/d3-color.js.map +1 -0
- package/dist/node_modules/d3-format/dist/d3-format.js +186 -0
- package/dist/node_modules/d3-format/dist/d3-format.js.map +1 -0
- package/dist/node_modules/d3-interpolate/dist/d3-interpolate.js +185 -0
- package/dist/node_modules/d3-interpolate/dist/d3-interpolate.js.map +1 -0
- package/dist/node_modules/d3-path/{src/path.js → dist/d3-path.js} +39 -14
- package/dist/node_modules/d3-path/dist/d3-path.js.map +1 -0
- package/dist/node_modules/d3-scale/dist/d3-scale.js +622 -0
- package/dist/node_modules/d3-scale/dist/d3-scale.js.map +1 -0
- package/dist/node_modules/d3-shape/dist/d3-shape.js +901 -0
- package/dist/node_modules/d3-shape/dist/d3-shape.js.map +1 -0
- package/dist/node_modules/d3-time/dist/d3-time.js +241 -0
- package/dist/node_modules/d3-time/dist/d3-time.js.map +1 -0
- package/dist/node_modules/d3-time-format/{src/locale.js → dist/d3-time-format.js} +229 -174
- package/dist/node_modules/d3-time-format/dist/d3-time-format.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +1 -2
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/defaultOptions.js +1 -2
- package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/formatters.js +29 -22
- package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +3 -4
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js +2 -5
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +2 -3
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/protectedTokens.js +1 -2
- package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -1
- package/dist/node_modules/date-fns/constants.js +5 -5
- package/dist/node_modules/date-fns/constants.js.map +1 -1
- package/dist/node_modules/date-fns/constructFrom.js +2 -3
- package/dist/node_modules/date-fns/constructFrom.js.map +1 -1
- package/dist/node_modules/date-fns/differenceInCalendarDays.js +2 -3
- package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -1
- package/dist/node_modules/date-fns/format.js +15 -16
- package/dist/node_modules/date-fns/format.js.map +1 -1
- package/dist/node_modules/date-fns/getDayOfYear.js +7 -8
- package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -1
- package/dist/node_modules/date-fns/getISOWeek.js +8 -9
- package/dist/node_modules/date-fns/getISOWeek.js.map +1 -1
- package/dist/node_modules/date-fns/getISOWeekYear.js +8 -9
- package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/getWeek.js +8 -9
- package/dist/node_modules/date-fns/getWeek.js.map +1 -1
- package/dist/node_modules/date-fns/getWeekYear.js +9 -10
- package/dist/node_modules/date-fns/getWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/isDate.js +2 -3
- package/dist/node_modules/date-fns/isDate.js.map +1 -1
- package/dist/node_modules/date-fns/isValid.js +6 -7
- package/dist/node_modules/date-fns/isValid.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +1 -2
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +1 -2
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +1 -2
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +1 -2
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +1 -2
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +1 -2
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US.js +2 -3
- package/dist/node_modules/date-fns/locale/en-US.js.map +1 -1
- package/dist/node_modules/date-fns/startOfDay.js +2 -3
- package/dist/node_modules/date-fns/startOfDay.js.map +1 -1
- package/dist/node_modules/date-fns/startOfISOWeek.js +2 -3
- package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -1
- package/dist/node_modules/date-fns/startOfISOWeekYear.js +5 -6
- package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/startOfWeek.js +2 -3
- package/dist/node_modules/date-fns/startOfWeek.js.map +1 -1
- package/dist/node_modules/date-fns/startOfWeekYear.js +6 -7
- package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/startOfYear.js +3 -4
- package/dist/node_modules/date-fns/startOfYear.js.map +1 -1
- package/dist/node_modules/date-fns/toDate.js +2 -3
- package/dist/node_modules/date-fns/toDate.js.map +1 -1
- package/dist/node_modules/decimal.js-light/decimal.js +33 -30
- package/dist/node_modules/decimal.js-light/decimal.js.map +1 -1
- package/dist/node_modules/eventemitter3/index.js +2 -3
- package/dist/node_modules/eventemitter3/index.js.map +1 -1
- package/dist/node_modules/fast-equals/dist/es/index.js +109 -79
- package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -1
- package/dist/node_modules/graphql-ws/dist/client.js +76 -69
- package/dist/node_modules/graphql-ws/dist/client.js.map +1 -1
- package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js +2 -3
- package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +1 -1
- package/dist/node_modules/lodash/_DataView.js +4 -5
- package/dist/node_modules/lodash/_DataView.js.map +1 -1
- package/dist/node_modules/lodash/_Hash.js +1 -2
- package/dist/node_modules/lodash/_Hash.js.map +1 -1
- package/dist/node_modules/lodash/_ListCache.js +1 -2
- package/dist/node_modules/lodash/_ListCache.js.map +1 -1
- package/dist/node_modules/lodash/_Map.js +4 -5
- package/dist/node_modules/lodash/_Map.js.map +1 -1
- package/dist/node_modules/lodash/_MapCache.js +1 -2
- package/dist/node_modules/lodash/_MapCache.js.map +1 -1
- package/dist/node_modules/lodash/_Promise.js +4 -5
- package/dist/node_modules/lodash/_Promise.js.map +1 -1
- package/dist/node_modules/lodash/_Set.js +4 -5
- package/dist/node_modules/lodash/_Set.js.map +1 -1
- package/dist/node_modules/lodash/_SetCache.js +1 -2
- package/dist/node_modules/lodash/_SetCache.js.map +1 -1
- package/dist/node_modules/lodash/_Stack.js +3 -3
- package/dist/node_modules/lodash/_Stack.js.map +1 -1
- package/dist/node_modules/lodash/_Symbol.js +1 -2
- package/dist/node_modules/lodash/_Symbol.js.map +1 -1
- package/dist/node_modules/lodash/_Uint8Array.js +1 -2
- package/dist/node_modules/lodash/_Uint8Array.js.map +1 -1
- package/dist/node_modules/lodash/_WeakMap.js +4 -5
- package/dist/node_modules/lodash/_WeakMap.js.map +1 -1
- package/dist/node_modules/lodash/_apply.js +1 -2
- package/dist/node_modules/lodash/_apply.js.map +1 -1
- package/dist/node_modules/lodash/_arrayEvery.js +1 -2
- package/dist/node_modules/lodash/_arrayEvery.js.map +1 -1
- package/dist/node_modules/lodash/_arrayFilter.js +1 -2
- package/dist/node_modules/lodash/_arrayFilter.js.map +1 -1
- package/dist/node_modules/lodash/_arrayIncludes.js +1 -2
- package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -1
- package/dist/node_modules/lodash/_arrayIncludesWith.js +1 -2
- package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -1
- package/dist/node_modules/lodash/_arrayLikeKeys.js +5 -6
- package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -1
- package/dist/node_modules/lodash/_arrayMap.js +1 -2
- package/dist/node_modules/lodash/_arrayMap.js.map +1 -1
- package/dist/node_modules/lodash/_arrayPush.js +1 -2
- package/dist/node_modules/lodash/_arrayPush.js.map +1 -1
- package/dist/node_modules/lodash/_arraySome.js +1 -2
- package/dist/node_modules/lodash/_arraySome.js.map +1 -1
- package/dist/node_modules/lodash/_asciiToArray.js +1 -2
- package/dist/node_modules/lodash/_asciiToArray.js.map +1 -1
- package/dist/node_modules/lodash/_assocIndexOf.js +1 -2
- package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -1
- package/dist/node_modules/lodash/_baseAssignValue.js +1 -2
- package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -1
- package/dist/node_modules/lodash/_baseEach.js +1 -2
- package/dist/node_modules/lodash/_baseEach.js.map +1 -1
- package/dist/node_modules/lodash/_baseEvery.js +1 -2
- package/dist/node_modules/lodash/_baseEvery.js.map +1 -1
- package/dist/node_modules/lodash/_baseExtremum.js +1 -2
- package/dist/node_modules/lodash/_baseExtremum.js.map +1 -1
- package/dist/node_modules/lodash/_baseFindIndex.js +1 -2
- package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -1
- package/dist/node_modules/lodash/_baseFlatten.js +1 -2
- package/dist/node_modules/lodash/_baseFlatten.js.map +1 -1
- package/dist/node_modules/lodash/_baseFor.js +1 -2
- package/dist/node_modules/lodash/_baseFor.js.map +1 -1
- package/dist/node_modules/lodash/_baseForOwn.js +4 -5
- package/dist/node_modules/lodash/_baseForOwn.js.map +1 -1
- package/dist/node_modules/lodash/_baseGet.js +1 -2
- package/dist/node_modules/lodash/_baseGet.js.map +1 -1
- package/dist/node_modules/lodash/_baseGetAllKeys.js +4 -5
- package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -1
- package/dist/node_modules/lodash/_baseGetTag.js +1 -2
- package/dist/node_modules/lodash/_baseGetTag.js.map +1 -1
- package/dist/node_modules/lodash/_baseGt.js +1 -2
- package/dist/node_modules/lodash/_baseGt.js.map +1 -1
- package/dist/node_modules/lodash/_baseHasIn.js +1 -2
- package/dist/node_modules/lodash/_baseHasIn.js.map +1 -1
- package/dist/node_modules/lodash/_baseIndexOf.js +1 -2
- package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -1
- package/dist/node_modules/lodash/_baseIsArguments.js +1 -2
- package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -1
- package/dist/node_modules/lodash/_baseIsEqual.js +4 -5
- package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -1
- package/dist/node_modules/lodash/_baseIsEqualDeep.js +10 -11
- package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -1
- package/dist/node_modules/lodash/_baseIsMatch.js +1 -2
- package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -1
- package/dist/node_modules/lodash/_baseIsNaN.js +1 -2
- package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -1
- package/dist/node_modules/lodash/_baseIsNative.js +5 -6
- package/dist/node_modules/lodash/_baseIsNative.js.map +1 -1
- package/dist/node_modules/lodash/_baseIsTypedArray.js +4 -5
- package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -1
- package/dist/node_modules/lodash/_baseIteratee.js +6 -7
- package/dist/node_modules/lodash/_baseIteratee.js.map +1 -1
- package/dist/node_modules/lodash/_baseKeys.js +1 -2
- package/dist/node_modules/lodash/_baseKeys.js.map +1 -1
- package/dist/node_modules/lodash/_baseLt.js +1 -2
- package/dist/node_modules/lodash/_baseLt.js.map +1 -1
- package/dist/node_modules/lodash/_baseMap.js +4 -5
- package/dist/node_modules/lodash/_baseMap.js.map +1 -1
- package/dist/node_modules/lodash/_baseMatches.js +1 -2
- package/dist/node_modules/lodash/_baseMatches.js.map +1 -1
- package/dist/node_modules/lodash/_baseMatchesProperty.js +7 -8
- package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -1
- package/dist/node_modules/lodash/_baseOrderBy.js +11 -12
- package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -1
- package/dist/node_modules/lodash/_baseProperty.js +1 -2
- package/dist/node_modules/lodash/_baseProperty.js.map +1 -1
- package/dist/node_modules/lodash/_basePropertyDeep.js +1 -2
- package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -1
- package/dist/node_modules/lodash/_baseRange.js +1 -2
- package/dist/node_modules/lodash/_baseRange.js.map +1 -1
- package/dist/node_modules/lodash/_baseRest.js +1 -2
- package/dist/node_modules/lodash/_baseRest.js.map +1 -1
- package/dist/node_modules/lodash/_baseSetToString.js +5 -6
- package/dist/node_modules/lodash/_baseSetToString.js.map +1 -1
- package/dist/node_modules/lodash/_baseSlice.js +1 -2
- package/dist/node_modules/lodash/_baseSlice.js.map +1 -1
- package/dist/node_modules/lodash/_baseSome.js +1 -2
- package/dist/node_modules/lodash/_baseSome.js.map +1 -1
- package/dist/node_modules/lodash/_baseSortBy.js +1 -2
- package/dist/node_modules/lodash/_baseSortBy.js.map +1 -1
- package/dist/node_modules/lodash/_baseTimes.js +1 -2
- package/dist/node_modules/lodash/_baseTimes.js.map +1 -1
- package/dist/node_modules/lodash/_baseToString.js +6 -7
- package/dist/node_modules/lodash/_baseToString.js.map +1 -1
- package/dist/node_modules/lodash/_baseTrim.js +1 -2
- package/dist/node_modules/lodash/_baseTrim.js.map +1 -1
- package/dist/node_modules/lodash/_baseUnary.js +1 -2
- package/dist/node_modules/lodash/_baseUnary.js.map +1 -1
- package/dist/node_modules/lodash/_baseUniq.js +7 -8
- package/dist/node_modules/lodash/_baseUniq.js.map +1 -1
- package/dist/node_modules/lodash/_cacheHas.js +1 -2
- package/dist/node_modules/lodash/_cacheHas.js.map +1 -1
- package/dist/node_modules/lodash/_castPath.js +1 -2
- package/dist/node_modules/lodash/_castPath.js.map +1 -1
- package/dist/node_modules/lodash/_castSlice.js +1 -2
- package/dist/node_modules/lodash/_castSlice.js.map +1 -1
- package/dist/node_modules/lodash/_compareAscending.js +1 -2
- package/dist/node_modules/lodash/_compareAscending.js.map +1 -1
- package/dist/node_modules/lodash/_compareMultiple.js +1 -2
- package/dist/node_modules/lodash/_compareMultiple.js.map +1 -1
- package/dist/node_modules/lodash/_coreJsData.js +1 -2
- package/dist/node_modules/lodash/_coreJsData.js.map +1 -1
- package/dist/node_modules/lodash/_createBaseEach.js +1 -2
- package/dist/node_modules/lodash/_createBaseEach.js.map +1 -1
- package/dist/node_modules/lodash/_createBaseFor.js +1 -2
- package/dist/node_modules/lodash/_createBaseFor.js.map +1 -1
- package/dist/node_modules/lodash/_createCaseFirst.js +6 -7
- package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -1
- package/dist/node_modules/lodash/_createFind.js +5 -6
- package/dist/node_modules/lodash/_createFind.js.map +1 -1
- package/dist/node_modules/lodash/_createRange.js +4 -5
- package/dist/node_modules/lodash/_createRange.js.map +1 -1
- package/dist/node_modules/lodash/_createSet.js +6 -7
- package/dist/node_modules/lodash/_createSet.js.map +1 -1
- package/dist/node_modules/lodash/_defineProperty.js +1 -2
- package/dist/node_modules/lodash/_defineProperty.js.map +1 -1
- package/dist/node_modules/lodash/_equalArrays.js +1 -2
- package/dist/node_modules/lodash/_equalArrays.js.map +1 -1
- package/dist/node_modules/lodash/_equalByTag.js +5 -6
- package/dist/node_modules/lodash/_equalByTag.js.map +1 -1
- package/dist/node_modules/lodash/_equalObjects.js +1 -2
- package/dist/node_modules/lodash/_equalObjects.js.map +1 -1
- package/dist/node_modules/lodash/_freeGlobal.js +1 -2
- package/dist/node_modules/lodash/_freeGlobal.js.map +1 -1
- package/dist/node_modules/lodash/_getAllKeys.js +1 -2
- package/dist/node_modules/lodash/_getAllKeys.js.map +1 -1
- package/dist/node_modules/lodash/_getMapData.js +1 -2
- package/dist/node_modules/lodash/_getMapData.js.map +1 -1
- package/dist/node_modules/lodash/_getMatchData.js +4 -5
- package/dist/node_modules/lodash/_getMatchData.js.map +1 -1
- package/dist/node_modules/lodash/_getNative.js +1 -2
- package/dist/node_modules/lodash/_getNative.js.map +1 -1
- package/dist/node_modules/lodash/_getPrototype.js +1 -2
- package/dist/node_modules/lodash/_getPrototype.js.map +1 -1
- package/dist/node_modules/lodash/_getRawTag.js +1 -2
- package/dist/node_modules/lodash/_getRawTag.js.map +1 -1
- package/dist/node_modules/lodash/_getSymbols.js +1 -2
- package/dist/node_modules/lodash/_getSymbols.js.map +1 -1
- package/dist/node_modules/lodash/_getTag.js +9 -10
- package/dist/node_modules/lodash/_getTag.js.map +1 -1
- package/dist/node_modules/lodash/_getValue.js +1 -2
- package/dist/node_modules/lodash/_getValue.js.map +1 -1
- package/dist/node_modules/lodash/_hasPath.js +8 -9
- package/dist/node_modules/lodash/_hasPath.js.map +1 -1
- package/dist/node_modules/lodash/_hasUnicode.js +1 -2
- package/dist/node_modules/lodash/_hasUnicode.js.map +1 -1
- package/dist/node_modules/lodash/_hashClear.js +1 -2
- package/dist/node_modules/lodash/_hashClear.js.map +1 -1
- package/dist/node_modules/lodash/_hashDelete.js +1 -2
- package/dist/node_modules/lodash/_hashDelete.js.map +1 -1
- package/dist/node_modules/lodash/_hashGet.js +1 -2
- package/dist/node_modules/lodash/_hashGet.js.map +1 -1
- package/dist/node_modules/lodash/_hashHas.js +1 -2
- package/dist/node_modules/lodash/_hashHas.js.map +1 -1
- package/dist/node_modules/lodash/_hashSet.js +1 -2
- package/dist/node_modules/lodash/_hashSet.js.map +1 -1
- package/dist/node_modules/lodash/_isFlattenable.js +5 -6
- package/dist/node_modules/lodash/_isFlattenable.js.map +1 -1
- package/dist/node_modules/lodash/_isIndex.js +6 -7
- package/dist/node_modules/lodash/_isIndex.js.map +1 -1
- package/dist/node_modules/lodash/_isIterateeCall.js +5 -6
- package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -1
- package/dist/node_modules/lodash/_isKey.js +1 -2
- package/dist/node_modules/lodash/_isKey.js.map +1 -1
- package/dist/node_modules/lodash/_isKeyable.js +1 -2
- package/dist/node_modules/lodash/_isKeyable.js.map +1 -1
- package/dist/node_modules/lodash/_isMasked.js +1 -2
- package/dist/node_modules/lodash/_isMasked.js.map +1 -1
- package/dist/node_modules/lodash/_isPrototype.js +1 -2
- package/dist/node_modules/lodash/_isPrototype.js.map +1 -1
- package/dist/node_modules/lodash/_isStrictComparable.js +1 -2
- package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -1
- package/dist/node_modules/lodash/_listCacheClear.js +1 -2
- package/dist/node_modules/lodash/_listCacheClear.js.map +1 -1
- package/dist/node_modules/lodash/_listCacheDelete.js +1 -2
- package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -1
- package/dist/node_modules/lodash/_listCacheGet.js +1 -2
- package/dist/node_modules/lodash/_listCacheGet.js.map +1 -1
- package/dist/node_modules/lodash/_listCacheHas.js +1 -2
- package/dist/node_modules/lodash/_listCacheHas.js.map +1 -1
- package/dist/node_modules/lodash/_listCacheSet.js +1 -2
- package/dist/node_modules/lodash/_listCacheSet.js.map +1 -1
- package/dist/node_modules/lodash/_mapCacheClear.js +1 -2
- package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -1
- package/dist/node_modules/lodash/_mapCacheDelete.js +1 -2
- package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -1
- package/dist/node_modules/lodash/_mapCacheGet.js +1 -2
- package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -1
- package/dist/node_modules/lodash/_mapCacheHas.js +1 -2
- package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -1
- package/dist/node_modules/lodash/_mapCacheSet.js +1 -2
- package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -1
- package/dist/node_modules/lodash/_mapToArray.js +1 -2
- package/dist/node_modules/lodash/_mapToArray.js.map +1 -1
- package/dist/node_modules/lodash/_matchesStrictComparable.js +2 -3
- package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -1
- package/dist/node_modules/lodash/_memoizeCapped.js +1 -2
- package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -1
- package/dist/node_modules/lodash/_nativeCreate.js +1 -2
- package/dist/node_modules/lodash/_nativeCreate.js.map +1 -1
- package/dist/node_modules/lodash/_nativeKeys.js +1 -2
- package/dist/node_modules/lodash/_nativeKeys.js.map +1 -1
- package/dist/node_modules/lodash/_nodeUtil.js +1 -2
- package/dist/node_modules/lodash/_nodeUtil.js.map +1 -1
- package/dist/node_modules/lodash/_objectToString.js +1 -2
- package/dist/node_modules/lodash/_objectToString.js.map +1 -1
- package/dist/node_modules/lodash/_overArg.js +1 -2
- package/dist/node_modules/lodash/_overArg.js.map +1 -1
- package/dist/node_modules/lodash/_overRest.js +1 -2
- package/dist/node_modules/lodash/_overRest.js.map +1 -1
- package/dist/node_modules/lodash/_root.js +1 -2
- package/dist/node_modules/lodash/_root.js.map +1 -1
- package/dist/node_modules/lodash/_setCacheAdd.js +4 -6
- package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -1
- package/dist/node_modules/lodash/_setCacheHas.js +1 -2
- package/dist/node_modules/lodash/_setCacheHas.js.map +1 -1
- package/dist/node_modules/lodash/_setToArray.js +1 -2
- package/dist/node_modules/lodash/_setToArray.js.map +1 -1
- package/dist/node_modules/lodash/_setToString.js +1 -2
- package/dist/node_modules/lodash/_setToString.js.map +1 -1
- package/dist/node_modules/lodash/_shortOut.js +8 -9
- package/dist/node_modules/lodash/_shortOut.js.map +1 -1
- package/dist/node_modules/lodash/_stackClear.js +1 -2
- package/dist/node_modules/lodash/_stackClear.js.map +1 -1
- package/dist/node_modules/lodash/_stackDelete.js +1 -2
- package/dist/node_modules/lodash/_stackDelete.js.map +1 -1
- package/dist/node_modules/lodash/_stackGet.js +1 -2
- package/dist/node_modules/lodash/_stackGet.js.map +1 -1
- package/dist/node_modules/lodash/_stackHas.js +1 -2
- package/dist/node_modules/lodash/_stackHas.js.map +1 -1
- package/dist/node_modules/lodash/_stackSet.js +1 -2
- package/dist/node_modules/lodash/_stackSet.js.map +1 -1
- package/dist/node_modules/lodash/_strictIndexOf.js +1 -2
- package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -1
- package/dist/node_modules/lodash/_stringToArray.js +4 -5
- package/dist/node_modules/lodash/_stringToArray.js.map +1 -1
- package/dist/node_modules/lodash/_stringToPath.js +1 -2
- package/dist/node_modules/lodash/_stringToPath.js.map +1 -1
- package/dist/node_modules/lodash/_toKey.js +2 -3
- package/dist/node_modules/lodash/_toKey.js.map +1 -1
- package/dist/node_modules/lodash/_toSource.js +1 -2
- package/dist/node_modules/lodash/_toSource.js.map +1 -1
- package/dist/node_modules/lodash/_trimmedEndIndex.js +1 -2
- package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -1
- package/dist/node_modules/lodash/_unicodeToArray.js +1 -2
- package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -1
- package/dist/node_modules/lodash/constant.js +1 -2
- package/dist/node_modules/lodash/constant.js.map +1 -1
- package/dist/node_modules/lodash/debounce.js +1 -2
- package/dist/node_modules/lodash/debounce.js.map +1 -1
- package/dist/node_modules/lodash/eq.js +1 -2
- package/dist/node_modules/lodash/eq.js.map +1 -1
- package/dist/node_modules/lodash/every.js +7 -8
- package/dist/node_modules/lodash/every.js.map +1 -1
- package/dist/node_modules/lodash/find.js +1 -2
- package/dist/node_modules/lodash/find.js.map +1 -1
- package/dist/node_modules/lodash/findIndex.js +4 -5
- package/dist/node_modules/lodash/findIndex.js.map +1 -1
- package/dist/node_modules/lodash/flatMap.js +1 -2
- package/dist/node_modules/lodash/flatMap.js.map +1 -1
- package/dist/node_modules/lodash/get.js +1 -2
- package/dist/node_modules/lodash/get.js.map +1 -1
- package/dist/node_modules/lodash/hasIn.js +1 -2
- package/dist/node_modules/lodash/hasIn.js.map +1 -1
- package/dist/node_modules/lodash/identity.js +1 -2
- package/dist/node_modules/lodash/identity.js.map +1 -1
- package/dist/node_modules/lodash/isArguments.js +4 -5
- package/dist/node_modules/lodash/isArguments.js.map +1 -1
- package/dist/node_modules/lodash/isArray.js +1 -2
- package/dist/node_modules/lodash/isArray.js.map +1 -1
- package/dist/node_modules/lodash/isArrayLike.js +1 -2
- package/dist/node_modules/lodash/isArrayLike.js.map +1 -1
- package/dist/node_modules/lodash/isBoolean.js +1 -2
- package/dist/node_modules/lodash/isBoolean.js.map +1 -1
- package/dist/node_modules/lodash/isBuffer.js +1 -2
- package/dist/node_modules/lodash/isBuffer.js.map +1 -1
- package/dist/node_modules/lodash/isEqual.js +1 -2
- package/dist/node_modules/lodash/isEqual.js.map +1 -1
- package/dist/node_modules/lodash/isFunction.js +1 -2
- package/dist/node_modules/lodash/isFunction.js.map +1 -1
- package/dist/node_modules/lodash/isLength.js +4 -6
- package/dist/node_modules/lodash/isLength.js.map +1 -1
- package/dist/node_modules/lodash/isNaN.js +1 -2
- package/dist/node_modules/lodash/isNaN.js.map +1 -1
- package/dist/node_modules/lodash/isNil.js +1 -2
- package/dist/node_modules/lodash/isNil.js.map +1 -1
- package/dist/node_modules/lodash/isNumber.js +1 -2
- package/dist/node_modules/lodash/isNumber.js.map +1 -1
- package/dist/node_modules/lodash/isObject.js +1 -2
- package/dist/node_modules/lodash/isObject.js.map +1 -1
- package/dist/node_modules/lodash/isObjectLike.js +1 -2
- package/dist/node_modules/lodash/isObjectLike.js.map +1 -1
- package/dist/node_modules/lodash/isPlainObject.js +4 -5
- package/dist/node_modules/lodash/isPlainObject.js.map +1 -1
- package/dist/node_modules/lodash/isString.js +4 -5
- package/dist/node_modules/lodash/isString.js.map +1 -1
- package/dist/node_modules/lodash/isSymbol.js +1 -2
- package/dist/node_modules/lodash/isSymbol.js.map +1 -1
- package/dist/node_modules/lodash/isTypedArray.js +1 -2
- package/dist/node_modules/lodash/isTypedArray.js.map +1 -1
- package/dist/node_modules/lodash/keys.js +1 -2
- package/dist/node_modules/lodash/keys.js.map +1 -1
- package/dist/node_modules/lodash/last.js +1 -2
- package/dist/node_modules/lodash/last.js.map +1 -1
- package/dist/node_modules/lodash/map.js +6 -7
- package/dist/node_modules/lodash/map.js.map +1 -1
- package/dist/node_modules/lodash/mapValues.js +4 -5
- package/dist/node_modules/lodash/mapValues.js.map +1 -1
- package/dist/node_modules/lodash/max.js +5 -6
- package/dist/node_modules/lodash/max.js.map +1 -1
- package/dist/node_modules/lodash/memoize.js +1 -2
- package/dist/node_modules/lodash/memoize.js.map +1 -1
- package/dist/node_modules/lodash/min.js +5 -6
- package/dist/node_modules/lodash/min.js.map +1 -1
- package/dist/node_modules/lodash/noop.js +1 -2
- package/dist/node_modules/lodash/noop.js.map +1 -1
- package/dist/node_modules/lodash/now.js +1 -2
- package/dist/node_modules/lodash/now.js.map +1 -1
- package/dist/node_modules/lodash/property.js +6 -7
- package/dist/node_modules/lodash/property.js.map +1 -1
- package/dist/node_modules/lodash/range.js +1 -2
- package/dist/node_modules/lodash/range.js.map +1 -1
- package/dist/node_modules/lodash/some.js +7 -8
- package/dist/node_modules/lodash/some.js.map +1 -1
- package/dist/node_modules/lodash/sortBy.js +1 -2
- package/dist/node_modules/lodash/sortBy.js.map +1 -1
- package/dist/node_modules/lodash/stubArray.js +1 -2
- package/dist/node_modules/lodash/stubArray.js.map +1 -1
- package/dist/node_modules/lodash/stubFalse.js +1 -2
- package/dist/node_modules/lodash/stubFalse.js.map +1 -1
- package/dist/node_modules/lodash/throttle.js +4 -5
- package/dist/node_modules/lodash/throttle.js.map +1 -1
- package/dist/node_modules/lodash/toFinite.js +2 -3
- package/dist/node_modules/lodash/toFinite.js.map +1 -1
- package/dist/node_modules/lodash/toInteger.js +1 -2
- package/dist/node_modules/lodash/toInteger.js.map +1 -1
- package/dist/node_modules/lodash/toNumber.js +4 -5
- package/dist/node_modules/lodash/toNumber.js.map +1 -1
- package/dist/node_modules/lodash/toString.js +1 -2
- package/dist/node_modules/lodash/toString.js.map +1 -1
- package/dist/node_modules/lodash/uniqBy.js +1 -2
- package/dist/node_modules/lodash/uniqBy.js.map +1 -1
- package/dist/node_modules/lodash/upperFirst.js +1 -2
- package/dist/node_modules/lodash/upperFirst.js.map +1 -1
- package/dist/node_modules/object-assign/index.js +1 -2
- package/dist/node_modules/object-assign/index.js.map +1 -1
- package/dist/node_modules/prop-types/checkPropTypes.js +1 -2
- package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -1
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +1 -2
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +3 -3
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
- package/dist/node_modules/prop-types/index.js +1 -2
- package/dist/node_modules/prop-types/index.js.map +1 -1
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +1 -2
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -1
- package/dist/node_modules/prop-types/lib/has.js +1 -2
- package/dist/node_modules/prop-types/lib/has.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +1 -2
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +1 -2
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +2 -3
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -1
- package/dist/node_modules/react-is/cjs/react-is.development.js +31 -32
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -1
- package/dist/node_modules/react-is/cjs/react-is.production.min.js +1 -2
- package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
- package/dist/node_modules/react-is/index.js +2 -3
- package/dist/node_modules/react-is/index.js.map +1 -1
- package/dist/node_modules/react-smooth/es6/Animate.js +33 -41
- package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -1
- package/dist/node_modules/react-smooth/es6/AnimateManager.js +2 -5
- package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -1
- package/dist/node_modules/react-smooth/es6/configUpdate.js +1 -2
- package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -1
- package/dist/node_modules/react-smooth/es6/easing.js +1 -2
- package/dist/node_modules/react-smooth/es6/easing.js.map +1 -1
- package/dist/node_modules/react-smooth/es6/index.js +1 -2
- package/dist/node_modules/react-smooth/es6/index.js.map +1 -1
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js +1 -2
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -1
- package/dist/node_modules/react-smooth/es6/util.js +17 -16
- package/dist/node_modules/react-smooth/es6/util.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/Bar.js +103 -104
- package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/Brush.js +35 -36
- package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +60 -67
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +45 -46
- package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +20 -21
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/Line.js +79 -80
- package/dist/node_modules/recharts/es6/cartesian/Line.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +29 -30
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +23 -24
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +31 -32
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js +10 -11
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js +10 -11
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +5 -6
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js +7 -8
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -1
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +2 -5
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -1
- package/dist/node_modules/recharts/es6/chart/BarChart.js +7 -8
- package/dist/node_modules/recharts/es6/chart/BarChart.js.map +1 -1
- package/dist/node_modules/recharts/es6/chart/LineChart.js +5 -6
- package/dist/node_modules/recharts/es6/chart/LineChart.js.map +1 -1
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +534 -533
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/Cell.js +1 -2
- package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/Cursor.js +17 -18
- package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +35 -36
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +16 -17
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/Label.js +85 -86
- package/dist/node_modules/recharts/es6/component/Label.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/LabelList.js +20 -21
- package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/Legend.js +26 -23
- package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +16 -17
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/Text.js +18 -21
- package/dist/node_modules/recharts/es6/component/Text.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/Tooltip.js +16 -17
- package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +3 -4
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -1
- package/dist/node_modules/recharts/es6/container/Layer.js +5 -6
- package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -1
- package/dist/node_modules/recharts/es6/container/Surface.js +5 -6
- package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -1
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +21 -21
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -1
- package/dist/node_modules/recharts/es6/shape/Cross.js +4 -5
- package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -1
- package/dist/node_modules/recharts/es6/shape/Curve.js +38 -49
- package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -1
- package/dist/node_modules/recharts/es6/shape/Dot.js +3 -4
- package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -1
- package/dist/node_modules/recharts/es6/shape/Rectangle.js +8 -9
- package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -1
- package/dist/node_modules/recharts/es6/shape/Sector.js +33 -34
- package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -1
- package/dist/node_modules/recharts/es6/shape/Symbols.js +26 -34
- package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -1
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js +8 -9
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +24 -25
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/BarUtils.js +10 -11
- package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js +33 -34
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/ChartUtils.js +231 -236
- package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +1 -2
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/DOMUtils.js +1 -2
- package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/DataUtils.js +7 -8
- package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +20 -21
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/Events.js +0 -1
- package/dist/node_modules/recharts/es6/util/Events.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/Global.js +0 -1
- package/dist/node_modules/recharts/es6/util/Global.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +1 -2
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/LogUtils.js +9 -8
- package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/PolarUtils.js +4 -5
- package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/ReactUtils.js +11 -12
- package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +5 -6
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js +1 -2
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/TickUtils.js +4 -4
- package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js +0 -1
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +7 -6
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +1 -2
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +1 -2
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +1 -2
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/getLegendProps.js +9 -10
- package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +1 -2
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +4 -5
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js +3 -4
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -1
- package/dist/node_modules/recharts/es6/util/types.js +2 -3
- package/dist/node_modules/recharts/es6/util/types.js.map +1 -1
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +2 -3
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -1
- package/dist/node_modules/recharts-scale/es6/index.js +1 -1
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +1 -2
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -1
- package/dist/node_modules/recharts-scale/es6/util/utils.js +3 -4
- package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js +2 -3
- package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +41 -42
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +14 -15
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +21 -18
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +2 -3
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +1 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +229 -167
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +2 -3
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -1
- package/dist/node_modules/{rxjs/node_modules/tslib → tslib}/tslib.es6.js +1 -2
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/node_modules/victory-vendor/es/d3-scale.js +28 -45
- package/dist/node_modules/victory-vendor/es/d3-scale.js.map +1 -1
- package/dist/test/happydom.d.ts +1 -0
- package/dist/translations/en.d.ts +0 -1
- package/dist/translations/en.js +1 -2
- package/dist/translations/en.js.map +1 -1
- package/dist/utils/nativeBridge.d.ts +0 -1
- package/dist/utils/nativeBridge.js +1 -2
- package/package.json +76 -60
- package/dist/__tests__/setup.d.ts +0 -2
- package/dist/__tests__/setup.d.ts.map +0 -1
- package/dist/__tests__/utils/renderWithProviders.d.ts.map +0 -1
- package/dist/dev/main.d.ts.map +0 -1
- package/dist/devportal/AdminDevportalRoot.d.ts.map +0 -1
- package/dist/devportal/AdminDevportalRoutes.d.ts.map +0 -1
- package/dist/devportal/DevportalRoot.d.ts.map +0 -1
- package/dist/devportal/DevportalRoutes.d.ts.map +0 -1
- package/dist/devportal/components/AppCard.d.ts.map +0 -1
- package/dist/devportal/components/ConfirmDialog.d.ts.map +0 -1
- package/dist/devportal/components/DataTable.d.ts.map +0 -1
- package/dist/devportal/components/EmptyState.d.ts.map +0 -1
- package/dist/devportal/components/FeatureFlaggedRoute.d.ts.map +0 -1
- package/dist/devportal/components/FormField.d.ts.map +0 -1
- package/dist/devportal/components/GrantDelegationModal.d.ts.map +0 -1
- package/dist/devportal/components/ImageUploadField.d.ts.map +0 -1
- package/dist/devportal/components/LoadingState.d.ts.map +0 -1
- package/dist/devportal/components/ManifestViewer.d.ts.map +0 -1
- package/dist/devportal/components/MarkdownEditor.d.ts.map +0 -1
- package/dist/devportal/components/MultiSelectCombobox.d.ts.map +0 -1
- package/dist/devportal/components/NodeSmokePanel.d.ts.map +0 -1
- package/dist/devportal/components/OnboardingChecklist.d.ts.map +0 -1
- package/dist/devportal/components/PackageValidationPanel.d.ts.map +0 -1
- package/dist/devportal/components/PageLayout.d.ts.map +0 -1
- package/dist/devportal/components/PermissionGuard.d.ts.map +0 -1
- package/dist/devportal/components/RegisterPickupLocationModal.d.ts.map +0 -1
- package/dist/devportal/components/ReportOrderIssueModal.d.ts.map +0 -1
- package/dist/devportal/components/SecretDisplay.d.ts.map +0 -1
- package/dist/devportal/components/SectionNav.d.ts.map +0 -1
- package/dist/devportal/components/SelectionCheckbox.d.ts.map +0 -1
- package/dist/devportal/components/StatCard.d.ts.map +0 -1
- package/dist/devportal/components/StatusBadge.d.ts.map +0 -1
- package/dist/devportal/components/TelemetryErrorBoundary.d.ts.map +0 -1
- package/dist/devportal/components/index.d.ts.map +0 -1
- package/dist/devportal/constants/appCategories.d.ts.map +0 -1
- package/dist/devportal/constants/developerLinks.d.ts.map +0 -1
- package/dist/devportal/constants/permissions.d.ts.map +0 -1
- package/dist/devportal/events/index.d.ts.map +0 -1
- package/dist/devportal/hooks/DevPortalProvider.d.ts.map +0 -1
- package/dist/devportal/hooks/index.d.ts.map +0 -1
- package/dist/devportal/hooks/useCarrierPickupLocations.d.ts.map +0 -1
- package/dist/devportal/hooks/useGraphQL.d.ts.map +0 -1
- package/dist/devportal/hooks/useIsSellerSection.d.ts.map +0 -1
- package/dist/devportal/hooks/useOrganizationPickupAddresses.d.ts.map +0 -1
- package/dist/devportal/hooks/usePackageUpload.d.ts.map +0 -1
- package/dist/devportal/hooks/usePermission.d.ts.map +0 -1
- package/dist/devportal/hooks/useProducts.d.ts.map +0 -1
- package/dist/devportal/hooks/useSellerOrganization.d.ts.map +0 -1
- package/dist/devportal/index.d.ts.map +0 -1
- package/dist/devportal/pages/AdminOrganizationVerificationPage.d.ts.map +0 -1
- package/dist/devportal/pages/AdminReviewPage.d.ts.map +0 -1
- package/dist/devportal/pages/AnalyticsDashboardPage.d.ts.map +0 -1
- package/dist/devportal/pages/ApiKeysPage.d.ts.map +0 -1
- package/dist/devportal/pages/AppLogsPage.d.ts.map +0 -1
- package/dist/devportal/pages/ApplicationDetailPage.d.ts.map +0 -1
- package/dist/devportal/pages/ApplicationVersionsPage.d.ts.map +0 -1
- package/dist/devportal/pages/ApplicationsPage.d.ts.map +0 -1
- package/dist/devportal/pages/CreateApiKeyPage.d.ts.map +0 -1
- package/dist/devportal/pages/CreateApplicationPage.d.ts.map +0 -1
- package/dist/devportal/pages/CreateOAuthClientPage.d.ts.map +0 -1
- package/dist/devportal/pages/CreateOrganizationPage.d.ts.map +0 -1
- package/dist/devportal/pages/CreatePhysicalItemPage.d.ts.map +0 -1
- package/dist/devportal/pages/CreateWebhookPage.d.ts.map +0 -1
- package/dist/devportal/pages/DashboardPage.d.ts.map +0 -1
- package/dist/devportal/pages/DelegationsPage.d.ts.map +0 -1
- package/dist/devportal/pages/DocumentationPage.d.ts.map +0 -1
- package/dist/devportal/pages/EditApplicationPage.d.ts.map +0 -1
- package/dist/devportal/pages/EditPhysicalItemPage.d.ts.map +0 -1
- package/dist/devportal/pages/InvitationDecisionPage.d.ts.map +0 -1
- package/dist/devportal/pages/ListingPreviewPage.d.ts.map +0 -1
- package/dist/devportal/pages/NodeLifecyclePage.d.ts.map +0 -1
- package/dist/devportal/pages/OAuthCallbackPage.d.ts.map +0 -1
- package/dist/devportal/pages/OAuthClientDetailPage.d.ts.map +0 -1
- package/dist/devportal/pages/OAuthClientsPage.d.ts.map +0 -1
- package/dist/devportal/pages/OrganizationDetailPage.d.ts.map +0 -1
- package/dist/devportal/pages/OrganizationMembersPage.d.ts.map +0 -1
- package/dist/devportal/pages/OrganizationsPage.d.ts.map +0 -1
- package/dist/devportal/pages/PublishPage.d.ts.map +0 -1
- package/dist/devportal/pages/PublisherPayoutsPage.d.ts.map +0 -1
- package/dist/devportal/pages/PublisherProfilePage.d.ts.map +0 -1
- package/dist/devportal/pages/ResourcesPage.d.ts.map +0 -1
- package/dist/devportal/pages/RevenueDashboardPage.d.ts.map +0 -1
- package/dist/devportal/pages/RevenueRedirectPage.d.ts.map +0 -1
- package/dist/devportal/pages/SellerDashboardPage.d.ts.map +0 -1
- package/dist/devportal/pages/SellerItemsPage.d.ts.map +0 -1
- package/dist/devportal/pages/SellerOrdersPage.d.ts.map +0 -1
- package/dist/devportal/pages/SettingsPage.d.ts.map +0 -1
- package/dist/devportal/pages/SetupPage.d.ts.map +0 -1
- package/dist/devportal/pages/StoreSubmissionPage.d.ts.map +0 -1
- package/dist/devportal/pages/WebhookDetailPage.d.ts.map +0 -1
- package/dist/devportal/pages/WebhooksPage.d.ts.map +0 -1
- package/dist/devportal/providers/DevportalProvider.d.ts.map +0 -1
- package/dist/devportal/store/devportalStore.d.ts.map +0 -1
- package/dist/devportal/types/index.d.ts.map +0 -1
- package/dist/devportal/utils/cn.d.ts.map +0 -1
- package/dist/devportal/utils/constants.d.ts.map +0 -1
- package/dist/devportal/utils/currency.d.ts.map +0 -1
- package/dist/devportal/utils/developerOnboarding.d.ts.map +0 -1
- package/dist/devportal/utils/graphqlEndpoint.d.ts.map +0 -1
- package/dist/devportal/utils/i18n.d.ts.map +0 -1
- package/dist/devportal/utils/nodeLifecycle.d.ts.map +0 -1
- package/dist/devportal/utils/publisherPayouts.d.ts.map +0 -1
- package/dist/devportal/utils/recaptcha.d.ts.map +0 -1
- package/dist/devportal/utils/submitForReview.d.ts.map +0 -1
- package/dist/devportal/utils/uploadErrors.d.ts.map +0 -1
- package/dist/generated/global-operations.d.ts.map +0 -1
- package/dist/generated/global-types.d.ts.map +0 -1
- package/dist/generated/wspace-operations.d.ts.map +0 -1
- package/dist/generated/wspace-types.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/node_modules/d3-array/src/ascending.js +0 -8
- package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
- package/dist/node_modules/d3-array/src/bisect.js +0 -10
- package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
- package/dist/node_modules/d3-array/src/bisector.js +0 -43
- package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
- package/dist/node_modules/d3-array/src/descending.js +0 -8
- package/dist/node_modules/d3-array/src/descending.js.map +0 -1
- package/dist/node_modules/d3-array/src/max.js +0 -14
- package/dist/node_modules/d3-array/src/max.js.map +0 -1
- package/dist/node_modules/d3-array/src/min.js +0 -14
- package/dist/node_modules/d3-array/src/min.js.map +0 -1
- package/dist/node_modules/d3-array/src/number.js +0 -15
- package/dist/node_modules/d3-array/src/number.js.map +0 -1
- package/dist/node_modules/d3-array/src/quantile.js +0 -25
- package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
- package/dist/node_modules/d3-array/src/quickselect.js +0 -26
- package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
- package/dist/node_modules/d3-array/src/range.js +0 -10
- package/dist/node_modules/d3-array/src/range.js.map +0 -1
- package/dist/node_modules/d3-array/src/sort.js +0 -17
- package/dist/node_modules/d3-array/src/sort.js.map +0 -1
- package/dist/node_modules/d3-array/src/ticks.js +0 -34
- package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
- package/dist/node_modules/d3-color/src/color.js +0 -291
- package/dist/node_modules/d3-color/src/color.js.map +0 -1
- package/dist/node_modules/d3-color/src/define.js +0 -13
- package/dist/node_modules/d3-color/src/define.js.map +0 -1
- package/dist/node_modules/d3-format/src/defaultLocale.js +0 -15
- package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
- package/dist/node_modules/d3-format/src/exponent.js +0 -9
- package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatDecimal.js +0 -13
- package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatGroup.js +0 -11
- package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatNumerals.js +0 -12
- package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -13
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatRounded.js +0 -12
- package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -29
- package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatTrim.js +0 -20
- package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatTypes.js +0 -23
- package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
- package/dist/node_modules/d3-format/src/identity.js +0 -8
- package/dist/node_modules/d3-format/src/identity.js.map +0 -1
- package/dist/node_modules/d3-format/src/locale.js +0 -86
- package/dist/node_modules/d3-format/src/locale.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionFixed.js +0 -9
- package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -9
- package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionRound.js +0 -9
- package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/array.js +0 -15
- package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/basis.js +0 -16
- package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -13
- package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/color.js +0 -25
- package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/constant.js +0 -6
- package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/date.js +0 -11
- package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/number.js +0 -10
- package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -16
- package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/object.js +0 -14
- package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -14
- package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/rgb.js +0 -19
- package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/round.js +0 -10
- package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/string.js +0 -28
- package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/value.js +0 -18
- package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
- package/dist/node_modules/d3-path/src/path.js.map +0 -1
- package/dist/node_modules/d3-scale/src/band.js +0 -52
- package/dist/node_modules/d3-scale/src/band.js.map +0 -1
- package/dist/node_modules/d3-scale/src/constant.js +0 -10
- package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
- package/dist/node_modules/d3-scale/src/continuous.js +0 -73
- package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
- package/dist/node_modules/d3-scale/src/diverging.js +0 -82
- package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
- package/dist/node_modules/d3-scale/src/identity.js +0 -20
- package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
- package/dist/node_modules/d3-scale/src/init.js +0 -29
- package/dist/node_modules/d3-scale/src/init.js.map +0 -1
- package/dist/node_modules/d3-scale/src/linear.js +0 -36
- package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
- package/dist/node_modules/d3-scale/src/log.js +0 -77
- package/dist/node_modules/d3-scale/src/log.js.map +0 -1
- package/dist/node_modules/d3-scale/src/nice.js +0 -10
- package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
- package/dist/node_modules/d3-scale/src/number.js +0 -8
- package/dist/node_modules/d3-scale/src/number.js.map +0 -1
- package/dist/node_modules/d3-scale/src/ordinal.js +0 -31
- package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
- package/dist/node_modules/d3-scale/src/pow.js +0 -37
- package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
- package/dist/node_modules/d3-scale/src/quantile.js +0 -37
- package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
- package/dist/node_modules/d3-scale/src/quantize.js +0 -33
- package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
- package/dist/node_modules/d3-scale/src/radial.js +0 -39
- package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
- package/dist/node_modules/d3-scale/src/sequential.js +0 -67
- package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -30
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
- package/dist/node_modules/d3-scale/src/symlog.js +0 -30
- package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
- package/dist/node_modules/d3-scale/src/threshold.js +0 -25
- package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
- package/dist/node_modules/d3-scale/src/tickFormat.js +0 -31
- package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
- package/dist/node_modules/d3-scale/src/time.js +0 -47
- package/dist/node_modules/d3-scale/src/time.js.map +0 -1
- package/dist/node_modules/d3-scale/src/utcTime.js +0 -19
- package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
- package/dist/node_modules/d3-shape/src/area.js +0 -55
- package/dist/node_modules/d3-shape/src/area.js.map +0 -1
- package/dist/node_modules/d3-shape/src/array.js +0 -8
- package/dist/node_modules/d3-shape/src/array.js.map +0 -1
- package/dist/node_modules/d3-shape/src/constant.js +0 -10
- package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basis.js +0 -49
- package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -50
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -46
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/bump.js +0 -40
- package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/linear.js +0 -36
- package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -25
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -94
- package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/natural.js +0 -39
- package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/step.js +0 -47
- package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
- package/dist/node_modules/d3-shape/src/line.js +0 -30
- package/dist/node_modules/d3-shape/src/line.js.map +0 -1
- package/dist/node_modules/d3-shape/src/math.js +0 -8
- package/dist/node_modules/d3-shape/src/math.js.map +0 -1
- package/dist/node_modules/d3-shape/src/noop.js +0 -6
- package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/expand.js +0 -15
- package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/none.js +0 -8
- package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -15
- package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -21
- package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/order/none.js +0 -9
- package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
- package/dist/node_modules/d3-shape/src/path.js +0 -19
- package/dist/node_modules/d3-shape/src/path.js.map +0 -1
- package/dist/node_modules/d3-shape/src/point.js +0 -11
- package/dist/node_modules/d3-shape/src/point.js.map +0 -1
- package/dist/node_modules/d3-shape/src/stack.js +0 -34
- package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/square.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/star.js +0 -15
- package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol.js +0 -23
- package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
- package/dist/node_modules/d3-time/src/day.js +0 -21
- package/dist/node_modules/d3-time/src/day.js.map +0 -1
- package/dist/node_modules/d3-time/src/duration.js +0 -6
- package/dist/node_modules/d3-time/src/duration.js.map +0 -1
- package/dist/node_modules/d3-time/src/hour.js +0 -19
- package/dist/node_modules/d3-time/src/hour.js.map +0 -1
- package/dist/node_modules/d3-time/src/interval.js +0 -28
- package/dist/node_modules/d3-time/src/interval.js.map +0 -1
- package/dist/node_modules/d3-time/src/millisecond.js +0 -14
- package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
- package/dist/node_modules/d3-time/src/minute.js +0 -19
- package/dist/node_modules/d3-time/src/minute.js.map +0 -1
- package/dist/node_modules/d3-time/src/month.js +0 -18
- package/dist/node_modules/d3-time/src/month.js.map +0 -1
- package/dist/node_modules/d3-time/src/second.js +0 -13
- package/dist/node_modules/d3-time/src/second.js.map +0 -1
- package/dist/node_modules/d3-time/src/ticks.js +0 -125
- package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
- package/dist/node_modules/d3-time/src/week.js +0 -25
- package/dist/node_modules/d3-time/src/week.js.map +0 -1
- package/dist/node_modules/d3-time/src/year.js +0 -26
- package/dist/node_modules/d3-time/src/year.js.map +0 -1
- package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -62
- package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
- package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
- package/dist/node_modules/internmap/src/index.js +0 -40
- package/dist/node_modules/internmap/src/index.js.map +0 -1
- package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +0 -1
- package/dist/translations/en.d.ts.map +0 -1
- package/dist/utils/nativeBridge.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SellerOrdersPage.js","names":[],"sources":["../../../src/devportal/pages/SellerOrdersPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useEffect, useState, useMemo, useCallback } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n ShoppingBag,\n Loader2,\n AlertCircle,\n Package,\n ChevronDown,\n Flag,\n CheckCircle2,\n} from \"lucide-react\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { PermissionGuard, ReportOrderIssueModal } from \"../components\";\nimport type { OrderIssueCategory } from \"../components/ReportOrderIssueModal\";\nimport { formatCurrency } from \"../utils/currency\";\nimport { resolveGlobalGraphqlEndpoint } from \"../utils/graphqlEndpoint\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype SaleStatus =\n | \"PENDING\"\n | \"COMPLETED\"\n | \"REFUNDED\"\n | \"PARTIAL_REFUND\"\n | \"DISPUTED\"\n | \"CHARGEBACK\"\n | \"CANCELLED\";\n\ninterface OrgSummary {\n id: string;\n name: string;\n slug: string;\n kind: \"DIGITAL\" | \"PHYSICAL\";\n}\n\ninterface SellerOrder {\n id: string;\n storeOrderId: string | null;\n storeProductId: string | null;\n grossAmount: number;\n netAmount: number;\n platformFee: number;\n currency: string;\n status: SaleStatus;\n buyerUserId: string;\n purchasedAt: string;\n refundAmount: number | null;\n refundedAt: string | null;\n refundReason: string | null;\n discountAmount: number | null;\n taxAmount: number | null;\n}\n\ninterface IssueFlag {\n id: string;\n category: OrderIssueCategory;\n note: string | null;\n status: \"OPEN\" | \"RESOLVED\";\n raisedByOrgId: string;\n createdAt: string;\n}\n\nconst ISSUE_CATEGORY_LABELS: Record<OrderIssueCategory, string> = {\n OUT_OF_STOCK: \"Out of stock\",\n CANNOT_FULFILL: \"Cannot fulfill\",\n WRONG_ADDRESS: \"Wrong address\",\n OTHER: \"Other\",\n};\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst STATUS_STYLES: Record<SaleStatus, { label: string; className: string }> =\n {\n PENDING: {\n label: \"Pending\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n COMPLETED: {\n label: \"Completed\",\n className: \"text-status-success-text bg-status-success-bg-subtle\",\n },\n REFUNDED: {\n label: \"Refunded\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n PARTIAL_REFUND: {\n label: \"Partial Refund\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n DISPUTED: {\n label: \"Disputed\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n CHARGEBACK: {\n label: \"Chargeback\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n CANCELLED: {\n label: \"Cancelled\",\n className: \"text-text-muted bg-bg-muted\",\n },\n };\n\nconst STATUS_FILTER_OPTIONS: { value: SaleStatus | \"\"; label: string }[] = [\n { value: \"\", label: \"All Orders\" },\n { value: \"PENDING\", label: \"Pending\" },\n { value: \"COMPLETED\", label: \"Completed\" },\n { value: \"REFUNDED\", label: \"Refunded\" },\n { value: \"PARTIAL_REFUND\", label: \"Partial Refund\" },\n { value: \"DISPUTED\", label: \"Disputed\" },\n { value: \"CANCELLED\", label: \"Cancelled\" },\n];\n\n// ---------------------------------------------------------------------------\n// GraphQL\n// ---------------------------------------------------------------------------\n\nconst ORGS_QUERY = `\n query SellerOrdersOrgs {\n myDeveloperOrganizations {\n id\n name\n slug\n kind\n }\n }\n`;\n\nconst ORDERS_QUERY = `\n query SellerOrders($organizationId: ID!, $status: SaleStatus, $limit: Int, $offset: Int) {\n developerOrgSales(\n organizationId: $organizationId\n status: $status\n limit: $limit\n offset: $offset\n ) {\n totalCount\n edges {\n node {\n id\n storeOrderId\n storeProductId\n grossAmount\n netAmount\n platformFee\n currency\n status\n buyerUserId\n purchasedAt\n refundAmount\n refundedAt\n refundReason\n discountAmount\n taxAmount\n }\n }\n pageInfo { hasNextPage hasPreviousPage }\n }\n }\n`;\n\nconst RESOLVE_ORDER_ISSUE_MUTATION = `\n mutation ResolveOrderIssue($id: ID!, $organizationId: ID) {\n resolveOrderIssueFlag(id: $id, organizationId: $organizationId) {\n id\n status\n }\n }\n`;\n\nconst ISSUE_FLAG_FIELDS = `id category note status raisedByOrgId createdAt`;\n\n/**\n * One `orderIssueFlags` call per visible physical order, batched into a\n * single request via GraphQL field aliasing — avoids N network round-trips\n * for a page of up to 25 orders.\n */\nfunction buildIssueFlagsBatchQuery(orderIds: string[]): string {\n const fields = orderIds\n .map(\n (id, i) =>\n `f${i}: orderIssueFlags(orderId: ${JSON.stringify(id)}) { ${ISSUE_FLAG_FIELDS} }`,\n )\n .join(\"\\n \");\n return `query SellerOrderIssueFlags {\\n ${fields}\\n }`;\n}\n\nfunction formatDate(iso: string): string {\n return new Date(iso).toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n}\n\nfunction shortOrderId(id: string | null, fallback: string): string {\n if (id) return `#${id.slice(0, 8).toUpperCase()}`;\n return `#${fallback.slice(0, 8).toUpperCase()}`;\n}\n\n// ---------------------------------------------------------------------------\n// Page\n// ---------------------------------------------------------------------------\n\nexport const SellerOrdersPage: FC = () => {\n const { apiGatewayUrl, authToken } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string) => {\n const v = t(key);\n return v === key ? fallback : v;\n };\n\n const gqlUrl = resolveGlobalGraphqlEndpoint(apiGatewayUrl);\n\n const [orgsLoading, setOrgsLoading] = useState(true);\n const [orgs, setOrgs] = useState<OrgSummary[]>([]);\n const [selectedOrgId, setSelectedOrgId] = useState<string | null>(null);\n\n const [ordersLoading, setOrdersLoading] = useState(false);\n const [orders, setOrders] = useState<SellerOrder[]>([]);\n const [totalCount, setTotalCount] = useState(0);\n const [error, setError] = useState<string | null>(null);\n const [retryToken, setRetryToken] = useState(0);\n\n const [statusFilter, setStatusFilter] = useState<SaleStatus | \"\">(\"\");\n const [page, setPage] = useState(0);\n const PAGE_SIZE = 25;\n\n const headers = useMemo(\n () => ({\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n }),\n [authToken],\n );\n\n // Fetch orgs on mount\n useEffect(() => {\n let cancelled = false;\n setOrgsLoading(true);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ query: ORGS_QUERY }),\n });\n const json = (await res.json()) as {\n data?: { myDeveloperOrganizations?: OrgSummary[] };\n };\n if (cancelled) return;\n // Seller portal only ever shows PHYSICAL-kind orgs — see\n // DeveloperOrgKind (BOFF-7285).\n const fetched = (json.data?.myDeveloperOrganizations ?? []).filter(\n (org) => org.kind === \"PHYSICAL\",\n );\n setOrgs(fetched);\n if (fetched.length > 0) setSelectedOrgId(fetched[0]!.id);\n } catch {\n // leave orgs empty\n } finally {\n if (!cancelled) setOrgsLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [gqlUrl, headers]);\n\n // Fetch orders when org/filter/page changes\n useEffect(() => {\n if (!selectedOrgId) return;\n let cancelled = false;\n setOrdersLoading(true);\n setError(null);\n\n const run = async () => {\n try {\n const variables: Record<string, unknown> = {\n organizationId: selectedOrgId,\n limit: PAGE_SIZE,\n offset: page * PAGE_SIZE,\n };\n if (statusFilter) variables.status = statusFilter;\n\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ query: ORDERS_QUERY, variables }),\n });\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n const json = (await res.json()) as {\n data?: {\n developerOrgSales?: {\n totalCount: number;\n edges: {\n node: Omit<SellerOrder, \"status\"> & { status: string };\n }[];\n };\n };\n errors?: { message: string }[];\n };\n if (cancelled) return;\n if (json.errors?.length) {\n throw new Error(json.errors[0]?.message ?? \"GraphQL error\");\n }\n const conn = json.data?.developerOrgSales;\n setTotalCount(conn?.totalCount ?? 0);\n // Show all orders; physical-product ones have storeProductId set\n setOrders(\n (conn?.edges ?? []).map((e) => ({\n ...e.node,\n status: e.node.status as SaleStatus,\n })),\n );\n } catch (err) {\n if (!cancelled)\n setError(\n err instanceof Error ? err.message : \"Failed to load orders\",\n );\n } finally {\n if (!cancelled) setOrdersLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [selectedOrgId, statusFilter, page, gqlUrl, headers, retryToken]);\n\n // Physical product orders (storeProductId set) vs digital\n const physicalOrders = useMemo(\n () => orders.filter((o) => o.storeProductId !== null),\n [orders],\n );\n\n // Seller-reported issue flags for the currently visible physical orders,\n // keyed by storeOrderId. Fetched as one batched (aliased) request.\n const [issueFlagsByOrderId, setIssueFlagsByOrderId] = useState<\n Record<string, IssueFlag[]>\n >({});\n const [reportModalOrderId, setReportModalOrderId] = useState<string | null>(\n null,\n );\n const [resolvingFlagId, setResolvingFlagId] = useState<string | null>(null);\n\n const visibleStoreOrderIds = useMemo(\n () =>\n physicalOrders\n .map((o) => o.storeOrderId)\n .filter((id): id is string => id !== null),\n [physicalOrders],\n );\n\n const fetchIssueFlags = useCallback(async () => {\n if (visibleStoreOrderIds.length === 0) {\n setIssueFlagsByOrderId({});\n return;\n }\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n query: buildIssueFlagsBatchQuery(visibleStoreOrderIds),\n }),\n });\n const json = (await res.json()) as {\n data?: Record<string, IssueFlag[]>;\n };\n const next: Record<string, IssueFlag[]> = {};\n visibleStoreOrderIds.forEach((id, i) => {\n next[id] = json.data?.[`f${i}`] ?? [];\n });\n setIssueFlagsByOrderId(next);\n } catch {\n // Non-critical — the orders table itself still renders fine without flags\n }\n }, [gqlUrl, headers, visibleStoreOrderIds]);\n\n useEffect(() => {\n void fetchIssueFlags();\n }, [fetchIssueFlags]);\n\n const handleResolveFlag = async (flagId: string, organizationId: string) => {\n setResolvingFlagId(flagId);\n try {\n await fetch(gqlUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n query: RESOLVE_ORDER_ISSUE_MUTATION,\n variables: { id: flagId, organizationId },\n }),\n });\n await fetchIssueFlags();\n } finally {\n setResolvingFlagId(null);\n }\n };\n\n const stats = useMemo(() => {\n const all = physicalOrders;\n return {\n total: totalCount,\n pending: all.filter((o) => o.status === \"PENDING\").length,\n completed: all.filter((o) => o.status === \"COMPLETED\").length,\n refunded: all.filter(\n (o) => o.status === \"REFUNDED\" || o.status === \"PARTIAL_REFUND\",\n ).length,\n };\n }, [physicalOrders, totalCount]);\n\n if (orgsLoading) {\n return (\n <PageLayout title={tr(\"devportal.orders\", \"Orders\")}>\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 (orgs.length === 0) {\n return (\n <PageLayout\n title={tr(\"devportal.orders\", \"Orders\")}\n description={tr(\n \"devportal.ordersDesc\",\n \"Orders placed by customers for your physical items.\",\n )}\n >\n <EmptyState\n illustration=\"empty-generic\"\n icon={<ShoppingBag size={32} />}\n title={tr(\"devportal.noOrgForOrders\", \"No organization yet\")}\n description={tr(\n \"devportal.createOrgToSell\",\n \"Create a developer organization to start selling physical products and receive orders.\",\n )}\n />\n </PageLayout>\n );\n }\n\n return (\n <PermissionGuard authOnly>\n <PageLayout\n title={tr(\"devportal.orders\", \"Orders\")}\n description={tr(\n \"devportal.ordersDesc\",\n \"Orders placed by customers for your physical items.\",\n )}\n >\n {/* Controls row */}\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-6\">\n {/* Org picker (shown only when multiple orgs) */}\n {orgs.length > 1 && (\n <div className=\"relative\">\n <select\n value={selectedOrgId ?? \"\"}\n onChange={(e) => {\n setSelectedOrgId(e.target.value);\n setPage(0);\n }}\n className=\"appearance-none rounded-md border border-border-seam bg-bg-surface pl-3 pr-8 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary\"\n >\n {orgs.map((org) => (\n <option key={org.id} value={org.id}>\n {org.name}\n </option>\n ))}\n </select>\n <ChevronDown\n size={14}\n className=\"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-text-muted\"\n />\n </div>\n )}\n\n {/* Status filter */}\n <div className=\"relative\">\n <select\n value={statusFilter}\n onChange={(e) => {\n setStatusFilter(e.target.value as SaleStatus | \"\");\n setPage(0);\n }}\n className=\"appearance-none rounded-md border border-border-seam bg-bg-surface pl-3 pr-8 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary\"\n >\n {STATUS_FILTER_OPTIONS.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <ChevronDown\n size={14}\n className=\"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-text-muted\"\n />\n </div>\n </div>\n\n {/* Stats row */}\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-4 mb-6\">\n {[\n { label: \"Total Orders\", value: stats.total },\n {\n label: \"Pending\",\n value: stats.pending,\n color: \"text-status-warning-text\",\n },\n {\n label: \"Completed\",\n value: stats.completed,\n color: \"text-status-success-text\",\n },\n {\n label: \"Refunded\",\n value: stats.refunded,\n color: \"text-status-error-text\",\n },\n ].map((s) => (\n <div\n key={s.label}\n className=\"rounded-lg border border-border-seam bg-bg-surface px-4 py-3\"\n >\n <p className={`text-xs ${s.color ?? \"text-text-secondary\"}`}>\n {s.label}\n </p>\n <p className=\"mt-1 text-xl font-semibold tabular-nums\">\n {ordersLoading ? (\n <Loader2 className=\"h-4 w-4 animate-spin text-text-secondary\" />\n ) : (\n s.value\n )}\n </p>\n </div>\n ))}\n </div>\n\n {/* Error */}\n {error && (\n <div className=\"mb-4 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\n size={16}\n className=\"shrink-0 text-status-error-text\"\n />\n <span className=\"text-status-error-text\">{error}</span>\n <button\n onClick={() => setRetryToken((n) => n + 1)}\n className=\"ml-auto text-xs font-medium text-status-error-text underline\"\n >\n Retry\n </button>\n </div>\n )}\n\n {/* Orders table */}\n {ordersLoading ? (\n <div className=\"flex items-center justify-center py-16\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n </div>\n ) : physicalOrders.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Package size={32} />}\n title={\n statusFilter\n ? tr(\n \"devportal.noOrdersForFilter\",\n \"No orders match this filter\",\n )\n : tr(\"devportal.noOrdersYet\", \"No orders yet\")\n }\n description={\n statusFilter\n ? tr(\n \"devportal.tryDifferentFilter\",\n \"Try selecting a different status filter\",\n )\n : tr(\n \"devportal.ordersWillAppear\",\n \"Orders placed for your physical items will appear here once customers make purchases.\",\n )\n }\n />\n ) : (\n <>\n <div className=\"overflow-x-auto rounded-lg border border-border-seam\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border-seam bg-bg-sunken\">\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Order\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Product ID\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Buyer\n </th>\n <th className=\"px-4 py-3 text-right font-medium text-text-secondary\">\n Gross\n </th>\n <th className=\"px-4 py-3 text-right font-medium text-text-secondary\">\n Your Earnings\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Status\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Date\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Fulfillment Issue\n </th>\n </tr>\n </thead>\n <tbody>\n {physicalOrders.map((order) => {\n const badge =\n STATUS_STYLES[order.status] ?? STATUS_STYLES.PENDING;\n const flags = order.storeOrderId\n ? (issueFlagsByOrderId[order.storeOrderId] ?? [])\n : [];\n const openFlag = flags.find((f) => f.status === \"OPEN\");\n return (\n <tr\n key={order.id}\n className=\"border-b border-border-subtle last:border-0 hover:bg-bg-sunken/50 transition-colors\"\n >\n <td className=\"px-4 py-3\">\n <span className=\"font-mono text-xs font-semibold text-text-primary\">\n {shortOrderId(order.storeOrderId, order.id)}\n </span>\n </td>\n <td className=\"px-4 py-3\">\n <span className=\"font-mono text-xs text-text-secondary\">\n {order.storeProductId\n ? `…${order.storeProductId.slice(-8)}`\n : \"—\"}\n </span>\n </td>\n <td className=\"px-4 py-3\">\n <span className=\"font-mono text-xs text-text-secondary\">\n {`…${order.buyerUserId.slice(-8)}`}\n </span>\n </td>\n <td className=\"px-4 py-3 text-right tabular-nums text-text-primary\">\n {formatCurrency(order.grossAmount, order.currency)}\n </td>\n <td className=\"px-4 py-3 text-right tabular-nums text-status-success-text\">\n {formatCurrency(order.netAmount, order.currency)}\n </td>\n <td className=\"px-4 py-3\">\n <span\n className={`rounded-full px-2.5 py-0.5 text-xs font-medium ${badge.className}`}\n >\n {badge.label}\n </span>\n {order.refundAmount != null &&\n order.refundAmount > 0 && (\n <p className=\"mt-0.5 text-[11px] text-status-error-text\">\n Refunded{\" \"}\n {formatCurrency(\n order.refundAmount,\n order.currency,\n )}\n </p>\n )}\n </td>\n <td className=\"px-4 py-3 text-xs text-text-secondary whitespace-nowrap\">\n {formatDate(order.purchasedAt)}\n </td>\n <td className=\"px-4 py-3\">\n {!order.storeOrderId ? (\n <span className=\"text-xs text-text-muted\">—</span>\n ) : openFlag ? (\n <div className=\"flex items-center gap-2\">\n <span\n title={openFlag.note ?? undefined}\n className=\"flex items-center gap-1 rounded-full bg-status-warning-bg-subtle px-2.5 py-0.5 text-xs font-medium text-status-warning-text\"\n >\n <Flag size={11} />\n {ISSUE_CATEGORY_LABELS[openFlag.category]}\n </span>\n {openFlag.raisedByOrgId === selectedOrgId && (\n <button\n onClick={() =>\n void handleResolveFlag(\n openFlag.id,\n openFlag.raisedByOrgId,\n )\n }\n disabled={resolvingFlagId === openFlag.id}\n className=\"text-xs font-medium text-text-secondary underline hover:text-text-primary disabled:opacity-50\"\n >\n {resolvingFlagId === openFlag.id ? (\n <Loader2 className=\"h-3 w-3 animate-spin\" />\n ) : (\n \"Mark Resolved\"\n )}\n </button>\n )}\n </div>\n ) : (\n <div className=\"flex items-center gap-2\">\n {flags.length > 0 && (\n <span\n title=\"Previously reported and resolved\"\n className=\"flex items-center gap-1 text-xs text-status-success-text\"\n >\n <CheckCircle2 size={11} />\n Resolved\n </span>\n )}\n <button\n onClick={() =>\n setReportModalOrderId(order.storeOrderId)\n }\n className=\"text-xs font-medium text-text-secondary underline hover:text-text-primary\"\n >\n Report Issue\n </button>\n </div>\n )}\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n\n {/* Pagination */}\n {totalCount > PAGE_SIZE && (\n <div className=\"mt-4 flex items-center justify-between text-sm\">\n <span className=\"text-text-secondary\">\n Showing {page * PAGE_SIZE + 1}–\n {Math.min((page + 1) * PAGE_SIZE, totalCount)} of {totalCount}\n </span>\n <div className=\"flex items-center gap-2\">\n <button\n disabled={page === 0}\n onClick={() => setPage((p) => p - 1)}\n className=\"rounded-md border border-border-seam px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-bg-sunken disabled:opacity-40 disabled:cursor-not-allowed transition-colors\"\n >\n Previous\n </button>\n <button\n disabled={(page + 1) * PAGE_SIZE >= totalCount}\n onClick={() => setPage((p) => p + 1)}\n className=\"rounded-md border border-border-seam px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-bg-sunken disabled:opacity-40 disabled:cursor-not-allowed transition-colors\"\n >\n Next\n </button>\n </div>\n </div>\n )}\n </>\n )}\n </PageLayout>\n\n {selectedOrgId && (\n <ReportOrderIssueModal\n open={reportModalOrderId !== null}\n onOpenChange={(open) => {\n if (!open) setReportModalOrderId(null);\n }}\n orderId={reportModalOrderId ?? \"\"}\n organizationId={selectedOrgId}\n gqlUrl={gqlUrl}\n headers={headers}\n onReported={() => void fetchIssueFlags()}\n />\n )}\n </PermissionGuard>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SellerOrdersPage.js","names":["_Fragment","ISSUE_CATEGORY_LABELS","STATUS_STYLES","STATUS_FILTER_OPTIONS","ORGS_QUERY","ORDERS_QUERY","RESOLVE_ORDER_ISSUE_MUTATION","ISSUE_FLAG_FIELDS","buildIssueFlagsBatchQuery","orderIds","i","id","formatDate","iso","shortOrderId","fallback","SellerOrdersPage","useDevportal","useI18n","tr","v","t","key","gqlUrl","resolveGlobalGraphqlEndpoint","apiGatewayUrl","orgsLoading","setOrgsLoading","useState","orgs","setOrgs","selectedOrgId","setSelectedOrgId","ordersLoading","setOrdersLoading","orders","setOrders","totalCount","setTotalCount","error","setError","retryToken","setRetryToken","statusFilter","setStatusFilter","page","setPage","headers","useMemo","authToken","useEffect","cancelled","json","fetched","org","variables","res","conn","err","physicalOrders","o","issueFlagsByOrderId","setIssueFlagsByOrderId","reportModalOrderId","setReportModalOrderId","resolvingFlagId","setResolvingFlagId","visibleStoreOrderIds","fetchIssueFlags","useCallback","next","handleResolveFlag","flagId","stats","all","PageLayout","Loader2","EmptyState","ShoppingBag","PermissionGuard","ChevronDown","opt","s","AlertCircle","n","Package","Fragment","badge","order","flags","openFlag","f","formatCurrency","Flag","CheckCircle2","p","ReportOrderIssueModal","open"],"sources":["../../../src/devportal/pages/SellerOrdersPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useEffect, useState, useMemo, useCallback } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n ShoppingBag,\n Loader2,\n AlertCircle,\n Package,\n ChevronDown,\n Flag,\n CheckCircle2,\n} from \"lucide-react\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { PermissionGuard, ReportOrderIssueModal } from \"../components\";\nimport type { OrderIssueCategory } from \"../components/ReportOrderIssueModal\";\nimport { formatCurrency } from \"../utils/currency\";\nimport { resolveGlobalGraphqlEndpoint } from \"../utils/graphqlEndpoint\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype SaleStatus =\n | \"PENDING\"\n | \"COMPLETED\"\n | \"REFUNDED\"\n | \"PARTIAL_REFUND\"\n | \"DISPUTED\"\n | \"CHARGEBACK\"\n | \"CANCELLED\";\n\ninterface OrgSummary {\n id: string;\n name: string;\n slug: string;\n kind: \"DIGITAL\" | \"PHYSICAL\";\n}\n\ninterface SellerOrder {\n id: string;\n storeOrderId: string | null;\n storeProductId: string | null;\n grossAmount: number;\n netAmount: number;\n platformFee: number;\n currency: string;\n status: SaleStatus;\n buyerUserId: string;\n purchasedAt: string;\n refundAmount: number | null;\n refundedAt: string | null;\n refundReason: string | null;\n discountAmount: number | null;\n taxAmount: number | null;\n}\n\ninterface IssueFlag {\n id: string;\n category: OrderIssueCategory;\n note: string | null;\n status: \"OPEN\" | \"RESOLVED\";\n raisedByOrgId: string;\n createdAt: string;\n}\n\nconst ISSUE_CATEGORY_LABELS: Record<OrderIssueCategory, string> = {\n OUT_OF_STOCK: \"Out of stock\",\n CANNOT_FULFILL: \"Cannot fulfill\",\n WRONG_ADDRESS: \"Wrong address\",\n OTHER: \"Other\",\n};\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst STATUS_STYLES: Record<SaleStatus, { label: string; className: string }> =\n {\n PENDING: {\n label: \"Pending\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n COMPLETED: {\n label: \"Completed\",\n className: \"text-status-success-text bg-status-success-bg-subtle\",\n },\n REFUNDED: {\n label: \"Refunded\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n PARTIAL_REFUND: {\n label: \"Partial Refund\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n DISPUTED: {\n label: \"Disputed\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n CHARGEBACK: {\n label: \"Chargeback\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n CANCELLED: {\n label: \"Cancelled\",\n className: \"text-text-muted bg-bg-muted\",\n },\n };\n\nconst STATUS_FILTER_OPTIONS: { value: SaleStatus | \"\"; label: string }[] = [\n { value: \"\", label: \"All Orders\" },\n { value: \"PENDING\", label: \"Pending\" },\n { value: \"COMPLETED\", label: \"Completed\" },\n { value: \"REFUNDED\", label: \"Refunded\" },\n { value: \"PARTIAL_REFUND\", label: \"Partial Refund\" },\n { value: \"DISPUTED\", label: \"Disputed\" },\n { value: \"CANCELLED\", label: \"Cancelled\" },\n];\n\n// ---------------------------------------------------------------------------\n// GraphQL\n// ---------------------------------------------------------------------------\n\nconst ORGS_QUERY = `\n query SellerOrdersOrgs {\n myDeveloperOrganizations {\n id\n name\n slug\n kind\n }\n }\n`;\n\nconst ORDERS_QUERY = `\n query SellerOrders($organizationId: ID!, $status: SaleStatus, $limit: Int, $offset: Int) {\n developerOrgSales(\n organizationId: $organizationId\n status: $status\n limit: $limit\n offset: $offset\n ) {\n totalCount\n edges {\n node {\n id\n storeOrderId\n storeProductId\n grossAmount\n netAmount\n platformFee\n currency\n status\n buyerUserId\n purchasedAt\n refundAmount\n refundedAt\n refundReason\n discountAmount\n taxAmount\n }\n }\n pageInfo { hasNextPage hasPreviousPage }\n }\n }\n`;\n\nconst RESOLVE_ORDER_ISSUE_MUTATION = `\n mutation ResolveOrderIssue($id: ID!, $organizationId: ID) {\n resolveOrderIssueFlag(id: $id, organizationId: $organizationId) {\n id\n status\n }\n }\n`;\n\nconst ISSUE_FLAG_FIELDS = `id category note status raisedByOrgId createdAt`;\n\n/**\n * One `orderIssueFlags` call per visible physical order, batched into a\n * single request via GraphQL field aliasing — avoids N network round-trips\n * for a page of up to 25 orders.\n */\nfunction buildIssueFlagsBatchQuery(orderIds: string[]): string {\n const fields = orderIds\n .map(\n (id, i) =>\n `f${i}: orderIssueFlags(orderId: ${JSON.stringify(id)}) { ${ISSUE_FLAG_FIELDS} }`,\n )\n .join(\"\\n \");\n return `query SellerOrderIssueFlags {\\n ${fields}\\n }`;\n}\n\nfunction formatDate(iso: string): string {\n return new Date(iso).toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n}\n\nfunction shortOrderId(id: string | null, fallback: string): string {\n if (id) return `#${id.slice(0, 8).toUpperCase()}`;\n return `#${fallback.slice(0, 8).toUpperCase()}`;\n}\n\n// ---------------------------------------------------------------------------\n// Page\n// ---------------------------------------------------------------------------\n\nexport const SellerOrdersPage: FC = () => {\n const { apiGatewayUrl, authToken } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string) => {\n const v = t(key);\n return v === key ? fallback : v;\n };\n\n const gqlUrl = resolveGlobalGraphqlEndpoint(apiGatewayUrl);\n\n const [orgsLoading, setOrgsLoading] = useState(true);\n const [orgs, setOrgs] = useState<OrgSummary[]>([]);\n const [selectedOrgId, setSelectedOrgId] = useState<string | null>(null);\n\n const [ordersLoading, setOrdersLoading] = useState(false);\n const [orders, setOrders] = useState<SellerOrder[]>([]);\n const [totalCount, setTotalCount] = useState(0);\n const [error, setError] = useState<string | null>(null);\n const [retryToken, setRetryToken] = useState(0);\n\n const [statusFilter, setStatusFilter] = useState<SaleStatus | \"\">(\"\");\n const [page, setPage] = useState(0);\n const PAGE_SIZE = 25;\n\n const headers = useMemo(\n () => ({\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n }),\n [authToken],\n );\n\n // Fetch orgs on mount\n useEffect(() => {\n let cancelled = false;\n setOrgsLoading(true);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ query: ORGS_QUERY }),\n });\n const json = (await res.json()) as {\n data?: { myDeveloperOrganizations?: OrgSummary[] };\n };\n if (cancelled) return;\n // Seller portal only ever shows PHYSICAL-kind orgs — see\n // DeveloperOrgKind (BOFF-7285).\n const fetched = (json.data?.myDeveloperOrganizations ?? []).filter(\n (org) => org.kind === \"PHYSICAL\",\n );\n setOrgs(fetched);\n if (fetched.length > 0) setSelectedOrgId(fetched[0]!.id);\n } catch {\n // leave orgs empty\n } finally {\n if (!cancelled) setOrgsLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [gqlUrl, headers]);\n\n // Fetch orders when org/filter/page changes\n useEffect(() => {\n if (!selectedOrgId) return;\n let cancelled = false;\n setOrdersLoading(true);\n setError(null);\n\n const run = async () => {\n try {\n const variables: Record<string, unknown> = {\n organizationId: selectedOrgId,\n limit: PAGE_SIZE,\n offset: page * PAGE_SIZE,\n };\n if (statusFilter) variables.status = statusFilter;\n\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ query: ORDERS_QUERY, variables }),\n });\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n const json = (await res.json()) as {\n data?: {\n developerOrgSales?: {\n totalCount: number;\n edges: {\n node: Omit<SellerOrder, \"status\"> & { status: string };\n }[];\n };\n };\n errors?: { message: string }[];\n };\n if (cancelled) return;\n if (json.errors?.length) {\n throw new Error(json.errors[0]?.message ?? \"GraphQL error\");\n }\n const conn = json.data?.developerOrgSales;\n setTotalCount(conn?.totalCount ?? 0);\n // Show all orders; physical-product ones have storeProductId set\n setOrders(\n (conn?.edges ?? []).map((e) => ({\n ...e.node,\n status: e.node.status as SaleStatus,\n })),\n );\n } catch (err) {\n if (!cancelled)\n setError(\n err instanceof Error ? err.message : \"Failed to load orders\",\n );\n } finally {\n if (!cancelled) setOrdersLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [selectedOrgId, statusFilter, page, gqlUrl, headers, retryToken]);\n\n // Physical product orders (storeProductId set) vs digital\n const physicalOrders = useMemo(\n () => orders.filter((o) => o.storeProductId !== null),\n [orders],\n );\n\n // Seller-reported issue flags for the currently visible physical orders,\n // keyed by storeOrderId. Fetched as one batched (aliased) request.\n const [issueFlagsByOrderId, setIssueFlagsByOrderId] = useState<\n Record<string, IssueFlag[]>\n >({});\n const [reportModalOrderId, setReportModalOrderId] = useState<string | null>(\n null,\n );\n const [resolvingFlagId, setResolvingFlagId] = useState<string | null>(null);\n\n const visibleStoreOrderIds = useMemo(\n () =>\n physicalOrders\n .map((o) => o.storeOrderId)\n .filter((id): id is string => id !== null),\n [physicalOrders],\n );\n\n const fetchIssueFlags = useCallback(async () => {\n if (visibleStoreOrderIds.length === 0) {\n setIssueFlagsByOrderId({});\n return;\n }\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n query: buildIssueFlagsBatchQuery(visibleStoreOrderIds),\n }),\n });\n const json = (await res.json()) as {\n data?: Record<string, IssueFlag[]>;\n };\n const next: Record<string, IssueFlag[]> = {};\n visibleStoreOrderIds.forEach((id, i) => {\n next[id] = json.data?.[`f${i}`] ?? [];\n });\n setIssueFlagsByOrderId(next);\n } catch {\n // Non-critical — the orders table itself still renders fine without flags\n }\n }, [gqlUrl, headers, visibleStoreOrderIds]);\n\n useEffect(() => {\n void fetchIssueFlags();\n }, [fetchIssueFlags]);\n\n const handleResolveFlag = async (flagId: string, organizationId: string) => {\n setResolvingFlagId(flagId);\n try {\n await fetch(gqlUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n query: RESOLVE_ORDER_ISSUE_MUTATION,\n variables: { id: flagId, organizationId },\n }),\n });\n await fetchIssueFlags();\n } finally {\n setResolvingFlagId(null);\n }\n };\n\n const stats = useMemo(() => {\n const all = physicalOrders;\n return {\n total: totalCount,\n pending: all.filter((o) => o.status === \"PENDING\").length,\n completed: all.filter((o) => o.status === \"COMPLETED\").length,\n refunded: all.filter(\n (o) => o.status === \"REFUNDED\" || o.status === \"PARTIAL_REFUND\",\n ).length,\n };\n }, [physicalOrders, totalCount]);\n\n if (orgsLoading) {\n return (\n <PageLayout title={tr(\"devportal.orders\", \"Orders\")}>\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 (orgs.length === 0) {\n return (\n <PageLayout\n title={tr(\"devportal.orders\", \"Orders\")}\n description={tr(\n \"devportal.ordersDesc\",\n \"Orders placed by customers for your physical items.\",\n )}\n >\n <EmptyState\n illustration=\"empty-generic\"\n icon={<ShoppingBag size={32} />}\n title={tr(\"devportal.noOrgForOrders\", \"No organization yet\")}\n description={tr(\n \"devportal.createOrgToSell\",\n \"Create a developer organization to start selling physical products and receive orders.\",\n )}\n />\n </PageLayout>\n );\n }\n\n return (\n <PermissionGuard authOnly>\n <PageLayout\n title={tr(\"devportal.orders\", \"Orders\")}\n description={tr(\n \"devportal.ordersDesc\",\n \"Orders placed by customers for your physical items.\",\n )}\n >\n {/* Controls row */}\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-6\">\n {/* Org picker (shown only when multiple orgs) */}\n {orgs.length > 1 && (\n <div className=\"relative\">\n <select\n value={selectedOrgId ?? \"\"}\n onChange={(e) => {\n setSelectedOrgId(e.target.value);\n setPage(0);\n }}\n className=\"appearance-none rounded-md border border-border-seam bg-bg-surface pl-3 pr-8 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary\"\n >\n {orgs.map((org) => (\n <option key={org.id} value={org.id}>\n {org.name}\n </option>\n ))}\n </select>\n <ChevronDown\n size={14}\n className=\"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-text-muted\"\n />\n </div>\n )}\n\n {/* Status filter */}\n <div className=\"relative\">\n <select\n value={statusFilter}\n onChange={(e) => {\n setStatusFilter(e.target.value as SaleStatus | \"\");\n setPage(0);\n }}\n className=\"appearance-none rounded-md border border-border-seam bg-bg-surface pl-3 pr-8 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary\"\n >\n {STATUS_FILTER_OPTIONS.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <ChevronDown\n size={14}\n className=\"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-text-muted\"\n />\n </div>\n </div>\n\n {/* Stats row */}\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-4 mb-6\">\n {[\n { label: \"Total Orders\", value: stats.total },\n {\n label: \"Pending\",\n value: stats.pending,\n color: \"text-status-warning-text\",\n },\n {\n label: \"Completed\",\n value: stats.completed,\n color: \"text-status-success-text\",\n },\n {\n label: \"Refunded\",\n value: stats.refunded,\n color: \"text-status-error-text\",\n },\n ].map((s) => (\n <div\n key={s.label}\n className=\"rounded-lg border border-border-seam bg-bg-surface px-4 py-3\"\n >\n <p className={`text-xs ${s.color ?? \"text-text-secondary\"}`}>\n {s.label}\n </p>\n <p className=\"mt-1 text-xl font-semibold tabular-nums\">\n {ordersLoading ? (\n <Loader2 className=\"h-4 w-4 animate-spin text-text-secondary\" />\n ) : (\n s.value\n )}\n </p>\n </div>\n ))}\n </div>\n\n {/* Error */}\n {error && (\n <div className=\"mb-4 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\n size={16}\n className=\"shrink-0 text-status-error-text\"\n />\n <span className=\"text-status-error-text\">{error}</span>\n <button\n onClick={() => setRetryToken((n) => n + 1)}\n className=\"ml-auto text-xs font-medium text-status-error-text underline\"\n >\n Retry\n </button>\n </div>\n )}\n\n {/* Orders table */}\n {ordersLoading ? (\n <div className=\"flex items-center justify-center py-16\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n </div>\n ) : physicalOrders.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Package size={32} />}\n title={\n statusFilter\n ? tr(\n \"devportal.noOrdersForFilter\",\n \"No orders match this filter\",\n )\n : tr(\"devportal.noOrdersYet\", \"No orders yet\")\n }\n description={\n statusFilter\n ? tr(\n \"devportal.tryDifferentFilter\",\n \"Try selecting a different status filter\",\n )\n : tr(\n \"devportal.ordersWillAppear\",\n \"Orders placed for your physical items will appear here once customers make purchases.\",\n )\n }\n />\n ) : (\n <>\n <div className=\"overflow-x-auto rounded-lg border border-border-seam\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border-seam bg-bg-sunken\">\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Order\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Product ID\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Buyer\n </th>\n <th className=\"px-4 py-3 text-right font-medium text-text-secondary\">\n Gross\n </th>\n <th className=\"px-4 py-3 text-right font-medium text-text-secondary\">\n Your Earnings\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Status\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Date\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Fulfillment Issue\n </th>\n </tr>\n </thead>\n <tbody>\n {physicalOrders.map((order) => {\n const badge =\n STATUS_STYLES[order.status] ?? STATUS_STYLES.PENDING;\n const flags = order.storeOrderId\n ? (issueFlagsByOrderId[order.storeOrderId] ?? [])\n : [];\n const openFlag = flags.find((f) => f.status === \"OPEN\");\n return (\n <tr\n key={order.id}\n className=\"border-b border-border-subtle last:border-0 hover:bg-bg-sunken/50 transition-colors\"\n >\n <td className=\"px-4 py-3\">\n <span className=\"font-mono text-xs font-semibold text-text-primary\">\n {shortOrderId(order.storeOrderId, order.id)}\n </span>\n </td>\n <td className=\"px-4 py-3\">\n <span className=\"font-mono text-xs text-text-secondary\">\n {order.storeProductId\n ? `…${order.storeProductId.slice(-8)}`\n : \"—\"}\n </span>\n </td>\n <td className=\"px-4 py-3\">\n <span className=\"font-mono text-xs text-text-secondary\">\n {`…${order.buyerUserId.slice(-8)}`}\n </span>\n </td>\n <td className=\"px-4 py-3 text-right tabular-nums text-text-primary\">\n {formatCurrency(order.grossAmount, order.currency)}\n </td>\n <td className=\"px-4 py-3 text-right tabular-nums text-status-success-text\">\n {formatCurrency(order.netAmount, order.currency)}\n </td>\n <td className=\"px-4 py-3\">\n <span\n className={`rounded-full px-2.5 py-0.5 text-xs font-medium ${badge.className}`}\n >\n {badge.label}\n </span>\n {order.refundAmount != null &&\n order.refundAmount > 0 && (\n <p className=\"mt-0.5 text-[11px] text-status-error-text\">\n Refunded{\" \"}\n {formatCurrency(\n order.refundAmount,\n order.currency,\n )}\n </p>\n )}\n </td>\n <td className=\"px-4 py-3 text-xs text-text-secondary whitespace-nowrap\">\n {formatDate(order.purchasedAt)}\n </td>\n <td className=\"px-4 py-3\">\n {!order.storeOrderId ? (\n <span className=\"text-xs text-text-muted\">—</span>\n ) : openFlag ? (\n <div className=\"flex items-center gap-2\">\n <span\n title={openFlag.note ?? undefined}\n className=\"flex items-center gap-1 rounded-full bg-status-warning-bg-subtle px-2.5 py-0.5 text-xs font-medium text-status-warning-text\"\n >\n <Flag size={11} />\n {ISSUE_CATEGORY_LABELS[openFlag.category]}\n </span>\n {openFlag.raisedByOrgId === selectedOrgId && (\n <button\n onClick={() =>\n void handleResolveFlag(\n openFlag.id,\n openFlag.raisedByOrgId,\n )\n }\n disabled={resolvingFlagId === openFlag.id}\n className=\"text-xs font-medium text-text-secondary underline hover:text-text-primary disabled:opacity-50\"\n >\n {resolvingFlagId === openFlag.id ? (\n <Loader2 className=\"h-3 w-3 animate-spin\" />\n ) : (\n \"Mark Resolved\"\n )}\n </button>\n )}\n </div>\n ) : (\n <div className=\"flex items-center gap-2\">\n {flags.length > 0 && (\n <span\n title=\"Previously reported and resolved\"\n className=\"flex items-center gap-1 text-xs text-status-success-text\"\n >\n <CheckCircle2 size={11} />\n Resolved\n </span>\n )}\n <button\n onClick={() =>\n setReportModalOrderId(order.storeOrderId)\n }\n className=\"text-xs font-medium text-text-secondary underline hover:text-text-primary\"\n >\n Report Issue\n </button>\n </div>\n )}\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n\n {/* Pagination */}\n {totalCount > PAGE_SIZE && (\n <div className=\"mt-4 flex items-center justify-between text-sm\">\n <span className=\"text-text-secondary\">\n Showing {page * PAGE_SIZE + 1}–\n {Math.min((page + 1) * PAGE_SIZE, totalCount)} of {totalCount}\n </span>\n <div className=\"flex items-center gap-2\">\n <button\n disabled={page === 0}\n onClick={() => setPage((p) => p - 1)}\n className=\"rounded-md border border-border-seam px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-bg-sunken disabled:opacity-40 disabled:cursor-not-allowed transition-colors\"\n >\n Previous\n </button>\n <button\n disabled={(page + 1) * PAGE_SIZE >= totalCount}\n onClick={() => setPage((p) => p + 1)}\n className=\"rounded-md border border-border-seam px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-bg-sunken disabled:opacity-40 disabled:cursor-not-allowed transition-colors\"\n >\n Next\n </button>\n </div>\n </div>\n )}\n </>\n )}\n </PageLayout>\n\n {selectedOrgId && (\n <ReportOrderIssueModal\n open={reportModalOrderId !== null}\n onOpenChange={(open) => {\n if (!open) setReportModalOrderId(null);\n }}\n orderId={reportModalOrderId ?? \"\"}\n organizationId={selectedOrgId}\n gqlUrl={gqlUrl}\n headers={headers}\n onReported={() => void fetchIssueFlags()}\n />\n )}\n </PermissionGuard>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useTr as t } from "../utils/i18n.js";
|
|
1
|
+
import { PageLayout as e, PageSection as t } from "../components/PageLayout.js";
|
|
3
2
|
import { EmptyState as n } from "../components/EmptyState.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { VerifiedBadge as r } from "../components/StatusBadge.js";
|
|
4
|
+
import { useGetDeveloperPortalSettingsOverviewQuery as i } from "../../generated/global-operations.js";
|
|
5
|
+
import { getErrorMessage as a } from "../hooks/useGraphQL.js";
|
|
6
|
+
import { useDevportal as o } from "../providers/DevportalProvider.js";
|
|
8
7
|
import "../hooks/index.js";
|
|
8
|
+
import { useTr as s } from "../utils/i18n.js";
|
|
9
9
|
import { AlertCircle as c, Building2 as l, ExternalLink as u, KeyRound as d, Loader2 as f, Mail as p, Settings as m, Shield as h, UserCircle2 as g, Webhook as _, Workflow as v } from "lucide-react";
|
|
10
10
|
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
11
11
|
import { EmphasisPanel as x } from "@burdenoff/fe-libs/ui";
|
|
12
|
-
|
|
12
|
+
// src/devportal/pages/SettingsPage.tsx
|
|
13
13
|
var S = (e, t) => {
|
|
14
14
|
if (!e) return t;
|
|
15
15
|
let n = new Date(e);
|
|
16
16
|
return Number.isNaN(n.getTime()) ? t : n.toLocaleDateString();
|
|
17
17
|
}, C = () => {
|
|
18
|
-
let { navigate: C, basePath: w } =
|
|
18
|
+
let { navigate: C, basePath: w } = o(), T = s(), { data: E, loading: D, error: O } = i({ fetchPolicy: "cache-and-network" }), k = (e) => {
|
|
19
19
|
C?.(`${w}${e}`);
|
|
20
20
|
}, A = T("devportal.settings.never", "Never"), j = T("devportal.settings.title", "Settings"), M = T("devportal.settings.description", "Review your developer portal account, credentials, and support options");
|
|
21
|
-
if (D && !E) return /* @__PURE__ */ y(
|
|
21
|
+
if (D && !E) return /* @__PURE__ */ y(e, {
|
|
22
22
|
title: j,
|
|
23
23
|
description: M,
|
|
24
24
|
children: /* @__PURE__ */ y("div", {
|
|
@@ -29,7 +29,7 @@ var S = (e, t) => {
|
|
|
29
29
|
children: /* @__PURE__ */ y(f, { className: "h-8 w-8 animate-spin" })
|
|
30
30
|
})
|
|
31
31
|
});
|
|
32
|
-
if (O) return /* @__PURE__ */ y(
|
|
32
|
+
if (O) return /* @__PURE__ */ y(e, {
|
|
33
33
|
title: j,
|
|
34
34
|
description: M,
|
|
35
35
|
children: /* @__PURE__ */ y(n, {
|
|
@@ -38,11 +38,11 @@ var S = (e, t) => {
|
|
|
38
38
|
className: "text-status-error-text"
|
|
39
39
|
}),
|
|
40
40
|
title: T("devportal.settings.errorTitle", "Unable to load settings"),
|
|
41
|
-
description:
|
|
41
|
+
description: a(O)
|
|
42
42
|
})
|
|
43
43
|
});
|
|
44
44
|
let N = E?.myDeveloperProfile, P = (E?.myDeveloperOrganizations ?? []).filter((e) => e.kind !== "PHYSICAL"), F = E?.myApiKeys?.apiKeys ?? [], I = E?.myApiKeys?.totalCount ?? F.length, L = F[0], R = P.reduce((e, t) => e + (t.totalRevenue ?? 0), 0);
|
|
45
|
-
return /* @__PURE__ */ y(
|
|
45
|
+
return /* @__PURE__ */ y(e, {
|
|
46
46
|
title: j,
|
|
47
47
|
description: M,
|
|
48
48
|
purpose: T("devportal.settings.purpose", "A quick health-check of your developer account — your profile, how many API keys and organizations you have, and where to get support. Use it to spot missing setup before it blocks publishing or billing."),
|
|
@@ -51,7 +51,7 @@ var S = (e, t) => {
|
|
|
51
51
|
children: [/* @__PURE__ */ b("div", {
|
|
52
52
|
className: "space-y-6",
|
|
53
53
|
children: [
|
|
54
|
-
/* @__PURE__ */ y(
|
|
54
|
+
/* @__PURE__ */ y(t, {
|
|
55
55
|
title: T("devportal.settings.profile", "Profile"),
|
|
56
56
|
children: /* @__PURE__ */ y(x, { children: /* @__PURE__ */ b("div", {
|
|
57
57
|
className: "flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
|
|
@@ -69,7 +69,7 @@ var S = (e, t) => {
|
|
|
69
69
|
className: "text-lg font-semibold",
|
|
70
70
|
children: T("devportal.settings.developerProfile", "Developer profile")
|
|
71
71
|
}),
|
|
72
|
-
N?.isVerified && /* @__PURE__ */ y(
|
|
72
|
+
N?.isVerified && /* @__PURE__ */ y(r, { verified: !0 })
|
|
73
73
|
]
|
|
74
74
|
}),
|
|
75
75
|
/* @__PURE__ */ y("p", {
|
|
@@ -123,7 +123,7 @@ var S = (e, t) => {
|
|
|
123
123
|
}),
|
|
124
124
|
/* @__PURE__ */ b("div", {
|
|
125
125
|
className: "grid gap-6 lg:grid-cols-2",
|
|
126
|
-
children: [/* @__PURE__ */ y(
|
|
126
|
+
children: [/* @__PURE__ */ y(t, {
|
|
127
127
|
title: T("devportal.settings.credentials", "Credentials"),
|
|
128
128
|
children: /* @__PURE__ */ y("div", {
|
|
129
129
|
className: "rounded-card border border-border-seam bg-bg-surface p-6",
|
|
@@ -180,7 +180,7 @@ var S = (e, t) => {
|
|
|
180
180
|
})]
|
|
181
181
|
})
|
|
182
182
|
})
|
|
183
|
-
}), /* @__PURE__ */ y(
|
|
183
|
+
}), /* @__PURE__ */ y(t, {
|
|
184
184
|
title: T("devportal.settings.organizations", "Organizations"),
|
|
185
185
|
children: /* @__PURE__ */ b("div", {
|
|
186
186
|
className: "rounded-card border border-border-seam bg-bg-surface p-6",
|
|
@@ -221,7 +221,7 @@ var S = (e, t) => {
|
|
|
221
221
|
})
|
|
222
222
|
})]
|
|
223
223
|
}),
|
|
224
|
-
/* @__PURE__ */ y(
|
|
224
|
+
/* @__PURE__ */ y(t, {
|
|
225
225
|
title: T("devportal.settings.deliveryAutomation", "Delivery & automation"),
|
|
226
226
|
children: /* @__PURE__ */ y("div", {
|
|
227
227
|
className: "rounded-card border border-border-seam bg-bg-surface p-6",
|
|
@@ -255,7 +255,7 @@ var S = (e, t) => {
|
|
|
255
255
|
}), /* @__PURE__ */ b("div", {
|
|
256
256
|
className: "space-y-6",
|
|
257
257
|
children: [
|
|
258
|
-
/* @__PURE__ */ y(
|
|
258
|
+
/* @__PURE__ */ y(t, {
|
|
259
259
|
title: T("devportal.settings.securitySupport", "Security & support"),
|
|
260
260
|
children: /* @__PURE__ */ b("div", {
|
|
261
261
|
className: "rounded-card border border-border-seam bg-bg-surface p-6",
|
|
@@ -287,7 +287,7 @@ var S = (e, t) => {
|
|
|
287
287
|
})]
|
|
288
288
|
})
|
|
289
289
|
}),
|
|
290
|
-
/* @__PURE__ */ y(
|
|
290
|
+
/* @__PURE__ */ y(t, {
|
|
291
291
|
title: T("devportal.settings.recentCredentialActivity", "Recent credential activity"),
|
|
292
292
|
children: /* @__PURE__ */ y("div", {
|
|
293
293
|
className: "rounded-card border border-border-seam bg-bg-surface p-6",
|
|
@@ -330,7 +330,7 @@ var S = (e, t) => {
|
|
|
330
330
|
})
|
|
331
331
|
})
|
|
332
332
|
}),
|
|
333
|
-
/* @__PURE__ */ y(
|
|
333
|
+
/* @__PURE__ */ y(t, {
|
|
334
334
|
title: T("devportal.settings.accountActions", "Account actions"),
|
|
335
335
|
children: /* @__PURE__ */ b("div", {
|
|
336
336
|
className: "rounded-lg border border-status-warning-border bg-status-warning-bg-subtle p-6",
|
|
@@ -359,7 +359,6 @@ var S = (e, t) => {
|
|
|
359
359
|
})
|
|
360
360
|
});
|
|
361
361
|
};
|
|
362
|
-
//#endregion
|
|
363
362
|
export { C as SettingsPage };
|
|
364
363
|
|
|
365
364
|
//# sourceMappingURL=SettingsPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPage.js","names":[],"sources":["../../../src/devportal/pages/SettingsPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport {\n Building2,\n ExternalLink,\n KeyRound,\n Mail,\n Settings,\n Shield,\n UserCircle2,\n Webhook,\n Workflow,\n Loader2,\n AlertCircle,\n} from \"lucide-react\";\nimport { EmphasisPanel } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { VerifiedBadge } from \"../components/StatusBadge\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport {\n getErrorMessage,\n useGetDeveloperPortalSettingsOverviewQuery,\n} from \"../hooks\";\nimport { useTr } from \"../utils/i18n\";\n\nconst formatDate = (\n value: string | null | undefined,\n neverLabel: string,\n): string => {\n if (!value) return neverLabel;\n\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) return neverLabel;\n\n return parsed.toLocaleDateString();\n};\n\nexport const SettingsPage: FC = () => {\n const { navigate, basePath } = useDevportal();\n const tr = useTr();\n const { data, loading, error } = useGetDeveloperPortalSettingsOverviewQuery({\n fetchPolicy: \"cache-and-network\",\n });\n\n const handleNavigate = (path: string) => {\n navigate?.(`${basePath}${path}`);\n };\n\n const neverLabel = tr(\"devportal.settings.never\", \"Never\");\n const title = tr(\"devportal.settings.title\", \"Settings\");\n const description = tr(\n \"devportal.settings.description\",\n \"Review your developer portal account, credentials, and support options\",\n );\n\n if (loading && !data) {\n return (\n <PageLayout title={title} description={description}>\n <div\n className=\"flex items-center justify-center py-16 text-text-secondary\"\n role=\"status\"\n aria-live=\"polite\"\n aria-label={tr(\"devportal.common.loading\", \"Loading\")}\n >\n <Loader2 className=\"h-8 w-8 animate-spin\" />\n </div>\n </PageLayout>\n );\n }\n\n if (error) {\n return (\n <PageLayout title={title} description={description}>\n <EmptyState\n icon={<AlertCircle size={32} className=\"text-status-error-text\" />}\n title={tr(\"devportal.settings.errorTitle\", \"Unable to load settings\")}\n description={getErrorMessage(error)}\n />\n </PageLayout>\n );\n }\n\n const profile = data?.myDeveloperProfile;\n // This overview is scoped to the regular (digital) devportal — exclude\n // PHYSICAL orgs so seller-portal orgs don't inflate the \"Developer\n // organizations\" count/revenue shown here. See DeveloperOrgKind (BOFF-7285).\n type SettingsOrganization = NonNullable<\n typeof data\n >[\"myDeveloperOrganizations\"][number];\n const organizations = (data?.myDeveloperOrganizations ?? []).filter(\n (org: SettingsOrganization) => org.kind !== \"PHYSICAL\",\n );\n const apiKeys = data?.myApiKeys?.apiKeys ?? [];\n const totalApiKeyCount = data?.myApiKeys?.totalCount ?? apiKeys.length;\n const latestApiKey = apiKeys[0];\n const totalRevenue = organizations.reduce(\n (sum: number, organization: (typeof organizations)[number]) =>\n sum + (organization.totalRevenue ?? 0),\n 0,\n );\n\n return (\n <PageLayout\n title={title}\n description={description}\n purpose={tr(\n \"devportal.settings.purpose\",\n \"A quick health-check of your developer account — your profile, how many API keys and organizations you have, and where to get support. Use it to spot missing setup before it blocks publishing or billing.\",\n )}\n >\n <div className=\"grid gap-6 xl:grid-cols-[minmax(0,2fr)_minmax(320px,1fr)]\">\n <div className=\"space-y-6\">\n <PageSection title={tr(\"devportal.settings.profile\", \"Profile\")}>\n <EmphasisPanel>\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-2\">\n <UserCircle2\n className=\"h-5 w-5 text-primary\"\n aria-hidden=\"true\"\n />\n <h2 className=\"text-lg font-semibold\">\n {tr(\n \"devportal.settings.developerProfile\",\n \"Developer profile\",\n )}\n </h2>\n {profile?.isVerified && <VerifiedBadge verified />}\n </div>\n <p className=\"text-sm text-text-secondary\">\n {profile?.companyName ||\n tr(\n \"devportal.settings.noCompanyName\",\n \"No company name set yet\",\n )}\n </p>\n {profile?.bio && (\n <p className=\"max-w-2xl text-sm text-text-secondary\">\n {profile.bio}\n </p>\n )}\n <div className=\"flex flex-wrap gap-2 pt-1 text-xs text-text-secondary\">\n <span className=\"rounded-full bg-bg-sunken px-2.5 py-1\">\n {profile?.applicationCount ?? 0}{\" \"}\n {tr(\n \"devportal.settings.publishedAssetsTracked\",\n \"published assets tracked\",\n )}\n </span>\n <span className=\"rounded-full bg-bg-sunken px-2.5 py-1\">\n {profile?.totalInstalls ?? 0}{\" \"}\n {tr(\"devportal.settings.installs\", \"installs\")}\n </span>\n <span className=\"rounded-full bg-bg-sunken px-2.5 py-1\">\n {tr(\"devportal.settings.emailUpdates\", \"Email updates\")}{\" \"}\n {profile?.emailNotifications\n ? tr(\"devportal.common.enabled\", \"enabled\")\n : tr(\"devportal.common.disabled\", \"disabled\")}\n </span>\n </div>\n </div>\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/publisher/profile\")}\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 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <Settings size={16} aria-hidden=\"true\" />\n {tr(\"devportal.settings.manageProfile\", \"Manage profile\")}\n </button>\n </div>\n </EmphasisPanel>\n </PageSection>\n\n <div className=\"grid gap-6 lg:grid-cols-2\">\n <PageSection\n title={tr(\"devportal.settings.credentials\", \"Credentials\")}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/api-keys\")}\n className=\"rounded-card border border-border-seam bg-bg-surface p-4 text-left transition-colors hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <div className=\"flex items-center gap-2 text-primary\">\n <KeyRound size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\"devportal.apiKeys\", \"API Keys\")}\n </span>\n </div>\n <p className=\"mt-2 text-2xl font-semibold\">\n {totalApiKeyCount}\n </p>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {latestApiKey\n ? `${tr(\"devportal.settings.lastUsed\", \"Last used\")} ${formatDate(latestApiKey.lastUsedAt, neverLabel)}`\n : tr(\n \"devportal.settings.noApiKeys\",\n \"No API keys created yet\",\n )}\n </p>\n </button>\n\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/oauth\")}\n className=\"rounded-card border border-border-seam bg-bg-surface p-4 text-left transition-colors hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <div className=\"flex items-center gap-2 text-primary\">\n <Workflow size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\"devportal.settings.oauthApps\", \"OAuth Apps\")}\n </span>\n </div>\n <p className=\"mt-2 text-2xl font-semibold\">\n {tr(\"devportal.common.open\", \"Open\")}\n </p>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {tr(\n \"devportal.settings.oauthDescription\",\n \"Manage OAuth clients on the dedicated credentials page.\",\n )}\n </p>\n </button>\n </div>\n </div>\n </PageSection>\n\n <PageSection\n title={tr(\"devportal.settings.organizations\", \"Organizations\")}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <div className=\"flex items-center gap-2 text-primary\">\n <Building2 size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\n \"devportal.settings.developerOrganizations\",\n \"Developer organizations\",\n )}\n </span>\n </div>\n <p className=\"mt-2 text-2xl font-semibold\">\n {organizations.length}\n </p>\n <p className=\"mt-1 text-sm text-text-secondary\">\n ${totalRevenue.toLocaleString()}{\" \"}\n {tr(\n \"devportal.settings.lifetimeRevenue\",\n \"lifetime revenue across all teams\",\n )}\n </p>\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/organizations\")}\n className=\"mt-4 inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n {tr(\n \"devportal.settings.viewOrganizations\",\n \"View organizations\",\n )}\n <ExternalLink size={14} aria-hidden=\"true\" />\n </button>\n </div>\n </PageSection>\n </div>\n\n <PageSection\n title={tr(\n \"devportal.settings.deliveryAutomation\",\n \"Delivery & automation\",\n )}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between\">\n <div>\n <div className=\"flex items-center gap-2 text-primary\">\n <Webhook size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\n \"devportal.settings.webhookOperations\",\n \"Webhook operations\",\n )}\n </span>\n </div>\n <p className=\"mt-2 text-sm text-text-secondary\">\n {tr(\n \"devportal.settings.webhookOperationsDescription\",\n \"Configure application webhooks from each application detail page. Delivery history and retry status are available per app.\",\n )}\n </p>\n </div>\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/webhooks\")}\n className=\"inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n {tr(\"devportal.settings.openWebhooks\", \"Open webhooks\")}\n <ExternalLink size={14} aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n </PageSection>\n </div>\n\n <div className=\"space-y-6\">\n <PageSection\n title={tr(\n \"devportal.settings.securitySupport\",\n \"Security & support\",\n )}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <div className=\"flex items-center gap-2 text-primary\">\n <Shield size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\"devportal.settings.securityPosture\", \"Security posture\")}\n </span>\n </div>\n <ul className=\"mt-4 space-y-3 text-sm text-text-secondary\">\n <li className=\"rounded-md bg-bg-sunken px-3 py-2\">\n {tr(\n \"devportal.settings.securityNote1\",\n \"API keys and OAuth apps are managed through the public global gateway.\",\n )}\n </li>\n <li className=\"rounded-md bg-bg-sunken px-3 py-2\">\n {tr(\n \"devportal.settings.securityNote2\",\n \"Webhook testing and delivery history are available per application.\",\n )}\n </li>\n <li className=\"rounded-md bg-bg-sunken px-3 py-2\">\n {tr(\n \"devportal.settings.securityNote3\",\n \"Profile verification status is reflected directly from your developer profile.\",\n )}\n </li>\n </ul>\n </div>\n </PageSection>\n\n <PageSection\n title={tr(\n \"devportal.settings.recentCredentialActivity\",\n \"Recent credential activity\",\n )}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n {latestApiKey ? (\n <div className=\"space-y-4 text-sm\">\n <div className=\"flex items-center justify-between gap-3\">\n <div>\n <p className=\"font-medium\">{latestApiKey.name}</p>\n <p className=\"text-text-secondary\">\n {latestApiKey.prefix}\n </p>\n </div>\n <span className=\"inline-flex items-center rounded-full bg-status-success-bg-subtle px-2.5 py-1 text-xs font-medium text-status-success-text\">\n {tr(\"devportal.common.active\", \"Active\")}\n </span>\n </div>\n <dl className=\"grid gap-3 text-text-secondary\">\n <div className=\"flex items-center justify-between gap-3\">\n <dt>{tr(\"devportal.common.created\", \"Created\")}</dt>\n <dd>{formatDate(latestApiKey.createdAt, neverLabel)}</dd>\n </div>\n <div className=\"flex items-center justify-between gap-3\">\n <dt>{tr(\"devportal.common.expires\", \"Expires\")}</dt>\n <dd>{formatDate(latestApiKey.expiresAt, neverLabel)}</dd>\n </div>\n <div className=\"flex items-center justify-between gap-3\">\n <dt>{tr(\"devportal.settings.lastUsed\", \"Last used\")}</dt>\n <dd>{formatDate(latestApiKey.lastUsedAt, neverLabel)}</dd>\n </div>\n </dl>\n </div>\n ) : (\n <EmptyState\n illustration=\"empty-notifications\"\n icon={<KeyRound size={24} />}\n title={tr(\n \"devportal.settings.noCredentialActivity\",\n \"No credential activity yet\",\n )}\n description={tr(\n \"devportal.settings.noCredentialActivityDescription\",\n \"Create an API key or OAuth app to manage credentials from here.\",\n )}\n />\n )}\n </div>\n </PageSection>\n\n <PageSection\n title={tr(\"devportal.settings.accountActions\", \"Account actions\")}\n >\n <div className=\"rounded-lg border border-status-warning-border bg-status-warning-bg-subtle p-6\">\n <h2 className=\"font-semibold text-status-warning-text\">\n {tr(\n \"devportal.settings.needHelpTitle\",\n \"Need help with account changes?\",\n )}\n </h2>\n <p className=\"mt-2 text-sm text-status-warning-text\">\n {tr(\n \"devportal.settings.needHelpDescription\",\n \"Destructive account operations are handled through support so the team can verify ownership and preserve billing history, audit trails, and marketplace assets.\",\n )}\n </p>\n <a\n href=\"mailto:support@burdenoff.com?subject=Developer%20portal%20account%20support\"\n className=\"mt-4 inline-flex items-center gap-2 rounded-md border border-status-warning-border bg-bg-surface px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <Mail size={16} aria-hidden=\"true\" />\n {tr(\"devportal.settings.contactSupport\", \"Contact support\")}\n </a>\n </div>\n </PageSection>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsPage.js","names":["EmptyState","EmptyState$1","formatDate","value","neverLabel","parsed","SettingsPage","useDevportal","tr","useTr","useGetDeveloperPortalSettingsOverviewQuery","handleNavigate","basePath","path","title","description","loading","data","PageLayout","Loader2","error","AlertCircle","getErrorMessage","profile","organizations","org","apiKeys","totalApiKeyCount","latestApiKey","totalRevenue","sum","organization","PageSection","EmphasisPanel","UserCircle2","VerifiedBadge","Settings","KeyRound","Workflow","Building2","ExternalLink","Webhook","Shield","Mail"],"sources":["../../../src/devportal/pages/SettingsPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport {\n Building2,\n ExternalLink,\n KeyRound,\n Mail,\n Settings,\n Shield,\n UserCircle2,\n Webhook,\n Workflow,\n Loader2,\n AlertCircle,\n} from \"lucide-react\";\nimport { EmphasisPanel } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { VerifiedBadge } from \"../components/StatusBadge\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport {\n getErrorMessage,\n useGetDeveloperPortalSettingsOverviewQuery,\n} from \"../hooks\";\nimport { useTr } from \"../utils/i18n\";\n\nconst formatDate = (\n value: string | null | undefined,\n neverLabel: string,\n): string => {\n if (!value) return neverLabel;\n\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) return neverLabel;\n\n return parsed.toLocaleDateString();\n};\n\nexport const SettingsPage: FC = () => {\n const { navigate, basePath } = useDevportal();\n const tr = useTr();\n const { data, loading, error } = useGetDeveloperPortalSettingsOverviewQuery({\n fetchPolicy: \"cache-and-network\",\n });\n\n const handleNavigate = (path: string) => {\n navigate?.(`${basePath}${path}`);\n };\n\n const neverLabel = tr(\"devportal.settings.never\", \"Never\");\n const title = tr(\"devportal.settings.title\", \"Settings\");\n const description = tr(\n \"devportal.settings.description\",\n \"Review your developer portal account, credentials, and support options\",\n );\n\n if (loading && !data) {\n return (\n <PageLayout title={title} description={description}>\n <div\n className=\"flex items-center justify-center py-16 text-text-secondary\"\n role=\"status\"\n aria-live=\"polite\"\n aria-label={tr(\"devportal.common.loading\", \"Loading\")}\n >\n <Loader2 className=\"h-8 w-8 animate-spin\" />\n </div>\n </PageLayout>\n );\n }\n\n if (error) {\n return (\n <PageLayout title={title} description={description}>\n <EmptyState\n icon={<AlertCircle size={32} className=\"text-status-error-text\" />}\n title={tr(\"devportal.settings.errorTitle\", \"Unable to load settings\")}\n description={getErrorMessage(error)}\n />\n </PageLayout>\n );\n }\n\n const profile = data?.myDeveloperProfile;\n // This overview is scoped to the regular (digital) devportal — exclude\n // PHYSICAL orgs so seller-portal orgs don't inflate the \"Developer\n // organizations\" count/revenue shown here. See DeveloperOrgKind (BOFF-7285).\n type SettingsOrganization = NonNullable<\n typeof data\n >[\"myDeveloperOrganizations\"][number];\n const organizations = (data?.myDeveloperOrganizations ?? []).filter(\n (org: SettingsOrganization) => org.kind !== \"PHYSICAL\",\n );\n const apiKeys = data?.myApiKeys?.apiKeys ?? [];\n const totalApiKeyCount = data?.myApiKeys?.totalCount ?? apiKeys.length;\n const latestApiKey = apiKeys[0];\n const totalRevenue = organizations.reduce(\n (sum: number, organization: (typeof organizations)[number]) =>\n sum + (organization.totalRevenue ?? 0),\n 0,\n );\n\n return (\n <PageLayout\n title={title}\n description={description}\n purpose={tr(\n \"devportal.settings.purpose\",\n \"A quick health-check of your developer account — your profile, how many API keys and organizations you have, and where to get support. Use it to spot missing setup before it blocks publishing or billing.\",\n )}\n >\n <div className=\"grid gap-6 xl:grid-cols-[minmax(0,2fr)_minmax(320px,1fr)]\">\n <div className=\"space-y-6\">\n <PageSection title={tr(\"devportal.settings.profile\", \"Profile\")}>\n <EmphasisPanel>\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-2\">\n <UserCircle2\n className=\"h-5 w-5 text-primary\"\n aria-hidden=\"true\"\n />\n <h2 className=\"text-lg font-semibold\">\n {tr(\n \"devportal.settings.developerProfile\",\n \"Developer profile\",\n )}\n </h2>\n {profile?.isVerified && <VerifiedBadge verified />}\n </div>\n <p className=\"text-sm text-text-secondary\">\n {profile?.companyName ||\n tr(\n \"devportal.settings.noCompanyName\",\n \"No company name set yet\",\n )}\n </p>\n {profile?.bio && (\n <p className=\"max-w-2xl text-sm text-text-secondary\">\n {profile.bio}\n </p>\n )}\n <div className=\"flex flex-wrap gap-2 pt-1 text-xs text-text-secondary\">\n <span className=\"rounded-full bg-bg-sunken px-2.5 py-1\">\n {profile?.applicationCount ?? 0}{\" \"}\n {tr(\n \"devportal.settings.publishedAssetsTracked\",\n \"published assets tracked\",\n )}\n </span>\n <span className=\"rounded-full bg-bg-sunken px-2.5 py-1\">\n {profile?.totalInstalls ?? 0}{\" \"}\n {tr(\"devportal.settings.installs\", \"installs\")}\n </span>\n <span className=\"rounded-full bg-bg-sunken px-2.5 py-1\">\n {tr(\"devportal.settings.emailUpdates\", \"Email updates\")}{\" \"}\n {profile?.emailNotifications\n ? tr(\"devportal.common.enabled\", \"enabled\")\n : tr(\"devportal.common.disabled\", \"disabled\")}\n </span>\n </div>\n </div>\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/publisher/profile\")}\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 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <Settings size={16} aria-hidden=\"true\" />\n {tr(\"devportal.settings.manageProfile\", \"Manage profile\")}\n </button>\n </div>\n </EmphasisPanel>\n </PageSection>\n\n <div className=\"grid gap-6 lg:grid-cols-2\">\n <PageSection\n title={tr(\"devportal.settings.credentials\", \"Credentials\")}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/api-keys\")}\n className=\"rounded-card border border-border-seam bg-bg-surface p-4 text-left transition-colors hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <div className=\"flex items-center gap-2 text-primary\">\n <KeyRound size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\"devportal.apiKeys\", \"API Keys\")}\n </span>\n </div>\n <p className=\"mt-2 text-2xl font-semibold\">\n {totalApiKeyCount}\n </p>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {latestApiKey\n ? `${tr(\"devportal.settings.lastUsed\", \"Last used\")} ${formatDate(latestApiKey.lastUsedAt, neverLabel)}`\n : tr(\n \"devportal.settings.noApiKeys\",\n \"No API keys created yet\",\n )}\n </p>\n </button>\n\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/oauth\")}\n className=\"rounded-card border border-border-seam bg-bg-surface p-4 text-left transition-colors hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <div className=\"flex items-center gap-2 text-primary\">\n <Workflow size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\"devportal.settings.oauthApps\", \"OAuth Apps\")}\n </span>\n </div>\n <p className=\"mt-2 text-2xl font-semibold\">\n {tr(\"devportal.common.open\", \"Open\")}\n </p>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {tr(\n \"devportal.settings.oauthDescription\",\n \"Manage OAuth clients on the dedicated credentials page.\",\n )}\n </p>\n </button>\n </div>\n </div>\n </PageSection>\n\n <PageSection\n title={tr(\"devportal.settings.organizations\", \"Organizations\")}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <div className=\"flex items-center gap-2 text-primary\">\n <Building2 size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\n \"devportal.settings.developerOrganizations\",\n \"Developer organizations\",\n )}\n </span>\n </div>\n <p className=\"mt-2 text-2xl font-semibold\">\n {organizations.length}\n </p>\n <p className=\"mt-1 text-sm text-text-secondary\">\n ${totalRevenue.toLocaleString()}{\" \"}\n {tr(\n \"devportal.settings.lifetimeRevenue\",\n \"lifetime revenue across all teams\",\n )}\n </p>\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/organizations\")}\n className=\"mt-4 inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n {tr(\n \"devportal.settings.viewOrganizations\",\n \"View organizations\",\n )}\n <ExternalLink size={14} aria-hidden=\"true\" />\n </button>\n </div>\n </PageSection>\n </div>\n\n <PageSection\n title={tr(\n \"devportal.settings.deliveryAutomation\",\n \"Delivery & automation\",\n )}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between\">\n <div>\n <div className=\"flex items-center gap-2 text-primary\">\n <Webhook size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\n \"devportal.settings.webhookOperations\",\n \"Webhook operations\",\n )}\n </span>\n </div>\n <p className=\"mt-2 text-sm text-text-secondary\">\n {tr(\n \"devportal.settings.webhookOperationsDescription\",\n \"Configure application webhooks from each application detail page. Delivery history and retry status are available per app.\",\n )}\n </p>\n </div>\n <button\n type=\"button\"\n onClick={() => handleNavigate(\"/webhooks\")}\n className=\"inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n {tr(\"devportal.settings.openWebhooks\", \"Open webhooks\")}\n <ExternalLink size={14} aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n </PageSection>\n </div>\n\n <div className=\"space-y-6\">\n <PageSection\n title={tr(\n \"devportal.settings.securitySupport\",\n \"Security & support\",\n )}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <div className=\"flex items-center gap-2 text-primary\">\n <Shield size={16} aria-hidden=\"true\" />\n <span className=\"font-medium\">\n {tr(\"devportal.settings.securityPosture\", \"Security posture\")}\n </span>\n </div>\n <ul className=\"mt-4 space-y-3 text-sm text-text-secondary\">\n <li className=\"rounded-md bg-bg-sunken px-3 py-2\">\n {tr(\n \"devportal.settings.securityNote1\",\n \"API keys and OAuth apps are managed through the public global gateway.\",\n )}\n </li>\n <li className=\"rounded-md bg-bg-sunken px-3 py-2\">\n {tr(\n \"devportal.settings.securityNote2\",\n \"Webhook testing and delivery history are available per application.\",\n )}\n </li>\n <li className=\"rounded-md bg-bg-sunken px-3 py-2\">\n {tr(\n \"devportal.settings.securityNote3\",\n \"Profile verification status is reflected directly from your developer profile.\",\n )}\n </li>\n </ul>\n </div>\n </PageSection>\n\n <PageSection\n title={tr(\n \"devportal.settings.recentCredentialActivity\",\n \"Recent credential activity\",\n )}\n >\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n {latestApiKey ? (\n <div className=\"space-y-4 text-sm\">\n <div className=\"flex items-center justify-between gap-3\">\n <div>\n <p className=\"font-medium\">{latestApiKey.name}</p>\n <p className=\"text-text-secondary\">\n {latestApiKey.prefix}\n </p>\n </div>\n <span className=\"inline-flex items-center rounded-full bg-status-success-bg-subtle px-2.5 py-1 text-xs font-medium text-status-success-text\">\n {tr(\"devportal.common.active\", \"Active\")}\n </span>\n </div>\n <dl className=\"grid gap-3 text-text-secondary\">\n <div className=\"flex items-center justify-between gap-3\">\n <dt>{tr(\"devportal.common.created\", \"Created\")}</dt>\n <dd>{formatDate(latestApiKey.createdAt, neverLabel)}</dd>\n </div>\n <div className=\"flex items-center justify-between gap-3\">\n <dt>{tr(\"devportal.common.expires\", \"Expires\")}</dt>\n <dd>{formatDate(latestApiKey.expiresAt, neverLabel)}</dd>\n </div>\n <div className=\"flex items-center justify-between gap-3\">\n <dt>{tr(\"devportal.settings.lastUsed\", \"Last used\")}</dt>\n <dd>{formatDate(latestApiKey.lastUsedAt, neverLabel)}</dd>\n </div>\n </dl>\n </div>\n ) : (\n <EmptyState\n illustration=\"empty-notifications\"\n icon={<KeyRound size={24} />}\n title={tr(\n \"devportal.settings.noCredentialActivity\",\n \"No credential activity yet\",\n )}\n description={tr(\n \"devportal.settings.noCredentialActivityDescription\",\n \"Create an API key or OAuth app to manage credentials from here.\",\n )}\n />\n )}\n </div>\n </PageSection>\n\n <PageSection\n title={tr(\"devportal.settings.accountActions\", \"Account actions\")}\n >\n <div className=\"rounded-lg border border-status-warning-border bg-status-warning-bg-subtle p-6\">\n <h2 className=\"font-semibold text-status-warning-text\">\n {tr(\n \"devportal.settings.needHelpTitle\",\n \"Need help with account changes?\",\n )}\n </h2>\n <p className=\"mt-2 text-sm text-status-warning-text\">\n {tr(\n \"devportal.settings.needHelpDescription\",\n \"Destructive account operations are handled through support so the team can verify ownership and preserve billing history, audit trails, and marketplace assets.\",\n )}\n </p>\n <a\n href=\"mailto:support@burdenoff.com?subject=Developer%20portal%20account%20support\"\n className=\"mt-4 inline-flex items-center gap-2 rounded-md border border-status-warning-border bg-bg-surface px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <Mail size={16} aria-hidden=\"true\" />\n {tr(\"devportal.settings.contactSupport\", \"Contact support\")}\n </a>\n </div>\n </PageSection>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|