@bcrumbs.net/inbox 0.0.51 → 0.0.55

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 (182) hide show
  1. package/assets/ar/inbox.json +20 -3
  2. package/assets/en/inbox.json +22 -5
  3. package/index.cjs.js +3955 -1472
  4. package/index.esm.js +3958 -1477
  5. package/package.json +4 -4
  6. package/src/app/ai/components/Crumby/index.d.ts +2 -0
  7. package/src/app/ai/components/CrumbySettings/AutoTagRulesSection.d.ts +14 -0
  8. package/src/app/ai/components/CrumbySettings/tagRuleUtils.d.ts +28 -0
  9. package/src/app/ai/components/playground/Thread.d.ts +5 -1
  10. package/src/app/ai/components/playground/ThreadWelcome.d.ts +4 -1
  11. package/src/app/ai/components/playground/TooltipIconButton.d.ts +1 -1
  12. package/src/app/ai/pages/AiPreferencesPrompts.d.ts +2 -0
  13. package/src/app/auth/components/UserAvatar/AccountSettingsDropdown.d.ts +2 -1
  14. package/src/app/auth/components/UserAvatar/index.d.ts +2 -1
  15. package/src/app/auth/pages/CheckAuth.d.ts +10 -0
  16. package/src/app/auth/pages/Forget.d.ts +1 -3
  17. package/src/app/auth/pages/Login.d.ts +2 -12
  18. package/src/app/auth/pages/Password.d.ts +0 -1
  19. package/src/app/auth/pages/Profile.d.ts +0 -1
  20. package/src/app/auth/pages/Register.d.ts +2 -13
  21. package/src/app/auth/redux/actions/forgetPasswordAction.d.ts +1 -1
  22. package/src/app/auth/redux/actions/logoutAction.d.ts +2 -2
  23. package/src/app/auth/redux/actions/registerAction.d.ts +1 -1
  24. package/src/app/auth/redux/actions/resetPasswordAction.d.ts +2 -2
  25. package/src/app/auth/redux/auth.types.d.ts +6 -2
  26. package/src/app/billing/components/NotAccessible.d.ts +10 -0
  27. package/src/app/billing/components/Timeline.d.ts +20 -0
  28. package/src/app/billing/components/checkout/AddNewPaymentCard.d.ts +6 -0
  29. package/src/app/billing/components/checkout/CheckoutSummary.d.ts +20 -0
  30. package/src/app/billing/components/checkout/ExceedPaymentUpdateTriesModal.d.ts +8 -0
  31. package/src/app/billing/components/checkout/ExistingCardPayment.d.ts +10 -0
  32. package/src/app/billing/components/checkout/PaymentForm.d.ts +11 -0
  33. package/src/app/billing/components/checkout/PaymentFormExp.d.ts +9 -0
  34. package/src/app/billing/components/checkout/PaymentMethod.d.ts +8 -0
  35. package/src/app/billing/components/checkout/PaymentMethodCard.d.ts +9 -0
  36. package/src/app/billing/components/checkout/PaywithCredits.d.ts +9 -0
  37. package/src/app/billing/components/invoices/BCLogo.d.ts +5 -0
  38. package/src/app/billing/components/invoices/Invoice.d.ts +5 -0
  39. package/src/app/billing/components/planStyles.d.ts +9 -0
  40. package/src/app/billing/components/styles.d.ts +21 -0
  41. package/src/app/billing/components/subscription/PlanDetail.d.ts +11 -0
  42. package/src/app/billing/components/subscription/SubscriptionPausedWarning.d.ts +3 -0
  43. package/src/app/billing/components/transactions/TransactionHistoryTable.d.ts +15 -0
  44. package/src/app/billing/context/SubscriptionContext.d.ts +8 -1
  45. package/src/app/billing/hooks/useGetPaidToday.d.ts +9 -0
  46. package/src/app/billing/hooks/usePendingPayments.d.ts +51 -0
  47. package/src/app/billing/hooks/useSetupPayment.d.ts +15 -0
  48. package/src/app/billing/hooks/useSetupPaymentMethod.d.ts +12 -0
  49. package/src/app/billing/pages/checkout.d.ts +2 -0
  50. package/src/app/billing/pages/done.d.ts +1 -0
  51. package/src/app/billing/pages/invoice.d.ts +1 -0
  52. package/src/app/billing/pages/invoices.d.ts +2 -0
  53. package/src/app/billing/pages/payment.d.ts +1 -0
  54. package/src/app/billing/utils/getStripe.d.ts +3 -0
  55. package/src/app/billing/utils/openArticleModal.d.ts +1 -0
  56. package/src/app/billing/utils/paymentProvider.d.ts +3 -0
  57. package/src/app/billing/utils/pendingPlanPurchaseStorage.d.ts +10 -0
  58. package/src/app/billing/utils/stripeUtils.d.ts +2 -0
  59. package/src/app/broadcast/components/BroadcastAnalysisReciepientsHeader.d.ts +6 -1
  60. package/src/app/broadcast/components/BroadcastAnalysisReciepientsTable.d.ts +5 -1
  61. package/src/app/broadcast/components/BroadcastInfoHeader.d.ts +2 -1
  62. package/src/app/broadcast/components/BroadcastTargetingComplianceNotice.d.ts +2 -0
  63. package/src/app/broadcast/components/WorkspaceBroadcastAnalysisRecipients.d.ts +7 -0
  64. package/src/app/broadcast/hooks/useExportWorkspaceBroadcastDelivery.d.ts +6 -0
  65. package/src/app/broadcast/pages/WorkspaceBroadcastDeliveryReportPage.d.ts +2 -0
  66. package/src/app/broadcast/utils/helper.d.ts +4 -0
  67. package/src/app/contact/components/ContactFormFields.d.ts +2 -1
  68. package/src/app/contact/config/contactForm.d.ts +4 -0
  69. package/src/app/dashboard/components/AgentCard.d.ts +11 -0
  70. package/src/app/dashboard/components/AgentPerformanceCard.d.ts +9 -0
  71. package/src/app/dashboard/components/AgentsCard.d.ts +9 -0
  72. package/src/app/dashboard/components/AgentsCardSkeleton.d.ts +2 -0
  73. package/src/app/dashboard/components/BroadcastAnalyticsCard.d.ts +11 -0
  74. package/src/app/dashboard/components/BroadcastCampaignProgressCard.d.ts +10 -0
  75. package/src/app/dashboard/components/BroadcastDashboard.d.ts +6 -0
  76. package/src/app/dashboard/components/BroadcastDashboardStatsCards.d.ts +14 -0
  77. package/src/app/dashboard/components/BroadcastRecipientsCard.d.ts +8 -0
  78. package/src/app/dashboard/components/BroadcastStatusDistributionCard.d.ts +6 -0
  79. package/src/app/dashboard/components/ConversationAnalyticsCard.d.ts +11 -0
  80. package/src/app/dashboard/components/DashboardSections.d.ts +24 -0
  81. package/src/app/dashboard/components/DashboardStatsCards.d.ts +10 -0
  82. package/src/app/dashboard/components/InboxDashboard.d.ts +10 -0
  83. package/src/app/dashboard/components/OpenedChatsCard.d.ts +8 -0
  84. package/src/app/dashboard/pages/DashboardNewPage.d.ts +2 -0
  85. package/src/app/dashboard/utils/buildBroadcastReportOverviewAnalytics.d.ts +19 -0
  86. package/src/app/dashboard/utils/buildRecipientsAnalytics.d.ts +12 -0
  87. package/src/app/dashboard/utils/dateHelpers.d.ts +24 -0
  88. package/src/app/generic/components/HeaderImageInput.d.ts +9 -0
  89. package/src/app/generic/components/MessagePreview.d.ts +3 -1
  90. package/src/app/generic/components/PhoneNumberInput.d.ts +13 -0
  91. package/src/app/generic/components/PreviewHeaderImage.d.ts +2 -1
  92. package/src/app/generic/components/TemplateParameterInputs.d.ts +2 -1
  93. package/src/app/generic/components/ToggleSetting.d.ts +3 -2
  94. package/src/app/generic/hooks/useGetProviderIcon.d.ts +2 -1
  95. package/src/app/generic/utils/logout.d.ts +1 -1
  96. package/src/app/inbox/components/Chat/ChatContent.d.ts +2 -3
  97. package/src/app/inbox/components/Chat/ChatHeader.d.ts +5 -1
  98. package/src/app/inbox/components/Chat/NoResultsFound.d.ts +3 -0
  99. package/src/app/inbox/components/Chat/index.d.ts +4 -1
  100. package/src/app/inbox/components/NewConvList/FilterDrawer.d.ts +17 -0
  101. package/src/app/inbox/components/NewConvList/HeaderSection.d.ts +6 -2
  102. package/src/app/inbox/components/NewConvList/index.d.ts +6 -2
  103. package/src/app/inbox/components/NewDetails/ChatDetails.d.ts +3 -2
  104. package/src/app/inbox/components/NewDetails/ChatDetailsAndTimeline.d.ts +3 -2
  105. package/src/app/inbox/components/NewDetails/ClientInfo.d.ts +3 -2
  106. package/src/app/inbox/components/NewDetails/ConversationOverview.d.ts +3 -2
  107. package/src/app/inbox/components/NewDetails/EditClientInfo.d.ts +3 -2
  108. package/src/app/inbox/components/NewDetails/index.d.ts +3 -2
  109. package/src/app/inbox/components/Shared/Inbox.d.ts +9 -7
  110. package/src/app/inbox/components/Shared/MobileActionSheet.d.ts +9 -0
  111. package/src/app/inbox/components/Shared/MobileMenu.d.ts +8 -0
  112. package/src/app/inbox/components/Shared/SharedStyle.d.ts +7 -0
  113. package/src/app/inbox/components/Shared/mobileMenuStyles.d.ts +20 -0
  114. package/src/app/inbox/constants/index.d.ts +1 -1
  115. package/src/app/inbox/hooks/useConversationById.d.ts +8 -0
  116. package/src/app/inbox/hooks/useConversationsPerodicFetch.d.ts +10 -0
  117. package/src/app/inbox/hooks/useInboxAssignableAis.d.ts +3 -0
  118. package/src/app/inbox/hooks/useMyAgent.d.ts +8 -0
  119. package/src/app/inbox/hooks/useNewSortedEvents.d.ts +1 -1
  120. package/src/app/inbox/utils/convs.d.ts +14 -5
  121. package/src/app/inbox/utils/inboxAssignableAis.d.ts +10 -0
  122. package/src/app/inbox/utils/mobileInboxStyles.d.ts +6 -0
  123. package/src/app/layout/components/CommandPalette.d.ts +16 -0
  124. package/src/app/layout/components/Header.d.ts +3 -5
  125. package/src/app/layout/constants/index.d.ts +24 -2
  126. package/src/app/layout/constants/subMenu.d.ts +34 -4
  127. package/src/app/layout/context/EmbeddedInboxContext.d.ts +3 -0
  128. package/src/app/layout/context/MobileInboxNavContext.d.ts +9 -0
  129. package/src/app/layout/hooks/useImportContactsEnabled.d.ts +1 -0
  130. package/src/app/layout/hooks/useMobileInboxVersion.d.ts +1 -3
  131. package/src/app/managemnet/components/CreateCrmWebhook.d.ts +6 -0
  132. package/src/app/managemnet/components/CreateQuickReply.d.ts +8 -0
  133. package/src/app/managemnet/components/channels/AddChannelDialog.d.ts +10 -0
  134. package/src/app/managemnet/components/channels/ChannelItem.d.ts +11 -0
  135. package/src/app/managemnet/components/channels/ChannelTypeCard.d.ts +15 -0
  136. package/src/app/managemnet/components/channels/EditChannelDialog.d.ts +11 -0
  137. package/src/app/managemnet/config/quickReplyDefinition.d.ts +4 -0
  138. package/src/app/managemnet/pages/crmIntegrations/index.d.ts +2 -0
  139. package/src/app/managemnet/pages/quickReplies/index.d.ts +2 -0
  140. package/src/app/onboarding/components/OnboardingChecklistGuideContent.d.ts +8 -0
  141. package/src/app/onboarding/components/OnboardingChecklistWidget.d.ts +2 -0
  142. package/src/app/onboarding/utils/onboardingChecklistStorage.d.ts +43 -0
  143. package/src/app/resources/components/Integrations/ChannelDialogLayout.d.ts +24 -0
  144. package/src/app/resources/components/Integrations/Custom/index.d.ts +7 -0
  145. package/src/app/resources/components/Integrations/Facebook/NoPagesFoundPopup.d.ts +2 -1
  146. package/src/app/resources/components/Integrations/Facebook/PagePickerPopup.d.ts +2 -1
  147. package/src/app/resources/components/Integrations/Facebook/index.d.ts +4 -1
  148. package/src/app/resources/components/Integrations/Instagram/index.d.ts +4 -1
  149. package/src/app/resources/components/Integrations/RenderCorrectIntegrationFlow.d.ts +11 -2
  150. package/src/app/resources/components/Integrations/Telegram/index.d.ts +4 -1
  151. package/src/app/resources/components/Integrations/WaGupshup/index.d.ts +7 -0
  152. package/src/app/resources/components/Integrations/WhatsApp/index.d.ts +4 -1
  153. package/src/app/subscriptions/components/Plans/PlanCard.d.ts +10 -23
  154. package/src/app/subscriptions/components/Plans/ShowcasePlans.d.ts +8 -4
  155. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionHeader.d.ts +1 -9
  156. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionPlanLabel.d.ts +8 -0
  157. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionProfile.d.ts +1 -0
  158. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionProfileCard.d.ts +14 -0
  159. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionUsageCard.d.ts +7 -0
  160. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionUsers.d.ts +3 -3
  161. package/src/app/subscriptions/components/SubscriptionSwitcher/Switcher.d.ts +4 -1
  162. package/src/app/subscriptions/components/SubscriptionSwitcher/index.d.ts +3 -1
  163. package/src/app/subscriptions/components/SubscriptionsList.d.ts +1 -0
  164. package/src/app/subscriptions/constants/Plans.d.ts +9 -6
  165. package/src/app/subscriptions/pages/Upgrade.d.ts +6 -9
  166. package/src/assets/locales/translations.d.ts +354 -5
  167. package/src/config/azure.d.ts +2 -0
  168. package/src/environments/types.d.ts +3 -0
  169. package/src/graphql.autogenerated.d.ts +2179 -1225
  170. package/src/graphql.billing.autogenerated.d.ts +683 -7
  171. package/src/lib/EmbeddedMobileMenu.d.ts +9 -0
  172. package/src/lib/conversation-chat.d.ts +11 -0
  173. package/src/lib/index.d.ts +4 -0
  174. package/src/main.d.ts +2 -0
  175. package/src/utils/formatFailureReason.d.ts +5 -0
  176. package/src/utils/globalHelper.d.ts +3 -0
  177. package/src/utils/integration.d.ts +6 -0
  178. package/src/utils/localStorage.d.ts +2 -0
  179. package/src/utils/textUtils.d.ts +3 -1
  180. package/src/app/resources/components/Integrations/Facebook/LoginPopup.d.ts +0 -4
  181. package/src/app/resources/components/Integrations/Instagram/LoginPopup.d.ts +0 -4
  182. package/src/app/resources/components/Integrations/WhatsApp/LoginPopup.d.ts +0 -4
@@ -1,4 +1,4 @@
1
- import { Tag, ClientQuery } from '../../../../graphql.autogenerated';
1
+ import { Tag, ClientQuery, IntegrationType } from '../../../../graphql.autogenerated';
2
2
  interface ClientInfoProps {
3
3
  clientData: ClientQuery['client'] | undefined;
4
4
  clientTags: Tag[];
@@ -9,6 +9,7 @@ interface ClientInfoProps {
9
9
  setEditMode: (editMode: boolean) => void;
10
10
  loading: boolean;
11
11
  refetch: () => void;
12
+ integrationType?: IntegrationType;
12
13
  }
13
- declare const ClientInfo: ({ clientData, loading, clientTags, conversationTags, tagsLoading, refetchTags, editMode, setEditMode, refetch, }: ClientInfoProps) => import("@emotion/react/jsx-runtime").JSX.Element;
14
+ declare const ClientInfo: ({ clientData, loading, clientTags, conversationTags, tagsLoading, refetchTags, editMode, setEditMode, refetch, integrationType, }: ClientInfoProps) => import("@emotion/react/jsx-runtime").JSX.Element;
14
15
  export default ClientInfo;
@@ -1,10 +1,11 @@
1
- import { Conversation, Agent, Tag } from '../../../../graphql.autogenerated';
1
+ import { Agent, Ai, Conversation, Tag } from '../../../../graphql.autogenerated';
2
2
  interface ConversationOverviewProps {
3
3
  conv: Conversation;
4
4
  agents: Agent[];
5
+ aiAgents?: Ai[];
5
6
  convStages: Tag[];
6
7
  onUpdate?: () => void;
7
8
  convEnded: boolean;
8
9
  }
9
- declare const ConversationOverview: ({ conv, agents, convStages, onUpdate, convEnded }: ConversationOverviewProps) => import("@emotion/react/jsx-runtime").JSX.Element;
10
+ declare const ConversationOverview: ({ conv, agents, aiAgents, convStages, onUpdate, convEnded, }: ConversationOverviewProps) => import("@emotion/react/jsx-runtime").JSX.Element;
10
11
  export default ConversationOverview;
@@ -1,8 +1,9 @@
1
- import { ClientQuery } from '../../../../graphql.autogenerated';
1
+ import { ClientQuery, IntegrationType } from '../../../../graphql.autogenerated';
2
2
  interface EditInfoProps {
3
3
  setEditMode: (editMode: boolean) => void;
4
4
  clientData: ClientQuery['client'];
5
5
  onClientUpdate?: () => void;
6
+ integrationType?: IntegrationType;
6
7
  }
7
- declare const EditClientInfo: ({ setEditMode, clientData, onClientUpdate }: EditInfoProps) => import("@emotion/react/jsx-runtime").JSX.Element;
8
+ declare const EditClientInfo: ({ setEditMode, clientData, onClientUpdate, integrationType }: EditInfoProps) => import("@emotion/react/jsx-runtime").JSX.Element;
8
9
  export default EditClientInfo;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { Conversation, Agent, Tag } from '../../../../graphql.autogenerated';
2
+ import { Ai, Agent, Conversation, Tag } from '../../../../graphql.autogenerated';
3
3
  interface Props {
4
4
  conv: Conversation;
5
5
  clientTags: Tag[];
@@ -7,9 +7,10 @@ interface Props {
7
7
  tagsLoading: boolean;
8
8
  refetchTags: () => void;
9
9
  agents: Agent[];
10
+ aiAgents?: Ai[];
10
11
  convStages: Tag[];
11
12
  onUpdate?: () => void;
12
13
  clientSectionPlaceholder?: React.ReactNode;
13
14
  }
14
- declare const NewDetails: ({ conv, clientTags, conversationTags, tagsLoading, refetchTags, agents, convStages, onUpdate, clientSectionPlaceholder, }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
15
+ declare const NewDetails: ({ conv, clientTags, conversationTags, tagsLoading, refetchTags, agents, aiAgents, convStages, onUpdate, clientSectionPlaceholder, }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
15
16
  export default NewDetails;
@@ -1,4 +1,7 @@
1
1
  /// <reference types="react" />
2
+ export { MobileMenu } from './MobileMenu';
3
+ export type { MobileViews } from './mobileMenuStyles';
4
+ export { mobileNavbar } from './mobileMenuStyles';
2
5
  export declare const defaultSelectedConvId: any;
3
6
  export declare const MobileWrapper: import("@emotion/styled").StyledComponent<{
4
7
  theme?: import("@emotion/react").Theme | undefined;
@@ -7,12 +10,11 @@ export declare const MobileWrapper: import("@emotion/styled").StyledComponent<{
7
10
  export declare const MobileContent: import("@emotion/styled").StyledComponent<{
8
11
  theme?: import("@emotion/react").Theme | undefined;
9
12
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
13
+ } & {
14
+ $reserveBottomNavSpace?: boolean | undefined;
10
15
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
11
- export declare const InboxNoSelectionContainer: () => import("@emotion/react/jsx-runtime").JSX.Element;
12
- export type MobileViews = 'convList' | 'chat' | 'details';
13
- export declare const MobileMenu: ({ embeddedMode, activePage, setActivePage, hideDetails }: {
14
- embeddedMode?: boolean;
15
- activePage: MobileViews;
16
- setActivePage: (page: MobileViews) => void;
17
- hideDetails?: boolean;
16
+ export declare const InboxNoSelectionContainer: ({ convsLength, loadingConvs, handleStartConversation, }: {
17
+ convsLength?: number;
18
+ loadingConvs?: boolean;
19
+ handleStartConversation?: () => void;
18
20
  }) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { ActionItem } from '@bcrumbs.net/bc-ui';
2
+ type Props = {
3
+ open: boolean;
4
+ title: string;
5
+ actions: ActionItem[];
6
+ onClose: () => void;
7
+ };
8
+ export declare const MobileActionSheet: ({ open, title, actions, onClose }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,8 @@
1
+ import { MobileViews } from './mobileMenuStyles';
2
+ export type { MobileViews };
3
+ type MobileMenuProps = {
4
+ activePage: MobileViews;
5
+ setActivePage: (page: MobileViews) => void;
6
+ hideDetails?: boolean;
7
+ };
8
+ export declare const MobileMenu: ({ activePage, setActivePage, hideDetails }: MobileMenuProps) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -7,6 +7,8 @@ export declare const SectionContainer: import("@emotion/styled").StyledComponent
7
7
  export declare const DetailsSectionLabel: import("@emotion/styled").StyledComponent<{
8
8
  theme?: import("@emotion/react").Theme | undefined;
9
9
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
10
+ } & {
11
+ $isMobile?: boolean | undefined;
10
12
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
11
13
  export declare const EditButton: import("@emotion/styled").StyledComponent<import("@bcrumbs.net/bc-ui").ButtonProps & import("react").RefAttributes<HTMLButtonElement> & {
12
14
  theme?: import("@emotion/react").Theme | undefined;
@@ -14,6 +16,8 @@ export declare const EditButton: import("@emotion/styled").StyledComponent<impor
14
16
  export declare const TagContainer: import("@emotion/styled").StyledComponent<{
15
17
  theme?: import("@emotion/react").Theme | undefined;
16
18
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
19
+ } & {
20
+ $isMobile?: boolean | undefined;
17
21
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
18
22
  export declare const ClientDetailsContainer: import("@emotion/styled").StyledComponent<{
19
23
  theme?: import("@emotion/react").Theme | undefined;
@@ -24,8 +28,11 @@ export declare const ClientDetailsItem: import("@emotion/styled").StyledComponen
24
28
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
25
29
  } & {
26
30
  highlight?: boolean | undefined;
31
+ $isMobile?: boolean | undefined;
27
32
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
33
+ export declare const getClientDetailsItemCss: (isMobile: boolean) => import("@emotion/react").SerializedStyles;
28
34
  export declare const clientDetailsItemCss: import("@emotion/react").SerializedStyles;
35
+ export declare const getClientDetailsItemPhoneCss: (isMobile: boolean) => import("@emotion/react").SerializedStyles;
29
36
  export declare const clientDetailsItemPhoneCss: import("@emotion/react").SerializedStyles;
30
37
  export declare const createImageContainerStyle: (width: number | string, height: number | string, fontSize?: TextSizeRem, LineHeight?: LineHeightRem) => import("@emotion/react").SerializedStyles;
31
38
  export declare const ArchivedLabelStyle: import("@emotion/styled").StyledComponent<{
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ export type MobileViews = 'convList' | 'chat' | 'details';
3
+ export declare const mobileNavbar: {
4
+ Wrapper: import("@emotion/styled").StyledComponent<{
5
+ theme?: import("@emotion/react").Theme | undefined;
6
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
7
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
8
+ Items: import("@emotion/styled").StyledComponent<{
9
+ theme?: import("@emotion/react").Theme | undefined;
10
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
11
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, {}>;
12
+ Item: import("@emotion/styled").StyledComponent<{
13
+ theme?: import("@emotion/react").Theme | undefined;
14
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
15
+ }, import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, {}>;
16
+ Icon: import("@emotion/styled").StyledComponent<{
17
+ theme?: import("@emotion/react").Theme | undefined;
18
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
19
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
20
+ };
@@ -15,7 +15,7 @@ export declare const WABA_TEMPLATE_COSTS: {
15
15
  UTILITY: number;
16
16
  AUTHENTIC: number;
17
17
  };
18
- export declare const CONVERSATIONS_LIMIT = 100;
18
+ export declare const CONVERSATIONS_LIMIT = 300;
19
19
  export declare const WhatsappLanguageCodes: {
20
20
  ar: string;
21
21
  en: string;
@@ -0,0 +1,8 @@
1
+ import { Conversation } from '../../../graphql.autogenerated';
2
+ declare function useConversationById(convId: string | undefined, skip?: boolean): {
3
+ conversation: Conversation | undefined;
4
+ loading: boolean;
5
+ error: import("@apollo/client").ApolloError | undefined;
6
+ refetch: () => void;
7
+ };
8
+ export default useConversationById;
@@ -19,8 +19,18 @@ declare function useConversationsPeriodicFetch(selectedConvId?: string, onSelect
19
19
  assigneeId?: string | null | undefined;
20
20
  aiId?: string | null | undefined;
21
21
  aiAssigneed?: boolean | null | undefined;
22
+ ratingFlowInProgress?: boolean | null | undefined;
22
23
  broadcastId?: string | null | undefined;
23
24
  broadcastName?: string | null | undefined;
25
+ integrationSwitches?: {
26
+ __typename?: "ConvIntegrationSwitch" | undefined;
27
+ fromIntegrationId: string;
28
+ fromIntegrationType: import("../../../graphql.autogenerated").IntegrationType;
29
+ toIntegrationId: string;
30
+ toIntegrationType: import("../../../graphql.autogenerated").IntegrationType;
31
+ switchedAt: any;
32
+ switchedBy?: string | null | undefined;
33
+ }[] | null | undefined;
24
34
  messages?: {
25
35
  __typename?: "Message" | undefined;
26
36
  messageId: string;
@@ -0,0 +1,3 @@
1
+ import { Ai } from '../../../graphql.autogenerated';
2
+ /** Memoized inbox-assignable AIs (pure logic lives in {@link getInboxAssignableAis}). */
3
+ export declare function useInboxAssignableAis(aiAgents: Ai[] | undefined | null, isCrumbyEnabled: boolean): Ai[];
@@ -0,0 +1,8 @@
1
+ import { Agent } from '../../../graphql.autogenerated';
2
+ /**
3
+ * Resolves the workspace agent for the current session.
4
+ * Portal users match on agent.userId; agent-linked API keys authenticate with agent.id.
5
+ */
6
+ export declare function findMyAgent(agents: Agent[] | null | undefined, userId: string | undefined, userType: string | undefined): Agent | undefined;
7
+ declare const useMyAgent: (agents?: Agent[] | null) => Agent | undefined;
8
+ export default useMyAgent;
@@ -7,7 +7,7 @@ export type EventType = {
7
7
  timestamp: number;
8
8
  formattedDate: string;
9
9
  formattedTime: string;
10
- type: 'assignee' | 'note' | 'start' | 'end';
10
+ type: 'assignee' | 'note' | 'start' | 'end' | 'switch';
11
11
  noteType?: NoteType;
12
12
  content: string;
13
13
  Icon: React.ReactNode;
@@ -1,5 +1,5 @@
1
1
  import { Maybe } from 'graphql/jsutils/Maybe';
2
- import { Agent, Ai, ClientQuery, Message, Tag } from '../../../graphql.autogenerated';
2
+ import { Agent, Ai, ClientQuery, Integration, Message, Tag } from '../../../graphql.autogenerated';
3
3
  import { ActionItem } from '@bcrumbs.net/bc-ui';
4
4
  export type ConvsFilters = {
5
5
  ended?: boolean;
@@ -8,6 +8,7 @@ export type ConvsFilters = {
8
8
  aiId?: string | null;
9
9
  stageId?: string | null;
10
10
  nameOrPhone?: string;
11
+ integrationId?: string | null;
11
12
  };
12
13
  export interface AgentConversationCounts {
13
14
  total: number;
@@ -20,16 +21,16 @@ interface BuildAgentsMenuOptions {
20
21
  selectedAgentId: string | null | undefined;
21
22
  selectedAiId: string | null | undefined;
22
23
  onAgentSelect: (agentId: string, agentName?: string) => void;
23
- onCrumbySelect: (crumbyId: string, crumbyName?: string) => void;
24
+ /** Workspace assistants shown after “Unassigned”; excludes internal-only AIs */
25
+ assignableAis?: Ai[];
26
+ onAssignableAiSelect?: (aiId: string) => void;
24
27
  onUnassigneeSelect?: () => void;
25
28
  t: any;
26
- crumbyAi?: Ai;
27
29
  includeAllOption?: boolean;
28
30
  onAllSelect?: () => void;
29
31
  addSeparatorAtLast?: boolean;
30
32
  counts?: AgentConversationCounts;
31
33
  showAllAgents?: boolean;
32
- isCrumbyEnabled?: boolean;
33
34
  }
34
35
  interface BuildLifeCycleMenuOptions {
35
36
  convStages: Tag[];
@@ -45,7 +46,15 @@ export declare function isOutside24HourWindow(message: Message | null | undefine
45
46
  export declare function formatSeconds(value: number): string;
46
47
  export declare const getMessageStatusIcon: (message: Message | null | undefined) => import("@emotion/react/jsx-runtime").JSX.Element | null;
47
48
  export declare const getDisplayName: (clientData: ClientQuery['client'] | undefined) => string;
48
- export declare const buildAgentsMenu: ({ agents, myAgent, selectedAgentId, selectedAiId, onAgentSelect, onCrumbySelect, onUnassigneeSelect, t, includeAllOption, onAllSelect, addSeparatorAtLast, counts, crumbyAi, showAllAgents, isCrumbyEnabled, }: BuildAgentsMenuOptions) => ActionItem[];
49
+ export declare const buildAgentsMenu: ({ agents, myAgent, selectedAgentId, selectedAiId, onAgentSelect, assignableAis, onAssignableAiSelect, onUnassigneeSelect, t, includeAllOption, onAllSelect, addSeparatorAtLast, counts, showAllAgents, }: BuildAgentsMenuOptions) => ActionItem[];
49
50
  export declare const buildLifeCycleMenu: ({ convStages, selectedStageId, onStageSelect, t, addSeparatorAtLast, }: BuildLifeCycleMenuOptions) => ActionItem[];
50
51
  export declare const formatPhoneForWhatsApp: (phone: string | null | undefined) => string;
52
+ interface BuildChannelsMenuOptions {
53
+ integrations: Integration[];
54
+ selectedIntegrationId: string | null | undefined;
55
+ onIntegrationSelect: (id: string) => void;
56
+ onAllSelect: () => void;
57
+ t: any;
58
+ }
59
+ export declare const buildChannelsMenu: ({ integrations, selectedIntegrationId, onIntegrationSelect, onAllSelect, t, }: BuildChannelsMenuOptions) => ActionItem[];
51
60
  export {};
@@ -0,0 +1,10 @@
1
+ import { Ai } from '../../../graphql.autogenerated';
2
+ /** Stored name for the primary Crumby assistant record */
3
+ export declare const CRUMBY_AI_RECORD_NAME = "Crumby AI";
4
+ /** Primary Crumby assistant rows first, then remaining AIs by name */
5
+ export declare function sortInboxAssignableAis(ais: Ai[]): Ai[];
6
+ /**
7
+ * Workspace AIs users may assign or filter by in the inbox.
8
+ * Excludes internal assistants and hides Crumby when the feature flag is off.
9
+ */
10
+ export declare function getInboxAssignableAis(aiAgents: Ai[] | undefined, isCrumbyEnabled: boolean): Ai[];
@@ -0,0 +1,6 @@
1
+ import { LineHeightRem, TextSizeRem } from '@bcrumbs.net/bc-ui';
2
+ /** Desktop → mobile font step-up for inbox UI */
3
+ export declare const mobileText: (desktop: TextSizeRem, mobile: TextSizeRem, isMobile: boolean) => TextSizeRem;
4
+ export declare const mobileLineHeight: (desktop: LineHeightRem, mobile: LineHeightRem, isMobile: boolean) => LineHeightRem;
5
+ export declare const mobileFullWidthButtonCss: import("@emotion/react").SerializedStyles;
6
+ export declare const bcChatMobileFontVars: import("@emotion/react").SerializedStyles;
@@ -0,0 +1,16 @@
1
+ export type CommandPaletteItem = {
2
+ id: string;
3
+ label: string;
4
+ description?: string;
5
+ link?: string;
6
+ action?: string;
7
+ tags: string[];
8
+ commandType: 'page' | 'action';
9
+ section: string;
10
+ };
11
+ type CommandPaletteProps = {
12
+ items: CommandPaletteItem[];
13
+ onActionSelect?: (item: CommandPaletteItem) => void;
14
+ };
15
+ declare function CommandPalette({ items, onActionSelect }: CommandPaletteProps): import("@emotion/react/jsx-runtime").JSX.Element;
16
+ export default CommandPalette;
@@ -1,18 +1,16 @@
1
1
  /// <reference types="react" />
2
+ import { CommandPaletteItem } from './CommandPalette';
2
3
  export declare const HeaderContainer: import("@emotion/styled").StyledComponent<{
3
4
  theme?: import("@emotion/react").Theme | undefined;
4
5
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
- } & {
6
- rtl: boolean;
7
- mobileInboxVersion: boolean;
8
- hasSubMenu?: boolean | undefined;
9
6
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
10
7
  export declare const Separator: import("@emotion/styled").StyledComponent<{
11
8
  theme?: import("@emotion/react").Theme | undefined;
12
9
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
13
10
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
14
- declare function Header({ onLogout, hasSubMenu }: {
11
+ declare function Header({ onLogout, hasSubMenu, commandItems, }: {
15
12
  onLogout: () => void;
16
13
  hasSubMenu: boolean;
14
+ commandItems: CommandPaletteItem[];
17
15
  }): import("@emotion/react/jsx-runtime").JSX.Element;
18
16
  export default Header;
@@ -2,38 +2,60 @@ import { Permission } from '@bcrumbs.net/bc-shared';
2
2
  export declare const BCMainNavigation: {
3
3
  leftLinks: ({
4
4
  label: string;
5
+ title: string;
5
6
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
6
7
  link: string;
7
8
  action: string;
9
+ description: string;
10
+ tags: string[];
8
11
  subMenu?: undefined;
9
12
  requiredPermissions?: undefined;
10
13
  } | {
11
14
  label: string;
15
+ title: string;
12
16
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
13
17
  link: string;
14
18
  action: string;
19
+ description: string;
15
20
  subMenu: {
16
- items: {
21
+ items: ({
17
22
  label: string;
23
+ title: string;
18
24
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
19
25
  link: string;
20
26
  action: string;
21
- }[];
27
+ tags: string[];
28
+ description?: undefined;
29
+ } | {
30
+ label: string;
31
+ title: string;
32
+ icon: import("@emotion/react/jsx-runtime").JSX.Element;
33
+ link: string;
34
+ action: string;
35
+ description: string;
36
+ tags: string[];
37
+ })[];
22
38
  }[];
39
+ tags: string[];
23
40
  requiredPermissions?: undefined;
24
41
  } | {
25
42
  label: string;
43
+ title: string;
26
44
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
27
45
  link: string;
28
46
  action: string;
47
+ description: string;
48
+ tags: string[];
29
49
  requiredPermissions: Permission[];
30
50
  subMenu?: undefined;
31
51
  })[];
32
52
  leftBottomLinks: {
33
53
  label: string;
54
+ title: string;
34
55
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
35
56
  link: string;
36
57
  action: string;
58
+ tags: string[];
37
59
  }[];
38
60
  };
39
61
  export declare const MOBILE_DIMENSION = 767;
@@ -3,34 +3,64 @@ export declare const ManagementSubmenu: ({
3
3
  hide: boolean;
4
4
  items: {
5
5
  label: string;
6
+ title: string;
6
7
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
7
8
  link: string;
8
9
  action: string;
10
+ description: string;
11
+ tags: string[];
9
12
  }[];
10
13
  } | {
11
14
  title: string;
12
- items: {
15
+ items: ({
13
16
  label: string;
17
+ title: string;
14
18
  link: string;
15
19
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
16
20
  action: string;
17
- }[];
21
+ description: string;
22
+ tags: string[];
23
+ hide?: undefined;
24
+ } | {
25
+ label: string;
26
+ hide: boolean;
27
+ title: string;
28
+ link: string;
29
+ icon: import("@emotion/react/jsx-runtime").JSX.Element;
30
+ action: string;
31
+ description: string;
32
+ tags: string[];
33
+ })[];
18
34
  hide?: undefined;
19
35
  })[];
20
36
  export declare const ContactSubmenu: {
21
- items: {
37
+ items: ({
22
38
  label: string;
39
+ title: string;
23
40
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
24
41
  link: string;
25
42
  action: string;
26
- }[];
43
+ tags: string[];
44
+ description?: undefined;
45
+ } | {
46
+ label: string;
47
+ title: string;
48
+ icon: import("@emotion/react/jsx-runtime").JSX.Element;
49
+ link: string;
50
+ action: string;
51
+ description: string;
52
+ tags: string[];
53
+ })[];
27
54
  }[];
28
55
  export declare const CrumpySubmenu: {
29
56
  title: string;
30
57
  items: {
31
58
  label: string;
59
+ title: string;
32
60
  icon: import("@emotion/react/jsx-runtime").JSX.Element;
33
61
  link: string;
34
62
  action: string;
63
+ description: string;
64
+ tags: string[];
35
65
  }[];
36
66
  }[];
@@ -0,0 +1,3 @@
1
+ import { type PropsWithChildren } from 'react';
2
+ export declare const EmbeddedInboxProvider: ({ children }: PropsWithChildren) => import("@emotion/react/jsx-runtime").JSX.Element;
3
+ export declare const useIsEmbeddedInbox: () => boolean;
@@ -0,0 +1,9 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { MobileViews } from '../../inbox/components/Shared/Inbox';
3
+ type MobileInboxNavContextValue = {
4
+ activePage: MobileViews;
5
+ setActivePage: (page: MobileViews) => void;
6
+ };
7
+ export declare const MobileInboxNavProvider: ({ children }: PropsWithChildren) => import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export declare const useMobileInboxNav: () => MobileInboxNavContextValue;
9
+ export {};
@@ -0,0 +1 @@
1
+ export declare const useImportContactsEnabled: () => boolean;
@@ -1,6 +1,4 @@
1
1
  export declare const useMobileInboxVersion: () => {
2
- mobileInboxVersion: boolean;
3
- isInboxPath: boolean;
2
+ isMobile: boolean;
4
3
  pageWidth: number;
5
- location: import("history").Location<unknown>;
6
4
  };
@@ -0,0 +1,6 @@
1
+ interface CreateCrmWebhookProps {
2
+ onSuccess?: () => void;
3
+ onCancel?: () => void;
4
+ }
5
+ declare const CreateCrmWebhook: ({ onSuccess, onCancel }: CreateCrmWebhookProps) => import("@emotion/react/jsx-runtime").JSX.Element;
6
+ export default CreateCrmWebhook;
@@ -0,0 +1,8 @@
1
+ import { QuickReply } from '../../../graphql.autogenerated';
2
+ interface CreateQuickReplyProps {
3
+ quickReply?: QuickReply;
4
+ onSuccess?: () => void;
5
+ onCancel?: () => void;
6
+ }
7
+ declare const CreateQuickReply: ({ quickReply, onSuccess, onCancel }: CreateQuickReplyProps) => import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export default CreateQuickReply;
@@ -0,0 +1,10 @@
1
+ interface AddChannelDialogProps {
2
+ isOpen: boolean;
3
+ onClose: () => void;
4
+ onSuccess: () => void;
5
+ channelType: string;
6
+ channelTypeName: string;
7
+ rtl?: boolean;
8
+ }
9
+ declare const AddChannelDialog: ({ isOpen, onClose, onSuccess, channelType, channelTypeName, rtl }: AddChannelDialogProps) => import("@emotion/react/jsx-runtime").JSX.Element;
10
+ export default AddChannelDialog;
@@ -0,0 +1,11 @@
1
+ interface ChannelItemProps {
2
+ id: string;
3
+ name: string;
4
+ date: string;
5
+ identifier?: string;
6
+ onDelete: (id: string) => void;
7
+ onEdit: (id: string) => void;
8
+ rtl?: boolean;
9
+ }
10
+ declare const ChannelItem: ({ id, name, date, identifier, onDelete, onEdit, rtl }: ChannelItemProps) => import("@emotion/react/jsx-runtime").JSX.Element;
11
+ export default ChannelItem;
@@ -0,0 +1,15 @@
1
+ export interface ChannelIntegration {
2
+ id: string;
3
+ name: string;
4
+ type: string;
5
+ createdAt: string;
6
+ identifier?: string;
7
+ }
8
+ interface ChannelTypeCardProps {
9
+ type: string;
10
+ channels: ChannelIntegration[];
11
+ onChannelDelete: (id: string) => void;
12
+ onChannelCreated: () => void;
13
+ }
14
+ declare const ChannelTypeCard: ({ type, channels, onChannelDelete, onChannelCreated }: ChannelTypeCardProps) => import("@emotion/react/jsx-runtime").JSX.Element;
15
+ export default ChannelTypeCard;
@@ -0,0 +1,11 @@
1
+ interface EditChannelDialogProps {
2
+ isOpen: boolean;
3
+ onClose: () => void;
4
+ onSuccess: () => void;
5
+ channelId: string;
6
+ channelType: string;
7
+ channelTypeName: string;
8
+ rtl?: boolean;
9
+ }
10
+ declare const EditChannelDialog: ({ isOpen, onClose, onSuccess, channelId, channelType, rtl }: EditChannelDialogProps) => import("@emotion/react/jsx-runtime").JSX.Element;
11
+ export default EditChannelDialog;
@@ -0,0 +1,4 @@
1
+ import { QuickReply } from '../../../graphql.autogenerated';
2
+ import { ResourceDefinition } from './types';
3
+ declare const quickReplyDefinition: ResourceDefinition<QuickReply>;
4
+ export default quickReplyDefinition;
@@ -0,0 +1,2 @@
1
+ declare const CrmIntegrations: () => import("@emotion/react/jsx-runtime").JSX.Element;
2
+ export default CrmIntegrations;
@@ -0,0 +1,2 @@
1
+ declare const QuickReplies: () => import("@emotion/react/jsx-runtime").JSX.Element;
2
+ export default QuickReplies;
@@ -0,0 +1,8 @@
1
+ import { type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
2
+ export type OnboardingChecklistGuideContentProps = {
3
+ stepId: OnboardingChecklistStepId;
4
+ };
5
+ /**
6
+ * Single-step guide aligned with packages/bc-api-docs/pages/start/quickstart.mdx.
7
+ */
8
+ export declare function OnboardingChecklistGuideContent({ stepId }: OnboardingChecklistGuideContentProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ declare const OnboardingChecklistWidget: () => import("@emotion/react/jsx-runtime").JSX.Element | null;
2
+ export default OnboardingChecklistWidget;