import * as React from "react"; import { cx } from "@emotion/css"; import { padding, border } from "../../shared/styles/styleUtils"; import { configurationMapHeadingStyle } from "../style"; import { HeadingText1, HeadingText2, HeadingText3 } from "../../styleUtils/typography"; export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6; interface ConfigurationMapHeadingProps { /** * Priority of the heading. Numbers map to

through

*/ headingLevel?: HeadingLevel; /** * Which HTML tag to render the text in */ tag?: keyof React.ReactHTML; /** * Allows custom styling */ className?: string; /** * Human-readable selector used for writing tests */ "data-cy"?: string; children: React.ReactNode; } const getHeadingTextComponent = (headingLevel: HeadingLevel) => { switch (headingLevel) { case 1: return HeadingText1; case 2: return HeadingText2; default: return HeadingText3; } }; const ConfigurationMapHeading = ({ children, headingLevel = 1, tag, className, "data-cy": dataCy = "configurationMapHeading" }: ConfigurationMapHeadingProps) => { const headingTag: keyof React.ReactHTML = `h${headingLevel}` as | "h1" | "h2" | "h3" | "h4" | "h5" | "h6"; const HeadingTextComponent = getHeadingTextComponent(headingLevel); return (
{children}
); }; export default ConfigurationMapHeading;