export type Icons = 'info' | 'attention' | 'error' | 'success'; type ColorModifier = Icons; type PositionModifier = 'top' | 'sticky-bottom'; type BleedModifier = 'info-full-bleed' | 'attention-full-bleed' | 'error-full-bleed' | 'success-full-bleed'; type ModifierCombination = [ColorModifier, PositionModifier?, BleedModifier?] | [PositionModifier, ColorModifier?, BleedModifier?] | [BleedModifier, ColorModifier?, PositionModifier?] | [ColorModifier, BleedModifier, PositionModifier?] | [PositionModifier, BleedModifier, ColorModifier?] | [BleedModifier, PositionModifier, ColorModifier?]; type AlertModifierConfig = { 'c-alert': ModifierCombination; }; export type AlertModifier = { [P in keyof AlertModifierConfig]: { prefix: P; modifiers: AlertModifierConfig[P]; }; }[keyof AlertModifierConfig]; /** * Represents the possible types for modifier items in an alert configuration. * It can either be an array of `AlertModifier` or a single `ModifierCombination` for shorthand usage. */ export type ModifierItems = AlertModifier[] | ModifierCombination; export {};