import { CSSProperties } from 'react'; import { ButtonV2Size, ButtonV2State, ButtonV2SubType, ButtonV2Type, PaddingDirection } from './buttonV2.types'; import { BreakpointType } from '../../breakpoints/breakPoints'; export type ButtonV2TokensType = Readonly<{ gap: CSSProperties['gap']; slotMaxHeight: { [key in ButtonV2Size]: NonNullable; }; focusRing: { [key in ButtonV2Type]: { [key in ButtonV2SubType]: CSSProperties['boxShadow']; }; }; backgroundColor: { [key in ButtonV2Type]: { [key in ButtonV2SubType]: { [key in ButtonV2State]: CSSProperties['background']; }; }; }; borderRadius: { [key in ButtonV2Size]: { [key in ButtonV2Type]: { [key in ButtonV2SubType]: CSSProperties['borderRadius']; }; }; }; padding: { [key in PaddingDirection]: { [key in ButtonV2Size]: { [key in ButtonV2Type]: { [key in ButtonV2SubType]: CSSProperties['padding']; }; }; }; }; border: { [key in ButtonV2Type]: { [key in ButtonV2SubType]: { [key in ButtonV2State]: CSSProperties['border']; }; }; }; shadow: { [key in ButtonV2Type]: { [key in ButtonV2SubType]: { [key in ButtonV2State]: CSSProperties['boxShadow']; }; }; }; text: { color: { [key in ButtonV2Type]: { [key in ButtonV2SubType]: { [key in ButtonV2State]: CSSProperties['color']; }; }; }; fontSize: { [key in ButtonV2Size]: CSSProperties['fontSize']; }; fontWeight: { [key in ButtonV2Size]: CSSProperties['fontWeight']; }; lineHeight: { [key in ButtonV2Size]: CSSProperties['lineHeight']; }; }; }>; export type ResponsiveButtonV2Tokens = { [key in keyof BreakpointType]: ButtonV2TokensType; };