@adatechnology/conversations-ui 0.1.0-rc.23 → 0.1.0-rc.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { ReactNode, CSSProperties, UIEvent, FormEvent, RefObject } from 'react';
3
- import { G as MessagePayload, N as ResolveMediaUrl, z as InteractiveSelection, J as MessageTranscription, x as InteractivePayload, r as ConversationsFeatures, o as ConversationSummary, j as ConversationChannel, L as ListConversationsParams, q as ConversationsApi, S as SSEProvider, T as TranscriptionMode, B as ListDocumentsParams, k as ConversationDocument, p as ConversationTemplate, f as ChannelFilter, g as ChannelFilterOption } from './types-C6A_9edv.js';
4
- export { A as AudioRecorderButton, a as AudioRecorderButtonLabels, b as AudioRecorderButtonProps, C as CHANNEL_CAPABILITIES, c as CHANNEL_FILTER_ALL, d as CONVERSATION_CHANNEL, e as ChannelCapabilities, h as CompanyDocument, i as CompanyDocumentPage, l as ConversationDocumentPage, m as ConversationEventSource, n as ConversationPage, s as ConversationsTheme, t as ConversationsUIConfig, D as DEFAULT_AUDIO_RECORDER_BUTTON_LABELS, u as DEFAULT_CONVERSATION_CHANNEL, v as DEFAULT_MAX_RECORDING_MILLISECONDS, F as FormatContactHandleParams, H as HANDLE_KIND, w as HandleKind, I as InteractiveOption, y as InteractiveSection, M as MediaRenderer, E as MediaRendererProps, R as REOPEN_MECHANISM, K as ReopenMechanism, O as TranscriptionStatus, P as capabilitiesOf, Q as channelFiltersFor, U as contactFlag, V as formatContactHandle } from './types-C6A_9edv.js';
3
+ import { G as MessagePayload, N as ResolveMediaUrl, z as InteractiveSelection, J as MessageTranscription, x as InteractivePayload, r as ConversationsFeatures, o as ConversationSummary, j as ConversationChannel, L as ListConversationsParams, q as ConversationsApi, S as SSEProvider, T as TranscriptionMode, B as ListDocumentsParams, k as ConversationDocument, p as ConversationTemplate, f as ChannelFilter, g as ChannelFilterOption } from './types-BfINicc-.js';
4
+ export { A as AudioRecorderButton, a as AudioRecorderButtonLabels, b as AudioRecorderButtonProps, C as CHANNEL_CAPABILITIES, c as CHANNEL_FILTER_ALL, d as CONVERSATION_CHANNEL, e as ChannelCapabilities, h as CompanyDocument, i as CompanyDocumentPage, l as ConversationDocumentPage, m as ConversationEventSource, n as ConversationPage, s as ConversationsTheme, t as ConversationsUIConfig, D as DEFAULT_AUDIO_RECORDER_BUTTON_LABELS, u as DEFAULT_CONVERSATION_CHANNEL, v as DEFAULT_MAX_RECORDING_MILLISECONDS, F as FormatContactHandleParams, H as HANDLE_KIND, w as HandleKind, I as InteractiveOption, y as InteractiveSection, M as MediaRenderer, E as MediaRendererProps, R as REOPEN_MECHANISM, K as ReopenMechanism, O as TranscriptionStatus, P as capabilitiesOf, Q as channelFiltersFor, U as contactFlag, V as formatContactHandle } from './types-BfINicc-.js';
5
5
 
6
6
  interface MessageBubbleProps {
7
7
  message: MessagePayload;
@@ -733,6 +733,158 @@ interface DocumentsLibraryProps {
733
733
  }
734
734
  declare function DocumentsLibrary({ perPage, onOpenConversation, labels: labelsOverride, className, classNames, }: DocumentsLibraryProps): react.JSX.Element | null;
735
735
 
736
+ type SortDirection = 'asc' | 'desc';
737
+ interface SortableHeadProps {
738
+ readonly label: string;
739
+ readonly field: string;
740
+ readonly activeField: string;
741
+ readonly direction: SortDirection;
742
+ readonly onSort: (field: string) => void;
743
+ readonly className?: string;
744
+ }
745
+ declare function SortableHead({ label, field, activeField, direction, onSort, className }: SortableHeadProps): react.JSX.Element;
746
+ interface FilterOption {
747
+ readonly value: string;
748
+ readonly label: string;
749
+ }
750
+ interface MultiSelectFilterProps {
751
+ readonly label: string;
752
+ readonly options: readonly FilterOption[];
753
+ readonly selected: readonly string[];
754
+ readonly onChange: (selected: readonly string[]) => void;
755
+ readonly className?: string;
756
+ }
757
+ declare function MultiSelectFilter({ label, options, selected, onChange, className }: MultiSelectFilterProps): react.JSX.Element;
758
+ interface BulkActionBarProps {
759
+ readonly selectedCount: number;
760
+ readonly selectedLabel: (count: number) => string;
761
+ readonly clearLabel: string;
762
+ readonly onClear: () => void;
763
+ readonly children?: ReactNode;
764
+ }
765
+ declare function BulkActionBar({ selectedCount, selectedLabel, clearLabel, onClear, children }: BulkActionBarProps): react.JSX.Element | null;
766
+ interface ListingPaginationProps {
767
+ readonly page: number;
768
+ readonly total: number;
769
+ readonly perPage: number;
770
+ readonly perPageOptions?: readonly number[];
771
+ readonly onPageChange: (page: number) => void;
772
+ readonly onPerPageChange?: (perPage: number) => void;
773
+ readonly labels: {
774
+ readonly show: string;
775
+ readonly perPage: string;
776
+ readonly total: (count: number) => string;
777
+ readonly page: (current: number, last: number) => string;
778
+ readonly previous: string;
779
+ readonly next: string;
780
+ };
781
+ }
782
+ declare function ListingPagination({ page, total, perPage, perPageOptions, onPageChange, onPerPageChange, labels, }: ListingPaginationProps): react.JSX.Element;
783
+
784
+ /**
785
+ * Vocabulário da biblioteca de arquivos. Sobrescrevível campo a campo: o produto troca "cliente"
786
+ * por "lead" ou o idioma inteiro sem manter uma cópia da tela para isso.
787
+ */
788
+ interface DocumentsWorkspaceLabels {
789
+ readonly title: string;
790
+ readonly subtitle: (total: number) => string;
791
+ readonly searchPlaceholder: string;
792
+ readonly empty: string;
793
+ readonly noResults: string;
794
+ readonly loading: string;
795
+ readonly failure: string;
796
+ readonly view: string;
797
+ readonly download: string;
798
+ readonly remove: string;
799
+ readonly removeConfirm: (filename: string) => string;
800
+ readonly openConversation: string;
801
+ readonly sourceFilter: string;
802
+ readonly categoryFilter: string;
803
+ readonly startDate: string;
804
+ readonly endDate: string;
805
+ readonly clearFilters: string;
806
+ readonly selectAllPage: string;
807
+ readonly selectRow: string;
808
+ readonly bulkSelected: (count: number) => string;
809
+ readonly bulkClear: string;
810
+ readonly bulkDownloadZip: string;
811
+ readonly bulkRemove: (count: number) => string;
812
+ readonly bulkRemoveConfirm: (count: number) => string;
813
+ readonly columnFilename: string;
814
+ readonly columnContact: string;
815
+ readonly columnType: string;
816
+ readonly columnSize: string;
817
+ readonly columnSource: string;
818
+ readonly columnDate: string;
819
+ readonly columnActions: string;
820
+ readonly sourceLabels: Readonly<Record<string, string>>;
821
+ readonly categoryLabels: Readonly<Record<string, string>>;
822
+ readonly show: string;
823
+ readonly perPage: string;
824
+ readonly total: (count: number) => string;
825
+ readonly page: (current: number, last: number) => string;
826
+ readonly previousPage: string;
827
+ readonly nextPage: string;
828
+ }
829
+ declare const DEFAULT_DOCUMENTS_WORKSPACE_LABELS: DocumentsWorkspaceLabels;
830
+
831
+ interface DocumentsWorkspaceClassNames {
832
+ root: string;
833
+ header: string;
834
+ filters: string;
835
+ table: string;
836
+ row: string;
837
+ status: string;
838
+ }
839
+ interface DocumentsWorkspaceProps {
840
+ readonly perPage?: number;
841
+ readonly perPageOptions?: readonly number[];
842
+ /** Abrir a conversa de origem. Ausente, o número aparece como texto e não como link. */
843
+ readonly onOpenConversation?: (conversationId: string) => void;
844
+ /** Origens filtráveis. Ausente, usa o vocabulário padrão (`customer`, `agent`, `bot`). */
845
+ readonly sources?: readonly FilterOption[];
846
+ /** Categorias de arquivo. Lista vazia esconde o filtro — nem todo host classifica anexo. */
847
+ readonly categories?: readonly FilterOption[];
848
+ /** Recorte por data. Desligado quando o backend não sabe filtrar por período. */
849
+ readonly dateFilter?: boolean;
850
+ /**
851
+ * Filtros do produto (cliente, unidade, campanha). Recebe os parâmetros extras atuais e devolve
852
+ * os controles; o que o produto guardar aqui viaja em `extra` para o `getAllDocuments`.
853
+ */
854
+ readonly renderFilters?: (context: DocumentsFiltersContext) => ReactNode;
855
+ readonly labels?: Partial<DocumentsWorkspaceLabels>;
856
+ readonly className?: string;
857
+ readonly classNames?: Partial<DocumentsWorkspaceClassNames>;
858
+ /** Espelhar filtros e paginação na URL. Desligado em preview, onde não há rota de verdade. */
859
+ readonly syncUrl?: boolean;
860
+ }
861
+ interface DocumentsFiltersContext {
862
+ readonly extra: Readonly<Record<string, string | number>>;
863
+ readonly setExtra: (next: Readonly<Record<string, string | number>>) => void;
864
+ }
865
+ declare function DocumentsWorkspace({ perPage: initialPerPage, perPageOptions, onOpenConversation, sources, categories, dateFilter, renderFilters, labels: labelsOverride, className, classNames, syncUrl, }: DocumentsWorkspaceProps): react.JSX.Element | null;
866
+
867
+ /**
868
+ * Estado de listagem espelhado na URL — ordenação, filtros e paginação (regra `web.md` §7).
869
+ *
870
+ * Escrito sobre `history.replaceState` e não sobre um router: o pacote roda em três produtos com
871
+ * routers diferentes, e exigir um deles arrastaria dependência de framework para dentro do módulo.
872
+ * `replaceState` também é o comportamento certo aqui — filtrar não é navegar, e cada tecla digitada
873
+ * na busca não deve virar uma entrada no botão "voltar".
874
+ */
875
+ /** `enabled: false` mantém o mesmo contrato de estado sem tocar na URL — para uso em preview e teste. */
876
+ interface UrlStateOptions {
877
+ readonly enabled?: boolean;
878
+ }
879
+ declare function useUrlStringState(key: string, initial: string, { enabled }?: UrlStateOptions): [string, (next: string) => void];
880
+ declare function useUrlNumberState(key: string, initial: number, { enabled }?: UrlStateOptions): [number, (next: number) => void];
881
+ declare function useUrlArrayState(key: string, { enabled }?: UrlStateOptions): [readonly string[], (next: readonly string[]) => void];
882
+ /**
883
+ * Espera o usuário parar de digitar antes de deixar o valor chegar à query. Sem isto, cada tecla
884
+ * na busca vira uma chamada de rede e uma reescrita de URL.
885
+ */
886
+ declare function useDebouncedValue<TValue>(value: TValue, delayMs?: number): TValue;
887
+
736
888
  /**
737
889
  * Arquivos trocados na conversa. Sai do transcript e vira lista própria porque anexo é o que o
738
890
  * atendente mais precisa reencontrar depois — rolar meses de mensagens para achar um comprovante é
@@ -1108,10 +1260,13 @@ interface WhatsAppTemplatesSettingsProps {
1108
1260
  onSubmit: (event: FormEvent) => void;
1109
1261
  submitting?: boolean;
1110
1262
  result?: WhatsAppCreateTemplateResult | null;
1263
+ labels?: Partial<WhatsAppCreateTemplateFormLabels>;
1111
1264
  };
1112
1265
  labels?: Partial<WhatsAppTemplatesSettingsLabels>;
1266
+ /** Vocabulário do formulário de seleção — separado de `labels`, que nomeia só as abas daqui. */
1267
+ settingsLabels?: Partial<WhatsAppTemplateSettingsFormLabels>;
1113
1268
  }
1114
- declare function WhatsAppTemplatesSettings({ labels: labelsOverride, create, ...settingsProps }: WhatsAppTemplatesSettingsProps): react.JSX.Element;
1269
+ declare function WhatsAppTemplatesSettings({ labels: labelsOverride, settingsLabels, create, ...settingsProps }: WhatsAppTemplatesSettingsProps): react.JSX.Element;
1115
1270
 
1116
1271
  interface TopicItem {
1117
1272
  key: string;
@@ -1137,6 +1292,67 @@ interface TopicsFormProps {
1137
1292
  }
1138
1293
  declare function TopicsForm({ topics, onToggle, onMessageChange, onSave, saving, saveSuccess, labels: labelsOverride, }: TopicsFormProps): react.JSX.Element;
1139
1294
 
1295
+ interface BotMessages {
1296
+ welcomeMessage: string;
1297
+ farewellMessage: string;
1298
+ }
1299
+ interface TemplateSettings {
1300
+ templateName: string;
1301
+ templateLanguage: string;
1302
+ variables: string[];
1303
+ }
1304
+ interface TranscriptionSettings {
1305
+ enabled: boolean;
1306
+ mode: TranscriptionMode;
1307
+ available: boolean;
1308
+ }
1309
+ interface MessagesWorkspaceApi {
1310
+ getMessages(): Promise<BotMessages>;
1311
+ saveMessages(messages: BotMessages): Promise<void>;
1312
+ /** Sem este par, a seção de tópicos não é desenhada. */
1313
+ getTopics?(): Promise<TopicItem[]>;
1314
+ saveTopics?(topics: TopicItem[]): Promise<void>;
1315
+ /** Sem este par, a aba de templates não é desenhada. */
1316
+ getTemplateSettings?(): Promise<TemplateSettings>;
1317
+ saveTemplateSettings?(settings: TemplateSettings): Promise<void>;
1318
+ /**
1319
+ * Lista de templates aprovados na Meta. Ausente, a aba ainda existe (dá para salvar o nome
1320
+ * escolhido), mas nasce sem opções e sem botão de recarregar.
1321
+ */
1322
+ listTemplates?(): Promise<WhatsAppTemplateSummary[]>;
1323
+ /** Sem isto, o submenu "Criar template" some. */
1324
+ createTemplate?(input: WhatsAppCreateTemplateState): Promise<WhatsAppCreateTemplateResult>;
1325
+ /** Sem este par, a aba de transcrição não é desenhada. */
1326
+ getTranscription?(): Promise<TranscriptionSettings>;
1327
+ saveTranscription?(settings: Omit<TranscriptionSettings, 'available'>): Promise<void>;
1328
+ }
1329
+ interface MessagesWorkspaceLabels {
1330
+ title: string;
1331
+ subtitle: string;
1332
+ loading: string;
1333
+ loadError: string;
1334
+ tabBot: string;
1335
+ tabTemplates: string;
1336
+ tabTranscription: string;
1337
+ welcomeFarewell: Partial<WelcomeFarewellFormLabels>;
1338
+ topics: Partial<TopicsFormLabels>;
1339
+ templates: Partial<WhatsAppTemplatesSettingsLabels>;
1340
+ templateSettings: Partial<WhatsAppTemplateSettingsFormLabels>;
1341
+ createTemplate: Partial<WhatsAppCreateTemplateFormLabels>;
1342
+ transcription: Partial<TranscriptionSettingsFormLabels>;
1343
+ }
1344
+ interface MessagesWorkspaceProps {
1345
+ readonly api: MessagesWorkspaceApi;
1346
+ readonly labels?: Partial<MessagesWorkspaceLabels>;
1347
+ readonly welcomePlaceholders?: readonly string[];
1348
+ readonly farewellPlaceholders?: readonly string[];
1349
+ readonly availableVariables?: WhatsAppTemplateVariableSuggestion[];
1350
+ /** Aviso do produto acima da aba de templates (ex.: rota da Graph API ainda não implementada). */
1351
+ readonly renderTemplatesNotice?: () => ReactNode;
1352
+ readonly className?: string;
1353
+ }
1354
+ declare function MessagesWorkspace({ api, labels: labelsOverride, welcomePlaceholders, farewellPlaceholders, availableVariables, renderTemplatesNotice, className, }: MessagesWorkspaceProps): react.JSX.Element;
1355
+
1140
1356
  interface UseConversationMessagesResult {
1141
1357
  messages: MessagePayload[];
1142
1358
  loading: boolean;
@@ -1300,6 +1516,9 @@ interface ConversationsWorkspaceLabels {
1300
1516
  readonly copySelected: string;
1301
1517
  readonly composerPlaceholder: string;
1302
1518
  readonly attachFailure: string;
1519
+ /** Tira um arquivo da fila antes de enviar. */
1520
+ readonly attachmentRemove: string;
1521
+ readonly recordFailure: string;
1303
1522
  readonly sendFailure: string;
1304
1523
  readonly takeoverToReply: string;
1305
1524
  readonly signIn: string;
@@ -1428,20 +1647,28 @@ interface ConversationsWorkspaceProps {
1428
1647
  readonly messageSelection?: boolean;
1429
1648
  /** Texto já no campo ao abrir a conversa (deep link que sugere a resposta). */
1430
1649
  readonly initialComposerText?: string | undefined;
1650
+ /** `rich` troca o campo simples pelo texto com a formatação do WhatsApp desenhada ao escrever. */
1651
+ readonly composer?: 'simple' | 'rich';
1652
+ /** Valores que o operador insere sem digitar. Só o composer `rich` os oferece. */
1653
+ readonly composerVariablesFor?: (conversation: ConversationSummary, context: Record<string, unknown> | undefined) => readonly RichComposerVariable[];
1654
+ /** Fila de anexos com legenda, como no WhatsApp. Ausente, o clipe manda cada arquivo na hora. */
1655
+ readonly onSendAttachments?: (conversation: ConversationSummary, files: readonly File[], caption: string) => Promise<void>;
1656
+ /** Nota de voz. Ausente, o microfone não aparece. */
1657
+ readonly onRecordAudio?: (conversation: ConversationSummary, file: File) => Promise<void>;
1431
1658
  readonly contextEntriesOf?: (context: Record<string, unknown> | undefined) => readonly ConversationContextEntry[];
1432
1659
  readonly onAttach?: (conversation: ConversationSummary, file: File) => Promise<void>;
1433
1660
  readonly extraUtilitiesFor?: (conversation: ConversationSummary) => readonly ConversationHeaderUtility[];
1434
1661
  readonly renderFilters?: (inbox: UseConversationsInboxResult) => ReactNode;
1435
1662
  readonly renderBulkActions?: (inbox: UseConversationsInboxResult) => ReactNode;
1436
1663
  readonly renderRow?: (conversation: ConversationSummary) => ReactNode;
1437
- readonly renderAboveTranscript?: (conversation: ConversationSummary) => ReactNode;
1664
+ readonly renderAboveTranscript?: (conversation: ConversationSummary, context: Record<string, unknown> | undefined) => ReactNode;
1438
1665
  readonly renderHeaderActions?: (inbox: UseConversationsInboxResult) => ReactNode;
1439
1666
  readonly onSendTemplateToSelected?: (inbox: UseConversationsInboxResult) => void;
1440
1667
  /** Destino do link de reentrar no painel, mostrado junto do aviso de sessão expirada. */
1441
1668
  readonly signInHref?: string;
1442
1669
  readonly className?: string;
1443
1670
  }
1444
- declare function ConversationsWorkspace({ labels: labelsOverride, filters, perPage, markReadOnOpen, serverPaginated, initialConversationId, initialWhatsappNumber, simulator, quickReplies, quickReplyVariablesFor, flowLabelOf, onDownload, requireTakeoverToReply, messageSelection, initialComposerText, contextEntriesOf, onAttach, extraUtilitiesFor, renderFilters, renderBulkActions, renderRow, renderAboveTranscript, renderHeaderActions, onSendTemplateToSelected, signInHref, className, }: ConversationsWorkspaceProps): react.JSX.Element;
1671
+ declare function ConversationsWorkspace({ labels: labelsOverride, filters, perPage, markReadOnOpen, serverPaginated, initialConversationId, initialWhatsappNumber, simulator, quickReplies, quickReplyVariablesFor, flowLabelOf, onDownload, requireTakeoverToReply, messageSelection, initialComposerText, composer, composerVariablesFor, onSendAttachments, onRecordAudio, contextEntriesOf, onAttach, extraUtilitiesFor, renderFilters, renderBulkActions, renderRow, renderAboveTranscript, renderHeaderActions, onSendTemplateToSelected, signInHref, className, }: ConversationsWorkspaceProps): react.JSX.Element;
1445
1672
 
1446
1673
  interface ConversationPaneProps {
1447
1674
  readonly conversation: ConversationSummary;
@@ -1480,11 +1707,30 @@ interface ConversationPaneProps {
1480
1707
  readonly messageSelection?: boolean;
1481
1708
  /** Texto já no campo ao abrir (deep link que sugere a resposta). */
1482
1709
  readonly initialComposerText?: string | undefined;
1483
- /** Peça do produto entre o contexto e o transcript (ex.: ficha do lead, resumo do pedido). */
1484
- readonly renderAboveTranscript?: (conversation: ConversationSummary) => ReactNode;
1710
+ /**
1711
+ * Peça do produto entre o contexto e o transcript (ex.: ficha do lead, resumo do pedido). Recebe o
1712
+ * contexto do fluxo junto: é dele que sai o resumo, e sem isso o host teria de buscá-lo de novo.
1713
+ */
1714
+ readonly renderAboveTranscript?: (conversation: ConversationSummary, context: Record<string, unknown> | undefined) => ReactNode;
1485
1715
  readonly onAttach?: ((file: File) => Promise<void>) | undefined;
1716
+ /**
1717
+ * `rich` troca o `textarea` pelo campo com a formatação do WhatsApp desenhada enquanto se escreve.
1718
+ * Vale onde o atendente manda texto longo e formatado; para responder "já vou ver" o campo simples
1719
+ * é menos coisa na tela.
1720
+ */
1721
+ readonly composer?: 'simple' | 'rich';
1722
+ /** Valores que o operador insere sem digitar. Só o composer `rich` os oferece. */
1723
+ readonly composerVariablesFor?: (conversation: ConversationSummary, context: Record<string, unknown> | undefined) => readonly RichComposerVariable[];
1724
+ /**
1725
+ * Fila de anexos com legenda, como no WhatsApp: os arquivos escolhidos ficam visíveis acima da
1726
+ * barra e saem junto com o texto escrito. Ausente, o clipe manda cada arquivo na hora — o que
1727
+ * perde a legenda, e era a diferença entre as telas.
1728
+ */
1729
+ readonly onSendAttachments?: (files: readonly File[], caption: string) => Promise<void>;
1730
+ /** Grava e envia nota de voz. Ausente, o microfone não aparece. */
1731
+ readonly onRecordAudio?: (file: File) => Promise<void>;
1486
1732
  }
1487
- declare function ConversationPane({ conversation, now, busy, labels, onTakeover, onReturnToBot, onFinish, onBack, extraUtilities, contextEntriesOf, quickReplies, quickReplyVariablesFor, flowLabel, onDownload, requireTakeoverToReply, messageSelection, initialComposerText, renderAboveTranscript, onAttach, }: ConversationPaneProps): react.JSX.Element;
1733
+ declare function ConversationPane({ conversation, now, busy, labels, onTakeover, onReturnToBot, onFinish, onBack, extraUtilities, contextEntriesOf, quickReplies, quickReplyVariablesFor, flowLabel, onDownload, requireTakeoverToReply, messageSelection, initialComposerText, renderAboveTranscript, onAttach, composer, composerVariablesFor, onSendAttachments, onRecordAudio, }: ConversationPaneProps): react.JSX.Element;
1488
1734
 
1489
1735
  interface ConversationsInboxListProps {
1490
1736
  readonly inbox: UseConversationsInboxResult;
@@ -1499,4 +1745,4 @@ interface ConversationsInboxListProps {
1499
1745
  }
1500
1746
  declare function ConversationsInboxList({ inbox, labels, className, renderFilters, renderBulkActions, renderRow, onSendTemplateToSelected, }: ConversationsInboxListProps): react.JSX.Element;
1501
1747
 
1502
- export { type AsyncResourceState, AudioPlayer, type AudioPlayerProps, AudioTranscription, type AudioTranscriptionProps, Avatar, type AvatarLabels, type AvatarProps, type BuildTranscriptTextParams, CHANNEL_BRAND_COLOR, CONVERSATIONS_PER_PAGE, CONVERSATION_WINDOW, ChannelFilter, ChannelFilterOption, ChannelIcon, type ChannelIconProps, ConversationChannel, type ConversationContextEntry, ConversationContextPanel, type ConversationContextPanelClassNames, type ConversationContextPanelLabels, type ConversationContextPanelProps, type ConversationContextStatus, ConversationDocument, ConversationDocumentsPanel, type ConversationDocumentsPanelClassNames, type ConversationDocumentsPanelLabels, type ConversationDocumentsPanelProps, ConversationHeader, type ConversationHeaderClassNames, type ConversationHeaderLabels, type ConversationHeaderProps, type ConversationHeaderUtility, ConversationListItem, type ConversationListItemLabels, type ConversationListItemProps, type ConversationLocales, ConversationLocalesProvider, type ConversationLocalesProviderProps, ConversationPane, type ConversationPaneProps, type ConversationRealtimeHandler, ConversationRow, type ConversationRowClassNames, type ConversationRowProps, ConversationSummary, ConversationTemplate, ConversationWallpaper, type ConversationWallpaperProps, type ConversationWindow, ConversationsApi, ConversationsFeatures, ConversationsInboxList, type ConversationsInboxListProps, ConversationsProvider, ConversationsWorkspace, type ConversationsWorkspaceLabels, type ConversationsWorkspaceProps, type ConversationsWorkspaceSimulator, DEFAULT_ACCEPTED_FILE_TYPES, DEFAULT_AVATAR_LABELS, DEFAULT_CONVERSATIONS_WORKSPACE_LABELS, DEFAULT_CONVERSATION_CONTEXT_LABELS, DEFAULT_CONVERSATION_DOCUMENTS_LABELS, DEFAULT_CONVERSATION_HEADER_LABELS, DEFAULT_CONVERSATION_LIST_ITEM_LABELS, DEFAULT_DOCUMENTS_LIBRARY_LABELS, DEFAULT_EMOJI_PICKER_LABELS, DEFAULT_INTERACTIVE_MESSAGE_LABELS, DEFAULT_LIGHTBOX_LABELS, DEFAULT_MESSAGE_COMPOSER_LABELS, DEFAULT_RICH_COMPOSER_TOOLTIPS, DEFAULT_TEMPLATES_SETTINGS_LABELS, DEFAULT_WHATSAPP_MESSAGE_EDITOR_LABELS, DEFAULT_WINDOW_EXPIRED_LABELS, DOCUMENT_SOURCE_FILTER, DateDivider, type DateDividerClassNames, type DateDividerProps, type DocumentSourceFilter, DocumentsLibrary, type DocumentsLibraryClassNames, type DocumentsLibraryLabels, type DocumentsLibraryProps, EMOJI_CATEGORIES, type EmojiCategory, type EmojiEntry, EmojiPicker, type EmojiPickerLabels, type EmojiPickerProps, FileIcon, type FileIconProps, InteractiveMessage, type InteractiveMessageLabels, type InteractiveMessageProps, InteractivePayload, InteractiveSelection, Lightbox, type LightboxLabels, type LightboxProps, ListConversationsParams, ListDocumentsParams, MessageBubble, type MessageBubbleProps, MessageComposer, type MessageComposerClassNames, type MessageComposerLabels, type MessageComposerProps, MessagePayload, MessageTail, MessageText, type MessageTextProps, MessageTimestamp, MessageTranscription, NARROW_MAX_WIDTH_PX, type QuickReply, RICH_COMPOSER_ACTION, ResolveMediaUrl, type RichComposerAction, type RichComposerQuickReply, type RichComposerTooltips, type RichComposerVariable, RichMessageComposer, type RichMessageComposerHandle, type RichMessageComposerProps, SSEProvider, SimpleEmojiPicker, type SimpleEmojiPickerProps, StatusTicks, type StatusTicksProps, TEMPLATE_SETTINGS_TAB, type TemplateSettingsTab, ToastProvider, type TopicItem, TopicsForm, type TopicsFormLabels, type TopicsFormProps, TranscriptionMode, TranscriptionSettingsForm, type TranscriptionSettingsFormLabels, type TranscriptionSettingsFormProps, type UseConversationActionsResult, type UseConversationContextResult, type UseConversationDocumentsParams, type UseConversationDocumentsResult, type UseConversationListParams, type UseConversationListResult, type UseConversationMessagesResult, type UseConversationsInboxParams, type UseConversationsInboxResult, type UseInboxActionsResult, type UseScrollToLatestMessageParams, type UseScrollToLatestMessageResult, type UseWaitingNotificationsLabels, type UseWaitingNotificationsParams, type UseWaitingNotificationsResult, WINDOW_FILTERS, WelcomeFarewellForm, type WelcomeFarewellFormLabels, type WelcomeFarewellFormProps, WhatsAppCreateTemplateForm, type WhatsAppCreateTemplateFormLabels, type WhatsAppCreateTemplateFormProps, type WhatsAppCreateTemplateResult, type WhatsAppCreateTemplateState, WhatsAppMessageEditor, type WhatsAppMessageEditorLabels, type WhatsAppMessageEditorProps, type WhatsAppTemplateHeaderType, WhatsAppTemplateSettingsForm, type WhatsAppTemplateSettingsFormLabels, type WhatsAppTemplateSettingsFormProps, type WhatsAppTemplateSummary, type WhatsAppTemplateVariableSuggestion, WhatsAppTemplatesSettings, type WhatsAppTemplatesSettingsLabels, type WhatsAppTemplatesSettingsProps, WindowExpiredNotice, type WindowExpiredNoticeLabels, type WindowExpiredNoticeProps, type WindowOfParams, applyQuickReplyVariables, buildTranscriptFilename, buildTranscriptText, createMediaUrlResolver, downloadTextFile, formatDateTime, formatFileSize, formatPhone, formatStalledFor, formatTimestamp, htmlToWA, isSameDay, isWindowBlocking, parseWhatsAppFormatting, phoneInitials, resolveQuickReply, searchEmojis, toast, useConversationActions, useConversationContext, useConversationDocuments, useConversationList, useConversationLocales, useConversationMessages, useConversationRealtime, useConversations, useConversationsInbox, useDarkMode, useGlobalRealtime, useInboxActions, useIsDarkTheme, useIsNarrow, useScrollToLatestMessage, useToast, useWaitingNotifications, waToHTML, waToHTMLInline, windowOf };
1748
+ export { type AsyncResourceState, AudioPlayer, type AudioPlayerProps, AudioTranscription, type AudioTranscriptionProps, Avatar, type AvatarLabels, type AvatarProps, type BotMessages, type BuildTranscriptTextParams, BulkActionBar, type BulkActionBarProps, CHANNEL_BRAND_COLOR, CONVERSATIONS_PER_PAGE, CONVERSATION_WINDOW, ChannelFilter, ChannelFilterOption, ChannelIcon, type ChannelIconProps, ConversationChannel, type ConversationContextEntry, ConversationContextPanel, type ConversationContextPanelClassNames, type ConversationContextPanelLabels, type ConversationContextPanelProps, type ConversationContextStatus, ConversationDocument, ConversationDocumentsPanel, type ConversationDocumentsPanelClassNames, type ConversationDocumentsPanelLabels, type ConversationDocumentsPanelProps, ConversationHeader, type ConversationHeaderClassNames, type ConversationHeaderLabels, type ConversationHeaderProps, type ConversationHeaderUtility, ConversationListItem, type ConversationListItemLabels, type ConversationListItemProps, type ConversationLocales, ConversationLocalesProvider, type ConversationLocalesProviderProps, ConversationPane, type ConversationPaneProps, type ConversationRealtimeHandler, ConversationRow, type ConversationRowClassNames, type ConversationRowProps, ConversationSummary, ConversationTemplate, ConversationWallpaper, type ConversationWallpaperProps, type ConversationWindow, ConversationsApi, ConversationsFeatures, ConversationsInboxList, type ConversationsInboxListProps, ConversationsProvider, ConversationsWorkspace, type ConversationsWorkspaceLabels, type ConversationsWorkspaceProps, type ConversationsWorkspaceSimulator, DEFAULT_ACCEPTED_FILE_TYPES, DEFAULT_AVATAR_LABELS, DEFAULT_CONVERSATIONS_WORKSPACE_LABELS, DEFAULT_CONVERSATION_CONTEXT_LABELS, DEFAULT_CONVERSATION_DOCUMENTS_LABELS, DEFAULT_CONVERSATION_HEADER_LABELS, DEFAULT_CONVERSATION_LIST_ITEM_LABELS, DEFAULT_DOCUMENTS_LIBRARY_LABELS, DEFAULT_DOCUMENTS_WORKSPACE_LABELS, DEFAULT_EMOJI_PICKER_LABELS, DEFAULT_INTERACTIVE_MESSAGE_LABELS, DEFAULT_LIGHTBOX_LABELS, DEFAULT_MESSAGE_COMPOSER_LABELS, DEFAULT_RICH_COMPOSER_TOOLTIPS, DEFAULT_TEMPLATES_SETTINGS_LABELS, DEFAULT_WHATSAPP_MESSAGE_EDITOR_LABELS, DEFAULT_WINDOW_EXPIRED_LABELS, DOCUMENT_SOURCE_FILTER, DateDivider, type DateDividerClassNames, type DateDividerProps, type DocumentSourceFilter, type DocumentsFiltersContext, DocumentsLibrary, type DocumentsLibraryClassNames, type DocumentsLibraryLabels, type DocumentsLibraryProps, DocumentsWorkspace, type DocumentsWorkspaceClassNames, type DocumentsWorkspaceLabels, type DocumentsWorkspaceProps, EMOJI_CATEGORIES, type EmojiCategory, type EmojiEntry, EmojiPicker, type EmojiPickerLabels, type EmojiPickerProps, FileIcon, type FileIconProps, type FilterOption, InteractiveMessage, type InteractiveMessageLabels, type InteractiveMessageProps, InteractivePayload, InteractiveSelection, Lightbox, type LightboxLabels, type LightboxProps, ListConversationsParams, ListDocumentsParams, ListingPagination, type ListingPaginationProps, MessageBubble, type MessageBubbleProps, MessageComposer, type MessageComposerClassNames, type MessageComposerLabels, type MessageComposerProps, MessagePayload, MessageTail, MessageText, type MessageTextProps, MessageTimestamp, MessageTranscription, MessagesWorkspace, type MessagesWorkspaceApi, type MessagesWorkspaceLabels, type MessagesWorkspaceProps, MultiSelectFilter, type MultiSelectFilterProps, NARROW_MAX_WIDTH_PX, type QuickReply, RICH_COMPOSER_ACTION, ResolveMediaUrl, type RichComposerAction, type RichComposerQuickReply, type RichComposerTooltips, type RichComposerVariable, RichMessageComposer, type RichMessageComposerHandle, type RichMessageComposerProps, SSEProvider, SimpleEmojiPicker, type SimpleEmojiPickerProps, type SortDirection, SortableHead, type SortableHeadProps, StatusTicks, type StatusTicksProps, TEMPLATE_SETTINGS_TAB, type TemplateSettings, type TemplateSettingsTab, ToastProvider, type TopicItem, TopicsForm, type TopicsFormLabels, type TopicsFormProps, TranscriptionMode, type TranscriptionSettings, TranscriptionSettingsForm, type TranscriptionSettingsFormLabels, type TranscriptionSettingsFormProps, type UrlStateOptions, type UseConversationActionsResult, type UseConversationContextResult, type UseConversationDocumentsParams, type UseConversationDocumentsResult, type UseConversationListParams, type UseConversationListResult, type UseConversationMessagesResult, type UseConversationsInboxParams, type UseConversationsInboxResult, type UseInboxActionsResult, type UseScrollToLatestMessageParams, type UseScrollToLatestMessageResult, type UseWaitingNotificationsLabels, type UseWaitingNotificationsParams, type UseWaitingNotificationsResult, WINDOW_FILTERS, WelcomeFarewellForm, type WelcomeFarewellFormLabels, type WelcomeFarewellFormProps, WhatsAppCreateTemplateForm, type WhatsAppCreateTemplateFormLabels, type WhatsAppCreateTemplateFormProps, type WhatsAppCreateTemplateResult, type WhatsAppCreateTemplateState, WhatsAppMessageEditor, type WhatsAppMessageEditorLabels, type WhatsAppMessageEditorProps, type WhatsAppTemplateHeaderType, WhatsAppTemplateSettingsForm, type WhatsAppTemplateSettingsFormLabels, type WhatsAppTemplateSettingsFormProps, type WhatsAppTemplateSummary, type WhatsAppTemplateVariableSuggestion, WhatsAppTemplatesSettings, type WhatsAppTemplatesSettingsLabels, type WhatsAppTemplatesSettingsProps, WindowExpiredNotice, type WindowExpiredNoticeLabels, type WindowExpiredNoticeProps, type WindowOfParams, applyQuickReplyVariables, buildTranscriptFilename, buildTranscriptText, createMediaUrlResolver, downloadTextFile, formatDateTime, formatFileSize, formatPhone, formatStalledFor, formatTimestamp, htmlToWA, isSameDay, isWindowBlocking, parseWhatsAppFormatting, phoneInitials, resolveQuickReply, searchEmojis, toast, useConversationActions, useConversationContext, useConversationDocuments, useConversationList, useConversationLocales, useConversationMessages, useConversationRealtime, useConversations, useConversationsInbox, useDarkMode, useDebouncedValue, useGlobalRealtime, useInboxActions, useIsDarkTheme, useIsNarrow, useScrollToLatestMessage, useToast, useUrlArrayState, useUrlNumberState, useUrlStringState, useWaitingNotifications, waToHTML, waToHTMLInline, windowOf };