UNPKG

@grafana/ui

Version:
1 lines 4.61 kB
{"version":3,"file":"TitleItem.mjs","sources":["../../../../src/components/PanelChrome/TitleItem.tsx"],"sourcesContent":["import { cx, css } from '@emotion/css';\nimport { forwardRef } from 'react';\nimport * as React from 'react';\n\nimport { type GrafanaTheme2, type LinkModel, type LinkTarget } from '@grafana/data';\n\nimport { useStyles2 } from '../../themes/ThemeContext';\nimport { getFocusStyles, getMouseFocusStyles } from '../../themes/mixins';\nimport { Button } from '../Button/Button';\n\ntype TitleItemProps = {\n className?: string;\n children: React.ReactNode;\n onClick?: LinkModel['onClick'];\n href?: string;\n target?: LinkTarget;\n title?: string;\n};\n\ntype TitleItemElement = HTMLAnchorElement & HTMLButtonElement;\n\nexport const TitleItem = forwardRef<TitleItemElement, TitleItemProps>(\n ({ className, children, href, onClick, target, title, ...rest }, ref) => {\n const styles = useStyles2(getStyles);\n\n if (href) {\n return (\n <a\n ref={ref}\n href={href}\n onClick={onClick}\n target={target}\n title={title}\n className={cx(styles.linkItem, className)}\n {...rest}\n >\n {children}\n </a>\n );\n } else if (onClick) {\n return (\n <Button\n ref={ref}\n className={cx(styles.buttonItem, className)}\n variant=\"secondary\"\n fill=\"text\"\n onClick={onClick}\n >\n {children}\n </Button>\n );\n } else {\n return (\n <span ref={ref} className={cx(styles.item, className)} {...rest}>\n {children}\n </span>\n );\n }\n }\n);\n\nTitleItem.displayName = 'TitleItem';\n\nconst getStyles = (theme: GrafanaTheme2) => {\n const item = css({\n color: `${theme.colors.text.secondary}`,\n label: 'panel-header-item',\n border: 'none',\n borderRadius: `${theme.shape.radius.default}`,\n padding: `${theme.spacing(0, 1)}`,\n height: `${theme.spacing(theme.components.height.md)}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n\n '&:focus, &:focus-visible': {\n ...getFocusStyles(theme),\n zIndex: 1,\n },\n '&: focus:not(:focus-visible)': getMouseFocusStyles(theme),\n\n '&:hover ': {\n boxShadow: `${theme.shadows.z1}`,\n background: theme.colors.secondary.shade,\n color: `${theme.colors.text.primary}`,\n },\n });\n\n return {\n item,\n linkItem: cx(item, css({ cursor: 'pointer' })),\n buttonItem: cx(item, css({ cursor: 'pointer' })),\n };\n};\n"],"names":[],"mappings":";;;;;;;;AAqBO,MAAM,SAAA,GAAY,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ,KAAA,EAAO,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AACvE,IAAA,MAAM,MAAA,GAAS,WAAW,SAAS,CAAA;AAEnC,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,uBACE,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,IAAA;AAAA,UACA,OAAA;AAAA,UACA,MAAA;AAAA,UACA,KAAA;AAAA,UACA,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,QAAA,EAAU,SAAS,CAAA;AAAA,UACvC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ,WAAW,OAAA,EAAS;AAClB,MAAA,uBACE,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,UAAA,EAAY,SAAS,CAAA;AAAA,UAC1C,OAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAK,MAAA;AAAA,UACL,OAAA;AAAA,UAEC;AAAA;AAAA,OACH;AAAA,IAEJ,CAAA,MAAO;AACL,MAAA,uBACE,GAAA,CAAC,MAAA,EAAA,EAAK,GAAA,EAAU,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA,EAAI,GAAG,IAAA,EACxD,QAAA,EACH,CAAA;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,MAAM,SAAA,GAAY,CAAC,KAAA,KAAyB;AAC1C,EAAA,MAAM,OAAO,GAAA,CAAI;AAAA,IACf,KAAA,EAAO,CAAA,EAAG,KAAA,CAAM,MAAA,CAAO,KAAK,SAAS,CAAA,CAAA;AAAA,IACrC,KAAA,EAAO,mBAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,YAAA,EAAc,CAAA,EAAG,KAAA,CAAM,KAAA,CAAM,OAAO,OAAO,CAAA,CAAA;AAAA,IAC3C,SAAS,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA;AAAA,IAC/B,MAAA,EAAQ,GAAG,KAAA,CAAM,OAAA,CAAQ,MAAM,UAAA,CAAW,MAAA,CAAO,EAAE,CAAC,CAAA,CAAA;AAAA,IACpD,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAEhB,0BAAA,EAA4B;AAAA,MAC1B,GAAG,eAAe,KAAK,CAAA;AAAA,MACvB,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,8BAAA,EAAgC,oBAAoB,KAAK,CAAA;AAAA,IAEzD,UAAA,EAAY;AAAA,MACV,SAAA,EAAW,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,EAAE,CAAA,CAAA;AAAA,MAC9B,UAAA,EAAY,KAAA,CAAM,MAAA,CAAO,SAAA,CAAU,KAAA;AAAA,MACnC,KAAA,EAAO,CAAA,EAAG,KAAA,CAAM,MAAA,CAAO,KAAK,OAAO,CAAA;AAAA;AACrC,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,QAAA,EAAU,GAAG,IAAA,EAAM,GAAA,CAAI,EAAE,MAAA,EAAQ,SAAA,EAAW,CAAC,CAAA;AAAA,IAC7C,UAAA,EAAY,GAAG,IAAA,EAAM,GAAA,CAAI,EAAE,MAAA,EAAQ,SAAA,EAAW,CAAC;AAAA,GACjD;AACF,CAAA;;;;"}