@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
46 lines (45 loc) • 1.74 kB
JavaScript
;
"use client";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _withComponentMarkers = _interopRequireDefault(require("../../shared/helpers/withComponentMarkers.js"));
var _react = require("react");
var _clsx = require("clsx");
var _Element = _interopRequireDefault(require("../Element.js"));
var _HeadingHelpers = require("../../components/heading/HeadingHelpers.js");
var _index = require("../../shared/index.js");
var _Context = _interopRequireDefault(require("../../shared/Context.js"));
var _Typography = require("./Typography.js");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const H = props => {
const {
element = 'h1',
is,
level,
size,
className,
...rest
} = (0, _Typography.useTypography)(props);
const resolvedElement = element !== null && element !== void 0 ? element : is;
const numSiz = parseFloat(String(resolvedElement).substring(1));
if (level === 'use') {
(0, _HeadingHelpers.setNextLevel)(numSiz);
}
const theme = (0, _index.useTheme)();
const targetSize = size === 'auto' && (0, _HeadingHelpers.getHeadingSize)(theme?.name)[numSiz] || size || 'xx-large';
const context = (0, _react.useContext)(_Context.default);
return (0, _jsxRuntime.jsx)(_Element.default, {
as: resolvedElement,
internalClass: (0, _clsx.clsx)(targetSize && `dnb-h--${targetSize}`, context?.theme?.surface === 'dark' && 'dnb-t--surface-dark', className),
...rest
});
};
(0, _withComponentMarkers.default)(H, {
_isHeadingElement: true,
_supportsSpacingProps: true
});
var _default = exports.default = H;
//# sourceMappingURL=H.js.map