mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
79 lines
1.5 KiB
TypeScript
79 lines
1.5 KiB
TypeScript
import { selectAnatomy as parts } from '@chakra-ui/anatomy';
|
|
import {
|
|
createMultiStyleConfigHelpers,
|
|
defineStyle,
|
|
} from '@chakra-ui/styled-system';
|
|
import { mode } from '@chakra-ui/theme-tools';
|
|
|
|
import Input from './Input';
|
|
|
|
const { defineMultiStyleConfig, definePartsStyle } =
|
|
createMultiStyleConfigHelpers(parts.keys);
|
|
|
|
const variantOutline = definePartsStyle((props) => {
|
|
return {
|
|
field: {
|
|
...Input.variants?.outline(props).field,
|
|
borderColor: mode('gray.200', 'gray.600')(props),
|
|
_hover: {
|
|
borderColor: mode('gray.300', 'gray.500')(props),
|
|
},
|
|
_focusVisible: {
|
|
borderColor: mode('gray.200', 'gray.600')(props),
|
|
boxShadow: 'none',
|
|
},
|
|
cursor: 'pointer',
|
|
},
|
|
};
|
|
});
|
|
|
|
const iconSpacing = defineStyle({
|
|
paddingInlineEnd: '8',
|
|
});
|
|
|
|
const sizes = {
|
|
lg: {
|
|
...Input.sizes?.lg,
|
|
field: {
|
|
...Input.sizes?.lg.field,
|
|
...iconSpacing,
|
|
},
|
|
},
|
|
md: {
|
|
...Input.sizes?.md,
|
|
field: {
|
|
...Input.sizes?.md.field,
|
|
...iconSpacing,
|
|
},
|
|
},
|
|
sm: {
|
|
...Input.sizes?.sm,
|
|
field: {
|
|
...Input.sizes?.sm.field,
|
|
...iconSpacing,
|
|
},
|
|
},
|
|
xs: {
|
|
...Input.sizes?.xs,
|
|
field: {
|
|
...Input.sizes?.xs.field,
|
|
...iconSpacing,
|
|
fontSize: 'sm',
|
|
lineHeight: '20px',
|
|
},
|
|
},
|
|
};
|
|
|
|
const Select = defineMultiStyleConfig({
|
|
variants: {
|
|
...Input.variants,
|
|
outline: variantOutline,
|
|
},
|
|
sizes,
|
|
defaultProps: {
|
|
size: 'xs',
|
|
},
|
|
});
|
|
|
|
export default Select;
|