package com.pixelized.desktop.lwa.ui.theme.shapes

import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Shapes
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Stable
import androidx.compose.runtime.remember
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.unit.dp

@Stable
data class LwaShapes(
    val base: Shapes,
    val portrait: Shape,
    val chat: Shape,
    val item: Shape,
    val panel: Shape,
    val settings: Shape,
    val gameMaster: Shape,
)

@Stable
@Composable
fun lwaShapes(
    base: Shapes = Shapes(
        small = RoundedCornerShape(4.dp),
        medium = RoundedCornerShape(8.dp),
        large = RoundedCornerShape(16.dp),
    ),
    portrait: Shape = base.medium,
    chat: Shape = base.medium,
    item: Shape = base.medium,
    panel: Shape = base.medium,
    settings: Shape = base.medium,
    gameMaster: Shape = base.medium,
): LwaShapes = remember {
    LwaShapes(
        base = base,
        portrait = portrait,
        chat = chat,
        item = item,
        panel = panel,
        settings = settings,
        gameMaster = gameMaster,
    )
}
