import { Tooltip } from '@planview/pv-uikit'
import {
theme,
cursor,
overflow,
spacingPx,
text,
} from '@planview/pv-utilities'
import React from 'react'
import styled, { css } from 'styled-components'
const disabledStyles = css`
opacity: 0.5;
${cursor.notAllowed};
`
const CCell = styled.div<{
$disabled: boolean
}>`
${text.numeric};
color: ${theme.textPrimary};
height: 100%;
width: 100%;
padding: 0 ${spacingPx.small};
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-end;
min-width: 0;
${(props) => (props.$disabled ? disabledStyles : '')};
&:focus {
outline: none;
}
`
const Ellipsed = styled.div`
${overflow.ellipsis};
`
export type GridCellNumericProps = {
/**
* Accessible tab index. You should generally pass through the tabIndex
* provided to the Renderer component.
*/
tabIndex: number
/**
* Contents
*/
label: string
/**
* Should this be disabled
*/
disabled?: boolean
/**
* Background color to use. Should only use official colors in
* the 0-200 range to be properly accessible with textPrimary.
*/
backgroundColor?: string
}
const GridCellNumericImpl = ({
tabIndex,
label,
disabled,
backgroundColor,
}: GridCellNumericProps) => (
{label}
)
/**
* **Deprecated**: Use `GridCellDefault` instead and apply `numeric` prop.
*
* This is a cell that renders content aligned to the right
* with tabular (monospaced) numbers. Use this in combination
* with a cell Renderer function to render numeric cells.
*
* ```tsx
* const numberColumn: Column = {
* id: "number",
* cell: {
* Renderer: ({ label, tabIndex }) => (
*
* )
* }
* }
* ```
*
* @deprecated Use `GridCellDefault` instead and apply `numeric` prop.
*/
export const GridCellNumeric = React.memo(
GridCellNumericImpl
) as typeof GridCellNumericImpl