import React, { ReactNode } from 'react';
import styled, { CSSProperties } from 'styled-components';
import { Flex } from '../basic/Flex';
// NOTE Used for descendant components
export const StyledContent = styled.div<{ disabled: boolean }>`
display: flex;
align-items: center;
width: 100%;
color: ${props => (props.disabled ? 'var(--disabled-color)' : 'inherit')};
`;
export const StyledText = styled.span<{ color?: string }>`
font-size: var(--font-size-md);
font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
text-align: start;
${props => props.color && `color: ${props.color};`}
`;
export const PanelLabel = styled.p`
color: var(--text-secondary-color);
width: 100%;
margin: 0;
padding-left: calc(var(--margins-lg) * 2 + var(--margins-sm));
padding-bottom: var(--margins-sm);
`;
const StyledRoundedPanelButtonGroup = styled.div`
display: flex;
flex-direction: column;
justify-content: center;
overflow: hidden;
background: var(--right-panel-item-background-color);
border-radius: 16px;
padding: 0 var(--margins-lg) var(--margins-xs);
margin: 0 var(--margins-lg);
width: -webkit-fill-available;
`;
const PanelButtonContainer = styled.div`
overflow: auto;
min-height: 65px;
max-height: 100%;
`;
type PanelButtonGroupProps = {
children: ReactNode;
style?: CSSProperties;
};
export const PanelButtonGroup = (props: PanelButtonGroupProps) => {
const { children, style } = props;
return (
{children}
);
};
const StyledPanelButton = styled.button<{
disabled: boolean;
}>`
cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};
display: flex;
align-items: center;
justify-content: space-between;
flex-shrink: 0;
flex-grow: 1;
font-family: var(--font-default);
height: 65px;
width: 100%;
transition: var(--default-duration);
color: ${props => (props.disabled ? 'var(--disabled-color)' : 'inherit')};
:not(:last-child) {
border-bottom: 1px solid var(--border-color);
}
`;
export type PanelButtonProps = {
// https://styled-components.com/docs/basics#styling-any-component
className?: string;
disabled?: boolean;
children: ReactNode;
onClick: (...args: Array) => void;
dataTestId: string;
style?: CSSProperties;
};
export const PanelButton = (props: PanelButtonProps) => {
const { className, disabled = false, children, onClick, dataTestId, style } = props;
return (
{children}
);
};
const StyledSubtitle = styled.p<{ color?: string }>`
font-size: var(--font-size-xs);
line-height: 1.1;
margin-top: 0;
margin-bottom: 0;
text-align: start;
${props => props.color && `color: ${props.color};`}
`;
export const PanelButtonText = (props: { text: string; subtitle?: string; color?: string }) => {
return (
{props.text}
{!!props.subtitle && {props.subtitle}}
);
};