@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
117 lines • 4.79 kB
JavaScript
import { CheckboxStateType } from '../../../../../components/checkbox/types/state';
import { BORDERS, RADIUS } from '../../../../../designSystem/kubitWireframe/commons/foundations/borders';
import { SIZES } from '../../../../../designSystem/kubitWireframe/commons/foundations/sizes';
import { SPACINGS } from '../../../../../designSystem/kubitWireframe/commons/foundations/spacings';
import { FONT_WEIGHT } from '../../../../../designSystem/kubitWireframe/commons/foundations/typography';
import { shadowAfterStyles, transformShadow } from '../../../utils/wireframe';
import { TextVariantType } from '../variants';
import { CheckboxVariantType } from './variants';
const commonProps = COLORS => ({
label: {
font_variant: TextVariantType.PARAGRAPH_SMALL_EXTENDED,
color: COLORS.NEUTRAL.color_neutral_font_50,
font_weight: FONT_WEIGHT.font_weight_400,
},
specialLabel: {
font_variant: TextVariantType.PARAGRAPH_SMALL_EXTENDED,
color: COLORS.NEUTRAL.color_neutral_font_50,
font_weight: FONT_WEIGHT.font_weight_500,
},
extraContentWrapper: {
// Checkbox width + checkbox margin_right
padding_left: SPACINGS.spacing_450,
display: 'flex',
flex_direction: 'column',
},
helpContentTextWrapper: {
display: 'flex',
flex_direction: 'column',
},
errorWrapper: {
display: 'flex',
align_items: 'flex-start',
gap: '0.375rem',
},
errorIcon: {
height: SIZES.size_150,
width: SIZES.size_150,
color: COLORS.FEEDBACK.color_feedbackError_font_50,
},
textError: {
font_variant: TextVariantType.PARAGRAPH_CAPTION_EXTENDED,
color: COLORS.FEEDBACK.color_feedbackError_font_50,
font_weight: FONT_WEIGHT.font_weight_400,
},
});
const commonCheckboxProps = COLORS => ({
height: SIZES.size_250,
width: SIZES.size_250,
border_style: 'solid',
margin_right: SPACINGS.spacing_150,
...transformShadow(RADIUS.radius_50),
...shadowAfterStyles(RADIUS.radius_100, COLORS.BRAND.color_brand_bg_50, SPACINGS.spacing_50),
});
const commonCheckedIconProps = {
height: SIZES.size_250,
width: SIZES.size_250,
};
export const getCheckboxStyles = (COLORS) => {
return {
[CheckboxVariantType.DEFAULT]: {
[CheckboxStateType.DEFAULT_UNSELECTED]: {
...commonProps(COLORS),
checkbox: {
...commonCheckboxProps(COLORS),
border_width: BORDERS.border_50,
border_color: COLORS.NEUTRAL.color_neutral_border_100,
background_color: COLORS.NEUTRAL.color_neutral_bg_250,
},
},
[CheckboxStateType.DEFAULT_SELECTED]: {
...commonProps(COLORS),
checkbox: {
...commonCheckboxProps(COLORS),
border_width: BORDERS.border_50,
background_color: COLORS.NEUTRAL.color_neutral_bg_250,
},
checkedIcon: {
...commonCheckedIconProps,
color: COLORS.ACCENT.color_accent_default_icon_100,
},
},
[CheckboxStateType.DISABLED_UNSELECTED]: {
...commonProps(COLORS),
checkbox: {
...commonCheckboxProps(COLORS),
border_width: BORDERS.border_50,
border_color: COLORS.DISABLED.color_accentDisabled_border_50,
background_color: COLORS.DISABLED.color_accentDisabled_bg_150,
},
},
[CheckboxStateType.DISABLED_SELECTED]: {
...commonProps,
checkbox: {
...commonCheckboxProps(COLORS),
border_width: BORDERS.border_50,
border_color: COLORS.DISABLED.color_accentDisabled_border_50,
background_color: COLORS.DISABLED.color_accentDisabled_bg_150,
},
checkedIcon: {
...commonCheckedIconProps,
color: COLORS.DISABLED.color_accentDisabled_icon_50,
},
},
// deprecated - This `error` state will be deprecated in the future
[CheckboxStateType.ERROR]: {
...commonProps(COLORS),
checkbox: {
...commonCheckboxProps(COLORS),
border_width: BORDERS.border_50,
border_color: COLORS.ACCENT.color_accent_default_border_100,
background_color: COLORS.NEUTRAL.color_neutral_bg_250,
},
},
},
};
};
//# sourceMappingURL=styles.js.map