TypographyTokens.kt

/*
 * Copyright 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// VERSION: v0_001 (Inspired by androidx.compose.material3.tokens v0_103)

package androidx.tv.material3.tokens

import androidx.compose.ui.text.PlatformTextStyle
import androidx.compose.ui.text.TextStyle

internal object TypographyTokens {
    val BodyLarge =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.BodyLargeFont,
            fontWeight = TypeScaleTokens.BodyLargeWeight,
            fontSize = TypeScaleTokens.BodyLargeSize,
            lineHeight = TypeScaleTokens.BodyLargeLineHeight,
            letterSpacing = TypeScaleTokens.BodyLargeTracking
        )
    val BodyMedium =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.BodyMediumFont,
            fontWeight = TypeScaleTokens.BodyMediumWeight,
            fontSize = TypeScaleTokens.BodyMediumSize,
            lineHeight = TypeScaleTokens.BodyMediumLineHeight,
            letterSpacing = TypeScaleTokens.BodyMediumTracking
        )
    val BodySmall =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.BodySmallFont,
            fontWeight = TypeScaleTokens.BodySmallWeight,
            fontSize = TypeScaleTokens.BodySmallSize,
            lineHeight = TypeScaleTokens.BodySmallLineHeight,
            letterSpacing = TypeScaleTokens.BodySmallTracking
        )
    val DisplayLarge =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.DisplayLargeFont,
            fontWeight = TypeScaleTokens.DisplayLargeWeight,
            fontSize = TypeScaleTokens.DisplayLargeSize,
            lineHeight = TypeScaleTokens.DisplayLargeLineHeight,
            letterSpacing = TypeScaleTokens.DisplayLargeTracking
        )
    val DisplayMedium =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.DisplayMediumFont,
            fontWeight = TypeScaleTokens.DisplayMediumWeight,
            fontSize = TypeScaleTokens.DisplayMediumSize,
            lineHeight = TypeScaleTokens.DisplayMediumLineHeight,
            letterSpacing = TypeScaleTokens.DisplayMediumTracking
        )
    val DisplaySmall =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.DisplaySmallFont,
            fontWeight = TypeScaleTokens.DisplaySmallWeight,
            fontSize = TypeScaleTokens.DisplaySmallSize,
            lineHeight = TypeScaleTokens.DisplaySmallLineHeight,
            letterSpacing = TypeScaleTokens.DisplaySmallTracking
        )
    val HeadlineLarge =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.HeadlineLargeFont,
            fontWeight = TypeScaleTokens.HeadlineLargeWeight,
            fontSize = TypeScaleTokens.HeadlineLargeSize,
            lineHeight = TypeScaleTokens.HeadlineLargeLineHeight,
            letterSpacing = TypeScaleTokens.HeadlineLargeTracking
        )
    val HeadlineMedium =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.HeadlineMediumFont,
            fontWeight = TypeScaleTokens.HeadlineMediumWeight,
            fontSize = TypeScaleTokens.HeadlineMediumSize,
            lineHeight = TypeScaleTokens.HeadlineMediumLineHeight,
            letterSpacing = TypeScaleTokens.HeadlineMediumTracking
        )
    val HeadlineSmall =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.HeadlineSmallFont,
            fontWeight = TypeScaleTokens.HeadlineSmallWeight,
            fontSize = TypeScaleTokens.HeadlineSmallSize,
            lineHeight = TypeScaleTokens.HeadlineSmallLineHeight,
            letterSpacing = TypeScaleTokens.HeadlineSmallTracking
        )
    val LabelLarge =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.LabelLargeFont,
            fontWeight = TypeScaleTokens.LabelLargeWeight,
            fontSize = TypeScaleTokens.LabelLargeSize,
            lineHeight = TypeScaleTokens.LabelLargeLineHeight,
            letterSpacing = TypeScaleTokens.LabelLargeTracking
        )
    val LabelMedium =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.LabelMediumFont,
            fontWeight = TypeScaleTokens.LabelMediumWeight,
            fontSize = TypeScaleTokens.LabelMediumSize,
            lineHeight = TypeScaleTokens.LabelMediumLineHeight,
            letterSpacing = TypeScaleTokens.LabelMediumTracking
        )
    val LabelSmall =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.LabelSmallFont,
            fontWeight = TypeScaleTokens.LabelSmallWeight,
            fontSize = TypeScaleTokens.LabelSmallSize,
            lineHeight = TypeScaleTokens.LabelSmallLineHeight,
            letterSpacing = TypeScaleTokens.LabelSmallTracking
        )
    val TitleLarge =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.TitleLargeFont,
            fontWeight = TypeScaleTokens.TitleLargeWeight,
            fontSize = TypeScaleTokens.TitleLargeSize,
            lineHeight = TypeScaleTokens.TitleLargeLineHeight,
            letterSpacing = TypeScaleTokens.TitleLargeTracking
        )
    val TitleMedium =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.TitleMediumFont,
            fontWeight = TypeScaleTokens.TitleMediumWeight,
            fontSize = TypeScaleTokens.TitleMediumSize,
            lineHeight = TypeScaleTokens.TitleMediumLineHeight,
            letterSpacing = TypeScaleTokens.TitleMediumTracking
        )
    val TitleSmall =
        DefaultTextStyle.copy(
            fontFamily = TypeScaleTokens.TitleSmallFont,
            fontWeight = TypeScaleTokens.TitleSmallWeight,
            fontSize = TypeScaleTokens.TitleSmallSize,
            lineHeight = TypeScaleTokens.TitleSmallLineHeight,
            letterSpacing = TypeScaleTokens.TitleSmallTracking
        )
}

private const val DefaultIncludeFontPadding = true

@Suppress("DEPRECATION")
internal val DefaultTextStyle = TextStyle.Default.copy(
    platformStyle = PlatformTextStyle(includeFontPadding = DefaultIncludeFontPadding)
)