Private
Public Access
1
0
Files
power-apps-codeapps-blog-part2/node_modules/@fluentui/react-breadcrumb/lib-commonjs/components/Breadcrumb/useBreadcrumb.js

74 lines
2.3 KiB
JavaScript

'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
useBreadcrumbA11yBehavior_unstable: function() {
return useBreadcrumbA11yBehavior_unstable;
},
useBreadcrumbBase_unstable: function() {
return useBreadcrumbBase_unstable;
},
useBreadcrumb_unstable: function() {
return useBreadcrumb_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactutilities = require("@fluentui/react-utilities");
const _reacttabster = require("@fluentui/react-tabster");
const useBreadcrumb_unstable = (props, ref)=>{
const { focusMode = 'tab', size = 'medium', ...breadcrumbProps } = props;
const state = useBreadcrumbBase_unstable(breadcrumbProps, ref);
const focusAttributes = useBreadcrumbA11yBehavior_unstable({
focusMode
});
return {
...state,
root: {
...focusAttributes,
...state.root
},
size
};
};
const useBreadcrumbBase_unstable = (props, ref)=>{
const { focusMode = 'tab', list, ...rest } = props;
var _props_arialabel;
return {
components: {
root: 'nav',
list: 'ol'
},
root: _reactutilities.slot.always((0, _reactutilities.getIntrinsicElementProps)('nav', {
ref,
'aria-label': (_props_arialabel = props['aria-label']) !== null && _props_arialabel !== void 0 ? _props_arialabel : 'breadcrumb',
...rest
}), {
elementType: 'nav'
}),
list: _reactutilities.slot.optional(list, {
renderByDefault: true,
defaultProps: {
role: 'list'
},
elementType: 'ol'
})
};
};
const useBreadcrumbA11yBehavior_unstable = ({ focusMode })=>{
const focusAttributes = (0, _reacttabster.useArrowNavigationGroup)({
circular: true,
axis: 'horizontal',
memorizeCurrent: true
});
return focusMode === 'arrow' ? focusAttributes : {};
};