"""Spacing design tokens for the smarty_ui component library.

Aligned with Smartbank Figma design system.
"""

from dataclasses import dataclass


@dataclass(frozen=True)
class SpacingTokens:
    """Immutable spacing scale (in dp).

    Use these instead of magic numbers to keep layouts consistent.
    """

    # Base spacing scale
    xs: int = 4
    sm: int = 8
    md: int = 16
    lg: int = 24
    xl: int = 32
    xxl: int = 48

    # Component-specific spacing
    button_padding_h: int = 16
    button_padding_v_large: int = 18
    button_padding_v_small: int = 10
    card_padding: int = 20
    list_item_padding_h: int = 16
    list_item_padding_v: int = 12

    # Border radius tokens (from Figma)
    radius_xs: int = 5
    radius_sm: int = 8  # Small buttons
    radius_md: int = 14  # Large buttons
    radius_lg: int = 18  # Cards
    radius_xl: int = 24  # Large cards / modals
    radius_full: int = 100  # Fully rounded (pills, avatars)

    # Icon sizes
    icon_xs: int = 16
    icon_sm: int = 20
    icon_md: int = 24
    icon_lg: int = 32
    icon_xl: int = 48

    # Card dimensions
    card_width_big: int = 300
    card_height_big: int = 190
    card_width_small: int = 152
    card_height_small: int = 96
