@octopusdeploy/design-system-components
Version:
The design systems component library.
38 lines (37 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ListDescription = ListDescription;
const jsx_runtime_1 = require("react/jsx-runtime");
const css_1 = require("@emotion/css");
const design_system_tokens_1 = require("@octopusdeploy/design-system-tokens");
/**
* ListDescription displays a description for a list item.
* Strings render as a `<p>`, ReactElements render in a `<div>`.
* If the description is an empty string, the component will return null.
*
* @example
* <ListDescription description="Simple text description" />
* <ListDescription description={<CustomComponent />} />
*/
function ListDescription({ description }) {
if (description === "" || (Array.isArray(description) && description.length === 0)) {
return null;
}
if (typeof description === "string") {
return (0, jsx_runtime_1.jsx)("p", { className: listDescriptionStyles, children: description });
}
return (0, jsx_runtime_1.jsx)("div", { className: listDescriptionContainerStyles, children: description });
}
//TODO: Remove marginBottom and add text-box-trim to heading when supported (added to visually align due to extra space in font for the title)
const baseStyles = {
margin: 0,
font: design_system_tokens_1.text.body.regular.medium,
marginBottom: design_system_tokens_1.space[2],
};
const listDescriptionStyles = (0, css_1.css)(baseStyles);
const listDescriptionContainerStyles = (0, css_1.css)({
...baseStyles,
display: "flex",
flexDirection: "column",
gap: design_system_tokens_1.space[8],
});