braid-design-system
Version:
Themeable design system for the SEEK Group
63 lines (62 loc) • 2.32 kB
JavaScript
"use strict";
const jsxRuntime = require("react/jsx-runtime");
const lib_utils_align_cjs = require("../../../utils/align.cjs");
const lib_components_Box_Box_cjs = require("../../Box/Box.cjs");
const lib_components_private_MaxLines_MaxLines_cjs = require("../MaxLines/MaxLines.cjs");
const lib_components_private_buildDataAttributes_cjs = require("../buildDataAttributes.cjs");
const lib_components_private_iconSlotSpace_cjs = require("../iconSlotSpace.cjs");
const lib_components_private_MaxLines_MaxLines_css_cjs = require("../MaxLines/MaxLines.css.cjs");
const Typography = ({
id,
component = "span",
className,
align,
maxLines,
icon,
data,
children,
...restProps
}) => {
const isTruncated = typeof maxLines === "number";
const contents = isTruncated ? /* @__PURE__ */ jsxRuntime.jsx(lib_components_private_MaxLines_MaxLines_cjs.MaxLines, { lines: maxLines, children }) : children;
return /* @__PURE__ */ jsxRuntime.jsx(
lib_components_Box_Box_cjs.Box,
{
id,
display: "block",
component,
textAlign: align,
className: [
className,
isTruncated ? lib_components_private_MaxLines_MaxLines_css_cjs.descenderCropFixForWebkitBox : void 0
],
minWidth: isTruncated ? 0 : void 0,
...lib_components_private_buildDataAttributes_cjs.buildDataAttributes({ data, validateRestProps: restProps }),
children: icon ? /* @__PURE__ */ jsxRuntime.jsxs(
lib_components_Box_Box_cjs.Box,
{
component: "span",
display: "flex",
justifyContent: lib_utils_align_cjs.alignToFlexAlign(align),
children: [
/* @__PURE__ */ jsxRuntime.jsx(
lib_components_Box_Box_cjs.Box,
{
component: "span",
display: "block",
paddingRight: lib_components_private_iconSlotSpace_cjs.iconSlotSpace,
flexGrow: 0,
flexShrink: 0,
minWidth: 0,
textAlign: align,
children: icon
}
),
/* @__PURE__ */ jsxRuntime.jsx(lib_components_Box_Box_cjs.Box, { component: "span", display: "block", minWidth: 0, children: contents })
]
}
) : contents
}
);
};
exports.Typography = Typography;