@veracity/vui
Version:
Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.
57 lines (56 loc) • 2.24 kB
TypeScript
import { ThemingProps } from "../theme/types.js";
import "../theme/index.js";
import { BoxProps } from "../box/box.types.js";
import "../box/index.js";
import { JSX } from "react";
//#region src/footer/footer.types.d.ts
/** Column consists of one ore more sections with a heading and links. */
type FooterColumnData = FooterSectionData[];
type FooterColumnProps = BoxProps & {
/** Data structure for sections and links */
sections?: FooterSectionData[];
};
type FooterColumnsProps = BoxProps & {
columns?: FooterColumnData[];
};
type FooterContentProps = BoxProps;
type FooterContext = Pick<FooterProps, 'size' | 'variant'>;
/** Link includes the label text and URL address. */
type FooterLinkData = {
/** Unique name that identifies a link in the links dictionary. */
id?: string;
text: string;
url?: string;
target?: '_blank' | '_self' | '_parent' | '_top';
items?: FooterLinkData[];
};
type FooterProps = Omit<BoxProps, 'size' | 'variant'> & ThemingProps<'Footer'> & Pick<FooterTrademarkProps, 'linkedIn'> & {
applicationLinks?: FooterLinkData[];
applicationSocialLinks?: FooterLinkData[];
applicationStaticItems?: string[];
/** Data defining content of multiple columns. */
columns?: FooterColumnData[];
isApplication?: boolean;
isSlim?: boolean;
isDNV?: boolean;
};
type ApplicationFooterProps = Omit<FooterProps, 'isApplication' | 'isSlim'> & {};
/** Section consists of multiple links with text (label) and url */
type FooterSectionData = {
heading?: string;
/** Array of objects defining each link. */
links?: FooterLinkData[];
};
type FooterSectionProps = BoxProps & {
/** Socket for a heading on top of the section. */
heading?: FooterSectionData['heading'] | JSX.Element;
/** Socket for a list of links below the heading. */
links?: FooterSectionData['links'] | JSX.Element;
};
type FooterTrademarkProps = BoxProps & {
/** Url provided to the LinkedIn icon in the Trademark section. */
linkedIn?: string;
};
//#endregion
export { ApplicationFooterProps, FooterColumnData, FooterColumnProps, FooterColumnsProps, FooterContentProps, FooterContext, FooterLinkData, FooterProps, FooterSectionData, FooterSectionProps, FooterTrademarkProps };
//# sourceMappingURL=footer.types.d.ts.map