UNPKG

seti-ramesesv1

Version:

Reusable components and context for Next.js apps

53 lines (49 loc) 2.38 kB
import { createUnaryUnit, getValue } from '../spacing/spacing.js'; import responsivePropType from '../responsivePropType/responsivePropType.js'; import compose from '../compose/compose.js'; import style from '../style/style.js'; import { handleBreakpoints } from '../breakpoints/breakpoints.js'; function borderTransform(value) { if (typeof value !== 'number') { return value; } return `${value}px solid`; } function createBorderStyle(prop, transform) { return style({ prop, themeKey: 'borders', transform }); } const border = createBorderStyle('border', borderTransform); const borderTop = createBorderStyle('borderTop', borderTransform); const borderRight = createBorderStyle('borderRight', borderTransform); const borderBottom = createBorderStyle('borderBottom', borderTransform); const borderLeft = createBorderStyle('borderLeft', borderTransform); const borderColor = createBorderStyle('borderColor'); const borderTopColor = createBorderStyle('borderTopColor'); const borderRightColor = createBorderStyle('borderRightColor'); const borderBottomColor = createBorderStyle('borderBottomColor'); const borderLeftColor = createBorderStyle('borderLeftColor'); const outline = createBorderStyle('outline', borderTransform); const outlineColor = createBorderStyle('outlineColor'); // false positive // eslint-disable-next-line react/function-component-definition const borderRadius = props => { if (props.borderRadius !== undefined && props.borderRadius !== null) { const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius'); const styleFromPropValue = propValue => ({ borderRadius: getValue(transformer, propValue) }); return handleBreakpoints(props, props.borderRadius, styleFromPropValue); } return null; }; borderRadius.propTypes = process.env.NODE_ENV !== 'production' ? { borderRadius: responsivePropType } : {}; borderRadius.filterProps = ['borderRadius']; compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor); export { border, borderBottom, borderBottomColor, borderColor, borderLeft, borderLeftColor, borderRadius, borderRight, borderRightColor, borderTop, borderTopColor, borderTransform, outline, outlineColor }; //# sourceMappingURL=borders.js.map