Avaya Infinity Omni SDK
    Preparing search index...

    The theme configuration for the Messaging UI.

    type MessagingUiTheme = {
        actionButtons?: {
            attachmentsButton?: IconButtonConfig;
            emojiButton?: IconButtonConfig;
            locationButton?: IconButtonConfig;
            sendButton?: IconButtonConfig;
        };
        attachmentMenu?: {
            backgroundColor?: CSSProperties["backgroundColor"];
            fileIconSource?: string;
            fontConfig?: FontConfig;
            imageIconSource?: string;
            itemHoverBackgroundColor?: CSSProperties["backgroundColor"];
        };
        brandDetails?: {
            fontFamily?: CSSProperties["fontFamily"];
            logoSource?: string;
        };
        brandPane?: {
            banner?: { fontConfig?: FontConfig };
            brandNameFont?: FontConfig;
        };
        connectionStatusBar?: {
            backgroundColors?: Partial<
                Record<ConnectionState, CSSProperties["backgroundColor"]>,
            >;
            borderColors?: Partial<
                Record<ConnectionState, CSSProperties["borderColor"]>,
            >;
            fontColors?: Partial<Record<ConnectionState, CSSProperties["color"]>>;
            iconSources?: { connected?: string; retryConnection?: string };
            show?: boolean;
        };
        endConversationDialog?: {
            backgroundColor?: CSSProperties["backgroundColor"];
            border?: CSSProperties["border"];
            cancelButton?: ButtonConfig;
            cornerRadius?: CSSProperties["borderRadius"];
            description?: FontConfig;
            endConversationButton?: ButtonConfig;
            title?: FontConfig;
        };
        errorBoundary?: {
            backgroundColor?: CSSProperties["backgroundColor"];
            iconSource?: string;
            subtitleFont?: FontConfig;
            titleFont?: FontConfig;
        };
        messageBubble?: {
            backgroundColor?: CSSProperties["backgroundColor"];
            border?: CSSProperties["border"];
            borderRadius?: CSSProperties["borderRadius"];
            iconSource?: string;
            teaser?: {
                backgroundColor?: CSSProperties["backgroundColor"];
                closeButton?: { color?: CSSProperties["color"]; iconSource?: string };
                textColor?: CSSProperties["color"];
            };
        };
        messages?: {
            agent?: ParticipantMessage & {
                carousel?: {
                    contentFont?: FontConfig;
                    currentSlideIndicatorColor?: CSSProperties["backgroundColor"];
                    headingFont?: FontConfig;
                    linkButtons?: ButtonConfig;
                    nextIconSource?: string;
                    postBackButtons?: ButtonConfig;
                    previousIconSource?: string;
                    slideIndicatorColor?: CSSProperties["backgroundColor"];
                };
                composite?: {
                    linkButtons?: ButtonConfig;
                    locationRequest?: { button?: ButtonConfig; iconSource?: string };
                    postBackButtons?: ButtonConfig;
                    quickReplyButtons?: QuickReplyButtonConfig;
                };
            };
            common?: {
                attachment?: {
                    attachmentIconSources?: Partial<Record<SupportedIconTypes, string>>;
                    attachmentSizeFont?: FontConfig;
                    discardAttachmentIconSource?: string;
                    downloadIconSource?: string;
                    failedIconSource?: string;
                    fallbackAttachmentIconSource?: string;
                    fontConfig?: FontConfig;
                    uploadingSpinnerSource?: string;
                };
            };
            customer?: ParticipantMessage & {
                retrySendIconSource?: string;
                statusIndicators?: {
                    deliveredSource?: string;
                    failedSource?: string;
                    pendingSource?: string;
                    sentSource?: string;
                };
            };
            fontConfig?: FontConfig;
        };
        messagingWindow?: {
            accentColor?: CSSProperties["background"];
            backgroundColor?: CSSProperties["background"];
            borderRadius?: CSSProperties["borderRadius"];
            endConversationButton?: { iconSource: string; show?: boolean };
            minimizeButton?: { iconSource: string; show?: boolean };
            notificationsButton?: {
                iconSources?: {
                    hasNotifications?: string;
                    noNotifications?: string;
                    viewingNotifications?: string;
                };
                show?: boolean;
            };
            scrollBarColor?: CSSProperties["backgroundColor"];
            title?: { fontConfig?: FontConfig };
        };
        notifications?: {
            fontConfig?: FontConfig;
            showParticipantJoined?: Partial<Record<ParticipantType, boolean>>;
            showParticipantLeft?: Partial<Record<ParticipantType, boolean>>;
        };
        notificationsPane?: {
            backgroundColors?: Partial<
                Record<NotificationType, CSSProperties["backgroundColor"]>,
            >;
            borderColors?: Partial<
                Record<NotificationType, CSSProperties["borderColor"]>,
            >;
            discardNotificationIconSource?: string;
            fontConfig?: FontConfig;
            iconSources?: Partial<Record<NotificationType, string>>;
            noNotificationsIconSource?: string;
            paneBackground?: CSSProperties["background"];
            paneBorder?: CSSProperties["border"];
        };
        participants?: {
            avatarSource?: Partial<Record<ParticipantType, ParticipantAvatar>>;
            participantList?: {
                backgroundColor?: CSSProperties["backgroundColor"];
                borderRadius?: CSSProperties["borderRadius"];
                iconBackground?: CSSProperties["backgroundColor"];
                iconHoverBackground?: CSSProperties["backgroundColor"];
                iconSource?: string;
                participantNameFont?: FontConfig;
                show?: boolean;
            };
        };
        postConversationActions?: {
            downloadTranscriptButton?: ButtonConfig;
            printConversationButton?: ButtonConfig;
            startNewConversationButton?: ButtonConfig;
        };
        textInput?: {
            activeBackgroundColor: CSSProperties["backgroundColor"];
            activeBorder?: CSSProperties["border"];
            backgroundColor?: CSSProperties["backgroundColor"];
            border?: CSSProperties["border"];
            borderRadius?: CSSProperties["borderRadius"];
            fontConfig?: FontConfig;
        };
        typingIndicator?: {
            animation?: { indicatorColor?: CSSProperties["backgroundColor"] };
            participantAvatars?: { show?: boolean };
            typingText?: {
                fontConfig?: FontConfig;
                participantNames?: { show?: boolean };
            };
        };
    }
    Index

    Properties

    actionButtons?: {
        attachmentsButton?: IconButtonConfig;
        emojiButton?: IconButtonConfig;
        locationButton?: IconButtonConfig;
        sendButton?: IconButtonConfig;
    }
    attachmentMenu?: {
        backgroundColor?: CSSProperties["backgroundColor"];
        fileIconSource?: string;
        fontConfig?: FontConfig;
        imageIconSource?: string;
        itemHoverBackgroundColor?: CSSProperties["backgroundColor"];
    }
    brandDetails?: { fontFamily?: CSSProperties["fontFamily"]; logoSource?: string }
    brandPane?: { banner?: { fontConfig?: FontConfig }; brandNameFont?: FontConfig }
    connectionStatusBar?: {
        backgroundColors?: Partial<
            Record<ConnectionState, CSSProperties["backgroundColor"]>,
        >;
        borderColors?: Partial<
            Record<ConnectionState, CSSProperties["borderColor"]>,
        >;
        fontColors?: Partial<Record<ConnectionState, CSSProperties["color"]>>;
        iconSources?: { connected?: string; retryConnection?: string };
        show?: boolean;
    }
    endConversationDialog?: {
        backgroundColor?: CSSProperties["backgroundColor"];
        border?: CSSProperties["border"];
        cancelButton?: ButtonConfig;
        cornerRadius?: CSSProperties["borderRadius"];
        description?: FontConfig;
        endConversationButton?: ButtonConfig;
        title?: FontConfig;
    }
    errorBoundary?: {
        backgroundColor?: CSSProperties["backgroundColor"];
        iconSource?: string;
        subtitleFont?: FontConfig;
        titleFont?: FontConfig;
    }
    messageBubble?: {
        backgroundColor?: CSSProperties["backgroundColor"];
        border?: CSSProperties["border"];
        borderRadius?: CSSProperties["borderRadius"];
        iconSource?: string;
        teaser?: {
            backgroundColor?: CSSProperties["backgroundColor"];
            closeButton?: { color?: CSSProperties["color"]; iconSource?: string };
            textColor?: CSSProperties["color"];
        };
    }

    Type Declaration

    • OptionalbackgroundColor?: CSSProperties["backgroundColor"]
    • Optionalborder?: CSSProperties["border"]
    • OptionalborderRadius?: CSSProperties["borderRadius"]
    • OptionaliconSource?: string
    • Optionalteaser?: {
          backgroundColor?: CSSProperties["backgroundColor"];
          closeButton?: { color?: CSSProperties["color"]; iconSource?: string };
          textColor?: CSSProperties["color"];
      }

      Visual configuration for the Bubble Teaser — the small message preview that animates next to the minimized chat bubble during proactive engagement.

      Server values arrive via the /config themes payload as bubbleTeaserBackgroundColor / bubbleTeaserTextColor and are mapped into this teaser sub-config during the admin theme merge.

      • OptionalbackgroundColor?: CSSProperties["backgroundColor"]

        Background color of the teaser bubble. Default: #FFFFFF.

      • OptionalcloseButton?: { color?: CSSProperties["color"]; iconSource?: string }

        Close ("dismiss") affordance for the teaser. Client-side only — these are NOT part of the admin /config themes payload (the admin merge only maps bubbleTeaserBackgroundColor / bubbleTeaserTextColor). Consumers may override via a client theme.

        • Optionalcolor?: CSSProperties["color"]

          Color of the close icon. Defaults to the teaser textColor.

        • OptionaliconSource?: string

          Icon for the close button. Accepts a Neo icon class (e.g. neo-icon-close) or an image URL, matching CustomIcon. Default: neo-icon-close.

      • OptionaltextColor?: CSSProperties["color"]

        Text color of the teaser bubble. Default: #1F3A68.

    messages?: {
        agent?: ParticipantMessage & {
            carousel?: {
                contentFont?: FontConfig;
                currentSlideIndicatorColor?: CSSProperties["backgroundColor"];
                headingFont?: FontConfig;
                linkButtons?: ButtonConfig;
                nextIconSource?: string;
                postBackButtons?: ButtonConfig;
                previousIconSource?: string;
                slideIndicatorColor?: CSSProperties["backgroundColor"];
            };
            composite?: {
                linkButtons?: ButtonConfig;
                locationRequest?: { button?: ButtonConfig; iconSource?: string };
                postBackButtons?: ButtonConfig;
                quickReplyButtons?: QuickReplyButtonConfig;
            };
        };
        common?: {
            attachment?: {
                attachmentIconSources?: Partial<Record<SupportedIconTypes, string>>;
                attachmentSizeFont?: FontConfig;
                discardAttachmentIconSource?: string;
                downloadIconSource?: string;
                failedIconSource?: string;
                fallbackAttachmentIconSource?: string;
                fontConfig?: FontConfig;
                uploadingSpinnerSource?: string;
            };
        };
        customer?: ParticipantMessage & {
            retrySendIconSource?: string;
            statusIndicators?: {
                deliveredSource?: string;
                failedSource?: string;
                pendingSource?: string;
                sentSource?: string;
            };
        };
        fontConfig?: FontConfig;
    }
    messagingWindow?: {
        accentColor?: CSSProperties["background"];
        backgroundColor?: CSSProperties["background"];
        borderRadius?: CSSProperties["borderRadius"];
        endConversationButton?: { iconSource: string; show?: boolean };
        minimizeButton?: { iconSource: string; show?: boolean };
        notificationsButton?: {
            iconSources?: {
                hasNotifications?: string;
                noNotifications?: string;
                viewingNotifications?: string;
            };
            show?: boolean;
        };
        scrollBarColor?: CSSProperties["backgroundColor"];
        title?: { fontConfig?: FontConfig };
    }
    notifications?: {
        fontConfig?: FontConfig;
        showParticipantJoined?: Partial<Record<ParticipantType, boolean>>;
        showParticipantLeft?: Partial<Record<ParticipantType, boolean>>;
    }
    notificationsPane?: {
        backgroundColors?: Partial<
            Record<NotificationType, CSSProperties["backgroundColor"]>,
        >;
        borderColors?: Partial<
            Record<NotificationType, CSSProperties["borderColor"]>,
        >;
        discardNotificationIconSource?: string;
        fontConfig?: FontConfig;
        iconSources?: Partial<Record<NotificationType, string>>;
        noNotificationsIconSource?: string;
        paneBackground?: CSSProperties["background"];
        paneBorder?: CSSProperties["border"];
    }
    participants?: {
        avatarSource?: Partial<Record<ParticipantType, ParticipantAvatar>>;
        participantList?: {
            backgroundColor?: CSSProperties["backgroundColor"];
            borderRadius?: CSSProperties["borderRadius"];
            iconBackground?: CSSProperties["backgroundColor"];
            iconHoverBackground?: CSSProperties["backgroundColor"];
            iconSource?: string;
            participantNameFont?: FontConfig;
            show?: boolean;
        };
    }
    postConversationActions?: {
        downloadTranscriptButton?: ButtonConfig;
        printConversationButton?: ButtonConfig;
        startNewConversationButton?: ButtonConfig;
    }
    textInput?: {
        activeBackgroundColor: CSSProperties["backgroundColor"];
        activeBorder?: CSSProperties["border"];
        backgroundColor?: CSSProperties["backgroundColor"];
        border?: CSSProperties["border"];
        borderRadius?: CSSProperties["borderRadius"];
        fontConfig?: FontConfig;
    }
    typingIndicator?: {
        animation?: { indicatorColor?: CSSProperties["backgroundColor"] };
        participantAvatars?: { show?: boolean };
        typingText?: {
            fontConfig?: FontConfig;
            participantNames?: { show?: boolean };
        };
    }