@grafana/ui
Version:
Grafana Components Library
33 lines (30 loc) • 1.3 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import { cx, css } from '@emotion/css';
import { useStyles2 } from '../../themes/ThemeContext.mjs';
import { Icon } from '../Icon/Icon.mjs';
import { Tooltip } from '../Tooltip/Tooltip.mjs';
import { TitleItem } from './TitleItem.mjs';
;
function PanelDescription({ description, className }) {
const styles = useStyles2(getStyles);
const getDescriptionContent = () => {
const panelDescription = typeof description === "function" ? description() : description;
return /* @__PURE__ */ jsx("div", { className: "panel-info-content markdown-html", children: /* @__PURE__ */ jsx("div", { dangerouslySetInnerHTML: { __html: panelDescription } }) });
};
return description !== "" ? /* @__PURE__ */ jsx(Tooltip, { interactive: true, content: getDescriptionContent, children: /* @__PURE__ */ jsx(TitleItem, { className: cx(className, styles.description), children: /* @__PURE__ */ jsx(Icon, { name: "info-circle", size: "md" }) }) }) : null;
}
const getStyles = (theme) => {
return {
description: css({
code: {
whiteSpace: "normal",
wordWrap: "break-word"
},
"pre > code": {
display: "block"
}
})
};
};
export { PanelDescription };
//# sourceMappingURL=PanelDescription.mjs.map