@grafana/ui
Version:
Grafana Components Library
1 lines • 2.41 kB
Source Map (JSON)
{"version":3,"file":"MenuGroup.mjs","sources":["../../../../src/components/Menu/MenuGroup.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { uniqueId } from 'lodash';\nimport * as React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { useStyles2 } from '../../themes/ThemeContext';\n\nimport { MenuItemProps } from './MenuItem';\n\n/** @internal */\nexport interface MenuItemsGroup<T = unknown> {\n /** Label for the menu items group */\n label?: string;\n /** Aria label for accessibility support */\n ariaLabel?: string;\n /** Items of the group */\n items: Array<MenuItemProps<T>>;\n}\n\n/** @internal */\nexport interface MenuGroupProps extends Partial<MenuItemsGroup> {\n /** special children prop to pass children elements */\n children: React.ReactNode;\n}\n\n/** @internal */\nexport const MenuGroup = ({ label, ariaLabel, children }: MenuGroupProps) => {\n const styles = useStyles2(getStyles);\n const labelID = `group-label-${uniqueId()}`;\n\n return (\n <div role=\"group\" aria-labelledby={!ariaLabel && label ? labelID : undefined} aria-label={ariaLabel}>\n {label && (\n <label id={labelID} className={styles.groupLabel} aria-hidden>\n {label}\n </label>\n )}\n {children}\n </div>\n );\n};\nMenuGroup.displayName = 'MenuGroup';\n\n/** @internal */\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n groupLabel: css({\n color: theme.colors.text.secondary,\n fontSize: theme.typography.size.sm,\n padding: theme.spacing(0.5, 1),\n }),\n };\n};\n"],"names":[],"mappings":";;;;;;AA2BO,MAAM,YAAY,CAAC,EAAE,KAAA,EAAO,SAAA,EAAW,UAAS,KAAsB;AAC3E,EAAA,MAAM,MAAA,GAAS,WAAW,SAAS,CAAA;AACnC,EAAA,MAAM,OAAA,GAAU,CAAA,YAAA,EAAe,QAAA,EAAU,CAAA,CAAA;AAEzC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,OAAA,EAAQ,iBAAA,EAAiB,CAAC,SAAA,IAAa,KAAA,GAAQ,OAAA,GAAU,KAAA,CAAA,EAAW,YAAA,EAAY,SAAA,EACvF,QAAA,EAAA;AAAA,IAAA,KAAA,oBACC,GAAA,CAAC,WAAM,EAAA,EAAI,OAAA,EAAS,WAAW,MAAA,CAAO,UAAA,EAAY,aAAA,EAAW,IAAA,EAC1D,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,IAED;AAAA,GAAA,EACH,CAAA;AAEJ;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAGxB,MAAM,SAAA,GAAY,CAAC,KAAA,KAAyB;AAC1C,EAAA,OAAO;AAAA,IACL,YAAY,GAAA,CAAI;AAAA,MACd,KAAA,EAAO,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,SAAA;AAAA,MACzB,QAAA,EAAU,KAAA,CAAM,UAAA,CAAW,IAAA,CAAK,EAAA;AAAA,MAChC,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,GAAA,EAAK,CAAC;AAAA,KAC9B;AAAA,GACH;AACF,CAAA;;;;"}