UNPKG

@confi/conflux-react-ui-test-package

Version:

Modern and minimalist React UI library.

235 lines (234 loc) 6.22 kB
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); };