import type { CSSObject } from 'styled-components' import { BreakpointType } from '../../breakpoints/breakPoints' import { SelectV2Size as SingleSelectV2Size, SelectV2Variant as SingleSelectV2Variant, } from '../SelectV2/selectV2.shared.types' import type { SelectV2ItemStates, SelectV2TriggerStates, } from '../SelectV2/selectV2.tokenStates' export type SingleSelectV2ItemStates = SelectV2ItemStates export type SingleSelectV2TriggerStates = SelectV2TriggerStates type StateToken = Record type TriggerStateToken = Record type VariantToken = Record type SizeToken = Record type SubmenuTriggerStateToken = Record<'default' | 'hover' | 'focus', T> export type SingleSelectV2TokensType = { gap: CSSObject['gap'] label: { fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: StateToken } subLabel: { fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: StateToken } hintText: { fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: StateToken } errorMessage: { fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: CSSObject['color'] } required: { color: CSSObject['color'] } trigger: { height: SizeToken> padding: SizeToken< VariantToken<{ top: CSSObject['paddingTop'] right: CSSObject['paddingRight'] bottom: CSSObject['paddingBottom'] left: CSSObject['paddingLeft'] }> > borderRadius: SizeToken> boxShadow: VariantToken backgroundColor: VariantToken< TriggerStateToken > outline: VariantToken> slot: { gap: CSSObject['gap'] width: CSSObject['width'] } placeholder: { color: CSSObject['color'] fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] } selectedValue: { color: CSSObject['color'] fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] } } menu: { content: { backgroundColor: CSSObject['backgroundColor'] border: CSSObject['border'] borderRadius: CSSObject['borderRadius'] boxShadow: CSSObject['boxShadow'] } padding: SizeToken< VariantToken<{ top: CSSObject['paddingTop'] right: CSSObject['paddingRight'] bottom: CSSObject['paddingBottom'] left: CSSObject['paddingLeft'] }> > groupLabel: { margin: CSSObject['margin'] paddingTop: CSSObject['paddingTop'] paddingRight: CSSObject['paddingRight'] paddingBottom: CSSObject['paddingBottom'] paddingLeft: CSSObject['paddingLeft'] fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: StateToken } item: { paddingTop: CSSObject['paddingTop'] paddingRight: CSSObject['paddingRight'] paddingBottom: CSSObject['paddingBottom'] paddingLeft: CSSObject['paddingLeft'] margin: CSSObject['margin'] borderRadius: CSSObject['borderRadius'] gap: CSSObject['gap'] backgroundColor: StateToken groupLabelText: { fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: StateToken } option: { fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: StateToken } description: { fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: StateToken } separator: { color: CSSObject['color'] height: CSSObject['height'] margin: CSSObject['margin'] } } submenu: { trigger: { paddingTop: CSSObject['paddingTop'] paddingRight: CSSObject['paddingRight'] paddingBottom: CSSObject['paddingBottom'] paddingLeft: CSSObject['paddingLeft'] margin: CSSObject['margin'] borderRadius: CSSObject['borderRadius'] backgroundColor: SubmenuTriggerStateToken< CSSObject['backgroundColor'] > } content: { backgroundColor: CSSObject['backgroundColor'] border: CSSObject['border'] borderRadius: CSSObject['borderRadius'] paddingTop: CSSObject['paddingTop'] paddingRight: CSSObject['paddingRight'] paddingBottom: CSSObject['paddingBottom'] paddingLeft: CSSObject['paddingLeft'] boxShadow: CSSObject['boxShadow'] } optionText: { fontSize: CSSObject['fontSize'] fontWeight: CSSObject['fontWeight'] color: CSSObject['color'] } iconColor: CSSObject['color'] } footer: { paddingTop: CSSObject['paddingTop'] paddingRight: CSSObject['paddingRight'] paddingBottom: CSSObject['paddingBottom'] paddingLeft: CSSObject['paddingLeft'] backgroundColor: CSSObject['backgroundColor'] borderTop: CSSObject['borderTop'] } } mobilePanel: { header: { paddingTop: CSSObject['paddingTop'] paddingRight: CSSObject['paddingRight'] paddingBottom: CSSObject['paddingBottom'] paddingLeft: CSSObject['paddingLeft'] borderBottom: CSSObject['borderBottom'] } } } export type ResponsiveSingleSelectV2Tokens = { [key in keyof BreakpointType]: SingleSelectV2TokensType } export type SingleSelectV2MenuItemTokensType = SingleSelectV2TokensType['menu']['item']