"use strict"; 'use client'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _reactIs = require("react-is"); var _propTypes = _interopRequireDefault(require("prop-types")); var _clsx = _interopRequireDefault(require("clsx")); var _integerPropType = _interopRequireDefault(require("@mui/utils/integerPropType")); var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses")); var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps")); var _zeroStyled = require("../zero-styled"); var _DefaultPropsProvider = require("../DefaultPropsProvider"); var _Typography = _interopRequireDefault(require("../Typography")); var _BreadcrumbCollapsed = _interopRequireDefault(require("./BreadcrumbCollapsed")); var _breadcrumbsClasses = _interopRequireWildcard(require("./breadcrumbsClasses")); var _jsxRuntime = require("react/jsx-runtime"); const useUtilityClasses = ownerState => { const { classes } = ownerState; const slots = { root: ['root'], li: ['li'], ol: ['ol'], separator: ['separator'] }; return (0, _composeClasses.default)(slots, _breadcrumbsClasses.getBreadcrumbsUtilityClass, classes); }; const BreadcrumbsRoot = (0, _zeroStyled.styled)(_Typography.default, { name: 'MuiBreadcrumbs', slot: 'Root', overridesResolver: (props, styles) => { return [{ [`& .${_breadcrumbsClasses.default.li}`]: styles.li }, styles.root]; } })({}); const BreadcrumbsOl = (0, _zeroStyled.styled)('ol', { name: 'MuiBreadcrumbs', slot: 'Ol' })({ display: 'flex', flexWrap: 'wrap', alignItems: 'center', padding: 0, margin: 0, listStyle: 'none' }); const BreadcrumbsSeparator = (0, _zeroStyled.styled)('li', { name: 'MuiBreadcrumbs', slot: '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__*/(0, _jsxRuntime.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 = (0, _DefaultPropsProvider.useDefaultProps)({ props: inProps, name: 'MuiBreadcrumbs' }); const { children, className, component = 'nav', slots = {}, slotProps = {}, expandText = 'Show path', itemsAfterCollapse = 1, itemsBeforeCollapse = 1, maxItems = 8, separator = '/', ...other } = props; const [expanded, setExpanded] = React.useState(false); const ownerState = { ...props, component, expanded, expandText, itemsAfterCollapse, itemsBeforeCollapse, maxItems, separator }; const classes = useUtilityClasses(ownerState); const collapsedIconSlotProps = (0, _useSlotProps.default)({ 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