import { FlexProps, ResponsiveValue, StyleFunctionProps, ThemingProps } from '@chakra-ui/react'; import { SetOptional } from 'type-fest'; import type { WithSsr } from '../../types/WithSsr'; export type RestrictedFooterLink = { label: string; href: string; }; export type RestrictedFooterLinkWithIcon = RestrictedFooterLink & { Icon: (props: any) => JSX.Element; }; export interface RestrictedFooterContainerProps extends FlexProps { children?: React.ReactNode; } export interface RestrictedFooterVariantProps { /** Application name to display in footer. Also accepts a ReactNode. */ appName: React.ReactNode; /** Link when clicking on application name or logo. */ appLink: string; /** Tagline to display beside application name, if provided. */ tagline?: string; /** Link for footer icon. Defaults to OGP homepage. */ footerIconLink: RestrictedFooterLinkWithIcon; /** Footer links to display, if provided. */ footerLinks?: RestrictedFooterLink[]; /** Social media links to display, if provided. Defaults to OGP links. */ socialMediaLinks: RestrictedFooterLinkWithIcon[]; containerProps?: Partial; /** * Whether to render the footer in dark or light mode. */ colorMode?: ResponsiveValue; } export interface RestrictedFooterProps extends SetOptional, WithSsr { /** * The footer variant to display. */ variant?: ThemingProps<'Footer'>['variant']; }