@atlaskit/heading
Version:
A heading is a typography component used to display text in different sizes and formats.
111 lines (105 loc) • 4.2 kB
JavaScript
/* heading.tsx generated by @compiled/babel-plugin v3.0.2 */
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("./heading.compiled.css");
var _react = _interopRequireWildcard(require("react"));
var React = _react;
var _runtime = require("@compiled/react/runtime");
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _primitives = require("@atlaskit/primitives");
var _compiled = require("@atlaskit/primitives/compiled");
var _useHeading3 = require("./use-heading");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
/* eslint-disable @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors */
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
var sizeTagMap = {
xxlarge: 'h1',
xlarge: 'h1',
large: 'h2',
medium: 'h3',
small: 'h4',
xsmall: 'h5',
xxsmall: 'h6'
};
/**
* Using '&&' here to increase specificity of Heading styles such that app styles like ".wiki-content h4" cannot override this component.
*/
var styles = {
reset: "_dxsyidpf _1i144jg8 _nmk4glyw"
};
/**
* Using '&&' here to increase specificity of Heading styles such that app styles like ".wiki-content h4" cannot override this component.
*/
var headingColorStyles = {
'color.text': "_1w90i7uo",
'color.text.inverse': "_1w9015cr",
'color.text.warning.inverse': "_1w901yd3"
};
/**
* Using '&&' here to increase specificity of Heading styles such that app styles like ".wiki-content h4" cannot override this component.
*/
var headingSizeStyles = {
xxlarge: "_fqox1iff",
xlarge: "_fqox12ln",
large: "_fqox10sd",
medium: "_fqox1af2",
small: "_fqox1e3o",
xsmall: "_fqox1qyo",
xxsmall: "_fqoxi4vh"
};
/**
* @codegenEnd
*/
var useColor = function useColor(colorProp) {
var surface = (0, _compiled.UNSAFE_useSurface)();
if (colorProp) {
return colorProp;
}
if (_primitives.UNSAFE_inverseColorMap.hasOwnProperty(surface)) {
return _primitives.UNSAFE_inverseColorMap[surface];
}
return 'color.text';
};
/**
* __Heading__
*
* Heading is a typography component used to display text in defined sizes and styles.
*
* @example
*
* ```jsx
* <Heading size="xxlarge">Page title</Heading>
* ```
*/
var Heading = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
var children = props.children,
size = props.size,
id = props.id,
testId = props.testId,
as = props.as,
colorProp = props.color;
if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production' && as && typeof as !== 'string') {
throw new Error('`as` prop should be a string.');
}
var _useHeading = (0, _useHeading3.useHeading)(sizeTagMap[size]),
_useHeading2 = (0, _slicedToArray2.default)(_useHeading, 2),
hLevel = _useHeading2[0],
inferredElement = _useHeading2[1];
var Component = as || inferredElement;
var needsAriaRole = Component === 'div' && hLevel;
var color = useColor(colorProp);
return /*#__PURE__*/React.createElement(Component, {
id: id,
ref: ref,
"data-testid": testId,
role: needsAriaRole ? 'heading' : undefined,
"aria-level": needsAriaRole ? hLevel : undefined,
className: (0, _runtime.ax)([styles.reset, headingSizeStyles[size], headingColorStyles[color]])
}, children);
});
var _default = exports.default = Heading;