@bcrumbs.net/inbox 0.0.58 → 0.0.60
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/{cb9c022b3cf80e0f.svg → 2998ffe42c3436c0.svg} +43 -43
- package/{594c01a9720e0657.svg → 396ba1d86a9997b1.svg} +42 -42
- package/assets/ar/inbox.json +268 -268
- package/assets/en/inbox.json +270 -270
- package/index.cjs.d.ts +1 -1
- package/index.cjs.js +9225 -9316
- package/index.esm.d.ts +1 -1
- package/index.esm.js +9228 -9319
- package/package.json +3 -3
- package/src/app/ai/components/Crumby/ChatView.d.ts +12 -0
- package/src/app/ai/components/Crumby/CrumbyComposer.d.ts +3 -0
- package/src/app/ai/components/Crumby/CrumbySendAction.d.ts +4 -0
- package/src/app/ai/components/Crumby/CrumbyWidget.d.ts +2 -0
- package/src/app/ai/components/Crumby/index.d.ts +1 -2
- package/src/app/auth/components/password-page/AuthPasswordPageLayout.d.ts +7 -0
- package/src/app/auth/components/password-page/ForgetPasswordFormView.d.ts +20 -0
- package/src/app/auth/components/password-page/PasswordFormView.d.ts +22 -0
- package/src/app/auth/components/password-page/PasswordSuccessView.d.ts +8 -0
- package/src/app/auth/pages/Forget.d.ts +0 -3
- package/src/app/broadcast/utils/helper.d.ts +2 -1
- package/src/app/dashboard/components/DashboardSections.d.ts +6 -2
- package/src/app/dashboard/components/OpenedChatsCard.d.ts +2 -1
- package/src/app/dashboard/components/TagPerformanceCard.d.ts +8 -0
- package/src/app/dashboard/utils/dateHelpers.d.ts +3 -0
- package/src/app/inbox/components/Chat/ChatContent.d.ts +1 -0
- package/src/app/inbox/components/Shared/SharedStyle.d.ts +0 -6
- package/src/app/inbox/hooks/useCanContribute.d.ts +3 -2
- package/src/app/layout/constants/index.d.ts +2 -1
- package/src/app/onboarding/components/OnboardingStepDetail.d.ts +10 -0
- package/src/app/onboarding/components/OnboardingView.d.ts +19 -0
- package/src/app/onboarding/components/onboardingStepGuide.d.ts +11 -0
- package/src/app/onboarding/components/useOnboardingChecklist.d.ts +30 -0
- package/src/app/onboarding/utils/onboardingChecklistStorage.d.ts +15 -2
- package/src/app/resources/components/Integrations/Facebook/PagePickerPopup.d.ts +1 -2
- package/src/app/resources/components/Integrations/Facebook/index.d.ts +3 -1
- package/src/app/resources/components/ListResources/Utils.d.ts +0 -1
- package/src/app/resources/hooks/useFBPagesHook.d.ts +1 -0
- package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionUsers.d.ts +1 -1
- package/src/assets/locales/translations.d.ts +69 -1
- package/src/graphql.autogenerated.d.ts +192 -4
- package/src/graphql.billing.autogenerated.d.ts +171 -0
- package/src/utils/localStorage.d.ts +1 -0
- package/src/utils/zohoOAuth.d.ts +16 -0
- package/src/app/onboarding/components/OnboardingChecklistWidget.d.ts +0 -3
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bcrumbs.net/inbox",
|
|
3
3
|
"description": "Inbox widget for Bread Crumbs portals",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.60",
|
|
5
5
|
"keyword": [
|
|
6
6
|
"bcrumbs",
|
|
7
7
|
"bc-ui",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"graphql": "15.4.0"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@bcrumbs.net/bc-shared": "^0.0.
|
|
28
|
-
"@bcrumbs.net/bc-ui": "^0.0.
|
|
27
|
+
"@bcrumbs.net/bc-shared": "^0.0.10",
|
|
28
|
+
"@bcrumbs.net/bc-ui": "^0.0.15",
|
|
29
29
|
"@bcrumbs.net/bc-api": "^0.0.47",
|
|
30
30
|
"@azure/storage-blob": "^12.25.0"
|
|
31
31
|
},
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
export type ChatViewProps = {
|
|
3
|
+
rtl: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
/** When set, shows a back arrow that returns to the onboarding checklist (still in progress). */
|
|
6
|
+
onBack?: () => void;
|
|
7
|
+
/** Text carried over from the onboarding input; sent once on mount, then consumed. */
|
|
8
|
+
pendingMessage?: string | null;
|
|
9
|
+
onPendingConsumed?: () => void;
|
|
10
|
+
};
|
|
11
|
+
/** Chat mode of the unified widget: Crumby header, thread, action chips, composer. */
|
|
12
|
+
export declare const ChatView: FC<ChatViewProps>;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export default CrumbyChat;
|
|
1
|
+
export { default } from './CrumbyWidget';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
type AuthPasswordPageLayoutProps = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
backgroundImage?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function AuthPasswordPageLayout({ children, backgroundImage }: AuthPasswordPageLayoutProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type ForgetPasswordFormViewProps = {
|
|
2
|
+
title: string;
|
|
3
|
+
subtitle: string;
|
|
4
|
+
emailLabel: string;
|
|
5
|
+
emailPlaceholder: string;
|
|
6
|
+
emailValue: string;
|
|
7
|
+
emailError?: string;
|
|
8
|
+
submitLabel: string;
|
|
9
|
+
footerText: string;
|
|
10
|
+
footerLinkText: string;
|
|
11
|
+
footerLinkTo: string;
|
|
12
|
+
showFooterLink?: boolean;
|
|
13
|
+
submitDisabled?: boolean;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
onBack?: () => void;
|
|
16
|
+
onEmailChange: (value: string) => void;
|
|
17
|
+
onSubmit: () => void;
|
|
18
|
+
};
|
|
19
|
+
export declare function ForgetPasswordFormView({ title, subtitle, emailLabel, emailPlaceholder, emailValue, emailError, submitLabel, footerText, footerLinkText, footerLinkTo, showFooterLink, submitDisabled, loading, onBack, onEmailChange, onSubmit, }: ForgetPasswordFormViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type PasswordFieldConfig = {
|
|
2
|
+
label: string;
|
|
3
|
+
placeholder: string;
|
|
4
|
+
value: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
visibility: 'password' | 'text';
|
|
7
|
+
onChange: (value: string) => void;
|
|
8
|
+
onToggleVisibility: () => void;
|
|
9
|
+
};
|
|
10
|
+
type PasswordFormViewProps = {
|
|
11
|
+
title: string;
|
|
12
|
+
subtitle: string;
|
|
13
|
+
submitLabel: string;
|
|
14
|
+
passwordField: PasswordFieldConfig;
|
|
15
|
+
confirmPasswordField: PasswordFieldConfig;
|
|
16
|
+
submitDisabled?: boolean;
|
|
17
|
+
loading?: boolean;
|
|
18
|
+
onBack?: () => void;
|
|
19
|
+
onSubmit: () => void;
|
|
20
|
+
};
|
|
21
|
+
export declare function PasswordFormView({ title, subtitle, submitLabel, passwordField, confirmPasswordField, submitDisabled, loading, onBack, onSubmit, }: PasswordFormViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type PasswordSuccessViewProps = {
|
|
2
|
+
title: string;
|
|
3
|
+
subtitle: string;
|
|
4
|
+
actionLabel?: string;
|
|
5
|
+
onAction?: () => void;
|
|
6
|
+
};
|
|
7
|
+
export declare function PasswordSuccessView({ title, subtitle, actionLabel, onAction }: PasswordSuccessViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const formatLocalizedDate: (date: string | null | undefined, locale?: string) => string;
|
|
2
|
+
export declare const fullDateTimeFormat: (date: string | null | undefined, locale?: string) => string;
|
|
2
3
|
/**
|
|
3
4
|
* Template sends store `content` as JSON: `{ name, language: { code }, components }`.
|
|
4
5
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Agent, AgentsReportQuery, ConvsReportQuery, Conversation } from '../../../graphql.autogenerated';
|
|
1
|
+
import { Agent, AgentsReportQuery, ConvTagsReportQuery, ConvsReportQuery, Conversation } from '../../../graphql.autogenerated';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
type AgentReportNode = NonNullable<AgentsReportQuery['agentsReport']['nodes']>[number];
|
|
4
|
+
type ConvTagReportNode = NonNullable<ConvTagsReportQuery['convTagsReport']['nodes']>[number];
|
|
4
5
|
type ConvReportNode = NonNullable<ConvsReportQuery['convsReport']['nodes']>[number];
|
|
5
6
|
type ReportNode = AgentReportNode | ConvReportNode;
|
|
6
7
|
interface DashboardSectionsProps {
|
|
@@ -9,6 +10,8 @@ interface DashboardSectionsProps {
|
|
|
9
10
|
agentsReportData?: AgentReportNode[];
|
|
10
11
|
agentsLoading?: boolean;
|
|
11
12
|
agentsReportLoading?: boolean;
|
|
13
|
+
convTagsReportData?: ConvTagReportNode[];
|
|
14
|
+
convTagsReportLoading?: boolean;
|
|
12
15
|
totalMessages?: number;
|
|
13
16
|
convsLoading?: boolean;
|
|
14
17
|
integrationId?: string;
|
|
@@ -18,7 +21,8 @@ interface DashboardSectionsProps {
|
|
|
18
21
|
liveConvs?: Conversation[] | null;
|
|
19
22
|
startDate: string;
|
|
20
23
|
endDate: string;
|
|
24
|
+
selectedPeriod: string;
|
|
21
25
|
reportNodes: ReportNode[];
|
|
22
26
|
}
|
|
23
|
-
declare const _default: React.MemoExoticComponent<({ agentsData, allAgentsData, agentsReportData, agentsLoading, agentsReportLoading, totalMessages, convsLoading, integrationId, agentIds, assignedConversations, unassignedConversations, liveConvs, startDate, endDate, reportNodes, }: DashboardSectionsProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
|
|
27
|
+
declare const _default: React.MemoExoticComponent<({ agentsData, allAgentsData, agentsReportData, agentsLoading, agentsReportLoading, convTagsReportData, convTagsReportLoading, totalMessages, convsLoading, integrationId, agentIds, assignedConversations, unassignedConversations, liveConvs, startDate, endDate, selectedPeriod, reportNodes, }: DashboardSectionsProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
|
|
24
28
|
export default _default;
|
|
@@ -2,7 +2,8 @@ export interface AllChatsCardProps {
|
|
|
2
2
|
totalMessages?: number;
|
|
3
3
|
assignedConversations?: number;
|
|
4
4
|
unassignedConversations?: number;
|
|
5
|
+
selectedPeriod?: string;
|
|
5
6
|
loading?: boolean;
|
|
6
7
|
}
|
|
7
|
-
declare const OpenedChatsCard: ({ totalMessages, assignedConversations, unassignedConversations, loading, }: AllChatsCardProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const OpenedChatsCard: ({ totalMessages, assignedConversations, unassignedConversations, selectedPeriod, loading, }: AllChatsCardProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
8
9
|
export default OpenedChatsCard;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConvTagsReportQuery } from '../../../graphql.autogenerated';
|
|
2
|
+
type ConvTagReportNode = NonNullable<ConvTagsReportQuery['convTagsReport']['nodes']>[number];
|
|
3
|
+
interface TagPerformanceCardProps {
|
|
4
|
+
data?: ConvTagReportNode[];
|
|
5
|
+
loading?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const TagPerformanceCard: ({ data, loading }: TagPerformanceCardProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default TagPerformanceCard;
|
|
@@ -21,4 +21,7 @@ export declare const getBroadcastReportQueryDateRange: (period?: string) => {
|
|
|
21
21
|
startDate?: string;
|
|
22
22
|
endDate?: string;
|
|
23
23
|
};
|
|
24
|
+
export declare const PERIOD_TRANSLATION_KEYS: Record<string, string>;
|
|
25
|
+
export declare const getPeriodTranslationKey: (period: string) => string;
|
|
26
|
+
export declare const isDateInRange: (date: string | Date, startDate: string, endDate: string) => boolean;
|
|
24
27
|
export declare const formatTime: (seconds: number) => string;
|
|
@@ -13,12 +13,6 @@ export declare const DetailsSectionLabel: import("@emotion/styled").StyledCompon
|
|
|
13
13
|
export declare const EditButton: import("@emotion/styled").StyledComponent<import("@bcrumbs.net/bc-ui").ButtonProps & import("react").RefAttributes<HTMLButtonElement> & {
|
|
14
14
|
theme?: import("@emotion/react").Theme | undefined;
|
|
15
15
|
}, {}, {}>;
|
|
16
|
-
export declare const TagContainer: import("@emotion/styled").StyledComponent<{
|
|
17
|
-
theme?: import("@emotion/react").Theme | undefined;
|
|
18
|
-
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
19
|
-
} & {
|
|
20
|
-
$isMobile?: boolean | undefined;
|
|
21
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
22
16
|
export declare const ClientDetailsContainer: import("@emotion/styled").StyledComponent<{
|
|
23
17
|
theme?: import("@emotion/react").Theme | undefined;
|
|
24
18
|
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { Role } from '@bcrumbs.net/bc-shared';
|
|
1
2
|
import { Agent, Conversation } from '../../../graphql.autogenerated';
|
|
2
3
|
interface Props {
|
|
3
|
-
|
|
4
|
+
role?: Role;
|
|
4
5
|
selectedConv?: Conversation;
|
|
5
6
|
myAgent?: Agent;
|
|
6
7
|
userType?: string;
|
|
7
8
|
}
|
|
8
|
-
declare const useCanContribute: ({
|
|
9
|
+
declare const useCanContribute: ({ role, selectedConv, myAgent, userType }: Props) => boolean;
|
|
9
10
|
export default useCanContribute;
|
|
@@ -37,7 +37,7 @@ export declare const BCMainNavigation: {
|
|
|
37
37
|
})[];
|
|
38
38
|
}[];
|
|
39
39
|
tags: string[];
|
|
40
|
-
requiredPermissions
|
|
40
|
+
requiredPermissions: Permission[];
|
|
41
41
|
} | {
|
|
42
42
|
label: string;
|
|
43
43
|
title: string;
|
|
@@ -56,6 +56,7 @@ export declare const BCMainNavigation: {
|
|
|
56
56
|
link: string;
|
|
57
57
|
action: string;
|
|
58
58
|
tags: string[];
|
|
59
|
+
requiredPermissions: Permission[];
|
|
59
60
|
}[];
|
|
60
61
|
};
|
|
61
62
|
export declare const MOBILE_DIMENSION = 767;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
|
|
2
|
+
export type OnboardingStepDetailProps = {
|
|
3
|
+
stepId: OnboardingChecklistStepId;
|
|
4
|
+
/** Right-to-left layout (flips the back arrow direction). */
|
|
5
|
+
rtl: boolean;
|
|
6
|
+
onBack: () => void;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
};
|
|
9
|
+
/** Single-step guide: instructions (Step 1/Step 2…) plus optional screenshots. */
|
|
10
|
+
export declare function OnboardingStepDetail({ stepId, rtl, onBack, onClose }: OnboardingStepDetailProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type OnboardingChecklistState, type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
|
|
2
|
+
export type OnboardingViewProps = {
|
|
3
|
+
applicableStepIds: OnboardingChecklistStepId[];
|
|
4
|
+
checklistState: OnboardingChecklistState | null;
|
|
5
|
+
completedCount: number;
|
|
6
|
+
celebrateStepId: OnboardingChecklistStepId | null;
|
|
7
|
+
/** Show the "Ask crumby…" input (hidden when Crumby chat is unavailable). */
|
|
8
|
+
showInput: boolean;
|
|
9
|
+
rtl: boolean;
|
|
10
|
+
toggleStep: (stepId: OnboardingChecklistStepId) => void;
|
|
11
|
+
onOpenStep: (stepId: OnboardingChecklistStepId) => void;
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
/** Submit text from the input — switches the panel to chat and sends it. */
|
|
14
|
+
onSendToChat: (text: string) => void;
|
|
15
|
+
/** Finish onboarding (all steps done) and open the chat. */
|
|
16
|
+
onFinish: () => void;
|
|
17
|
+
};
|
|
18
|
+
/** Onboarding mode of the unified widget: welcome header, setup checklist, AI input. */
|
|
19
|
+
export declare function OnboardingView({ applicableStepIds, checklistState, completedCount, celebrateStepId, showInput, rtl, toggleStep, onOpenStep, onClose, onSendToChat, onFinish, }: OnboardingViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
|
|
2
|
+
export type OnboardingStepGuide = {
|
|
3
|
+
/** Optional illustrative screenshots shown under the step instructions. */
|
|
4
|
+
images?: string[];
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Per-step visual guide config. Instruction copy lives in i18n
|
|
8
|
+
* (`onboardingChecklist.guide.steps.*`); this only adds optional screenshots.
|
|
9
|
+
* Steps without images render text-only — add entries here as designs ship.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ONBOARDING_STEP_GUIDE: Partial<Record<OnboardingChecklistStepId, OnboardingStepGuide>>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type OnboardingChecklistState, type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
|
|
2
|
+
export type UseOnboardingChecklist = {
|
|
3
|
+
/** Steps relevant for the current plan (drops Crumby steps when AI is disabled). */
|
|
4
|
+
applicableStepIds: OnboardingChecklistStepId[];
|
|
5
|
+
/** Parsed checklist, or null when there is no active checklist for this user. */
|
|
6
|
+
checklistState: OnboardingChecklistState | null;
|
|
7
|
+
/** Number of applicable steps the user has completed. */
|
|
8
|
+
completedCount: number;
|
|
9
|
+
/** True while there is a non-expired checklist with at least one applicable step still open. */
|
|
10
|
+
isActive: boolean;
|
|
11
|
+
/** Step currently playing the completion sweep, or null. */
|
|
12
|
+
celebrateStepId: OnboardingChecklistStepId | null;
|
|
13
|
+
/** One-shot request to auto-open the widget on onboarding (set right after sign-in). */
|
|
14
|
+
shouldAutoOpen: boolean;
|
|
15
|
+
/** Toggle a step's completed flag (manual checkbox). */
|
|
16
|
+
toggleStep: (stepId: OnboardingChecklistStepId) => void;
|
|
17
|
+
/** Clears the one-shot auto-open request once the widget has acted on it. */
|
|
18
|
+
consumeAutoOpen: () => void;
|
|
19
|
+
/** Run when the widget panel closes: clears the completed checklist from storage. */
|
|
20
|
+
onPanelClosed: () => void;
|
|
21
|
+
/** Finish onboarding now (Get started button): clears the checklist for this workspace. */
|
|
22
|
+
dismissChecklist: () => void;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Owns the onboarding-checklist state previously held inside OnboardingChecklistWidget:
|
|
26
|
+
* load/parse/TTL, applicable steps for the current plan, completion celebration, the
|
|
27
|
+
* cross-tab updated event, and the post-sign-in auto-open signal. The presentation is
|
|
28
|
+
* delegated to the unified Crumby widget.
|
|
29
|
+
*/
|
|
30
|
+
export declare function useOnboardingChecklist(): UseOnboardingChecklist;
|
|
@@ -11,7 +11,19 @@ export declare const ONBOARDING_CHECKLIST_STEP_IDS: OnboardingChecklistStepId[];
|
|
|
11
11
|
export declare const ONBOARDING_CHECKLIST_CRUMBY_STEP_IDS: OnboardingChecklistStepId[];
|
|
12
12
|
export declare function getApplicableOnboardingChecklistStepIds(isCrumbyEnabled: boolean): OnboardingChecklistStepId[];
|
|
13
13
|
export declare function isOnboardingChecklistCompleteForCrumbySetting(state: OnboardingChecklistState, isCrumbyEnabled: boolean): boolean;
|
|
14
|
-
export declare function getOnboardingChecklistStorageKey(userId: string | number): string;
|
|
14
|
+
export declare function getOnboardingChecklistStorageKey(userId: string | number, workspaceId?: string | number | null): string;
|
|
15
|
+
/** Pre-workspace-scoping key: showcase_onboarding_checklist_{userId} */
|
|
16
|
+
export declare function getLegacyOnboardingChecklistStorageKey(userId: string | number): string;
|
|
17
|
+
/**
|
|
18
|
+
* Load checklist for user + workspace. Migrates legacy user-only (and empty-workspace) keys once.
|
|
19
|
+
* Returns null when workspace context is not available.
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadOnboardingChecklistState(userId: string | number, workspaceId?: string | number | null): OnboardingChecklistState | null;
|
|
22
|
+
/**
|
|
23
|
+
* Pending key is keyed by user only (NOT workspace): it is a one-shot "user just signed in"
|
|
24
|
+
* signal set at login, before the workspace context is available. The widget consumes it on
|
|
25
|
+
* first load and creates the checklist scoped to whichever workspace the user landed in.
|
|
26
|
+
*/
|
|
15
27
|
export declare function getOnboardingChecklistPendingKey(userId: string | number): string;
|
|
16
28
|
/** One-shot: open checklist popover after sign-in (session tab only). */
|
|
17
29
|
export declare const ONBOARDING_CHECKLIST_SESSION_AUTOPEN_KEY = "showcase_onboarding_checklist_session_autopen";
|
|
@@ -30,10 +42,11 @@ export declare function notifyOnboardingChecklistAfterSignIn(userId: string | nu
|
|
|
30
42
|
* Use this to cheaply skip heavy work (e.g. scanning all inbox messages) when the step is already done
|
|
31
43
|
* or there is no active checklist.
|
|
32
44
|
*/
|
|
33
|
-
export declare function getActiveOnboardingChecklistState(userId: string | number | null | undefined): OnboardingChecklistState | null;
|
|
45
|
+
export declare function getActiveOnboardingChecklistState(userId: string | number | null | undefined, workspaceId?: string | number | null): OnboardingChecklistState | null;
|
|
34
46
|
export type MarkOnboardingChecklistStepOptions = {
|
|
35
47
|
/** When already loaded (e.g. after a gate check), avoids a second localStorage read. */
|
|
36
48
|
knownActiveState?: OnboardingChecklistState;
|
|
49
|
+
workspaceId?: string | number | null;
|
|
37
50
|
};
|
|
38
51
|
/**
|
|
39
52
|
* Marks a checklist step done when the user performs the real action (persists + notifies widget).
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { IntegrationWithSecrets } from '../../../../../graphql.autogenerated';
|
|
2
2
|
import { FBPage } from '../../../hooks/useFBPagesHook';
|
|
3
|
-
export declare function PagePickerPopup({ onClose, setInitialValues,
|
|
3
|
+
export declare function PagePickerPopup({ onClose, setInitialValues, pages, rtl, }: {
|
|
4
4
|
onClose: () => void;
|
|
5
5
|
setInitialValues: (initialResource: Partial<IntegrationWithSecrets>) => void;
|
|
6
|
-
token?: string;
|
|
7
6
|
pages: FBPage[];
|
|
8
7
|
rtl?: boolean;
|
|
9
8
|
}): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -4,7 +4,9 @@ import { IntegrationFlowComponentProps } from '../types';
|
|
|
4
4
|
import { ChannelFlowExtendedProps } from '../RenderCorrectIntegrationFlow';
|
|
5
5
|
type Props = IntegrationFlowComponentProps<IntegrationWithSecrets> & ChannelFlowExtendedProps;
|
|
6
6
|
export declare const FacebookMessanger: React.FC<Props>;
|
|
7
|
-
export declare const FacebookMessangerReconnect: React.FC<IntegrationFlowComponentProps<IntegrationWithSecrets
|
|
7
|
+
export declare const FacebookMessangerReconnect: React.FC<IntegrationFlowComponentProps<IntegrationWithSecrets> & {
|
|
8
|
+
pageId?: string;
|
|
9
|
+
}>;
|
|
8
10
|
export declare const InstaMessanger: React.FC<IntegrationFlowComponentProps<IntegrationWithSecrets>>;
|
|
9
11
|
export declare const InstaMessangerReconnect: React.FC<IntegrationFlowComponentProps<IntegrationWithSecrets>>;
|
|
10
12
|
export {};
|
|
@@ -4,7 +4,7 @@ type SubscriptionProfileRouteProps = {
|
|
|
4
4
|
users: any[];
|
|
5
5
|
refetchUsers: any;
|
|
6
6
|
loadingUsers: boolean;
|
|
7
|
-
inviteUser: (companyId: number,
|
|
7
|
+
inviteUser: (companyId: number, Email: string, actorEmail: string) => Promise<unknown>;
|
|
8
8
|
removeUserFromCompany: (companyId: number, userId: string) => Promise<unknown>;
|
|
9
9
|
};
|
|
10
10
|
export declare const SubscriptionUsers: (props: SubscriptionProfileRouteProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -45,6 +45,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
45
45
|
continue: string;
|
|
46
46
|
dontHaveAnAccount: string;
|
|
47
47
|
signupNow: string;
|
|
48
|
+
signUp: string;
|
|
48
49
|
returnToLogin: string;
|
|
49
50
|
passwordResetSuccess: string;
|
|
50
51
|
passwordResetFaildDesc: string;
|
|
@@ -64,6 +65,14 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
64
65
|
currentPassword: string;
|
|
65
66
|
newPassword: string;
|
|
66
67
|
confirmPassword: string;
|
|
68
|
+
createSecurePasswordTitle: string;
|
|
69
|
+
createSecurePasswordDesc: string;
|
|
70
|
+
createSecurePasswordSubtitle: string;
|
|
71
|
+
newPasswordPlaceholder: string;
|
|
72
|
+
confirmPasswordPlaceholder: string;
|
|
73
|
+
resetPasswordButton: string;
|
|
74
|
+
passwordChangedTitle: string;
|
|
75
|
+
passwordChangedDesc: string;
|
|
67
76
|
facebook: string;
|
|
68
77
|
google: string;
|
|
69
78
|
};
|
|
@@ -120,6 +129,18 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
120
129
|
sessionNotFound: string;
|
|
121
130
|
subscriptionUpdated: string;
|
|
122
131
|
subscriptionVerified: string;
|
|
132
|
+
purchaseConfirmed: string;
|
|
133
|
+
purchaseConfirmedDescription: string;
|
|
134
|
+
purchaseConfirmedWithPlan: string;
|
|
135
|
+
planName: string;
|
|
136
|
+
billingInterval: string;
|
|
137
|
+
nextRenewalDate: string;
|
|
138
|
+
createFirstChannel: string;
|
|
139
|
+
goToInbox: string;
|
|
140
|
+
manageSubscription: string;
|
|
141
|
+
helpAlert: string;
|
|
142
|
+
helpAlertWhatsApp: string;
|
|
143
|
+
channelGuideTitle: string;
|
|
123
144
|
subscriptionCancelled: string;
|
|
124
145
|
subscriptionCancelledDescription: string;
|
|
125
146
|
backToInbox: string;
|
|
@@ -131,6 +152,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
131
152
|
profileMgmt: string;
|
|
132
153
|
profile: string;
|
|
133
154
|
password: string;
|
|
155
|
+
changePassword: string;
|
|
134
156
|
updatingEmailNote: string;
|
|
135
157
|
help: string;
|
|
136
158
|
feedback: string;
|
|
@@ -179,6 +201,9 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
179
201
|
hychartWorkspace: string;
|
|
180
202
|
inboxWorkspace: string;
|
|
181
203
|
userRole: string;
|
|
204
|
+
usersTableName: string;
|
|
205
|
+
usersTableEmail: string;
|
|
206
|
+
usersTableRole: string;
|
|
182
207
|
ownerRole: string;
|
|
183
208
|
adminRole: string;
|
|
184
209
|
managerRole: string;
|
|
@@ -193,7 +218,13 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
193
218
|
workspaceIdCopyFailed: string;
|
|
194
219
|
copyWorkspaceId: string;
|
|
195
220
|
upgradePlan: string;
|
|
221
|
+
planUpdatedSuccessfully: string;
|
|
196
222
|
cancelSubscription: string;
|
|
223
|
+
cancelSubscriptionConfirmTitle: string;
|
|
224
|
+
cancelSubscriptionConfirmDescription: string;
|
|
225
|
+
subscriptionCanceledSuccessfully: string;
|
|
226
|
+
subscriptionReactivatedSuccessfully: string;
|
|
227
|
+
reactivateSubscription: string;
|
|
197
228
|
activePlan: string;
|
|
198
229
|
cancelledBadge: string;
|
|
199
230
|
currentCycleEnd: string;
|
|
@@ -585,13 +616,14 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
585
616
|
deliverySuccess: string;
|
|
586
617
|
successfullySent: string;
|
|
587
618
|
avgChatTime: string;
|
|
588
|
-
|
|
619
|
+
newClients: string;
|
|
589
620
|
newClientsInPeriod: string;
|
|
590
621
|
closed: string;
|
|
591
622
|
uniqueClosed: string;
|
|
592
623
|
agentPerformance: string;
|
|
593
624
|
agents: string;
|
|
594
625
|
openedChats: string;
|
|
626
|
+
openedChatsForPeriod: string;
|
|
595
627
|
agent: string;
|
|
596
628
|
messagesSent: string;
|
|
597
629
|
messagesReceived: string;
|
|
@@ -613,6 +645,9 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
613
645
|
last14Days: string;
|
|
614
646
|
last30Days: string;
|
|
615
647
|
agentPerformanceTooltip: string;
|
|
648
|
+
tagPerformance: string;
|
|
649
|
+
tag: string;
|
|
650
|
+
tagPerformanceTooltip: string;
|
|
616
651
|
selectAll: string;
|
|
617
652
|
clearAll: string;
|
|
618
653
|
reports: string;
|
|
@@ -692,6 +727,10 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
692
727
|
testAi: string;
|
|
693
728
|
};
|
|
694
729
|
};
|
|
730
|
+
welcomeTitle: string;
|
|
731
|
+
brand: string;
|
|
732
|
+
askCrumbyPlaceholder: string;
|
|
733
|
+
getStartedButton: string;
|
|
695
734
|
};
|
|
696
735
|
id: string;
|
|
697
736
|
save: string;
|
|
@@ -858,6 +897,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
858
897
|
exportFailed: string;
|
|
859
898
|
noContactsToExport: string;
|
|
860
899
|
selectedLifecycle: string;
|
|
900
|
+
archived: string;
|
|
861
901
|
};
|
|
862
902
|
management: {
|
|
863
903
|
title: string;
|
|
@@ -926,6 +966,8 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
926
966
|
apiKeyLabelPlaceholder: string;
|
|
927
967
|
noUsersForLinkedAgentTitle: string;
|
|
928
968
|
noUsersForLinkedAgentDescription: string;
|
|
969
|
+
greetingMessage: string;
|
|
970
|
+
greetingMessagePlaceholder: string;
|
|
929
971
|
};
|
|
930
972
|
ai: {
|
|
931
973
|
title: string;
|
|
@@ -980,6 +1022,9 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
980
1022
|
integrationNamePlaceholder: string;
|
|
981
1023
|
token: string;
|
|
982
1024
|
tokenPlaceholder: string;
|
|
1025
|
+
authorizationCode: string;
|
|
1026
|
+
authorizationCodePlaceholder: string;
|
|
1027
|
+
zohoInvalidCode: string;
|
|
983
1028
|
urlHeader: string;
|
|
984
1029
|
urlHeaderPlaceholder: string;
|
|
985
1030
|
clientId: string;
|
|
@@ -1038,6 +1083,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1038
1083
|
selectStartWith: string;
|
|
1039
1084
|
selectAiAgent: string;
|
|
1040
1085
|
selectAgent: string;
|
|
1086
|
+
selectAgents: string;
|
|
1041
1087
|
deleteConfirmTitle: string;
|
|
1042
1088
|
deleteConfirmMessage: string;
|
|
1043
1089
|
botToken: string;
|
|
@@ -1106,6 +1152,22 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1106
1152
|
};
|
|
1107
1153
|
assistant: {
|
|
1108
1154
|
welcomeMessage: string;
|
|
1155
|
+
title: string;
|
|
1156
|
+
greetingPrimary: string;
|
|
1157
|
+
greetingSecondary: string;
|
|
1158
|
+
suggestions: {
|
|
1159
|
+
createBroadcast: string;
|
|
1160
|
+
connectChannel: string;
|
|
1161
|
+
inviteTeamMember: string;
|
|
1162
|
+
analyzePerformance: string;
|
|
1163
|
+
};
|
|
1164
|
+
suggestionPrompts: {
|
|
1165
|
+
createBroadcast: string;
|
|
1166
|
+
connectChannel: string;
|
|
1167
|
+
inviteTeamMember: string;
|
|
1168
|
+
analyzePerformance: string;
|
|
1169
|
+
};
|
|
1170
|
+
composerPlaceholder: string;
|
|
1109
1171
|
};
|
|
1110
1172
|
file: {
|
|
1111
1173
|
filesSubTitle: string;
|
|
@@ -1215,6 +1277,11 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1215
1277
|
cardTitle: string;
|
|
1216
1278
|
saved: string;
|
|
1217
1279
|
maxCharacters: string;
|
|
1280
|
+
instructionsVersion: {
|
|
1281
|
+
cardTitle: string;
|
|
1282
|
+
description: string;
|
|
1283
|
+
option: string;
|
|
1284
|
+
};
|
|
1218
1285
|
contextPrompt: {
|
|
1219
1286
|
label: string;
|
|
1220
1287
|
description: string;
|
|
@@ -1269,4 +1336,5 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1269
1336
|
archive_confirmation: string;
|
|
1270
1337
|
unarchive_confirmation: string;
|
|
1271
1338
|
};
|
|
1339
|
+
send: string;
|
|
1272
1340
|
}>, current?: string) => void;
|