@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
80 lines (79 loc) • 3.18 kB
TypeScript
import type { HTMLProps, MouseEventHandler, ReactElement, ReactNode, Ref } from 'react';
import type { SpaceTypeAll, SpaceTypeMedia, SpacingProps } from '../../shared/types';
import type { SkeletonShow } from '../skeleton/Skeleton';
import type { BreadcrumbItemProps } from './BreadcrumbItem';
import BreadcrumbItem from './BreadcrumbItem';
export type BreadcrumbProps = {
/**
* Custom `className` for the component root.
*/
className?: string;
/**
* If set to `true`, an overlaying skeleton with animation will be shown.
*/
skeleton?: SkeletonShow;
/**
* List of pages to render as breadcrumb items. Each object in data can include all properties from [BreadcrumbItem properties](/uilib/components/breadcrumb/properties#breadcrumbitem-properties).
*/
data?: Array<BreadcrumbItemProps>;
/**
* Content of the component. Can be used instead of property `data`, by adding `Breadcrumb.Item` children `<Breadcrumb.Item {...properties} />`.
*/
children?: ReactElement<BreadcrumbItemProps> | Array<ReactElement<BreadcrumbItemProps>>;
/**
* Defaults to `responsive` or `single` depending on content. Options: `responsive` | `single` | `multiple` | `collapse`.
*/
variant?: 'responsive' | 'single' | 'multiple' | 'collapse';
/**
* Will be called by user click interaction, to handle click event on "Back" for variant `single` and "Back to..." for variant `collapse`.
*/
onClick?: MouseEventHandler<HTMLButtonElement>;
/**
* For variant `single`, set `href` for button click. Can be used instead of event/property `onClick`.
*/
href?: string;
/**
* Every `<nav>` on a page needs a unique `aria-label` text.
*/
navText?: ReactNode;
/**
* Override with a custom 'Back' text for variant `single` (Not recommended).
*/
goBackText?: ReactNode;
/**
* Override with a custom 'Home' text (Not recommended).
*/
homeText?: ReactNode;
/**
* Override with a custom 'Back to...' text (Not recommended).
*/
backToText?: ReactNode;
/**
* For variant `collapse`, override collapsed state for the collapsed content by updating this value using the provided property `onClick`.
*/
collapsed?: boolean;
/**
* Include spacing properties in breadcrumb. If only `true` is given, the spacing will be `small`. Defaults to `false`.
*/
spacing?: SpaceTypeAll | SpaceTypeMedia;
/**
* Disables the height animation. Defaults to `false`.
*/
noAnimation?: boolean;
/**
* Will be called when breadcrumb expands or collapses.
*/
onToggle?: (collapsed: boolean) => void;
/**
* Send along a custom React Ref.
* Default: `null`
*/
ref?: Ref<HTMLElement>;
};
export type BreadcrumbAllProps = BreadcrumbProps & SpacingProps & Omit<HTMLProps<HTMLElement>, keyof BreadcrumbProps>;
declare const Breadcrumb: {
(localProps: BreadcrumbAllProps): import("react/jsx-runtime").JSX.Element;
Item: (localProps: BreadcrumbItemProps) => import("react/jsx-runtime").JSX.Element;
};
export { BreadcrumbItem };
export default Breadcrumb;