@confi/conflux-react-ui-test-package
Version:
Modern and minimalist React UI library.
235 lines (234 loc) • 6.22 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { addColorAlpha } from '../utils/color';
export var getButtonGhostColors = function getButtonGhostColors(palette, type) {
var colors = {
secondary: {
bg: palette.background,
border: palette.foreground,
color: palette.foreground
},
success: {
bg: palette.background,
border: palette.success,
color: palette.success
},
warning: {
bg: palette.background,
border: palette.warning,
color: palette.warning
},
error: {
bg: palette.background,
border: palette.error,
color: palette.error
}
};
return colors[type] || null;
};
export var getButtonColors = function getButtonColors(palette, props) {
var type = props.type,
disabled = props.disabled,
ghost = props.ghost;
var colors = {
"default": {
bg: palette.background,
border: palette.border,
color: palette.accents_5
},
secondary: {
bg: palette.foreground,
border: palette.foreground,
color: palette.background
},
success: {
bg: palette.success,
border: palette.success,
color: '#fff'
},
warning: {
bg: palette.warning,
border: palette.warning,
color: '#fff'
},
error: {
bg: palette.error,
border: palette.error,
color: '#fff'
},
abort: {
bg: 'transparent',
border: 'transparent',
color: palette.accents_5
}
};
if (disabled) return {
bg: palette.accents_1,
border: palette.accents_2,
color: '#ccc'
};
/**
* The '-light' type is the same color as the common type,
* only hover's color is different.
* e.g.
* Color['success'] === Color['success-light']
* Color['warning'] === Color['warning-light']
*/
var withoutLightType = type.replace('-light', '');
var defaultColor = colors["default"];
if (ghost) return getButtonGhostColors(palette, withoutLightType) || defaultColor;
return colors[withoutLightType] || defaultColor;
};
export var getButtonGhostHoverColors = function getButtonGhostHoverColors(palette, type) {
var colors = {
secondary: {
bg: palette.foreground,
border: palette.background,
color: palette.background
},
success: {
bg: palette.success,
border: palette.background,
color: 'white'
},
warning: {
bg: palette.warning,
border: palette.background,
color: 'white'
},
error: {
bg: palette.error,
border: palette.background,
color: 'white'
}
};
var withoutLightType = type.replace('-light', '');
return colors[withoutLightType] || null;
};
export var getButtonHoverColors = function getButtonHoverColors(palette, props) {
var type = props.type,
disabled = props.disabled,
loading = props.loading,
shadow = props.shadow,
ghost = props.ghost;
var defaultColor = getButtonColors(palette, props);
var alphaBackground = addColorAlpha(defaultColor.bg, 0.85);
var colors = {
"default": {
bg: palette.background,
border: palette.foreground
},
secondary: {
bg: palette.background,
border: palette.foreground
},
success: {
bg: palette.background,
border: palette.success
},
warning: {
bg: palette.background,
border: palette.warning
},
error: {
bg: palette.background,
border: palette.error
},
abort: {
bg: 'transparent',
border: 'transparent',
color: palette.accents_5
},
'secondary-light': _extends(_extends({}, defaultColor), {}, {
bg: alphaBackground
}),
'success-light': _extends(_extends({}, defaultColor), {}, {
bg: alphaBackground
}),
'warning-light': _extends(_extends({}, defaultColor), {}, {
bg: alphaBackground
}),
'error-light': _extends(_extends({}, defaultColor), {}, {
bg: alphaBackground
})
};
if (disabled) return {
bg: palette.accents_1,
border: palette.accents_2,
color: '#ccc'
};
if (loading) return _extends(_extends({}, defaultColor), {}, {
color: 'transparent'
});
if (shadow) return defaultColor;
var hoverColor = (ghost ? getButtonGhostHoverColors(palette, type) : colors[type]) || colors["default"];
return _extends(_extends({}, hoverColor), {}, {
color: hoverColor.color || hoverColor.border
});
};
export var getButtonCursor = function getButtonCursor(disabled, loading) {
if (disabled) return {
cursor: 'not-allowed',
events: 'auto'
};
if (loading) return {
cursor: 'default',
events: 'none'
};
return {
cursor: 'pointer',
events: 'auto'
};
};
export var getButtonSize = function getButtonSize() {
var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'medium';
var auto = arguments.length > 1 ? arguments[1] : undefined;
var defaultLayout = {
height: '2.5rem',
width: 'auto',
padding: '1.375rem',
fontSize: '.875rem',
minWidth: '12.5rem'
};
var autoPaddings = {
medium: '1.25rem',
mini: '0.625rem',
small: '0.9375rem',
large: '1.5625rem'
};
var layouts = {
mini: {
height: '1.5rem',
width: 'initial',
padding: '1.375rem',
fontSize: '.75rem',
minWidth: '5.25rem'
},
small: {
height: '2rem',
width: 'initial',
padding: '1.25rem',
fontSize: '.875rem',
minWidth: '9.375rem'
},
medium: defaultLayout,
large: {
height: '2.75rem',
width: 'initial',
padding: '1.875rem',
fontSize: '1rem',
minWidth: '15.625rem'
}
};
if (auto) return _extends(_extends({}, layouts[size] || defaultLayout), {}, {
padding: autoPaddings[size] || autoPaddings.medium,
minWidth: 'min-content',
width: 'auto'
});
return layouts[size] || defaultLayout;
};
export var getButtonDripColor = function getButtonDripColor(palette, props) {
var type = props.type;
var isLightHover = type.endsWith('light');
var hoverColors = getButtonHoverColors(palette, props);
return isLightHover ? addColorAlpha(hoverColors.bg, 0.65) : addColorAlpha(palette.accents_2, 0.65);
};