pdh-design-system
Version:
PDH Design System React Components
785 lines (658 loc) • 25.5 kB
TypeScript
import { AccordionBodyProps } from 'react-bootstrap';
import { AccordionProps as AccordionProps_2 } from 'react-bootstrap';
import { Alert } from 'react-bootstrap';
import { BadgeProps as BadgeProps_2 } from 'react-bootstrap';
import { BreadcrumbProps as BreadcrumbProps_2 } from 'react-bootstrap';
import { BsPrefixRefForwardingComponent } from 'react-bootstrap/esm/helpers';
import { ButtonGroup } from 'react-bootstrap';
import { ButtonProps as ButtonProps_2 } from 'react-bootstrap/Button';
import { ButtonToolbar } from 'react-bootstrap';
import { CardProps as CardProps_2 } from 'react-bootstrap';
import { CarouselProps as CarouselProps_2 } from 'react-bootstrap';
import { Col } from 'react-bootstrap';
import { Container } from 'react-bootstrap';
import { default as default_2 } from 'react';
import { Dropdown } from 'react-bootstrap';
import { DropdownButton } from 'react-bootstrap';
import { DropdownDivider } from 'react-bootstrap';
import { DropdownDividerProps } from 'react-bootstrap';
import { DropdownHeaderProps } from 'react-bootstrap';
import { DropdownItemProps } from 'react-bootstrap';
import { DropdownItemTextProps } from 'react-bootstrap';
import { Form } from 'react-bootstrap';
import { FormCheckProps } from 'react-bootstrap';
import { FormControl } from 'react-bootstrap';
import { FormControlProps } from 'react-bootstrap';
import { FormSelectProps } from 'react-bootstrap';
import { Image as Image_2 } from 'react-bootstrap';
import { InputGroup } from 'react-bootstrap';
import { ListGroupProps as ListGroupProps_2 } from 'react-bootstrap';
import { ModalProps as ModalProps_2 } from 'react-bootstrap';
import { Nav } from 'react-bootstrap';
import { NavbarProps as NavbarProps_2 } from 'react-bootstrap/Navbar';
import { NavDropdown } from 'react-bootstrap';
import { NavDropdownProps } from 'react-bootstrap';
import { NavLink } from 'react-bootstrap';
import { NavLinkProps } from 'react-bootstrap';
import { NavLinkProps as NavLinkProps_2 } from 'react-bootstrap/NavLink';
import { OffcanvasProps } from 'react-bootstrap';
import { OverlayTrigger } from 'react-bootstrap';
import { OverlayTriggerProps } from 'react-bootstrap';
import { Popover } from 'react-bootstrap';
import { ProgressBar } from 'react-bootstrap';
import { Row } from 'react-bootstrap';
import { Spinner } from 'react-bootstrap';
import { SpinnerProps } from 'react-bootstrap';
import { TableProps } from 'react-bootstrap';
import { TabsProps } from 'react-bootstrap';
import { ToastPosition } from 'react-bootstrap/ToastContainer';
import { ToastProps as ToastProps_2 } from 'react-bootstrap/Toast';
import { TooltipProps as TooltipProps_2 } from 'react-bootstrap';
export declare const Accordion: ({ options, ...props }: AccordionProps) => default_2.JSX.Element;
export declare interface AccordionProps extends AccordionProps_2 {
options: Array<{
id: string;
title: default_2.ReactNode;
component: default_2.ReactNode;
bodyOptions?: AccordionBodyProps;
}>;
}
export { Alert }
export declare const Badge: ({ subtle, bg, children, badge, className, ...props }: BadgeProps) => default_2.JSX.Element;
export declare interface BadgeProps extends BadgeProps_2 {
badge?: string;
subtle?: boolean;
}
export declare namespace bgs {
let PRIMARY_1: string;
{ PRIMARY_1 as PRIMARY };
let SECONDARY_1: string;
{ SECONDARY_1 as SECONDARY };
let TERTIARY_1: string;
{ TERTIARY_1 as TERTIARY };
let SUCCESS_1: string;
{ SUCCESS_1 as SUCCESS };
let INFO_1: string;
{ INFO_1 as INFO };
let DANGER_1: string;
{ DANGER_1 as DANGER };
let WARNING_1: string;
{ WARNING_1 as WARNING };
let PURPLE_1: string;
{ PURPLE_1 as PURPLE };
let MUTED: string;
}
declare type bgs_2 = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light';
declare type bgs_3 = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light';
export declare const Breadcrumb: ({ data, onClick, ...props }: BreadcrumbProps) => default_2.JSX.Element;
export declare interface BreadcrumbProps extends Omit<BreadcrumbProps_2, 'onClick'> {
onClick?: (item: Crumb, e: default_2.MouseEvent<HTMLElement, MouseEvent>) => void;
data: Crumb[];
}
declare type Breakpoint = "sm" | "md" | "lg" | "xl" | "xxl";
export declare const Button: ({ children, className, iconName, opacity, variant, presentation, ...props }: ButtonProps) => default_2.JSX.Element;
export { ButtonGroup }
export declare interface ButtonProps extends ButtonProps_2 {
iconName?: string;
children?: any;
size?: "sm" | undefined | "lg";
opacity?: undefined | "0" | "25" | "50" | "75" | "100";
disabled?: boolean;
presentation?: "normal" | "outline" | "subtle";
}
export { ButtonToolbar }
export declare const Canvas: ({ title, children, ...props }: CanvasProps) => default_2.JSX.Element;
export declare interface CanvasProps extends OffcanvasProps {
title: string;
}
export declare const Card: (props: CardProps) => default_2.JSX.Element;
export declare interface CardProps extends CardProps_2 {
width?: number | string;
header?: any;
imagevariant?: 'top' | 'bottom' | undefined;
image?: string;
headerclasses?: string;
footerclasses?: string;
orientation?: 'horizontal' | 'vertical' | undefined;
textBg?: bgs_2 | undefined;
border?: bgs_2;
title?: string;
body?: any;
children?: default_2.ReactNode;
maxWidth?: number | string;
footer?: any;
tags?: {
name: string;
bg: bgs_2;
}[];
buttons?: {
name: string;
iconName: string;
variant: bgs_2;
}[];
}
export declare const Carousel: ({ data, maxHeight, minHeight, ...props }: CarouselProps) => default_2.JSX.Element;
export declare interface CarouselProps extends CarouselProps_2 {
data: Array<{
id: string;
src: string;
title: string;
subTitle: string;
}>;
maxHeight?: number | string;
minHeight?: number | string;
}
export declare let CheckboxGroup: default_2.FC<CheckboxGroupProps>;
export declare interface CheckboxGroupProps {
data: Array<{
id: string;
name: string;
disabled?: boolean;
}>;
name?: string;
value: string[];
type: 'list' | 'inline' | 'stack';
onChange?: (values: string[], event: default_2.ChangeEvent<HTMLInputElement>) => void;
inline?: boolean;
flush?: boolean;
}
export { Col }
export declare const colours: string[];
export declare const colourshades: string[];
export declare interface Column {
title: string;
dataIndex: string;
render?: (value: any, row: any) => default_2.ReactNode;
}
export declare const Confirm: ({ title, children, onSave, onCancel, type, contentClassName, noBtnText, yesBtnText, ...props }: ConfirmProps) => default_2.JSX.Element;
export declare interface ConfirmProps extends ModalProps_2 {
title: string;
children: default_2.ReactNode;
show: boolean;
centered: boolean;
contentClassName: string;
type: keyof typeof icons_2;
noBtnText?: string;
yesBtnText?: string;
onSave?: () => void;
onCancel?: () => void;
}
export { Container }
export declare const CountryButton: ({ countryCode, badge, subtle, badgeVariant, buttonVariant, buttonPresentation, href, onClick }: CountryButtonProps) => default_2.JSX.Element;
export declare interface CountryButtonProps {
countryCode: string;
badge: string;
subtle?: boolean;
badgeVariant?: string;
buttonVariant?: string;
buttonPresentation?: 'normal' | 'outline' | 'subtle';
href?: string;
onClick?: () => void;
}
export declare type Crumb = {
title: default_2.ReactNode;
href?: string;
};
export declare const Datacard: (props: DataCardProps) => default_2.JSX.Element;
export declare interface DataCardProps extends Omit<CardProps_2, 'title'> {
header?: any;
image?: default_2.ReactNode;
title?: default_2.ReactNode;
href?: string;
body?: any;
children?: default_2.ReactNode;
footer?: any;
tags?: {
name: string;
bg: bgs_3;
icon?: string;
}[];
inlinetags?: {
name: string;
bg: bgs_3;
icon?: string;
}[];
sourcetags?: {
name: string;
bg: bgs_3;
icon?: string;
}[];
buttons?: any;
variant?: 'basic' | 'flip' | 'slide';
imagevariant?: 'top' | 'bottom';
icons?: any;
}
export { Dropdown }
export { DropdownButton }
export declare const DropdownChecks: ({ data, groups, defaultText, multiple, value, toggleValue, onChange, maxHeight, disabled, variant, ...props }: DropdownsCheckProps) => default_2.JSX.Element;
export { DropdownDivider }
export declare const Dropdowns: ({ data, defaultText, value, toggleValue, onChange, maxHeight, variant, ...props }: DropdownsProps) => default_2.JSX.Element;
export declare interface DropdownsCheckProps {
data: Array<{
id: string;
name: string;
href?: string;
disabled?: boolean;
}>;
groups?: {
[key: string]: string[];
};
value?: string[];
defaultText?: string;
onChange?: (value: string[], e: any) => void;
maxHeight?: number | string;
disabled?: boolean;
variant?: string;
toggleValue?: string;
multiple?: boolean;
}
export declare interface DropdownsProps {
data: Array<{
id: string;
name: string;
href?: string;
disabled?: boolean;
}>;
value: string;
defaultText: string;
onChange: (value: string, event: any) => void;
maxHeight: number | string;
variant?: string;
toggleValue?: string;
}
export declare const FlagIcon: ({ name, onClick, className }: IconProps) => default_2.JSX.Element;
export declare const Flip: ({ children, orientation, className, ...props }: FlipProps) => default_2.JSX.Element;
export declare interface FlipProps {
children?: default_2.ReactNode;
orientation?: 'horizontal' | 'vertical' | undefined;
className?: string | undefined;
}
export declare const Footer: {
({ children, copyright }: FooterProps): default_2.JSX.Element;
Heading: ({ title, children }: {
title: string;
children?: default_2.ReactNode;
}) => default_2.JSX.Element;
Link: ({ href, className, children, ...props }: NavLinkProps_2) => default_2.JSX.Element;
};
export declare interface FooterProps {
children?: default_2.ReactNode;
copyright?: default_2.ReactNode;
}
export { Form }
export { FormControl }
export declare const gradients: string[];
export declare const Header: (props: HeaderProps) => default_2.JSX.Element;
export declare interface HeaderProps {
className?: string | undefined;
Brand?: default_2.ReactElement | ((props: any) => default_2.JSX.Element | undefined | null) | undefined | null;
PrimaryItems?: default_2.ReactElement[] | default_2.ReactElement | ((props: any) => default_2.JSX.Element | undefined | null) | undefined | null;
SecondaryItems?: default_2.ReactElement[] | default_2.ReactElement | ((props: any) => default_2.JSX.Element | undefined | null) | undefined | null;
SearchComponent?: default_2.ReactElement | ((props: any) => default_2.JSX.Element | undefined | null) | undefined | null;
BannerComponent?: default_2.ReactElement | ((props: any) => default_2.JSX.Element | undefined | null) | undefined | null;
breakpoint?: Breakpoint;
alignNav?: "start" | "center" | "end";
}
export declare const horizontals: (string | boolean)[];
export declare const Icon: ({ name, color, onClick, className }: IconProps) => default_2.JSX.Element;
export declare interface IconProps {
name: string;
onClick?: () => void;
color?: string;
className?: string;
}
export declare const icons: {
type: string;
names: string[];
}[];
declare const icons_2: {
confirm: default_2.JSX.Element;
warning: default_2.JSX.Element;
info: default_2.JSX.Element;
error: default_2.JSX.Element;
};
export { Image_2 as Image }
export { InputGroup }
export declare const IntroBanner: ({ children, title, ...props }: IntroBannerProps) => default_2.JSX.Element;
export declare interface IntroBannerProps {
children?: default_2.ReactNode;
src?: string;
title?: default_2.ReactNode;
}
export declare const ListGroup: ({ action, data, value, onChange, flush, ...props }: ListGroupProps) => default_2.JSX.Element;
export declare interface ListGroupProps extends Omit<ListGroupProps_2, "onChange"> {
data: {
id: string;
name: string;
disabled?: boolean;
}[];
value: string;
action?: boolean;
flush?: boolean;
onChange?: (value: string, event: any) => void;
}
export declare const Loading: ({ className, open, background, variant, ...props }: LoadingProps) => false | default_2.JSX.Element;
export declare interface LoadingProps extends SpinnerProps {
open: boolean;
background?: string;
}
export declare const Modal: ({ title, children, footer, show, onHide, onSave, onCancel, backdrop, ...props }: ModalProps) => default_2.JSX.Element;
export declare interface ModalProps extends ModalProps_2 {
title: any;
children: any;
footer: any;
show: boolean;
backdrop: boolean;
onHide?: () => void;
onSave?: () => void;
onCancel?: () => void;
}
export { Nav }
export declare const Navbar: {
(props: NavbarProps): default_2.JSX.Element;
Link: BsPrefixRefForwardingComponent<"a", NavLinkProps>;
Dropdown: BsPrefixRefForwardingComponent<"div", NavDropdownProps> & {
Item: BsPrefixRefForwardingComponent<"a", DropdownItemProps>;
ItemText: BsPrefixRefForwardingComponent<"span", DropdownItemTextProps>;
Divider: BsPrefixRefForwardingComponent<"hr", DropdownDividerProps>;
Header: BsPrefixRefForwardingComponent<"div", DropdownHeaderProps>;
};
Divider: BsPrefixRefForwardingComponent<"hr", DropdownDividerProps>;
};
export declare interface NavbarProps extends NavbarProps_2 {
Brand?: default_2.ReactElement | ((props: any) => default_2.JSX.Element | undefined | null) | undefined | null;
Search?: default_2.ReactElement | ((props: any) => default_2.JSX.Element | undefined | null) | undefined | null;
brandClassName?: string | undefined;
navClassName?: string | undefined;
toggleClassName?: string | undefined;
alignNav?: "start" | "center" | "end";
}
export { NavDropdown }
export { NavLink }
export { OverlayTrigger }
export declare const Paginations: ({ count, pageSize, activeIndex, onChange, config, size, ...props }: PaginationsProps) => default_2.JSX.Element;
export declare interface PaginationsProps {
count?: number;
pageSize?: number;
activeIndex?: number;
onChange?: (index: number) => void;
config?: 3 | 5 | 7 | 9 | 11;
size?: 'sm' | 'lg';
}
export declare const Placeholders: ({ children, className, isMargin, ...props }: PlaceholdersProps) => default_2.JSX.Element;
export declare interface PlaceholdersProps {
children: default_2.ReactNode;
className?: string;
isMargin?: boolean;
}
export declare namespace placements {
let AUTO_START: string;
let AUTO: string;
let AUTO_END: string;
let TOP_START: string;
let TOP: string;
let TOP_END: string;
let RIGHT_START: string;
let RIGHT: string;
let RIGHT_END: string;
let BOTTOM_END: string;
let BOTTOM: string;
let BOTTOM_START: string;
let LEFT_END: string;
let LEFT: string;
let LEFT_START: string;
}
export { Popover }
export declare const Popovers: (props: PopoversProps) => default_2.JSX.Element;
export declare interface PopoversProps extends Omit<OverlayTriggerProps, "overlay" | "onHide" | "children"> {
children: default_2.ReactNode;
title: default_2.ReactNode;
component: default_2.ReactNode;
containerClassName: string;
backdrop: boolean;
onHide?: () => void;
}
export { ProgressBar }
export declare let RadioGroup: ({ data, value, onChange, name, inline, ...props }: RadioGroupProps) => default_2.JSX.Element;
export declare interface RadioGroupProps extends Omit<FormCheckProps, "onChange"> {
data: {
id: string;
name: string;
disabled?: boolean;
}[];
value: string;
onChange?: (value: string, event: any) => void;
}
export { Row }
export declare const Search: ({ value, onChange, onKeyDown, onSearch, className, inputClassName, buttonClassName, buttonStyle, searchOnReset, status, ...props }: SearchProps) => default_2.JSX.Element;
export declare const SearchBar: ({ onSearch, ...props }: SearchBarProps) => default_2.JSX.Element;
export declare interface SearchBarProps extends SearchProps {
onSearch: (value: string) => void;
}
export declare interface SearchProps extends TextFieldProps {
onSearch?: (value: string) => void;
inputClassName?: string;
buttonStyle?: "icon" | "text";
buttonClassName?: string;
searchOnReset?: boolean;
status?: "" | "loading" | "disabled";
}
export declare const Select: ({ data, value, onChange, ...props }: SelectProps) => default_2.JSX.Element;
export declare interface SelectProps extends Omit<FormSelectProps, 'onChange'> {
data: {
id: string | number;
name: string | number;
disabled?: boolean;
}[];
value: string;
onChange: (value: string, e: default_2.ChangeEvent<HTMLSelectElement>) => void;
}
export declare const SlickCarousel: ({ children, slidesToShow, slidesToScroll, autoplay, autoplaySpeed, dots, arrows, infinite, className, responsive, }: SlickCarouselProps) => default_2.JSX.Element;
export declare interface SlickCarouselProps {
children: default_2.ReactNode;
slidesToShow?: number;
slidesToScroll?: number;
autoplay?: boolean;
autoplaySpeed?: number;
dots?: boolean;
arrows?: boolean;
infinite?: boolean;
className?: string;
responsive?: Array<{
breakpoint: number;
settings: {
slidesToShow: number;
slidesToScroll: number;
};
}>;
}
export declare const Slide: ({ children, className, ...props }: SlideProps) => default_2.JSX.Element;
export declare interface SlideProps {
children?: default_2.ReactNode;
className?: string | undefined;
}
export declare const Space: ({ className, direction, size, align, wrap, style, ...props }: SpaceProps) => default_2.JSX.Element;
declare interface SpaceProps {
className?: string;
direction?: 'horizontal' | 'vertical';
size?: string | 'sm' | 'lg';
align?: 'start' | 'end' | 'center' | 'baseline';
wrap?: boolean;
style?: default_2.CSSProperties;
}
export { Spinner }
export declare const Tables: ({ data: initData, columns, rowKey, value, onChange, ellipsis, className, maxHeight, theadClassName, pagination, PaginationsProps: initPaginationsProps, renderDataNotFound, variant, ...props }: TablesProps) => default_2.JSX.Element;
export declare interface TablesProps extends Omit<TableProps, "onChange"> {
data: Array<Object>;
columns: Array<Column>;
rowKey: string;
value: string;
onChange: (value: string, event: default_2.MouseEvent, rowData: Object) => void;
ellipsis: boolean;
className: string;
maxHeight: string;
theadClassName: string;
pagination: boolean;
PaginationsProps: PaginationsProps;
renderDataNotFound: (className: string) => default_2.ReactNode;
size?: 'sm' | 'lg';
}
export declare interface TabProps extends TabsProps {
tabs: any[];
vertical?: boolean;
}
export declare const Tabs: ({ tabs, vertical, ...props }: TabProps) => default_2.JSX.Element;
export declare const TextField: ({ children, groupClassName, size, value, onChange, onKeyDown, ...props }: TextFieldProps) => default_2.JSX.Element;
export declare interface TextFieldProps extends Omit<FormControlProps, "onChange"> {
children?: any;
groupClassName?: string;
size?: "sm" | "lg" | undefined;
value?: string;
onChange?: (value: string, e: default_2.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
onKeyDown?: (e: any) => void;
}
export declare interface ToastProps extends ToastProps_2 {
header?: default_2.ReactNode;
position?: ToastPosition;
}
export declare const Toasts: ({ header, position, delay, children, ...props }: ToastProps) => default_2.JSX.Element;
declare type ToggleButtonCheckboxProps = {
type: 'checkbox';
options: Array<{
[key: string]: string | JSX.Element;
}>;
value: Array<any>;
onChange: (value: Array<any>) => void;
name?: string;
variant?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | 'link';
labelKey?: string;
valueKey?: string;
};
export declare const ToggleButtonGroup: ({ options, type, name, value, onChange, variant, labelKey, valueKey, ...props }: ToggleButtonGroupProps) => default_2.JSX.Element;
export declare type ToggleButtonGroupProps = ToggleButtonRadioProps | ToggleButtonCheckboxProps;
declare type ToggleButtonRadioProps = {
type: 'radio';
options: Array<{
[key: string]: string | JSX.Element;
}>;
value: string;
onChange: (value: string, event: any) => void;
name?: string;
variant?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | 'link';
labelKey?: string;
valueKey?: string;
};
export declare const Tooltip: ({ children, title, containerClassName, ...props }: TooltipProps) => default_2.JSX.Element;
export declare interface TooltipProps extends TooltipProps_2 {
containerClassName: string;
}
export declare const TreeView: ({ data, buttonVariant, ...props }: TreeViewProps) => default_2.JSX.Element;
export declare interface TreeViewItemProps {
id: string;
title: JSX.Element | string;
onClick?: (id: string) => void;
toggleOnClick?: boolean;
isOpenDefault?: boolean;
children?: Array<TreeViewItemProps>;
className?: string;
buttonVariant?: string;
buttonClassName?: string;
iconNames?: [string, string];
}
export declare interface TreeViewProps {
className?: string;
buttonVariant?: 'default' | 'right' | 'far-right';
data: Array<TreeViewItemProps>;
}
export declare const Typography: ({ className, bg, color, emphasis, align, transform, size, ellipsis, ...props }: TypographyProps) => default_2.JSX.Element;
export declare const typographyAlign: {
START: string;
CENTER: string;
END: string;
};
export declare const typographyBg: {
PRIMARY: string;
SECONDARY: string;
SUCCESS: string;
DANGER: string;
WARNING: string;
INFO: string;
LIGHT: string;
DARK: string;
BODY: string;
WHITE: string;
};
export declare const typographyColor: {
PRIMARY: string;
SECONDARY: string;
SUCCESS: string;
DANGER: string;
WARNING: string;
INFO: string;
LIGHT: string;
DARK: string;
BODY: string;
MUTED: string;
WHITE: string;
BLACK_50: string;
WHITE_50: string;
};
declare interface TypographyProps {
className?: string;
color?: keyof typeof typographyColor;
emphasis?: boolean;
bg?: keyof typeof typographyBg;
align?: keyof typeof typographyAlign;
transform?: keyof typeof typographyTransform;
size?: keyof typeof typographySize;
ellipsis?: boolean;
}
export declare const typographySize: {
FS_1: string;
FS_2: string;
FS_3: string;
FS_4: string;
FS_5: string;
FS_6: string;
};
export declare const typographyTransform: {
LOWERCASE: string;
UPPERCASE: string;
CAPITALIZE: string;
};
export declare namespace variants {
let PRIMARY: string;
let SECONDARY: string;
let TERTIARY: string;
let INFO: string;
let SUCCESS: string;
let DANGER: string;
let WARNING: string;
let PURPLE: string;
let DARK: string;
let LIGHT: string;
let LINK: string;
}
export declare namespace variantsOutline {
let OUTLINE_PRIMARY: string;
let OUTLINE_SECONDARY: string;
let OUTLINE_TERTIARY: string;
let OUTLINE_INFO: string;
let OUTLINE_SUCCESS: string;
let OUTLINE_DANGER: string;
let OUTLINE_WARNING: string;
let OUTLINE_PURPLE: string;
let OUTLINE_DARK: string;
let OUTLINE_LIGHT: string;
}
export declare namespace variantsSubtle {
let SUBTLE_PRIMARY: string;
let SUBTLE_SECONDARY: string;
let SUBTLE_SUCCESS: string;
let SUBTLE_INFO: string;
let SUBTLE_WARNING: string;
let SUBTLE_DANGER: string;
let SUBTLE_TERTIARY: string;
let SUBTLE_MUTED: string;
}
export { }