'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["children", "className", "component", "slots", "slotProps", "expandText", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "separator"]; import * as React from 'react'; import { isFragment } from 'react-is'; import PropTypes from 'prop-types'; import clsx from 'clsx'; import integerPropType from '@mui/utils/integerPropType'; import { useSlotProps } from '@mui/base/utils'; import composeClasses from '@mui/utils/composeClasses'; import styled from '../styles/styled'; import useThemeProps from '../styles/useThemeProps'; import Typography from '../Typography'; import BreadcrumbCollapsed from './BreadcrumbCollapsed'; import breadcrumbsClasses, { getBreadcrumbsUtilityClass } from './breadcrumbsClasses'; import { jsx as _jsx } from "react/jsx-runtime"; const useUtilityClasses = ownerState => { const { classes } = ownerState; const slots = { root: ['root'], li: ['li'], ol: ['ol'], separator: ['separator'] }; return composeClasses(slots, getBreadcrumbsUtilityClass, classes); }; const BreadcrumbsRoot = styled(Typography, { name: 'MuiBreadcrumbs', slot: 'Root', overridesResolver: (props, styles) => { return [{ [`& .${breadcrumbsClasses.li}`]: styles.li }, styles.root]; } })({}); const BreadcrumbsOl = styled('ol', { name: 'MuiBreadcrumbs', slot: 'Ol', overridesResolver: (props, styles) => styles.ol })({ display: 'flex', flexWrap: 'wrap', alignItems: 'center', padding: 0, margin: 0, listStyle: 'none' }); const BreadcrumbsSeparator = styled('li', { name: 'MuiBreadcrumbs', slot: 'Separator', overridesResolver: (props, styles) => styles.separator })({ display: 'flex', userSelect: 'none', marginLeft: 8, marginRight: 8 }); function insertSeparators(items, className, separator, ownerState) { return items.reduce((acc, current, index) => { if (index < items.length - 1) { acc = acc.concat(current, /*#__PURE__*/_jsx(BreadcrumbsSeparator, { "aria-hidden": true, className: className, ownerState: ownerState, children: separator }, `separator-${index}`)); } else { acc.push(current); } return acc; }, []); } const Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(inProps, ref) { const props = useThemeProps({ props: inProps, name: 'MuiBreadcrumbs' }); const { children, className, component = 'nav', slots = {}, slotProps = {}, expandText = 'Show path', itemsAfterCollapse = 1, itemsBeforeCollapse = 1, maxItems = 8, separator = '/' } = props, other = _objectWithoutPropertiesLoose(props, _excluded); const [expanded, setExpanded] = React.useState(false); const ownerState = _extends({}, props, { component, expanded, expandText, itemsAfterCollapse, itemsBeforeCollapse, maxItems, separator }); const classes = useUtilityClasses(ownerState); const collapsedIconSlotProps = useSlotProps({ elementType: slots.CollapsedIcon, externalSlotProps: slotProps.collapsedIcon, ownerState }); const listRef = React.useRef(null); const renderItemsBeforeAndAfter = allItems => { const handleClickExpand = () => { setExpanded(true); // The clicked element received the focus but gets removed from the DOM. // Let's keep the focus in the component after expanding. // Moving it to the
    or