import { CSSObject } from 'styled-components'; import { AlertStyle, AlertVariant } from './types'; import { FoundationTokenType } from '../../tokens/theme.token'; import { BreakpointType } from '../../breakpoints/breakPoints'; /** * Alert Tokens following the pattern: [target].CSSProp.[variant].[style] * * Structure: * - target: container | button (defines the element the token applies to) * - CSSProp: * - container: padding | borderRadius | background.[variant].[style] | border.[variant] * - button: color per [variant] * - variant: primary | warning | success | purple | neutral | error | orange * - style: subtle | noFill (applies to background only) * * Notes: * - Size-independent properties: padding, borderRadius, background, border, button * - Background uses an additional style dimension; border/button are variant-only */ export type AlertTokenType = { width: CSSObject['width']; maxWidth: CSSObject['maxWidth']; minWidth: CSSObject['minWidth']; gap: CSSObject['gap']; padding: CSSObject['padding']; borderRadius: CSSObject['borderRadius']; background: { [key in AlertVariant]: { [key in AlertStyle]: CSSObject['color']; }; }; border: { [key in AlertVariant]: { [key in AlertStyle]: CSSObject['color']; }; }; text: { heading: { color: { [key in AlertVariant]: CSSObject['color']; }; fontWeight: CSSObject['fontWeight']; fontSize: CSSObject['fontSize']; lineHeight: CSSObject['lineHeight']; }; description: { color: { [key in AlertVariant]: CSSObject['color']; }; fontWeight: CSSObject['fontWeight']; fontSize: CSSObject['fontSize']; lineHeight: CSSObject['lineHeight']; }; }; button: { gap: CSSObject['gap']; primaryAction: { color: { [key in AlertVariant]: CSSObject['color']; }; fontWeight: CSSObject['fontWeight']; fontSize: CSSObject['fontSize']; lineHeight: CSSObject['lineHeight']; }; secondaryAction: { color: { [key in AlertVariant]: CSSObject['color']; }; fontWeight: CSSObject['fontWeight']; fontSize: CSSObject['fontSize']; lineHeight: CSSObject['lineHeight']; }; closeButton: { color: { [key in AlertVariant]: CSSObject['color']; }; fontWeight: CSSObject['fontWeight']; fontSize: CSSObject['fontSize']; lineHeight: CSSObject['lineHeight']; }; }; }; export type ResponsiveAlertTokens = { [key in keyof BreakpointType]: AlertTokenType; }; export declare const getAlertTokens: (foundationToken: FoundationTokenType) => ResponsiveAlertTokens;