import { ExtendedCSSProperties } from '../../Common'; import { BaseTheme, BaseThemeOptions, ButtonThemeOptions } from '../index'; export interface SocialLoginComponentKeyRender { divider: { text: string; }; googleIcon: {}; microsoftIcon: {}; facebookIcon: {}; githubIcon: {}; slackIcon: {}; appleIcon: {}; linkedinIcon: {}; } export type SocialLoginCustomComponent = string | ((props?: SocialLoginComponentKeyRender[T]) => string | any); export interface SocialLoginsLayoutBase { placement?: 'bottom' | 'top'; stackedContainerStyle?: ExtendedCSSProperties; stackedButtonsStyle?: Omit; mainButtonStyle?: Omit; showStackedButtonsWithText?: boolean; } export interface SocialLoginsLayoutStacked extends SocialLoginsLayoutBase { mode: 'stack'; mainButton?: string; } export type SocialLoginsLayoutEventually = SocialLoginsLayoutBase & { mode: 'eventually'; showEventuallyButtonsWithText?: boolean; eventuallyButtonsStyle?: Omit; }; export type SocialLoginsLayout = SocialLoginsLayoutStacked | SocialLoginsLayoutEventually; export interface SocialLoginsCustomComponents { divider?: SocialLoginCustomComponent<'divider'>; dividerStyle?: ExtendedCSSProperties; dividerTextStyle?: ExtendedCSSProperties; } export interface SocialLoginsThemeOptions extends BaseThemeOptions, SocialLoginsCustomComponents { socialLoginsLayout?: SocialLoginsLayout; containerStyle?: ExtendedCSSProperties; buttonStyle?: Omit; iconsOnly?: boolean; googleIcon?: SocialLoginCustomComponent<'googleIcon'>; googleButtonStyle?: Omit; microsoftIcon?: SocialLoginCustomComponent<'microsoftIcon'>; microsoftButtonStyle?: Omit; facebookIcon?: SocialLoginCustomComponent<'facebookIcon'>; facebookButtonStyle?: Omit; githubIcon?: SocialLoginCustomComponent<'githubIcon'>; githubButtonStyle?: Omit; slackIcon?: SocialLoginCustomComponent<'slackIcon'>; slackButtonStyle?: Omit; appleIcon?: SocialLoginCustomComponent<'appleIcon'>; appleButtonStyle?: Omit; linkedinIcon?: SocialLoginCustomComponent<'linkedinIcon'>; linkedinButtonStyle?: Omit; } export interface SocialLoginsTheme extends BaseTheme { socialLoginsLayout?: SocialLoginsLayout; dividerStyle?: ExtendedCSSProperties; dividerTextStyle?: ExtendedCSSProperties; divider?: SocialLoginCustomComponent<'divider'>; containerStyle?: ExtendedCSSProperties; buttonStyle?: Omit; iconsOnly?: boolean; googleIcon?: SocialLoginCustomComponent<'googleIcon'>; googleButtonStyle?: Omit; microsoftIcon?: SocialLoginCustomComponent<'microsoftIcon'>; microsoftButtonStyle?: Omit; facebookIcon?: SocialLoginCustomComponent<'facebookIcon'>; facebookButtonStyle?: Omit; githubIcon?: SocialLoginCustomComponent<'githubIcon'>; githubButtonStyle?: Omit; slackIcon?: SocialLoginCustomComponent<'slackIcon'>; slackButtonStyle?: Omit; appleIcon?: SocialLoginCustomComponent<'appleIcon'>; appleButtonStyle?: Omit; linkedinIcon?: SocialLoginCustomComponent<'linkedinIcon'>; linkedinButtonStyle?: Omit; }