UNPKG

@grafana/ui

Version:
1 lines 16.2 kB
{"version":3,"file":"styles.mjs","sources":["../../../../../src/components/Table/TableNG/styles.ts"],"sourcesContent":["import { css } from '@emotion/css';\nimport { Property } from 'csstype';\nimport memoize from 'micro-memoize';\n\nimport { GrafanaTheme2, colorManipulator } from '@grafana/data';\n\nimport { COLUMN, TABLE } from './constants';\nimport { TableCellStyles } from './types';\nimport { getJustifyContent, IS_SAFARI_26, TextAlign } from './utils';\n\nexport const getGridStyles = (theme: GrafanaTheme2, enablePagination?: boolean, transparent?: boolean) => {\n const bgColor = transparent ? theme.colors.background.canvas : theme.colors.background.primary;\n // this needs to be pre-calc'd since the theme colors have alpha and the border color becomes\n // unpredictable for background color cells\n const borderColor = colorManipulator.onBackground(theme.colors.border.weak, bgColor).toHexString();\n\n return {\n grid: css({\n '--rdg-background-color': bgColor,\n '--rdg-header-background-color': bgColor,\n '--rdg-border-color': borderColor,\n '--rdg-color': theme.colors.text.primary,\n '--rdg-summary-border-color': borderColor,\n '--rdg-summary-border-width': '1px',\n\n '--rdg-selection-color': theme.colors.info.transparent,\n\n // note: this cannot have any transparency since default cells that\n // overlay/overflow on hover inherit this background and need to occlude cells below\n '--rdg-row-background-color': bgColor,\n '--rdg-row-hover-background-color': transparent\n ? theme.colors.background.primary\n : theme.colors.background.secondary,\n\n // TODO: magic 32px number is unfortunate. it would be better to have the content\n // flow using flexbox rather than hard-coding this size via a calc\n blockSize: enablePagination ? 'calc(100% - 32px)' : '100%',\n scrollbarWidth: 'thin',\n scrollbarColor: theme.isDark ? '#fff5 #fff1' : '#0005 #0001',\n\n border: 'none',\n\n '.rdg-cell': {\n padding: TABLE.CELL_PADDING,\n\n '&:last-child': {\n borderInlineEnd: 'none',\n },\n },\n\n // add a box shadow on hover and selection for all body cells\n '& > :not(.rdg-summary-row, .rdg-header-row) > .rdg-cell': {\n [getActiveCellSelector()]: { boxShadow: theme.shadows.z2 },\n // selected cells should appear below hovered cells.\n ...(!IS_SAFARI_26 && { '&:hover': { zIndex: theme.zIndex.tooltip - 7 } }),\n '&[aria-selected=true]': { zIndex: theme.zIndex.tooltip - 6 },\n },\n\n '.rdg-cell.rdg-cell-frozen': {\n backgroundColor: 'var(--rdg-row-background-color)',\n zIndex: theme.zIndex.tooltip - 4,\n ...(!IS_SAFARI_26 && { '&:hover': { zIndex: theme.zIndex.tooltip - 2 } }),\n '&[aria-selected=true]': { zIndex: theme.zIndex.tooltip - 3 },\n },\n\n '.rdg-header-row, .rdg-summary-row': {\n '.rdg-cell': {\n zIndex: theme.zIndex.tooltip - 5,\n '&.rdg-cell-frozen': {\n zIndex: theme.zIndex.tooltip - 1,\n },\n },\n },\n '.rdg-summary-row >': {\n '.rdg-cell': {\n // 0.75 padding causes \"jumping\" on hover.\n paddingBlock: theme.spacing(0.625),\n },\n [getActiveCellSelector()]: {\n whiteSpace: 'pre-line',\n height: '100%',\n minHeight: 'fit-content',\n overflowY: 'visible',\n boxShadow: theme.shadows.z2,\n },\n },\n }),\n gridNested: css({\n height: '100%',\n width: `calc(100% - ${COLUMN.EXPANDER_WIDTH - TABLE.CELL_PADDING * 2 - 1}px)`,\n overflowX: 'scroll',\n overflowY: 'hidden',\n marginLeft: COLUMN.EXPANDER_WIDTH - TABLE.CELL_PADDING - 1,\n marginBlock: TABLE.CELL_PADDING,\n }),\n cellNested: css({ '&[aria-selected=true]': { outline: 'none' } }),\n noDataNested: css({\n height: TABLE.NESTED_NO_DATA_HEIGHT,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.colors.text.secondary,\n fontSize: theme.typography.h4.fontSize,\n }),\n headerRow: css({\n paddingBlockStart: 0,\n fontWeight: 'normal',\n '& .rdg-cell': { height: '100%', alignItems: 'flex-end' },\n }),\n displayNone: css({ display: 'none' }),\n paginationContainer: css({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n marginTop: '8px',\n width: '100%',\n }),\n paginationSummary: css({\n color: theme.colors.text.secondary,\n fontSize: theme.typography.bodySmall.fontSize,\n display: 'flex',\n justifyContent: 'flex-end',\n padding: theme.spacing(0, 1, 0, 2),\n }),\n menuItem: css({ maxWidth: '200px' }),\n safariWrapper: css({ contain: 'strict', height: '100%' }),\n };\n};\n\nexport const getHeaderCellStyles = (theme: GrafanaTheme2, justifyContent: Property.JustifyContent) =>\n css({\n display: 'flex',\n gap: theme.spacing(0.5),\n zIndex: theme.zIndex.tooltip - 1,\n paddingInline: TABLE.CELL_PADDING,\n paddingBlockEnd: TABLE.CELL_PADDING,\n justifyContent,\n '&:last-child': { borderInlineEnd: 'none' },\n });\n\nexport const getDefaultCellStyles: TableCellStyles = (theme, { textAlign, shouldOverflow, maxHeight }) =>\n css({\n display: 'flex',\n alignItems: 'center',\n textAlign,\n justifyContent: Boolean(maxHeight) ? 'flex-start' : getJustifyContent(textAlign),\n ...(maxHeight && { overflowY: 'hidden' }),\n ...(shouldOverflow && { minHeight: '100%' }),\n\n [getActiveCellSelector()]: {\n ...(shouldOverflow && {\n zIndex: theme.zIndex.tooltip - 2,\n height: 'fit-content',\n minWidth: 'fit-content',\n }),\n },\n\n [getHoverOnlyCellSelector()]: {\n '.table-cell-actions': { display: 'flex' },\n },\n });\n\nexport const getMaxHeightCellStyles: TableCellStyles = (_theme, { textAlign, maxHeight }) =>\n css({\n display: 'flex',\n alignItems: 'center',\n textAlign,\n justifyContent: getJustifyContent(textAlign),\n maxHeight,\n width: '100%',\n overflowY: 'hidden',\n [getActiveCellSelector(true)]: {\n maxHeight: 'none',\n minHeight: '100%',\n },\n });\n\nexport const getCellActionStyles = (theme: GrafanaTheme2, textAlign: TextAlign) =>\n css({\n display: 'none',\n position: 'absolute',\n top: 0,\n margin: 'auto',\n height: '100%',\n color: theme.colors.text.primary,\n background: theme.isDark ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.7)',\n padding: theme.spacing.x0_5,\n paddingInlineStart: theme.spacing.x1,\n [textAlign === 'right' ? 'left' : 'right']: 0,\n });\n\nexport const getLinkStyles = (theme: GrafanaTheme2, canBeColorized: boolean) =>\n css({\n a: {\n cursor: 'pointer',\n ...(canBeColorized\n ? {\n color: 'inherit',\n textDecoration: 'underline',\n }\n : {\n color: theme.colors.text.link,\n textDecoration: 'none',\n '&:hover': { textDecoration: 'underline' },\n }),\n },\n });\n\nconst caretTriangle = (direction: 'left' | 'right', bgColor: string) =>\n `linear-gradient(to top ${direction}, transparent 62.5%, ${bgColor} 50%)`;\n\nexport const getTooltipStyles = (theme: GrafanaTheme2, textAlign: TextAlign) => ({\n tooltipContent: css({\n height: '100%',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n }),\n tooltipWrapper: css({\n background: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: theme.shape.radius.default,\n boxShadow: theme.shadows.z3,\n overflow: 'hidden',\n padding: theme.spacing(1),\n width: 'inherit',\n }),\n tooltipCaret: css({\n cursor: 'pointer',\n position: 'absolute',\n top: theme.spacing(0.25),\n [textAlign === 'right' ? 'right' : 'left']: theme.spacing(0.25),\n width: theme.spacing(1.75),\n height: theme.spacing(1.75),\n background: caretTriangle(textAlign === 'right' ? 'right' : 'left', theme.colors.border.strong),\n }),\n});\n\nconst ACTIVE_CELL_SELECTORS = {\n hover: {\n nested: '.rdg-cell:hover &',\n normal: '&:hover',\n },\n selected: {\n nested: '[aria-selected=true] &',\n normal: '&[aria-selected=true]',\n },\n} as const;\n\nexport const getActiveCellSelector = memoize((isNested?: boolean) => {\n const selectors = [];\n selectors.push(ACTIVE_CELL_SELECTORS.selected[isNested ? 'nested' : 'normal']);\n if (!IS_SAFARI_26) {\n selectors.push(ACTIVE_CELL_SELECTORS.hover[isNested ? 'nested' : 'normal']);\n }\n return selectors.join(', ');\n});\n\nexport const getHoverOnlyCellSelector = memoize((isNested?: boolean) => {\n if (IS_SAFARI_26) {\n return '';\n }\n return ACTIVE_CELL_SELECTORS.hover[isNested ? 'nested' : 'normal'];\n});\n"],"names":[],"mappings":"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"}