@wordpress/components
Version:
UI components for WordPress.
35 lines (33 loc) • 908 B
JavaScript
/**
* Internal dependencies
*/
import { useContextSystem } from '../ui/context';
import { useText } from '../text';
import { getHeadingFontSize } from '../ui/utils/font-size';
import { CONFIG, COLORS } from '../utils';
export function useHeading(props) {
const {
as: asProp,
level = 2,
...otherProps
} = useContextSystem(props, 'Heading');
const as = asProp || `h${level}`;
const a11yProps = {};
if (typeof as === 'string' && as[0] !== 'h') {
// If not a semantic `h` element, add a11y props:
a11yProps.role = 'heading';
a11yProps['aria-level'] = typeof level === 'string' ? parseInt(level) : level;
}
const textProps = useText({
color: COLORS.gray[900],
size: getHeadingFontSize(level),
isBlock: true,
weight: CONFIG.fontWeightHeading,
...otherProps
});
return { ...textProps,
...a11yProps,
as
};
}
//# sourceMappingURL=hook.js.map