@fluentui/react-northstar
Version:
A themable React component library.
182 lines (181 loc) • 6.42 kB
JavaScript
import { checkboxSlotClassNames } from '../../../../components/Checkbox/Checkbox';
import { getBorderFocusStyles } from '../../getBorderFocusStyles';
import { checkboxIndicatorUrl } from './checkboxIndicatorUrl';
import { checkboxIndicatorIndeterminateUrl } from './checkboxIndeterminateIndicatorUrl';
import { pxToRem } from '../../../../utils';
var commonToggleBeforeStyles = function commonToggleBeforeStyles(v) {
return {
content: "' '",
display: 'block',
borderRadius: '50%',
width: v.toggleIndicatorSize,
height: v.toggleIndicatorSize,
transition: 'margin .3s ease'
};
};
export var checkboxStyles = {
root: function root(_ref) {
var _hover;
var p = _ref.props,
v = _ref.variables,
t = _ref.theme;
return Object.assign({
position: 'relative',
display: 'inline-grid',
gridTemplateColumns: "auto " + v.gap + " 1fr",
// IE11: Gap is done via virtual column as in autoprefixer
msGridColumns: "auto " + v.gap + " 1fr"
}, p.labelPosition === 'start' && {
gridTemplateColumns: "1fr " + v.gap + " auto",
msGridColumns: "1fr " + v.gap + " auto"
}, {
cursor: 'pointer',
outline: 0,
color: v.textColor,
padding: v.rootPadding,
verticalAlign: 'middle',
alignItems: 'start'
}, getBorderFocusStyles({
variables: t.siteVariables,
borderRadius: '3px'
}), {
':hover': (_hover = {
color: v.textColorHover
}, _hover["& ." + checkboxSlotClassNames.indicator] = Object.assign({}, !p.toggle && Object.assign({}, p.checked && p.checked !== 'mixed' && {
borderColor: v.checkedBackgroundHover,
backgroundImage: checkboxIndicatorUrl(v.checkedIndicatorColor, v.checkedBackgroundHover)
}, !p.checked && {
borderColor: v.borderColorHover
}), p.toggle && !p.disabled && Object.assign({
borderColor: v.borderColorHover,
':before': Object.assign({}, commonToggleBeforeStyles(v), {
borderColor: v.borderColorHover,
borderStyle: v.borderStyle,
borderWidth: v.borderWidth,
margin: v.togglePadding,
background: 'transparent'
})
}, p.checked && {
borderColor: v.checkedBorderColor,
background: v.checkedBackgroundHover,
':before': Object.assign({}, commonToggleBeforeStyles(v), {
margin: v.toggleCheckedPadding,
background: v.checkedIndicatorColor
})
})), _hover)
}, p.checked && {
color: v.checkedTextColor
}, p.disabled && {
cursor: 'default',
pointerEvents: 'none',
color: v.disabledColor
});
},
checkbox: function checkbox(_ref2) {
var p = _ref2.props,
v = _ref2.variables;
return Object.assign({
msGridRowAlign: 'center',
gridColumn: 1,
msGridColumn: 1
}, p.labelPosition === 'start' && {
gridColumn: 3,
msGridColumn: 3
}, {
boxShadow: 'unset',
width: pxToRem(16),
height: pxToRem(16),
borderColor: v.borderColor,
borderStyle: v.borderStyle,
borderRadius: v.borderRadius,
borderWidth: v.borderWidth,
color: v.indicatorColor,
margin: v.margin,
padding: v.padding,
userSelect: 'none',
backgroundImage: checkboxIndicatorUrl(v.indicatorColor, v.background),
backgroundPosition: 'center',
backgroundRepeat: 'no-repeat'
}, p.checked && {
borderColor: v.checkedBorderColor,
backgroundColor: v.checkedBackground,
backgroundImage: checkboxIndicatorUrl(v.checkedIndicatorColor, v.checkedBackground)
}, p.checked === 'mixed' && {
backgroundImage: checkboxIndicatorIndeterminateUrl(v.checkedIndicatorColor, v.checkedBackground)
}, p.disabled && {
backgroundColor: v.disabledBackground,
borderColor: v.disabledBorderColor
}, p.disabled && p.checked && {
color: v.disabledCheckedIndicatorColor,
borderColor: v.disabledBackgroundChecked,
backgroundColor: v.disabledBackgroundChecked,
backgroundImage: checkboxIndicatorUrl(v.disabledCheckedIndicatorColor, v.disabledBackgroundChecked)
}, p.disabled && p.checked === 'mixed' && {
color: v.disabledCheckedIndicatorColor,
borderColor: v.disabledBackgroundChecked,
backgroundColor: v.disabledBackgroundChecked,
backgroundImage: checkboxIndicatorIndeterminateUrl(v.disabledCheckedIndicatorColor, v.disabledBackgroundChecked)
});
},
toggle: function toggle(_ref3) {
var p = _ref3.props,
v = _ref3.variables;
return Object.assign({
msGridRowAlign: 'center',
gridColumn: 1,
msGridColumn: 1
}, p.labelPosition === 'start' && {
gridColumn: 3,
msGridColumn: 3
}, {
boxShadow: 'unset',
boxSizing: 'border-box',
background: v.background,
borderColor: v.borderColor,
borderStyle: v.borderStyle,
borderRadius: v.toggleBorderRadius,
borderWidth: v.borderWidth,
margin: v.toggleMargin,
userSelect: 'none',
width: v.toggleWidth,
height: v.toggleHeight,
':before': Object.assign({}, commonToggleBeforeStyles(v), {
borderColor: p.disabled ? v.disabledToggleIndicatorColor : v.borderColor,
borderStyle: v.borderStyle,
borderWidth: v.borderWidth,
margin: v.togglePadding
})
}, p.checked && {
borderColor: v.checkedBorderColor,
background: v.checkedBackground,
':before': Object.assign({}, commonToggleBeforeStyles(v), {
margin: v.toggleCheckedPadding,
background: v.checkedIndicatorColor
})
}, p.disabled && Object.assign({
background: v.disabledBackground,
borderColor: v.disabledBorderColor
}, p.checked && {
background: v.disabledBackgroundChecked,
borderColor: 'transparent',
':before': Object.assign({}, commonToggleBeforeStyles(v), {
margin: v.toggleCheckedPadding,
background: v.disabledCheckedIndicatorColor
})
}));
},
label: function label(_ref4) {
var p = _ref4.props;
return Object.assign({
display: 'block',
// IE11: should be forced to be block, as inline-block is not supported
userSelect: 'none',
gridColumn: 3,
msGridColumn: 3
}, p.labelPosition === 'start' && {
gridColumn: 1,
msGridColumn: 1
});
}
};
//# sourceMappingURL=checkboxStyles.js.map