UNPKG

@carbon/react

Version:

React components for the Carbon Design System

53 lines (51 loc) 1.76 kB
/** * Copyright IBM Corp. 2016, 2026 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ const require_runtime = require("../../_virtual/_rolldown/runtime.js"); let react = require("react"); react = require_runtime.__toESM(react); let prop_types = require("prop-types"); prop_types = require_runtime.__toESM(prop_types); let react_jsx_runtime = require("react/jsx-runtime"); //#region src/components/Heading/index.tsx /** * Copyright IBM Corp. 2016, 2023 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ const HeadingContext = react.default.createContext(1); const Section = react.default.forwardRef(function Section({ as: BaseComponent = "section", level: levelOverride, ...rest }, ref) { const parentLevel = react.default.useContext(HeadingContext); const level = levelOverride ?? parentLevel + 1; const BaseComponentAsAny = BaseComponent; return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HeadingContext.Provider, { value: Math.min(level, 6), children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BaseComponentAsAny, { ref, ...rest }) }); }); Section.propTypes = { as: prop_types.default.elementType, children: prop_types.default.node, className: prop_types.default.string, level: prop_types.default.number }; const Heading = react.default.forwardRef((props, ref) => { return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(`h${react.default.useContext(HeadingContext)}`, { ref, ...props }); }); Heading.propTypes = { children: prop_types.default.node, className: prop_types.default.string }; //#endregion exports.Heading = Heading; exports.Section = Section;