import { CSSObject } from 'styled-components'; import { ThemeType } from '../../tokens'; import { SwitchSize } from './types'; import { BreakpointType } from '../../breakpoints/breakPoints'; export type SwitchState = 'default' | 'hover' | 'disabled' | 'error'; export type SwitchVariant = 'active' | 'inactive'; /** * Switch Tokens following the design system pattern * * Structure aligned with Checkbox and Radio components: * - switchContainer: Main switch element properties * - content: Text and subtext styling * - slot: Slot element styling * - required: Required indicator styling */ export type SwitchTokensType = { gap: CSSObject['gap']; switchContainer: { height: { [key in SwitchSize]: CSSObject['height']; }; width: { [key in SwitchSize]: CSSObject['width']; }; borderRadius: { [key in SwitchSize]: CSSObject['borderRadius']; }; backgroundColor: { [key in SwitchVariant]: { [key in SwitchState]: CSSObject['backgroundColor']; }; }; thumb: { backgroundColor: CSSObject['backgroundColor']; border: { color: CSSObject['borderColor']; width: CSSObject['borderWidth']; }; borderRadius: { [key in SwitchSize]: CSSObject['borderRadius']; }; size: { [key in SwitchSize]: { width: CSSObject['width']; height: CSSObject['height']; top: CSSObject['top']; left: CSSObject['left']; offset: { active: CSSObject['left']; inactive: CSSObject['left']; }; }; }; outline: CSSObject['outline']; outlineOffset: CSSObject['outlineOffset']; boxShadow: CSSObject['boxShadow']; }; }; content: { label: { color: { [key in SwitchState]: CSSObject['color']; }; fontSize: { [key in SwitchSize]: CSSObject['fontSize']; }; fontWeight: { [key in SwitchSize]: CSSObject['fontWeight']; }; gap: CSSObject['gap']; }; subtext: { color: { [key in SwitchState]: CSSObject['color']; }; fontSize: { [key in SwitchSize]: CSSObject['fontSize']; }; fontWeight: { [key in SwitchSize]: CSSObject['fontWeight']; }; }; gap: CSSObject['gap']; }; required: { color: CSSObject['color']; }; slot: { width: { [key in SwitchSize]: CSSObject['width']; }; height: { [key in SwitchSize]: CSSObject['height']; }; }; }; export type ResponsiveSwitchTokens = { [key in keyof BreakpointType]: SwitchTokensType; }; export declare const getSwitchTokens: (foundationToken: ThemeType) => ResponsiveSwitchTokens; declare const switchTokens: ResponsiveSwitchTokens; export default switchTokens;