package cl.homelogic.platform.designsystem.foundations

import androidx.compose.material3.Typography
import androidx.compose.runtime.Composable
import androidx.compose.ui.text.font.FontWeight
import cl.homelogic.platform.designsystem.foundations.fonts.manrope.ManropeFontFamily
import cl.homelogic.platform.designsystem.foundations.fonts.materialsymbols.SymbolsOutlinedFontFamily

@Composable
fun ManropeTypography() =
    Typography().run {
        val fontFamily = ManropeFontFamily()
        copy(
            displayLarge = displayLarge.copy(
                fontFamily = SymbolsOutlinedFontFamily(),
            ),
            displayMedium = displayMedium.copy(
                fontSize = ScaledDimens.at32,
                fontFamily = SymbolsOutlinedFontFamily(),
                fontWeight = FontWeight.Light,
            ),
            displaySmall = displaySmall.copy(
                fontSize = ScaledDimens.at24,
                fontFamily = SymbolsOutlinedFontFamily(),
                fontWeight = FontWeight.Light,
                lineHeight = ScaledDimens.at30,
            ),
            headlineLarge = headlineLarge.copy(
                fontFamily = fontFamily,
                fontSize = ScaledDimens.at26,
                fontWeight = FontWeight.ExtraBold,
                lineHeight = ScaledDimens.at48,
            ),
            headlineMedium = headlineMedium.copy(
                fontFamily = fontFamily,
                fontSize = ScaledDimens.at22,
                fontWeight = FontWeight.Bold,
                lineHeight = ScaledDimens.at28,
            ),
            headlineSmall = headlineSmall.copy(
                fontFamily = fontFamily,
            ),
            titleLarge = titleLarge.copy(
                fontFamily = fontFamily,
            ),
            titleMedium = titleMedium.copy(
                fontFamily = fontFamily,
                fontSize = ScaledDimens.at18,
                fontWeight = FontWeight.ExtraBold,
                lineHeight = ScaledDimens.at22,
            ),
            titleSmall = titleSmall.copy(
                fontFamily = fontFamily,
            ),
            bodyLarge = bodyMedium.copy(
                fontFamily = fontFamily,
                fontWeight = FontWeight.ExtraBold,
            ),
            bodyMedium = bodyMedium.copy(
                fontFamily = fontFamily,
                fontWeight = FontWeight.Medium,
            ),
            bodySmall = bodySmall.copy(
                fontFamily = fontFamily,
            ),
            labelLarge = labelLarge.copy(
                fontFamily = fontFamily,
                fontWeight = FontWeight.ExtraBold,
            ),
            labelMedium = labelMedium.copy(
                fontFamily = fontFamily,
            ),
            labelSmall = labelSmall.copy(
                fontFamily = fontFamily,
            ),
        )
    }
