@burdenoff/microfe-devportal 2026.1107.3 → 2026.1108.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +46 -40
- 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 +19 -0
- package/dist/devportal/pages/PublisherPayoutsPage.js +650 -0
- package/dist/devportal/pages/PublisherPayoutsPage.js.map +1 -0
- package/dist/devportal/pages/PublisherProfilePage.d.ts +0 -2
- package/dist/devportal/pages/PublisherProfilePage.js +175 -163
- 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 +136 -0
- package/dist/devportal/utils/publisherPayouts.js +166 -0
- package/dist/devportal/utils/publisherPayouts.js.map +1 -0
- 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 +2614 -2317
- package/dist/generated/global-operations.js +412 -272
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/global-types.d.ts +2288 -339
- package/dist/generated/global-types.js +4 -3
- 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 +91 -1
- package/dist/translations/en.js +92 -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/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/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":"DelegationsPage.js","names":[],"sources":["../../../src/devportal/pages/DelegationsPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useState, useCallback, useEffect, useMemo } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Shield,\n Users,\n Clock,\n XCircle,\n AlertTriangle,\n Loader2,\n AlertCircle,\n Bot,\n Zap,\n Cog,\n} from \"lucide-react\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { LoadingState } from \"../components/LoadingState\";\nimport { ConfirmDialog } from \"../components/ConfirmDialog\";\nimport { SelectionCheckbox } from \"../components/SelectionCheckbox\";\nimport { cn } from \"../utils/cn\";\nimport { PermissionGuard } from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\nimport { useDevportalPermission } from \"../hooks/usePermission\";\nimport type { AppUserDelegation, DelegationStatus } from \"../types\";\nimport {\n useCurrentUserDelegationsQuery,\n useCurrentUserGrantedDelegationsQuery,\n useRevokeDelegationMutation,\n} from \"../../generated/global-operations\";\n\n// =============================================================================\n// HELPERS\n// =============================================================================\n\ntype ActiveTab = \"acting-as-me\" | \"granted-by-me\";\n\n/**\n * Map a GraphQL delegation fragment to the local AppUserDelegation type\n */\nfunction mapDelegation(d: {\n id: string;\n appId: string;\n userId: string;\n scopes: string[];\n workspaceIds?: string[] | null;\n status: string;\n grantedAt: string;\n grantedBy: string;\n expiresAt?: string | null;\n revokedAt?: string | null;\n revokedBy?: string | null;\n app: {\n id: string;\n name: string;\n description?: string | null;\n type: string;\n status: string;\n };\n}): AppUserDelegation {\n return {\n id: d.id,\n appId: d.appId,\n userId: d.userId,\n scopes: d.scopes,\n workspaceIds: d.workspaceIds ?? [],\n status: d.status as DelegationStatus,\n grantedAt: d.grantedAt,\n grantedBy: d.grantedBy,\n expiresAt: d.expiresAt ?? undefined,\n revokedAt: d.revokedAt ?? undefined,\n revokedBy: d.revokedBy ?? undefined,\n app: {\n id: d.app.id,\n name: d.app.name,\n description: d.app.description ?? undefined,\n type: d.app.type,\n status: d.app.status,\n },\n };\n}\n\n/**\n * Format a date string to relative time (\"2 hours ago\", \"3 days ago\", etc.)\n */\nfunction formatRelativeTime(dateString: string): string {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n const diffSeconds = Math.floor(diffMs / 1000);\n const diffMinutes = Math.floor(diffSeconds / 60);\n const diffHours = Math.floor(diffMinutes / 60);\n const diffDays = Math.floor(diffHours / 24);\n const diffWeeks = Math.floor(diffDays / 7);\n const diffMonths = Math.floor(diffDays / 30);\n\n if (diffSeconds < 60) return \"just now\";\n if (diffMinutes < 60)\n return `${diffMinutes} minute${diffMinutes !== 1 ? \"s\" : \"\"} ago`;\n if (diffHours < 24)\n return `${diffHours} hour${diffHours !== 1 ? \"s\" : \"\"} ago`;\n if (diffDays < 7) return `${diffDays} day${diffDays !== 1 ? \"s\" : \"\"} ago`;\n if (diffWeeks < 5)\n return `${diffWeeks} week${diffWeeks !== 1 ? \"s\" : \"\"} ago`;\n if (diffMonths < 12)\n return `${diffMonths} month${diffMonths !== 1 ? \"s\" : \"\"} ago`;\n\n return date.toLocaleDateString();\n}\n\n/**\n * Format a future date as relative time (\"in 3 days\", \"in 2 hours\", etc.)\n */\nfunction formatExpirationTime(dateString: string): string {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = date.getTime() - now.getTime();\n\n if (diffMs <= 0) return \"expired\";\n\n const diffMinutes = Math.floor(diffMs / (1000 * 60));\n const diffHours = Math.floor(diffMs / (1000 * 60 * 60));\n const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));\n\n if (diffMinutes < 60)\n return `in ${diffMinutes} minute${diffMinutes !== 1 ? \"s\" : \"\"}`;\n if (diffHours < 24)\n return `in ${diffHours} hour${diffHours !== 1 ? \"s\" : \"\"}`;\n return `in ${diffDays} day${diffDays !== 1 ? \"s\" : \"\"}`;\n}\n\n// =============================================================================\n// SUB-COMPONENTS\n// =============================================================================\n\n/**\n * Icon for app type (SERVICE, BOT, INTEGRATION, etc.)\n */\nconst AppTypeIcon: FC<{ type: string; className?: string }> = ({\n type,\n className,\n}) => {\n const iconProps = { className: cn(\"h-5 w-5\", className) };\n\n switch (type) {\n case \"SERVICE\":\n return <Cog {...iconProps} />;\n case \"BOT\":\n return <Bot {...iconProps} />;\n case \"INTEGRATION\":\n return <Zap {...iconProps} />;\n default:\n return <Shield {...iconProps} />;\n }\n};\n\n/**\n * Delegation status badge with color coding\n */\nconst DelegationStatusBadge: FC<{ status: DelegationStatus }> = ({\n status,\n}) => {\n const styles: Record<DelegationStatus, string> = {\n ACTIVE: \"bg-status-success-bg-subtle text-status-success-text\",\n REVOKED: \"bg-status-error-bg-subtle text-status-error-text\",\n EXPIRED: \"bg-bg-sunken text-text-primary\",\n };\n\n return (\n <span\n className={cn(\n \"inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium\",\n styles[status],\n )}\n >\n {status}\n </span>\n );\n};\n\n/**\n * Success toast that auto-dismisses\n */\nconst SuccessToast: FC<{ message: string; onDismiss: () => void }> = ({\n message,\n onDismiss,\n}) => {\n useEffect(() => {\n const timer = setTimeout(onDismiss, 5000);\n return () => clearTimeout(timer);\n }, [onDismiss]);\n\n return (\n <div className=\"rounded-lg border border-border-subtle bg-status-success-bg-subtle p-4\">\n <div className=\"flex items-center gap-3\">\n <Shield className=\"h-5 w-5 text-status-success-text\" />\n <p className=\"text-sm font-medium text-status-success-text\">\n {message}\n </p>\n </div>\n </div>\n );\n};\n\n/**\n * Error banner\n */\nconst ErrorBanner: FC<{ message: string; onRetry?: () => void }> = ({\n message,\n onRetry,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n return (\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-4\">\n <div className=\"flex items-center gap-3\">\n <AlertCircle className=\"h-5 w-5 text-status-error-text\" />\n <p className=\"flex-1 text-sm text-status-error-text\">{message}</p>\n {onRetry && (\n <button\n onClick={onRetry}\n className=\"rounded-md border px-3 py-1.5 text-xs font-medium hover:bg-bg-sunken transition-colors\"\n >\n {tr(\"devportal.retry\", \"Retry\")}\n </button>\n )}\n </div>\n </div>\n );\n};\n\n/**\n * Single delegation card for \"Apps Acting as Me\" tab\n */\nconst DelegationCard: FC<{\n delegation: AppUserDelegation;\n onRevoke: (delegation: AppUserDelegation) => void;\n isRevoking: boolean;\n selected: boolean;\n onToggleSelect: (checked: boolean) => void;\n canRevoke: boolean;\n}> = ({\n delegation,\n onRevoke,\n isRevoking,\n selected,\n onToggleSelect,\n canRevoke,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n return (\n <div\n className={cn(\n \"rounded-card border border-border-seam bg-bg-surface p-5 transition-colors hover:border-border-subtle/80\",\n selected && \"border-primary bg-action-primary-bg/5\",\n delegation.status !== \"ACTIVE\" && \"opacity-60\",\n )}\n >\n <div className=\"flex items-start justify-between gap-4\">\n {/* Left: App info */}\n <div className=\"flex items-start gap-4 min-w-0\">\n {delegation.status === \"ACTIVE\" && (\n <div onClick={(event) => event.stopPropagation()}>\n <SelectionCheckbox\n checked={selected}\n onChange={onToggleSelect}\n ariaLabel={tr(\n \"devportal.selectDelegationAriaLabel\",\n `Select delegation ${delegation.app?.name ?? delegation.id}`,\n )}\n className=\"mt-1\"\n />\n </div>\n )}\n <div\n className={cn(\n \"flex h-12 w-12 shrink-0 items-center justify-center rounded-lg\",\n delegation.status === \"ACTIVE\"\n ? \"bg-action-primary-bg/10 text-primary\"\n : \"bg-bg-sunken text-text-secondary\",\n )}\n >\n <AppTypeIcon\n type={delegation.app?.type ?? \"SERVICE\"}\n className=\"h-6 w-6\"\n />\n </div>\n\n <div className=\"min-w-0 space-y-2\">\n {/* Name + status */}\n <div className=\"flex items-center gap-2\">\n <h3 className=\"truncate font-semibold\">\n {delegation.app?.name ??\n tr(\"devportal.unknownApp\", \"Unknown App\")}\n </h3>\n <DelegationStatusBadge status={delegation.status} />\n </div>\n\n {/* Description */}\n {delegation.app?.description && (\n <p className=\"text-sm text-text-secondary line-clamp-2\">\n {delegation.app.description}\n </p>\n )}\n\n {/* Metadata row */}\n <div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.granted\", \"Granted\")}{\" \"}\n {formatRelativeTime(delegation.grantedAt)}\n </span>\n {delegation.expiresAt && (\n <span className=\"flex items-center gap-1\">\n <AlertTriangle className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.expires\", \"Expires\")}{\" \"}\n {formatExpirationTime(delegation.expiresAt)}\n </span>\n )}\n <span\n className={cn(\n \"rounded-md px-2 py-0.5 text-xs font-mono\",\n \"bg-bg-sunken text-text-secondary\",\n )}\n >\n {delegation.app?.type ?? \"UNKNOWN\"}\n </span>\n </div>\n\n {/* Scopes */}\n {delegation.scopes.length > 0 && (\n <div>\n <p className=\"mb-1.5 text-xs text-text-secondary\">\n {tr(\"devportal.permissions\", \"Permissions:\")}\n </p>\n <div className=\"flex flex-wrap gap-1.5\">\n {delegation.scopes.map((scope) => (\n <span\n key={scope}\n className=\"rounded-md bg-status-info-bg-subtle px-2 py-0.5 text-xs text-status-info-text\"\n >\n {scope}\n </span>\n ))}\n </div>\n </div>\n )}\n\n {/* Workspace count */}\n {delegation.workspaceIds.length > 0 && (\n <p className=\"flex items-center gap-1 text-xs text-text-secondary\">\n <Users className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.accessToWorkspaces\", \"Access to\")}{\" \"}\n {delegation.workspaceIds.length}{\" \"}\n {tr(\"devportal.workspace\", \"workspace\")}\n {delegation.workspaceIds.length !== 1\n ? tr(\"devportal.workspacePluralSuffix\", \"s\")\n : \"\"}\n </p>\n )}\n </div>\n </div>\n\n {/* Right: Revoke button (only for active delegations) */}\n {delegation.status === \"ACTIVE\" && (\n <button\n onClick={() => onRevoke(delegation)}\n disabled={isRevoking || !canRevoke}\n aria-disabled={!canRevoke}\n className=\"inline-flex shrink-0 items-center gap-2 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-status-error-text transition-colors hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {isRevoking ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <XCircle className=\"h-4 w-4\" />\n )}\n {tr(\"devportal.revoke\", \"Revoke\")}\n </button>\n )}\n </div>\n </div>\n );\n};\n\n/**\n * Single delegation card for \"Delegations I Granted\" tab\n */\nconst GrantedDelegationCard: FC<{\n delegation: AppUserDelegation;\n onRevoke: (delegation: AppUserDelegation) => void;\n isRevoking: boolean;\n selected: boolean;\n onToggleSelect: (checked: boolean) => void;\n canRevoke: boolean;\n}> = ({\n delegation,\n onRevoke,\n isRevoking,\n selected,\n onToggleSelect,\n canRevoke,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n return (\n <div\n className={cn(\n \"rounded-card border border-border-seam bg-bg-surface p-5 transition-colors hover:border-border-subtle/80\",\n selected && \"border-primary bg-action-primary-bg/5\",\n )}\n >\n <div className=\"flex items-start justify-between gap-4\">\n {/* Left: App info */}\n <div className=\"flex items-start gap-4 min-w-0\">\n {delegation.status === \"ACTIVE\" && (\n <div onClick={(event) => event.stopPropagation()}>\n <SelectionCheckbox\n checked={selected}\n onChange={onToggleSelect}\n ariaLabel={tr(\n \"devportal.selectDelegationAriaLabel\",\n `Select delegation ${delegation.app?.name ?? delegation.id}`,\n )}\n className=\"mt-1\"\n />\n </div>\n )}\n <div className=\"flex h-12 w-12 shrink-0 items-center justify-center rounded-lg bg-accent-purple-subtle text-accent-purple\">\n <AppTypeIcon\n type={delegation.app?.type ?? \"SERVICE\"}\n className=\"h-6 w-6\"\n />\n </div>\n\n <div className=\"min-w-0 space-y-2\">\n {/* Name + status */}\n <div className=\"flex items-center gap-2\">\n <h3 className=\"truncate font-semibold\">\n {delegation.app?.name ??\n tr(\"devportal.unknownApp\", \"Unknown App\")}\n </h3>\n <DelegationStatusBadge status={delegation.status} />\n </div>\n\n {/* Target user */}\n <p className=\"text-sm text-text-secondary\">\n {tr(\"devportal.grantedToUser\", \"Granted to user:\")}{\" \"}\n <code className=\"rounded bg-bg-sunken px-1.5 py-0.5 text-xs\">\n {delegation.userId}\n </code>\n </p>\n\n {/* Time */}\n <div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.granted\", \"Granted\")}{\" \"}\n {formatRelativeTime(delegation.grantedAt)}\n </span>\n {delegation.expiresAt && (\n <span className=\"flex items-center gap-1\">\n <AlertTriangle className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.expires\", \"Expires\")}{\" \"}\n {new Date(delegation.expiresAt).toLocaleDateString()}\n </span>\n )}\n </div>\n\n {/* Scopes */}\n {delegation.scopes.length > 0 && (\n <div>\n <p className=\"mb-1.5 text-xs text-text-secondary\">\n {tr(\"devportal.permissionsGranted\", \"Permissions granted:\")}\n </p>\n <div className=\"flex flex-wrap gap-1.5\">\n {delegation.scopes.map((scope) => (\n <span\n key={scope}\n className=\"rounded-md bg-accent-purple-subtle px-2 py-0.5 text-xs text-accent-purple\"\n >\n {scope}\n </span>\n ))}\n </div>\n </div>\n )}\n </div>\n </div>\n\n {/* Right: Revoke button */}\n {delegation.status === \"ACTIVE\" && (\n <button\n onClick={() => onRevoke(delegation)}\n disabled={isRevoking || !canRevoke}\n aria-disabled={!canRevoke}\n className=\"inline-flex shrink-0 items-center gap-2 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-status-error-text transition-colors hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {isRevoking ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <XCircle className=\"h-4 w-4\" />\n )}\n {tr(\"devportal.revoke\", \"Revoke\")}\n </button>\n )}\n </div>\n </div>\n );\n};\n\n/**\n * Revocation history section (dimmed, for revoked/expired delegations)\n */\nconst RevocationHistory: FC<{ delegations: AppUserDelegation[] }> = ({\n delegations,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n\n if (delegations.length === 0) return null;\n\n return (\n <div className=\"space-y-4\">\n <h2 className=\"text-lg font-semibold\">\n {tr(\"devportal.revocationHistory\", \"Revocation History\")}\n </h2>\n <div className=\"space-y-3 opacity-60\">\n {delegations.map((delegation) => (\n <div\n key={delegation.id}\n className=\"flex items-center justify-between rounded-lg border bg-bg-sunken/30 p-4\"\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-lg bg-bg-sunken text-text-secondary\">\n <AppTypeIcon\n type={delegation.app?.type ?? \"SERVICE\"}\n className=\"h-5 w-5\"\n />\n </div>\n <div>\n <h3 className=\"font-medium\">\n {delegation.app?.name ??\n tr(\"devportal.unknownApp\", \"Unknown App\")}\n </h3>\n <p className=\"text-sm text-text-secondary\">\n {delegation.status === \"REVOKED\"\n ? tr(\"devportal.revoked\", \"Revoked\")\n : tr(\"devportal.expired\", \"Expired\")}{\" \"}\n {delegation.revokedAt\n ? formatRelativeTime(delegation.revokedAt)\n : \"\"}\n </p>\n </div>\n </div>\n <DelegationStatusBadge status={delegation.status} />\n </div>\n ))}\n </div>\n </div>\n );\n};\n\n// =============================================================================\n// MAIN COMPONENT\n// =============================================================================\n\n/**\n * Delegations management page for the Developer Portal.\n *\n * Consolidates delegation management previously at /auth/delegations in\n * microfe-auth. Shows two tabs:\n * - \"Apps Acting as Me\": delegations where the current user is the subject\n * - \"Delegations I Granted\": delegations the current user granted to others\n */\nexport const DelegationsPage: FC = () => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const { allowed: canRevoke } = useDevportalPermission(\n DEVPORTAL_PERMISSIONS.DELEGATION_REVOKE,\n );\n // ---------------------------------------------------------------------------\n // State\n // ---------------------------------------------------------------------------\n const [activeTab, setActiveTab] = useState<ActiveTab>(\"acting-as-me\");\n const [revokeTargets, setRevokeTargets] = useState<AppUserDelegation[]>([]);\n const [successMessage, setSuccessMessage] = useState<string | null>(null);\n const [selectedDelegationIds, setSelectedDelegationIds] = useState<\n Set<string>\n >(new Set());\n\n // ---------------------------------------------------------------------------\n // Queries\n // ---------------------------------------------------------------------------\n const {\n data: delegationsData,\n loading: delegationsLoading,\n error: delegationsError,\n refetch: refetchDelegations,\n } = useCurrentUserDelegationsQuery({\n fetchPolicy: \"cache-and-network\",\n });\n\n const {\n data: grantedData,\n loading: grantedLoading,\n error: grantedError,\n refetch: refetchGranted,\n } = useCurrentUserGrantedDelegationsQuery({\n fetchPolicy: \"cache-and-network\",\n });\n\n // ---------------------------------------------------------------------------\n // Mutation\n // ---------------------------------------------------------------------------\n const [revokeDelegationMutation, { loading: revokeLoading }] =\n useRevokeDelegationMutation();\n\n // ---------------------------------------------------------------------------\n // Derived data\n // ---------------------------------------------------------------------------\n const delegations: AppUserDelegation[] = (\n delegationsData?.currentUserDelegations?.delegations ?? []\n ).map(mapDelegation);\n\n const grantedDelegations: AppUserDelegation[] = (\n grantedData?.currentUserGrantedDelegations?.delegations ?? []\n ).map(mapDelegation);\n\n const activeDelegations = delegations.filter((d) => d.status === \"ACTIVE\");\n const inactiveDelegations = delegations.filter((d) => d.status !== \"ACTIVE\");\n const activeGrantedDelegations = grantedDelegations.filter(\n (d) => d.status === \"ACTIVE\",\n );\n const visibleActiveDelegations =\n activeTab === \"acting-as-me\" ? activeDelegations : activeGrantedDelegations;\n const selectedActiveDelegations = useMemo(\n () =>\n visibleActiveDelegations.filter((delegation) =>\n selectedDelegationIds.has(delegation.id),\n ),\n [selectedDelegationIds, visibleActiveDelegations],\n );\n const allVisibleSelected =\n visibleActiveDelegations.length > 0 &&\n visibleActiveDelegations.every((delegation) =>\n selectedDelegationIds.has(delegation.id),\n );\n const partiallySelected =\n visibleActiveDelegations.some((delegation) =>\n selectedDelegationIds.has(delegation.id),\n ) && !allVisibleSelected;\n\n const isLoading =\n activeTab === \"acting-as-me\" ? delegationsLoading : grantedLoading;\n const queryError =\n activeTab === \"acting-as-me\" ? delegationsError : grantedError;\n\n // ---------------------------------------------------------------------------\n // Handlers\n // ---------------------------------------------------------------------------\n const handleRevokeClick = useCallback((delegation: AppUserDelegation) => {\n setRevokeTargets([delegation]);\n }, []);\n\n const toggleDelegationSelection = useCallback(\n (delegationId: string, checked: boolean) => {\n setSelectedDelegationIds((prev) => {\n const next = new Set(prev);\n if (checked) {\n next.add(delegationId);\n } else {\n next.delete(delegationId);\n }\n return next;\n });\n },\n [],\n );\n\n const toggleAllVisibleDelegations = useCallback(\n (checked: boolean) => {\n setSelectedDelegationIds((prev) => {\n const next = new Set(prev);\n visibleActiveDelegations.forEach((delegation) => {\n if (checked) {\n next.add(delegation.id);\n } else {\n next.delete(delegation.id);\n }\n });\n return next;\n });\n },\n [visibleActiveDelegations],\n );\n\n const clearSelection = useCallback(() => {\n setSelectedDelegationIds(new Set());\n }, []);\n\n const handleBulkRevokeClick = useCallback(() => {\n if (selectedActiveDelegations.length === 0) return;\n setRevokeTargets(selectedActiveDelegations);\n }, [selectedActiveDelegations]);\n\n const handleRevokeConfirm = useCallback(async () => {\n if (revokeTargets.length === 0) return;\n try {\n const results = await Promise.allSettled(\n revokeTargets.map((delegation) =>\n revokeDelegationMutation({\n variables: {\n id: delegation.id,\n reason: tr(\n \"devportal.userRevokedAccessReason\",\n \"User revoked access via Developer Portal\",\n ),\n },\n }),\n ),\n );\n const succeeded = results.filter(\n (result: PromiseSettledResult<unknown>) =>\n result.status === \"fulfilled\",\n ).length;\n const failed = results.length - succeeded;\n setSuccessMessage(\n `Revoked ${succeeded} delegation${succeeded === 1 ? \"\" : \"s\"}${failed > 0 ? ` • ${failed} failed` : \"\"}`,\n );\n setSelectedDelegationIds((prev) => {\n const next = new Set(prev);\n revokeTargets.forEach((delegation) => next.delete(delegation.id));\n return next;\n });\n setRevokeTargets([]);\n // Refetch both queries to keep data fresh\n void refetchDelegations();\n void refetchGranted();\n } catch {\n // Error is available via the mutation hook's error state;\n // the ConfirmDialog will close and we show the error via queryError fallback\n setRevokeTargets([]);\n }\n }, [\n revokeTargets,\n revokeDelegationMutation,\n refetchDelegations,\n refetchGranted,\n ]);\n\n const handleDismissSuccess = useCallback(() => {\n setSuccessMessage(null);\n }, []);\n\n // ---------------------------------------------------------------------------\n // Summary stats for header\n // ---------------------------------------------------------------------------\n const totalActive = activeDelegations.length;\n const totalGranted = activeGrantedDelegations.length;\n\n // ---------------------------------------------------------------------------\n // Render\n // ---------------------------------------------------------------------------\n return (\n <PermissionGuard authOnly>\n <PageLayout\n title={tr(\"devportal.appDelegationsTitle\", \"App Delegations\")}\n description={tr(\n \"devportal.appDelegationsDescription\",\n \"Manage which apps can act on your behalf. Revoke access at any time.\",\n )}\n purpose={tr(\n \"devportal.appDelegationsPurpose\",\n \"Delegations are the consent grants that let an app perform actions as you within a limited scope and time window. Review what you have authorized here, see what each app can do, and revoke anything you no longer trust.\",\n )}\n >\n {/* Success message */}\n {successMessage && (\n <SuccessToast\n message={successMessage}\n onDismiss={handleDismissSuccess}\n />\n )}\n\n {/* Error message */}\n {queryError && (\n <ErrorBanner\n message={\n queryError.message ||\n tr(\n \"devportal.failedToLoadDelegations\",\n \"Failed to load delegations\",\n )\n }\n onRetry={() => {\n void refetchDelegations();\n void refetchGranted();\n }}\n />\n )}\n\n {/* Summary stats — primary emphasis zone */}\n <EmphasisPanel>\n <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-text-secondary\">\n <Shield className=\"h-4 w-4\" />\n <span className=\"text-sm\">\n {tr(\"devportal.activeDelegations\", \"Active Delegations\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {totalActive}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-text-secondary\">\n <Users className=\"h-4 w-4\" />\n <span className=\"text-sm\">\n {tr(\"devportal.grantedByMe\", \"Granted by Me\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {totalGranted}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-status-warning-text\">\n <AlertTriangle className=\"h-4 w-4\" />\n <span className=\"text-sm\">\n {tr(\"devportal.revokedExpired\", \"Revoked / Expired\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {inactiveDelegations.length}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-text-secondary\">\n <Clock className=\"h-4 w-4\" />\n <span className=\"text-sm\">\n {tr(\"devportal.totalAllTime\", \"Total All-Time\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {delegations.length}\n </p>\n </GlassCard>\n </div>\n </EmphasisPanel>\n\n {/* Tabs */}\n <div className=\"border-b\">\n <div\n className=\"flex overflow-x-auto\"\n role=\"tablist\"\n aria-label={tr(\n \"devportal.delegationSections\",\n \"Delegation sections\",\n )}\n >\n <button\n id=\"delegations-tab-acting-as-me\"\n role=\"tab\"\n aria-selected={activeTab === \"acting-as-me\"}\n onClick={() => {\n clearSelection();\n setActiveTab(\"acting-as-me\");\n }}\n className={cn(\n \"-mb-px border-b-2 px-4 py-3 text-sm font-medium transition-colors\",\n activeTab === \"acting-as-me\"\n ? \"border-primary text-primary\"\n : \"border-transparent text-text-secondary hover:text-text-primary\",\n )}\n >\n {tr(\"devportal.appsActingAsMe\", \"Apps Acting as Me\")}\n {totalActive > 0 && (\n <span className=\"ml-2 inline-flex items-center justify-center rounded-full bg-action-primary-bg/10 px-2 py-0.5 text-xs font-medium text-primary\">\n {totalActive}\n </span>\n )}\n </button>\n <button\n id=\"delegations-tab-granted-by-me\"\n role=\"tab\"\n aria-selected={activeTab === \"granted-by-me\"}\n onClick={() => {\n clearSelection();\n setActiveTab(\"granted-by-me\");\n }}\n className={cn(\n \"-mb-px border-b-2 px-4 py-3 text-sm font-medium transition-colors\",\n activeTab === \"granted-by-me\"\n ? \"border-primary text-primary\"\n : \"border-transparent text-text-secondary hover:text-text-primary\",\n )}\n >\n {tr(\"devportal.delegationsIGranted\", \"Delegations I Granted\")}\n {totalGranted > 0 && (\n <span className=\"ml-2 inline-flex items-center justify-center rounded-full bg-action-primary-bg/10 px-2 py-0.5 text-xs font-medium text-primary\">\n {totalGranted}\n </span>\n )}\n </button>\n </div>\n </div>\n\n {visibleActiveDelegations.length > 0 && (\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-4\">\n <div className=\"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex items-center gap-2\">\n <SelectionCheckbox\n checked={allVisibleSelected}\n indeterminate={partiallySelected}\n onChange={toggleAllVisibleDelegations}\n ariaLabel={tr(\n \"devportal.selectAllVisibleDelegations\",\n \"Select all visible delegations\",\n )}\n />\n <span className=\"text-sm font-medium\">\n {tr(\"devportal.selectAllVisible\", \"Select all visible\")}\n </span>\n </div>\n {selectedDelegationIds.size > 0 && (\n <button\n onClick={clearSelection}\n className=\"text-sm text-text-secondary hover:text-text-primary\"\n >\n {tr(\"devportal.clearSelection\", \"Clear selection\")}\n </button>\n )}\n </div>\n\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary\">\n {selectedDelegationIds.size}{\" \"}\n {tr(\"devportal.selected\", \"selected\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold\">{totalActive}</p>\n </div>\n </div>\n )}\n\n {/* Loading */}\n {isLoading && !delegationsData && !grantedData && (\n <LoadingState\n message={tr(\n \"devportal.loadingDelegations\",\n \"Loading delegations...\",\n )}\n />\n )}\n\n {/* ------------------------------------------------------------------- */}\n {/* Tab 1: Apps Acting as Me */}\n {/* ------------------------------------------------------------------- */}\n {!isLoading && activeTab === \"acting-as-me\" && (\n <div\n className=\"space-y-8\"\n id=\"delegations-panel-acting-as-me\"\n role=\"tabpanel\"\n aria-labelledby=\"delegations-tab-acting-as-me\"\n tabIndex={0}\n >\n {activeDelegations.length === 0 &&\n inactiveDelegations.length === 0 ? (\n <EmptyState\n illustration=\"empty-people\"\n title={tr(\n \"devportal.noActiveDelegations\",\n \"No Active Delegations\",\n )}\n description={tr(\n \"devportal.noAppsAuthorizedOnYourBehalf\",\n \"No apps are currently authorized to act on your behalf.\",\n )}\n />\n ) : (\n <>\n {/* Active delegation cards */}\n {activeDelegations.length === 0 ? (\n <EmptyState\n illustration=\"empty-people\"\n icon={<Shield size={32} />}\n title={tr(\n \"devportal.noActiveDelegations\",\n \"No Active Delegations\",\n )}\n description={tr(\n \"devportal.allPreviousDelegationsRevokedOrExpired\",\n \"All previous delegations have been revoked or expired.\",\n )}\n />\n ) : (\n <div className=\"space-y-4\">\n {activeDelegations.map((delegation) => (\n <DelegationCard\n key={delegation.id}\n delegation={delegation}\n onRevoke={handleRevokeClick}\n isRevoking={\n revokeLoading &&\n revokeTargets.some(\n (item) => item.id === delegation.id,\n )\n }\n selected={selectedDelegationIds.has(delegation.id)}\n onToggleSelect={(checked) =>\n toggleDelegationSelection(delegation.id, checked)\n }\n canRevoke={canRevoke}\n />\n ))}\n </div>\n )}\n\n {/* Revocation history */}\n <RevocationHistory delegations={inactiveDelegations} />\n </>\n )}\n </div>\n )}\n\n {/* ------------------------------------------------------------------- */}\n {/* Tab 2: Delegations I Granted */}\n {/* ------------------------------------------------------------------- */}\n {!isLoading && activeTab === \"granted-by-me\" && (\n <div\n className=\"space-y-4\"\n id=\"delegations-panel-granted-by-me\"\n role=\"tabpanel\"\n aria-labelledby=\"delegations-tab-granted-by-me\"\n tabIndex={0}\n >\n {grantedDelegations.length === 0 ? (\n <EmptyState\n illustration=\"empty-people\"\n title={tr(\n \"devportal.noDelegationsGranted\",\n \"No Delegations Granted\",\n )}\n description={tr(\n \"devportal.noGrantedDelegationsDescription\",\n \"You haven't granted any app delegations to other users.\",\n )}\n />\n ) : (\n grantedDelegations.map((delegation) => (\n <GrantedDelegationCard\n key={delegation.id}\n delegation={delegation}\n onRevoke={handleRevokeClick}\n isRevoking={\n revokeLoading &&\n revokeTargets.some((item) => item.id === delegation.id)\n }\n selected={selectedDelegationIds.has(delegation.id)}\n onToggleSelect={(checked) =>\n toggleDelegationSelection(delegation.id, checked)\n }\n canRevoke={canRevoke}\n />\n ))\n )}\n </div>\n )}\n\n {/* Info card */}\n <div className=\"rounded-lg border border-border-subtle bg-status-info-bg-subtle p-5\">\n <div className=\"flex gap-4\">\n <AlertCircle className=\"h-6 w-6 shrink-0 text-accent-blue\" />\n <div>\n <h3 className=\"font-semibold text-status-info-text\">\n {tr(\"devportal.aboutAppDelegations\", \"About App Delegations\")}\n </h3>\n <p className=\"mt-1 text-sm text-status-info-text\">\n {tr(\n \"devportal.aboutAppDelegationsText\",\n \"App delegations allow automated services, bots, and integrations to perform actions on your behalf. Each delegation specifies which permissions (scopes) and workspaces the app can access. You can revoke access at any time, which immediately prevents the app from acting as you.\",\n )}\n </p>\n </div>\n </div>\n </div>\n\n {/* Revoke confirmation dialog */}\n <ConfirmDialog\n open={revokeTargets.length > 0}\n onOpenChange={(open) => {\n if (!open) setRevokeTargets([]);\n }}\n onConfirm={handleRevokeConfirm}\n title={\n revokeTargets.length > 1\n ? tr(\"devportal.revokeDelegations\", \"Revoke Delegations\")\n : tr(\"devportal.revokeDelegation\", \"Revoke Delegation\")\n }\n description={\n revokeTargets.length > 1\n ? tr(\n \"devportal.revokeDelegationsBulkConfirm\",\n `Are you sure you want to revoke ${revokeTargets.length} selected delegations? Those apps will no longer be able to act on the delegated users' behalf.`,\n )\n : tr(\n \"devportal.revokeDelegationSingleConfirm\",\n `Are you sure you want to revoke access for \"${revokeTargets[0]?.app?.name ?? \"this app\"}\"? This app will no longer be able to act on your behalf.`,\n )\n }\n confirmLabel={tr(\"devportal.revokeAccess\", \"Revoke Access\")}\n cancelLabel={tr(\"devportal.cancel\", \"Cancel\")}\n variant=\"danger\"\n loading={revokeLoading}\n />\n </PageLayout>\n </PermissionGuard>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAyCA,SAAS,EAAc,GAmBD;AACpB,QAAO;EACL,IAAI,EAAE;EACN,OAAO,EAAE;EACT,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,cAAc,EAAE,gBAAgB,EAAE;EAClC,QAAQ,EAAE;EACV,WAAW,EAAE;EACb,WAAW,EAAE;EACb,WAAW,EAAE,aAAa,KAAA;EAC1B,WAAW,EAAE,aAAa,KAAA;EAC1B,WAAW,EAAE,aAAa,KAAA;EAC1B,KAAK;GACH,IAAI,EAAE,IAAI;GACV,MAAM,EAAE,IAAI;GACZ,aAAa,EAAE,IAAI,eAAe,KAAA;GAClC,MAAM,EAAE,IAAI;GACZ,QAAQ,EAAE,IAAI;GACf;EACF;;AAMH,SAAS,EAAmB,GAA4B;CACtD,IAAM,IAAO,IAAI,KAAK,EAAW,EAE3B,qBADM,IAAI,MAAM,EACH,SAAS,GAAG,EAAK,SAAS,EACvC,IAAc,KAAK,MAAM,IAAS,IAAK,EACvC,IAAc,KAAK,MAAM,IAAc,GAAG,EAC1C,IAAY,KAAK,MAAM,IAAc,GAAG,EACxC,IAAW,KAAK,MAAM,IAAY,GAAG,EACrC,IAAY,KAAK,MAAM,IAAW,EAAE,EACpC,IAAa,KAAK,MAAM,IAAW,GAAG;AAa5C,QAXI,IAAc,KAAW,aACzB,IAAc,KACT,GAAG,EAAY,SAAS,MAAgB,IAAU,KAAN,IAAS,QAC1D,IAAY,KACP,GAAG,EAAU,OAAO,MAAc,IAAU,KAAN,IAAS,QACpD,IAAW,IAAU,GAAG,EAAS,MAAM,MAAa,IAAU,KAAN,IAAS,QACjE,IAAY,IACP,GAAG,EAAU,OAAO,MAAc,IAAU,KAAN,IAAS,QACpD,IAAa,KACR,GAAG,EAAW,QAAQ,MAAe,IAAU,KAAN,IAAS,QAEpD,EAAK,oBAAoB;;AAMlC,SAAS,EAAqB,GAA4B;CACxD,IAAM,IAAO,IAAI,KAAK,EAAW,EAC3B,oBAAM,IAAI,MAAM,EAChB,IAAS,EAAK,SAAS,GAAG,EAAI,SAAS;AAE7C,KAAI,KAAU,EAAG,QAAO;CAExB,IAAM,IAAc,KAAK,MAAM,KAAU,MAAO,IAAI,EAC9C,IAAY,KAAK,MAAM,KAAU,MAAO,KAAK,IAAI,EACjD,IAAW,KAAK,MAAM,KAAU,MAAO,KAAK,KAAK,IAAI;AAM3D,QAJI,IAAc,KACT,MAAM,EAAY,SAAS,MAAgB,IAAU,KAAN,QACpD,IAAY,KACP,MAAM,EAAU,OAAO,MAAc,IAAU,KAAN,QAC3C,MAAM,EAAS,MAAM,MAAa,IAAU,KAAN;;AAU/C,IAAM,KAAyD,EAC7D,SACA,mBACI;CACJ,IAAM,IAAY,EAAE,WAAW,EAAG,WAAW,EAAU,EAAE;AAEzD,SAAQ,GAAR;EACE,KAAK,UACH,QAAO,kBAAC,GAAD,EAAK,GAAI,GAAa,CAAA;EAC/B,KAAK,MACH,QAAO,kBAAC,GAAD,EAAK,GAAI,GAAa,CAAA;EAC/B,KAAK,cACH,QAAO,kBAAC,GAAD,EAAK,GAAI,GAAa,CAAA;EAC/B,QACE,QAAO,kBAAC,GAAD,EAAQ,GAAI,GAAa,CAAA;;GAOhC,KAA2D,EAC/D,gBASE,kBAAC,QAAD;CACE,WAAW,EACT,2EAT2C;EAC/C,QAAQ;EACR,SAAS;EACT,SAAS;EACV,CAMY,GACR;WAEA;CACI,CAAA,EAOL,MAAgE,EACpE,YACA,oBAEA,QAAgB;CACd,IAAM,IAAQ,WAAW,GAAW,IAAK;AACzC,cAAa,aAAa,EAAM;GAC/B,CAAC,EAAU,CAAC,EAGb,kBAAC,OAAD;CAAK,WAAU;WACb,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,oCAAqC,CAAA,EACvD,kBAAC,KAAD;GAAG,WAAU;aACV;GACC,CAAA,CACA;;CACF,CAAA,GAOJ,MAA8D,EAClE,YACA,iBACI;CACJ,IAAM,EAAE,SAAM,GAAS;AAKvB,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,GAAD,EAAa,WAAU,kCAAmC,CAAA;IAC1D,kBAAC,KAAD;KAAG,WAAU;eAAyC;KAAY,CAAA;IACjE,KACC,kBAAC,UAAD;KACE,SAAS;KACT,WAAU;iBAZR,GAAa,MAA6B;MACpD,IAAM,IAAQ,EAAE,EAAI;AACpB,aAAO,MAAU,IAAM,IAAW;QAYtB,mBAAmB,QAAQ;KACxB,CAAA;IAEP;;EACF,CAAA;GAOJ,MAOA,EACJ,eACA,aACA,eACA,aACA,mBACA,mBACI;CACJ,IAAM,EAAE,SAAM,GAAS,EACjB,KAAM,GAAa,MAA6B;EACpD,IAAM,IAAQ,EAAE,EAAI;AACpB,SAAO,MAAU,IAAM,IAAW;;AAEpC,QACE,kBAAC,OAAD;EACE,WAAW,EACT,4GACA,KAAY,yCACZ,EAAW,WAAW,YAAY,aACnC;YAED,kBAAC,OAAD;GAAK,WAAU;aAAf,CAEE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACG,EAAW,WAAW,YACrB,kBAAC,OAAD;MAAK,UAAU,MAAU,EAAM,iBAAiB;gBAC9C,kBAAC,GAAD;OACE,SAAS;OACT,UAAU;OACV,WAAW,EACT,uCACA,qBAAqB,EAAW,KAAK,QAAQ,EAAW,KACzD;OACD,WAAU;OACV,CAAA;MACE,CAAA;KAER,kBAAC,OAAD;MACE,WAAW,EACT,kEACA,EAAW,WAAW,WAClB,yCACA,mCACL;gBAED,kBAAC,GAAD;OACE,MAAM,EAAW,KAAK,QAAQ;OAC9B,WAAU;OACV,CAAA;MACE,CAAA;KAEN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OAEE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAW,KAAK,QACf,EAAG,wBAAwB,cAAc;SACxC,CAAA,EACL,kBAAC,GAAD,EAAuB,QAAQ,EAAW,QAAU,CAAA,CAChD;;OAGL,EAAW,KAAK,eACf,kBAAC,KAAD;QAAG,WAAU;kBACV,EAAW,IAAI;QACd,CAAA;OAIN,kBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,kBAAC,QAAD;UAAM,WAAU;oBAAhB;WACE,kBAAC,GAAD,EAAO,WAAU,eAAgB,CAAA;WAChC,EAAG,qBAAqB,UAAU;WAAE;WACpC,EAAmB,EAAW,UAAU;WACpC;;SACN,EAAW,aACV,kBAAC,QAAD;UAAM,WAAU;oBAAhB;WACE,kBAAC,GAAD,EAAe,WAAU,eAAgB,CAAA;WACxC,EAAG,qBAAqB,UAAU;WAAE;WACpC,EAAqB,EAAW,UAAU;WACtC;;SAET,kBAAC,QAAD;UACE,WAAW,EACT,4CACA,mCACD;oBAEA,EAAW,KAAK,QAAQ;UACpB,CAAA;SACH;;OAGL,EAAW,OAAO,SAAS,KAC1B,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;QAAG,WAAU;kBACV,EAAG,yBAAyB,eAAe;QAC1C,CAAA,EACJ,kBAAC,OAAD;QAAK,WAAU;kBACZ,EAAW,OAAO,KAAK,MACtB,kBAAC,QAAD;SAEE,WAAU;mBAET;SACI,EAJA,EAIA,CACP;QACE,CAAA,CACF,EAAA,CAAA;OAIP,EAAW,aAAa,SAAS,KAChC,kBAAC,KAAD;QAAG,WAAU;kBAAb;SACE,kBAAC,GAAD,EAAO,WAAU,eAAgB,CAAA;SAChC,EAAG,gCAAgC,YAAY;SAAE;SACjD,EAAW,aAAa;SAAQ;SAChC,EAAG,uBAAuB,YAAY;SACtC,EAAW,aAAa,WAAW,IAEhC,KADA,EAAG,mCAAmC,IAAI;SAE5C;;OAEF;;KACF;OAGL,EAAW,WAAW,YACrB,kBAAC,UAAD;IACE,eAAe,EAAS,EAAW;IACnC,UAAU,KAAc,CAAC;IACzB,iBAAe,CAAC;IAChB,WAAU;cAJZ,CAMG,IACC,kBAAC,GAAD,EAAS,WAAU,wBAAyB,CAAA,GAE5C,kBAAC,GAAD,EAAS,WAAU,WAAY,CAAA,EAEhC,EAAG,oBAAoB,SAAS,CAC1B;MAEP;;EACF,CAAA;GAOJ,MAOA,EACJ,eACA,aACA,eACA,aACA,mBACA,mBACI;CACJ,IAAM,EAAE,SAAM,GAAS,EACjB,KAAM,GAAa,MAA6B;EACpD,IAAM,IAAQ,EAAE,EAAI;AACpB,SAAO,MAAU,IAAM,IAAW;;AAEpC,QACE,kBAAC,OAAD;EACE,WAAW,EACT,4GACA,KAAY,wCACb;YAED,kBAAC,OAAD;GAAK,WAAU;aAAf,CAEE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACG,EAAW,WAAW,YACrB,kBAAC,OAAD;MAAK,UAAU,MAAU,EAAM,iBAAiB;gBAC9C,kBAAC,GAAD;OACE,SAAS;OACT,UAAU;OACV,WAAW,EACT,uCACA,qBAAqB,EAAW,KAAK,QAAQ,EAAW,KACzD;OACD,WAAU;OACV,CAAA;MACE,CAAA;KAER,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OACE,MAAM,EAAW,KAAK,QAAQ;OAC9B,WAAU;OACV,CAAA;MACE,CAAA;KAEN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OAEE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAW,KAAK,QACf,EAAG,wBAAwB,cAAc;SACxC,CAAA,EACL,kBAAC,GAAD,EAAuB,QAAQ,EAAW,QAAU,CAAA,CAChD;;OAGN,kBAAC,KAAD;QAAG,WAAU;kBAAb;SACG,EAAG,2BAA2B,mBAAmB;SAAE;SACpD,kBAAC,QAAD;UAAM,WAAU;oBACb,EAAW;UACP,CAAA;SACL;;OAGJ,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,QAAD;SAAM,WAAU;mBAAhB;UACE,kBAAC,GAAD,EAAO,WAAU,eAAgB,CAAA;UAChC,EAAG,qBAAqB,UAAU;UAAE;UACpC,EAAmB,EAAW,UAAU;UACpC;YACN,EAAW,aACV,kBAAC,QAAD;SAAM,WAAU;mBAAhB;UACE,kBAAC,GAAD,EAAe,WAAU,eAAgB,CAAA;UACxC,EAAG,qBAAqB,UAAU;UAAE;UACpC,IAAI,KAAK,EAAW,UAAU,CAAC,oBAAoB;UAC/C;WAEL;;OAGL,EAAW,OAAO,SAAS,KAC1B,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;QAAG,WAAU;kBACV,EAAG,gCAAgC,uBAAuB;QACzD,CAAA,EACJ,kBAAC,OAAD;QAAK,WAAU;kBACZ,EAAW,OAAO,KAAK,MACtB,kBAAC,QAAD;SAEE,WAAU;mBAET;SACI,EAJA,EAIA,CACP;QACE,CAAA,CACF,EAAA,CAAA;OAEJ;;KACF;OAGL,EAAW,WAAW,YACrB,kBAAC,UAAD;IACE,eAAe,EAAS,EAAW;IACnC,UAAU,KAAc,CAAC;IACzB,iBAAe,CAAC;IAChB,WAAU;cAJZ,CAMG,IACC,kBAAC,GAAD,EAAS,WAAU,wBAAyB,CAAA,GAE5C,kBAAC,GAAD,EAAS,WAAU,WAAY,CAAA,EAEhC,EAAG,oBAAoB,SAAS,CAC1B;MAEP;;EACF,CAAA;GAOJ,MAA+D,EACnE,qBACI;CACJ,IAAM,EAAE,MAAM,GAAS,EACjB,KAAM,GAAa,MAA6B;EACpD,IAAM,IAAQ,EAAE,EAAI;AACpB,SAAO,MAAU,IAAM,IAAW;;AAKpC,QAFI,EAAY,WAAW,IAAU,OAGnC,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,MAAD;GAAI,WAAU;aACX,EAAG,+BAA+B,qBAAqB;GACrD,CAAA,EACL,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAY,KAAK,MAChB,kBAAC,OAAD;IAEE,WAAU;cAFZ,CAIE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OACE,MAAM,EAAW,KAAK,QAAQ;OAC9B,WAAU;OACV,CAAA;MACE,CAAA,EACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;MAAI,WAAU;gBACX,EAAW,KAAK,QACf,EAAG,wBAAwB,cAAc;MACxC,CAAA,EACL,kBAAC,KAAD;MAAG,WAAU;gBAAb;OACG,EAAW,WAAW,YACnB,EAAG,qBAAqB,UAAU,GAClC,EAAG,qBAAqB,UAAU;OAAE;OACvC,EAAW,YACR,EAAmB,EAAW,UAAU,GACxC;OACF;QACA,EAAA,CAAA,CACF;QACN,kBAAC,GAAD,EAAuB,QAAQ,EAAW,QAAU,CAAA,CAChD;MA1BC,EAAW,GA0BZ,CACN;GACE,CAAA,CACF;;GAgBG,UAA4B;CACvC,IAAM,EAAE,SAAM,GAAS,EACjB,KAAM,GAAa,MAA6B;EACpD,IAAM,IAAQ,EAAE,EAAI;AACpB,SAAO,MAAU,IAAM,IAAW;IAE9B,EAAE,SAAS,MAAc,GAC7B,GAAsB,kBACvB,EAIK,CAAC,GAAW,KAAgB,EAAoB,eAAe,EAC/D,CAAC,GAAe,KAAoB,EAA8B,EAAE,CAAC,EACrE,CAAC,GAAgB,KAAqB,EAAwB,KAAK,EACnE,CAAC,GAAuB,KAA4B,kBAExD,IAAI,KAAK,CAAC,EAKN,EACJ,MAAM,GACN,SAAS,IACT,OAAO,IACP,SAAS,MACP,EAA+B,EACjC,aAAa,qBACd,CAAC,EAEI,EACJ,MAAM,GACN,SAAS,IACT,OAAO,IACP,SAAS,MACP,EAAsC,EACxC,aAAa,qBACd,CAAC,EAKI,CAAC,GAA0B,EAAE,SAAS,OAC1C,GAA6B,EAKzB,KACJ,GAAiB,wBAAwB,eAAe,EAAE,EAC1D,IAAI,EAAc,EAEd,KACJ,GAAa,+BAA+B,eAAe,EAAE,EAC7D,IAAI,EAAc,EAEd,IAAoB,EAAY,QAAQ,MAAM,EAAE,WAAW,SAAS,EACpE,IAAsB,EAAY,QAAQ,MAAM,EAAE,WAAW,SAAS,EACtE,IAA2B,EAAmB,QACjD,MAAM,EAAE,WAAW,SACrB,EACK,IACJ,MAAc,iBAAiB,IAAoB,GAC/C,IAA4B,SAE9B,EAAyB,QAAQ,MAC/B,EAAsB,IAAI,EAAW,GAAG,CACzC,EACH,CAAC,GAAuB,EAAyB,CAClD,EACK,IACJ,EAAyB,SAAS,KAClC,EAAyB,OAAO,MAC9B,EAAsB,IAAI,EAAW,GAAG,CACzC,EACG,KACJ,EAAyB,MAAM,MAC7B,EAAsB,IAAI,EAAW,GAAG,CACzC,IAAI,CAAC,GAEF,IACJ,MAAc,iBAAiB,KAAqB,IAChD,IACJ,MAAc,iBAAiB,KAAmB,IAK9C,IAAoB,GAAa,MAAkC;AACvE,IAAiB,CAAC,EAAW,CAAC;IAC7B,EAAE,CAAC,EAEA,IAA4B,GAC/B,GAAsB,MAAqB;AAC1C,KAA0B,MAAS;GACjC,IAAM,IAAO,IAAI,IAAI,EAAK;AAM1B,UALI,IACF,EAAK,IAAI,EAAa,GAEtB,EAAK,OAAO,EAAa,EAEpB;IACP;IAEJ,EAAE,CACH,EAEK,KAA8B,GACjC,MAAqB;AACpB,KAA0B,MAAS;GACjC,IAAM,IAAO,IAAI,IAAI,EAAK;AAQ1B,UAPA,EAAyB,SAAS,MAAe;AAC/C,IAAI,IACF,EAAK,IAAI,EAAW,GAAG,GAEvB,EAAK,OAAO,EAAW,GAAG;KAE5B,EACK;IACP;IAEJ,CAAC,EAAyB,CAC3B,EAEK,IAAiB,QAAkB;AACvC,oBAAyB,IAAI,KAAK,CAAC;IAClC,EAAE,CAAC;AAEwB,SAAkB;AAC1C,IAA0B,WAAW,KACzC,EAAiB,EAA0B;IAC1C,CAAC,EAA0B,CAAC;CAE/B,IAAM,KAAsB,EAAY,YAAY;AAC9C,QAAc,WAAW,EAC7B,KAAI;GACF,IAAM,IAAU,MAAM,QAAQ,WAC5B,EAAc,KAAK,MACjB,EAAyB,EACvB,WAAW;IACT,IAAI,EAAW;IACf,QAAQ,EACN,qCACA,2CACD;IACF,EACF,CAAC,CACH,CACF,EACK,IAAY,EAAQ,QACvB,MACC,EAAO,WAAW,YACrB,CAAC,QACI,IAAS,EAAQ,SAAS;AAY3B,GAXL,EACE,WAAW,EAAU,aAAa,MAAc,IAAI,KAAK,MAAM,IAAS,IAAI,MAAM,EAAO,WAAW,KACrG,EACD,GAA0B,MAAS;IACjC,IAAM,IAAO,IAAI,IAAI,EAAK;AAE1B,WADA,EAAc,SAAS,MAAe,EAAK,OAAO,EAAW,GAAG,CAAC,EAC1D;KACP,EACF,EAAiB,EAAE,CAAC,EAEf,GAAoB,EACpB,GAAgB;UACf;AAGN,KAAiB,EAAE,CAAC;;IAErB;EACD;EACA;EACA;EACA;EACD,CAAC,EAEI,KAAuB,QAAkB;AAC7C,IAAkB,KAAK;IACtB,EAAE,CAAC,EAKA,IAAc,EAAkB,QAChC,IAAe,EAAyB;AAK9C,QACE,kBAAC,GAAD;EAAiB,UAAA;YACf,kBAAC,GAAD;GACE,OAAO,EAAG,iCAAiC,kBAAkB;GAC7D,aAAa,EACX,uCACA,uEACD;GACD,SAAS,EACP,mCACA,6NACD;aATH;IAYG,KACC,kBAAC,IAAD;KACE,SAAS;KACT,WAAW;KACX,CAAA;IAIH,KACC,kBAAC,IAAD;KACE,SACE,EAAW,WACX,EACE,qCACA,6BACD;KAEH,eAAe;AAER,MADA,GAAoB,EACpB,GAAgB;;KAEvB,CAAA;IAIJ,kBAAC,IAAD,EAAA,UACE,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA,EAC9B,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAG,+BAA+B,qBAAqB;SACnD,CAAA,CACH;WACN,kBAAC,KAAD;QAAG,WAAU;kBACV;QACC,CAAA,CACM;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA,EAC7B,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAG,yBAAyB,gBAAgB;SACxC,CAAA,CACH;WACN,kBAAC,KAAD;QAAG,WAAU;kBACV;QACC,CAAA,CACM;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD,EAAe,WAAU,WAAY,CAAA,EACrC,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAG,4BAA4B,oBAAoB;SAC/C,CAAA,CACH;WACN,kBAAC,KAAD;QAAG,WAAU;kBACV,EAAoB;QACnB,CAAA,CACM;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA,EAC7B,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAG,0BAA0B,iBAAiB;SAC1C,CAAA,CACH;WACN,kBAAC,KAAD;QAAG,WAAU;kBACV,EAAY;QACX,CAAA,CACM;;MACR;QACQ,CAAA;IAGhB,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MACE,WAAU;MACV,MAAK;MACL,cAAY,EACV,gCACA,sBACD;gBANH,CAQE,kBAAC,UAAD;OACE,IAAG;OACH,MAAK;OACL,iBAAe,MAAc;OAC7B,eAAe;AAEb,QADA,GAAgB,EAChB,EAAa,eAAe;;OAE9B,WAAW,EACT,qEACA,MAAc,iBACV,gCACA,iEACL;iBAbH,CAeG,EAAG,4BAA4B,oBAAoB,EACnD,IAAc,KACb,kBAAC,QAAD;QAAM,WAAU;kBACb;QACI,CAAA,CAEF;UACT,kBAAC,UAAD;OACE,IAAG;OACH,MAAK;OACL,iBAAe,MAAc;OAC7B,eAAe;AAEb,QADA,GAAgB,EAChB,EAAa,gBAAgB;;OAE/B,WAAW,EACT,qEACA,MAAc,kBACV,gCACA,iEACL;iBAbH,CAeG,EAAG,iCAAiC,wBAAwB,EAC5D,IAAe,KACd,kBAAC,QAAD;QAAM,WAAU;kBACb;QACI,CAAA,CAEF;SACL;;KACF,CAAA;IAEL,EAAyB,SAAS,KACjC,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,GAAD;UACE,SAAS;UACT,eAAe;UACf,UAAU;UACV,WAAW,EACT,yCACA,iCACD;UACD,CAAA,EACF,kBAAC,QAAD;UAAM,WAAU;oBACb,EAAG,8BAA8B,qBAAqB;UAClD,CAAA,CACH;YACL,EAAsB,OAAO,KAC5B,kBAAC,UAAD;SACE,SAAS;SACT,WAAU;mBAET,EAAG,4BAA4B,kBAAkB;SAC3C,CAAA,CAEP;;OAEN,kBAAC,OAAD;QAAK,WAAU;kBACb,kBAAC,QAAD;SAAM,WAAU;mBAAhB;UACG,EAAsB;UAAM;UAC5B,EAAG,sBAAsB,WAAW;UAChC;;QACH,CAAA;OACN,kBAAC,KAAD;QAAG,WAAU;kBAA+B;QAAgB,CAAA;OACxD;;KACF,CAAA;IAIP,KAAa,CAAC,KAAmB,CAAC,KACjC,kBAAC,GAAD,EACE,SAAS,EACP,gCACA,yBACD,EACD,CAAA;IAMH,CAAC,KAAa,MAAc,kBAC3B,kBAAC,OAAD;KACE,WAAU;KACV,IAAG;KACH,MAAK;KACL,mBAAgB;KAChB,UAAU;eAET,EAAkB,WAAW,KAC9B,EAAoB,WAAW,IAC7B,kBAAC,GAAD;MACE,cAAa;MACb,OAAO,EACL,iCACA,wBACD;MACD,aAAa,EACX,0CACA,0DACD;MACD,CAAA,GAEF,kBAAA,IAAA,EAAA,UAAA,CAEG,EAAkB,WAAW,IAC5B,kBAAC,GAAD;MACE,cAAa;MACb,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;MAC1B,OAAO,EACL,iCACA,wBACD;MACD,aAAa,EACX,oDACA,yDACD;MACD,CAAA,GAEF,kBAAC,OAAD;MAAK,WAAU;gBACZ,EAAkB,KAAK,MACtB,kBAAC,IAAD;OAEc;OACZ,UAAU;OACV,YACE,KACA,EAAc,MACX,MAAS,EAAK,OAAO,EAAW,GAClC;OAEH,UAAU,EAAsB,IAAI,EAAW,GAAG;OAClD,iBAAiB,MACf,EAA0B,EAAW,IAAI,EAAQ;OAExC;OACX,EAdK,EAAW,GAchB,CACF;MACE,CAAA,EAIR,kBAAC,IAAD,EAAmB,aAAa,GAAuB,CAAA,CACtD,EAAA,CAAA;KAED,CAAA;IAMP,CAAC,KAAa,MAAc,mBAC3B,kBAAC,OAAD;KACE,WAAU;KACV,IAAG;KACH,MAAK;KACL,mBAAgB;KAChB,UAAU;eAET,EAAmB,WAAW,IAC7B,kBAAC,GAAD;MACE,cAAa;MACb,OAAO,EACL,kCACA,yBACD;MACD,aAAa,EACX,6CACA,0DACD;MACD,CAAA,GAEF,EAAmB,KAAK,MACtB,kBAAC,IAAD;MAEc;MACZ,UAAU;MACV,YACE,KACA,EAAc,MAAM,MAAS,EAAK,OAAO,EAAW,GAAG;MAEzD,UAAU,EAAsB,IAAI,EAAW,GAAG;MAClD,iBAAiB,MACf,EAA0B,EAAW,IAAI,EAAQ;MAExC;MACX,EAZK,EAAW,GAYhB,CACF;KAEA,CAAA;IAIR,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD,EAAa,WAAU,qCAAsC,CAAA,EAC7D,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;OAAI,WAAU;iBACX,EAAG,iCAAiC,wBAAwB;OAC1D,CAAA,EACL,kBAAC,KAAD;OAAG,WAAU;iBACV,EACC,qCACA,wRACD;OACC,CAAA,CACA,EAAA,CAAA,CACF;;KACF,CAAA;IAGN,kBAAC,GAAD;KACE,MAAM,EAAc,SAAS;KAC7B,eAAe,MAAS;AACtB,MAAK,KAAM,EAAiB,EAAE,CAAC;;KAEjC,WAAW;KACX,OACE,EAAc,SAAS,IACnB,EAAG,+BAA+B,qBAAqB,GACvD,EAAG,8BAA8B,oBAAoB;KAE3D,aACE,EAAc,SAAS,IACnB,EACE,0CACA,mCAAmC,EAAc,OAAO,iGACzD,GACD,EACE,2CACA,+CAA+C,EAAc,IAAI,KAAK,QAAQ,WAAW,2DAC1F;KAEP,cAAc,EAAG,0BAA0B,gBAAgB;KAC3D,aAAa,EAAG,oBAAoB,SAAS;KAC7C,SAAQ;KACR,SAAS;KACT,CAAA;IACS;;EACG,CAAA"}
|
|
1
|
+
{"version":3,"file":"DelegationsPage.js","names":["EmptyState","_Fragment","EmptyState$1","mapDelegation","d","formatRelativeTime","date","dateString","diffMs","diffSeconds","diffMinutes","diffHours","diffDays","diffWeeks","diffMonths","formatExpirationTime","now","AppTypeIcon","iconProps","cn","className","type","Cog","Bot","Zap","Shield","DelegationStatusBadge","status","SuccessToast","useEffect","timer","onDismiss","message","ErrorBanner","useI18n","AlertCircle","onRetry","value","t","key","fallback","DelegationCard","tr","selected","delegation","event","SelectionCheckbox","onToggleSelect","Clock","AlertTriangle","scope","Users","onRevoke","isRevoking","canRevoke","Loader2","XCircle","GrantedDelegationCard","RevocationHistory","delegations","DelegationsPage","useDevportalPermission","DEVPORTAL_PERMISSIONS","activeTab","setActiveTab","useState","revokeTargets","setRevokeTargets","successMessage","setSuccessMessage","selectedDelegationIds","setSelectedDelegationIds","delegationsData","delegationsLoading","delegationsError","refetchDelegations","useCurrentUserDelegationsQuery","grantedData","grantedLoading","grantedError","refetchGranted","useCurrentUserGrantedDelegationsQuery","revokeDelegationMutation","revokeLoading","useRevokeDelegationMutation","grantedDelegations","activeDelegations","inactiveDelegations","activeGrantedDelegations","visibleActiveDelegations","selectedActiveDelegations","useMemo","allVisibleSelected","partiallySelected","isLoading","queryError","handleRevokeClick","useCallback","toggleDelegationSelection","next","prev","checked","delegationId","toggleAllVisibleDelegations","clearSelection","handleRevokeConfirm","results","succeeded","result","failed","handleDismissSuccess","totalActive","totalGranted","PermissionGuard","PageLayout","EmphasisPanel","GlassCard","LoadingState","Fragment","item","ConfirmDialog","open"],"sources":["../../../src/devportal/pages/DelegationsPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useState, useCallback, useEffect, useMemo } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Shield,\n Users,\n Clock,\n XCircle,\n AlertTriangle,\n Loader2,\n AlertCircle,\n Bot,\n Zap,\n Cog,\n} from \"lucide-react\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { LoadingState } from \"../components/LoadingState\";\nimport { ConfirmDialog } from \"../components/ConfirmDialog\";\nimport { SelectionCheckbox } from \"../components/SelectionCheckbox\";\nimport { cn } from \"../utils/cn\";\nimport { PermissionGuard } from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\nimport { useDevportalPermission } from \"../hooks/usePermission\";\nimport type { AppUserDelegation, DelegationStatus } from \"../types\";\nimport {\n useCurrentUserDelegationsQuery,\n useCurrentUserGrantedDelegationsQuery,\n useRevokeDelegationMutation,\n} from \"../../generated/global-operations\";\n\n// =============================================================================\n// HELPERS\n// =============================================================================\n\ntype ActiveTab = \"acting-as-me\" | \"granted-by-me\";\n\n/**\n * Map a GraphQL delegation fragment to the local AppUserDelegation type\n */\nfunction mapDelegation(d: {\n id: string;\n appId: string;\n userId: string;\n scopes: string[];\n workspaceIds?: string[] | null;\n status: string;\n grantedAt: string;\n grantedBy: string;\n expiresAt?: string | null;\n revokedAt?: string | null;\n revokedBy?: string | null;\n app: {\n id: string;\n name: string;\n description?: string | null;\n type: string;\n status: string;\n };\n}): AppUserDelegation {\n return {\n id: d.id,\n appId: d.appId,\n userId: d.userId,\n scopes: d.scopes,\n workspaceIds: d.workspaceIds ?? [],\n status: d.status as DelegationStatus,\n grantedAt: d.grantedAt,\n grantedBy: d.grantedBy,\n expiresAt: d.expiresAt ?? undefined,\n revokedAt: d.revokedAt ?? undefined,\n revokedBy: d.revokedBy ?? undefined,\n app: {\n id: d.app.id,\n name: d.app.name,\n description: d.app.description ?? undefined,\n type: d.app.type,\n status: d.app.status,\n },\n };\n}\n\n/**\n * Format a date string to relative time (\"2 hours ago\", \"3 days ago\", etc.)\n */\nfunction formatRelativeTime(dateString: string): string {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n const diffSeconds = Math.floor(diffMs / 1000);\n const diffMinutes = Math.floor(diffSeconds / 60);\n const diffHours = Math.floor(diffMinutes / 60);\n const diffDays = Math.floor(diffHours / 24);\n const diffWeeks = Math.floor(diffDays / 7);\n const diffMonths = Math.floor(diffDays / 30);\n\n if (diffSeconds < 60) return \"just now\";\n if (diffMinutes < 60)\n return `${diffMinutes} minute${diffMinutes !== 1 ? \"s\" : \"\"} ago`;\n if (diffHours < 24)\n return `${diffHours} hour${diffHours !== 1 ? \"s\" : \"\"} ago`;\n if (diffDays < 7) return `${diffDays} day${diffDays !== 1 ? \"s\" : \"\"} ago`;\n if (diffWeeks < 5)\n return `${diffWeeks} week${diffWeeks !== 1 ? \"s\" : \"\"} ago`;\n if (diffMonths < 12)\n return `${diffMonths} month${diffMonths !== 1 ? \"s\" : \"\"} ago`;\n\n return date.toLocaleDateString();\n}\n\n/**\n * Format a future date as relative time (\"in 3 days\", \"in 2 hours\", etc.)\n */\nfunction formatExpirationTime(dateString: string): string {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = date.getTime() - now.getTime();\n\n if (diffMs <= 0) return \"expired\";\n\n const diffMinutes = Math.floor(diffMs / (1000 * 60));\n const diffHours = Math.floor(diffMs / (1000 * 60 * 60));\n const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));\n\n if (diffMinutes < 60)\n return `in ${diffMinutes} minute${diffMinutes !== 1 ? \"s\" : \"\"}`;\n if (diffHours < 24)\n return `in ${diffHours} hour${diffHours !== 1 ? \"s\" : \"\"}`;\n return `in ${diffDays} day${diffDays !== 1 ? \"s\" : \"\"}`;\n}\n\n// =============================================================================\n// SUB-COMPONENTS\n// =============================================================================\n\n/**\n * Icon for app type (SERVICE, BOT, INTEGRATION, etc.)\n */\nconst AppTypeIcon: FC<{ type: string; className?: string }> = ({\n type,\n className,\n}) => {\n const iconProps = { className: cn(\"h-5 w-5\", className) };\n\n switch (type) {\n case \"SERVICE\":\n return <Cog {...iconProps} />;\n case \"BOT\":\n return <Bot {...iconProps} />;\n case \"INTEGRATION\":\n return <Zap {...iconProps} />;\n default:\n return <Shield {...iconProps} />;\n }\n};\n\n/**\n * Delegation status badge with color coding\n */\nconst DelegationStatusBadge: FC<{ status: DelegationStatus }> = ({\n status,\n}) => {\n const styles: Record<DelegationStatus, string> = {\n ACTIVE: \"bg-status-success-bg-subtle text-status-success-text\",\n REVOKED: \"bg-status-error-bg-subtle text-status-error-text\",\n EXPIRED: \"bg-bg-sunken text-text-primary\",\n };\n\n return (\n <span\n className={cn(\n \"inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium\",\n styles[status],\n )}\n >\n {status}\n </span>\n );\n};\n\n/**\n * Success toast that auto-dismisses\n */\nconst SuccessToast: FC<{ message: string; onDismiss: () => void }> = ({\n message,\n onDismiss,\n}) => {\n useEffect(() => {\n const timer = setTimeout(onDismiss, 5000);\n return () => clearTimeout(timer);\n }, [onDismiss]);\n\n return (\n <div className=\"rounded-lg border border-border-subtle bg-status-success-bg-subtle p-4\">\n <div className=\"flex items-center gap-3\">\n <Shield className=\"h-5 w-5 text-status-success-text\" />\n <p className=\"text-sm font-medium text-status-success-text\">\n {message}\n </p>\n </div>\n </div>\n );\n};\n\n/**\n * Error banner\n */\nconst ErrorBanner: FC<{ message: string; onRetry?: () => void }> = ({\n message,\n onRetry,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n return (\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-4\">\n <div className=\"flex items-center gap-3\">\n <AlertCircle className=\"h-5 w-5 text-status-error-text\" />\n <p className=\"flex-1 text-sm text-status-error-text\">{message}</p>\n {onRetry && (\n <button\n onClick={onRetry}\n className=\"rounded-md border px-3 py-1.5 text-xs font-medium hover:bg-bg-sunken transition-colors\"\n >\n {tr(\"devportal.retry\", \"Retry\")}\n </button>\n )}\n </div>\n </div>\n );\n};\n\n/**\n * Single delegation card for \"Apps Acting as Me\" tab\n */\nconst DelegationCard: FC<{\n delegation: AppUserDelegation;\n onRevoke: (delegation: AppUserDelegation) => void;\n isRevoking: boolean;\n selected: boolean;\n onToggleSelect: (checked: boolean) => void;\n canRevoke: boolean;\n}> = ({\n delegation,\n onRevoke,\n isRevoking,\n selected,\n onToggleSelect,\n canRevoke,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n return (\n <div\n className={cn(\n \"rounded-card border border-border-seam bg-bg-surface p-5 transition-colors hover:border-border-subtle/80\",\n selected && \"border-primary bg-action-primary-bg/5\",\n delegation.status !== \"ACTIVE\" && \"opacity-60\",\n )}\n >\n <div className=\"flex items-start justify-between gap-4\">\n {/* Left: App info */}\n <div className=\"flex items-start gap-4 min-w-0\">\n {delegation.status === \"ACTIVE\" && (\n <div onClick={(event) => event.stopPropagation()}>\n <SelectionCheckbox\n checked={selected}\n onChange={onToggleSelect}\n ariaLabel={tr(\n \"devportal.selectDelegationAriaLabel\",\n `Select delegation ${delegation.app?.name ?? delegation.id}`,\n )}\n className=\"mt-1\"\n />\n </div>\n )}\n <div\n className={cn(\n \"flex h-12 w-12 shrink-0 items-center justify-center rounded-lg\",\n delegation.status === \"ACTIVE\"\n ? \"bg-action-primary-bg/10 text-primary\"\n : \"bg-bg-sunken text-text-secondary\",\n )}\n >\n <AppTypeIcon\n type={delegation.app?.type ?? \"SERVICE\"}\n className=\"h-6 w-6\"\n />\n </div>\n\n <div className=\"min-w-0 space-y-2\">\n {/* Name + status */}\n <div className=\"flex items-center gap-2\">\n <h3 className=\"truncate font-semibold\">\n {delegation.app?.name ??\n tr(\"devportal.unknownApp\", \"Unknown App\")}\n </h3>\n <DelegationStatusBadge status={delegation.status} />\n </div>\n\n {/* Description */}\n {delegation.app?.description && (\n <p className=\"text-sm text-text-secondary line-clamp-2\">\n {delegation.app.description}\n </p>\n )}\n\n {/* Metadata row */}\n <div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.granted\", \"Granted\")}{\" \"}\n {formatRelativeTime(delegation.grantedAt)}\n </span>\n {delegation.expiresAt && (\n <span className=\"flex items-center gap-1\">\n <AlertTriangle className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.expires\", \"Expires\")}{\" \"}\n {formatExpirationTime(delegation.expiresAt)}\n </span>\n )}\n <span\n className={cn(\n \"rounded-md px-2 py-0.5 text-xs font-mono\",\n \"bg-bg-sunken text-text-secondary\",\n )}\n >\n {delegation.app?.type ?? \"UNKNOWN\"}\n </span>\n </div>\n\n {/* Scopes */}\n {delegation.scopes.length > 0 && (\n <div>\n <p className=\"mb-1.5 text-xs text-text-secondary\">\n {tr(\"devportal.permissions\", \"Permissions:\")}\n </p>\n <div className=\"flex flex-wrap gap-1.5\">\n {delegation.scopes.map((scope) => (\n <span\n key={scope}\n className=\"rounded-md bg-status-info-bg-subtle px-2 py-0.5 text-xs text-status-info-text\"\n >\n {scope}\n </span>\n ))}\n </div>\n </div>\n )}\n\n {/* Workspace count */}\n {delegation.workspaceIds.length > 0 && (\n <p className=\"flex items-center gap-1 text-xs text-text-secondary\">\n <Users className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.accessToWorkspaces\", \"Access to\")}{\" \"}\n {delegation.workspaceIds.length}{\" \"}\n {tr(\"devportal.workspace\", \"workspace\")}\n {delegation.workspaceIds.length !== 1\n ? tr(\"devportal.workspacePluralSuffix\", \"s\")\n : \"\"}\n </p>\n )}\n </div>\n </div>\n\n {/* Right: Revoke button (only for active delegations) */}\n {delegation.status === \"ACTIVE\" && (\n <button\n onClick={() => onRevoke(delegation)}\n disabled={isRevoking || !canRevoke}\n aria-disabled={!canRevoke}\n className=\"inline-flex shrink-0 items-center gap-2 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-status-error-text transition-colors hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {isRevoking ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <XCircle className=\"h-4 w-4\" />\n )}\n {tr(\"devportal.revoke\", \"Revoke\")}\n </button>\n )}\n </div>\n </div>\n );\n};\n\n/**\n * Single delegation card for \"Delegations I Granted\" tab\n */\nconst GrantedDelegationCard: FC<{\n delegation: AppUserDelegation;\n onRevoke: (delegation: AppUserDelegation) => void;\n isRevoking: boolean;\n selected: boolean;\n onToggleSelect: (checked: boolean) => void;\n canRevoke: boolean;\n}> = ({\n delegation,\n onRevoke,\n isRevoking,\n selected,\n onToggleSelect,\n canRevoke,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n return (\n <div\n className={cn(\n \"rounded-card border border-border-seam bg-bg-surface p-5 transition-colors hover:border-border-subtle/80\",\n selected && \"border-primary bg-action-primary-bg/5\",\n )}\n >\n <div className=\"flex items-start justify-between gap-4\">\n {/* Left: App info */}\n <div className=\"flex items-start gap-4 min-w-0\">\n {delegation.status === \"ACTIVE\" && (\n <div onClick={(event) => event.stopPropagation()}>\n <SelectionCheckbox\n checked={selected}\n onChange={onToggleSelect}\n ariaLabel={tr(\n \"devportal.selectDelegationAriaLabel\",\n `Select delegation ${delegation.app?.name ?? delegation.id}`,\n )}\n className=\"mt-1\"\n />\n </div>\n )}\n <div className=\"flex h-12 w-12 shrink-0 items-center justify-center rounded-lg bg-accent-purple-subtle text-accent-purple\">\n <AppTypeIcon\n type={delegation.app?.type ?? \"SERVICE\"}\n className=\"h-6 w-6\"\n />\n </div>\n\n <div className=\"min-w-0 space-y-2\">\n {/* Name + status */}\n <div className=\"flex items-center gap-2\">\n <h3 className=\"truncate font-semibold\">\n {delegation.app?.name ??\n tr(\"devportal.unknownApp\", \"Unknown App\")}\n </h3>\n <DelegationStatusBadge status={delegation.status} />\n </div>\n\n {/* Target user */}\n <p className=\"text-sm text-text-secondary\">\n {tr(\"devportal.grantedToUser\", \"Granted to user:\")}{\" \"}\n <code className=\"rounded bg-bg-sunken px-1.5 py-0.5 text-xs\">\n {delegation.userId}\n </code>\n </p>\n\n {/* Time */}\n <div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.granted\", \"Granted\")}{\" \"}\n {formatRelativeTime(delegation.grantedAt)}\n </span>\n {delegation.expiresAt && (\n <span className=\"flex items-center gap-1\">\n <AlertTriangle className=\"h-3.5 w-3.5\" />\n {tr(\"devportal.expires\", \"Expires\")}{\" \"}\n {new Date(delegation.expiresAt).toLocaleDateString()}\n </span>\n )}\n </div>\n\n {/* Scopes */}\n {delegation.scopes.length > 0 && (\n <div>\n <p className=\"mb-1.5 text-xs text-text-secondary\">\n {tr(\"devportal.permissionsGranted\", \"Permissions granted:\")}\n </p>\n <div className=\"flex flex-wrap gap-1.5\">\n {delegation.scopes.map((scope) => (\n <span\n key={scope}\n className=\"rounded-md bg-accent-purple-subtle px-2 py-0.5 text-xs text-accent-purple\"\n >\n {scope}\n </span>\n ))}\n </div>\n </div>\n )}\n </div>\n </div>\n\n {/* Right: Revoke button */}\n {delegation.status === \"ACTIVE\" && (\n <button\n onClick={() => onRevoke(delegation)}\n disabled={isRevoking || !canRevoke}\n aria-disabled={!canRevoke}\n className=\"inline-flex shrink-0 items-center gap-2 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-status-error-text transition-colors hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {isRevoking ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <XCircle className=\"h-4 w-4\" />\n )}\n {tr(\"devportal.revoke\", \"Revoke\")}\n </button>\n )}\n </div>\n </div>\n );\n};\n\n/**\n * Revocation history section (dimmed, for revoked/expired delegations)\n */\nconst RevocationHistory: FC<{ delegations: AppUserDelegation[] }> = ({\n delegations,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n\n if (delegations.length === 0) return null;\n\n return (\n <div className=\"space-y-4\">\n <h2 className=\"text-lg font-semibold\">\n {tr(\"devportal.revocationHistory\", \"Revocation History\")}\n </h2>\n <div className=\"space-y-3 opacity-60\">\n {delegations.map((delegation) => (\n <div\n key={delegation.id}\n className=\"flex items-center justify-between rounded-lg border bg-bg-sunken/30 p-4\"\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-lg bg-bg-sunken text-text-secondary\">\n <AppTypeIcon\n type={delegation.app?.type ?? \"SERVICE\"}\n className=\"h-5 w-5\"\n />\n </div>\n <div>\n <h3 className=\"font-medium\">\n {delegation.app?.name ??\n tr(\"devportal.unknownApp\", \"Unknown App\")}\n </h3>\n <p className=\"text-sm text-text-secondary\">\n {delegation.status === \"REVOKED\"\n ? tr(\"devportal.revoked\", \"Revoked\")\n : tr(\"devportal.expired\", \"Expired\")}{\" \"}\n {delegation.revokedAt\n ? formatRelativeTime(delegation.revokedAt)\n : \"\"}\n </p>\n </div>\n </div>\n <DelegationStatusBadge status={delegation.status} />\n </div>\n ))}\n </div>\n </div>\n );\n};\n\n// =============================================================================\n// MAIN COMPONENT\n// =============================================================================\n\n/**\n * Delegations management page for the Developer Portal.\n *\n * Consolidates delegation management previously at /auth/delegations in\n * microfe-auth. Shows two tabs:\n * - \"Apps Acting as Me\": delegations where the current user is the subject\n * - \"Delegations I Granted\": delegations the current user granted to others\n */\nexport const DelegationsPage: FC = () => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const { allowed: canRevoke } = useDevportalPermission(\n DEVPORTAL_PERMISSIONS.DELEGATION_REVOKE,\n );\n // ---------------------------------------------------------------------------\n // State\n // ---------------------------------------------------------------------------\n const [activeTab, setActiveTab] = useState<ActiveTab>(\"acting-as-me\");\n const [revokeTargets, setRevokeTargets] = useState<AppUserDelegation[]>([]);\n const [successMessage, setSuccessMessage] = useState<string | null>(null);\n const [selectedDelegationIds, setSelectedDelegationIds] = useState<\n Set<string>\n >(new Set());\n\n // ---------------------------------------------------------------------------\n // Queries\n // ---------------------------------------------------------------------------\n const {\n data: delegationsData,\n loading: delegationsLoading,\n error: delegationsError,\n refetch: refetchDelegations,\n } = useCurrentUserDelegationsQuery({\n fetchPolicy: \"cache-and-network\",\n });\n\n const {\n data: grantedData,\n loading: grantedLoading,\n error: grantedError,\n refetch: refetchGranted,\n } = useCurrentUserGrantedDelegationsQuery({\n fetchPolicy: \"cache-and-network\",\n });\n\n // ---------------------------------------------------------------------------\n // Mutation\n // ---------------------------------------------------------------------------\n const [revokeDelegationMutation, { loading: revokeLoading }] =\n useRevokeDelegationMutation();\n\n // ---------------------------------------------------------------------------\n // Derived data\n // ---------------------------------------------------------------------------\n const delegations: AppUserDelegation[] = (\n delegationsData?.currentUserDelegations?.delegations ?? []\n ).map(mapDelegation);\n\n const grantedDelegations: AppUserDelegation[] = (\n grantedData?.currentUserGrantedDelegations?.delegations ?? []\n ).map(mapDelegation);\n\n const activeDelegations = delegations.filter((d) => d.status === \"ACTIVE\");\n const inactiveDelegations = delegations.filter((d) => d.status !== \"ACTIVE\");\n const activeGrantedDelegations = grantedDelegations.filter(\n (d) => d.status === \"ACTIVE\",\n );\n const visibleActiveDelegations =\n activeTab === \"acting-as-me\" ? activeDelegations : activeGrantedDelegations;\n const selectedActiveDelegations = useMemo(\n () =>\n visibleActiveDelegations.filter((delegation) =>\n selectedDelegationIds.has(delegation.id),\n ),\n [selectedDelegationIds, visibleActiveDelegations],\n );\n const allVisibleSelected =\n visibleActiveDelegations.length > 0 &&\n visibleActiveDelegations.every((delegation) =>\n selectedDelegationIds.has(delegation.id),\n );\n const partiallySelected =\n visibleActiveDelegations.some((delegation) =>\n selectedDelegationIds.has(delegation.id),\n ) && !allVisibleSelected;\n\n const isLoading =\n activeTab === \"acting-as-me\" ? delegationsLoading : grantedLoading;\n const queryError =\n activeTab === \"acting-as-me\" ? delegationsError : grantedError;\n\n // ---------------------------------------------------------------------------\n // Handlers\n // ---------------------------------------------------------------------------\n const handleRevokeClick = useCallback((delegation: AppUserDelegation) => {\n setRevokeTargets([delegation]);\n }, []);\n\n const toggleDelegationSelection = useCallback(\n (delegationId: string, checked: boolean) => {\n setSelectedDelegationIds((prev) => {\n const next = new Set(prev);\n if (checked) {\n next.add(delegationId);\n } else {\n next.delete(delegationId);\n }\n return next;\n });\n },\n [],\n );\n\n const toggleAllVisibleDelegations = useCallback(\n (checked: boolean) => {\n setSelectedDelegationIds((prev) => {\n const next = new Set(prev);\n visibleActiveDelegations.forEach((delegation) => {\n if (checked) {\n next.add(delegation.id);\n } else {\n next.delete(delegation.id);\n }\n });\n return next;\n });\n },\n [visibleActiveDelegations],\n );\n\n const clearSelection = useCallback(() => {\n setSelectedDelegationIds(new Set());\n }, []);\n\n const handleBulkRevokeClick = useCallback(() => {\n if (selectedActiveDelegations.length === 0) return;\n setRevokeTargets(selectedActiveDelegations);\n }, [selectedActiveDelegations]);\n\n const handleRevokeConfirm = useCallback(async () => {\n if (revokeTargets.length === 0) return;\n try {\n const results = await Promise.allSettled(\n revokeTargets.map((delegation) =>\n revokeDelegationMutation({\n variables: {\n id: delegation.id,\n reason: tr(\n \"devportal.userRevokedAccessReason\",\n \"User revoked access via Developer Portal\",\n ),\n },\n }),\n ),\n );\n const succeeded = results.filter(\n (result: PromiseSettledResult<unknown>) =>\n result.status === \"fulfilled\",\n ).length;\n const failed = results.length - succeeded;\n setSuccessMessage(\n `Revoked ${succeeded} delegation${succeeded === 1 ? \"\" : \"s\"}${failed > 0 ? ` • ${failed} failed` : \"\"}`,\n );\n setSelectedDelegationIds((prev) => {\n const next = new Set(prev);\n revokeTargets.forEach((delegation) => next.delete(delegation.id));\n return next;\n });\n setRevokeTargets([]);\n // Refetch both queries to keep data fresh\n void refetchDelegations();\n void refetchGranted();\n } catch {\n // Error is available via the mutation hook's error state;\n // the ConfirmDialog will close and we show the error via queryError fallback\n setRevokeTargets([]);\n }\n }, [\n revokeTargets,\n revokeDelegationMutation,\n refetchDelegations,\n refetchGranted,\n ]);\n\n const handleDismissSuccess = useCallback(() => {\n setSuccessMessage(null);\n }, []);\n\n // ---------------------------------------------------------------------------\n // Summary stats for header\n // ---------------------------------------------------------------------------\n const totalActive = activeDelegations.length;\n const totalGranted = activeGrantedDelegations.length;\n\n // ---------------------------------------------------------------------------\n // Render\n // ---------------------------------------------------------------------------\n return (\n <PermissionGuard authOnly>\n <PageLayout\n title={tr(\"devportal.appDelegationsTitle\", \"App Delegations\")}\n description={tr(\n \"devportal.appDelegationsDescription\",\n \"Manage which apps can act on your behalf. Revoke access at any time.\",\n )}\n purpose={tr(\n \"devportal.appDelegationsPurpose\",\n \"Delegations are the consent grants that let an app perform actions as you within a limited scope and time window. Review what you have authorized here, see what each app can do, and revoke anything you no longer trust.\",\n )}\n >\n {/* Success message */}\n {successMessage && (\n <SuccessToast\n message={successMessage}\n onDismiss={handleDismissSuccess}\n />\n )}\n\n {/* Error message */}\n {queryError && (\n <ErrorBanner\n message={\n queryError.message ||\n tr(\n \"devportal.failedToLoadDelegations\",\n \"Failed to load delegations\",\n )\n }\n onRetry={() => {\n void refetchDelegations();\n void refetchGranted();\n }}\n />\n )}\n\n {/* Summary stats — primary emphasis zone */}\n <EmphasisPanel>\n <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-text-secondary\">\n <Shield className=\"h-4 w-4\" />\n <span className=\"text-sm\">\n {tr(\"devportal.activeDelegations\", \"Active Delegations\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {totalActive}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-text-secondary\">\n <Users className=\"h-4 w-4\" />\n <span className=\"text-sm\">\n {tr(\"devportal.grantedByMe\", \"Granted by Me\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {totalGranted}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-status-warning-text\">\n <AlertTriangle className=\"h-4 w-4\" />\n <span className=\"text-sm\">\n {tr(\"devportal.revokedExpired\", \"Revoked / Expired\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {inactiveDelegations.length}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-text-secondary\">\n <Clock className=\"h-4 w-4\" />\n <span className=\"text-sm\">\n {tr(\"devportal.totalAllTime\", \"Total All-Time\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {delegations.length}\n </p>\n </GlassCard>\n </div>\n </EmphasisPanel>\n\n {/* Tabs */}\n <div className=\"border-b\">\n <div\n className=\"flex overflow-x-auto\"\n role=\"tablist\"\n aria-label={tr(\n \"devportal.delegationSections\",\n \"Delegation sections\",\n )}\n >\n <button\n id=\"delegations-tab-acting-as-me\"\n role=\"tab\"\n aria-selected={activeTab === \"acting-as-me\"}\n onClick={() => {\n clearSelection();\n setActiveTab(\"acting-as-me\");\n }}\n className={cn(\n \"-mb-px border-b-2 px-4 py-3 text-sm font-medium transition-colors\",\n activeTab === \"acting-as-me\"\n ? \"border-primary text-primary\"\n : \"border-transparent text-text-secondary hover:text-text-primary\",\n )}\n >\n {tr(\"devportal.appsActingAsMe\", \"Apps Acting as Me\")}\n {totalActive > 0 && (\n <span className=\"ml-2 inline-flex items-center justify-center rounded-full bg-action-primary-bg/10 px-2 py-0.5 text-xs font-medium text-primary\">\n {totalActive}\n </span>\n )}\n </button>\n <button\n id=\"delegations-tab-granted-by-me\"\n role=\"tab\"\n aria-selected={activeTab === \"granted-by-me\"}\n onClick={() => {\n clearSelection();\n setActiveTab(\"granted-by-me\");\n }}\n className={cn(\n \"-mb-px border-b-2 px-4 py-3 text-sm font-medium transition-colors\",\n activeTab === \"granted-by-me\"\n ? \"border-primary text-primary\"\n : \"border-transparent text-text-secondary hover:text-text-primary\",\n )}\n >\n {tr(\"devportal.delegationsIGranted\", \"Delegations I Granted\")}\n {totalGranted > 0 && (\n <span className=\"ml-2 inline-flex items-center justify-center rounded-full bg-action-primary-bg/10 px-2 py-0.5 text-xs font-medium text-primary\">\n {totalGranted}\n </span>\n )}\n </button>\n </div>\n </div>\n\n {visibleActiveDelegations.length > 0 && (\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-4\">\n <div className=\"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex items-center gap-2\">\n <SelectionCheckbox\n checked={allVisibleSelected}\n indeterminate={partiallySelected}\n onChange={toggleAllVisibleDelegations}\n ariaLabel={tr(\n \"devportal.selectAllVisibleDelegations\",\n \"Select all visible delegations\",\n )}\n />\n <span className=\"text-sm font-medium\">\n {tr(\"devportal.selectAllVisible\", \"Select all visible\")}\n </span>\n </div>\n {selectedDelegationIds.size > 0 && (\n <button\n onClick={clearSelection}\n className=\"text-sm text-text-secondary hover:text-text-primary\"\n >\n {tr(\"devportal.clearSelection\", \"Clear selection\")}\n </button>\n )}\n </div>\n\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary\">\n {selectedDelegationIds.size}{\" \"}\n {tr(\"devportal.selected\", \"selected\")}\n </span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold\">{totalActive}</p>\n </div>\n </div>\n )}\n\n {/* Loading */}\n {isLoading && !delegationsData && !grantedData && (\n <LoadingState\n message={tr(\n \"devportal.loadingDelegations\",\n \"Loading delegations...\",\n )}\n />\n )}\n\n {/* ------------------------------------------------------------------- */}\n {/* Tab 1: Apps Acting as Me */}\n {/* ------------------------------------------------------------------- */}\n {!isLoading && activeTab === \"acting-as-me\" && (\n <div\n className=\"space-y-8\"\n id=\"delegations-panel-acting-as-me\"\n role=\"tabpanel\"\n aria-labelledby=\"delegations-tab-acting-as-me\"\n tabIndex={0}\n >\n {activeDelegations.length === 0 &&\n inactiveDelegations.length === 0 ? (\n <EmptyState\n illustration=\"empty-people\"\n title={tr(\n \"devportal.noActiveDelegations\",\n \"No Active Delegations\",\n )}\n description={tr(\n \"devportal.noAppsAuthorizedOnYourBehalf\",\n \"No apps are currently authorized to act on your behalf.\",\n )}\n />\n ) : (\n <>\n {/* Active delegation cards */}\n {activeDelegations.length === 0 ? (\n <EmptyState\n illustration=\"empty-people\"\n icon={<Shield size={32} />}\n title={tr(\n \"devportal.noActiveDelegations\",\n \"No Active Delegations\",\n )}\n description={tr(\n \"devportal.allPreviousDelegationsRevokedOrExpired\",\n \"All previous delegations have been revoked or expired.\",\n )}\n />\n ) : (\n <div className=\"space-y-4\">\n {activeDelegations.map((delegation) => (\n <DelegationCard\n key={delegation.id}\n delegation={delegation}\n onRevoke={handleRevokeClick}\n isRevoking={\n revokeLoading &&\n revokeTargets.some(\n (item) => item.id === delegation.id,\n )\n }\n selected={selectedDelegationIds.has(delegation.id)}\n onToggleSelect={(checked) =>\n toggleDelegationSelection(delegation.id, checked)\n }\n canRevoke={canRevoke}\n />\n ))}\n </div>\n )}\n\n {/* Revocation history */}\n <RevocationHistory delegations={inactiveDelegations} />\n </>\n )}\n </div>\n )}\n\n {/* ------------------------------------------------------------------- */}\n {/* Tab 2: Delegations I Granted */}\n {/* ------------------------------------------------------------------- */}\n {!isLoading && activeTab === \"granted-by-me\" && (\n <div\n className=\"space-y-4\"\n id=\"delegations-panel-granted-by-me\"\n role=\"tabpanel\"\n aria-labelledby=\"delegations-tab-granted-by-me\"\n tabIndex={0}\n >\n {grantedDelegations.length === 0 ? (\n <EmptyState\n illustration=\"empty-people\"\n title={tr(\n \"devportal.noDelegationsGranted\",\n \"No Delegations Granted\",\n )}\n description={tr(\n \"devportal.noGrantedDelegationsDescription\",\n \"You haven't granted any app delegations to other users.\",\n )}\n />\n ) : (\n grantedDelegations.map((delegation) => (\n <GrantedDelegationCard\n key={delegation.id}\n delegation={delegation}\n onRevoke={handleRevokeClick}\n isRevoking={\n revokeLoading &&\n revokeTargets.some((item) => item.id === delegation.id)\n }\n selected={selectedDelegationIds.has(delegation.id)}\n onToggleSelect={(checked) =>\n toggleDelegationSelection(delegation.id, checked)\n }\n canRevoke={canRevoke}\n />\n ))\n )}\n </div>\n )}\n\n {/* Info card */}\n <div className=\"rounded-lg border border-border-subtle bg-status-info-bg-subtle p-5\">\n <div className=\"flex gap-4\">\n <AlertCircle className=\"h-6 w-6 shrink-0 text-accent-blue\" />\n <div>\n <h3 className=\"font-semibold text-status-info-text\">\n {tr(\"devportal.aboutAppDelegations\", \"About App Delegations\")}\n </h3>\n <p className=\"mt-1 text-sm text-status-info-text\">\n {tr(\n \"devportal.aboutAppDelegationsText\",\n \"App delegations allow automated services, bots, and integrations to perform actions on your behalf. Each delegation specifies which permissions (scopes) and workspaces the app can access. You can revoke access at any time, which immediately prevents the app from acting as you.\",\n )}\n </p>\n </div>\n </div>\n </div>\n\n {/* Revoke confirmation dialog */}\n <ConfirmDialog\n open={revokeTargets.length > 0}\n onOpenChange={(open) => {\n if (!open) setRevokeTargets([]);\n }}\n onConfirm={handleRevokeConfirm}\n title={\n revokeTargets.length > 1\n ? tr(\"devportal.revokeDelegations\", \"Revoke Delegations\")\n : tr(\"devportal.revokeDelegation\", \"Revoke Delegation\")\n }\n description={\n revokeTargets.length > 1\n ? tr(\n \"devportal.revokeDelegationsBulkConfirm\",\n `Are you sure you want to revoke ${revokeTargets.length} selected delegations? Those apps will no longer be able to act on the delegated users' behalf.`,\n )\n : tr(\n \"devportal.revokeDelegationSingleConfirm\",\n `Are you sure you want to revoke access for \"${revokeTargets[0]?.app?.name ?? \"this app\"}\"? This app will no longer be able to act on your behalf.`,\n )\n }\n confirmLabel={tr(\"devportal.revokeAccess\", \"Revoke Access\")}\n cancelLabel={tr(\"devportal.cancel\", \"Cancel\")}\n variant=\"danger\"\n loading={revokeLoading}\n />\n </PageLayout>\n </PermissionGuard>\n );\n};\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { Book as r, BookOpen as i, Code2 as a, Database as o, ExternalLink as s,
|
|
|
4
4
|
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
5
5
|
import { useI18n as b } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
6
6
|
import { EmphasisPanel as x } from "@burdenoff/fe-libs/ui";
|
|
7
|
-
|
|
7
|
+
// src/devportal/pages/DocumentationPage.tsx
|
|
8
8
|
var S = [
|
|
9
9
|
{
|
|
10
10
|
id: "register",
|
|
@@ -311,7 +311,6 @@ var S = [
|
|
|
311
311
|
]
|
|
312
312
|
});
|
|
313
313
|
};
|
|
314
|
-
//#endregion
|
|
315
314
|
export { E as DocumentationPage };
|
|
316
315
|
|
|
317
316
|
//# sourceMappingURL=DocumentationPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentationPage.js","names":[],"sources":["../../../src/devportal/pages/DocumentationPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Book,\n Code2,\n FileText,\n ExternalLink,\n BookOpen,\n Lightbulb,\n Rocket,\n Shield,\n Zap,\n Database,\n Webhook,\n Key,\n Users,\n HelpCircle,\n MessageSquare,\n} from \"lucide-react\";\nimport { EmphasisPanel } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { DEVELOPER_LINKS } from \"../constants/developerLinks\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\ninterface DocumentationLink {\n id: string;\n title: string;\n description: string;\n url: string;\n icon: React.ReactNode;\n category: \"getting-started\" | \"api\" | \"guides\" | \"reference\" | \"support\";\n isNew?: boolean;\n isPopular?: boolean;\n}\n\ninterface QuickLink {\n title: string;\n url: string;\n icon: React.ReactNode;\n}\n\n// =============================================================================\n// DATA\n// =============================================================================\n\n// Every URL comes from DEVELOPER_LINKS, which only holds pages that exist on\n// the public docs site. The previous list pointed at /developer/*, /api/*,\n// /guides/* and /reference/* paths that were never published and all\n// returned 404 (BOFF-10636).\nconst documentationLinks: DocumentationLink[] = [\n // Getting Started\n {\n id: \"register\",\n title: \"Register as a Developer\",\n description:\n \"Who can register, and the steps from a new account to a submitted app\",\n url: DEVELOPER_LINKS.registrationGuide,\n icon: <Rocket size={24} />,\n category: \"getting-started\",\n isNew: true,\n },\n {\n id: \"quickstart\",\n title: \"Quick Start Guide\",\n description: \"Make your first authenticated API call to the platform\",\n url: DEVELOPER_LINKS.quickStart,\n icon: <Zap size={24} />,\n category: \"getting-started\",\n isPopular: true,\n },\n {\n id: \"concepts\",\n title: \"Platform Overview\",\n description:\n \"Workspaces, tenants, actors and how the platform fits together\",\n url: DEVELOPER_LINKS.platformOverview,\n icon: <Lightbulb size={24} />,\n category: \"getting-started\",\n },\n {\n id: \"authentication\",\n title: \"Authentication Guide\",\n description: \"Tokens, API keys and how requests are authorized\",\n url: DEVELOPER_LINKS.authentication,\n icon: <Shield size={24} />,\n category: \"getting-started\",\n },\n\n // API Reference\n {\n id: \"graphql-api\",\n title: \"GraphQL API\",\n description: \"Query and mutate platform data through the federated API\",\n url: DEVELOPER_LINKS.graphqlApi,\n icon: <Code2 size={24} />,\n category: \"api\",\n isPopular: true,\n },\n {\n id: \"webhooks\",\n title: \"Webhooks\",\n description: \"Receive signed event notifications from the platform\",\n url: DEVELOPER_LINKS.webhooks,\n icon: <Webhook size={24} />,\n category: \"api\",\n },\n\n // Guides\n {\n id: \"building-integrations\",\n title: \"Building Integrations\",\n description: \"How integrations, providers and connections work\",\n url: DEVELOPER_LINKS.integrationsOverview,\n icon: <Zap size={24} />,\n category: \"guides\",\n },\n {\n id: \"publish-connector\",\n title: \"Publish a Connector\",\n description: \"Submit an API-key connector to the integrations catalog\",\n url: DEVELOPER_LINKS.publishConnector,\n icon: <Key size={24} />,\n category: \"guides\",\n },\n {\n id: \"plugins\",\n title: \"Plugins\",\n description: \"Extend Workspaces with UI and AI plugins\",\n url: DEVELOPER_LINKS.plugins,\n icon: <BookOpen size={24} />,\n category: \"guides\",\n },\n\n // Reference\n {\n id: \"node-sdk\",\n title: \"Node.js SDK\",\n description: \"The official TypeScript client for the platform\",\n url: DEVELOPER_LINKS.nodeSdk,\n icon: <Database size={24} />,\n category: \"reference\",\n },\n {\n id: \"python-sdk\",\n title: \"Python SDK\",\n description: \"The official Python client for the platform\",\n url: DEVELOPER_LINKS.pythonSdk,\n icon: <Database size={24} />,\n category: \"reference\",\n },\n {\n id: \"cli\",\n title: \"CLI Reference\",\n description: \"Every command of the Workspaces CLI\",\n url: DEVELOPER_LINKS.cliReference,\n icon: <FileText size={24} />,\n category: \"reference\",\n },\n {\n id: \"mcp-server\",\n title: \"MCP Server\",\n description: \"Use Workspaces tools from AI assistants over MCP\",\n url: DEVELOPER_LINKS.mcpServer,\n icon: <Code2 size={24} />,\n category: \"reference\",\n },\n\n // Support\n {\n id: \"faq\",\n title: \"Developer FAQ\",\n description: \"Answers to common questions about building on the platform\",\n url: DEVELOPER_LINKS.faq,\n icon: <HelpCircle size={24} />,\n category: \"support\",\n },\n {\n id: \"community\",\n title: \"Developer Community\",\n description: \"Join the community forum for discussions and help\",\n url: DEVELOPER_LINKS.community,\n icon: <Users size={24} />,\n category: \"support\",\n },\n];\n\nconst quickLinks: QuickLink[] = [\n {\n title: \"API Status\",\n url: DEVELOPER_LINKS.status,\n icon: <Zap size={16} />,\n },\n {\n title: \"Code Examples\",\n url: DEVELOPER_LINKS.examples,\n icon: <Code2 size={16} />,\n },\n {\n title: \"SDKs\",\n url: DEVELOPER_LINKS.nodeSdk,\n icon: <Database size={16} />,\n },\n {\n title: \"Developer Agreement\",\n url: DEVELOPER_LINKS.developerAgreement,\n icon: <Shield size={16} />,\n },\n];\n\nconst categories = [\n {\n id: \"getting-started\",\n label: \"Getting Started\",\n icon: <Rocket size={18} />,\n },\n { id: \"api\", label: \"API Reference\", icon: <Code2 size={18} /> },\n { id: \"guides\", label: \"Guides\", icon: <BookOpen size={18} /> },\n { id: \"reference\", label: \"Reference\", icon: <FileText size={18} /> },\n { id: \"support\", label: \"Support\", icon: <HelpCircle size={18} /> },\n];\n\n// =============================================================================\n// COMPONENTS\n// =============================================================================\n\nconst DocumentationCard: FC<{ doc: DocumentationLink }> = ({ doc }) => (\n <a\n href={doc.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group flex flex-col rounded-card border border-border-seam bg-bg-surface p-5 shadow-[var(--shadow-pop)] transition-[box-shadow,border-color] hover:border-border-strong hover:shadow-[var(--shadow-pop-hover)]\"\n >\n <div className=\"flex items-start justify-between\">\n <div className=\"rounded-lg bg-action-primary-bg/10 p-2.5 text-primary\">\n {doc.icon}\n </div>\n <div className=\"flex items-center gap-2\">\n {doc.isNew && (\n <span className=\"rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs font-medium text-status-success-text\">\n New\n </span>\n )}\n {doc.isPopular && (\n <span className=\"rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text\">\n Popular\n </span>\n )}\n <ExternalLink\n size={16}\n className=\"text-text-secondary opacity-0 transition-opacity group-hover:opacity-100\"\n />\n </div>\n </div>\n <h3 className=\"mt-4 font-semibold group-hover:text-primary\">{doc.title}</h3>\n <p className=\"mt-1 text-sm text-text-secondary line-clamp-2\">\n {doc.description}\n </p>\n </a>\n);\n\nconst QuickLinkCard: FC<{ link: QuickLink }> = ({ link }) => (\n <a\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-3 text-sm font-medium transition-colors hover:bg-accent\"\n >\n <span className=\"text-text-secondary\">{link.icon}</span>\n {link.title}\n <ExternalLink size={14} className=\"ml-auto text-text-secondary\" />\n </a>\n);\n\n// =============================================================================\n// PAGE COMPONENT\n// =============================================================================\n\nexport const DocumentationPage: FC = () => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const getDocsForCategory = (categoryId: string) =>\n documentationLinks.filter((doc) => doc.category === categoryId);\n\n return (\n <PageLayout\n title={tr(\"devportal.documentation\", \"Documentation\")}\n description={tr(\n \"devportal.exploreDocsDescription\",\n \"Explore guides, API references, and resources to build on the Burdenoff platform\",\n )}\n purpose={tr(\n \"devportal.docsPurpose\",\n \"The reference material for building integrations — getting-started guides, full API docs, and how-tos. New here? Begin with Getting Started, then dive into the API reference for the endpoints your app calls.\",\n )}\n actions={\n <a\n href={DEVELOPER_LINKS.docsHome}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\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 transition-colors\"\n >\n <Book size={16} />\n {tr(\"devportal.viewFullDocs\", \"View Full Docs\")}\n <ExternalLink size={14} />\n </a>\n }\n >\n {/* Coming-soon banner — page is intentionally a static stub until the\n CMS-backed documentation surface ships. See devportal stability\n tracker (`/docs` is Deferred). */}\n <div\n role=\"status\"\n className=\"mb-6 rounded-lg border border-status-warning-border bg-status-warning-bg p-4 text-sm text-status-warning-text\"\n >\n <strong className=\"font-semibold\">\n {tr(\"devportal.docs.comingSoon.title\", \"Coming soon\")}\n </strong>\n <span className=\"ml-2\">\n {tr(\n \"devportal.docs.comingSoon.description\",\n \"We're building a fully integrated documentation experience. The links below open the public docs site in the meantime.\",\n )}\n </span>\n </div>\n\n {/* Quick Links */}\n <PageSection>\n <div className=\"grid gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n {quickLinks.map((link) => (\n <QuickLinkCard key={link.title} link={link} />\n ))}\n </div>\n </PageSection>\n\n {/* Featured / Getting Started — primary emphasis zone */}\n <EmphasisPanel>\n <PageSection\n title={tr(\"devportal.gettingStarted\", \"Getting Started\")}\n description={tr(\n \"devportal.everythingToStartBuilding\",\n \"Everything you need to start building\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {getDocsForCategory(\"getting-started\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n </EmphasisPanel>\n\n {/* API Reference */}\n <PageSection\n title={tr(\"devportal.apiReference\", \"API Reference\")}\n description={tr(\n \"devportal.completeApiDocumentation\",\n \"Complete API documentation\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {getDocsForCategory(\"api\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Guides */}\n <PageSection\n title={tr(\"devportal.guides\", \"Guides\")}\n description={tr(\n \"devportal.stepByStepTutorials\",\n \"Step-by-step tutorials and best practices\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {getDocsForCategory(\"guides\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Reference & Support Row */}\n <div className=\"grid gap-6 lg:grid-cols-2\">\n {/* Reference */}\n <PageSection\n title={tr(\"devportal.reference\", \"Reference\")}\n description={tr(\n \"devportal.detailedSpecifications\",\n \"Detailed specifications\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {getDocsForCategory(\"reference\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Support */}\n <PageSection\n title={tr(\"devportal.support\", \"Support\")}\n description={tr(\n \"devportal.getHelpStayUpdated\",\n \"Get help and stay updated\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {getDocsForCategory(\"support\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n </div>\n\n {/* Help Banner */}\n <div className=\"mt-6 rounded-card border border-border-seam bg-accent-wash p-6\">\n <div className=\"flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h3 className=\"text-lg font-semibold\">\n {tr(\"devportal.needMoreHelp\", \"Need more help?\")}\n </h3>\n <p className=\"mt-1 text-text-secondary\">\n {tr(\n \"devportal.developerSupportTeamHelp\",\n \"Our developer support team is here to help you build amazing applications.\",\n )}\n </p>\n </div>\n <div className=\"flex gap-3\">\n <a\n href={DEVELOPER_LINKS.community}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-2 text-sm font-medium hover:bg-accent transition-colors\"\n >\n <Users size={16} />\n {tr(\"devportal.community\", \"Community\")}\n </a>\n <a\n href=\"mailto:contact@burdenoff.com\"\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 transition-colors\"\n >\n <MessageSquare size={16} />\n {tr(\"devportal.contactSupport\", \"Contact Support\")}\n </a>\n </div>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocumentationPage.js","names":["documentationLinks","DEVELOPER_LINKS","Rocket","Zap","Lightbulb","Shield","Code2","Webhook","Key","BookOpen","Database","FileText","HelpCircle","Users","quickLinks","DocumentationCard","doc","ExternalLink","QuickLinkCard","link","DocumentationPage","useI18n","tr","value","t","key","fallback","getDocsForCategory","categoryId","PageLayout","Book","PageSection","EmphasisPanel","MessageSquare"],"sources":["../../../src/devportal/pages/DocumentationPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Book,\n Code2,\n FileText,\n ExternalLink,\n BookOpen,\n Lightbulb,\n Rocket,\n Shield,\n Zap,\n Database,\n Webhook,\n Key,\n Users,\n HelpCircle,\n MessageSquare,\n} from \"lucide-react\";\nimport { EmphasisPanel } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { DEVELOPER_LINKS } from \"../constants/developerLinks\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\ninterface DocumentationLink {\n id: string;\n title: string;\n description: string;\n url: string;\n icon: React.ReactNode;\n category: \"getting-started\" | \"api\" | \"guides\" | \"reference\" | \"support\";\n isNew?: boolean;\n isPopular?: boolean;\n}\n\ninterface QuickLink {\n title: string;\n url: string;\n icon: React.ReactNode;\n}\n\n// =============================================================================\n// DATA\n// =============================================================================\n\n// Every URL comes from DEVELOPER_LINKS, which only holds pages that exist on\n// the public docs site. The previous list pointed at /developer/*, /api/*,\n// /guides/* and /reference/* paths that were never published and all\n// returned 404 (BOFF-10636).\nconst documentationLinks: DocumentationLink[] = [\n // Getting Started\n {\n id: \"register\",\n title: \"Register as a Developer\",\n description:\n \"Who can register, and the steps from a new account to a submitted app\",\n url: DEVELOPER_LINKS.registrationGuide,\n icon: <Rocket size={24} />,\n category: \"getting-started\",\n isNew: true,\n },\n {\n id: \"quickstart\",\n title: \"Quick Start Guide\",\n description: \"Make your first authenticated API call to the platform\",\n url: DEVELOPER_LINKS.quickStart,\n icon: <Zap size={24} />,\n category: \"getting-started\",\n isPopular: true,\n },\n {\n id: \"concepts\",\n title: \"Platform Overview\",\n description:\n \"Workspaces, tenants, actors and how the platform fits together\",\n url: DEVELOPER_LINKS.platformOverview,\n icon: <Lightbulb size={24} />,\n category: \"getting-started\",\n },\n {\n id: \"authentication\",\n title: \"Authentication Guide\",\n description: \"Tokens, API keys and how requests are authorized\",\n url: DEVELOPER_LINKS.authentication,\n icon: <Shield size={24} />,\n category: \"getting-started\",\n },\n\n // API Reference\n {\n id: \"graphql-api\",\n title: \"GraphQL API\",\n description: \"Query and mutate platform data through the federated API\",\n url: DEVELOPER_LINKS.graphqlApi,\n icon: <Code2 size={24} />,\n category: \"api\",\n isPopular: true,\n },\n {\n id: \"webhooks\",\n title: \"Webhooks\",\n description: \"Receive signed event notifications from the platform\",\n url: DEVELOPER_LINKS.webhooks,\n icon: <Webhook size={24} />,\n category: \"api\",\n },\n\n // Guides\n {\n id: \"building-integrations\",\n title: \"Building Integrations\",\n description: \"How integrations, providers and connections work\",\n url: DEVELOPER_LINKS.integrationsOverview,\n icon: <Zap size={24} />,\n category: \"guides\",\n },\n {\n id: \"publish-connector\",\n title: \"Publish a Connector\",\n description: \"Submit an API-key connector to the integrations catalog\",\n url: DEVELOPER_LINKS.publishConnector,\n icon: <Key size={24} />,\n category: \"guides\",\n },\n {\n id: \"plugins\",\n title: \"Plugins\",\n description: \"Extend Workspaces with UI and AI plugins\",\n url: DEVELOPER_LINKS.plugins,\n icon: <BookOpen size={24} />,\n category: \"guides\",\n },\n\n // Reference\n {\n id: \"node-sdk\",\n title: \"Node.js SDK\",\n description: \"The official TypeScript client for the platform\",\n url: DEVELOPER_LINKS.nodeSdk,\n icon: <Database size={24} />,\n category: \"reference\",\n },\n {\n id: \"python-sdk\",\n title: \"Python SDK\",\n description: \"The official Python client for the platform\",\n url: DEVELOPER_LINKS.pythonSdk,\n icon: <Database size={24} />,\n category: \"reference\",\n },\n {\n id: \"cli\",\n title: \"CLI Reference\",\n description: \"Every command of the Workspaces CLI\",\n url: DEVELOPER_LINKS.cliReference,\n icon: <FileText size={24} />,\n category: \"reference\",\n },\n {\n id: \"mcp-server\",\n title: \"MCP Server\",\n description: \"Use Workspaces tools from AI assistants over MCP\",\n url: DEVELOPER_LINKS.mcpServer,\n icon: <Code2 size={24} />,\n category: \"reference\",\n },\n\n // Support\n {\n id: \"faq\",\n title: \"Developer FAQ\",\n description: \"Answers to common questions about building on the platform\",\n url: DEVELOPER_LINKS.faq,\n icon: <HelpCircle size={24} />,\n category: \"support\",\n },\n {\n id: \"community\",\n title: \"Developer Community\",\n description: \"Join the community forum for discussions and help\",\n url: DEVELOPER_LINKS.community,\n icon: <Users size={24} />,\n category: \"support\",\n },\n];\n\nconst quickLinks: QuickLink[] = [\n {\n title: \"API Status\",\n url: DEVELOPER_LINKS.status,\n icon: <Zap size={16} />,\n },\n {\n title: \"Code Examples\",\n url: DEVELOPER_LINKS.examples,\n icon: <Code2 size={16} />,\n },\n {\n title: \"SDKs\",\n url: DEVELOPER_LINKS.nodeSdk,\n icon: <Database size={16} />,\n },\n {\n title: \"Developer Agreement\",\n url: DEVELOPER_LINKS.developerAgreement,\n icon: <Shield size={16} />,\n },\n];\n\nconst categories = [\n {\n id: \"getting-started\",\n label: \"Getting Started\",\n icon: <Rocket size={18} />,\n },\n { id: \"api\", label: \"API Reference\", icon: <Code2 size={18} /> },\n { id: \"guides\", label: \"Guides\", icon: <BookOpen size={18} /> },\n { id: \"reference\", label: \"Reference\", icon: <FileText size={18} /> },\n { id: \"support\", label: \"Support\", icon: <HelpCircle size={18} /> },\n];\n\n// =============================================================================\n// COMPONENTS\n// =============================================================================\n\nconst DocumentationCard: FC<{ doc: DocumentationLink }> = ({ doc }) => (\n <a\n href={doc.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group flex flex-col rounded-card border border-border-seam bg-bg-surface p-5 shadow-[var(--shadow-pop)] transition-[box-shadow,border-color] hover:border-border-strong hover:shadow-[var(--shadow-pop-hover)]\"\n >\n <div className=\"flex items-start justify-between\">\n <div className=\"rounded-lg bg-action-primary-bg/10 p-2.5 text-primary\">\n {doc.icon}\n </div>\n <div className=\"flex items-center gap-2\">\n {doc.isNew && (\n <span className=\"rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs font-medium text-status-success-text\">\n New\n </span>\n )}\n {doc.isPopular && (\n <span className=\"rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text\">\n Popular\n </span>\n )}\n <ExternalLink\n size={16}\n className=\"text-text-secondary opacity-0 transition-opacity group-hover:opacity-100\"\n />\n </div>\n </div>\n <h3 className=\"mt-4 font-semibold group-hover:text-primary\">{doc.title}</h3>\n <p className=\"mt-1 text-sm text-text-secondary line-clamp-2\">\n {doc.description}\n </p>\n </a>\n);\n\nconst QuickLinkCard: FC<{ link: QuickLink }> = ({ link }) => (\n <a\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-3 text-sm font-medium transition-colors hover:bg-accent\"\n >\n <span className=\"text-text-secondary\">{link.icon}</span>\n {link.title}\n <ExternalLink size={14} className=\"ml-auto text-text-secondary\" />\n </a>\n);\n\n// =============================================================================\n// PAGE COMPONENT\n// =============================================================================\n\nexport const DocumentationPage: FC = () => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const getDocsForCategory = (categoryId: string) =>\n documentationLinks.filter((doc) => doc.category === categoryId);\n\n return (\n <PageLayout\n title={tr(\"devportal.documentation\", \"Documentation\")}\n description={tr(\n \"devportal.exploreDocsDescription\",\n \"Explore guides, API references, and resources to build on the Burdenoff platform\",\n )}\n purpose={tr(\n \"devportal.docsPurpose\",\n \"The reference material for building integrations — getting-started guides, full API docs, and how-tos. New here? Begin with Getting Started, then dive into the API reference for the endpoints your app calls.\",\n )}\n actions={\n <a\n href={DEVELOPER_LINKS.docsHome}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\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 transition-colors\"\n >\n <Book size={16} />\n {tr(\"devportal.viewFullDocs\", \"View Full Docs\")}\n <ExternalLink size={14} />\n </a>\n }\n >\n {/* Coming-soon banner — page is intentionally a static stub until the\n CMS-backed documentation surface ships. See devportal stability\n tracker (`/docs` is Deferred). */}\n <div\n role=\"status\"\n className=\"mb-6 rounded-lg border border-status-warning-border bg-status-warning-bg p-4 text-sm text-status-warning-text\"\n >\n <strong className=\"font-semibold\">\n {tr(\"devportal.docs.comingSoon.title\", \"Coming soon\")}\n </strong>\n <span className=\"ml-2\">\n {tr(\n \"devportal.docs.comingSoon.description\",\n \"We're building a fully integrated documentation experience. The links below open the public docs site in the meantime.\",\n )}\n </span>\n </div>\n\n {/* Quick Links */}\n <PageSection>\n <div className=\"grid gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n {quickLinks.map((link) => (\n <QuickLinkCard key={link.title} link={link} />\n ))}\n </div>\n </PageSection>\n\n {/* Featured / Getting Started — primary emphasis zone */}\n <EmphasisPanel>\n <PageSection\n title={tr(\"devportal.gettingStarted\", \"Getting Started\")}\n description={tr(\n \"devportal.everythingToStartBuilding\",\n \"Everything you need to start building\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {getDocsForCategory(\"getting-started\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n </EmphasisPanel>\n\n {/* API Reference */}\n <PageSection\n title={tr(\"devportal.apiReference\", \"API Reference\")}\n description={tr(\n \"devportal.completeApiDocumentation\",\n \"Complete API documentation\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {getDocsForCategory(\"api\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Guides */}\n <PageSection\n title={tr(\"devportal.guides\", \"Guides\")}\n description={tr(\n \"devportal.stepByStepTutorials\",\n \"Step-by-step tutorials and best practices\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {getDocsForCategory(\"guides\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Reference & Support Row */}\n <div className=\"grid gap-6 lg:grid-cols-2\">\n {/* Reference */}\n <PageSection\n title={tr(\"devportal.reference\", \"Reference\")}\n description={tr(\n \"devportal.detailedSpecifications\",\n \"Detailed specifications\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {getDocsForCategory(\"reference\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Support */}\n <PageSection\n title={tr(\"devportal.support\", \"Support\")}\n description={tr(\n \"devportal.getHelpStayUpdated\",\n \"Get help and stay updated\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {getDocsForCategory(\"support\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n </div>\n\n {/* Help Banner */}\n <div className=\"mt-6 rounded-card border border-border-seam bg-accent-wash p-6\">\n <div className=\"flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h3 className=\"text-lg font-semibold\">\n {tr(\"devportal.needMoreHelp\", \"Need more help?\")}\n </h3>\n <p className=\"mt-1 text-text-secondary\">\n {tr(\n \"devportal.developerSupportTeamHelp\",\n \"Our developer support team is here to help you build amazing applications.\",\n )}\n </p>\n </div>\n <div className=\"flex gap-3\">\n <a\n href={DEVELOPER_LINKS.community}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-2 text-sm font-medium hover:bg-accent transition-colors\"\n >\n <Users size={16} />\n {tr(\"devportal.community\", \"Community\")}\n </a>\n <a\n href=\"mailto:contact@burdenoff.com\"\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 transition-colors\"\n >\n <MessageSquare size={16} />\n {tr(\"devportal.contactSupport\", \"Contact Support\")}\n </a>\n </div>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|