import { CSSObject } from 'styled-components'; import { AccordionType } from './types'; import { FoundationTokenType } from '../../tokens/theme.token'; import { BreakpointType } from '../../breakpoints/breakPoints'; export type AccordionState = 'default' | 'hover' | 'active' | 'disabled' | 'open'; /** * Accordion Tokens following the pattern: [target].CSSProp.[variant].[state] * * Structure: * - target: container | trigger | separator (defines what element the token applies to) * - CSSProp: gap | borderRadius | padding | backgroundColor | border | fontSize | fontWeight | color * - variant: border | noBorder (accordion variant) * - state: default | hover | active | disabled | open (interaction state) * * Pattern examples: * - container.gap.[variant] * - container.borderRadius.[variant] * - trigger.backgroundColor.[variant].[state] * - trigger.border.[variant].[state] * - trigger.padding.[variant] * - text.fontSize (size-independent) * - text.fontWeight (size-independent) * - text.color.[state] */ export type AccordionTokenType = { gap: { [key in AccordionType]: CSSObject['gap']; }; borderRadius: { [key in AccordionType]: CSSObject['borderRadius']; }; trigger: { backgroundColor: { [key in AccordionType]: { [key in AccordionState]: CSSObject['backgroundColor']; }; }; border: { [key in AccordionType]: { [key in AccordionState]: CSSObject['border']; }; }; padding: { [key in AccordionType]: CSSObject['padding']; }; text: { title: { fontSize: CSSObject['fontSize']; fontWeight: CSSObject['fontWeight']; color: { [key in AccordionState]: CSSObject['color']; }; }; subtext: { fontSize: CSSObject['fontSize']; gap: CSSObject['gap']; color: { [key in AccordionState]: CSSObject['color']; }; }; }; slot?: { maxWidth: CSSObject['maxWidth']; }; }; separator: { color: { [key in AccordionType]: CSSObject['color']; }; }; }; export type ResponsiveAccordionTokens = { [key in keyof BreakpointType]: AccordionTokenType; }; export declare const getAccordionToken: (foundationToken: FoundationTokenType) => ResponsiveAccordionTokens;