mirror of
https://github.com/Redocly/redoc.git
synced 2024-12-02 13:23:44 +03:00
169 lines
3.7 KiB
TypeScript
169 lines
3.7 KiB
TypeScript
import { transparentize } from 'polished';
|
|
import * as React from 'react';
|
|
|
|
import styled, {
|
|
extensionsHook,
|
|
ResolvedThemeInterface,
|
|
StyledComponentClass,
|
|
withProps,
|
|
} from '../styled-components';
|
|
import { deprecatedCss } from './mixins';
|
|
|
|
export const PropertiesTableCaption = styled.caption`
|
|
text-align: right;
|
|
font-size: 0.9em;
|
|
font-weight: normal;
|
|
color: ${props => transparentize(0.6, props.theme.colors.text)};
|
|
`;
|
|
|
|
export const PropertyCell = styled.td`
|
|
border-left: 1px solid ${props => props.theme.schemaView.linesColor};
|
|
box-sizing: border-box;
|
|
position: relative;
|
|
padding: 10px 10px 10px 0;
|
|
|
|
tr:first-of-type > &,
|
|
tr.last > & {
|
|
border-left-width: 0;
|
|
background-position: top left;
|
|
background-repeat: no-repeat;
|
|
background-size: 1px 100%;
|
|
}
|
|
|
|
tr:first-of-type > & {
|
|
background-image: linear-gradient(
|
|
to bottom,
|
|
transparent 0%,
|
|
transparent 22px,
|
|
${props => props.theme.schemaView.linesColor} 22px,
|
|
${props => props.theme.schemaView.linesColor} 100%
|
|
);
|
|
}
|
|
|
|
tr.last > & {
|
|
background-image: linear-gradient(
|
|
to bottom,
|
|
${props => props.theme.schemaView.linesColor} 0%,
|
|
${props => props.theme.schemaView.linesColor} 22px,
|
|
transparent 22px,
|
|
transparent 100%
|
|
);
|
|
}
|
|
|
|
tr.last + tr > & {
|
|
border-left-color: transparent;
|
|
}
|
|
|
|
tr:only-child > & {
|
|
background: none;
|
|
border-left-color: transparent;
|
|
}
|
|
`;
|
|
|
|
export const PropertyCellWithInner = PropertyCell.extend`
|
|
padding: 0;
|
|
`;
|
|
|
|
export const PropertyNameCell = withProps<{ kind?: string }>(PropertyCell.extend)`
|
|
vertical-align: top;
|
|
line-height: 20px;
|
|
white-space: nowrap;
|
|
font-size: 0.929em;
|
|
font-family: ${props => props.theme.headingsFont.family};
|
|
|
|
&.deprecated {
|
|
${deprecatedCss};
|
|
}
|
|
|
|
${({ kind }) => (kind !== 'field' ? 'font-style: italic' : '')};
|
|
|
|
${extensionsHook('PropertyNameCell')};
|
|
`;
|
|
|
|
export const PropertyDetailsCell = styled.td`
|
|
border-bottom: 1px solid #9fb4be;
|
|
padding: 10px 0;
|
|
width: ${props => props.theme.schemaView.defaultDetailsWidth};
|
|
box-sizing: border-box;
|
|
|
|
tr.expanded & {
|
|
border-bottom: none;
|
|
}
|
|
`;
|
|
|
|
export const PropertyBullet = styled.span`
|
|
color: ${props => props.theme.schemaView.linesColor};
|
|
font-family: ${props => props.theme.code.fontFamily};
|
|
margin-right: 10px;
|
|
|
|
&::before {
|
|
content: '';
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
width: 10px;
|
|
height: 1px;
|
|
background: ${props => props.theme.schemaView.linesColor};
|
|
}
|
|
|
|
&::after {
|
|
content: '';
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
width: 1px;
|
|
background: ${props => props.theme.schemaView.linesColor};
|
|
height: 7px;
|
|
}
|
|
`;
|
|
|
|
export const InnerPropertiesWrap = styled.div`
|
|
padding: ${({ theme }) => theme.schemaView.nestingSpacing};
|
|
`;
|
|
|
|
export const PropertiesTable = styled.table`
|
|
border-collapse: separate;
|
|
border-radius: 3px;
|
|
font-size: ${props => props.theme.baseFont.size};
|
|
|
|
border-spacing: 0;
|
|
width: 100%;
|
|
|
|
> tr {
|
|
vertical-align: middle;
|
|
}
|
|
|
|
&
|
|
${InnerPropertiesWrap},
|
|
&
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap},
|
|
&
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap} {
|
|
margin: ${({ theme }) => theme.schemaView.nestingSpacing};
|
|
margin-right: 0;
|
|
background: #f0f0f0;
|
|
}
|
|
|
|
&
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap},
|
|
&
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap},
|
|
&
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap}
|
|
${InnerPropertiesWrap} {
|
|
background: #ffffff;
|
|
}
|
|
`;
|