UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

80 lines (79 loc) 3.18 kB
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;