'use client'; import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray"; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; 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"; var useUtilityClasses = function useUtilityClasses(ownerState) { var classes = ownerState.classes; var slots = { root: ['root'], li: ['li'], ol: ['ol'], separator: ['separator'] }; return composeClasses(slots, getBreadcrumbsUtilityClass, classes); }; var BreadcrumbsRoot = styled(Typography, { name: 'MuiBreadcrumbs', slot: 'Root', overridesResolver: function overridesResolver(props, styles) { return [_defineProperty({}, "& .".concat(breadcrumbsClasses.li), styles.li), styles.root]; } })({}); var BreadcrumbsOl = styled('ol', { name: 'MuiBreadcrumbs', slot: 'Ol', overridesResolver: function overridesResolver(props, styles) { return styles.ol; } })({ display: 'flex', flexWrap: 'wrap', alignItems: 'center', padding: 0, margin: 0, listStyle: 'none' }); var BreadcrumbsSeparator = styled('li', { name: 'MuiBreadcrumbs', slot: 'Separator', overridesResolver: function overridesResolver(props, styles) { return styles.separator; } })({ display: 'flex', userSelect: 'none', marginLeft: 8, marginRight: 8 }); function insertSeparators(items, className, separator, ownerState) { return items.reduce(function (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-".concat(index))); } else { acc.push(current); } return acc; }, []); } var Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(inProps, ref) { var props = useThemeProps({ props: inProps, name: 'MuiBreadcrumbs' }); var children = props.children, className = props.className, _props$component = props.component, component = _props$component === void 0 ? 'nav' : _props$component, _props$slots = props.slots, slots = _props$slots === void 0 ? {} : _props$slots, _props$slotProps = props.slotProps, slotProps = _props$slotProps === void 0 ? {} : _props$slotProps, _props$expandText = props.expandText, expandText = _props$expandText === void 0 ? 'Show path' : _props$expandText, _props$itemsAfterColl = props.itemsAfterCollapse, itemsAfterCollapse = _props$itemsAfterColl === void 0 ? 1 : _props$itemsAfterColl, _props$itemsBeforeCol = props.itemsBeforeCollapse, itemsBeforeCollapse = _props$itemsBeforeCol === void 0 ? 1 : _props$itemsBeforeCol, _props$maxItems = props.maxItems, maxItems = _props$maxItems === void 0 ? 8 : _props$maxItems, _props$separator = props.separator, separator = _props$separator === void 0 ? '/' : _props$separator, other = _objectWithoutProperties(props, ["children", "className", "component", "slots", "slotProps", "expandText", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "separator"]); var _React$useState = React.useState(false), expanded = _React$useState[0], setExpanded = _React$useState[1]; var ownerState = _extends({}, props, { component: component, expanded: expanded, expandText: expandText, itemsAfterCollapse: itemsAfterCollapse, itemsBeforeCollapse: itemsBeforeCollapse, maxItems: maxItems, separator: separator }); var classes = useUtilityClasses(ownerState); var collapsedIconSlotProps = useSlotProps({ elementType: slots.CollapsedIcon, externalSlotProps: slotProps.collapsedIcon, ownerState: ownerState }); var listRef = React.useRef(null); var renderItemsBeforeAndAfter = function renderItemsBeforeAndAfter(allItems) { var handleClickExpand = function 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