@buildbase/sdk 0.0.87 → 0.0.88
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/CHANGELOG.md +23 -0
- package/dist/data/index.cjs +1 -1
- package/dist/data/index.mjs +1 -1
- package/dist/react/chunks/SettingsDialog-CKVE1PpH.mjs +2 -0
- package/dist/react/chunks/SettingsDialog-DrDmxFEj.cjs +2 -0
- package/dist/react/chunks/SubscriptionDialog-B8FTFRtp.cjs +2 -0
- package/dist/react/chunks/SubscriptionDialog-UN7o9Hqb.mjs +2 -0
- package/dist/react/chunks/react-CHivaJhA.mjs +2 -0
- package/dist/react/chunks/{react-CFQGFdvF.cjs → react-Ch_Suxxy.cjs} +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/react/chunks/SettingsDialog-BcX_jx9_.cjs +0 -2
- package/dist/react/chunks/SettingsDialog-DQhIL82h.mjs +0 -2
- package/dist/react/chunks/SubscriptionDialog-C5XLOsG-.mjs +0 -2
- package/dist/react/chunks/SubscriptionDialog-Db3GY0-L.cjs +0 -2
- package/dist/react/chunks/react-BMiYh_7C.mjs +0 -2
package/dist/react/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";var e=require("./chunks/react-CFQGFdvF.cjs");require("react/jsx-runtime"),require("react"),require("clsx"),require("tailwind-merge"),require("intl-messageformat"),require("@radix-ui/react-slot"),require("class-variance-authority"),require("lucide-react"),require("@radix-ui/react-dialog"),require("@radix-ui/react-icons"),require("@hookform/resolvers/zod"),require("react-hook-form"),require("@radix-ui/react-label"),require("zod"),require("@radix-ui/react-avatar"),require("@radix-ui/react-radio-group"),require("@radix-ui/react-scroll-area"),require("@radix-ui/react-separator"),require("@radix-ui/react-accordion"),require("@radix-ui/react-alert-dialog"),require("@radix-ui/react-popover"),exports.APP_PERMISSION_FALLBACK_GROUP=e.APP_PERMISSION_FALLBACK_GROUP,Object.defineProperty(exports,"ApiVersion",{enumerable:!0,get:function(){return e.ApiVersion}}),exports.AuthApi=e.AuthApi,Object.defineProperty(exports,"AuthStatus",{enumerable:!0,get:function(){return e.AuthStatus}}),exports.BBAction=e.BBAction,exports.BBScreen=e.BBScreen,exports.BBStatus=e.BBStatus,exports.BB_PARAM=e.BB_PARAM,exports.BaseApi=e.BaseApi,exports.BetaForm=e.BetaForm,exports.BillingIntervals=e.BillingIntervals,exports.BuildBaseBadge=e.BuildBaseBadge,exports.BuildBaseProvider=e.SaaSOSProvider,exports.CURRENCY_DISPLAY=e.CURRENCY_DISPLAY,exports.CURRENCY_FLAG=e.CURRENCY_FLAG,exports.ConnectMcpGuide=e.ConnectMcpGuide,exports.ConnectedAgents=e.ConnectedAgents,exports.ConnectedAgentsApi=e.ConnectedAgentsApi,exports.CreditActionsProvider=e.CreditActionsProvider,exports.CreditBalance=e.CreditBalance,exports.CreditBalanceContextProvider=e.CreditBalanceContextProvider,exports.CreditBucketSource=e.CreditBucketSource,exports.CreditBucketStatus=e.CreditBucketStatus,exports.CreditStorePage=e.CreditStorePage,exports.CreditTransactionType=e.CreditTransactionType,exports.DEFAULT_ROLE_PERMISSIONS=e.DEFAULT_ROLE_PERMISSIONS,exports.Devices=e.Devices,exports.DevicesApi=e.DevicesApi,exports.DunningState=e.DunningState,exports.EmptyState=e.EmptyState,exports.EventEmitter=e.EventEmitter,exports.FALLBACK_WORKSPACE_ROLE=e.FALLBACK_WORKSPACE_ROLE,exports.FullScreenLoader=e.FullScreenLoader,exports.INVITATION_ERROR_CODE=e.INVITATION_ERROR_CODE,exports.InvoiceStatuses=e.InvoiceStatuses,exports.LoadingState=e.LoadingState,exports.NotificationBell=e.NotificationBell,exports.NotificationInbox=e.NotificationInbox,exports.NotificationsApi=e.NotificationsApi,exports.PLAN_CURRENCY_CODES=e.PLAN_CURRENCY_CODES,exports.PLAN_CURRENCY_OPTIONS=e.PLAN_CURRENCY_OPTIONS,exports.PUSH_SERVICE_WORKER_SCRIPT=e.PUSH_SERVICE_WORKER_SCRIPT,exports.PendingInvitations=e.PendingInvitations,exports.Permission=e.Permission,exports.PricingPage=e.PricingPage,exports.PushApi=e.PushApi,exports.PushNotificationProvider=e.PushNotificationProvider,exports.QuotaUsageContextProvider=e.QuotaUsageContextProvider,exports.SDKEvent=e.SDKEvent,exports.SETTINGS_SCREENS=e.SETTINGS_SCREENS,exports.SUPPORTED_LOCALES=e.SUPPORTED_LOCALES,exports.SaaSOSProvider=e.SaaSOSProvider,exports.SectionHeader=e.SectionHeader,exports.Sessions=e.Sessions,exports.SessionsApi=e.SessionsApi,exports.SettingsApi=e.SettingsApi,exports.SettingsScreen=e.SettingsScreen,exports.SidebarNavItem=e.SidebarNavItem,exports.SidebarNavSection=e.SidebarNavSection,exports.StatusBanner=e.StatusBanner,exports.SubscriptionContextProvider=e.SubscriptionContextProvider,exports.SubscriptionItemType=e.SubscriptionItemType,exports.SubscriptionStatus=e.SubscriptionStatus,exports.UPLOAD_ACCEPT=e.UPLOAD_ACCEPT,exports.UPLOAD_MAX_BYTES=e.UPLOAD_MAX_BYTES,exports.UploadsApi=e.UploadsApi,exports.UserApi=e.UserApi,exports.WhenAuthenticated=e.WhenAuthenticated,exports.WhenCreditsAvailable=e.WhenCreditsAvailable,exports.WhenCreditsExhausted=e.WhenCreditsExhausted,exports.WhenCreditsLow=e.WhenCreditsLow,exports.WhenNoSubscription=e.WhenNoSubscription,exports.WhenNotTrialing=e.WhenNotTrialing,exports.WhenPendingInvitations=e.WhenPendingInvitations,exports.WhenPermission=e.WhenPermission,exports.WhenQuotaAvailable=e.WhenQuotaAvailable,exports.WhenQuotaExhausted=e.WhenQuotaExhausted,exports.WhenQuotaOverage=e.WhenQuotaOverage,exports.WhenQuotaThreshold=e.WhenQuotaThreshold,exports.WhenRoles=e.WhenRoles,exports.WhenSubscription=e.WhenSubscription,exports.WhenSubscriptionToPlans=e.WhenSubscriptionToPlans,exports.WhenTrialEnding=e.WhenTrialEnding,exports.WhenTrialing=e.WhenTrialing,exports.WhenUnauthenticated=e.WhenUnauthenticated,exports.WhenUserFeatureDisabled=e.WhenUserFeatureDisabled,exports.WhenUserFeatureEnabled=e.WhenUserFeatureEnabled,exports.WhenWorkspaceFeatureDisabled=e.WhenWorkspaceFeatureDisabled,exports.WhenWorkspaceFeatureEnabled=e.WhenWorkspaceFeatureEnabled,exports.WhenWorkspaceRoles=e.WhenWorkspaceRoles,exports.WorkspaceApi=e.WorkspaceApi,exports.WorkspaceSwitcher=e.WorkspaceSwitcher,exports.actionableInvitations=e.actionableInvitations,exports.appPermissionCatalogue=e.appPermissionCatalogue,exports.calculateBillableSeats=e.calculateBillableSeats,exports.calculateSeatOverageCents=e.calculateSeatOverageCents,exports.calculateTotalSubscriptionCents=e.calculateTotalSubscriptionCents,exports.cleanBBParams=e.cleanBBParams,exports.clearAuthIntent=e.clearAuthIntent,exports.clearPendingInvite=e.clearPendingInvite,exports.coerceBadgeRef=e.coerceBadgeRef,exports.consumeAuthIntent=e.consumeAuthIntent,exports.createBBUrl=e.createBBUrl,exports.createCheckoutRedirectUrls=e.createCheckoutRedirectUrls,exports.createCreditPurchaseRedirectUrls=e.createCreditPurchaseRedirectUrls,exports.eventEmitter=e.eventEmitter,exports.fillMcpTemplate=e.fillMcpTemplate,exports.formatCents=e.formatCents,exports.formatMinorAmountIntl=e.formatMinorAmountIntl,exports.formatOverageRate=e.formatOverageRate,exports.formatOverageRateWithLabel=e.formatOverageRateWithLabel,exports.formatQuotaIncludedOverage=e.formatQuotaIncludedOverage,exports.formatQuotaWithPrice=e.formatQuotaWithPrice,exports.formatUploadLimit=e.formatUploadLimit,exports.getAvailableBillingIntervals=e.getAvailableBillingIntervals,exports.getAvailableCurrenciesFromPlans=e.getAvailableCurrenciesFromPlans,exports.getBasePriceCents=e.getBasePriceCents,exports.getBillingIntervalAndCurrencyFromPriceId=e.getBillingIntervalAndCurrencyFromPriceId,exports.getCurrencyDecimals=e.getCurrencyDecimals,exports.getCurrencyFlag=e.getCurrencyFlag,exports.getCurrencySymbol=e.getCurrencySymbol,exports.getDisplayCurrency=e.getDisplayCurrency,exports.getPerSeatPriceCents=e.getPerSeatPriceCents,exports.getPricingVariant=e.getPricingVariant,exports.getQuotaDisplayValue=e.getQuotaDisplayValue,exports.getQuotaDisplayWithVariant=e.getQuotaDisplayWithVariant,exports.getQuotaOverageCents=e.getQuotaOverageCents,exports.getQuotaUnitLabelFromName=e.getQuotaUnitLabelFromName,exports.getSeatPricing=e.getSeatPricing,exports.getStripePriceIdForInterval=e.getStripePriceIdForInterval,exports.hasPermission=e.hasPermission,exports.invalidateCreditBalance=e.invalidateCreditBalance,exports.invalidateQuotaUsage=e.invalidateQuotaUsage,exports.invalidateSubscription=e.invalidateSubscription,exports.inviterNameOf=e.inviterNameOf,exports.isInvitationActionable=e.isInvitationActionable,exports.isInvitationError=e.isInvitationError,exports.isInvitationLapsed=e.isInvitationLapsed,exports.isZeroDecimalCurrency=e.isZeroDecimalCurrency,exports.mcpServerKey=e.mcpServerKey,exports.mergeUIConfig=e.mergeUIConfig,exports.minorAmountToDisplay=e.minorAmountToDisplay,exports.parkPendingInvite=e.parkPendingInvite,exports.pickDefaultRole=e.pickDefaultRole,exports.preflightUpload=e.preflightUpload,exports.readBBParams=e.readBBParams,exports.readPendingInvite=e.readPendingInvite,exports.resendCooldownSeconds=e.resendCooldownSeconds,exports.resolveMaxUsers=e.resolveMaxUsers,exports.resolvePermissions=e.resolvePermissions,exports.resolveRolePermissions=e.resolveRolePermissions,exports.safeRedirect=e.safeRedirect,exports.saveAuthIntent=e.saveAuthIntent,exports.sortInvitations=e.sortInvitations,exports.uploadFailureOf=e.uploadFailureOf,exports.uploadPolicyOf=e.uploadPolicyOf,exports.useAllQuotaUsage=e.useAllQuotaUsage,exports.useBillingPortal=e.useBillingPortal,exports.useCancelSubscription=e.useCancelSubscription,exports.useConnectedAgents=e.useConnectedAgents,exports.useConnectedAgentsApi=e.useConnectedAgentsApi,exports.useConsumeCredits=e.useConsumeCredits,exports.useCreateCheckoutSession=e.useCreateCheckoutSession,exports.useCreditBalance=e.useCreditBalance,exports.useCreditBalanceContext=e.useCreditBalanceContext,exports.useCreditPackages=e.useCreditPackages,exports.useCreditTransactions=e.useCreditTransactions,exports.useDevices=e.useDevices,exports.useDevicesApi=e.useDevicesApi,exports.useExpiringCredits=e.useExpiringCredits,exports.useFullScreenLoader=e.useFullScreenLoader,exports.useInvoice=e.useInvoice,exports.useInvoices=e.useInvoices,exports.useMcpConnection=e.useMcpConnection,exports.useMyInvitations=e.useMyInvitations,exports.useNotifications=e.useNotifications,exports.useNotificationsApi=e.useNotificationsApi,exports.usePermissions=e.usePermissions,exports.usePlanGroup=e.usePlanGroup,exports.usePlanGroupVersions=e.usePlanGroupVersions,exports.usePublicCreditPackages=e.usePublicCreditPackages,exports.usePublicPlanGroupVersion=e.usePublicPlanGroupVersion,exports.usePublicPlans=e.usePublicPlans,exports.usePurchaseCredits=e.usePurchaseCredits,exports.usePushNotifications=e.usePushNotifications,exports.useQuotaUsageContext=e.useQuotaUsageContext,exports.useQuotaUsageStatus=e.useQuotaUsageStatus,exports.useRecordUsage=e.useRecordUsage,exports.useResumeSubscription=e.useResumeSubscription,exports.useSaaSAuth=e.useSaaSAuth,exports.useSaaSOs=e.useSaaSOs,exports.useSaaSSettings=e.useSaaSSettings,exports.useSaaSWorkspaces=e.useSaaSWorkspaces,exports.useSeatStatus=e.useSeatStatus,exports.useSessions=e.useSessions,exports.useSessionsApi=e.useSessionsApi,exports.useSubscription=e.useSubscription,exports.useSubscriptionContext=e.useSubscriptionContext,exports.useSubscriptionManagement=e.useSubscriptionManagement,exports.useTranslation=e.useTranslation,exports.useTrialStatus=e.useTrialStatus,exports.useUIConfig=e.useUIConfig,exports.useUIVisibility=e.useUIVisibility,exports.useUpdateSubscription=e.useUpdateSubscription,exports.useUpload=e.useUpload,exports.useUploadsApi=e.useUploadsApi,exports.useUsageLogs=e.useUsageLogs,exports.useUserAttributes=e.useUserAttributes,exports.useUserFeatures=e.useUserFeatures,exports.useWorkspaceInvitations=e.useWorkspaceInvitations,exports.validateInvite=e.validateInvite,exports.validateRedirectUrl=e.validateRedirectUrl,exports.workspaceIdOf=e.workspaceIdOf,exports.workspaceNameOf=e.workspaceNameOf,exports.workspaceSettingsManager=e.workspaceSettingsManager;
|
|
2
|
+
"use strict";var e=require("./chunks/react-Ch_Suxxy.cjs");require("react/jsx-runtime"),require("react"),require("clsx"),require("tailwind-merge"),require("intl-messageformat"),require("@radix-ui/react-slot"),require("class-variance-authority"),require("lucide-react"),require("@radix-ui/react-dialog"),require("@radix-ui/react-icons"),require("@hookform/resolvers/zod"),require("react-hook-form"),require("@radix-ui/react-label"),require("zod"),require("@radix-ui/react-avatar"),require("@radix-ui/react-radio-group"),require("@radix-ui/react-scroll-area"),require("@radix-ui/react-separator"),require("@radix-ui/react-accordion"),require("@radix-ui/react-alert-dialog"),require("@radix-ui/react-popover"),exports.APP_PERMISSION_FALLBACK_GROUP=e.APP_PERMISSION_FALLBACK_GROUP,Object.defineProperty(exports,"ApiVersion",{enumerable:!0,get:function(){return e.ApiVersion}}),exports.AuthApi=e.AuthApi,Object.defineProperty(exports,"AuthStatus",{enumerable:!0,get:function(){return e.AuthStatus}}),exports.BBAction=e.BBAction,exports.BBScreen=e.BBScreen,exports.BBStatus=e.BBStatus,exports.BB_PARAM=e.BB_PARAM,exports.BaseApi=e.BaseApi,exports.BetaForm=e.BetaForm,exports.BillingIntervals=e.BillingIntervals,exports.BuildBaseBadge=e.BuildBaseBadge,exports.BuildBaseProvider=e.SaaSOSProvider,exports.CURRENCY_DISPLAY=e.CURRENCY_DISPLAY,exports.CURRENCY_FLAG=e.CURRENCY_FLAG,exports.ConnectMcpGuide=e.ConnectMcpGuide,exports.ConnectedAgents=e.ConnectedAgents,exports.ConnectedAgentsApi=e.ConnectedAgentsApi,exports.CreditActionsProvider=e.CreditActionsProvider,exports.CreditBalance=e.CreditBalance,exports.CreditBalanceContextProvider=e.CreditBalanceContextProvider,exports.CreditBucketSource=e.CreditBucketSource,exports.CreditBucketStatus=e.CreditBucketStatus,exports.CreditStorePage=e.CreditStorePage,exports.CreditTransactionType=e.CreditTransactionType,exports.DEFAULT_ROLE_PERMISSIONS=e.DEFAULT_ROLE_PERMISSIONS,exports.Devices=e.Devices,exports.DevicesApi=e.DevicesApi,exports.DunningState=e.DunningState,exports.EmptyState=e.EmptyState,exports.EventEmitter=e.EventEmitter,exports.FALLBACK_WORKSPACE_ROLE=e.FALLBACK_WORKSPACE_ROLE,exports.FullScreenLoader=e.FullScreenLoader,exports.INVITATION_ERROR_CODE=e.INVITATION_ERROR_CODE,exports.InvoiceStatuses=e.InvoiceStatuses,exports.LoadingState=e.LoadingState,exports.NotificationBell=e.NotificationBell,exports.NotificationInbox=e.NotificationInbox,exports.NotificationsApi=e.NotificationsApi,exports.PLAN_CURRENCY_CODES=e.PLAN_CURRENCY_CODES,exports.PLAN_CURRENCY_OPTIONS=e.PLAN_CURRENCY_OPTIONS,exports.PUSH_SERVICE_WORKER_SCRIPT=e.PUSH_SERVICE_WORKER_SCRIPT,exports.PendingInvitations=e.PendingInvitations,exports.Permission=e.Permission,exports.PricingPage=e.PricingPage,exports.PushApi=e.PushApi,exports.PushNotificationProvider=e.PushNotificationProvider,exports.QuotaUsageContextProvider=e.QuotaUsageContextProvider,exports.SDKEvent=e.SDKEvent,exports.SETTINGS_SCREENS=e.SETTINGS_SCREENS,exports.SUPPORTED_LOCALES=e.SUPPORTED_LOCALES,exports.SaaSOSProvider=e.SaaSOSProvider,exports.SectionHeader=e.SectionHeader,exports.Sessions=e.Sessions,exports.SessionsApi=e.SessionsApi,exports.SettingsApi=e.SettingsApi,exports.SettingsScreen=e.SettingsScreen,exports.SidebarNavItem=e.SidebarNavItem,exports.SidebarNavSection=e.SidebarNavSection,exports.StatusBanner=e.StatusBanner,exports.SubscriptionContextProvider=e.SubscriptionContextProvider,exports.SubscriptionItemType=e.SubscriptionItemType,exports.SubscriptionStatus=e.SubscriptionStatus,exports.UPLOAD_ACCEPT=e.UPLOAD_ACCEPT,exports.UPLOAD_MAX_BYTES=e.UPLOAD_MAX_BYTES,exports.UploadsApi=e.UploadsApi,exports.UserApi=e.UserApi,exports.WhenAuthenticated=e.WhenAuthenticated,exports.WhenCreditsAvailable=e.WhenCreditsAvailable,exports.WhenCreditsExhausted=e.WhenCreditsExhausted,exports.WhenCreditsLow=e.WhenCreditsLow,exports.WhenNoSubscription=e.WhenNoSubscription,exports.WhenNotTrialing=e.WhenNotTrialing,exports.WhenPendingInvitations=e.WhenPendingInvitations,exports.WhenPermission=e.WhenPermission,exports.WhenQuotaAvailable=e.WhenQuotaAvailable,exports.WhenQuotaExhausted=e.WhenQuotaExhausted,exports.WhenQuotaOverage=e.WhenQuotaOverage,exports.WhenQuotaThreshold=e.WhenQuotaThreshold,exports.WhenRoles=e.WhenRoles,exports.WhenSubscription=e.WhenSubscription,exports.WhenSubscriptionToPlans=e.WhenSubscriptionToPlans,exports.WhenTrialEnding=e.WhenTrialEnding,exports.WhenTrialing=e.WhenTrialing,exports.WhenUnauthenticated=e.WhenUnauthenticated,exports.WhenUserFeatureDisabled=e.WhenUserFeatureDisabled,exports.WhenUserFeatureEnabled=e.WhenUserFeatureEnabled,exports.WhenWorkspaceFeatureDisabled=e.WhenWorkspaceFeatureDisabled,exports.WhenWorkspaceFeatureEnabled=e.WhenWorkspaceFeatureEnabled,exports.WhenWorkspaceRoles=e.WhenWorkspaceRoles,exports.WorkspaceApi=e.WorkspaceApi,exports.WorkspaceSwitcher=e.WorkspaceSwitcher,exports.actionableInvitations=e.actionableInvitations,exports.appPermissionCatalogue=e.appPermissionCatalogue,exports.calculateBillableSeats=e.calculateBillableSeats,exports.calculateSeatOverageCents=e.calculateSeatOverageCents,exports.calculateTotalSubscriptionCents=e.calculateTotalSubscriptionCents,exports.cleanBBParams=e.cleanBBParams,exports.clearAuthIntent=e.clearAuthIntent,exports.clearPendingInvite=e.clearPendingInvite,exports.coerceBadgeRef=e.coerceBadgeRef,exports.consumeAuthIntent=e.consumeAuthIntent,exports.createBBUrl=e.createBBUrl,exports.createCheckoutRedirectUrls=e.createCheckoutRedirectUrls,exports.createCreditPurchaseRedirectUrls=e.createCreditPurchaseRedirectUrls,exports.eventEmitter=e.eventEmitter,exports.fillMcpTemplate=e.fillMcpTemplate,exports.formatCents=e.formatCents,exports.formatMinorAmountIntl=e.formatMinorAmountIntl,exports.formatOverageRate=e.formatOverageRate,exports.formatOverageRateWithLabel=e.formatOverageRateWithLabel,exports.formatQuotaIncludedOverage=e.formatQuotaIncludedOverage,exports.formatQuotaWithPrice=e.formatQuotaWithPrice,exports.formatUploadLimit=e.formatUploadLimit,exports.getAvailableBillingIntervals=e.getAvailableBillingIntervals,exports.getAvailableCurrenciesFromPlans=e.getAvailableCurrenciesFromPlans,exports.getBasePriceCents=e.getBasePriceCents,exports.getBillingIntervalAndCurrencyFromPriceId=e.getBillingIntervalAndCurrencyFromPriceId,exports.getCurrencyDecimals=e.getCurrencyDecimals,exports.getCurrencyFlag=e.getCurrencyFlag,exports.getCurrencySymbol=e.getCurrencySymbol,exports.getDisplayCurrency=e.getDisplayCurrency,exports.getPerSeatPriceCents=e.getPerSeatPriceCents,exports.getPricingVariant=e.getPricingVariant,exports.getQuotaDisplayValue=e.getQuotaDisplayValue,exports.getQuotaDisplayWithVariant=e.getQuotaDisplayWithVariant,exports.getQuotaOverageCents=e.getQuotaOverageCents,exports.getQuotaUnitLabelFromName=e.getQuotaUnitLabelFromName,exports.getSeatPricing=e.getSeatPricing,exports.getStripePriceIdForInterval=e.getStripePriceIdForInterval,exports.hasPermission=e.hasPermission,exports.invalidateCreditBalance=e.invalidateCreditBalance,exports.invalidateQuotaUsage=e.invalidateQuotaUsage,exports.invalidateSubscription=e.invalidateSubscription,exports.inviterNameOf=e.inviterNameOf,exports.isInvitationActionable=e.isInvitationActionable,exports.isInvitationError=e.isInvitationError,exports.isInvitationLapsed=e.isInvitationLapsed,exports.isZeroDecimalCurrency=e.isZeroDecimalCurrency,exports.mcpServerKey=e.mcpServerKey,exports.mergeUIConfig=e.mergeUIConfig,exports.minorAmountToDisplay=e.minorAmountToDisplay,exports.parkPendingInvite=e.parkPendingInvite,exports.pickDefaultRole=e.pickDefaultRole,exports.preflightUpload=e.preflightUpload,exports.readBBParams=e.readBBParams,exports.readPendingInvite=e.readPendingInvite,exports.resendCooldownSeconds=e.resendCooldownSeconds,exports.resolveMaxUsers=e.resolveMaxUsers,exports.resolvePermissions=e.resolvePermissions,exports.resolveRolePermissions=e.resolveRolePermissions,exports.safeRedirect=e.safeRedirect,exports.saveAuthIntent=e.saveAuthIntent,exports.sortInvitations=e.sortInvitations,exports.uploadFailureOf=e.uploadFailureOf,exports.uploadPolicyOf=e.uploadPolicyOf,exports.useAllQuotaUsage=e.useAllQuotaUsage,exports.useBillingPortal=e.useBillingPortal,exports.useCancelSubscription=e.useCancelSubscription,exports.useConnectedAgents=e.useConnectedAgents,exports.useConnectedAgentsApi=e.useConnectedAgentsApi,exports.useConsumeCredits=e.useConsumeCredits,exports.useCreateCheckoutSession=e.useCreateCheckoutSession,exports.useCreditBalance=e.useCreditBalance,exports.useCreditBalanceContext=e.useCreditBalanceContext,exports.useCreditPackages=e.useCreditPackages,exports.useCreditTransactions=e.useCreditTransactions,exports.useDevices=e.useDevices,exports.useDevicesApi=e.useDevicesApi,exports.useExpiringCredits=e.useExpiringCredits,exports.useFullScreenLoader=e.useFullScreenLoader,exports.useInvoice=e.useInvoice,exports.useInvoices=e.useInvoices,exports.useMcpConnection=e.useMcpConnection,exports.useMyInvitations=e.useMyInvitations,exports.useNotifications=e.useNotifications,exports.useNotificationsApi=e.useNotificationsApi,exports.usePermissions=e.usePermissions,exports.usePlanGroup=e.usePlanGroup,exports.usePlanGroupVersions=e.usePlanGroupVersions,exports.usePublicCreditPackages=e.usePublicCreditPackages,exports.usePublicPlanGroupVersion=e.usePublicPlanGroupVersion,exports.usePublicPlans=e.usePublicPlans,exports.usePurchaseCredits=e.usePurchaseCredits,exports.usePushNotifications=e.usePushNotifications,exports.useQuotaUsageContext=e.useQuotaUsageContext,exports.useQuotaUsageStatus=e.useQuotaUsageStatus,exports.useRecordUsage=e.useRecordUsage,exports.useResumeSubscription=e.useResumeSubscription,exports.useSaaSAuth=e.useSaaSAuth,exports.useSaaSOs=e.useSaaSOs,exports.useSaaSSettings=e.useSaaSSettings,exports.useSaaSWorkspaces=e.useSaaSWorkspaces,exports.useSeatStatus=e.useSeatStatus,exports.useSessions=e.useSessions,exports.useSessionsApi=e.useSessionsApi,exports.useSubscription=e.useSubscription,exports.useSubscriptionContext=e.useSubscriptionContext,exports.useSubscriptionManagement=e.useSubscriptionManagement,exports.useTranslation=e.useTranslation,exports.useTrialStatus=e.useTrialStatus,exports.useUIConfig=e.useUIConfig,exports.useUIVisibility=e.useUIVisibility,exports.useUpdateSubscription=e.useUpdateSubscription,exports.useUpload=e.useUpload,exports.useUploadsApi=e.useUploadsApi,exports.useUsageLogs=e.useUsageLogs,exports.useUserAttributes=e.useUserAttributes,exports.useUserFeatures=e.useUserFeatures,exports.useWorkspaceInvitations=e.useWorkspaceInvitations,exports.validateInvite=e.validateInvite,exports.validateRedirectUrl=e.validateRedirectUrl,exports.workspaceIdOf=e.workspaceIdOf,exports.workspaceNameOf=e.workspaceNameOf,exports.workspaceSettingsManager=e.workspaceSettingsManager;
|
package/dist/react/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{
|
|
2
|
+
export{ba as APP_PERMISSION_FALLBACK_GROUP,bb as ApiVersion,bc as AuthApi,bd as AuthStatus,o as BBAction,be as BBScreen,q as BBStatus,bf as BB_PARAM,bg as BaseApi,bh as BetaForm,aq as BillingIntervals,bi as BuildBaseBadge,bj as BuildBaseProvider,bk as CURRENCY_DISPLAY,bl as CURRENCY_FLAG,bm as ConnectMcpGuide,C as ConnectedAgents,bn as ConnectedAgentsApi,bo as CreditActionsProvider,bp as CreditBalance,bq as CreditBalanceContextProvider,br as CreditBucketSource,bs as CreditBucketStatus,bt as CreditStorePage,z as CreditTransactionType,bu as DEFAULT_ROLE_PERMISSIONS,T as Devices,bv as DevicesApi,aH as DunningState,E as EmptyState,bw as EventEmitter,bx as FALLBACK_WORKSPACE_ROLE,by as FullScreenLoader,bz as INVITATION_ERROR_CODE,ao as InvoiceStatuses,L as LoadingState,bA as NotificationBell,bB as NotificationInbox,bC as NotificationsApi,bD as PLAN_CURRENCY_CODES,bE as PLAN_CURRENCY_OPTIONS,bF as PUSH_SERVICE_WORKER_SCRIPT,bG as PendingInvitations,P as Permission,bH as PricingPage,bI as PushApi,bJ as PushNotificationProvider,bK as QuotaUsageContextProvider,bL as SDKEvent,b5 as SETTINGS_SCREENS,bM as SUPPORTED_LOCALES,bj as SaaSOSProvider,t as SectionHeader,U as Sessions,bN as SessionsApi,bO as SettingsApi,a$ as SettingsScreen,b1 as SidebarNavItem,b0 as SidebarNavSection,s as StatusBanner,bP as SubscriptionContextProvider,ar as SubscriptionItemType,au as SubscriptionStatus,a6 as UPLOAD_ACCEPT,bQ as UPLOAD_MAX_BYTES,bR as UploadsApi,bS as UserApi,bT as WhenAuthenticated,bU as WhenCreditsAvailable,bV as WhenCreditsExhausted,bW as WhenCreditsLow,bX as WhenNoSubscription,bY as WhenNotTrialing,bZ as WhenPendingInvitations,b_ as WhenPermission,b$ as WhenQuotaAvailable,c0 as WhenQuotaExhausted,c1 as WhenQuotaOverage,c2 as WhenQuotaThreshold,c3 as WhenRoles,c4 as WhenSubscription,c5 as WhenSubscriptionToPlans,c6 as WhenTrialEnding,c7 as WhenTrialing,c8 as WhenUnauthenticated,c9 as WhenUserFeatureDisabled,ca as WhenUserFeatureEnabled,cb as WhenWorkspaceFeatureDisabled,cc as WhenWorkspaceFeatureEnabled,cd as WhenWorkspaceRoles,ce as WorkspaceApi,cf as WorkspaceSwitcher,cg as actionableInvitations,ad as appPermissionCatalogue,ch as calculateBillableSeats,ci as calculateSeatOverageCents,cj as calculateTotalSubscriptionCents,ck as cleanBBParams,cl as clearAuthIntent,cm as clearPendingInvite,cn as coerceBadgeRef,co as consumeAuthIntent,cp as createBBUrl,aJ as createCheckoutRedirectUrls,x as createCreditPurchaseRedirectUrls,cq as eventEmitter,cr as fillMcpTemplate,cs as formatCents,f as formatMinorAmountIntl,ct as formatOverageRate,cu as formatOverageRateWithLabel,cv as formatQuotaIncludedOverage,cw as formatQuotaWithPrice,cx as formatUploadLimit,b8 as getAvailableBillingIntervals,b7 as getAvailableCurrenciesFromPlans,aE as getBasePriceCents,aD as getBillingIntervalAndCurrencyFromPriceId,e as getCurrencyDecimals,a2 as getCurrencyFlag,g as getCurrencySymbol,cy as getDisplayCurrency,aG as getPerSeatPriceCents,b6 as getPricingVariant,at as getQuotaDisplayValue,as as getQuotaDisplayWithVariant,aO as getQuotaOverageCents,cz as getQuotaUnitLabelFromName,aF as getSeatPricing,aI as getStripePriceIdForInterval,cA as hasPermission,r as invalidateCreditBalance,cB as invalidateQuotaUsage,aK as invalidateSubscription,cC as inviterNameOf,cD as isInvitationActionable,cE as isInvitationError,aY as isInvitationLapsed,cF as isZeroDecimalCurrency,cG as mcpServerKey,b2 as mergeUIConfig,cH as minorAmountToDisplay,cI as parkPendingInvite,aV as pickDefaultRole,cJ as preflightUpload,cK as readBBParams,cL as readPendingInvite,aX as resendCooldownSeconds,cM as resolveMaxUsers,cN as resolvePermissions,ae as resolveRolePermissions,y as safeRedirect,cO as saveAuthIntent,cP as sortInvitations,cQ as uploadFailureOf,cR as uploadPolicyOf,cS as useAllQuotaUsage,aA as useBillingPortal,ay as useCancelSubscription,cT as useConnectedAgents,cU as useConnectedAgentsApi,cV as useConsumeCredits,ax as useCreateCheckoutSession,cW as useCreditBalance,j as useCreditBalanceContext,k as useCreditPackages,m as useCreditTransactions,cX as useDevices,cY as useDevicesApi,l as useExpiringCredits,cZ as useFullScreenLoader,c_ as useInvoice,am as useInvoices,c$ as useMcpConnection,d0 as useMyInvitations,d1 as useNotifications,d2 as useNotificationsApi,h as usePermissions,d3 as usePlanGroup,aB as usePlanGroupVersions,d4 as usePublicCreditPackages,d5 as usePublicPlanGroupVersion,d6 as usePublicPlans,n as usePurchaseCredits,aa as usePushNotifications,aM as useQuotaUsageContext,d7 as useQuotaUsageStatus,d8 as useRecordUsage,az as useResumeSubscription,aQ as useSaaSAuth,d9 as useSaaSOs,F as useSaaSSettings,A as useSaaSWorkspaces,aU as useSeatStatus,da as useSessions,db as useSessionsApi,dc as useSubscription,aN as useSubscriptionContext,aw as useSubscriptionManagement,u as useTranslation,dd as useTrialStatus,aW as useUIConfig,i as useUIVisibility,de as useUpdateSubscription,V as useUpload,df as useUploadsApi,dg as useUsageLogs,dh as useUserAttributes,di as useUserFeatures,aS as useWorkspaceInvitations,dj as validateInvite,aL as validateRedirectUrl,dk as workspaceIdOf,dl as workspaceNameOf,w as workspaceSettingsManager}from"./chunks/react-CHivaJhA.mjs";import"react/jsx-runtime";import"react";import"clsx";import"tailwind-merge";import"intl-messageformat";import"@radix-ui/react-slot";import"class-variance-authority";import"lucide-react";import"@radix-ui/react-dialog";import"@radix-ui/react-icons";import"@hookform/resolvers/zod";import"react-hook-form";import"@radix-ui/react-label";import"zod";import"@radix-ui/react-avatar";import"@radix-ui/react-radio-group";import"@radix-ui/react-scroll-area";import"@radix-ui/react-separator";import"@radix-ui/react-accordion";import"@radix-ui/react-alert-dialog";import"@radix-ui/react-popover";
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use strict";var e=require("react/jsx-runtime"),s=require("lucide-react"),a=require("react"),t=require("./react-CFQGFdvF.cjs"),i=require("@radix-ui/react-switch"),n=require("@hookform/resolvers/zod"),r=require("react-hook-form"),o=require("zod"),c=require("@radix-ui/react-icons"),l=require("cmdk"),d=require("@radix-ui/react-select");function u(e){var s=Object.create(null);return e&&Object.keys(e).forEach(function(a){if("default"!==a){var t=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(s,a,t.get?t:{enumerable:!0,get:function(){return e[a]}})}}),s.default=e,Object.freeze(s)}var m=u(a),p=u(i),x=u(d);const g=()=>e.jsx(t.ConnectedAgents,{title:null});const f=({open:i,onOpenChange:n,packages:r,billingCurrency:o,workspaceName:c,onSelectPackage:l,purchasingPackageId:d,loading:u=!1})=>{const{t:m,dir:p,fmtNum:x,fmtCents:g,formattingLocale:f}=t.useTranslation(),b=a.useMemo(()=>{const e=new Set;return r.forEach(s=>{s.pricingVariants?.forEach(s=>{s.currency&&e.add(s.currency.toLowerCase())})}),Array.from(e)},[r]),h=a.useMemo(()=>{const e=o?.trim().toLowerCase();return e?b.includes(e)?[e]:[]:b},[o,b]),[S,v]=a.useState(()=>h.length>0?h[0]:""),j=o?.trim().toLowerCase()||S,N=u||!!d;return e.jsx(t.Dialog,{open:i,onOpenChange:n,children:e.jsxs(t.DialogContent,{dir:p,className:"inset-0 w-screen h-screen max-w-none rounded-none translate-x-0 translate-y-0 p-0 flex flex-col",children:[e.jsxs("div",{className:"flex-shrink-0 px-4 py-4 sm:px-6 sm:py-6 border-b space-y-3 sm:space-y-4",children:[e.jsxs("div",{children:[e.jsx(t.DialogTitle,{className:"text-xl font-semibold",children:m("credits.dialogTitle")}),e.jsxs(t.DialogDescription,{className:"mt-1 text-sm",children:[m("credits.dialogDescription"),c&&e.jsx("span",{className:"ms-1 font-medium text-foreground",children:m("credits.dialogDescriptionWorkspace",{workspace:c})})]})]}),!o?.trim()&&h.length>1&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:m("pricing.currency")}),e.jsx("div",{className:"flex gap-1 rounded-lg border border-border bg-muted/30 p-1",children:h.map(s=>e.jsxs("button",{type:"button",onClick:()=>v(s),className:t.cn("rounded-md px-3 py-1.5 text-sm font-medium transition-colors",j===s?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[t.getCurrencySymbol(s)," ",s.toUpperCase()]},s))})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:0===r.length?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-muted-foreground/70",children:[e.jsx(s.Coins,{className:"h-12 w-12 mb-3"}),e.jsx("p",{className:"text-sm",children:m("credits.noPackages")})]}):e.jsx("div",{className:"max-w-2xl mx-auto px-4 py-6 sm:px-6 space-y-4",children:r.map(a=>{const i=a.pricingVariants?.find(e=>e.currency?.toLowerCase()===j)??a.pricingVariants?.[0],n=i?.amount,r=i?.currency??j,o=d===a._id,c=null!=n&&n>0&&a.creditAmount>0?function(e,s,a){const i=Math.round(e);if(i>=1)return t.formatMinorAmountIntl(i,s,a);const n=t.getCurrencyDecimals(s),r=e/10**n,o=Math.min(n+4,Math.max(n,Math.ceil(-Math.log10(r))+1));try{return new Intl.NumberFormat(a,{style:"currency",currency:s.trim().toUpperCase(),minimumFractionDigits:o,maximumFractionDigits:o}).format(r)}catch{return t.getCurrencySymbol(s)+r.toFixed(o)}}(n/a.creditAmount,r,f):null;return e.jsxs("div",{className:t.cn("rounded-xl border p-5 sm:p-6 flex flex-col sm:flex-row sm:items-center gap-4 transition-all",o?"border-primary bg-primary/5 shadow-md":"border-border hover:border-border hover:shadow-sm"),children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:a.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-info/10 px-2.5 py-0.5 text-xs font-medium text-info",children:[e.jsx(s.Coins,{className:"h-3.5 w-3.5"}),m("credits.creditsAmount",{count:x(a.creditAmount)})]})]}),a.description&&e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:a.description}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground/70",children:[e.jsx("span",{children:a.validityDays?m("credits.validityDays",{count:a.validityDays}):m("credits.validityUnlimited")}),null!=c&&e.jsx("span",{children:m("credits.perCredit",{price:c})})]})]}),e.jsxs("div",{className:"flex items-center gap-4 sm:flex-col sm:items-end sm:gap-2 shrink-0",children:[null!=n&&e.jsx("span",{className:"text-2xl sm:text-3xl font-bold text-foreground whitespace-nowrap",children:g(n,r)}),e.jsx(t.Button,{size:"sm",onClick:()=>l(a),disabled:N,progress:o,className:"whitespace-nowrap",children:o?m("credits.purchasing"):m("credits.buyAmount",{count:x(a.creditAmount)})})]})]},a._id)})})})]})})},b=({titleKey:a,descriptionKey:i})=>{const{t:n}=t.useTranslation();return e.jsx("div",{className:"border border-warning/20 bg-warning/10 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(s.ShieldAlert,{className:"h-5 w-5 text-warning shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-warning",children:n(a??"settings.common.noPermissionTitle")}),e.jsx("p",{className:"text-xs text-warning/80 mt-1",children:n(i??"settings.common.noPermissionDescription")})]})]})})};function h(){return e.jsxs("div",{className:"space-y-3.5",children:[e.jsx(t.Skeleton,{className:"h-10 w-full"}),e.jsx(t.Skeleton,{className:"h-10 w-full"}),e.jsx(t.Skeleton,{className:"h-10 w-full"})]})}const S={[t.CreditTransactionType.PlanGrant]:"credits.type.plan_grant",[t.CreditTransactionType.PackPurchased]:"credits.type.pack_purchased",[t.CreditTransactionType.Consumed]:"credits.type.consumed",[t.CreditTransactionType.Expired]:"credits.type.expired",[t.CreditTransactionType.AdminGrant]:"credits.type.admin_grant",[t.CreditTransactionType.AdminRevoke]:"credits.type.admin_revoke",[t.CreditTransactionType.Refund]:"credits.type.refund"};const v=({workspace:i})=>{const n=i._id?.toString(),{t:r,fmtNum:o}=t.useTranslation(),{can:c}=t.usePermissions(),{visible:l}=t.useUIVisibility(),d=l(e=>e.settings?.credits?.transactions),u=c(t.Permission.WORKSPACE_BILLING_VIEW),m=l(e=>e.settings?.credits?.buyButton,t.Permission.WORKSPACE_BILLING_MANAGE),{balance:p,loading:x,error:g,refetch:S}=t.useCreditBalanceContext(),{packages:v,loading:N}=t.useCreditPackages(n),{expiringCredits:A,loading:y}=t.useExpiringCredits(n,7),[C,T]=a.useState(1),{transactions:w,hasNextPage:k,loading:E,refetch:P}=t.useCreditTransactions(n,{limit:10,page:C}),[D,M]=a.useState([]);a.useEffect(()=>{E||0===w.length||M(1===C?w:e=>{const s=new Set(e.map(e=>e._id)),a=w.filter(e=>!s.has(e._id));return a.length>0?[...e,...a]:e})},[w,C,E]);const I=a.useCallback(()=>{k&&!E&&T(e=>e+1)},[k,E]),U=D,{purchaseCredits:R,loading:B}=t.usePurchaseCredits(n),[_,L]=a.useState(!1),[G,K]=a.useState(null),[F,O]=a.useState(!1),[W,V]=a.useState(!1),[z,H]=a.useState(null),[q,J]=a.useState(!1),Y=a.useRef(!1),Z=x&&!p;a.useEffect(()=>{if(Y.current)return;const e=t.workspaceSettingsManager.getState();if(!e.params?.action)return;if(e.params.action===t.BBAction.OpenCreditStore)return Y.current=!0,t.workspaceSettingsManager.clearParams(),void J(!0);if(e.params.action!==t.BBAction.CreditPurchase)return;Y.current=!0;const s=e.params.status;if(t.workspaceSettingsManager.clearParams(),s===t.BBStatus.Success){O(!0),t.invalidateCreditBalance();const e=setTimeout(()=>O(!1),8e3);return()=>clearTimeout(e)}if(s===t.BBStatus.Cancel){V(!0);const e=setTimeout(()=>V(!1),5e3);return()=>clearTimeout(e)}s===t.BBStatus.Error&&K(r("credits.purchaseFailed"))},[]);if(Z)return e.jsx(h,{});if(!u)return e.jsx(b,{});if(!n)return e.jsx("div",{className:"border rounded-lg p-4 text-center text-muted-foreground",children:e.jsx("p",{children:r("subscription.invalidWorkspace")})});const $=!N&&v.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:r("credits.description")}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[$&&m&&e.jsxs(t.Button,{size:"sm",onClick:()=>J(!0),children:[e.jsx(s.ShoppingCart,{className:"h-3.5 w-3.5 me-1.5"}),r("credits.buyCredits")]}),e.jsxs(t.Button,{variant:"ghost",size:"sm",onClick:async()=>{L(!0);try{await S()}finally{L(!1)}},disabled:_,children:[e.jsx(s.RefreshCw,{className:t.cn("h-3.5 w-3.5 me-1.5",_&&"animate-spin")}),r("settings.common.refreshAction",{loading:String(_)})]})]})]}),g&&e.jsx(t.StatusBanner,{variant:"error",title:r("credits.errorLoading"),message:g}),F&&e.jsx(t.StatusBanner,{variant:"success",icon:e.jsx(s.CheckCircle2,{className:"h-4 w-4 flex-shrink-0"}),title:r("credits.purchaseSuccess"),actionLabel:r("settings.common.dismiss"),onAction:()=>O(!1)}),W&&e.jsx(t.StatusBanner,{variant:"warning",title:r("credits.purchaseCanceled"),actionLabel:r("settings.common.dismiss"),onAction:()=>V(!1)}),G&&e.jsx(t.StatusBanner,{variant:"error",message:G,actionLabel:r("settings.common.dismiss"),onAction:()=>K(null)}),e.jsxs("div",{className:"border border-border rounded-lg overflow-hidden",children:[e.jsxs("div",{className:"bg-muted/30 p-4 sm:p-5",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider",children:r("credits.balance")}),e.jsx(s.Coins,{className:"h-5 w-5 text-muted-foreground/70"})]}),p?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"text-3xl font-bold text-foreground mb-4",children:o(p.available)}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalGranted")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:o(p.totalGranted)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalConsumed")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:o(p.totalConsumed)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalExpired")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:o(p.totalExpired)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.available")}),e.jsx("p",{className:"text-sm font-semibold text-success",children:o(p.available)})]})]})]}):e.jsxs("div",{className:"text-center py-4",children:[e.jsx(s.Coins,{className:"h-10 w-10 text-muted-foreground/50 mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:r("credits.noCredits")}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:r("credits.noCreditsHint")}),$&&m&&e.jsxs(t.Button,{size:"sm",className:"mt-3",onClick:()=>J(!0),children:[e.jsx(s.ShoppingCart,{className:"h-3.5 w-3.5 me-1.5"}),r("credits.buyCredits")]})]})]}),!y&&A>0&&e.jsx("div",{className:"px-4 py-3 bg-warning/10 border-t border-warning/30 text-sm text-warning",children:r("credits.expiringInDays",{count:A,days:7})})]}),d&&e.jsxs("div",{children:[e.jsx(t.SectionHeader,{title:r("credits.transactions"),className:"mb-3"}),E&&0===U.length?e.jsx(t.LoadingState,{}):0===U.length?e.jsx(t.EmptyState,{icon:e.jsx(s.History,{className:"h-5 w-5 text-muted-foreground"}),description:r("credits.noTransactions"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:E,onClick:P,children:r("settings.common.refreshAction",{loading:String(E)})})}):e.jsxs("div",{className:"border border-border rounded-lg overflow-hidden",children:[e.jsx("div",{className:"divide-y divide-border/60",children:U.map(s=>e.jsx(j,{tx:s},s._id))}),k&&e.jsx("div",{className:"border-t border-border px-4 py-3 text-center",children:e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:I,disabled:E,progress:E&&C>1,children:r("credits.loadMore")})})]})]}),$&&m&&e.jsx(f,{open:q,onOpenChange:J,packages:v,billingCurrency:i.billingCurrency,workspaceName:i.name,onSelectPackage:async e=>{if(n){K(null),H(e._id);try{const{successUrl:s,cancelUrl:a}=t.createCreditPurchaseRedirectUrls(n),i=await R({creditPackageId:e._id,successUrl:s,cancelUrl:a});i.url&&t.safeRedirect(i.url)}catch(e){K(e instanceof Error?e.message:r("errors.purchaseCredits")),H(null)}}},purchasingPackageId:z,loading:B})]})};function j({tx:s}){const{t:a,formattingLocale:i,fmtNum:n}=t.useTranslation(),r=S[s.type]??"credits.type.consumed",o=function(e){switch(e){case"plan_grant":case"admin_grant":case"refund":return"bg-success/15 text-success";case"pack_purchased":return"bg-info/15 text-info";case"consumed":default:return"bg-muted text-foreground";case"expired":case"admin_revoke":return"bg-destructive/15 text-destructive"}}(s.type),c=s.amount>0;return e.jsx("div",{className:"px-3 py-3 sm:px-4",children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 mb-0.5",children:[e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium shrink-0",o),children:a(r)}),s.description&&e.jsx("p",{className:"text-sm text-foreground truncate",children:s.description})]}),e.jsx("p",{className:"text-xs text-muted-foreground/70",children:t.formatDateTime(s.createdAt,i)})]}),e.jsxs("div",{className:"text-end shrink-0",children:[e.jsxs("span",{className:t.cn("text-sm font-semibold",c?"text-success":"text-foreground"),children:[c?"+":"",n(s.amount)]}),e.jsx("p",{className:"text-xs text-muted-foreground/70",children:n(s.balanceAfter)})]})]})})}const N=({workspace:i})=>{const[n,r]=a.useState(!1),{deleteWorkspace:o}=t.useSaaSWorkspaces(),{can:c}=t.usePermissions(),{settings:l}=t.useSaaSSettings(),{t:d}=t.useTranslation();if(1===(l?.workspace?.maxWorkspacesPerUser??0))return null;if(!i)return e.jsx(h,{});return c(t.Permission.WORKSPACE_DELETE)?e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:d("danger.title"),titleClassName:"text-destructive",description:d("danger.deleteDescription")}),e.jsxs(t.AlertDialog,{children:[e.jsx(t.AlertDialogTrigger,{asChild:!0,children:e.jsxs(t.Button,{variant:"destructive",disabled:n,progress:n,children:[e.jsx(s.Trash2,{className:"h-4 w-4 me-2"}),d("danger.deleteWorkspace")]})}),e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:d("danger.deleteConfirm")}),e.jsx(t.AlertDialogDescription,{children:d("danger.deleteConfirmDescription")})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:n,children:d("settings.common.cancel")}),e.jsx(t.AlertDialogAction,{onClick:async()=>{r(!0);try{await o(i._id)}catch(e){t.handleError(e,{component:"WorkspaceSettingsDanger",action:"handleDeleteWorkspace",metadata:{workspaceId:i._id}})}finally{r(!1)}},disabled:n,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:n?e.jsxs(e.Fragment,{children:[e.jsx(s.Loader2,{className:"me-2 h-4 w-4 animate-spin"}),d("danger.deleting")]}):d("danger.deleteWorkspace")})]})]})]})]}):e.jsx(b,{descriptionKey:"danger.adminOnly"})},A=()=>{const{visible:s}=t.useUIVisibility(),a=s(e=>e.settings?.devices?.sessions);return e.jsxs("div",{className:"space-y-8",children:[e.jsx(t.Devices,{title:null}),a&&e.jsx(t.Sessions,{})]})},y=m.forwardRef(({className:s,...a},i)=>e.jsx(p.Root,{className:t.cn("peer inline-flex h-[20px] w-[36px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",s),...a,ref:i,children:e.jsx(p.Thumb,{className:t.cn("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 rtl:data-[state=checked]:-translate-x-4 data-[state=unchecked]:translate-x-0")})}));function C(e=5e3){const[s,t]=a.useState(null),i=a.useRef(null);a.useEffect(()=>()=>{i.current&&clearTimeout(i.current)},[]);return{message:s,show:a.useCallback(s=>{t(s),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{t(null)},e)},[e]),clear:a.useCallback(()=>{t(null),i.current&&clearTimeout(i.current)},[])}}y.displayName=p.Root.displayName;const T=({workspaceId:i})=>{const{t:n}=t.useTranslation(),{allFeatures:r,updateFeature:o,getWorkspace:c}=t.useSaaSWorkspaces(),{can:l}=t.usePermissions(),[d,u]=a.useState({}),m=C(),[p,x]=a.useState(null);if(a.useEffect(()=>{c(i).then(x).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsFeatures",action:"getWorkspace"})})},[i]),!p)return e.jsx(h,{});const g=l(t.Permission.WORKSPACE_FEATURES_EDIT);return e.jsxs("div",{children:[m.message&&e.jsx(t.StatusBanner,{variant:"success",title:n("settings.common.success"),message:m.message,className:"mb-4"}),e.jsxs("div",{className:"flex flex-col gap-y-3.5 pe-4",children:[!g&&e.jsx(b,{descriptionKey:"features.ownerOnly"}),!r.length&&e.jsx(t.EmptyState,{icon:e.jsx(s.ToggleRight,{className:"h-5 w-5 text-muted-foreground"}),description:n("features.noFeatures")}),r.length>0&&e.jsx("div",{className:"flex flex-col gap-y-3.5",children:r.map(a=>{const i=p?.features?.[a.slug],c=null!==d[a.slug]&&void 0!==d[a.slug],l=d[a.slug],f=n("features.actionStatus",{action:!0===l?"enabling":!1===l?"disabling":"none"});return e.jsxs("div",{className:"flex items-center gap-x-2 justify-between w-full",children:[e.jsxs("div",{className:"flex gap-x-2 flex-col",children:[e.jsx("h3",{className:"font-medium text-ellipsis",children:a.name}),e.jsx("p",{className:"text-muted-foreground",children:a.description})]}),c?e.jsxs("div",{className:"flex items-center gap-x-1",children:[e.jsx(s.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[f,"..."]})]}):e.jsx(y,{disabled:!g,checked:i??a.defaultValue,onCheckedChange:e=>async function(e,s){if(p){u(a=>({...a,[e]:s})),m.clear();try{const a=await o(p._id,e,s);x(a);const t=r.find(s=>s.slug===e),i=t?.name||n("features.fallbackName");m.show(n("features.updateSuccess",{feature:i,enabled:String(s)}))}catch(s){t.handleError(s,{component:"WorkspaceSettingsFeatures",action:"updateFeature",metadata:{workspaceId:p._id,featureKey:e}})}finally{u(s=>({...s,[e]:null}))}}}(a.slug,e)})]},a._id)})})]})]})},w=({workspace:i})=>{const{t:c}=t.useTranslation(),{visible:l}=t.useUIVisibility(),d=l(e=>e.settings?.general?.nameEdit),u=l(e=>e.settings?.general?.iconEditor),{updateWorkspace:m}=t.useSaaSWorkspaces(),{can:p}=t.usePermissions(),[x,g]=a.useState(!1),[f,S]=a.useState("emoji"),[v,j]=a.useState(),N=t.useUpload("workspace-image"),A=a.useRef(null),y=C(),T=o.z.object({name:o.z.string().min(2,{message:c("general.nameMinLength")}),image:o.z.string().optional()}),w=r.useForm({resolver:n.zodResolver(T),defaultValues:{name:i.name||"",image:i.image||""}});if(!i)return e.jsx(h,{});const k=p(t.Permission.WORKSPACE_SETTINGS_EDIT),E="upload"!==f||N.enabled?f:"emoji";return e.jsxs("div",{children:[y.message&&e.jsx(t.StatusBanner,{variant:"success",title:c("settings.common.success"),message:y.message,className:"mb-4"}),!k&&e.jsx(b,{descriptionKey:"general.ownerOnly"}),e.jsx(t.Form,{...w,children:e.jsxs("form",{onSubmit:w.handleSubmit(async function(e){g(!0),y.clear();try{await m(i,e),y.show(c("general.success"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsGeneral",action:"updateWorkspace",metadata:{workspaceId:i._id}})}finally{g(!1)}}),className:"space-y-6",children:[d&&e.jsx(t.FormField,{control:w.control,name:"name",render:({field:s})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:c("general.name")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{placeholder:c("general.namePlaceholder"),...s,disabled:!k})}),e.jsx(t.FormMessage,{})]})}),i.billingCurrency?.trim()&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(t.Label,{className:"text-sm font-medium text-muted-foreground",children:c("general.billingCurrency")}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[t.getCurrencyFlag(i.billingCurrency)&&e.jsx("span",{className:"text-base",children:t.getCurrencyFlag(i.billingCurrency)}),e.jsx("span",{children:i.billingCurrency.trim().toUpperCase()})]})]}),u&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(t.Label,{className:"text-sm font-medium",children:c("general.icon")}),e.jsx(t.FormDescription,{children:c("general.iconDescription")})]}),e.jsxs(t.RadioGroup,{value:E,disabled:!k||N.loading,onValueChange:e=>S(e),className:"flex flex-col space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.RadioGroupItem,{value:"emoji",id:"emoji"}),e.jsxs(t.Label,{htmlFor:"emoji",className:"flex items-center gap-2",children:[e.jsx(s.Smile,{className:"h-4 w-4"}),c("general.chooseEmoji")]})]}),N.enabled&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.RadioGroupItem,{value:"upload",id:"upload"}),e.jsxs(t.Label,{htmlFor:"upload",className:"flex items-center gap-2",children:[e.jsx(s.Upload,{className:"h-4 w-4"}),c("general.uploadImage")]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.RadioGroupItem,{value:"url",id:"url"}),e.jsxs(t.Label,{htmlFor:"url",className:"flex items-center gap-2",children:[e.jsx(s.ImageIcon,{className:"h-4 w-4"}),c("general.customImageUrl")]})]})]}),"upload"===E&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("input",{ref:A,type:"file",accept:t.UPLOAD_ACCEPT,className:"hidden",onChange:e=>{const s=e.target.files?.[0];s&&async function(e){try{const s=await N.upload(e);j(void 0),w.setValue("image",s.url,{shouldDirty:!0})}catch{}finally{A.current&&(A.current.value="")}}(s)}}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-12 h-12 rounded-lg border-2 border-border overflow-hidden bg-muted",children:w.watch("image")?.trim()&&e.jsx("img",{src:w.watch("image")||void 0,className:"w-full h-full object-cover",alt:c("general.previewImageAlt")})}),e.jsx(t.Button,{type:"button",variant:"outline",disabled:!k||N.loading,progress:N.loading,"aria-describedby":"workspace-image-upload-help",onClick:()=>A.current?.click(),children:N.loading?c("uploads.uploading"):c("general.chooseImage")})]}),e.jsx(t.FormDescription,{id:"workspace-image-upload-help",children:c("uploads.description",{max:N.maxLabel})}),N.error&&e.jsx(t.StatusBanner,{variant:"error",message:N.error})]}),"emoji"===E&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-sm font-medium",children:c("general.previewLabel")}),e.jsxs("div",{className:"w-12 h-12 rounded-lg border-2 border-border flex items-center justify-center text-2xl bg-muted",children:[v&&e.jsx("span",{className:"text-2xl",children:v}),!v&&w.watch("image")?.trim()&&e.jsx("img",{src:w.watch("image")||void 0,alt:c("general.previewImageAlt")})]})]}),k&&e.jsx(t.ScrollArea,{className:"h-32 w-full rounded-md border",children:e.jsx("div",{className:"p-4 grid grid-cols-8 gap-2",children:t.workspaceEmojis.map((s,a)=>e.jsx("button",{type:"button",onClick:()=>(e=>{j(e),w.setValue("image",t.getSvgImage(e))})(s),disabled:!k,"aria-label":s,"aria-pressed":v===s,className:"w-10 h-10 sm:w-8 sm:h-8 rounded flex items-center justify-center text-lg hover:bg-muted transition-colors "+(v===s?"bg-primary text-primary-foreground":""),children:s},a))})})]}),"url"===E&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(t.FormField,{control:w.control,name:"image",render:({field:s})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:c("general.imageUrl")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{placeholder:c("general.imageUrlPlaceholder"),...s,disabled:!k})}),e.jsx(t.FormDescription,{children:c("general.imageUrlDescription")}),e.jsx(t.FormMessage,{})]})}),w.watch("image")&&w.watch("image")?.trim()&&e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-sm font-medium",children:c("general.previewLabel")}),e.jsx("div",{className:"w-12 h-12 rounded-lg border-2 border-border overflow-hidden bg-muted",children:e.jsx("img",{src:w.watch("image")||void 0,className:"w-full h-full object-cover",alt:c("general.previewImageAlt")})})]})]})]}),e.jsx("div",{className:"flex justify-end gap-3 pt-4",children:k&&(d||u)&&e.jsx(t.Button,{type:"submit",disabled:x||N.loading,progress:x,children:c("general.updateWorkspace")})})]})})]})};function k(e,s,a){const t=e.defaults[s],i=t?.required?void 0:e.mine[s]?.[a];return"boolean"==typeof i?i:!1!==t?.[a]}const E={firefox:4,safari:4,edge:4,chrome:4},P={defaults:{},mine:{}},D=({workspace:i})=>{const{isSupported:n,permission:r,isSubscribed:o,loading:c,error:l,subscribe:d,unsubscribe:u}=t.usePushNotifications(),{t:m}=t.useTranslation(),{api:p}=t.useWorkspaceApiWithOs(),{can:x}=t.usePermissions(),{visible:g}=t.useUIVisibility(),f=x(t.Permission.WORKSPACE_SETTINGS_EDIT),b=g(e=>e.settings?.notifications?.push),h=g(e=>e.settings?.notifications?.emailToggles),S=g(e=>e.settings?.notifications?.pushToggles),v=a.useMemo(()=>function(){const e="undefined"!=typeof navigator?navigator.userAgent:"";return e.includes("Firefox")?"firefox":e.includes("Safari")&&!e.includes("Chrome")?"safari":e.includes("Edg")?"edge":"chrome"}(),[]),j=E[v],[N,A]=a.useState([]),[C,T]=a.useState(!0),[w,D]=a.useState(P),[I,U]=a.useState(!0),[R,B]=a.useState(null),[_,L]=a.useState(null),[G,K]=a.useState(null),F=a.useRef(null);a.useEffect(()=>()=>{F.current&&clearTimeout(F.current)},[]),a.useEffect(()=>{if(!i?._id)return;const e=i._id.toString();T(!0),U(!0),Promise.all([p.getNotificationEvents(e).catch(()=>[]),p.getMyNotificationPreferences(e).catch(()=>P)]).then(([e,s])=>{A(e),D(s)}).finally(()=>{T(!1),U(!1)})},[i?._id]);const O=a.useCallback(()=>{L(m("notifications.prefsSaved")),F.current&&clearTimeout(F.current),F.current=setTimeout(()=>L(null),3e3)},[m]),W=a.useCallback(async(e,s)=>{if(!i?._id)return;if(w.defaults[e]?.required)return;const a=!k(w,e,s),n=!1!==w.defaults[e]?.[s]===a?null:a,r=w;B(`mine.${e}.${s}`),L(null),K(null),D(a=>{const t={...a.mine[e]};return null===n?delete t[s]:t[s]=n,{...a,mine:{...a.mine,[e]:t}}});try{const a=await p.updateMyNotificationPreferences(i._id.toString(),{[e]:{[s]:n}});D(a),O()}catch(e){D(r),K(m("notifications.prefsSaveFailed")),t.handleError(e,{component:"SettingsNotifications",action:"toggleMine"})}finally{B(null)}},[i?._id,w,p,O,m]),V=a.useCallback(async(e,s)=>{if(!i?._id||!f)return;const a=w.defaults[e]??{},n="required"===s?!a.required:!1===a[s],r=w;B(`defaults.${e}.${s}`),L(null),K(null),D(t=>({...t,defaults:{...t.defaults,[e]:{...a,[s]:n}}}));try{const a=await p.updateNotificationPreferences(i._id.toString(),{[e]:{[s]:n}});D(e=>({...e,defaults:a})),O()}catch(e){D(r),K(m("notifications.prefsSaveFailed")),t.handleError(e,{component:"SettingsNotifications",action:"toggleDefault"})}finally{B(null)}},[i?._id,f,w,p,O,m]),z=a.useMemo(()=>{const e=new Map;for(const s of N){const a=s.category||"general";e.has(a)||e.set(a,[]),e.get(a).push(s)}return Array.from(e.entries())},[N]),H=C||I,q=N.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:m("notifications.manageDescription")}),b&&n&&e.jsxs(e.Fragment,{children:[l&&"denied"!==r&&e.jsx(t.StatusBanner,{variant:"error",message:l}),"denied"===r&&e.jsx("div",{className:"border border-warning/30 bg-warning/10 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(s.ShieldAlert,{className:"h-5 w-5 text-warning shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-warning",children:m("notifications.blocked")}),e.jsx("p",{className:"text-xs text-warning mt-1",children:m("notifications.blockedDescription")}),e.jsx("ol",{className:"text-xs text-warning mt-2 space-y-1 list-decimal list-inside",children:Array.from({length:j},(s,a)=>e.jsx("li",{children:m(`notifications.unblock.${v}.step${a+1}`)},a))})]})]})}),"denied"!==r&&e.jsxs("div",{className:"border rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5 p-2 rounded-lg "+(o?"bg-success/15":"bg-muted"),children:o?e.jsx(s.Bell,{className:"h-4 w-4 text-success"}):e.jsx(s.BellOff,{className:"h-4 w-4 text-muted-foreground/70"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:m("notifications.pushTitle")}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:m("notifications.pushDescription",{subscribed:String(o)})})]})]}),e.jsx(t.Button,{variant:o?"outline":"default",size:"sm",className:"shrink-0",onClick:o?u:d,disabled:c,progress:c,children:m("notifications.toggleAction",{loading:String(c),subscribed:String(o)})})]}),o&&e.jsx("div",{className:"mt-3 pt-3 border-t border-border/60 text-xs text-muted-foreground",children:m("notifications.deviceNote")})]})]}),H&&e.jsx("div",{className:"text-center text-sm text-muted-foreground/70 py-4",children:m("notifications.loadingPrefs")}),!H&&q&&(h||S)&&e.jsxs(e.Fragment,{children:[_&&e.jsx(t.StatusBanner,{variant:"success",message:_}),G&&e.jsx(t.StatusBanner,{variant:"error",message:G}),e.jsx(M,{title:m("notifications.yourTitle"),description:m("notifications.yourDescription"),grouped:z,showEmail:h,showPush:S,renderCell:(s,a)=>{const t=Boolean(w.defaults[s.slug]?.required);return e.jsx(y,{checked:k(w,s.slug,a),onCheckedChange:()=>W(s.slug,a),disabled:t||R===`mine.${s.slug}.${a}`,"aria-label":`${s.name}: ${a}`})},renderNote:a=>w.defaults[a.slug]?.required?e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx(s.Lock,{className:"h-3 w-3","aria-hidden":"true"}),m("notifications.requiredHint")]}):null}),f&&e.jsx(M,{title:m("notifications.defaultsTitle"),description:m("notifications.defaultsDescription"),grouped:z,showEmail:h,showPush:S,extraColumn:{header:m("notifications.requiredLabel"),render:s=>e.jsx(y,{checked:Boolean(w.defaults[s.slug]?.required),onCheckedChange:()=>V(s.slug,"required"),disabled:R===`defaults.${s.slug}.required`,"aria-label":`${s.name}: ${m("notifications.requiredLabel")}`})},renderCell:(s,a)=>e.jsx(y,{checked:!1!==w.defaults[s.slug]?.[a],onCheckedChange:()=>V(s.slug,a),disabled:R===`defaults.${s.slug}.${a}`,"aria-label":`${s.name}: ${a}`})})]})]})};function M({title:a,description:t,grouped:i,showEmail:n,showPush:r,renderCell:o,renderNote:c,extraColumn:l}){return e.jsxs("section",{className:"space-y-2",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium text-foreground",children:a}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:t})]}),i.map(([a,t])=>e.jsxs("div",{className:"border rounded-lg overflow-hidden",children:[e.jsx("div",{className:"bg-muted/50 px-4 py-2.5 border-b",children:e.jsx("h4",{className:"text-sm font-medium text-foreground capitalize",children:a})}),e.jsxs("div",{className:"divide-y",children:[e.jsxs("div",{className:"flex items-center px-4 py-2 bg-muted/30",children:[e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center gap-6",children:[n&&e.jsx("div",{className:"w-12 flex justify-center",children:e.jsx(s.Mail,{className:"h-3.5 w-3.5 text-muted-foreground/70","aria-hidden":"true"})}),r&&e.jsx("div",{className:"w-12 flex justify-center",children:e.jsx(s.Smartphone,{className:"h-3.5 w-3.5 text-muted-foreground/70","aria-hidden":"true"})}),l&&e.jsx("div",{className:"w-16 text-center text-xs text-muted-foreground",children:l.header})]})]}),t.map(s=>e.jsxs("div",{className:"flex items-center px-4 py-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:s.name}),s.description&&e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:s.description}),c?.(s)]}),e.jsxs("div",{className:"flex items-center gap-6 shrink-0",children:[n&&e.jsx("div",{className:"w-12 flex justify-center",children:s.channels.email?o(s,"email"):e.jsx("span",{className:"text-xs text-muted-foreground/50",children:"-"})}),r&&e.jsx("div",{className:"w-12 flex justify-center",children:s.channels.push?o(s,"push"):e.jsx("span",{className:"text-xs text-muted-foreground/50",children:"-"})}),l&&e.jsx("div",{className:"w-16 flex justify-center",children:l.render(s)})]})]},s.slug))]})]},a))]})}const I=({workspace:s})=>{const{t:i}=t.useTranslation(),{isOwner:n}=t.usePermissions(),{settings:r}=t.useSaaSSettings(),{appPermissions:o}=t.usePermissionConfig(),{updateWorkspacePermissions:c}=t.useSaaSWorkspaces(),[l,d]=a.useState(!1),u=C(),m=a.useMemo(()=>r?.workspace?.roles??s.roles??[],[r?.workspace?.roles,s.roles]),p=a.useMemo(()=>t.appPermissionCatalogue(r,o),[r,o]),x=a.useMemo(()=>e=>t.resolveRolePermissions(e,{workspace:s,settings:r,appPermissions:o},{applyRestrictions:!1}),[s,r,o]),[g,f]=a.useState({});a.useEffect(()=>{const e={};for(const s of m)e[s]=[...x(s)].filter(e=>!e.startsWith("workspace:"));f(e)},[x,m]);const S=a.useMemo(()=>{const e=new Map;for(const s of p){const a=s.group??"";e.set(a,[...e.get(a)??[],s])}return[...e.entries()]},[p]);if(!s)return e.jsx(h,{});if(0===p.length)return null;return e.jsxs("div",{children:[u.message&&e.jsx(t.StatusBanner,{variant:"success",title:i("settings.common.success"),message:u.message,className:"mb-4"}),!n&&e.jsx(b,{descriptionKey:"permissions.ownerOnly"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:i("permissions.description")}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"text-start py-2 pe-4 font-medium text-muted-foreground min-w-[160px]"}),m.map(s=>e.jsx("th",{className:"text-center py-2 px-3 font-medium text-foreground capitalize min-w-[80px]",children:s},s))]})}),e.jsx("tbody",{children:S.map(([s,t])=>e.jsxs(a.Fragment,{children:[S.length>1&&s&&e.jsx("tr",{children:e.jsx("td",{colSpan:m.length+1,className:"pt-4 pb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:s})}),t.map(({key:s,label:a})=>e.jsxs("tr",{className:"border-b border-border/40 hover:bg-muted/30",children:[e.jsxs("td",{className:"py-2 pe-4 text-foreground",children:[e.jsx("div",{children:a}),a!==s&&e.jsx("div",{className:"font-mono text-xs opacity-60",children:s})]}),m.map(t=>{const i="admin"===t,r=i||(g[t]??[]).includes(s);return e.jsx("td",{className:"text-center py-2 px-3",children:e.jsx(y,{checked:r,disabled:!n||i,onCheckedChange:()=>((e,s)=>{f(a=>{const t=a[e]??[],i=t.includes(s);return{...a,[e]:i?t.filter(e=>e!==s):[...t,s]}})})(t,s),className:"mx-auto","aria-label":`${a}: ${t}`})},t)})]},s))]},s||"_"))})]})}),n&&e.jsx("div",{className:"mt-6",children:e.jsx(t.Button,{onClick:async()=>{d(!0),u.clear();try{const e={};for(const s of m){const a=[...x(s)].filter(e=>e.startsWith("workspace:"));e[s]=[...a,...g[s]??[]]}await c(s._id,e),u.show(i("permissions.saveSuccess"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsPermissions",action:"savePermissions",metadata:{workspaceId:s._id}})}finally{d(!1)}},disabled:l,progress:l,children:i(l?"permissions.saving":"permissions.save")})})]})},U=m.forwardRef(({className:s,...a},i)=>e.jsx(l.Command,{ref:i,className:t.cn("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",s),...a}));U.displayName=l.Command.displayName;const R=m.forwardRef(({className:s,...a},i)=>e.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[e.jsx(c.MagnifyingGlassIcon,{className:"me-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(l.Command.Input,{ref:i,className:t.cn("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",s),...a})]}));R.displayName=l.Command.Input.displayName;const B=m.forwardRef(({className:s,...a},i)=>e.jsx(l.Command.List,{ref:i,className:t.cn("max-h-[300px] overflow-y-auto overflow-x-hidden",s),...a}));B.displayName=l.Command.List.displayName;const _=m.forwardRef((s,a)=>e.jsx(l.Command.Empty,{ref:a,className:"py-6 text-center text-sm",...s}));_.displayName=l.Command.Empty.displayName;const L=m.forwardRef(({className:s,...a},i)=>e.jsx(l.Command.Group,{ref:i,className:t.cn("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",s),...a}));L.displayName=l.Command.Group.displayName;m.forwardRef(({className:s,...a},i)=>e.jsx(l.Command.Separator,{ref:i,className:t.cn("-mx-1 h-px bg-border",s),...a})).displayName=l.Command.Separator.displayName;const G=m.forwardRef(({className:s,...a},i)=>e.jsx(l.Command.Item,{ref:i,className:t.cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",s),...a}));function K({options:i,value:n,onChange:r,placeholder:o,emptyLabel:c}){const{t:l}=t.useTranslation(),d=o??l("dropdowns.search"),u=c??l("dropdowns.chooseOption"),[m,p]=a.useState(n??""),[x,g]=a.useState(!1);a.useEffect(()=>{void 0!==n&&p(n)},[n]);const f=i.find(e=>e.value===m);return e.jsxs(t.Popover,{open:x,onOpenChange:g,children:[e.jsx(t.PopoverTrigger,{asChild:!0,children:e.jsxs(t.Button,{variant:"outline",role:"combobox","aria-expanded":x,className:"h-10 sm:h-9 w-full justify-between rounded-md border-input bg-transparent px-3 py-1 text-base sm:text-sm font-normal shadow-sm hover:bg-transparent",children:[f?e.jsxs("div",{className:"truncate",children:[String(f.label).trim(),f.icon&&e.jsx("span",{className:"ms-2 text-xs text-muted-foreground",children:f.icon})]}):e.jsx("span",{className:"text-muted-foreground",children:u}),e.jsx(s.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),e.jsx(t.PopoverContent,{className:"p-0 overflow-hidden text-ellipsis",asChild:!0,children:e.jsxs(U,{children:[e.jsx(R,{placeholder:d}),e.jsxs(B,{children:[e.jsx(_,{children:l("dropdowns.noResults")}),e.jsx(L,{children:i.map(a=>e.jsxs(G,{className:t.cn("whitespace-nowrap text-start",{"text-success":m===a.value}),value:a.value,keywords:[a.label],onSelect:()=>{return e=a.value,p(e),r?.(e),void g(!1);var e},children:[m===a.value&&e.jsx(s.CheckCheck,{className:t.cn("me-2 h-4 w-4 text-success",m===a.value?"opacity-100":"opacity-0")}),String(a.label).trim(),a.icon&&e.jsx("span",{className:"ms-2 text-xs text-muted-foreground",children:a.icon})]},a.value))})]})]})})]})}G.displayName=l.Command.Item.displayName;const F={USD:"$",EUR:"€",JPY:"¥",GBP:"£",AUD:"A$",CAD:"C$",CHF:"CHF",CNY:"¥",SEK:"kr",NZD:"NZ$",INR:"₹",RUB:"₽",KRW:"₩",BRL:"R$",ZAR:"R",HKD:"HK$",SGD:"S$",MXN:"Mex$",NOK:"kr",TRY:"₺",IDR:"Rp",PLN:"zł",THB:"฿",ILS:"₪",PHP:"₱",MYR:"RM",CZK:"Kč",HUF:"Ft",DKK:"kr",PKR:"₨",EGP:"£",NGN:"₦",BDT:"৳",UAH:"₴",KZT:"₸",VND:"₫",ARS:"$",BGN:"лв",COP:"COL$",HRK:"kn",ISK:"kr",KES:"KSh",LKR:"Rs",MAD:"د.م.",MNT:"₮",NPR:"रू",RSD:"дин.",SAR:"ر.س",TWD:"NT$",UYU:"$U",YER:"﷼",FJD:"FJ$",JMD:"J$",HTG:"G",BHD:"ب.د",KWD:"د.ك",OMR:"ر.ع.",BND:"B$",KPW:"₩",GHS:"₵",SYP:"ل.س",SLL:"Le",SSP:"£",AFN:"؋",MGA:"Ar",MDL:"lei",FOK:"kr",GMD:"D",LTL:"Lt",LVL:"Ls",HNL:"L",GEL:"₾",BMD:"$",AWG:"Afl",BTN:"Nu",GTQ:"Q",TZS:"TSh",BBD:"Bds$",NAD:"N$",BZD:"$",JEP:"£",WST:"T",PGK:"K",KGS:"лв",AZN:"₼",QAR:"ر.ق",XOF:"CFA",XPF:"CFP"},O={AF:"AFN",AX:"EUR",AL:"ALL",DZ:"DZD",AS:"USD",AD:"EUR",AO:"AOA",AI:"XCD",AQ:"USD",AG:"XCD",AR:"ARS",AM:"AMD",AW:"AWG",AU:"AUD",AT:"EUR",AZ:"AZN",BS:"BSD",BH:"BHD",BD:"BDT",BB:"BBD",BY:"BYN",BE:"EUR",BZ:"BZD",BJ:"XOF",BM:"BMD",BT:"BTN",BO:"BOB",BA:"BAM",BW:"BWP",BV:"NOK",BR:"BRL",IO:"USD",BN:"BND",BG:"BGN",BF:"XOF",BI:"BIF",KH:"KHR",CM:"XAF",CA:"CAD",CV:"CVE",KY:"KYD",CF:"XAF",TD:"XAF",CL:"CLP",CN:"CNY",CX:"AUD",CC:"AUD",CO:"COP",KM:"KMF",CG:"XAF",CD:"CDF",CK:"NZD",CR:"CRC",CI:"XOF",HR:"HRK",CU:"CUP",CY:"EUR",CZ:"CZK",DK:"DKK",DJ:"DJF",DM:"XCD",DO:"DOP",EC:"USD",EG:"EGP",SV:"USD",GQ:"XAF",ER:"ERN",EE:"EUR",ET:"ETB",FK:"FKP",FO:"DKK",FJ:"FJD",FI:"EUR",FR:"EUR",GF:"EUR",PF:"XPF",TF:"EUR",GA:"XAF",GM:"GMD",GE:"GEL",DE:"EUR",GH:"GHS",GI:"GIP",GR:"EUR",GL:"DKK",GD:"XCD",GP:"EUR",GU:"USD",GT:"GTQ",GG:"GBP",GN:"GNF",GW:"XOF",GY:"GYD",HT:"HTG",HM:"AUD",VA:"EUR",HN:"HNL",HK:"HKD",HU:"HUF",IS:"ISK",IN:"INR",ID:"IDR",IR:"IRR",IQ:"IQD",IE:"EUR",IM:"GBP",IL:"ILS",IT:"EUR",JM:"JMD",JP:"JPY",JE:"GBP",JO:"JOD",KZ:"KZT",KE:"KES",KI:"AUD",KP:"KPW",KR:"KRW",KW:"KWD",KG:"KGS",LA:"LAK",LV:"EUR",LB:"LBP",LS:"LSL",LR:"LRD",LY:"LYD",LI:"CHF",LT:"EUR",LU:"EUR",MO:"MOP",MK:"MKD",MG:"MGA",MW:"MWK",MY:"MYR",MV:"MVR",ML:"XOF",MT:"EUR",MH:"USD",MQ:"EUR",MR:"MRU",MU:"MUR",YT:"EUR",MX:"MXN",FM:"USD",MD:"MDL",MC:"EUR",MN:"MNT",ME:"EUR",MS:"XCD",MA:"MAD",MZ:"MZN",MM:"MMK",NA:"NAD",NR:"AUD",NP:"NPR",NL:"EUR",AN:"ANG",NC:"XPF",NZ:"NZD",NI:"NIO",NE:"XOF",NG:"NGN",NU:"NZD",NF:"AUD",MP:"USD",NO:"NOK",OM:"OMR",PK:"PKR",PW:"USD",PS:"ILS",PA:"PAB",PG:"PGK",PY:"PYG",PE:"PEN",PH:"PHP",PN:"NZD",PL:"PLN",PT:"EUR",PR:"USD",QA:"QAR",RE:"EUR",RO:"RON",RU:"RUB",RW:"RWF",SH:"SHP",KN:"XCD",LC:"XCD",PM:"EUR",VC:"XCD",WS:"WST",SM:"EUR",ST:"STN",SA:"SAR",SN:"XOF",RS:"RSD",SC:"SCR",SL:"SLL",SG:"SGD",SK:"EUR",SI:"EUR",SB:"SBD",SO:"SOS",ZA:"ZAR",GS:"GBP",ES:"EUR",LK:"LKR",SD:"SDG",SR:"SRD",SJ:"NOK",SZ:"SZL",SE:"SEK",CH:"CHF",SY:"SYP",TW:"TWD",TJ:"TJS",TZ:"TZS",TH:"THB"},W=[{name:"Afghanistan",code:"AF"},{name:"land Islands",code:"AX"},{name:"Albania",code:"AL"},{name:"Algeria",code:"DZ"},{name:"American Samoa",code:"AS"},{name:"AndorrA",code:"AD"},{name:"Angola",code:"AO"},{name:"Anguilla",code:"AI"},{name:"Antarctica",code:"AQ"},{name:"Antigua and Barbuda",code:"AG"},{name:"Argentina",code:"AR"},{name:"Armenia",code:"AM"},{name:"Aruba",code:"AW"},{name:"Australia",code:"AU"},{name:"Austria",code:"AT"},{name:"Azerbaijan",code:"AZ"},{name:"Bahamas",code:"BS"},{name:"Bahrain",code:"BH"},{name:"Bangladesh",code:"BD"},{name:"Barbados",code:"BB"},{name:"Belarus",code:"BY"},{name:"Belgium",code:"BE"},{name:"Belize",code:"BZ"},{name:"Benin",code:"BJ"},{name:"Bermuda",code:"BM"},{name:"Bhutan",code:"BT"},{name:"Bolivia",code:"BO"},{name:"Bosnia and Herzegovina",code:"BA"},{name:"Botswana",code:"BW"},{name:"Bouvet Island",code:"BV"},{name:"Brazil",code:"BR"},{name:"British Indian Ocean Territory",code:"IO"},{name:"Brunei Darussalam",code:"BN"},{name:"Bulgaria",code:"BG"},{name:"Burkina Faso",code:"BF"},{name:"Burundi",code:"BI"},{name:"Cambodia",code:"KH"},{name:"Cameroon",code:"CM"},{name:"Canada",code:"CA"},{name:"Cape Verde",code:"CV"},{name:"Cayman Islands",code:"KY"},{name:"Central African Republic",code:"CF"},{name:"Chad",code:"TD"},{name:"Chile",code:"CL"},{name:"China",code:"CN"},{name:"Christmas Island",code:"CX"},{name:"Cocos (Keeling) Islands",code:"CC"},{name:"Colombia",code:"CO"},{name:"Comoros",code:"KM"},{name:"Congo",code:"CG"},{name:"Congo, The Democratic Republic of the",code:"CD"},{name:"Cook Islands",code:"CK"},{name:"Costa Rica",code:"CR"},{name:"Cote D Ivoire",code:"CI"},{name:"Croatia",code:"HR"},{name:"Cuba",code:"CU"},{name:"Cyprus",code:"CY"},{name:"Czech Republic",code:"CZ"},{name:"Denmark",code:"DK"},{name:"Djibouti",code:"DJ"},{name:"Dominica",code:"DM"},{name:"Dominican Republic",code:"DO"},{name:"Ecuador",code:"EC"},{name:"Egypt",code:"EG"},{name:"El Salvador",code:"SV"},{name:"Equatorial Guinea",code:"GQ"},{name:"Eritrea",code:"ER"},{name:"Estonia",code:"EE"},{name:"Ethiopia",code:"ET"},{name:"Falkland Islands (Malvinas)",code:"FK"},{name:"Faroe Islands",code:"FO"},{name:"Fiji",code:"FJ"},{name:"Finland",code:"FI"},{name:"France",code:"FR"},{name:"French Guiana",code:"GF"},{name:"French Polynesia",code:"PF"},{name:"French Southern Territories",code:"TF"},{name:"Gabon",code:"GA"},{name:"Gambia",code:"GM"},{name:"Georgia",code:"GE"},{name:"Germany",code:"DE"},{name:"Ghana",code:"GH"},{name:"Gibraltar",code:"GI"},{name:"Greece",code:"GR"},{name:"Greenland",code:"GL"},{name:"Grenada",code:"GD"},{name:"Guadeloupe",code:"GP"},{name:"Guam",code:"GU"},{name:"Guatemala",code:"GT"},{name:"Guernsey",code:"GG"},{name:"Guinea",code:"GN"},{name:"Guinea-Bissau",code:"GW"},{name:"Guyana",code:"GY"},{name:"Haiti",code:"HT"},{name:"Heard Island and Mcdonald Islands",code:"HM"},{name:"Holy See (Vatican City State)",code:"VA"},{name:"Honduras",code:"HN"},{name:"Hong Kong",code:"HK"},{name:"Hungary",code:"HU"},{name:"Iceland",code:"IS"},{name:"India",code:"IN"},{name:"Indonesia",code:"ID"},{name:"Iran, Islamic Republic Of",code:"IR"},{name:"Iraq",code:"IQ"},{name:"Ireland",code:"IE"},{name:"Isle of Man",code:"IM"},{name:"Israel",code:"IL"},{name:"Italy",code:"IT"},{name:"Jamaica",code:"JM"},{name:"Japan",code:"JP"},{name:"Jersey",code:"JE"},{name:"Jordan",code:"JO"},{name:"Kazakhstan",code:"KZ"},{name:"Kenya",code:"KE"},{name:"Kiribati",code:"KI"},{name:'Korea, Democratic People"S Republic of',code:"KP"},{name:"Korea, Republic of",code:"KR"},{name:"Kuwait",code:"KW"},{name:"Kyrgyzstan",code:"KG"},{name:'Lao People"S Democratic Republic',code:"LA"},{name:"Latvia",code:"LV"},{name:"Lebanon",code:"LB"},{name:"Lesotho",code:"LS"},{name:"Liberia",code:"LR"},{name:"Libyan Arab Jamahiriya",code:"LY"},{name:"Liechtenstein",code:"LI"},{name:"Lithuania",code:"LT"},{name:"Luxembourg",code:"LU"},{name:"Macao",code:"MO"},{name:"Macedonia, The Former Yugoslav Republic of",code:"MK"},{name:"Madagascar",code:"MG"},{name:"Malawi",code:"MW"},{name:"Malaysia",code:"MY"},{name:"Maldives",code:"MV"},{name:"Mali",code:"ML"},{name:"Malta",code:"MT"},{name:"Marshall Islands",code:"MH"},{name:"Martinique",code:"MQ"},{name:"Mauritania",code:"MR"},{name:"Mauritius",code:"MU"},{name:"Mayotte",code:"YT"},{name:"Mexico",code:"MX"},{name:"Micronesia, Federated States of",code:"FM"},{name:"Moldova, Republic of",code:"MD"},{name:"Monaco",code:"MC"},{name:"Mongolia",code:"MN"},{name:"Montenegro",code:"ME"},{name:"Montserrat",code:"MS"},{name:"Morocco",code:"MA"},{name:"Mozambique",code:"MZ"},{name:"Myanmar",code:"MM"},{name:"Namibia",code:"NA"},{name:"Nauru",code:"NR"},{name:"Nepal",code:"NP"},{name:"Netherlands",code:"NL"},{name:"Netherlands Antilles",code:"AN"},{name:"New Caledonia",code:"NC"},{name:"New Zealand",code:"NZ"},{name:"Nicaragua",code:"NI"},{name:"Niger",code:"NE"},{name:"Nigeria",code:"NG"},{name:"Niue",code:"NU"},{name:"Norfolk Island",code:"NF"},{name:"Northern Mariana Islands",code:"MP"},{name:"Norway",code:"NO"},{name:"Oman",code:"OM"},{name:"Pakistan",code:"PK"},{name:"Palau",code:"PW"},{name:"Palestinian Territory, Occupied",code:"PS"},{name:"Panama",code:"PA"},{name:"Papua New Guinea",code:"PG"},{name:"Paraguay",code:"PY"},{name:"Peru",code:"PE"},{name:"Philippines",code:"PH"},{name:"Pitcairn",code:"PN"},{name:"Poland",code:"PL"},{name:"Portugal",code:"PT"},{name:"Puerto Rico",code:"PR"},{name:"Qatar",code:"QA"},{name:"Reunion",code:"RE"},{name:"Romania",code:"RO"},{name:"Russian Federation",code:"RU"},{name:"RWANDA",code:"RW"},{name:"Saint Helena",code:"SH"},{name:"Saint Kitts and Nevis",code:"KN"},{name:"Saint Lucia",code:"LC"},{name:"Saint Pierre and Miquelon",code:"PM"},{name:"Saint Vincent and the Grenadines",code:"VC"},{name:"Samoa",code:"WS"},{name:"San Marino",code:"SM"},{name:"Sao Tome and Principe",code:"ST"},{name:"Saudi Arabia",code:"SA"},{name:"Senegal",code:"SN"},{name:"Serbia",code:"RS"},{name:"Seychelles",code:"SC"},{name:"Sierra Leone",code:"SL"},{name:"Singapore",code:"SG"},{name:"Slovakia",code:"SK"},{name:"Slovenia",code:"SI"},{name:"Solomon Islands",code:"SB"},{name:"Somalia",code:"SO"},{name:"South Africa",code:"ZA"},{name:"South Georgia and the South Sandwich Islands",code:"GS"},{name:"Spain",code:"ES"},{name:"Sri Lanka",code:"LK"},{name:"Sudan",code:"SD"},{name:"Suriname",code:"SR"},{name:"Svalbard and Jan Mayen",code:"SJ"},{name:"Swaziland",code:"SZ"},{name:"Sweden",code:"SE"},{name:"Switzerland",code:"CH"},{name:"Syrian Arab Republic",code:"SY"},{name:"Taiwan, Province of China",code:"TW"},{name:"Tajikistan",code:"TJ"},{name:"Tanzania, United Republic of",code:"TZ"},{name:"Thailand",code:"TH"},{name:"Timor-Leste",code:"TL"},{name:"Togo",code:"TG"},{name:"Tokelau",code:"TK"},{name:"Tonga",code:"TO"},{name:"Trinidad and Tobago",code:"TT"},{name:"Tunisia",code:"TN"},{name:"Turkey",code:"TR"},{name:"Turkmenistan",code:"TM"},{name:"Turks and Caicos Islands",code:"TC"},{name:"Tuvalu",code:"TV"},{name:"Uganda",code:"UG"},{name:"Ukraine",code:"UA"},{name:"United Arab Emirates",code:"AE"},{name:"United Kingdom",code:"GB"},{name:"United States",code:"US"},{name:"United States Minor Outlying Islands",code:"UM"},{name:"Uruguay",code:"UY"},{name:"Uzbekistan",code:"UZ"},{name:"Vanuatu",code:"VU"},{name:"Venezuela",code:"VE"},{name:"Viet Nam",code:"VN"},{name:"Virgin Islands, British",code:"VG"},{name:"Virgin Islands, U.S.",code:"VI"},{name:"Wallis and Futuna",code:"WF"},{name:"Western Sahara",code:"EH"},{name:"Yemen",code:"YE"},{name:"Zambia",code:"ZM"},{name:"Zimbabwe",code:"ZW"}].map(e=>{const s=O[e.code]||"USD",a=F[s]||"";return{value:e.code,flag:(t=e.code,t.toUpperCase().replace(/./g,e=>String.fromCodePoint(127397+e.charCodeAt(0)))),text:e.name,currencyCode:s,currencyIcon:a};var t});function V({value:s,onChange:a}){const{t:i}=t.useTranslation(),n=W.map(e=>({value:e.value,label:e.text,icon:e.flag}));return e.jsx(K,{options:n,value:s,onChange:a,placeholder:i("dropdowns.searchCountry"),emptyLabel:i("dropdowns.chooseCountry")})}const z=W.map(e=>({value:e.currencyCode,text:e.currencyCode,icon:e.currencyIcon??null})),H=Array.from(new Set(z.map(e=>e.value))).map(e=>z.find(s=>s.value===e)).filter(e=>void 0!==e);function q({value:s,onChange:a}){const{t:i}=t.useTranslation(),n=H.map(e=>({value:e.value,label:e.text,icon:e.icon??void 0}));return e.jsx(K,{options:n,value:s,onChange:a,placeholder:i("dropdowns.searchCurrency"),emptyLabel:i("dropdowns.chooseCurrency")})}let J=[{code:"en",label:"English",flag:"🇬🇧"},{code:"en-GB",label:"English (United Kingdom)",flag:"🇬🇧"},{code:"en-US",label:"English (United States)",flag:"🇺🇸"},{code:"en-AU",label:"English (Australia)",flag:"🇦🇺"},{code:"en-CA",label:"English (Canada)",flag:"🇨🇦"},{code:"en-NZ",label:"English (New Zealand)",flag:"🇳🇿"},{code:"es",label:"Spanish",flag:"🇪🇸"},{code:"es-ES",label:"Spanish (Spain)",flag:"🇪🇸"},{code:"es-MX",label:"Spanish (Mexico)",flag:"🇲🇽"},{code:"fr",label:"French",flag:"🇫🇷"},{code:"fr-FR",label:"French (France)",flag:"🇫🇷"},{code:"de",label:"German",flag:"🇩🇪"},{code:"de-DE",label:"German (Germany)",flag:"🇩🇪"},{code:"it",label:"Italian",flag:"🇮🇹"},{code:"it-IT",label:"Italian (Italy)",flag:"🇮🇹"},{code:"pt",label:"Portuguese",flag:"🇵🇹"},{code:"pt-PT",label:"Portuguese (Portugal)",flag:"🇵🇹"},{code:"pt-BR",label:"Portuguese (Brazil)",flag:"🇧🇷"},{code:"ru",label:"Russian",flag:"🇷🇺"},{code:"ru-RU",label:"Russian (Russia)",flag:"🇷🇺"},{code:"zh",label:"Chinese",flag:"🇨🇳"},{code:"zh-CN",label:"Chinese (Simplified)",flag:"🇨🇳"},{code:"zh-TW",label:"Chinese (Traditional)",flag:"🇹🇼"},{code:"ja",label:"Japanese",flag:"🇯🇵"},{code:"ja-JP",label:"Japanese (Japan)",flag:"🇯🇵"},{code:"ko",label:"Korean",flag:"🇰🇷"},{code:"ko-KR",label:"Korean (South Korea)",flag:"🇰🇷"},{code:"ar",label:"Arabic",flag:"🇸🇦"},{code:"ar-SA",label:"Arabic (Saudi Arabia)",flag:"🇸🇦"},{code:"hi",label:"Hindi",flag:"🇮🇳"},{code:"hi-IN",label:"Hindi (India)",flag:"🇮🇳"},{code:"bn",label:"Bengali",flag:"🇮🇳"},{code:"bn-IN",label:"Bengali (India)",flag:"🇮🇳"},{code:"gu",label:"Gujarati",flag:"🇮🇳"},{code:"gu-IN",label:"Gujarati (India)",flag:"🇮🇳"},{code:"ta",label:"Tamil",flag:"🇮🇳"},{code:"ta-IN",label:"Tamil (India)",flag:"🇮🇳"},{code:"te",label:"Telugu",flag:"🇮🇳"},{code:"te-IN",label:"Telugu (India)",flag:"🇮🇳"},{code:"ml",label:"Malayalam",flag:"🇮🇳"},{code:"ml-IN",label:"Malayalam (India)",flag:"🇮🇳"},{code:"kn",label:"Kannada",flag:"🇮🇳"},{code:"kn-IN",label:"Kannada (India)",flag:"🇮🇳"},{code:"mr",label:"Marathi",flag:"🇮🇳"},{code:"mr-IN",label:"Marathi (India)",flag:"🇮🇳"},{code:"pa",label:"Punjabi",flag:"🇮🇳"},{code:"pa-IN",label:"Punjabi (India)",flag:"🇮🇳"},{code:"ur",label:"Urdu",flag:"🇮🇳"},{code:"ur-IN",label:"Urdu (India)",flag:"🇮🇳"},{code:"or",label:"Odia",flag:"🇮🇳"},{code:"or-IN",label:"Odia (India)",flag:"🇮🇳"},{code:"as",label:"Assamese",flag:"🇮🇳"},{code:"as-IN",label:"Assamese (India)",flag:"🇮🇳"},{code:"zh-HK",label:"Chinese (Hong Kong)",flag:"🇭🇰"},{code:"nl",label:"Dutch",flag:"🇳🇱"},{code:"nl-NL",label:"Dutch (Netherlands)",flag:"🇳🇱"},{code:"pl",label:"Polish",flag:"🇵🇱"},{code:"pl-PL",label:"Polish (Poland)",flag:"🇵🇱"},{code:"sv",label:"Swedish",flag:"🇸🇪"},{code:"sv-SE",label:"Swedish (Sweden)",flag:"🇸🇪"},{code:"da",label:"Danish",flag:"🇩🇰"},{code:"da-DK",label:"Danish (Denmark)",flag:"🇩🇰"},{code:"no",label:"Norwegian",flag:"🇳🇴"},{code:"no-NO",label:"Norwegian (Norway)",flag:"🇳🇴"},{code:"fi",label:"Finnish",flag:"🇫🇮"},{code:"fi-FI",label:"Finnish (Finland)",flag:"🇫🇮"},{code:"tr",label:"Turkish",flag:"🇹🇷"},{code:"tr-TR",label:"Turkish (Turkey)",flag:"🇹🇷"},{code:"cs",label:"Czech",flag:"🇨🇿"},{code:"cs-CZ",label:"Czech (Czech Republic)",flag:"🇨🇿"},{code:"sk",label:"Slovak",flag:"🇸🇰"},{code:"sk-SK",label:"Slovak (Slovakia)",flag:"🇸🇰"},{code:"hu",label:"Hungarian",flag:"🇭🇺"},{code:"hu-HU",label:"Hungarian (Hungary)",flag:"🇭🇺"},{code:"ro",label:"Romanian",flag:"🇷🇴"},{code:"ro-RO",label:"Romanian (Romania)",flag:"🇷🇴"},{code:"el",label:"Greek",flag:"🇬🇷"},{code:"el-GR",label:"Greek (Greece)",flag:"🇬🇷"},{code:"th",label:"Thai",flag:"🇹🇭"},{code:"th-TH",label:"Thai (Thailand)",flag:"🇹🇭"},{code:"id",label:"Indonesian",flag:"🇮🇩"},{code:"id-ID",label:"Indonesian (Indonesia)",flag:"🇮🇩"},{code:"ms",label:"Malay",flag:"🇲🇾"},{code:"ms-MY",label:"Malay (Malaysia)",flag:"🇲🇾"},{code:"vi",label:"Vietnamese",flag:"🇻🇳"},{code:"vi-VN",label:"Vietnamese (Vietnam)",flag:"🇻🇳"},{code:"he",label:"Hebrew",flag:"🇮🇱"},{code:"he-IL",label:"Hebrew (Israel)",flag:"🇮🇱"}];J=J.filter((e,s,a)=>s===a.findIndex(s=>s.code===e.code&&s.label===e.label)),J.sort((e,s)=>e.label<s.label?-1:e.label>s.label?1:0);const Y=J.filter(e=>function(e){try{const s=new Intl.DateTimeFormat(e);return s.resolvedOptions().locale===e||s.resolvedOptions().locale.startsWith(e)}catch{return!1}}(e.code)).filter((e,s,a)=>s===a.findIndex(s=>s.code===e.code&&s.label===e.label)).map(e=>({value:e.code,label:e.label,flag:e.flag}));function Z({value:s,onChange:a}){const{t:i}=t.useTranslation(),n=Y.map(e=>({value:e.value,label:e.label,icon:e.flag}));return e.jsx(K,{options:n,value:s,onChange:a,placeholder:i("dropdowns.searchLanguage"),emptyLabel:i("dropdowns.chooseLanguage")})}const $=[{value:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{value:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{value:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{value:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{value:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{value:"Pacific Daylight Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-07:00) Pacific Daylight Time (US & Canada)",utc:["America/Los_Angeles","America/Tijuana","America/Vancouver"]},{value:"Pacific Standard Time",abbr:"PST",offset:-8,isdst:!1,text:"(UTC-08:00) Pacific Standard Time (US & Canada)",utc:["America/Los_Angeles","America/Tijuana","America/Vancouver","PST8PDT"]},{value:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson","America/Dawson_Creek","America/Hermosillo","America/Phoenix","America/Whitehorse","Etc/GMT+7"]},{value:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{value:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{value:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{value:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{value:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{value:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{value:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{value:"Eastern Standard Time",abbr:"EST",offset:-5,isdst:!1,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto"]},{value:"Eastern Daylight Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-04:00) Eastern Daylight Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto"]},{value:"US Eastern Standard Time",abbr:"UEDT",offset:-5,isdst:!1,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{value:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{value:"Paraguay Standard Time",abbr:"PYT",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{value:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{value:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{value:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{value:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{value:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{value:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{value:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{value:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{value:"Greenland Standard Time",abbr:"GDT",offset:-3,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{value:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{value:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{value:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{value:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old",utc:[]},{value:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{value:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{value:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{value:"UTC",abbr:"UTC",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{value:"GMT Standard Time",abbr:"GMT",offset:0,isdst:!1,text:"(UTC) Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"British Summer Time",abbr:"BST",offset:1,isdst:!0,text:"(UTC+01:00) Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Lisbon",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Lisbon"]},{value:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{value:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{value:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{value:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{value:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{value:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{value:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{value:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{value:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{value:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{value:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{value:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau","Europe/Helsinki","Europe/Kyiv","Europe/Mariehamn","Europe/Nicosia","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhhorod","Europe/Vilnius","Europe/Zaporizhzhia"]},{value:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{value:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kyiv","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhhorod","Europe/Vilnius","Europe/Zaporizhzhia"]},{value:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!1,text:"(UTC+03:00) Istanbul",utc:["Europe/Istanbul"]},{value:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{value:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{value:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{value:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{value:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+02:00) Kaliningrad",utc:["Europe/Kaliningrad"]},{value:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{value:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{value:"Moscow Standard Time",abbr:"MSK",offset:3,isdst:!1,text:"(UTC+03:00) Moscow, St. Petersburg, Volgograd, Minsk",utc:["Europe/Kirov","Europe/Moscow","Europe/Simferopol","Europe/Volgograd","Europe/Minsk"]},{value:"Samara Time",abbr:"SAMT",offset:4,isdst:!1,text:"(UTC+04:00) Samara, Ulyanovsk, Saratov",utc:["Europe/Astrakhan","Europe/Samara","Europe/Ulyanovsk"]},{value:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{value:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{value:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{value:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{value:"Georgian Standard Time",abbr:"GET",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{value:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{value:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{value:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{value:"Yekaterinburg Time",abbr:"YEKT",offset:5,isdst:!1,text:"(UTC+05:00) Yekaterinburg",utc:["Asia/Yekaterinburg"]},{value:"Pakistan Standard Time",abbr:"PKT",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{value:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Kolkata","Asia/Calcutta"]},{value:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{value:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Kathmandu"]},{value:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Nur-Sultan (Astana)",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{value:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{value:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{value:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{value:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{value:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{value:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{value:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{value:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{value:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{value:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{value:"North Asia East Standard Time",abbr:"NAEST",offset:8,isdst:!1,text:"(UTC+08:00) Irkutsk",utc:["Asia/Irkutsk"]},{value:"Japan Standard Time",abbr:"JST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{value:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{value:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{value:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{value:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{value:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{value:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{value:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{value:"Yakutsk Standard Time",abbr:"YST",offset:9,isdst:!1,text:"(UTC+09:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{value:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{value:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{value:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{value:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{value:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{value:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{value:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old",utc:["Asia/Kamchatka"]},{value:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{value:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}].filter(e=>e.utc.length).reduce((e,s)=>{let a=s.utc;for(let t=0;t<a.length;t++){const i=a[t],n=s.text;let r=n.substring(n.indexOf("(")+1,n.indexOf(")"));-1!==r.indexOf("UTC")&&e.push({value:i,abbr:s.abbr,offset:s.offset,isdst:s.isdst,text:`(${r}) ${i}`,utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]})}return e},[]).filter((e,s,a)=>s===a.findIndex(s=>s.value===e.value));function X({value:s,onChange:a}){const{t:i}=t.useTranslation(),n=$.map(e=>({value:e.value,label:e.text}));return e.jsx(K,{options:n,value:s,onChange:a,placeholder:i("dropdowns.searchTimezone"),emptyLabel:i("dropdowns.chooseTimezone")})}const Q=({workspace:s})=>{const{t:i}=t.useTranslation(),{visible:c}=t.useUIVisibility(),l=c(e=>e.settings?.profile?.language),d=c(e=>e.settings?.profile?.country),u=c(e=>e.settings?.profile?.currency),m=c(e=>e.settings?.profile?.timezone),{updateUserProfile:p,getProfile:x}=t.useSaaSWorkspaces(),[g,f]=a.useState(!1),[b,S]=a.useState(),[v,j]=a.useState(0),N=C(),A=t.useUpload("profile-image"),y=a.useRef(null),T=o.z.object({name:o.z.string().min(2,{message:i("profile.nameMinLength")}),country:o.z.string().optional(),timezone:o.z.string().optional(),language:o.z.string().optional(),currency:o.z.string().optional(),image:o.z.string().optional()}),w=r.useForm({resolver:n.zodResolver(T),defaultValues:{name:b?.name||"",country:b?.country||"",timezone:b?.timezone||"",language:b?.language||"",currency:b?.currency||"",image:b?.image||""}});if(a.useEffect(()=>{x().then(e=>{S(e),w.setValue("name",e.name),w.setValue("country",e.country),w.setValue("timezone",e.timezone),w.setValue("language",e.language),w.setValue("currency",e.currency),w.setValue("image",e.image??"")}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsProfile",action:"getProfile"})})},[v]),!b)return e.jsx(h,{});const k=w.watch("image")?.trim(),E=g||A.loading;return e.jsxs("div",{children:[N.message&&e.jsx(t.StatusBanner,{variant:"success",title:i("settings.common.success"),message:N.message,className:"mb-4"}),e.jsx("div",{className:"space-y-4",children:e.jsx(t.Form,{...w,children:e.jsxs("form",{onSubmit:w.handleSubmit(async function(e){const a=e.image?.trim()??"";f(!0),N.clear();try{await p({name:e.name,country:e.country,timezone:e.timezone,language:e.language,currency:e.currency,...a!==(b?.image??"")?{image:a}:{}}),S(e=>e?{...e,image:a}:e),N.show(i("profile.success"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsProfile",action:"updateUserProfile",metadata:{workspaceId:s._id}})}finally{f(!1)}}),className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[e.jsxs(t.Avatar,{className:"h-16 w-16",children:[k&&e.jsx(t.AvatarImage,{src:k,alt:i("profile.profileImage")}),e.jsx(t.AvatarFallback,{className:"text-lg",children:(b.name||b.email||"?").trim().charAt(0).toUpperCase()})]}),e.jsxs("div",{className:"min-w-0 space-y-2",children:[e.jsx("p",{className:"text-sm font-medium",children:i("profile.profileImage")}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[A.enabled&&e.jsxs(e.Fragment,{children:[e.jsx("input",{ref:y,type:"file",accept:t.UPLOAD_ACCEPT,className:"hidden",tabIndex:-1,"aria-hidden":"true",onChange:e=>{const s=e.target.files?.[0];s&&async function(e){try{const s=await A.upload(e);w.setValue("image",s.url,{shouldDirty:!0})}catch{}finally{y.current&&(y.current.value="")}}(s)}}),e.jsx(t.Button,{type:"button",variant:"outline",size:"sm",disabled:E,progress:A.loading,"aria-describedby":"profile-picture-help",onClick:()=>y.current?.click(),children:A.loading?i("uploads.uploading"):i("profile.changePicture")})]}),k&&A.enabled&&e.jsx(t.Button,{type:"button",variant:"ghost",size:"sm",disabled:E,onClick:()=>w.setValue("image","",{shouldDirty:!0}),children:i("profile.removePicture")})]}),A.enabled&&e.jsx("p",{id:"profile-picture-help",className:"text-xs text-muted-foreground",children:i("uploads.description",{max:A.maxLabel})})]})]}),A.error&&e.jsx(t.StatusBanner,{variant:"error",message:A.error}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"profile-email",className:"block text-sm font-medium mb-1",children:i("profile.email")}),e.jsx(t.Input,{id:"profile-email",disabled:!0,className:"w-full border rounded px-3 py-2 bg-muted",value:b?.email})]}),e.jsx(t.FormField,{disabled:g,control:w.control,name:"name",render:({field:s})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:i("profile.name")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{...s})}),e.jsx(t.FormMessage,{})]})}),e.jsxs("div",{className:"flex gap-y-2 my-4 flex-col",children:[l&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.language")}),e.jsx(Z,{value:w.watch("language"),onChange:e=>{w.setValue("language",e)}})]}),d&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.country")}),e.jsx(V,{value:w.watch("country"),onChange:e=>{w.setValue("country",e)}})]}),u&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.currency")}),e.jsx(q,{value:w.watch("currency"),onChange:e=>{w.setValue("currency",e)}})]}),m&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.timezone")}),e.jsx(X,{value:w.watch("timezone"),onChange:e=>{w.setValue("timezone",e)}})]})]}),e.jsxs("div",{className:"flex justify-end gap-x-2",children:[e.jsx(t.Button,{type:"submit",progress:g,disabled:E,children:i("profile.save")}),e.jsx(t.Button,{type:"button",variant:"outline",onClick:()=>{j(e=>e+1)},disabled:E,children:i("profile.reset")})]})]})})})]})},ee=()=>{const{t:i,formattingLocale:n}=t.useTranslation(),{visible:r,ui:o}=t.useUIVisibility(),c=o.formats?.date??{dateStyle:"medium"},l=r(e=>e.settings?.security?.passkeyRename),d=r(e=>e.settings?.security?.passkeyDelete),{api:u}=t.useWorkspaceApiWithOs(),[m,p]=a.useState(!0),[x,g]=a.useState([]),[f,b]=a.useState(null),[S,v]=a.useState(null),[j,N]=a.useState(""),A=a.useCallback(async()=>{try{const e=await u.getPasskeys();g(e)}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{p(!1)}},[u]);return a.useEffect(()=>{A()},[A]),m?e.jsx(h,{}):e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:i("security.passkeysTitle"),description:i("security.passkeysDescription")}),0===x.length?e.jsx(t.EmptyState,{icon:e.jsx(s.KeyRound,{className:"h-5 w-5 text-muted-foreground"}),description:i("security.noPasskeys")}):e.jsx("div",{className:"space-y-2",children:x.map(a=>e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-md border p-3 "+(!1===a.active?"opacity-70":""),children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx(s.KeyRound,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),e.jsx("div",{className:"min-w-0",children:S===a.id?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.Input,{value:j,onChange:e=>N(e.target.value),placeholder:i("security.renamePlaceholder"),className:"h-8"}),e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 shrink-0",disabled:f===a.id,onClick:()=>async function(e){const s=j.trim();if(s){b(e);try{await u.renamePasskey(e,s),g(a=>a.map(a=>a.id===e?{...a,name:s}:a)),v(null)}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{b(null)}}}(a.id),children:e.jsx(s.Check,{className:"h-4 w-4"})}),e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 shrink-0",onClick:()=>v(null),children:e.jsx(s.X,{className:"h-4 w-4"})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"truncate text-sm font-medium",children:a.name}),!1===a.active&&e.jsx("span",{className:"shrink-0 rounded-full border border-warning/40 bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",title:i("security.inactiveHint"),children:i("security.inactive")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:!1===a.active?i("security.inactiveHint"):a.lastUsedAt?`${i("security.lastUsed")}: ${t.formatDate(a.lastUsedAt,n,c)}`:a.createdAt?`${i("security.added")}: ${t.formatDate(a.createdAt,n,c)}`:null})]})})]}),S!==a.id&&(l||d)&&e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[l&&e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8","aria-label":i("security.rename"),onClick:()=>{v(a.id),N(a.name)},children:e.jsx(s.Pencil,{className:"h-4 w-4"})}),d&&e.jsxs(t.AlertDialog,{children:[e.jsx(t.AlertDialogTrigger,{asChild:!0,children:e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 text-destructive","aria-label":i("security.remove"),disabled:f===a.id,children:e.jsx(s.Trash2,{className:"h-4 w-4"})})}),e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:i("security.removeTitle")}),e.jsx(t.AlertDialogDescription,{children:i("security.removeDescription")})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{children:i("settings.common.cancel")}),e.jsx(t.AlertDialogAction,{onClick:()=>async function(e){b(e);try{await u.deletePasskey(e),g(s=>s.filter(s=>s.id!==e))}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{b(null)}}(a.id),children:i("security.remove")})]})]})]})]})]},a.id))}),e.jsx("p",{className:"text-xs text-muted-foreground",children:i("security.addHint")})]})},se=e=>{switch(e){case t.InvoiceStatuses.Paid:return"bg-success/15 text-success";case t.InvoiceStatuses.Open:return"bg-warning/15 text-warning";case t.InvoiceStatuses.Draft:return"bg-muted text-foreground";case t.InvoiceStatuses.Uncollectible:return"bg-destructive/15 text-destructive";case t.InvoiceStatuses.Void:default:return"bg-muted text-foreground"}},ae=({workspaceId:a,hasActiveSubscription:i=!1,onViewPricingPlans:n,limit:r=20})=>{const{t:o,formattingLocale:c}=t.useTranslation(),{can:l}=t.usePermissions(),d=l(t.Permission.WORKSPACE_BILLING_VIEW),{invoices:u,loading:m,error:p,refetch:x}=t.useInvoices(a,r);if(!d)return e.jsx(b,{});const g=u.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:o("invoices.title"),description:o("invoices.description"),actions:e.jsx(t.Button,{variant:"ghost",size:"sm",progress:m,onClick:x,disabled:m,children:o("settings.common.refreshAction",{loading:String(m)})})}),p&&e.jsx(t.StatusBanner,{variant:"error",title:o("invoices.errorLoading"),message:p,actionLabel:o("settings.common.retryAction",{loading:String(m)}),onAction:x,actionDisabled:m}),m&&!g?e.jsx("div",{className:"border rounded-lg p-6",children:e.jsx(h,{})}):g?e.jsx("div",{className:"space-y-2",children:u.map(a=>{const i=(e=>{switch(e.status){case t.InvoiceStatuses.Draft:case t.InvoiceStatuses.Open:return{textKey:"invoices.pay",color:"bg-info text-info-foreground hover:bg-info/90"};case t.InvoiceStatuses.Paid:return{textKey:"invoices.view",color:"bg-success text-success-foreground hover:bg-success/90"};case t.InvoiceStatuses.Uncollectible:case t.InvoiceStatuses.Void:return{textKey:"invoices.viewDetails",color:"bg-muted-foreground text-background hover:bg-muted-foreground/90"};default:return{textKey:"invoices.view",color:"bg-muted-foreground text-background hover:bg-muted-foreground/90"}}})(a);return e.jsxs("div",{className:"border rounded-md bg-background hover:shadow-sm transition-shadow p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1.5",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate min-w-0",children:a.description||a.number||a.id.slice(-8)}),e.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium shrink-0 ${se(a.status)}`,children:o(`invoices.status.${a.status}`)})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-0.5 text-sm text-muted-foreground mb-2.5",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.formatMinorAmountIntl(a.amount_due,a.currency,c)}),a.created&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground/50 hidden sm:inline",children:"·"}),e.jsx("span",{children:t.formatUnixDate(a.created,c)})]}),a.amount_paid>0&&a.amount_due>0&&e.jsx("span",{className:"text-xs text-muted-foreground",children:o("invoices.paidAmount",{amount:t.formatMinorAmountIntl(a.amount_paid,a.currency,c)})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(t.Button,{size:"sm",disabled:!a.hosted_invoice_url,onClick:()=>a.hosted_invoice_url&&window.open(a.hosted_invoice_url,"_blank","noopener,noreferrer"),className:i.color,children:[o(i.textKey),e.jsx(s.ExternalLink,{className:"h-3.5 w-3.5 ms-1.5"})]}),a.invoice_pdf&&e.jsxs(t.Button,{size:"sm",variant:"outline",onClick:()=>window.open(a.invoice_pdf,"_blank","noopener,noreferrer"),children:[e.jsx(s.Download,{className:"h-3.5 w-3.5 me-1.5"}),o("invoices.download")]})]})]},a.id)})}):e.jsx(t.EmptyState,{icon:e.jsx(s.FileText,{className:"h-5 w-5 text-muted-foreground"}),description:o(i?"invoices.noInvoicesWithSub":"invoices.noInvoices"),action:!i&&n?e.jsx(t.Button,{size:"sm",className:"mt-2",onClick:n,children:o("subscription.viewPricingPlans")}):void 0})]})},te=(e,s)=>s?t.formatDate(s,e,{month:"long",day:"numeric",year:"numeric"}):"",ie=({planVersion:s,subscriptionCurrency:a,billingInterval:i,seatPricingConfig:n,memberCount:r,includedSeats:o,billableSeats:c,perSeatPrice:l,intervalLabel:d})=>{const{t:u,formattingLocale:m,fmtNum:p,fmtCents:x}=t.useTranslation(),g=((e,s,a=t.BillingIntervals.Monthly)=>{if(!e?.subscriptionItems)return{features:[],limits:[],quotas:[]};const i=[],n=[],r=[];return e.subscriptionItems.forEach(o=>{const c=o.slug;if(o.type===t.SubscriptionItemType.Feature){const s=e.features?.[c]??!1;i.push({item:o,enabled:s})}else if(o.type===t.SubscriptionItemType.Limit){const s=e.limits?.[c]??0;n.push({item:o,value:s})}else if(o.type===t.SubscriptionItemType.Quota){const i=s&&e.pricingVariants?.length?t.getQuotaDisplayWithVariant(e,s,c,a):t.getQuotaDisplayValue(e.quotas?.[c],a);null!=i&&r.push({item:o,value:i})}}),{features:i,limits:n,quotas:r}})(s,a,i??"monthly");return g.features.length>0||g.limits.length>0||g.quotas.length>0?e.jsx("div",{className:"px-4 py-4 sm:px-5 sm:py-5 border-t border-border/60",children:e.jsxs("div",{className:"space-y-5",children:[g.features.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:u("subscription.items.features")}),e.jsx("ul",{className:"space-y-1.5",children:g.features.sort(e=>e.enabled?-1:1).map(({item:s,enabled:a})=>e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx("span",{className:"w-4 text-center shrink-0 "+(a?"text-success":"text-muted-foreground/50"),children:a?"✓":"✕"}),e.jsx("span",{className:a?"text-foreground":"text-muted-foreground/70",children:s.name})]},s._id))})]}),g.limits.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:u("subscription.items.limits")}),e.jsx("ul",{className:"space-y-1.5",children:g.limits.map(({item:s,value:a})=>e.jsxs("li",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:s.name}),e.jsx("span",{className:"font-medium text-foreground",children:p(a)})]},s._id))})]}),g.quotas.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:u("subscription.items.quotas")}),e.jsx("ul",{className:"space-y-1.5",children:g.quotas.map(({item:s,value:i})=>{const n=t.getQuotaDisplayParts(i,s.name.toLowerCase(),{currency:a,locale:m}),r=n?n.hasOverage?u("quota.includedWithOverage",{count:n.included,price:n.price,unit:n.unit}):u("quota.includedOnly",{count:n.included}):"—";return e.jsx("li",{className:"text-sm",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-0.5",children:[e.jsx("span",{className:"text-muted-foreground",children:s.name}),e.jsx("span",{className:"font-medium text-foreground text-xs sm:text-sm",children:r})]})},s._id)})})]}),n&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:u("subscription.seats.title")}),e.jsxs("div",{className:"bg-muted/50 rounded-lg p-3 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:u("subscription.seats.members")}),e.jsx("span",{className:"font-semibold text-foreground",children:p(r)})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:u("subscription.seats.included")}),e.jsx("span",{className:"text-foreground",children:p(o)})]}),c>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:u("subscription.seats.billable")}),e.jsxs("span",{className:"font-medium text-warning",children:[p(c)," ",u("subscription.seats.extra")]})]}),null!=l&&l>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:u("subscription.seats.perExtraSeat")}),e.jsxs("span",{className:"text-foreground",children:[x(l,a),d]})]}),(n?.maxSeats??0)>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:u("subscription.seats.limit")}),e.jsx("span",{className:"text-foreground",children:p(n.maxSeats)})]})]})]}),s?.creditGrant?.enabled&&"object"==typeof s.creditGrant.creditPackage&&null!==s.creditGrant.creditPackage&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:u("subscription.items.credits")}),e.jsxs("div",{className:"bg-info/10 rounded-lg p-3 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:s.creditGrant.renewOnPeriod?u("subscription.items.creditsPerMonth"):u("subscription.items.creditsOneTime")}),e.jsx("span",{className:"font-semibold text-info",children:p("object"==typeof s.creditGrant.creditPackage?s.creditGrant.creditPackage.creditAmount:0)})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:u("subscription.items.creditRenewal")}),e.jsx("span",{className:"font-medium text-foreground",children:s.creditGrant.renewOnPeriod?"reset"===s.creditGrant.mode?u("subscription.items.creditModeReset"):u("subscription.items.creditModeTopup"):u("subscription.items.creditModeLifetime")})]})]})]})]})}):null},ne=({resumeDialogOpen:a,setResumeDialogOpen:i,resumeLoading:n,handleResumeSubscription:r,subscription:o})=>{const{t:c,formattingLocale:l}=t.useTranslation();return e.jsx(t.AlertDialog,{open:a,onOpenChange:i,children:e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:c("subscription.resumeTitle")}),e.jsx(t.AlertDialogDescription,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:c("subscription.resumeConfirm")}),e.jsxs("div",{className:"bg-warning/10 border border-warning/30 rounded-lg p-4 space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(s.AlertTriangle,{className:"h-4 w-4 text-warning mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[c("subscription.resumeChargeDate")," ",o?.subscription?.stripeCurrentPeriodEnd&&te(l,o.subscription.stripeCurrentPeriodEnd)?e.jsx("span",{className:"font-medium",children:te(l,o.subscription.stripeCurrentPeriodEnd)}):c("subscription.resumeChargeFallback")]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-warning mt-0.5",children:"•"}),e.jsx("span",{children:c("subscription.resumeContinue")})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-info mt-0.5",children:"ℹ"}),e.jsx("span",{children:c("subscription.resumeCancelAnytime")})]})]})]})})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:n,children:c("subscription.resumeKeep")}),e.jsx(t.AlertDialogAction,{onClick:r,disabled:n,children:c(n?"subscription.resuming":"subscription.resumeButton")})]})]})})},re=({cancelDialogOpen:s,setCancelDialogOpen:a,cancelLoading:i,handleCancelSubscription:n,subscription:r})=>{const{t:o,formattingLocale:c}=t.useTranslation(),l=r?.subscription?.subscriptionStatus===t.SubscriptionStatus.Trialing,d=l&&r?.subscription?.trialEnd||r?.subscription?.stripeCurrentPeriodEnd;return e.jsx(t.AlertDialog,{open:s,onOpenChange:a,children:e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:o(l?"subscription.cancelTrialTitle":"subscription.cancelTitle")}),e.jsx(t.AlertDialogDescription,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:o(l?"subscription.cancelTrialConfirm":"subscription.cancelConfirm")}),e.jsxs("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-success mt-0.5",children:"✓"}),e.jsxs("span",{children:[o(l?"subscription.cancelTrialAccess":"subscription.retainAccess")," ",d&&te(c,d)?e.jsx("span",{className:"font-medium",children:te(c,d)}):o("subscription.retainAccessFallback")]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-success mt-0.5",children:"✓"}),e.jsx("span",{children:o(l?"subscription.cancelTrialNoCharge":"subscription.cancelNotCharged")})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-info mt-0.5",children:"ℹ"}),e.jsx("span",{children:o(l?"subscription.cancelTrialResume":"subscription.cancelResumeAnytime")})]})]})]})})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:i,children:o(l?"subscription.cancelTrialKeep":"subscription.cancelKeep")}),e.jsx(t.AlertDialogAction,{onClick:n,disabled:i,className:"bg-destructive hover:bg-destructive/90 focus:ring-destructive",children:o(i?"subscription.canceling":l?"subscription.cancelTrialButton":"subscription.cancelButton")})]})]})})},oe=({className:s,icon:a,titleClassName:i,title:n,descriptionClassName:r,description:o,children:c,kind:l})=>(t.useGateReport(!!l,l??"","subscription_notice_shown",{kind:l}),e.jsx("div",{className:s,children:e.jsxs("div",{className:"flex items-start gap-3",children:[a,e.jsxs("div",{children:[e.jsx("p",{className:i,children:n}),e.jsx("p",{className:r,children:o}),c]})]})})),ce=({subscription:s})=>{const{t:a}=t.useTranslation();return e.jsxs("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium "+(s.subscriptionStatus===t.SubscriptionStatus.Active?s.cancelAtPeriodEnd?"bg-warning/15 text-warning":"bg-success/15 text-success":s.subscriptionStatus===t.SubscriptionStatus.Trialing?"bg-info/15 text-info":s.subscriptionStatus===t.SubscriptionStatus.Canceled?"bg-muted text-foreground":"bg-destructive/15 text-destructive"),children:[s.subscriptionStatus===t.SubscriptionStatus.Active&&(s.cancelAtPeriodEnd?a("subscription.status.canceling"):a("subscription.status.active")),s.subscriptionStatus===t.SubscriptionStatus.Trialing&&a("subscription.status.trial"),s.subscriptionStatus===t.SubscriptionStatus.Canceled&&a("subscription.status.canceled"),s.subscriptionStatus===t.SubscriptionStatus.PastDue&&a("subscription.status.pastDue")]})},le=({subscription:s,showChangePlan:a,setDialogOpen:i,onManagePayment:n,managePaymentLoading:r})=>{const{t:o}=t.useTranslation(),c=s.trialEnd||s.stripeCurrentPeriodEnd,l=c?new Date(c):null,d=l&&!isNaN(l.getTime())?l:null,u=d?Math.max(0,Math.ceil((d.getTime()-Date.now())/864e5)):null,m=null!==u&&u<=3;t.useGateReport(!0,"trial","subscription_notice_shown",{kind:m?"trial_ending":"trial",days_remaining:u??void 0});const p=m?"border-warning/30 text-warning hover:bg-warning/15":"border-info/30 text-info hover:bg-info/15";return e.jsxs("div",{className:"px-4 py-3 sm:px-5 text-sm flex flex-col sm:flex-row sm:items-center justify-between gap-2 "+(m?"bg-warning/10 text-warning border-b border-warning/30":"bg-info/10 text-info border-b border-info/20"),children:[e.jsxs("span",{children:[null!==u&&u<=0?o("subscription.trialEnded"):null!==u?o("subscription.trialEndsIn",{days:u}):o("subscription.onTrial")," ",o("subscription.trialKeepAccess")]}),(n||a)&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2 shrink-0",children:[n&&e.jsx(t.Button,{size:"sm",variant:m?"default":"outline",className:m?"":p,onClick:n,disabled:r,progress:r,children:o(r?"subscription.openingPortal":"subscription.managePayment")}),a&&e.jsx(t.Button,{size:"sm",variant:m&&!n?"default":"outline",className:m&&!n?"":p,onClick:()=>i(!0),children:o("subscription.changePlan")})]})]})};function de(){const e=a.useRef(null);return a.useEffect(()=>()=>{e.current&&clearTimeout(e.current)},[]),a.useCallback((s,a=5e3)=>{e.current&&clearTimeout(e.current),e.current=setTimeout(()=>{e.current=null,s()},a)},[])}const ue=a.lazy(()=>Promise.resolve().then(function(){return require("./SubscriptionDialog-Db3GY0-L.cjs")}).then(e=>({default:e.default}))),me=({workspace:i})=>{const n=i._id?.toString(),{t:r,formattingLocale:o,fmtCents:c}=t.useTranslation(),{api:l}=t.useWorkspaceApiWithOs(),{can:d}=t.usePermissions(),{visible:u,ui:m}=t.useUIVisibility(),p=m.behavior,x=u(e=>e.settings?.subscription?.changePlan),g=u(e=>e.settings?.subscription?.cancel),f=u(e=>e.settings?.subscription?.managePayment),S=u(e=>e.settings?.subscription?.invoicesTab),v=u(e=>e.settings?.subscription?.planDetails),j=d(t.Permission.WORKSPACE_BILLING_VIEW),N=d(t.Permission.WORKSPACE_BILLING_MANAGE),{subscription:A,loading:y,error:C,updateSubscription:T,refetch:w}=t.useSubscriptionManagement(n),{createCheckoutSession:k}=t.useCreateCheckoutSession(n),{cancelSubscription:E,loading:P}=t.useCancelSubscription(n),{resumeSubscription:D,loading:M}=t.useResumeSubscription(n),{openBillingPortal:I,loading:U}=t.useBillingPortal(n),{versions:R,loading:B,error:_,refetch:L}=t.usePlanGroupVersions(n),G=y||B,K=C||_,{currentVersion:F,latestVersion:O,isDeprecated:W,plansToShow:V}=a.useMemo(()=>{const e=R?.currentVersion,s=R?.availableVersions||[],a=null!=A?.subscription;let t=null;s.length>0?t=s.reduce((e,s)=>s.version>e.version?s:e):e&&(t=e);return{currentVersion:e,latestVersion:t,isDeprecated:!!(a&&t&&e)&&t.version>e.version&&a,plansToShow:t?.plans&&t.plans.length>0?t.plans:[]}},[R,A?.subscription]),[z,H]=a.useState(!1),[q,J]=a.useState(null),[Y,Z]=a.useState(null),[$,X]=a.useState(null),Q=de(),ee=A?.planVersion?._id;a.useEffect(()=>{$&&ee===$.planVersionId&&X(null)},[ee,$]);const[se,me]=a.useState(!1),[pe,xe]=a.useState(!1),ge=a.useRef("unknown"),fe=e=>{ge.current=e,me(!0)},{emit:be}=t.useFunnel(),he=()=>({plan_version_id:A?.planVersion?._id,plan_slug:A?.plan?.slug,subscription_status:A?.subscription?.subscriptionStatus}),Se=e=>{be("subscription_cancel_started",{...he(),source:e}),xe(!0)},ve=a.useRef(void 0),je=a.useRef(!1);a.useEffect(()=>{if(je.current)return;if(y||!V||0===V.length)return;const e=t.workspaceSettingsManager.getState(),s=e.params?.action===t.BBAction.SelectPlan,a=!1!==p?.autoOpenPlanDialog;(!A?.subscription&&a||s)&&(je.current=!0,s&&(ve.current=e.params,t.workspaceSettingsManager.clearParams()),fe(s?"deep_link":"auto_no_subscription"))},[y,A?.subscription,V,p?.autoOpenPlanDialog]);const[Ne,Ae]=a.useState(!1),[ye,Ce]=a.useState("subscription"),Te=async()=>{await Promise.all([w(),L()])},we=a.useMemo(()=>t.getBillingIntervalAndCurrencyFromPriceId(A?.subscription?.stripePriceId,V??[]),[A?.subscription?.stripePriceId,V]);if(!j)return e.jsx(b,{});if(G&&!A&&!R)return e.jsx(h,{});const ke=A?.planVersion?._id||null;return n?e.jsxs("div",{className:"space-y-4",children:[K&&e.jsx(t.StatusBanner,{variant:"error",title:r("subscription.errorLoading"),message:K,description:r("subscription.errorLoadingDescription"),actionLabel:r("settings.common.retryAction",{loading:String(G)}),onAction:Te,actionDisabled:G}),q&&e.jsx(t.StatusBanner,{variant:"error",title:r("subscription.updateFailed"),message:q,actionLabel:r("settings.common.dismiss"),onAction:()=>J(null)}),$&&e.jsx(t.StatusBanner,{variant:"warning",title:r("subscription.paymentRequiredTitle"),message:r("subscription.paymentRequiredMessage"),actionLabel:$.url?r("subscription.completePayment"):r("settings.common.dismiss"),onAction:()=>{$.url?window.open($.url,"_blank","noopener,noreferrer"):X(null)}}),Y&&e.jsx(t.StatusBanner,{variant:"success",title:r("settings.common.success"),message:Y,actionLabel:r("settings.common.dismiss"),onAction:()=>Z(null)}),S&&e.jsx("div",{className:"border-b border-border",children:e.jsxs("nav",{className:"-mb-px flex gap-6",role:"tablist","aria-label":r("subscription.tabsLabel"),onKeyDown:e=>{"ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"Home"!==e.key&&"End"!==e.key||(e.preventDefault(),Ce("ArrowLeft"===e.key||"End"===e.key?"invoices":"subscription"))},children:[e.jsx("button",{type:"button",role:"tab",id:"subscription-tab-subscription","aria-controls":"subscription-panel-subscription","aria-selected":"subscription"===ye,tabIndex:"subscription"===ye?0:-1,onClick:()=>Ce("subscription"),className:"border-b-2 py-3 text-sm font-medium transition-colors "+("subscription"===ye?"border-primary text-primary":"border-transparent text-muted-foreground hover:border-border hover:text-foreground"),children:r("subscription.plan")}),e.jsx("button",{type:"button",role:"tab",id:"subscription-tab-invoices","aria-controls":"subscription-panel-invoices","aria-selected":"invoices"===ye,tabIndex:"invoices"===ye?0:-1,onClick:()=>Ce("invoices"),className:"border-b-2 py-3 text-sm font-medium transition-colors "+("invoices"===ye?"border-primary text-primary":"border-transparent text-muted-foreground hover:border-border hover:text-foreground"),children:r("subscription.invoicesTab")})]})}),"subscription"===ye&&e.jsxs("div",{id:"subscription-panel-subscription",role:"tabpanel","aria-labelledby":"subscription-tab-subscription",tabIndex:0,children:[G&&e.jsx(t.LoadingState,{}),x&&W&&A?.subscription&&e.jsxs("div",{className:"bg-warning/10 border border-warning/30 rounded-lg px-4 py-3 flex flex-col sm:flex-row sm:items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(s.AlertTriangle,{className:"h-4 w-4 text-warning shrink-0"}),e.jsxs("span",{className:"text-sm text-warning",children:[e.jsx("span",{className:"font-medium",children:r("subscription.planUpdateAvailable")}),e.jsxs("span",{className:"text-warning",children:[" ","— v",F?.version||"?"," → v",O?.version||"?"]})]})]}),e.jsx(t.Button,{size:"sm",variant:"outline",className:"shrink-0 border-warning/40 text-warning hover:bg-warning/15",onClick:()=>fe("new_version_notice"),children:r("subscription.viewPlans")})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{children:e.jsx("p",{className:"text-sm text-muted-foreground",children:r("subscription.managePlan")})}),e.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{if(!x)return null;const s=A?.subscription?.subscriptionStatus===t.SubscriptionStatus.Canceled,a=A?.subscription?.cancelAtPeriodEnd;return a||P?null:s&&V&&V.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>fe("resubscribe"),children:r("subscription.viewPricingPlans")}):A?.subscription&&!s&&N?e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>fe("change_plan"),children:r("subscription.changePlanButton")}):!A?.subscription&&V&&V.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>fe("choose_plan"),children:r("subscription.viewPricingPlans")}):null})(),e.jsx(t.Button,{variant:"ghost",size:"sm",progress:G,onClick:Te,disabled:G||z,children:r("settings.common.refreshAction",{loading:String(G)})})]})]}),A?.subscription?(()=>{const a=t.getBillingIntervalAndCurrencyFromPriceId(A.subscription.stripePriceId,V??[]),n=a?.interval??null,l=a?.currency??A.plan?.currency??i?.billingCurrency??"",d=n&&A.planVersion?t.getBasePriceCents(A.planVersion,l,n):null,u=l,m=A.planVersion?t.getSeatPricing(A.planVersion,l):null,p=m&&n?t.getPerSeatPriceCents(A.planVersion,l,n):null,b=Array.isArray(i?.users)?i.users.length:1,h=m?.includedSeats??0,j=Math.max(0,b-h),y=!!A.plan?.isFreemium,C=null!=d?0===d?r("subscription.free"):c(d,u):y?r("subscription.free"):null,T=n===t.BillingIntervals.Monthly?r("subscription.billingInterval.perMonth"):n===t.BillingIntervals.Quarterly?r("subscription.billingInterval.perQuarter"):n===t.BillingIntervals.Yearly?r("subscription.billingInterval.perYear"):"";return e.jsxs("div",{className:"border rounded-lg overflow-hidden "+(W?"border-warning/40":"border-border"),children:[A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&!A.subscription.cancelAtPeriodEnd&&e.jsx(le,{subscription:A.subscription,showChangePlan:x,setDialogOpen:e=>{!0===e?fe("trial_banner"):me(e)},onManagePayment:f&&N&&A.subscription.subscriptionId?()=>{be("billing_portal_opened",{...he(),source:"trial_banner"}),I()}:void 0,managePaymentLoading:U}),e.jsxs("div",{className:"p-4 sm:p-5 "+(W?"bg-warning/5":"bg-muted/30"),children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:A.plan?.name||r("subscription.noPlanAssigned")}),e.jsx(ce,{subscription:A.subscription}),A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&te(o,A.subscription.trialEnd||A.subscription.stripeCurrentPeriodEnd)&&e.jsx("span",{className:"text-xs text-muted-foreground",children:r("subscription.endsOn",{date:te(o,A.subscription.trialEnd||A.subscription.stripeCurrentPeriodEnd)})}),W&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full text-xs font-medium bg-warning/15 text-warning",children:[e.jsx(s.AlertTriangle,{className:"h-3.5 w-3.5"}),r("subscription.status.deprecated")]})]}),A.plan?.description&&e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:A.plan.description}),!y&&e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 sm:gap-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-baseline gap-1 whitespace-nowrap",children:[!C&&B?e.jsx(t.Skeleton,{className:"h-8 w-28"}):e.jsx("span",{className:"text-2xl font-bold text-foreground",children:C||r("invoices.na")}),C&&C!==r("subscription.free")&&T&&e.jsx("span",{className:"text-sm text-muted-foreground",children:T})]}),m&&null!=p&&p>0&&e.jsx("div",{className:"text-xs text-muted-foreground mt-1",children:r("subscription.perSeatDisplay",{price:c(p,u),interval:T})}),m&&null!=p&&p>0&&j>0&&C&&C!==r("subscription.free")&&null!=d&&e.jsx("div",{className:"text-xs text-muted-foreground mt-1 pt-1 border-t border-border",children:r("subscription.estTotalDisplay",{total:c(d+p*j,u),interval:T,count:j})})]}),(A.subscription.subscriptionStatus===t.SubscriptionStatus.Active||A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing)&&!A.subscription.cancelAtPeriodEnd&&te(o,A.subscription.stripeCurrentPeriodEnd)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx(s.Calendar,{className:"h-3.5 w-3.5 flex-shrink-0"}),e.jsx("span",{children:r("subscription.nextBillingDisplay",{date:te(o,A.subscription.stripeCurrentPeriodEnd)??""})})]})]}),W&&e.jsx("p",{className:"text-xs text-warning mt-2",children:r("subscription.versionLabel",{version:F?.version||r("invoices.na")})}),!y&&(f||g||A.subscription.cancelAtPeriodEnd)&&(A.subscription.subscriptionStatus===t.SubscriptionStatus.Active||A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing||A.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue)&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3 mt-4 pt-4 border-t border-border",children:[f&&A.subscription&&N&&A.subscription?.subscriptionId&&e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>{be("billing_portal_opened",he()),I()},disabled:U,progress:U,children:r(U?"subscription.openingPortal":"subscription.managePayment")}),N&&A.subscription?.subscriptionId&&(A.subscription.subscriptionStatus===t.SubscriptionStatus.Active||A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing)&&e.jsx(e.Fragment,{children:A.subscription.cancelAtPeriodEnd?e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>Ae(!0),disabled:z||P||M,progress:M,children:A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.resumeTrial"):r("subscription.resumeTitle")}):g?e.jsx(t.Button,{variant:"outline",size:"sm",className:"text-destructive hover:text-destructive hover:bg-destructive/10 border-destructive/20",onClick:()=>Se("billing_tab"),disabled:z||P||M,progress:P||z,children:P||z?r("subscription.canceling"):A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.cancelTrial"):r("subscription.cancelTitle")}):null})]})]}),A.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue&&e.jsx(oe,{kind:"past_due",className:"px-5 py-3 bg-destructive/10 border-t border-destructive/20",icon:e.jsx(s.AlertTriangle,{className:"h-5 w-5 text-destructive flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-destructive",title:r("subscription.paymentPastDue"),descriptionClassName:"text-sm text-destructive mt-0.5",description:r("subscription.paymentPastDueDescription"),children:S&&e.jsx(t.Button,{variant:"outline",size:"sm",className:"mt-2 border-destructive/20 text-destructive hover:bg-destructive/15",onClick:()=>Ce("invoices"),children:r("subscription.viewInvoices")})}),A.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue&&A.subscription.dunningState&&A.subscription.dunningState!==t.DunningState.None&&e.jsx(oe,{kind:"dunning",className:"px-5 py-3 bg-destructive/10 border-t border-destructive/20",icon:e.jsx(s.AlertTriangle,{className:"h-5 w-5 text-destructive flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-destructive",title:A.subscription.dunningState===t.DunningState.Final?r("subscription.dunningFinal"):A.subscription.dunningState===t.DunningState.Suspended?r("subscription.dunningSuspended"):r("subscription.dunningRecovery"),descriptionClassName:"text-sm text-destructive mt-0.5",description:A.subscription.dunningState===t.DunningState.Suspended?r("subscription.dunningSuspendedDescription"):r("subscription.dunningRecoveryDescription")}),A.subscription.subscriptionStatus===t.SubscriptionStatus.Paused&&e.jsx(oe,{kind:"paused",className:"px-5 py-3 bg-info/10 border-t border-info/20",icon:e.jsx(s.Calendar,{className:"h-5 w-5 text-info flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-info",title:r("subscription.subscriptionPaused"),descriptionClassName:"text-sm text-info mt-0.5",description:r("subscription.subscriptionPausedDescription")}),A.subscription.cancelAtPeriodEnd&&e.jsx(oe,{kind:"cancel_scheduled",className:"px-5 py-3 bg-warning/10 border-t border-warning/30",icon:e.jsx(s.Calendar,{className:"h-5 w-5 text-warning flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-warning",title:A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.scheduledTrialCancellation"):r("subscription.scheduledCancellation"),descriptionClassName:"text-sm text-warning mt-0.5",description:te(o,A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&A.subscription.trialEnd||A.subscription.stripeCurrentPeriodEnd)?e.jsxs(e.Fragment,{children:[A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.trialEndDescription"):r("subscription.cancelEndDescription")," ",e.jsx("span",{className:"font-medium",children:te(o,A.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&A.subscription.trialEnd||A.subscription.stripeCurrentPeriodEnd)}),"."]}):r("subscription.cancelEndFallback")}),v&&A.planVersion&&e.jsx(ie,{planVersion:A.planVersion,subscriptionCurrency:l,billingInterval:n,seatPricingConfig:m,memberCount:b,includedSeats:h,billableSeats:j,perSeatPrice:p,intervalLabel:T})]})})():e.jsx(t.EmptyState,{icon:e.jsx(s.CreditCard,{className:"h-5 w-5 text-muted-foreground"}),title:r("subscription.noSubscription"),description:r("subscription.noSubscriptionDescription"),action:x&&V&&V.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>fe("empty_state"),children:r("subscription.viewPricingPlans")}):void 0})]}),!R&&!G&&!K&&e.jsx(t.EmptyState,{title:r("subscription.errorLoading"),description:r("subscription.noPlansAvailable"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:G,onClick:Te,children:r("settings.common.refreshAction",{loading:String(G)})})})]}),S&&"invoices"===ye&&e.jsxs("div",{id:"subscription-panel-invoices",role:"tabpanel","aria-labelledby":"subscription-tab-invoices",tabIndex:0,children:[G&&e.jsx(t.LoadingState,{}),e.jsx(ae,{workspaceId:n,hasActiveSubscription:null!=A?.subscription,onViewPricingPlans:()=>Ce("subscription"),limit:20})]}),V&&V.length>0&&e.jsx(a.Suspense,{fallback:se?e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm",children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(s.Loader2,{className:"h-5 w-5 animate-spin"}),e.jsx("span",{children:r("settings.common.loading")})]})}):null,children:e.jsx(ue,{open:se,onOpenChange:me,source:ge.current,planVersions:V,currentPlanVersionId:ke||null,currentStripePriceId:A?.subscription?.stripePriceId,billingCurrency:i.billingCurrency,trialUsedAt:i.trialUsedAt,workspaceName:i.name,initialInterval:ve.current?.interval,initialCurrency:ve.current?.currency,currentMemberCount:Array.isArray(i?.users)?i.users.length:void 0,onSelectPlan:async(e,s=t.BillingIntervals.Monthly,a)=>{if(!n)return;const c=V?.find(s=>s._id===e),d=a??we?.currency??A?.plan?.currency??i?.billingCurrency??"",u=c?t.getStripePriceIdForInterval(c,d,s):null,m=A?.subscription?.stripePriceId;if(!u||!m||u!==m){H(!0),J(null),Z(null),X(null);try{const{successUrl:a,cancelUrl:i}=t.createCheckoutRedirectUrls(n);let u;if(c?.plan?.isFreemium){return A?.subscription?.subscriptionId?(me(!1),void Se("downgrade_to_free")):(await l.selectFreePlan(n,e),me(!1),t.invalidateSubscription(),await Te(),void Z(r("subscription.updateSuccess")))}const m=A?.subscription?.subscriptionStatus===t.SubscriptionStatus.Canceled;if(u=A?.subscription&&!m?await T(e,{billingInterval:s,successUrl:a,cancelUrl:i}):await k({planVersionId:e,billingInterval:s,currency:d||void 0,successUrl:a,cancelUrl:i}),u&&"checkoutUrl"in u&&u.checkoutUrl)return void t.safeRedirect(u.checkoutUrl);if(u&&"paymentRequired"in u&&u.paymentRequired)return X({planVersionId:e,url:t.validateRedirectUrl(u.paymentUrl??u.invoice?.hosted_invoice_url)}),void await Te();const p=A?.subscription,x=p?.subscriptionStatus===t.SubscriptionStatus.Trialing?te(o,p.trialEnd):"";Z(x?r("subscription.updateSuccessTrial",{date:x}):r("subscription.updateSuccess")),await Te()}catch(e){const s=e instanceof Error?e.message:r("subscription.errorProcessing");J(s)}finally{H(!1),Q(()=>{J(null),Z(null)})}}},loading:z||G})}),e.jsx(ne,{resumeDialogOpen:Ne,setResumeDialogOpen:Ae,resumeLoading:M,handleResumeSubscription:async()=>{if(n){Ae(!1),H(!0),J(null),Z(null);try{await D(),be("subscription_resumed",he()),Z(r("subscription.resumeSuccess")),await Te()}catch(e){const s=e instanceof Error?e.message:r("subscription.errorResuming");J(s)}finally{H(!1),Q(()=>{J(null),Z(null)})}}},subscription:A}),e.jsx(re,{cancelDialogOpen:pe,setCancelDialogOpen:xe,cancelLoading:P,handleCancelSubscription:async()=>{if(n){xe(!1),H(!0),J(null),Z(null);try{await E(),be("subscription_cancelled",he()),Z(r("subscription.cancelSuccess")),await Te()}catch(e){const s=e instanceof Error?e.message:r("subscription.errorCanceling");J(s)}finally{H(!1),Q(()=>{J(null),Z(null)})}}},subscription:A})]}):e.jsx("div",{className:"border rounded-lg p-4 text-center text-muted-foreground",children:e.jsx("p",{children:r("subscription.invalidWorkspace")})})};function pe(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function xe(e){try{const s=new Date(e);if(isNaN(s.getTime()))return null;const a=new Date;return Math.ceil((s.getTime()-a.getTime())/864e5)}catch{return null}}const ge=()=>{const{quotas:i,loading:n,error:r,refetch:o}=t.useQuotaUsageContext(),{t:c,formattingLocale:l,fmtNum:d}=t.useTranslation(),{can:u}=t.usePermissions(),{response:m}=t.useSubscriptionContext(),[p,x]=a.useState(!1),g=a.useMemo(()=>{const e={};if(!m?.planVersion||!m?.subscription)return e;const s=m.planVersion,a=m.subscription,n=a.billingInterval??"monthly",r=a.plan?.currency??"usd";if(!i)return e;for(const a of Object.keys(i)){const o=t.getQuotaOverageCents(s,r,a,n);if(null==o||o<=0)continue;const c=s.quotas?.[a],l=c?.[n],d=l?.unitSize??1,u=i[a].overage,m=(d>1?Math.ceil(u/d):u)*o;e[a]={overageCents:o,unitSize:d,currency:r,estimatedCostCents:m}}return e},[m,i]),f=a.useMemo(()=>{const e=m?.subscription?.usageCurrentPeriodEnd||m?.subscription?.stripeCurrentPeriodEnd;if(!e)return null;const s=t.formatDate(e,l);return s?{endDate:s,daysRemaining:xe(e)}:null},[m,l]),b=async()=>{x(!0);try{await o()}finally{x(!1)}};if(n&&!i)return e.jsx(h,{});if(!u(t.Permission.WORKSPACE_USAGE_VIEW))return null;if(r)return e.jsx(t.StatusBanner,{variant:"error",title:c("usage.errorLoading"),message:r,actionLabel:c("settings.common.retryAction",{loading:String(p)}),onAction:b,actionDisabled:p});const S=function(e){return[...e].sort(([,e],[,s])=>{if(e.hasOverage&&!s.hasOverage)return-1;if(!e.hasOverage&&s.hasOverage)return 1;const a=e.included>0?e.consumed/e.included:e.consumed>0?1:0;return(s.included>0?s.consumed/s.included:s.consumed>0?1:0)-a})}(i?Object.entries(i):[]);if(0===S.length)return e.jsx(t.EmptyState,{icon:e.jsx(s.BarChart3,{className:"h-5 w-5 text-muted-foreground"}),title:c("usage.noData"),description:c("usage.noDataHint"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:p,onClick:b,children:c("settings.common.refreshAction",{loading:String(p)})})});const v=S.filter(([,e])=>e.hasOverage).length,j=S.length>0?Math.round(S.reduce((e,[,s])=>e+(s.included>0?s.consumed/s.included*100:0),0)/S.length):0,N=Object.values(g).reduce((e,s)=>e+s.estimatedCostCents,0),A=Object.values(g)[0]?.currency??"usd",y=e=>t.formatMinorAmountIntl(e,A,l);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:c("usage.description")}),e.jsxs(t.Button,{variant:"ghost",size:"sm",onClick:b,disabled:p,children:[e.jsx(s.RefreshCw,{className:t.cn("h-3.5 w-3.5 me-1.5",p&&"animate-spin")}),c("settings.common.refreshAction",{loading:String(p)})]})]}),f&&e.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-4 py-3 text-sm text-muted-foreground",children:[e.jsx(s.Calendar,{className:"h-4 w-4 text-muted-foreground/70 flex-shrink-0"}),e.jsxs("span",{children:[c("usage.resetDateDisplay",{date:f.endDate}),null!==f.daysRemaining&&f.daysRemaining>0&&e.jsxs("span",{className:"text-muted-foreground",children:[" ","(",c("usage.daysRemainingDisplay",{count:f.daysRemaining}),")"]}),null!==f.daysRemaining&&f.daysRemaining<=0&&e.jsxs("span",{className:"text-warning font-medium",children:[" (",c("usage.renewingSoon"),")"]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2 sm:gap-3",children:[e.jsxs("div",{className:"border border-border rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:c("usage.totalResources")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold text-foreground mt-1",children:d(S.length)})]}),e.jsxs("div",{className:"border border-border rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:c("usage.overallUsage")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold text-foreground mt-1",children:d(j)+"%"})]}),e.jsxs("div",{className:t.cn("border rounded-lg p-3 sm:p-4",v>0?"border-destructive/20 bg-destructive/10":"border-border"),children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:c("usage.inOverage")}),e.jsx("p",{className:t.cn("text-lg sm:text-xl font-semibold mt-1",v>0?"text-destructive":"text-foreground"),children:d(v)})]}),v>0&&N>0&&e.jsxs("div",{className:"border border-destructive/20 bg-destructive/10 rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:c("usage.estOverageCost")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold mt-1 text-destructive",children:y(N)})]})]}),v>0&&e.jsx("div",{className:"bg-warning/10 border border-warning/30 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(s.AlertTriangle,{className:"h-5 w-5 text-warning flex-shrink-0 mt-0.5 hidden sm:block"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-sm font-semibold text-warning mb-1",children:c("usage.overageDetected")}),e.jsx("p",{className:"text-sm text-warning",children:c("usage.overageWarning",{count:v})}),N>0&&e.jsx("p",{className:"text-sm text-warning font-medium mt-1",children:c("usage.estOverageCharges",{amount:y(N)})})]})]})}),e.jsx("div",{className:"space-y-3",children:S.map(([s,a])=>{const t=(i=a.consumed,(n=a.included)<=0?i>0?100:0:Math.min(i/n*100,100));var i,n;const r=function(e,s){return s?{bar:"bg-destructive",bg:"bg-destructive/15",badge:"bg-destructive/15",badgeText:"text-destructive"}:e>=90?{bar:"bg-warning",bg:"bg-warning/15",badge:"bg-warning/15",badgeText:"text-warning"}:e>=75?{bar:"bg-warning/70",bg:"bg-warning/15",badge:"bg-warning/15",badgeText:"text-warning"}:{bar:"bg-info",bg:"bg-info/15",badge:"bg-info/15",badgeText:"text-info"}}(t,a.hasOverage),o=g[s];return e.jsx(fe,{slug:s,quota:a,percent:t,colors:r,pricing:o},s)})})]})};function fe({slug:s,quota:a,percent:i,colors:n,pricing:r}){const{t:o,formattingLocale:c}=t.useTranslation(),l=e=>function(e,s){return new Intl.NumberFormat(s,{notation:"compact",maximumFractionDigits:1}).format(e)}(e,c),d=(e,s)=>t.formatMinorAmountIntl(e,s,c);return e.jsxs("div",{className:"border border-border rounded-lg p-4 sm:p-5",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-y-1 mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx("h3",{className:"text-sm font-medium text-foreground truncate",children:pe(s)}),a.hasOverage&&e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",n.badge,n.badgeText),children:o("usage.overage")}),!a.hasOverage&&i>=90&&e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",n.badge,n.badgeText),children:o("usage.almostFull")})]}),e.jsxs("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:[l(a.consumed)," / ",l(a.included)]})]}),e.jsx("div",{role:"progressbar","aria-valuenow":Math.round(i),"aria-valuemin":0,"aria-valuemax":100,"aria-label":pe(s),className:t.cn("h-2 rounded-full w-full",n.bg),children:e.jsx("div",{className:t.cn("h-2 rounded-full transition-all duration-500",n.bar),style:{width:`${i}%`}})}),e.jsxs("div",{className:"flex items-center justify-between mt-2 text-xs text-muted-foreground",children:[e.jsx("span",{children:o("usage.percentUsed",{percent:Math.round(i)})}),e.jsx("span",{children:a.available>0?o("usage.availableRemaining",{count:l(a.available)}):a.hasOverage?o("usage.overLimitCount",{count:l(a.overage)}):o("usage.fullyUsed")})]}),a.hasOverage&&r&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-border space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:o("usage.overageUnits")}),e.jsx("span",{className:"font-medium text-foreground",children:l(a.overage)})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:o("usage.rate")}),e.jsx("span",{className:"font-medium text-foreground",children:o("usage.rateDisplay",{rate:d(r.overageCents,r.currency),unitSize:r.unitSize})})]}),r.unitSize>1&&e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:o("usage.billableBlocks")}),e.jsx("span",{className:"font-medium text-foreground",children:l(Math.ceil(a.overage/r.unitSize))})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs pt-2 border-t border-border",children:[e.jsx("span",{className:"font-medium text-destructive",children:o("usage.estimatedCharge")}),e.jsx("span",{className:"font-semibold text-destructive",children:d(r.estimatedCostCents,r.currency)})]})]}),!a.hasOverage&&r&&e.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:o("usage.overageRateDisplay",{rate:o("usage.rateDisplay",{rate:d(r.overageCents,r.currency),unitSize:r.unitSize})})})]})}const be=x.Root,he=x.Value,Se=m.forwardRef(({className:s,children:a,...i},n)=>e.jsxs(x.Trigger,{ref:n,className:t.cn("flex h-10 sm:h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-base sm:text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),...i,children:[a,e.jsx(x.Icon,{asChild:!0,children:e.jsx(c.CaretSortIcon,{className:"h-4 w-4 opacity-50"})})]}));Se.displayName=x.Trigger.displayName;const ve=m.createContext(null),je="undefined"==typeof window?m.useEffect:m.useLayoutEffect,Ne=m.forwardRef(({className:s,children:a,position:i="popper",style:n,searchable:r,searchPlaceholder:o,emptyText:c,onCloseAutoFocus:l,onKeyDownCapture:d,...u},p)=>{const{container:g}=m.useContext(t.PortalContext),{t:f}=t.useTranslation(),b=o??f("dropdowns.search"),[h,S]=m.useState(""),[v,j]=m.useState(0),[N,A]=m.useState(!1),y=m.useRef(null),C=m.useRef(null),T=function(e){return e.trim().toLowerCase()}(h),w=function(e,s){return e??s>=8}(r,v),k=m.useCallback(()=>(j(e=>e+1),()=>j(e=>e-1)),[]),E=m.useMemo(()=>({query:w?T:"",register:k}),[w,T,k]);je(()=>{if(!T||!C.current)return A(!1);A(!C.current.querySelector('[role="option"]:not(.hidden)'))},[T,v]);return e.jsx(ve.Provider,{value:E,children:e.jsx(x.Portal,{container:g,children:e.jsxs(x.Content,{ref:p,onCloseAutoFocus:e=>{S(""),l?.(e)},onKeyDownCapture:e=>{d?.(e),w&&e.target!==y.current&&(e=>1===e.key.length&&!e.ctrlKey&&!e.metaKey&&!e.altKey)(e)&&(" "!==e.key||""!==h)&&(e.preventDefault(),e.stopPropagation(),S(s=>s+e.key),y.current?.focus())},className:t.cn("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===i&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",s),position:i,style:{..."popper"===i?{maxHeight:"min(24rem, var(--radix-select-content-available-height))"}:{},...n},...u,children:[w&&e.jsx("div",{className:"border-b p-1",children:e.jsx("input",{ref:y,type:"search",value:h,placeholder:b,"aria-label":b,autoComplete:"off",className:"h-8 w-full rounded-sm bg-background px-2 text-sm outline-none placeholder:text-muted-foreground",onChange:e=>S(e.target.value),onKeyDown:e=>{if("ArrowDown"===e.key||"Enter"===e.key){e.preventDefault(),e.stopPropagation();const s=C.current?.querySelector('[role="option"]:not(.hidden):not([data-disabled])')??null;if(!s)return;return s.focus(),void("Enter"===e.key&&s.dispatchEvent(new KeyboardEvent("keydown",{key:"Enter",bubbles:!0})))}"Escape"!==e.key&&"Tab"!==e.key&&e.stopPropagation()}})}),e.jsxs(x.Viewport,{ref:C,className:t.cn("p-1","![scrollbar-color:hsl(var(--border))_transparent] ![scrollbar-width:thin] [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border [&::-webkit-scrollbar]:!block [&::-webkit-scrollbar]:w-2","popper"===i&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:[a,N&&e.jsx("p",{className:"px-2 py-1.5 text-sm text-muted-foreground",children:c??f("dropdowns.noResults")})]})]})})})});Ne.displayName=x.Content.displayName;m.forwardRef(({className:s,...a},i)=>{const n=!!m.useContext(ve)?.query;return e.jsx(x.Label,{ref:i,className:t.cn("px-2 py-1.5 text-sm font-semibold",s,n&&"hidden"),...a})}).displayName=x.Label.displayName;const Ae=m.forwardRef(({className:s,children:a,disabled:i,textValue:n,...r},o)=>{const l=m.useContext(ve),d=l?.register,u=m.useRef(null),[p,g]=m.useState(n??"");je(()=>d?.(),[d]),je(()=>{g(n??u.current?.textContent??"")},[n,a]);const f=m.useCallback(e=>{u.current=e,"function"==typeof o?o(e):o&&(o.current=e)},[o]),b=!!l?.query&&!function(e,s){return!s||e.toLowerCase().includes(s)}(p,l.query);return e.jsxs(x.Item,{ref:f,disabled:i||b,textValue:n,className:t.cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-2 pe-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s,b&&"hidden"),...r,children:[e.jsx("span",{className:"absolute end-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(x.ItemIndicator,{children:e.jsx(c.CheckIcon,{className:"h-4 w-4"})})}),e.jsx(x.ItemText,{children:a})]})});Ae.displayName=x.Item.displayName;m.forwardRef(({className:s,...a},i)=>{const n=!!m.useContext(ve)?.query;return e.jsx(x.Separator,{ref:i,className:t.cn("-mx-1 my-1 h-px bg-muted",s,n&&"hidden"),...a})}).displayName=x.Separator.displayName;const ye=({workspace:i})=>{const{user:n}=t.useSaaSAuth(),{t:r,fmtNum:o,fmtCents:c}=t.useTranslation(),[l,u]=a.useState(0),[m,p]=a.useState(!1),[x,g]=a.useState(!1),[f,S]=a.useState([]),[v,j]=a.useState(null),{getUsers:N,removeUser:A,updateUser:y}=t.useSaaSWorkspaces(),{settings:C}=t.useSaaSSettings(),{can:T}=t.usePermissions(),{visible:w}=t.useUIVisibility(),{response:k}=t.useSubscriptionContext(),E=t.workspaceInvitesEnabled(C),P=t.useWorkspaceInvitations(t.shouldLoadWorkspaceInvitations({canView:T(t.Permission.WORKSPACE_MEMBERS_VIEW)})?i?._id:null),D=t.useSeatStatus(i,{settingsMaxUsers:C?.workspace?.maxWorkspaceUsers,pendingInvitations:P.pendingCount});a.useEffect(()=>{i&&(p(!0),N(i._id).then(e=>{S(e)}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsUsers",action:"getUsers",metadata:{workspaceId:i._id}})}).finally(()=>{p(!1),g(!0)}))},[i,l,N]);const M=()=>{u(e=>e+1)};if(!x||!i)return e.jsx(h,{});const I=e=>"string"==typeof e?{name:r("users.unknownUser"),email:e,id:e,role:"-"}:{name:e.name||r("users.unknownUser"),email:e.email,id:e._id},U=f.map(e=>({...e,...I(e.user)})),R=w(e=>e.settings?.users?.invite,t.Permission.WORKSPACE_MEMBERS_INVITE),B=w(e=>e.settings?.users?.remove,t.Permission.WORKSPACE_MEMBERS_REMOVE),_=w(e=>e.settings?.users?.roleChange,t.Permission.WORKSPACE_MEMBERS_ROLE_CHANGE),L=w(e=>e.settings?.users?.seatPricing),G=w(e=>e.settings?.users?.invitations,t.Permission.WORKSPACE_MEMBERS_VIEW),{hasSeatPricing:K,includedSeats:F,maxUsers:O,canInvite:W,inviteBlockReason:V,inviteBlockMessageKey:z,inviteBlockMessageValues:H,perSeatPriceCents:q,currency:J}=D,Y=f.length+P.pendingCount,Z=k?.subscription?.billingInterval??"monthly",$=K&&Y>=F;return e.jsxs("div",{children:[!T(t.Permission.WORKSPACE_MEMBERS_INVITE)&&!T(t.Permission.WORKSPACE_MEMBERS_REMOVE)&&!T(t.Permission.WORKSPACE_MEMBERS_ROLE_CHANGE)&&e.jsx(b,{descriptionKey:"users.adminOnly"}),R&&E&&e.jsx("div",{className:"mb-4",children:W?e.jsxs("div",{children:[e.jsx(Ce,{onInvite:()=>{M(),P.refresh().catch(()=>{})},workspaceId:i._id}),L&&$&&null!=q&&q>0&&e.jsx("div",{className:"flex items-center gap-1.5 mt-2 text-xs text-warning bg-warning/10 px-3 py-1.5 rounded-md",children:e.jsx("span",{children:r("users.extraSeatCost",{price:c(q,J),interval:Z})})})]}):e.jsx("div",{className:"flex items-center justify-between p-3 bg-destructive/10 border border-destructive/20 rounded-md",children:e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-destructive",children:r("users.limitReached",{reason:V??"member_limit_reached"})}),e.jsx("p",{className:"text-xs text-destructive mt-0.5",children:z?r(z,H??void 0):""})]})})}),L&&(K||O>0)&&e.jsxs("div",{className:"mb-4 rounded-lg border bg-muted/50 p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:r("users.seatHeading",{hasSeatPricing:String(K)})}),O>0&&e.jsxs("span",{className:"text-xs font-medium px-2 py-0.5 rounded-full "+(Y>=O?"bg-destructive/15 text-destructive":Y>=.8*O?"bg-warning/15 text-warning":"bg-success/15 text-success"),children:[o(Y)," / ",o(O)]})]}),O>0&&e.jsx("div",{role:"progressbar","aria-valuenow":Y,"aria-valuemin":0,"aria-valuemax":O,"aria-label":r("users.seatHeading"),className:"w-full h-1.5 bg-muted rounded-full mb-3",children:e.jsx("div",{className:"h-1.5 rounded-full transition-all "+(Y>=O?"bg-destructive":Y>=.8*O?"bg-warning":"bg-success"),style:{width:`${Math.min(100,Y/O*100)}%`}})}),e.jsxs("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[e.jsx("div",{children:K?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-foreground font-medium",children:o(F)})," ",r("users.included"),null!=q&&q>0&&e.jsxs("span",{className:"text-muted-foreground/70",children:[" ","· ",c(q,J),r("users.perExtraSeat")]})]}):e.jsxs("span",{children:[e.jsx("span",{className:"text-foreground font-medium",children:o(O)})," ",r("users.maxMembers")]})}),O>0?e.jsxs("span",{children:[o(Math.max(0,O-Y))," ",r("users.available")]}):e.jsx("span",{className:"text-muted-foreground/70",children:r("users.noMemberLimit")})]}),P.pendingCount>0&&e.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:r("users.invitations.seatNote",{count:P.pendingCount})})]}),G&&e.jsx(Te,{state:P,canResend:R&&E,canRevoke:R,onChanged:M}),e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("div",{children:e.jsx("div",{className:"text-sm text-muted-foreground",children:r("users.memberCount",{count:f.length})})}),e.jsx("div",{children:e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:M,progress:m,children:r("settings.common.refreshAction",{loading:String(m)})})})]}),e.jsx("ul",{className:"space-y-2",children:U.map((a,o)=>{const c=a.id===n?.id,l=("object"==typeof i.createdBy&&null!==i.createdBy?i.createdBy._id:i.createdBy)===a.id;return e.jsxs("li",{className:"border rounded-md p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 min-w-0",children:[e.jsx("div",{className:"w-8 h-8 bg-muted rounded-full flex items-center justify-center text-sm font-medium shrink-0",children:a.name.charAt(0).toUpperCase()}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"font-medium text-sm truncate",children:a.name}),e.jsx("div",{className:"text-xs text-muted-foreground truncate",children:a.email})]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[c&&e.jsx("span",{className:"text-xs bg-info/15 text-info px-2 py-0.5 rounded",children:r("users.you")}),l&&e.jsx("span",{className:"text-xs bg-primary/10 text-primary px-2 py-0.5 rounded",children:r("users.owner")})]})]}),_&&e.jsxs("div",{className:"flex items-center gap-2 mt-2 pt-2 border-t border-border/60 sm:mt-0 sm:pt-0 sm:border-0",children:[e.jsxs("div",{className:"relative flex-1 sm:flex-initial",children:[e.jsxs(be,{disabled:c||!_||l||v===a.id,value:a.role,onValueChange:e=>{return s=i._id,n=a.id,r=e,void(t.isWorkspaceOwner(i,n)?t.handleError(new Error("Cannot change the role of the workspace owner"),{component:"WorkspaceSettingsUsers",action:"handleUpdateRole",metadata:{workspaceId:s,userId:n,role:r}}):(j(n),y(s,n,{role:r}).then(()=>{M()}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsUsers",action:"handleUpdateRole",metadata:{workspaceId:s,userId:n,role:r}})}).finally(()=>{j(null)})));var s,n,r},children:[e.jsx(Se,{children:e.jsx(d.SelectValue,{placeholder:r("users.selectRole")})}),e.jsx(Ne,{children:(C?.workspace?.roles??i?.roles??[]).map(s=>e.jsx(Ae,{value:s,children:s},s))})]}),v===a.id&&e.jsx("div",{className:"absolute end-8 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(s.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})})]}),!c&&!l&&B&&e.jsx(t.Button,{variant:"destructive",size:"sm",startIcon:e.jsx(s.TrashIcon,{}),"aria-label":r("settings.common.delete"),onClick:()=>{return e=a.id,void(t.isWorkspaceOwner(i,e)?t.handleError(new Error("Cannot remove the workspace owner"),{component:"WorkspaceSettingsUsers",action:"handleRemoveUser",metadata:{workspaceId:i._id,userId:e}}):A(i._id,e).then(()=>{M()}).catch(s=>{t.handleError(s,{component:"WorkspaceSettingsUsers",action:"handleRemoveUser",metadata:{workspaceId:i._id,userId:e}})}));var e}})]})]},a.id??o)})}),0===f.length&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:r("users.noMembers")})]})};function Ce({onInvite:s,workspaceId:i}){const{t:n}=t.useTranslation(),{inviteMember:r,getWorkspace:o}=t.useSaaSWorkspaces(),{settings:c}=t.useSaaSSettings(),[l,u]=a.useState(""),[m,p]=a.useState(null),x=c?.workspace.roles??m?.roles??[],g=t.pickDefaultRole(x,c?.workspace.defaultRole),[f,b]=a.useState(g),[h,S]=a.useState(!1),[v,j]=a.useState(null),[N,A]=a.useState(null),y=de();a.useEffect(()=>{!f&&g&&b(g)},[g]),a.useEffect(()=>{i&&o(i).then(p).catch(e=>{t.handleError(e,{component:"InviteMember",action:"getWorkspace"})})},[i]);const C=()=>{j(null),A(null),u(""),b(g)};return e.jsxs("div",{className:"flex gap-2 flex-col gap-y-2",children:[v&&e.jsx(t.StatusBanner,{variant:"error",message:v}),N&&e.jsx(t.StatusBanner,{variant:"success",message:N}),e.jsxs("div",{children:[e.jsx(t.Label,{children:n("users.inviteByEmail")}),e.jsx(t.Input,{type:"email",value:l,onChange:e=>u(e.target.value),placeholder:n("users.emailPlaceholder")})]}),e.jsxs("div",{children:[e.jsx(t.Label,{children:n("users.role")}),e.jsxs(be,{value:f,onValueChange:b,children:[e.jsx(Se,{children:e.jsx(d.SelectValue,{placeholder:n("users.selectRole")})}),e.jsx(Ne,{children:x.map(s=>e.jsx(Ae,{value:s,children:s},s))})]})]}),e.jsx("div",{children:e.jsx(t.Button,{progress:h,onClick:async()=>{const e=l.trim();if(!e)return void j(n("users.emailRequired"));/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?(S(!0),j(null),A(null),await r(i,e,f).then(()=>{A(n("users.invitations.sent",{email:e})),s?.()}).catch(s=>{t.handleError(s,{component:"InviteMember",action:"inviteMember",metadata:{workspaceId:i,email:e,role:f}}),j(s instanceof Error?s.message:n("users.inviteFailed"))}).finally(()=>{S(!1),y(C,6e3)})):j(n("users.invalidEmail"))},disabled:h||!l||!f,children:h?n("users.inviting"):n("users.inviteAs",{role:f})})})]})}function Te({state:s,canResend:i,canRevoke:n,onChanged:r}){const{t:o,formattingLocale:c}=t.useTranslation(),{formats:l}=t.useUIConfig(),{invitations:d,loading:u,error:m,busy:p,resend:x,revoke:g}=s,[f,b]=a.useState(null),[h,S]=a.useState(null),v=de(),[,j]=a.useState(0);if(a.useEffect(()=>{if(!d.some(e=>t.resendCooldownSeconds(e)>0))return;const e=setInterval(()=>j(e=>e+1),1e3);return()=>clearInterval(e)},[d]),!u&&0===d.length&&!m)return null;const N=e=>e?t.formatDate(e,c,l?.date??{dateStyle:"medium"}):"";return e.jsxs("div",{className:"mb-4",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:o("users.invitations.title")}),e.jsx("span",{className:"text-xs text-muted-foreground",children:o("users.invitations.pendingCount",{count:s.pendingCount})})]}),m&&e.jsx(t.StatusBanner,{variant:"error",message:m}),h&&e.jsx(t.StatusBanner,{variant:"success",message:h}),e.jsx("ul",{className:"space-y-2",children:d.map(s=>{const a=t.isInvitationLapsed(s),c="invited"===s.status&&!a,l=c?t.resendCooldownSeconds(s):0,d=p===s._id;return e.jsx("li",{className:"rounded-md border p-3",children:e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:"truncate text-sm font-medium",children:s.email}),e.jsx("span",{className:"rounded bg-muted px-2 py-0.5 text-xs",children:s.role}),e.jsx("span",{className:"rounded px-2 py-0.5 text-xs "+(c?"bg-info/15 text-info":"accepted"===s.status?"bg-success/15 text-success":"bg-muted text-muted-foreground"),children:o(`users.invitations.status.${a?"expired":s.status}`)})]}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[o("users.invitations.sentAt",{date:N(s.lastSentAt??s.invitedAt)}),c&&s.validTill&&e.jsxs(e.Fragment,{children:[" · ",o("users.invitations.expiresAt",{date:N(s.validTill)})]})]})]}),(i&&(c||a)||n&&c)&&e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[i&&e.jsx(t.Button,{variant:"outline",size:"sm",disabled:d||l>0,progress:d,onClick:()=>(e=>{x(e._id).then(()=>{S(o("users.invitations.sent",{email:e.email})),v(()=>S(null),6e3),r()}).catch(()=>{})})(s),children:l>0?o("users.invitations.resendIn",{minutes:Math.max(1,Math.ceil(l/60))}):o("users.invitations.resend")}),n&&c&&e.jsx(t.Button,{variant:"destructive",size:"sm",disabled:d,onClick:()=>b(s),children:o("users.invitations.revoke")})]})]})},s._id)})}),e.jsx(t.AlertDialog,{open:null!==f,onOpenChange:e=>!e&&b(null),children:e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:o("users.invitations.revokeTitle")}),e.jsx(t.AlertDialogDescription,{children:o("users.invitations.revokeConfirm",{email:f?.email??""})})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{children:o("settings.common.cancel")}),e.jsx(t.AlertDialogAction,{onClick:()=>{return f&&(e=f,b(null),void g(e._id).then(r).catch(()=>{}));var e},className:"bg-destructive hover:bg-destructive/90 focus:ring-destructive",children:o("users.invitations.revoke")})]})]})})]})}const we=({workspace:a,section:i,setSection:n})=>{const{t:r}=t.useTranslation(),{settings:o}=t.useSaaSSettings(),{appPermissions:c}=t.usePermissionConfig(),{visible:l}=t.useUIVisibility(),d=t.workspaceCanBeDeleted(o),u=t.appPermissionCatalogue(o,c).length>0,m=(e,s)=>l(s=>s.settings?.sections?.[e],s),p=m(t.SettingsScreen.Profile),x=m(t.SettingsScreen.Security),g=m(t.SettingsScreen.Devices),f=m(t.SettingsScreen.ConnectedAgents),b=m(t.SettingsScreen.General,t.Permission.WORKSPACE_SETTINGS_VIEW),h=m(t.SettingsScreen.Users,t.Permission.WORKSPACE_MEMBERS_VIEW),S=m(t.SettingsScreen.Subscription,t.Permission.WORKSPACE_BILLING_VIEW),v=m(t.SettingsScreen.Usage,t.Permission.WORKSPACE_USAGE_VIEW),j=m(t.SettingsScreen.Credits,t.Permission.WORKSPACE_BILLING_VIEW),N=m(t.SettingsScreen.Features,t.Permission.WORKSPACE_FEATURES_VIEW),A=m(t.SettingsScreen.Notifications),y=m(t.SettingsScreen.Permissions)&&u,C=m(t.SettingsScreen.Danger,t.Permission.WORKSPACE_DELETE)&&d,T=p||x||g||f,w=b||h||S||v||j||N||A||y||C,k=(s,a,r)=>e.jsx(t.SidebarNavItem,{icon:a,label:r,active:i===s,onClick:()=>n(s)});return e.jsxs("div",{className:"w-full sm:w-56 sm:h-full flex flex-col space-y-4 sm:space-y-6 shrink-0",children:[a&&e.jsx("div",{className:"sticky top-0 z-10 bg-muted border-b p-2 py-4 pe-10 sm:pe-2",children:e.jsxs("div",{className:"flex items-center gap-x-2",children:[a.image&&a.image.trim()&&e.jsx("div",{className:"bg-info/15 rounded flex items-center justify-center text-info font-medium px-0.5 py-0.5",style:{width:"40px",height:"40px",minWidth:"40px",minHeight:"40px"},children:e.jsx("img",{src:a.image,className:"w-full h-full object-contain",style:{width:"36px",height:"36px",maxWidth:"36px",maxHeight:"36px",objectFit:"contain"},alt:a.name})}),e.jsxs("div",{className:t.cn("flex-1 min-w-0",a.image?"":"ps-2"),children:[e.jsx("div",{className:"font-medium text-sm line-clamp-1 text-ellipsis overflow-hidden",children:a.name}),e.jsx("div",{className:"text-xs text-muted-foreground",children:a.workspaceId})]})]})}),T&&e.jsxs(t.SidebarNavSection,{title:r("settings.sidebar.account"),children:[p&&k(t.SettingsScreen.Profile,e.jsx(s.UserIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.profile")),x&&k(t.SettingsScreen.Security,e.jsx(s.KeyRound,{className:"h-3.5 w-3.5"}),r("settings.sidebar.security")),g&&k(t.SettingsScreen.Devices,e.jsx(s.MonitorSmartphone,{className:"h-3.5 w-3.5"}),r("settings.sidebar.devices")),f&&k(t.SettingsScreen.ConnectedAgents,e.jsx(s.Bot,{className:"h-3.5 w-3.5"}),r("security.connectedAgentsTitle"))]}),w&&e.jsxs(t.SidebarNavSection,{title:r("settings.sidebar.workspace"),children:[b&&k(t.SettingsScreen.General,e.jsx(s.SettingsIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.general")),h&&k(t.SettingsScreen.Users,e.jsx(s.UsersIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.users")),S&&k(t.SettingsScreen.Subscription,e.jsx(s.CreditCard,{className:"h-3.5 w-3.5"}),r("settings.sidebar.subscription")),v&&k(t.SettingsScreen.Usage,e.jsx(s.BarChart3,{className:"h-3.5 w-3.5"}),r("settings.sidebar.usage")),j&&k(t.SettingsScreen.Credits,e.jsx(s.Coins,{className:"h-3.5 w-3.5"}),r("settings.sidebar.credits")),N&&k(t.SettingsScreen.Features,e.jsx(s.ToggleRight,{className:"h-3.5 w-3.5"}),r("settings.sidebar.features")),A&&k(t.SettingsScreen.Notifications,e.jsx(s.Bell,{className:"h-3.5 w-3.5"}),r("settings.sidebar.notifications")),y&&k(t.SettingsScreen.Permissions,e.jsx(s.Shield,{className:"h-3.5 w-3.5"}),r("settings.sidebar.permissions")),C&&k(t.SettingsScreen.Danger,e.jsx(s.AlertTriangle,{className:"h-3.5 w-3.5"}),r("settings.sidebar.danger"))]})]})},ke={[t.SettingsScreen.Profile]:"settings.titles.profile",[t.SettingsScreen.Security]:"settings.titles.security",[t.SettingsScreen.Devices]:"settings.titles.devices",[t.SettingsScreen.ConnectedAgents]:"security.connectedAgentsTitle",[t.SettingsScreen.General]:"settings.titles.general",[t.SettingsScreen.Users]:"settings.titles.users",[t.SettingsScreen.Subscription]:"settings.titles.subscription",[t.SettingsScreen.Usage]:"settings.titles.usage",[t.SettingsScreen.Credits]:"settings.titles.credits",[t.SettingsScreen.Features]:"settings.titles.features",[t.SettingsScreen.Notifications]:"settings.titles.notifications",[t.SettingsScreen.Permissions]:"settings.titles.permissions",[t.SettingsScreen.Danger]:"settings.titles.danger"},Ee=({ui:s,...i})=>{const n=t.useUIConfig(),r=a.useMemo(()=>t.mergeUIConfig(n,s),[n,s]);return s?e.jsx(t.UIConfigProvider,{ui:r,children:e.jsx(Pe,{...i})}):e.jsx(Pe,{...i})},Pe=({workspace:i,onClose:n,open:r,onOpenChange:o,defaultSection:c=t.SettingsScreen.Profile,section:l,onSectionChange:d,showTrigger:u=!0,trigger:m})=>{const{t:p,dir:x}=t.useTranslation(),{visible:f}=t.useUIVisibility(),[b,h]=a.useState(!1),[S,j]=a.useState(c),y=void 0!==r?r:b,C=o||h,k=void 0!==l?l:S,E=d||j,P=e=>f(s=>s.settings?.sections?.[e]),M=P(k)?k:Object.values(t.SettingsScreen).find(P)??null,U=void 0===l&&c===t.SettingsScreen.Profile,[R,B]=a.useState(U),_=a.useRef(M),L=a.useRef(null),G=a.useRef(null),K=a.useRef(R);a.useEffect(()=>{K.current!==R&&(K.current=R,"undefined"==typeof window||window.innerWidth>=640||(R?G:L).current?.focus())},[R]),a.useEffect(()=>{_.current!==M&&(_.current=M,B(!1))},[M]),a.useEffect(()=>{y&&B(U)},[y]);const{emit:F}=t.useFunnel(),O=a.useRef(!1),W=a.useRef(null);a.useEffect(()=>y?M?O.current?void(W.current!==M&&(W.current=M,F("workspace_settings_section_viewed",{section:M}))):(O.current=!0,W.current=M,void F("workspace_settings_opened",{section:M})):void 0:(O.current=!1,void(W.current=null)),[y,M,F]);if(!i||!M)return null;const V=e.jsx(t.Button,{variant:"outline",size:"icon","aria-label":p("settings.common.openSettings"),children:e.jsx(s.Settings,{className:"h-4 w-4"})});return e.jsxs(t.Dialog,{open:y,onOpenChange:e=>{C(e),!e&&n&&n()},children:[u&&e.jsx(t.DialogTrigger,{asChild:!0,children:m||V}),e.jsxs(t.DialogContent,{dir:x,className:"flex flex-col sm:flex-row max-w-2xl min-w-full md:min-w-[800px] xl:min-w-[960px] p-0 m-0 bg-muted h-dvh max-h-dvh sm:h-auto sm:max-h-[90vh] sm:min-h-[600px] overflow-hidden gap-x-0 space-x-0",children:[e.jsx(t.DialogDescription,{className:"sr-only",children:p(ke[M])}),e.jsx("div",{ref:G,tabIndex:-1,className:t.cn("flex-col flex-1 min-h-0 overflow-y-auto overscroll-contain px-2 pb-2 sm:p-0 sm:flex sm:flex-none focus:outline-none",R?"flex":"hidden"),children:e.jsx(we,{workspace:i,section:M,setSection:e=>{E(e),B(!1)}})}),e.jsxs("div",{ref:L,tabIndex:-1,className:t.cn("flex-1 p-4 sm:p-6 overflow-auto flex-col bg-background sm:flex focus:outline-none",R?"hidden":"flex"),children:[e.jsxs("div",{className:"flex items-center gap-1 mb-4 pe-10 sm:pe-0",children:[e.jsx(t.Button,{variant:"ghost",size:"icon",className:"sm:hidden -ms-2 shrink-0 text-muted-foreground","aria-label":p("settings.common.back"),onClick:()=>B(!0),children:e.jsx(s.ArrowLeft,{className:"h-5 w-5 rtl:rotate-180"})}),e.jsx(t.DialogTitle,{className:"text-xl font-semibold min-w-0 truncate",children:p(ke[M])})]}),e.jsxs("div",{className:"sm:max-h-[500px] xl:max-h-[65vh] overflow-y-auto",children:[M===t.SettingsScreen.Profile&&e.jsx(Q,{workspace:i}),M===t.SettingsScreen.Security&&e.jsx(ee,{}),M===t.SettingsScreen.Devices&&e.jsx(A,{}),M===t.SettingsScreen.ConnectedAgents&&e.jsx(g,{}),M===t.SettingsScreen.General&&e.jsx(w,{workspace:i}),M===t.SettingsScreen.Users&&e.jsx(ye,{workspace:i}),M===t.SettingsScreen.Subscription&&e.jsx(me,{workspace:i}),M===t.SettingsScreen.Usage&&e.jsx(ge,{}),M===t.SettingsScreen.Credits&&e.jsx(v,{workspace:i}),M===t.SettingsScreen.Features&&e.jsx(T,{workspaceId:i._id?.toString()}),M===t.SettingsScreen.Notifications&&e.jsx(D,{workspace:i}),M===t.SettingsScreen.Permissions&&e.jsx(I,{workspace:i}),M===t.SettingsScreen.Danger&&e.jsx(N,{workspace:i})]})]})]})]})};var De=Object.freeze({__proto__:null,SETTINGS_SCREENS:t.SETTINGS_SCREENS,SettingsScreen:t.SettingsScreen,WorkspaceSettingsDialog:Ee,default:Ee});exports.Select=be,exports.SelectContent=Ne,exports.SelectItem=Ae,exports.SelectTrigger=Se,exports.SelectValue=he,exports.SettingsDialog=De;
|