@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
58 lines (57 loc) • 2.49 kB
TypeScript
export type SpacingElementProps = {
/**
* Use spacing values like: `small`, `1rem`, `1` or , `16px`. Will use `margin-top`.
*
*/
top?: SpaceType;
/**
* Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-right`.
*
*/
right?: SpaceType;
/**
* Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-bottom`.
*
*/
bottom?: SpaceType;
/**
* Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-left`.
*
*/
left?: SpaceType;
};
export type SpacePositiveSize = 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large' | 'xx-large-x2';
export type SpacePositiveRemValue = 0.25 | 0.5 | 1 | 1.5 | 2 | 3 | 3.5 | 7;
export type SpaceSize = 'zero' | SpacePositiveSize;
type SpaceSizeUnion = `${SpaceSize} ${SpaceSize}`;
type SpaceSizeUnionInfinite = `${SpaceSize} ${SpaceSize} ${string}`;
export type SpaceRemValuesType = 0 | 0.25 | 0.5 | 1 | 1.5 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | 5 | 5.5 | 6 | 6.5 | 7 | 7.5 | 8 | 8.5 | 9 | 9.5 | 10;
type SpaceRemStringType = `${SpaceRemValuesType}rem`;
type SpaceRemStringFallback = `${SpaceRemValuesType}`;
type SpaceRemStringFallbackUnionInfinite = `${SpaceRemValuesType} ${string}`;
type SpacePxStringType = `${number}px`;
type SpaceRemNumberType = SpaceRemValuesType;
export type SpaceStringValue = SpaceRemStringType | SpacePxStringType | SpaceRemStringFallback | SpaceRemStringFallbackUnionInfinite | SpaceSize | SpaceSizeUnion | SpaceSizeUnionInfinite;
export type SpaceType = SpaceStringValue | SpaceRemNumberType | boolean;
export type SpaceTypeAll = SpaceType | InnerSpacingElementProps;
export type SpaceTypeMedia = {
small?: SpaceType | InnerSpacingElementProps;
medium?: SpaceType | InnerSpacingElementProps;
large?: SpaceType | InnerSpacingElementProps;
};
export type InnerSpacingElementProps = SpacingElementProps & {
inline?: SpaceType;
block?: SpaceType;
};
export type InnerSpaceTypeMedia = {
small?: SpaceType | InnerSpacingElementProps;
medium?: SpaceType | InnerSpacingElementProps;
large?: SpaceType | InnerSpacingElementProps;
};
export type InnerSpaceType = SpaceType | InnerSpacingElementProps | InnerSpaceTypeMedia;
export type SpacingProps = SpacingElementProps & {
space?: SpaceTypeAll | SpaceTypeMedia;
innerSpace?: SpaceTypeAll | SpaceTypeMedia;
};
export type SpacingUnknownProps = Record<string, unknown>;
export {};