UNPKG

@dcl/react-ecs

Version:
43 lines (42 loc) 2.08 kB
import { YGUnit } from '@dcl/ecs'; import { Position, PositionUnit, PositionShorthand, BorderRadius, UiTransformProps } from './types'; import { Color4 } from '@dcl/ecs/dist/components/generated/pb/decentraland/common/colors.gen'; type PropName = 'position' | 'margin' | 'padding' | 'borderWidth'; type PropKey = `${PropName}${Capitalize<keyof Position>}`; type PropKeyUnit = `${PropName}${Capitalize<keyof Position>}Unit`; type PositionParsed = { [key in PropKey]?: number; } & { [key in PropKeyUnit]?: YGUnit; }; type BorderProp = `border${Capitalize<keyof BorderRadius>}Radius`; type BorderPropUnit = `${BorderProp}Unit`; type BorderProps = { [key in BorderProp]?: number; } & { [key in BorderPropUnit]?: YGUnit; }; export declare function parseBorderRadius(radius: Partial<BorderRadius> | PositionUnit): BorderProps | undefined; type BorderKey = Record<keyof Position, number>; type BorderWidthProp = `border${Capitalize<keyof BorderKey>}Width`; type BorderWidthPropUnit = `${BorderWidthProp}Unit`; type BorderWidthProps = { [key in BorderWidthProp]?: number; } & { [key in BorderWidthPropUnit]?: YGUnit; }; export declare function parseBorderWidth(borderWidth: Partial<Position> | PositionUnit): BorderWidthProps | undefined; type BorderColor = Record<keyof Position, Color4>; type BorderColorKey = `border${Capitalize<keyof BorderColor>}Color`; export declare function parseBorderColor(borderColor: UiTransformProps['borderColor']): Record<BorderColorKey, Color4> | undefined; export declare function parsePosition<T extends PropName>(position: PositionShorthand | Partial<Position> | undefined, prop: T): Partial<PositionParsed>; type HeightWidth = 'height' | 'width'; type SizePropName = HeightWidth | `max${Capitalize<HeightWidth>}` | `min${Capitalize<HeightWidth>}`; type SizePropKeyUnit = `${SizePropName}Unit`; type SizeReturnType = { [key in SizePropName]: number; } & { [key in SizePropKeyUnit]: YGUnit; }; export declare function parseSize(val: PositionUnit | 'auto' | undefined, key: SizePropName): Partial<SizeReturnType>; export {};