111 lines
3.0 KiB
TypeScript
111 lines
3.0 KiB
TypeScript
|
import * as React from 'react';
|
||
|
import { SxProps } from '@mui/system';
|
||
|
import { SlotComponentProps } from '@mui/base';
|
||
|
import { Theme } from '../styles';
|
||
|
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
|
||
|
import { BreadcrumbsClasses } from './breadcrumbsClasses';
|
||
|
import SvgIcon from '../SvgIcon';
|
||
|
|
||
|
export interface BreadcrumbsCollapsedIconSlotPropsOverrides {}
|
||
|
|
||
|
export interface BreadcrumbsOwnerState extends BreadcrumbsProps {
|
||
|
expanded: boolean;
|
||
|
}
|
||
|
|
||
|
export interface BreadcrumbsOwnProps {
|
||
|
/**
|
||
|
* The content of the component.
|
||
|
*/
|
||
|
children?: React.ReactNode;
|
||
|
/**
|
||
|
* Override or extend the styles applied to the component.
|
||
|
*/
|
||
|
classes?: Partial<BreadcrumbsClasses>;
|
||
|
/**
|
||
|
* The components used for each slot inside the Breadcumb.
|
||
|
* Either a string to use a HTML element or a component.
|
||
|
* @default {}
|
||
|
*/
|
||
|
slots?: {
|
||
|
CollapsedIcon?: React.ElementType;
|
||
|
};
|
||
|
/**
|
||
|
* The props used for each slot inside the Breadcumb.
|
||
|
* @default {}
|
||
|
*/
|
||
|
slotProps?: {
|
||
|
/**
|
||
|
* Props applied to the CollapsedIcon slot.
|
||
|
* @default {}
|
||
|
*/
|
||
|
collapsedIcon?: SlotComponentProps<
|
||
|
typeof SvgIcon,
|
||
|
BreadcrumbsCollapsedIconSlotPropsOverrides,
|
||
|
BreadcrumbsOwnerState
|
||
|
>;
|
||
|
};
|
||
|
/**
|
||
|
* Override the default label for the expand button.
|
||
|
*
|
||
|
* For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).
|
||
|
* @default 'Show path'
|
||
|
*/
|
||
|
expandText?: string;
|
||
|
/**
|
||
|
* If max items is exceeded, the number of items to show after the ellipsis.
|
||
|
* @default 1
|
||
|
*/
|
||
|
itemsAfterCollapse?: number;
|
||
|
/**
|
||
|
* If max items is exceeded, the number of items to show before the ellipsis.
|
||
|
* @default 1
|
||
|
*/
|
||
|
itemsBeforeCollapse?: number;
|
||
|
/**
|
||
|
* Specifies the maximum number of breadcrumbs to display. When there are more
|
||
|
* than the maximum number, only the first `itemsBeforeCollapse` and last `itemsAfterCollapse`
|
||
|
* will be shown, with an ellipsis in between.
|
||
|
* @default 8
|
||
|
*/
|
||
|
maxItems?: number;
|
||
|
/**
|
||
|
* Custom separator node.
|
||
|
* @default '/'
|
||
|
*/
|
||
|
separator?: React.ReactNode;
|
||
|
/**
|
||
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
||
|
*/
|
||
|
sx?: SxProps<Theme>;
|
||
|
}
|
||
|
|
||
|
export interface BreadcrumbsTypeMap<
|
||
|
AdditionalProps = {},
|
||
|
RootComponent extends React.ElementType = 'nav',
|
||
|
> {
|
||
|
props: AdditionalProps & BreadcrumbsOwnProps;
|
||
|
defaultComponent: RootComponent;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* Demos:
|
||
|
*
|
||
|
* - [Breadcrumbs](https://mui.com/material-ui/react-breadcrumbs/)
|
||
|
*
|
||
|
* API:
|
||
|
*
|
||
|
* - [Breadcrumbs API](https://mui.com/material-ui/api/breadcrumbs/)
|
||
|
* - inherits [Typography API](https://mui.com/material-ui/api/typography/)
|
||
|
*/
|
||
|
declare const Breadcrumbs: OverridableComponent<BreadcrumbsTypeMap>;
|
||
|
|
||
|
export type BreadcrumbsProps<
|
||
|
RootComponent extends React.ElementType = BreadcrumbsTypeMap['defaultComponent'],
|
||
|
AdditionalProps = {},
|
||
|
> = OverrideProps<BreadcrumbsTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
|
||
|
component?: React.ElementType;
|
||
|
};
|
||
|
|
||
|
export default Breadcrumbs;
|