fix(ui): resolve ColumnScope, Oklab.Lab, and missing layout imports in SettingsComponents.kt

This commit is contained in:
Bruno Deanoz 2026-06-18 17:46:05 +02:00
parent 779796f825
commit 8a527451d7

View file

@ -8,30 +8,44 @@ import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.foundation.layout.FlowRow
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.isImeVisible
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.BasicTextField
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.Check import androidx.compose.material.icons.rounded.Check
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.shadow import androidx.compose.ui.draw.shadow
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.StrokeCap
import androidx.compose.ui.graphics.colorspace.ColorSpaces import androidx.compose.ui.graphics.colorspace.ColorSpaces
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
@ -50,7 +64,7 @@ private fun oklch(l: Float, c: Float, h: Float, alpha: Float = 1.0f): Color {
// Automatically output in high-gamut Display P3 or standard sRGB depending on system support // Automatically output in high-gamut Display P3 or standard sRGB depending on system support
return with(Oklab) { return with(Oklab) {
Lab(l, a, b).toColor(ColorSpaces.DisplayP3).copy(alpha = alpha) Oklab.Lab(l, a, b).toColor(ColorSpaces.DisplayP3).copy(alpha = alpha)
} }
} }
@ -112,18 +126,11 @@ fun SettingsCard(
.border(1.2.dp, glassBorder, RoundedCornerShape(24.dp)) .border(1.2.dp, glassBorder, RoundedCornerShape(24.dp))
.padding(18.dp) .padding(18.dp)
) { ) {
ColumnScope(this).content() // Standard Column provides standard ColumnScope receiver to the child layout content slot
Column(modifier = Modifier.fillMaxWidth()) {
content()
} }
} }
// Scope helper to enable ColumnScope receiver within SettingsCard
class ColumnScope(private val boxScope: BoxScope) : ColumnScopeReceiver {
@Composable
fun content() {}
}
interface ColumnScopeReceiver {
@Composable
fun ColumnScope.content()
} }
/** Elegant modular Settings Row for displaying or editing values */ /** Elegant modular Settings Row for displaying or editing values */