@wordpress/components
Version:
UI components for WordPress.
38 lines (37 loc) • 925 B
JavaScript
// packages/components/src/heading/hook.ts
import { useContextSystem } from "../context";
import { useText } from "../text";
import { getHeadingFontSize } from "../utils/font-size";
import { CONFIG, COLORS } from "../utils";
function useHeading(props) {
const {
as: asProp,
level = 2,
color = COLORS.theme.foreground,
isBlock = true,
weight = CONFIG.fontWeightHeading,
...otherProps
} = useContextSystem(props, "Heading");
const as = asProp || `h${level}`;
const a11yProps = {};
if (typeof as === "string" && as[0] !== "h") {
a11yProps.role = "heading";
a11yProps["aria-level"] = typeof level === "string" ? parseInt(level) : level;
}
const textProps = useText({
color,
isBlock,
weight,
size: getHeadingFontSize(level),
...otherProps
});
return {
...textProps,
...a11yProps,
as
};
}
export {
useHeading
};
//# sourceMappingURL=hook.js.map