UNPKG

@octopusdeploy/design-system-components

Version:
38 lines (37 loc) 1.58 kB
"use strict"; 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], });