@bcrumbs.net/inbox 0.0.60 → 0.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/assets/ar/inbox.json +16 -3
  2. package/assets/en/inbox.json +15 -2
  3. package/index.cjs.js +49055 -49383
  4. package/index.esm.js +49059 -49387
  5. package/package.json +4 -4
  6. package/playwright.config.d.ts +9 -0
  7. package/src/app/ai/components/Crumby/CrumbyComposer.d.ts +1 -1
  8. package/src/app/ai/components/playground/Button.d.ts +1 -1
  9. package/src/app/ai/components/playground/ThreadMessages.d.ts +5 -1
  10. package/src/app/ai/components/playground/TooltipIconButton.d.ts +2 -2
  11. package/src/app/auth/components/UserAvatar/AccountSettingsDropdown.d.ts +3 -5
  12. package/src/app/auth/hooks/useRoles.d.ts +1 -0
  13. package/src/app/auth/pages/Auth.style.d.ts +68 -0
  14. package/src/app/auth/pages/Login.style.d.ts +1 -0
  15. package/src/app/auth/pages/Register.style.d.ts +5 -0
  16. package/src/app/auth/utils/avatar.d.ts +1 -0
  17. package/src/app/auth/utils/resetWorkspaceRoleState.d.ts +4 -0
  18. package/src/app/broadcast/components/BroadcastAnalysisContent.d.ts +3 -1
  19. package/src/app/broadcast/components/BroadcastAnalysisReciepients.d.ts +6 -1
  20. package/src/app/broadcast/components/BroadcastAnalysisReciepientsHeader.d.ts +7 -1
  21. package/src/app/contact/components/ContactFilterOptions.d.ts +4 -1
  22. package/src/app/contact/components/ContactFormFields.d.ts +4 -1
  23. package/src/app/dashboard/components/AgentPerformanceCard.d.ts +2 -1
  24. package/src/app/dashboard/components/BroadcastCampaignProgressCard.d.ts +3 -1
  25. package/src/app/dashboard/components/DashboardExportButton.d.ts +8 -0
  26. package/src/app/dashboard/components/DashboardSections.d.ts +2 -1
  27. package/src/app/dashboard/components/OpenedChatsCard.d.ts +5 -1
  28. package/src/app/dashboard/components/TagPerformanceCard.d.ts +2 -1
  29. package/src/app/dashboard/utils/dashboardReportExports.d.ts +100 -0
  30. package/src/app/generic/components/PhoneDigitsInput.d.ts +7 -0
  31. package/src/app/generic/hooks/useResourceColumns.d.ts +3 -1
  32. package/src/app/inbox/components/Chat/ChatHeader.d.ts +2 -0
  33. package/src/app/inbox/components/Chat/NoConvSelected.d.ts +5 -0
  34. package/src/app/inbox/components/Chat/index.d.ts +4 -1
  35. package/src/app/inbox/components/NewDetails/ClientSection.d.ts +2 -1
  36. package/src/app/inbox/components/NewDetails/UserHeader.d.ts +2 -1
  37. package/src/app/inbox/components/NewDetails/index.d.ts +2 -1
  38. package/src/app/inbox/components/Shared/Inbox.d.ts +4 -1
  39. package/src/app/inbox/components/Shared/MobileChatDetailsSlider.d.ts +14 -0
  40. package/src/app/inbox/components/Shared/MobileDetailsSwipeHint.d.ts +9 -0
  41. package/src/app/inbox/components/Shared/MobileMenu.d.ts +2 -1
  42. package/src/app/inbox/hooks/useConvActions.d.ts +1 -0
  43. package/src/app/inbox/hooks/useConversationsPerodicFetch.d.ts +3 -0
  44. package/src/app/inbox/hooks/useStartedTimeAgo.d.ts +5 -0
  45. package/src/app/inbox/utils/convs.d.ts +8 -1
  46. package/src/app/inbox/utils/inboxAssignableAis.d.ts +11 -1
  47. package/src/app/layout/constants/index.d.ts +10 -10
  48. package/src/app/layout/hooks/useCrumbyEnabled.d.ts +18 -0
  49. package/src/app/layout/hooks/useCrumbyUpgradeAction.d.ts +10 -0
  50. package/src/app/managemnet/config/types.d.ts +2 -0
  51. package/src/app/onboarding/utils/onboardingChecklistPersistence.d.ts +18 -0
  52. package/src/app/onboarding/utils/onboardingChecklistStorage.d.ts +10 -1
  53. package/src/app/resources/components/Integrations/Facebook/PagePickerPopup.d.ts +3 -1
  54. package/src/app/resources/components/ListResources/Utils.d.ts +1 -0
  55. package/src/app/subscriptions/components/NewSubscription/OnboardingStepper.d.ts +8 -0
  56. package/src/app/subscriptions/components/NewSubscription/SubscriptionFailed.d.ts +6 -0
  57. package/src/app/subscriptions/components/NewSubscription/SubscriptionName.d.ts +1 -1
  58. package/src/app/subscriptions/components/NewSubscription/SubscriptionSuccess.d.ts +5 -2
  59. package/src/app/subscriptions/components/NewSubscription/WorkspaceStepLayout.d.ts +11 -0
  60. package/src/app/subscriptions/components/Plans/ShowcasePlans.d.ts +3 -1
  61. package/src/app/subscriptions/components/SubscriptionSwitcher/Switcher.d.ts +1 -1
  62. package/src/app/subscriptions/pages/NewSubscription.d.ts +1 -1
  63. package/src/app/subscriptions/utils/newWorkspaceCheckout.d.ts +16 -0
  64. package/src/assets/locales/translations.d.ts +78 -0
  65. package/src/graphql.autogenerated.d.ts +511 -1
  66. package/src/lib/EmbeddedMobileMenu.d.ts +2 -1
  67. package/src/routes/PrivateRoutes.d.ts +1 -5
  68. package/src/utils/exportCsv.d.ts +8 -0
  69. package/src/utils/textUtils.d.ts +2 -0
  70. package/src/app/broadcast/components/BroadcastTargetingComplianceNotice.d.ts +0 -2
  71. package/src/app/generic/hooks/WithMenuConfig.d.ts +0 -1
  72. package/src/app/layout/components/language/LanguageDropdown.d.ts +0 -9
@@ -26,6 +26,9 @@ interface BuildAgentsMenuOptions {
26
26
  assignableAis?: Ai[];
27
27
  onAssignableAiSelect?: (aiId: string) => void;
28
28
  onUnassigneeSelect?: () => void;
29
+ /** When false, Crumby is shown locked with an Upgrade CTA */
30
+ isCrumbyEnabled?: boolean;
31
+ onCrumbyUpgrade?: () => void;
29
32
  t: any;
30
33
  includeAllOption?: boolean;
31
34
  onAllSelect?: () => void;
@@ -45,9 +48,13 @@ export declare function getLastMessage(messages: Maybe<Message[]> | undefined, f
45
48
  export declare function hashStatuses(messages?: Maybe<Message[]> | null): string;
46
49
  export declare function isOutside24HourWindow(message: Message | null | undefined): boolean;
47
50
  export declare function formatSeconds(value: number): string;
51
+ type StartedTimeAgoTranslation = (key: string, options?: {
52
+ count?: number;
53
+ }) => string;
54
+ export declare function formatStartedTimeAgo(createdAt: string, t: StartedTimeAgoTranslation): string;
48
55
  export declare const getMessageStatusIcon: (message: Message | null | undefined) => import("@emotion/react/jsx-runtime").JSX.Element | null;
49
56
  export declare const getDisplayName: (clientData: ClientQuery['client'] | undefined) => string;
50
- export declare const buildAgentsMenu: ({ agents, myAgent, selectedAgentId, selectedAiId, onAgentSelect, assignableAis, onAssignableAiSelect, onUnassigneeSelect, t, includeAllOption, onAllSelect, addSeparatorAtLast, counts, showAllAgents, }: BuildAgentsMenuOptions) => ActionItem[];
57
+ export declare const buildAgentsMenu: ({ agents, myAgent, selectedAgentId, selectedAiId, onAgentSelect, assignableAis, onAssignableAiSelect, onUnassigneeSelect, isCrumbyEnabled, onCrumbyUpgrade, t, includeAllOption, onAllSelect, addSeparatorAtLast, counts, showAllAgents, }: BuildAgentsMenuOptions) => ActionItem[];
51
58
  export declare const buildLifeCycleMenu: ({ convStages, selectedStageId, onStageSelect, t, addSeparatorAtLast, }: BuildLifeCycleMenuOptions) => ActionItem[];
52
59
  interface BuildTagsMenuOptions {
53
60
  conversationTags: Tag[];
@@ -1,10 +1,20 @@
1
1
  import { Ai } from '../../../graphql.autogenerated';
2
2
  /** Stored name for the primary Crumby assistant record */
3
3
  export declare const CRUMBY_AI_RECORD_NAME = "Crumby AI";
4
+ /** Placeholder id used when Crumby is shown as a locked upgrade option */
5
+ export declare const CRUMBY_UPGRADE_PLACEHOLDER_ID = "__crumby_upgrade__";
6
+ export declare const isCrumbyAi: (ai: Pick<Ai, 'name' | 'type'> | undefined | null) => boolean;
7
+ export declare const createCrumbyUpgradePlaceholder: () => Ai;
4
8
  /** Primary Crumby assistant rows first, then remaining AIs by name */
5
9
  export declare function sortInboxAssignableAis(ais: Ai[]): Ai[];
6
10
  /**
7
11
  * Workspace AIs users may assign or filter by in the inbox.
8
- * Excludes internal assistants and hides Crumby when the feature flag is off.
12
+ * Excludes internal assistants. When Crumby is not plan-enabled, it is omitted
13
+ * from filters; assign menus inject a locked upgrade entry separately.
9
14
  */
10
15
  export declare function getInboxAssignableAis(aiAgents: Ai[] | undefined, isCrumbyEnabled: boolean): Ai[];
16
+ /**
17
+ * Assign-menu list: always includes Crumby. When the feature is locked, uses an
18
+ * existing Crumby record if present, otherwise a non-assignable placeholder.
19
+ */
20
+ export declare function getInboxAssignableAisForMenu(aiAgents: Ai[] | undefined, isCrumbyEnabled: boolean, existingCrumby?: Ai | null): Ai[];
@@ -8,8 +8,18 @@ export declare const BCMainNavigation: {
8
8
  action: string;
9
9
  description: string;
10
10
  tags: string[];
11
+ requiredPermissions: Permission[];
11
12
  subMenu?: undefined;
13
+ } | {
14
+ label: string;
15
+ title: string;
16
+ icon: import("@emotion/react/jsx-runtime").JSX.Element;
17
+ link: string;
18
+ action: string;
19
+ description: string;
20
+ tags: string[];
12
21
  requiredPermissions?: undefined;
22
+ subMenu?: undefined;
13
23
  } | {
14
24
  label: string;
15
25
  title: string;
@@ -38,16 +48,6 @@ export declare const BCMainNavigation: {
38
48
  }[];
39
49
  tags: string[];
40
50
  requiredPermissions: Permission[];
41
- } | {
42
- label: string;
43
- title: string;
44
- icon: import("@emotion/react/jsx-runtime").JSX.Element;
45
- link: string;
46
- action: string;
47
- description: string;
48
- tags: string[];
49
- requiredPermissions: Permission[];
50
- subMenu?: undefined;
51
51
  })[];
52
52
  leftBottomLinks: {
53
53
  label: string;
@@ -1 +1,19 @@
1
+ /**
2
+ * Whether the workspace has the paid AI features enabled: the AI tab (Playground,
3
+ * Sources), conversation assignment to Crumby, and the AI-specific onboarding steps.
4
+ * Gated by the plan's `aiEnabled` flag (or a feature-flag override).
5
+ *
6
+ * NOTE: This does NOT gate the Crumby assistant chat widget — that is available on
7
+ * all plans (including free) via `useCrumbyAssistantEnabled`.
8
+ */
1
9
  export declare const useCrumbyEnabled: () => boolean;
10
+ /**
11
+ * Whether the Crumby assistant chat widget should be shown. The assistant is available
12
+ * on every plan, including free — unlike the paid AI features gated by `useCrumbyEnabled`.
13
+ *
14
+ * Returns a constant `true` for now (no rule). It is kept as a hook to act as the single
15
+ * seam for future gating — e.g. a kill switch (feature flag / PostHog), a whitelabel with
16
+ * no AI, or a backend "assistant enabled" flag — so only this hook changes, not every call
17
+ * site. It also keeps the call site readable and symmetric with `useCrumbyEnabled`.
18
+ */
19
+ export declare const useCrumbyAssistantEnabled: () => boolean;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared upgrade CTA for Crumby when the plan/feature flag does not enable AI.
3
+ * Owners/admins go to the workspace upgrade page; others see a contact-admin dialog.
4
+ */
5
+ export declare const useCrumbyUpgradeAction: () => {
6
+ isCrumbyEnabled: boolean;
7
+ canManageUpgrade: boolean;
8
+ requestCrumbyUpgrade: any;
9
+ CrumbyUpgradeDialog: import("@emotion/react/jsx-runtime").JSX.Element;
10
+ };
@@ -62,5 +62,7 @@ export interface ResourceDefinition<T> {
62
62
  unDeleteMutation?: Omit<BackendMutationDefinition<T>, 'fields'>;
63
63
  archiveMutation?: Omit<BackendMutationDefinition<T>, 'fields'>;
64
64
  unArchiveMutation?: Omit<BackendMutationDefinition<T>, 'fields'>;
65
+ blockMutation?: Omit<BackendMutationDefinition<T>, 'fields'>;
66
+ unBlockMutation?: Omit<BackendMutationDefinition<T>, 'fields'>;
65
67
  client?: Apollo.ApolloClient<Apollo.NormalizedCacheObject>;
66
68
  }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Durable persistence for onboarding checklist data (state + dismissed flag).
3
+ *
4
+ * Backed by cookies on purpose: logout runs `auth.clearAllAppStorage()` which wipes
5
+ * localStorage/sessionStorage but NOT cookies, so progress and the "finished" flag
6
+ * survive a logout → login cycle (same browser).
7
+ *
8
+ * This is a temporary stand-in for a backend-owned onboarding record. When the backend
9
+ * returns the flag + progress, swap the implementation of `onboardingChecklistStore`
10
+ * (or its call sites) for the server-backed read/writes — the get/set/remove shape
11
+ * matches the localStorage util so the change stays local.
12
+ */
13
+ /** Cookie-backed store mirroring the localStorage util's get/set/remove shape. */
14
+ export declare const onboardingChecklistStore: {
15
+ get(key: string): unknown;
16
+ set(key: string, value: unknown): void;
17
+ remove(key: string): void;
18
+ };
@@ -15,7 +15,8 @@ export declare function getOnboardingChecklistStorageKey(userId: string | number
15
15
  /** Pre-workspace-scoping key: showcase_onboarding_checklist_{userId} */
16
16
  export declare function getLegacyOnboardingChecklistStorageKey(userId: string | number): string;
17
17
  /**
18
- * Load checklist for user + workspace. Migrates legacy user-only (and empty-workspace) keys once.
18
+ * Load checklist for user + workspace from the durable (cookie) store. Migrates the older
19
+ * localStorage keys (scoped, legacy user-only, empty-workspace) into the cookie store once.
19
20
  * Returns null when workspace context is not available.
20
21
  */
21
22
  export declare function loadOnboardingChecklistState(userId: string | number, workspaceId?: string | number | null): OnboardingChecklistState | null;
@@ -25,6 +26,14 @@ export declare function loadOnboardingChecklistState(userId: string | number, wo
25
26
  * first load and creates the checklist scoped to whichever workspace the user landed in.
26
27
  */
27
28
  export declare function getOnboardingChecklistPendingKey(userId: string | number): string;
29
+ /**
30
+ * Persisted "user finished / dismissed onboarding for this workspace" marker.
31
+ * Unlike the checklist key (which is removed on finish), this survives so that a later
32
+ * logout → login does not recreate a fresh checklist for a workspace already onboarded.
33
+ */
34
+ export declare function getOnboardingChecklistDismissedKey(userId: string | number, workspaceId?: string | number | null): string;
35
+ export declare function isOnboardingChecklistDismissed(userId: string | number, workspaceId?: string | number | null): boolean;
36
+ export declare function markOnboardingChecklistDismissed(userId: string | number, workspaceId?: string | number | null): void;
28
37
  /** One-shot: open checklist popover after sign-in (session tab only). */
29
38
  export declare const ONBOARDING_CHECKLIST_SESSION_AUTOPEN_KEY = "showcase_onboarding_checklist_session_autopen";
30
39
  export declare function clearOnboardingChecklistSessionAutopen(): void;
@@ -1,8 +1,10 @@
1
1
  import { IntegrationWithSecrets } from '../../../../../graphql.autogenerated';
2
2
  import { FBPage } from '../../../hooks/useFBPagesHook';
3
- export declare function PagePickerPopup({ onClose, setInitialValues, pages, rtl, }: {
3
+ export declare function PagePickerPopup({ onClose, setInitialValues, pages, userAccessToken, rtl, }: {
4
4
  onClose: () => void;
5
5
  setInitialValues: (initialResource: Partial<IntegrationWithSecrets>) => void;
6
6
  pages: FBPage[];
7
+ /** Short-lived Facebook user token; exchanged server-side for a long-lived page token. */
8
+ userAccessToken: string;
7
9
  rtl?: boolean;
8
10
  }): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { TFunction } from "i18next";
2
3
  import { Row, Action } from "@bcrumbs.net/bc-ui";
3
4
  import { ResourceDefinition } from "../../config";
@@ -0,0 +1,8 @@
1
+ export type OnboardingStepStatus = 'complete' | 'active' | 'upcoming';
2
+ export type OnboardingStepKey = 'registration' | 'workspace' | 'checkout';
3
+ type OnboardingStepperProps = {
4
+ /** Status per step; defaults to registration complete, workspace active, checkout upcoming. */
5
+ statuses?: Partial<Record<OnboardingStepKey, OnboardingStepStatus>>;
6
+ };
7
+ export declare const OnboardingStepper: ({ statuses }: OnboardingStepperProps) => import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export default OnboardingStepper;
@@ -0,0 +1,6 @@
1
+ type SubscriptionFailedProps = {
2
+ loading?: boolean;
3
+ onRetry: () => void;
4
+ };
5
+ export declare const SubscriptionFailed: ({ loading, onRetry }: SubscriptionFailedProps) => import("@emotion/react/jsx-runtime").JSX.Element;
6
+ export default SubscriptionFailed;
@@ -1,5 +1,5 @@
1
1
  type SubscriptionNameProps = {
2
- onSubmit: (companyName: any) => void;
2
+ onSubmit: (companyName: string) => void;
3
3
  };
4
4
  export declare const SubscriptionName: (props: SubscriptionNameProps) => import("@emotion/react/jsx-runtime").JSX.Element;
5
5
  export default SubscriptionName;
@@ -1,5 +1,8 @@
1
1
  type SubscriptionSuccessProps = {
2
- sessionId?: string;
2
+ /** Workspace that was created/paid for; activated before navigating to the inbox. */
3
+ workspaceId?: number;
4
+ /** When false, copy reflects activation without a payment (free plan). */
5
+ paid?: boolean;
3
6
  };
4
- export declare const SubscriptionSuccess: ({ sessionId, }: SubscriptionSuccessProps) => import("@emotion/react/jsx-runtime").JSX.Element;
7
+ export declare const SubscriptionSuccess: ({ workspaceId, paid }: SubscriptionSuccessProps) => import("@emotion/react/jsx-runtime").JSX.Element;
5
8
  export default SubscriptionSuccess;
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { OnboardingStepKey, OnboardingStepStatus } from './OnboardingStepper';
3
+ type WorkspaceStepLayoutProps = {
4
+ statuses?: Partial<Record<OnboardingStepKey, OnboardingStepStatus>>;
5
+ illustration: string;
6
+ title: string;
7
+ subtitle?: string;
8
+ children?: ReactNode;
9
+ };
10
+ export declare const WorkspaceStepLayout: ({ statuses, illustration, title, subtitle, children, }: WorkspaceStepLayoutProps) => import("@emotion/react/jsx-runtime").JSX.Element;
11
+ export default WorkspaceStepLayout;
@@ -10,6 +10,8 @@ type ShowcasePlansProps = {
10
10
  selectingPlan?: boolean;
11
11
  processing?: boolean;
12
12
  loadingPlanType?: PlanType | null;
13
+ /** Force the Crumby AI plan toggle on (e.g. deep-link from upgrade CTA). */
14
+ defaultIncludeAi?: boolean;
13
15
  };
14
- export declare const ShowcasePlans: ({ onPlanPicked, disableFreePlan, currentPlanType, currentTerm, selectingPlan, processing, loadingPlanType, }: ShowcasePlansProps) => import("@emotion/react/jsx-runtime").JSX.Element;
16
+ export declare const ShowcasePlans: ({ onPlanPicked, disableFreePlan, currentPlanType, currentTerm, selectingPlan, processing, loadingPlanType, defaultIncludeAi, }: ShowcasePlansProps) => import("@emotion/react/jsx-runtime").JSX.Element;
15
17
  export default ShowcasePlans;
@@ -17,4 +17,4 @@ export type SwitcherProps = {
17
17
  compact?: boolean;
18
18
  workspaceLogo?: React.ReactNode;
19
19
  };
20
- export declare function Switcher({ items, title, headerItems, footerItems, width, name, maxVisibleItems, addPlanWord, isLoading, plan, onDropdownStateChange, compact, workspaceLogo, }: SwitcherProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
+ export declare function Switcher({ items, title, footerItems, width, name, addPlanWord, isLoading, plan, onDropdownStateChange, compact, workspaceLogo, }: SwitcherProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -3,6 +3,6 @@ export type Props = {
3
3
  history: any;
4
4
  router: any;
5
5
  };
6
- export declare const NewSubscription: ({ router, }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
6
+ export declare const NewSubscription: ({ router }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
7
7
  declare const _default: any;
8
8
  export default _default;
@@ -0,0 +1,16 @@
1
+ import { PlanType } from '../../../graphql.billing.autogenerated';
2
+ /**
3
+ * Marker written right before redirecting to a hosted checkout (Polar/Stripe) from the
4
+ * new-workspace onboarding flow. Because the backend always returns hosted checkouts to
5
+ * `/billing/done`, the done page reads this per-tab marker to tell a new-workspace checkout
6
+ * apart from a normal upgrade, then routes the user back into the workspace stepper flow.
7
+ * It also remembers the plan so the failed screen can retry the same checkout.
8
+ */
9
+ export declare const NEW_WORKSPACE_PENDING_CHECKOUT_KEY = "bc_new_workspace_pending_checkout";
10
+ export type PendingCheckout = {
11
+ workspaceId: number;
12
+ planType: PlanType;
13
+ };
14
+ export declare function storePendingCheckout(value: PendingCheckout): void;
15
+ export declare function readPendingCheckout(): PendingCheckout | null;
16
+ export declare function clearPendingCheckout(): void;
@@ -22,10 +22,19 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
22
22
  auth: {
23
23
  e_mail: string;
24
24
  password: string;
25
+ signInTo: string;
26
+ signUpTo: string;
27
+ signUpSubtitle: string;
28
+ signUpGoogle: string;
29
+ signUpFacebook: string;
30
+ registerPanelTitle: string;
31
+ registerPanelDescription: string;
25
32
  welcomeToBC: string;
33
+ welcomeBackDescription: string;
26
34
  getStarted: string;
27
35
  keepMeSignedIn: string;
28
36
  forgetPassword: string;
37
+ or: string;
29
38
  login: string;
30
39
  register: string;
31
40
  loginFailed: string;
@@ -162,6 +171,24 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
162
171
  gravatarTooltip: string;
163
172
  terms: string;
164
173
  };
174
+ newWorkspaceFlow: {
175
+ steps: {
176
+ registration: string;
177
+ workspace: string;
178
+ checkout: string;
179
+ };
180
+ createTitle: string;
181
+ createSubtitle: string;
182
+ namePlaceholder: string;
183
+ createButton: string;
184
+ successTitle: string;
185
+ successSubtitle: string;
186
+ successSubtitleFree: string;
187
+ goToInbox: string;
188
+ failedTitle: string;
189
+ failedSubtitle: string;
190
+ tryAgain: string;
191
+ };
165
192
  subscriptions: {
166
193
  planName: string;
167
194
  subscriptions: string;
@@ -421,6 +448,9 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
421
448
  emptyMessagePreviewTitle: string;
422
449
  emptyMessagePreviewSubtitle: string;
423
450
  templateSelection: string;
451
+ templateLanguageMissing: string;
452
+ messageParametersMissing: string;
453
+ completeRequiredFields: string;
424
454
  messageParameters: string;
425
455
  analysis: {
426
456
  deliveryRate: string;
@@ -448,6 +478,14 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
448
478
  openBroadcastReport: string;
449
479
  messageSentAt: string;
450
480
  template: string;
481
+ retryFailed: string;
482
+ retryFailedDialogTitle: string;
483
+ retryFailedDialogDescription: string;
484
+ retryFailedConfirm: string;
485
+ retryFailedSuccessTitle: string;
486
+ retryFailedSuccessDescription: string;
487
+ retryFailedErrorTitle: string;
488
+ retryFailedErrorDescription: string;
451
489
  };
452
490
  recipientsReport: {
453
491
  pageTitle: string;
@@ -456,6 +494,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
456
494
  templateNameFilter: string;
457
495
  noRowsToExport: string;
458
496
  };
497
+ launch: string;
459
498
  };
460
499
  resources: {
461
500
  loginToFB: string;
@@ -524,8 +563,10 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
524
563
  modify: string;
525
564
  removeItem: string;
526
565
  archivingResource: string;
566
+ blockingResource: string;
527
567
  removingConfirmation: string;
528
568
  archivingConfirmation: string;
569
+ blockingConfirmation: string;
529
570
  launchingConfirmation: string;
530
571
  name: string;
531
572
  surname: string;
@@ -566,6 +607,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
566
607
  messageUpdated: string;
567
608
  endingConv: string;
568
609
  newConv: string;
610
+ conversationAssigned: string;
569
611
  newClient: string;
570
612
  clientUpdated: string;
571
613
  broadcast: string;
@@ -651,6 +693,23 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
651
693
  selectAll: string;
652
694
  clearAll: string;
653
695
  reports: string;
696
+ export: {
697
+ csv: string;
698
+ columns: {
699
+ date: string;
700
+ openedConversations: string;
701
+ conversations: string;
702
+ messagesReceived: string;
703
+ avgResponseTime: string;
704
+ successful: string;
705
+ totalRecipients: string;
706
+ successfulCampaigns: string;
707
+ failedCampaigns: string;
708
+ status: string;
709
+ count: string;
710
+ percentage: string;
711
+ };
712
+ };
654
713
  broadcast: {
655
714
  title: string;
656
715
  period: {
@@ -786,6 +845,8 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
786
845
  delete: string;
787
846
  submit: string;
788
847
  archive: string;
848
+ block: string;
849
+ unblock: string;
789
850
  close: string;
790
851
  date: string;
791
852
  time: string;
@@ -891,13 +952,19 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
891
952
  contactDeleteTitle: string;
892
953
  contactArchiveTitle: string;
893
954
  contactUnarchiveTitle: string;
955
+ contactBlockTitle: string;
956
+ contactUnblockTitle: string;
894
957
  unarchive: string;
895
958
  exportingClients: string;
896
959
  exportCompleted: string;
897
960
  exportFailed: string;
898
961
  noContactsToExport: string;
899
962
  selectedLifecycle: string;
963
+ active: string;
900
964
  archived: string;
965
+ blacklisted: string;
966
+ contactStatus: string;
967
+ blocked: string;
901
968
  };
902
969
  management: {
903
970
  title: string;
@@ -1102,6 +1169,10 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
1102
1169
  customExternalId: string;
1103
1170
  customExternalIdPlaceholder: string;
1104
1171
  gupshupChannelDescription: string;
1172
+ gupshupPartnerId: string;
1173
+ gupshupPartnerIdNote: string;
1174
+ gupshupPartnerIdCopied: string;
1175
+ gupshupPartnerIdCopyFailed: string;
1105
1176
  gupshupDisplayPhoneNumber: string;
1106
1177
  gupshupDisplayPhoneNumberPlaceholder: string;
1107
1178
  gupshupAccessToken: string;
@@ -1139,6 +1210,11 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
1139
1210
  test_numbers: string;
1140
1211
  suggested_qs: string;
1141
1212
  crumby_settings: string;
1213
+ upgrade: {
1214
+ cta: string;
1215
+ contactAdminTitle: string;
1216
+ contactAdminDescription: string;
1217
+ };
1142
1218
  playground: {
1143
1219
  welcomeMessage: string;
1144
1220
  askTheAIToAnalyzeYourData: string;
@@ -1335,6 +1411,8 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
1335
1411
  delete_confirmation: string;
1336
1412
  archive_confirmation: string;
1337
1413
  unarchive_confirmation: string;
1414
+ block_confirmation: string;
1415
+ unblock_confirmation: string;
1338
1416
  };
1339
1417
  send: string;
1340
1418
  }>, current?: string) => void;