import { ReactNode } from 'react'; import { MantineStyleProp } from '@mantine/core'; export interface UserButtonProps { // Behavior afterSignOutUrl?: string; afterMultiSessionSingleSignOutUrl?: string; afterSwitchSessionUrl?: string; // Appearance appearance?: UserButtonAppearance; showName?: boolean; // Custom menu items children?: ReactNode; // Component props className?: string; style?: MantineStyleProp; } export interface UserButtonAppearance { elements?: { avatarBox?: string; avatarImage?: string; userButtonBox?: string; userButtonTrigger?: string; userButtonPopover?: string; userPreview?: string; userButtonOuterIdentifier?: string; userButtonEmailIdentifier?: string; [key: string]: string | undefined; }; variables?: { colorPrimary?: string; [key: string]: string | undefined; }; } export interface UserButtonMenuItemProps { children: ReactNode; onClick?: () => void; icon?: ReactNode; color?: string; disabled?: boolean; } export interface UserButtonLinkProps extends UserButtonMenuItemProps { href: string; }