import { CSSObject } from 'styled-components'; import { PopoverSize } from './types'; import { FoundationTokenType } from '../../tokens/theme.token'; import { BreakpointType } from '../../breakpoints/breakPoints'; /** * Popover Tokens following the pattern: [target].CSSProp.[size] * * Structure: * - target: container | headerContainer.heading | headerContainer.description | footer * - CSSProp: * - container: background | border | shadow | gap | zIndex | borderRadius | padding.left | padding.right | padding.top | padding.bottom * - headerContainer.heading: color | fontSize | fontWeight | lineHeight * - headerContainer.description: color | fontSize | fontWeight | lineHeight * - footer: gap * - size: small | medium (popover size) * * Notes: * - Size-independent properties: background, border, shadow, zIndex, header/description color * - Size-dependent properties: gap, borderRadius, all padding sides, heading/description fontSize/fontWeight/lineHeight, footer.gap */ export type PopoverTokenType = { background: CSSObject['backgroundColor']; border: CSSObject['border']; shadow: FoundationTokenType['shadows']; gap: { [key in PopoverSize]: CSSObject['gap']; }; zIndex: CSSObject['zIndex']; borderRadius: { [key in PopoverSize]: CSSObject['borderRadius']; }; padding: { left: { [key in PopoverSize]: CSSObject['paddingLeft']; }; right: { [key in PopoverSize]: CSSObject['paddingRight']; }; top: { [key in PopoverSize]: CSSObject['paddingTop']; }; bottom: { [key in PopoverSize]: CSSObject['paddingBottom']; }; }; headerContainer: { heading: { color: CSSObject['color']; fontSize: { [key in PopoverSize]: CSSObject['fontSize']; }; fontWeight: { [key in PopoverSize]: CSSObject['fontWeight']; }; lineHeight: { [key in PopoverSize]: CSSObject['lineHeight']; }; }; description: { color: CSSObject['color']; fontSize: { [key in PopoverSize]: CSSObject['fontSize']; }; fontWeight: { [key in PopoverSize]: CSSObject['fontWeight']; }; lineHeight: { [key in PopoverSize]: CSSObject['lineHeight']; }; }; }; footer: { gap: { [key in PopoverSize]: CSSObject['gap']; }; }; }; export type ResponsivePopoverTokens = { [key in keyof BreakpointType]: PopoverTokenType; }; export declare const getPopoverTokens: (foundationTokens: FoundationTokenType) => ResponsivePopoverTokens;