From 359c8f4ac5c6a937785411442926269e1b6e6da1 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sun, 18 Feb 2024 23:45:27 +0800 Subject: [PATCH 001/136] [CheckBox] Add icon animation --- .../com/konyaco/fluent/component/CheckBox.kt | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt index ae7cc9ec..6f1463b9 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt @@ -2,12 +2,20 @@ package com.konyaco.fluent.component import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.tween +import androidx.compose.animation.expandHorizontally +import androidx.compose.animation.fadeOut import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsHoveredAsState import androidx.compose.foundation.interaction.collectIsPressedAsState -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -23,6 +31,7 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Checkmark +import androidx.compose.foundation.layout.fillMaxSize @Composable fun CheckBox( @@ -61,7 +70,7 @@ fun CheckBox( hovered -> colors.controlAlt.tertiary else -> colors.controlAlt.secondary }, - tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing) + tween(FluentDuration.QuickDuration, easing = FluentEasing.FadeInFadeOutEasing) ) Layer( modifier = Modifier.size(20.dp), @@ -84,13 +93,23 @@ fun CheckBox( outsideBorder = !checked, cornerRadius = 4.dp ) { - // TODO: Animation - Box(contentAlignment = Alignment.Center) { - if (checked) Icon( - modifier = Modifier.size(16.dp), - imageVector = Icons.Default.Checkmark, - contentDescription = null - ) + Box(contentAlignment = Alignment.CenterStart) { + androidx.compose.animation.AnimatedVisibility( + visible = checked, + enter = expandHorizontally( + expandFrom = Alignment.Start + ), exit = fadeOut( + tween(durationMillis = FluentDuration.QuickDuration, easing = FluentEasing.FadeInFadeOutEasing) + ) + ) { + Box(Modifier.fillMaxSize(), Alignment.Center) { + Icon( + modifier = Modifier.size(16.dp), + imageVector = Icons.Default.Checkmark, + contentDescription = null + ) + } + } } } From e0c2c9011539f576b48d0dc619e75365368319f1 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 25 Feb 2024 21:19:27 +0800 Subject: [PATCH 002/136] Add a ksp plugin for generating source code string of Gallery sample --- gallery-processor/.gitignore | 0 gallery-processor/build.gradle.kts | 22 +++++ .../gallery/processor/SampleCodeProcessor.kt | 80 +++++++++++++++++++ .../fluent/gallery/processor/Visitor.kt | 22 +++++ ...ols.ksp.processing.SymbolProcessorProvider | 1 + gallery/build.gradle.kts | 15 ++++ .../fluent/gallery/annotation/Sample.kt | 4 + .../fluent/gallery/screen/HomeScreen.kt | 25 +++++- gradle/libs.versions.toml | 1 + settings.gradle.kts | 1 + 10 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 gallery-processor/.gitignore create mode 100644 gallery-processor/build.gradle.kts create mode 100644 gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt create mode 100644 gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/Visitor.kt create mode 100644 gallery-processor/src/jvmMain/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/Sample.kt diff --git a/gallery-processor/.gitignore b/gallery-processor/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/gallery-processor/build.gradle.kts b/gallery-processor/build.gradle.kts new file mode 100644 index 00000000..0e0342fb --- /dev/null +++ b/gallery-processor/build.gradle.kts @@ -0,0 +1,22 @@ +import com.konyaco.fluent.plugin.build.BuildConfig + +plugins { + alias(libs.plugins.kotlin.multiplatform) +} + +group = BuildConfig.group +version = "gallery-processor" + +kotlin { + jvm() + sourceSets { + val jvmMain by getting { + dependencies { + implementation(libs.squareup.kotlinpoet) + implementation("com.google.devtools.ksp:symbol-processing-api:${libs.versions.ksp.get()}") + implementation("com.google.devtools.ksp:symbol-processing:${libs.versions.ksp.get()}") + implementation(kotlin("compiler")) + } + } + } +} \ No newline at end of file diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt new file mode 100644 index 00000000..efed6612 --- /dev/null +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt @@ -0,0 +1,80 @@ +package com.konyaco.fluent.gallery.processor + +import com.google.devtools.ksp.processing.* +import com.google.devtools.ksp.symbol.* +import com.google.devtools.ksp.symbol.impl.kotlin.KSFunctionDeclarationImpl +import com.squareup.kotlinpoet.FileSpec +import com.squareup.kotlinpoet.FunSpec +import com.squareup.kotlinpoet.KModifier +import com.squareup.kotlinpoet.PropertySpec +import java.io.OutputStreamWriter +import java.nio.charset.StandardCharsets + +class SampleCodeProcessor(private val logger: KSPLogger, private val codeGenerator: CodeGenerator) : SymbolProcessor { + + private val annotationPackage = "com.konyaco.fluent.gallery.annotation" + private val sampleAnnotation = "Sample" + + private val sampleCodeFunctions = mutableMapOf>() + + private val visitor = FindFunctionVisitor { + if (it.annotations.any { annotation -> + annotation.shortName.asString() == sampleAnnotation && + annotation.annotationType.resolve().declaration.packageName.asString() == annotationPackage + } + ) { + val list = sampleCodeFunctions[it.packageName.asString()] ?: mutableListOf().apply { + sampleCodeFunctions[it.packageName.asString()] = this + } + list.add(it) + } + } + + override fun process(resolver: Resolver): List { + resolver.getAllFiles().forEach { it.accept(visitor, Unit) } + return emptyList() + } + + override fun finish() { + super.finish() + val fileName = "_SampleCodeString" + sampleCodeFunctions.forEach { (packageName, functions) -> + if (functions.isNotEmpty()) { + val sourceFile = FileSpec.builder(packageName, fileName) + val sourceFileList = mutableListOf() + functions.forEach { func -> + func.containingFile?.let { sourceFileList.add(it) } + if (func is KSFunctionDeclarationImpl) { + val funcName = func.simpleName.asString() + sourceFile.addProperty( + PropertySpec.builder( + "sourceCodeOf${funcName.first().uppercase()}${funcName.substring(1)}", + String::class + ) + .addModifiers(KModifier.INTERNAL) + .getter( + FunSpec.getterBuilder() + .addStatement("return %S", func.ktFunction.text) + .build() + ) + .build() + ) + } + } + val file = codeGenerator.createNewFile( + Dependencies(true, *(sourceFileList).toTypedArray()), + packageName, + fileName + ) + OutputStreamWriter(file, StandardCharsets.UTF_8).use(sourceFile.build()::writeTo) + + } + } + } +} + +class SampleCodeProcessorProvider : SymbolProcessorProvider { + override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { + return SampleCodeProcessor(environment.logger, environment.codeGenerator) + } +} \ No newline at end of file diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/Visitor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/Visitor.kt new file mode 100644 index 00000000..29275714 --- /dev/null +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/Visitor.kt @@ -0,0 +1,22 @@ +package com.konyaco.fluent.gallery.processor + +import com.google.devtools.ksp.getDeclaredFunctions +import com.google.devtools.ksp.symbol.* + +internal class FindFunctionVisitor( + private val onNode:(node: KSFunctionDeclaration) -> Unit +) : KSVisitorVoid() { + + override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { + super.visitClassDeclaration(classDeclaration, data) + classDeclaration.getDeclaredFunctions().forEach { it.accept(this, Unit) } + } + + override fun visitFunctionDeclaration(function: KSFunctionDeclaration, data: Unit) { + onNode(function) + } + + override fun visitFile(file: KSFile, data: Unit) { + file.declarations.forEach { it.accept(this, Unit) } + } +} \ No newline at end of file diff --git a/gallery-processor/src/jvmMain/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/gallery-processor/src/jvmMain/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider new file mode 100644 index 00000000..844d0e42 --- /dev/null +++ b/gallery-processor/src/jvmMain/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -0,0 +1 @@ +com.konyaco.fluent.gallery.processor.SampleCodeProcessorProvider \ No newline at end of file diff --git a/gallery/build.gradle.kts b/gallery/build.gradle.kts index 3a4c8bb1..d25d7e90 100644 --- a/gallery/build.gradle.kts +++ b/gallery/build.gradle.kts @@ -6,6 +6,7 @@ plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.compose) alias(libs.plugins.android.application) + id("com.google.devtools.ksp") version libs.versions.ksp.get() } kotlin { @@ -19,6 +20,7 @@ kotlin { implementation(project(":fluent-icons-extended")) implementation(compose("org.jetbrains.compose.ui:ui-util")) } + kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") } val commonTest by getting { dependencies { @@ -90,4 +92,17 @@ compose.desktop { packageVersion = "1.0.0" } } +} + +dependencies { + val processor = project(":gallery-processor") + add("kspCommonMainMetadata", processor) +} + +// workaround for KSP only in Common Main. +// https://github.com/google/ksp/issues/567 +tasks.withType>().all { + if (name != "kspCommonMainKotlinMetadata") { + dependsOn("kspCommonMainKotlinMetadata") + } } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/Sample.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/Sample.kt new file mode 100644 index 00000000..14868117 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/Sample.kt @@ -0,0 +1,4 @@ +package com.konyaco.fluent.gallery.annotation + +@Target(AnnotationTarget.FUNCTION) +annotation class Sample() diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index 355c3aba..d2f3f811 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -18,16 +18,19 @@ import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.background.Layer import com.konyaco.fluent.component.* import com.konyaco.fluent.gallery.LocalStore +import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.* - @Composable fun HomeScreen() { var displayDialog by remember { mutableStateOf(false) } val density = LocalDensity.current var scale by remember(density) { mutableStateOf(density.density) } val store = LocalStore.current + var showSourceCode by remember { + mutableStateOf(false) + } Layer( modifier = Modifier.padding(top = 16.dp).fillMaxSize() @@ -179,8 +182,27 @@ fun HomeScreen() { } } ) + Button( + onClick = { + showSourceCode = true + } + ) { + Text("Show source code of Buttons") + } } + Dialog( + visible = showSourceCode, + title = "Source Code of Buttons", + cancelButtonText = "Cancel", + confirmButtonText = "Confirm", + onConfirm = { showSourceCode = false }, + onCancel = { showSourceCode = false }, + content = { + Text(text = sourceCodeOfButtons, modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState())) + } + ) + Dialog( title = "This is an example dialog", visible = displayDialog, @@ -323,6 +345,7 @@ private fun Controls() { RadioButton(selectedRadio == 1, onClick = { selectedRadio = 1 }, label = "With Label") } +@Sample @Composable private fun Buttons() { var text by remember { mutableStateOf("Hello World") } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 84599c0a..c2f37dae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,6 @@ [versions] kotlin = "1.9.0" +ksp = "1.9.0-1.0.13" compose = "1.5.0" androidGradlePlugin = "7.4.2" androidBuildTools = "27.2.0-alpha16" diff --git a/settings.gradle.kts b/settings.gradle.kts index ad93f0b5..f8ded0b9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,3 +13,4 @@ includeBuild("build-plugin") include("fluent", "fluent-icons-core", "fluent-icons-extended") include("fluent-icons-generator") include("gallery") +include("gallery-processor") From 2326f374e1b81958f485462d3c51b22a08838e6d Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 25 Feb 2024 21:22:55 +0800 Subject: [PATCH 003/136] Update the version string of gallery-processor --- gallery-processor/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gallery-processor/build.gradle.kts b/gallery-processor/build.gradle.kts index 0e0342fb..8212d3de 100644 --- a/gallery-processor/build.gradle.kts +++ b/gallery-processor/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = BuildConfig.group -version = "gallery-processor" +version = BuildConfig.libraryVersion kotlin { jvm() From 3bed4d810a7c293f3cbd31795c341e96b0407172 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Tue, 27 Feb 2024 00:32:14 +0800 Subject: [PATCH 004/136] Add `FluentCircleShape` to resolve some workarounds. --- TODO.md | 2 +- .../com/konyaco/fluent/background/Layer.kt | 45 +++- .../com/konyaco/fluent/component/Button.kt | 18 +- .../com/konyaco/fluent/component/CheckBox.kt | 9 +- .../com/konyaco/fluent/component/Dialog.kt | 22 +- .../com/konyaco/fluent/component/Dropdown.kt | 25 ++- .../konyaco/fluent/component/MenuFlyout.kt | 16 +- .../konyaco/fluent/component/RadioButton.kt | 14 +- .../com/konyaco/fluent/component/SideNav.kt | 42 +++- .../konyaco/fluent/shape/FluentCornerSize.kt | 123 +++++++++++ .../com/konyaco/fluent/shape/FluentShape.kt | 207 ++++++++++++++++++ .../fluent/gallery/screen/HomeScreen.kt | 58 ++++- 12 files changed, 527 insertions(+), 54 deletions(-) create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentCornerSize.kt create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentShape.kt diff --git a/TODO.md b/TODO.md index 5dfe09ac..c19814ca 100644 --- a/TODO.md +++ b/TODO.md @@ -19,7 +19,7 @@ - [ ] Improve performance and smoothness. - Layer - - [ ] Eliminate workarounds like `circular`, `cornerRadius` etc. + - [x] Eliminate workarounds like `circular`, `cornerRadius` etc. ## Compound Components diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index efd7d39d..5bb434e0 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -4,7 +4,6 @@ import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider @@ -25,31 +24,50 @@ import androidx.compose.ui.unit.offset import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.ProvideTextStyle +import com.konyaco.fluent.shape.FluentCircleShape +import com.konyaco.fluent.shape.FluentDpCornerSize +import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlin.math.ceil import kotlin.math.floor @Composable fun Layer( modifier: Modifier = Modifier, - shape: Shape = RoundedCornerShape(4.dp), + shape: Shape = FluentRoundedCornerShape(4.dp), color: Color = FluentTheme.colors.background.layer.default, contentColor: Color = FluentTheme.colors.text.text.primary, border: BorderStroke? = BorderStroke(1.dp, FluentTheme.colors.stroke.card.default), outsideBorder: Boolean = false, - cornerRadius: Dp = 4.dp, elevation: Dp = 0.dp, - circular: Boolean = false, // If layer is circular, use this to remove 1px gap content: @Composable () -> Unit ) { ProvideTextStyle(FluentTheme.typography.body.copy(color = contentColor)) { CompositionLocalProvider(LocalContentColor provides contentColor) { val innerShape = remember(shape, outsideBorder) { - if (shape is RoundedCornerShape && shape != CircleShape && outsideBorder) - RoundedCornerShape((cornerRadius - 1.dp).coerceIn(0.dp, Dp.Infinity)) - else shape + if (shape is FluentRoundedCornerShape && shape != FluentCircleShape && outsideBorder) { + if (shape.fluentTopStart is FluentDpCornerSize) { + RoundedCornerShape( + topStart = (shape.fluentTopStart.size - 1.dp).coerceIn(0.dp, Dp.Infinity), + topEnd = ((shape.fluentTopEnd as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity), + bottomStart = ((shape.fluentBottomStart as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity), + bottomEnd = ((shape.fluentBottomEnd as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity) + ) + } else { + shape + } + } else { + shape + } } Box( - modifier.layer(elevation, shape, border, outsideBorder, circular, color, innerShape), // TODO: A better way to set content corner + modifier.layer( + elevation, + shape, + border, + outsideBorder, + color, + innerShape + ), // TODO: A better way to set content corner propagateMinConstraints = true ) { content() @@ -58,9 +76,17 @@ fun Layer( } } -private fun Modifier.layer(elevation: Dp, shape: Shape, border: BorderStroke?, outsideBorder: Boolean, circular: Boolean, color: Color, innerShape: Shape) = this.shadow(elevation, shape, clip = false) +private fun Modifier.layer( + elevation: Dp, + shape: Shape, + border: BorderStroke?, + outsideBorder: Boolean, + color: Color, + innerShape: Shape +) = this.shadow(elevation, shape, clip = false) .then(if (border != null) Modifier.border(border, shape) else Modifier) .layout { measurable, constraints -> + val circular = shape == FluentCircleShape // TODO: A better way to implement outside border val paddingValue = when { outsideBorder && circular -> calcCircularPadding(this) @@ -91,7 +117,6 @@ private fun calcPadding(density: Density): Dp { // (1.dp.toPx() + 1).toDp() ceil(1.dp.toPx()).toDp() } - else -> 1.dp } } diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 44267eeb..2800b3ba 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -7,9 +7,15 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsHoveredAsState import androidx.compose.foundation.interaction.collectIsPressedAsState -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.runtime.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush @@ -20,6 +26,7 @@ import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer +import com.konyaco.fluent.shape.FluentRoundedCornerShape @Immutable data class ButtonColors( @@ -117,12 +124,11 @@ private fun Button( ) } }, - shape = RoundedCornerShape(4.dp), + shape = FluentRoundedCornerShape(4.dp), border = BorderStroke(1.dp, buttonColor.borderBrush), color = fillColor, contentColor = contentColor, - outsideBorder = !accentButton, - cornerRadius = 4.dp + outsideBorder = !accentButton ) { Row( Modifier diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt index 6f1463b9..cc8743cc 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt @@ -13,10 +13,10 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember @@ -31,7 +31,7 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Checkmark -import androidx.compose.foundation.layout.fillMaxSize +import com.konyaco.fluent.shape.FluentRoundedCornerShape @Composable fun CheckBox( @@ -74,7 +74,7 @@ fun CheckBox( ) Layer( modifier = Modifier.size(20.dp), - shape = RoundedCornerShape(4.dp), + shape = FluentRoundedCornerShape(4.dp), border = BorderStroke( 1.dp, if (checked) when { !enabled -> colors.fillAccent.disabled @@ -90,8 +90,7 @@ fun CheckBox( pressed -> colors.text.onAccent.secondary else -> colors.text.onAccent.primary }, - outsideBorder = !checked, - cornerRadius = 4.dp + outsideBorder = !checked ) { Box(contentAlignment = Alignment.CenterStart) { androidx.compose.animation.AnimatedVisibility( diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt index dc4711cc..163be106 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt @@ -1,11 +1,25 @@ package com.konyaco.fluent.component -import androidx.compose.animation.* +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.animation.core.MutableTransitionState import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.scaleIn +import androidx.compose.animation.scaleOut import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider @@ -26,6 +40,7 @@ import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica +import com.konyaco.fluent.shape.FluentRoundedCornerShape internal expect val DialogPopupPositionProvider : PopupPositionProvider @@ -69,9 +84,8 @@ fun Dialog( Mica(Modifier.wrapContentSize().clip(RoundedCornerShape(8.dp))) { Layer( Modifier.wrapContentSize().widthIn(200.dp, 600.dp), - shape = RoundedCornerShape(8.dp), + shape = FluentRoundedCornerShape(8.dp), border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.default), - cornerRadius = 8.dp, outsideBorder = true, contentColor = FluentTheme.colors.text.text.primary, ) { diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt index 89f6dbc0..b54b8098 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt @@ -6,7 +6,16 @@ import androidx.compose.animation.core.tween import androidx.compose.animation.expandVertically import androidx.compose.animation.fadeOut import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll @@ -19,7 +28,13 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.TransformOrigin import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.* +import androidx.compose.ui.unit.Density +import androidx.compose.ui.unit.DpOffset +import androidx.compose.ui.unit.IntOffset +import androidx.compose.ui.unit.IntRect +import androidx.compose.ui.unit.IntSize +import androidx.compose.ui.unit.LayoutDirection +import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Popup import androidx.compose.ui.window.PopupPositionProvider import com.konyaco.fluent.FluentTheme @@ -27,6 +42,7 @@ import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica +import com.konyaco.fluent.shape.FluentRoundedCornerShape @Composable fun DropdownMenu( @@ -103,10 +119,9 @@ internal fun DropdownMenuContent( Mica(Modifier.shadow(8.dp, RoundedCornerShape(8.dp)).clip(RoundedCornerShape(8.dp))) { // TODO: Dropdown should use Acrylic material. Layer( - shape = RoundedCornerShape(8.dp), + shape = FluentRoundedCornerShape(8.dp), border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.flyout), - outsideBorder = true, - cornerRadius = 8.dp + outsideBorder = true ) { Column( modifier = modifier diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt index 756c8c30..8846659f 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt @@ -27,7 +27,15 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.Stable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Size @@ -50,6 +58,7 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronRight +import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlinx.coroutines.delay @Composable @@ -172,12 +181,11 @@ fun MenuFlyoutScope.MenuFlyoutItem( minWidth = 108.dp, minHeight = 28.dp ).fillMaxWidth(), - shape = RoundedCornerShape(4.dp), + shape = FluentRoundedCornerShape(4.dp), border = BorderStroke(1.dp, menuColor.borderBrush), color = fillColor, contentColor = contentColor, - outsideBorder = true, - cornerRadius = 4.dp + outsideBorder = true ) { Row( modifier = Modifier diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt index 78468022..46ea4b53 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt @@ -8,7 +8,13 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsHoveredAsState import androidx.compose.foundation.interaction.collectIsPressedAsState -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -20,6 +26,7 @@ import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer +import com.konyaco.fluent.shape.FluentCircleShape @Composable fun RadioButton( @@ -56,7 +63,7 @@ fun RadioButton( ) Layer( modifier = Modifier.size(20.dp), - shape = CircleShape, + shape = FluentCircleShape, color = fillColor, outsideBorder = true, border = BorderStroke( @@ -68,8 +75,7 @@ fun RadioButton( !enabled || pressed -> FluentTheme.colors.stroke.controlStrong.disabled else -> FluentTheme.colors.stroke.controlStrong.default } - ), - circular = true + ) ) { Box(contentAlignment = Alignment.Center) { // Bullet, Only displays when selected, or is pressed diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt index 512063ab..41513c3a 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt @@ -2,7 +2,13 @@ package com.konyaco.fluent.component import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateColorAsState -import androidx.compose.animation.core.* +import androidx.compose.animation.core.MutableTransitionState +import androidx.compose.animation.core.animateDp +import androidx.compose.animation.core.animateDpAsState +import androidx.compose.animation.core.animateFloat +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween +import androidx.compose.animation.core.updateTransition import androidx.compose.animation.expandVertically import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut @@ -12,18 +18,40 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsHoveredAsState import androidx.compose.foundation.interaction.collectIsPressedAsState -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.compositionLocalOf +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.graphicsLayer -import androidx.compose.ui.layout.* +import androidx.compose.ui.layout.layout +import androidx.compose.ui.layout.onGloballyPositioned +import androidx.compose.ui.layout.positionInRoot import androidx.compose.ui.unit.Constraints import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -36,6 +64,7 @@ import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronDown import com.konyaco.fluent.icons.regular.Navigation import com.konyaco.fluent.icons.regular.Search +import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlin.math.roundToInt @@ -187,13 +216,12 @@ fun SideNavItem( val navigationLevelPadding = 28.dp * LocalNavigationLevel.current Layer( modifier = Modifier.fillMaxWidth().height(36.dp), - shape = RoundedCornerShape(4.dp), + shape = FluentRoundedCornerShape(4.dp), color = animateColorAsState( color, tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing) ).value, contentColor = FluentTheme.colors.text.text.primary, outsideBorder = false, - cornerRadius = 4.dp, border = null ) { Box( diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentCornerSize.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentCornerSize.kt new file mode 100644 index 00000000..57a55d4b --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentCornerSize.kt @@ -0,0 +1,123 @@ +/* + * Note: This is an modified version of the original source code from the Android Open Source Project, in order to solve several bugs. + * These code should be synchronized with the original source code. + * + * Copyright 2020 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. + */ +package com.konyaco.fluent.shape + +import androidx.compose.foundation.shape.CornerSize + +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.Stable +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.platform.InspectableValue +import androidx.compose.ui.unit.Density +import androidx.compose.ui.unit.Dp + +/** + * Defines size of a corner in pixels. For example for rounded shape it can be a corner radius. + */ +@Immutable +interface FluentCornerSize : CornerSize { + /** + * Converts the [CornerSize] to pixels. + * + * @param shapeSize the size of the shape + * @param density the current density of the screen. + * + * @return resolved size of the corner in pixels + */ + override fun toPx(shapeSize: Size, density: Density): Float +} + +/** + * Creates [CornerSize] with provided size. + * @param size the corner size defined in [Dp]. + */ +@Stable +fun FluentCornerSize(size: Dp): FluentCornerSize = FluentDpCornerSize(size) + +data class FluentDpCornerSize(val size: Dp) : FluentCornerSize, InspectableValue { + override fun toPx(shapeSize: Size, density: Density) = + with(density) { size.toPx() } + + override fun toString(): String = "CornerSize(size = ${size.value}.dp)" + + override val valueOverride: Dp + get() = size +} + +/** + * Creates [CornerSize] with provided size. + * @param size the corner size defined in pixels. + */ +@Stable +fun FluentCornerSize(size: Float): FluentCornerSize = FluentPxCornerSize(size) + +data class FluentPxCornerSize(val size: Float) : FluentCornerSize, InspectableValue { + override fun toPx(shapeSize: Size, density: Density) = size + + override fun toString(): String = "CornerSize(size = $size.px)" + + override val valueOverride: String + get() = "${size}px" +} + +/** + * Creates [CornerSize] with provided size. + * @param percent the corner size defined in percents of the shape's smaller side. + * Can't be negative or larger then 100 percents. + */ +@Stable +fun FluentCornerSize(/*@IntRange(from = 0, to = 100)*/ percent: Int): FluentCornerSize = + FluentPercentCornerSize(percent.toFloat()) + +/** + * Creates [CornerSize] with provided size. + * @param percent the corner size defined in float percents of the shape's smaller side. + * Can't be negative or larger then 100 percents. + */ +data class FluentPercentCornerSize( + /*@FloatRange(from = 0.0, to = 100.0)*/ + val percent: Float +) : FluentCornerSize, InspectableValue { + init { + if (percent < 0 || percent > 100) { + throw IllegalArgumentException("The percent should be in the range of [0, 100]") + } + } + + override fun toPx(shapeSize: Size, density: Density) = + shapeSize.minDimension * (percent / 100f) + + override fun toString(): String = "CornerSize(size = $percent%)" + + override val valueOverride: String + get() = "$percent%" +} + +/** + * [CornerSize] always equals to zero. + */ +@Stable +val FluentZeroCornerSize: FluentCornerSize = object : FluentCornerSize, InspectableValue { + override fun toPx(shapeSize: Size, density: Density) = 0.0f + + override fun toString(): String = "ZeroCornerSize" + + override val valueOverride: String + get() = "ZeroCornerSize" +} diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentShape.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentShape.kt new file mode 100644 index 00000000..2f0b1374 --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentShape.kt @@ -0,0 +1,207 @@ +/* + * Note: This is an modified version of the original source code from the Android Open Source Project, in order to solve several bugs. + * These code should be synchronized with the original source code. + * + * Copyright 2020 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. + */ +package com.konyaco.fluent.shape + +import androidx.compose.foundation.shape.AbsoluteRoundedCornerShape +import androidx.compose.foundation.shape.CornerBasedShape +import androidx.compose.foundation.shape.CornerSize +import androidx.compose.ui.geometry.CornerRadius +import androidx.compose.ui.geometry.RoundRect +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.geometry.toRect +import androidx.compose.ui.graphics.Outline +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.LayoutDirection +import androidx.compose.ui.unit.dp + +/** + * A shape describing the rectangle with rounded corners. + * + * This shape will automatically mirror the corner sizes in [LayoutDirection.Rtl], use + * [AbsoluteRoundedCornerShape] for the layout direction unaware version of this shape. + * + * @param topStart a size of the top start corner + * @param topEnd a size of the top end corner + * @param bottomEnd a size of the bottom end corner + * @param bottomStart a size of the bottom start corner + */ +class FluentRoundedCornerShape( + topStart: FluentCornerSize, + topEnd: FluentCornerSize, + bottomEnd: FluentCornerSize, + bottomStart: FluentCornerSize +) : CornerBasedShape( + topStart = topStart, + topEnd = topEnd, + bottomEnd = bottomEnd, + bottomStart = bottomStart +) { + val fluentTopStart = topStart + val fluentTopEnd = topEnd + val fluentBottomEnd = bottomEnd + val fluentBottomStart = bottomStart + + override fun createOutline( + size: Size, + topStart: Float, + topEnd: Float, + bottomEnd: Float, + bottomStart: Float, + layoutDirection: LayoutDirection + ) = if (topStart + topEnd + bottomEnd + bottomStart == 0.0f) { + Outline.Rectangle(size.toRect()) + } else { + Outline.Rounded( + RoundRect( + rect = size.toRect(), + topLeft = CornerRadius(if (layoutDirection == LayoutDirection.Ltr) topStart else topEnd), + topRight = CornerRadius(if (layoutDirection == LayoutDirection.Ltr) topEnd else topStart), + bottomRight = CornerRadius(if (layoutDirection == LayoutDirection.Ltr) bottomEnd else bottomStart), + bottomLeft = CornerRadius(if (layoutDirection == LayoutDirection.Ltr) bottomStart else bottomEnd) + ) + ) + } + + override fun copy( + topStart: CornerSize, + topEnd: CornerSize, + bottomEnd: CornerSize, + bottomStart: CornerSize + ): CornerBasedShape = FluentRoundedCornerShape( + topStart = topStart as FluentCornerSize, + topEnd = topEnd as FluentCornerSize, + bottomEnd = bottomEnd as FluentCornerSize, + bottomStart = bottomStart as FluentCornerSize + ) + + override fun toString(): String { + return "FluentRoundedCornerShape(topStart = $topStart, topEnd = $topEnd, bottomEnd = " + + "$bottomEnd, bottomStart = $bottomStart)" + } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is FluentRoundedCornerShape) return false + + if (topStart != other.topStart) return false + if (topEnd != other.topEnd) return false + if (bottomEnd != other.bottomEnd) return false + if (bottomStart != other.bottomStart) return false + + return true + } + + override fun hashCode(): Int { + var result = topStart.hashCode() + result = 31 * result + topEnd.hashCode() + result = 31 * result + bottomEnd.hashCode() + result = 31 * result + bottomStart.hashCode() + return result + } +} + +/** + * Circular [Shape] with all the corners sized as the 50 percent of the shape size. + */ +val FluentCircleShape = FluentRoundedCornerShape(50) + +/** + * Creates [RoundedCornerShape] with the same size applied for all four corners. + * @param corner [FluentCornerSize] to apply. + */ +fun FluentRoundedCornerShape(corner: FluentCornerSize) = + FluentRoundedCornerShape(corner, corner, corner, corner) + +/** + * Creates [RoundedCornerShape] with the same size applied for all four corners. + * @param size Size in [Dp] to apply. + */ +fun FluentRoundedCornerShape(size: Dp) = FluentRoundedCornerShape(FluentCornerSize(size)) + +/** + * Creates [RoundedCornerShape] with the same size applied for all four corners. + * @param size Size in pixels to apply. + */ +fun FluentRoundedCornerShape(size: Float) = FluentRoundedCornerShape(FluentCornerSize(size)) + +/** + * Creates [RoundedCornerShape] with the same size applied for all four corners. + * @param percent Size in percents to apply. + */ +fun FluentRoundedCornerShape(percent: Int) = + FluentRoundedCornerShape(FluentCornerSize(percent)) + +/** + * Creates [RoundedCornerShape] with sizes defined in [Dp]. + */ +fun FluentRoundedCornerShape( + topStart: Dp = 0.dp, + topEnd: Dp = 0.dp, + bottomEnd: Dp = 0.dp, + bottomStart: Dp = 0.dp +) = FluentRoundedCornerShape( + topStart = FluentCornerSize(topStart), + topEnd = FluentCornerSize(topEnd), + bottomEnd = FluentCornerSize(bottomEnd), + bottomStart = FluentCornerSize(bottomStart) +) + +/** + * Creates [RoundedCornerShape] with sizes defined in pixels. + */ +fun FluentRoundedCornerShape( + topStart: Float = 0.0f, + topEnd: Float = 0.0f, + bottomEnd: Float = 0.0f, + bottomStart: Float = 0.0f +) = FluentRoundedCornerShape( + topStart = FluentCornerSize(topStart), + topEnd = FluentCornerSize(topEnd), + bottomEnd = FluentCornerSize(bottomEnd), + bottomStart = FluentCornerSize(bottomStart) +) + +/** + * Creates [RoundedCornerShape] with sizes defined in percents of the shape's smaller side. + * + * @param topStartPercent The top start corner radius as a percentage of the smaller side, with a + * range of 0 - 100. + * @param topEndPercent The top end corner radius as a percentage of the smaller side, with a + * range of 0 - 100. + * @param bottomEndPercent The bottom end corner radius as a percentage of the smaller side, + * with a range of 0 - 100. + * @param bottomStartPercent The bottom start corner radius as a percentage of the smaller side, + * with a range of 0 - 100. + */ +fun FluentRoundedCornerShape( + /*@IntRange(from = 0, to = 100)*/ + topStartPercent: Int = 0, + /*@IntRange(from = 0, to = 100)*/ + topEndPercent: Int = 0, + /*@IntRange(from = 0, to = 100)*/ + bottomEndPercent: Int = 0, + /*@IntRange(from = 0, to = 100)*/ + bottomStartPercent: Int = 0 +) = FluentRoundedCornerShape( + topStart = FluentCornerSize(topStartPercent), + topEnd = FluentCornerSize(topEndPercent), + bottomEnd = FluentCornerSize(bottomEndPercent), + bottomStart = FluentCornerSize(bottomStartPercent) +) \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index 355c3aba..c300454a 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -1,11 +1,24 @@ package com.konyaco.fluent.gallery.screen import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha @@ -16,10 +29,37 @@ import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.background.Layer -import com.konyaco.fluent.component.* +import com.konyaco.fluent.component.AccentButton +import com.konyaco.fluent.component.Button +import com.konyaco.fluent.component.CheckBox +import com.konyaco.fluent.component.Dialog +import com.konyaco.fluent.component.DropdownMenu +import com.konyaco.fluent.component.DropdownMenuItem +import com.konyaco.fluent.component.FlyoutContainer +import com.konyaco.fluent.component.FlyoutPlacement +import com.konyaco.fluent.component.Icon +import com.konyaco.fluent.component.MenuFlyoutContainer +import com.konyaco.fluent.component.MenuFlyoutItem +import com.konyaco.fluent.component.MenuFlyoutSeparator +import com.konyaco.fluent.component.ProgressBar +import com.konyaco.fluent.component.ProgressRing +import com.konyaco.fluent.component.ProgressRingSize +import com.konyaco.fluent.component.RadioButton +import com.konyaco.fluent.component.Slider +import com.konyaco.fluent.component.SubtleButton +import com.konyaco.fluent.component.Switcher +import com.konyaco.fluent.component.Text +import com.konyaco.fluent.component.TextField import com.konyaco.fluent.gallery.LocalStore import com.konyaco.fluent.icons.Icons -import com.konyaco.fluent.icons.regular.* +import com.konyaco.fluent.icons.regular.Add +import com.konyaco.fluent.icons.regular.ArrowLeft +import com.konyaco.fluent.icons.regular.Checkmark +import com.konyaco.fluent.icons.regular.ClipboardMore +import com.konyaco.fluent.icons.regular.Delete +import com.konyaco.fluent.icons.regular.Dismiss +import com.konyaco.fluent.icons.regular.List +import com.konyaco.fluent.icons.regular.Navigation @Composable @@ -32,8 +72,12 @@ fun HomeScreen() { Layer( modifier = Modifier.padding(top = 16.dp).fillMaxSize() .verticalScroll(rememberScrollState()), - shape = RoundedCornerShape(8.dp), - cornerRadius = 8.dp, + shape = RoundedCornerShape( + topStart = 8.dp, + topEnd = 0.dp, + bottomStart = 0.dp, + bottomEnd = 0.dp + ), outsideBorder = true ) { Column(Modifier.padding(16.dp), Arrangement.spacedBy(8.dp)) { @@ -246,7 +290,6 @@ private fun Content() { Layer( modifier = Modifier.size(32.dp), shape = RoundedCornerShape(4.dp), - cornerRadius = 4.dp, color = FluentTheme.colors.fillAccent.default, border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), content = {}, @@ -255,7 +298,6 @@ private fun Content() { Layer( modifier = Modifier.size(32.dp), shape = RoundedCornerShape(4.dp), - cornerRadius = 4.dp, color = FluentTheme.colors.fillAccent.default, border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), content = {}, From 23acedb8ded60db126d627470c4ac32117c66c80 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Tue, 27 Feb 2024 01:49:51 +0800 Subject: [PATCH 005/136] [Card] Add `shape` parameter. --- .../kotlin/com/konyaco/fluent/surface/Card.kt | 11 +++++++++-- .../kotlin/com/konyaco/fluent/gallery/Main.kt | 4 +++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt index f3836df0..c47ff6a6 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt @@ -2,9 +2,16 @@ package com.konyaco.fluent.surface import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.unit.dp import com.konyaco.fluent.background.Layer +import com.konyaco.fluent.shape.FluentRoundedCornerShape @Composable -fun Card(modifier: Modifier, content: @Composable () -> Unit) { - Layer(modifier, outsideBorder = true, content = content) +fun Card( + modifier: Modifier, + shape: Shape = FluentRoundedCornerShape(8.dp), + content: @Composable () -> Unit +) { + Layer(modifier = modifier, shape = shape, outsideBorder = true, content = content) } \ No newline at end of file diff --git a/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt b/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt index 5891f7a6..617c72c7 100644 --- a/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt +++ b/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt @@ -1,6 +1,8 @@ package com.konyaco.fluent.gallery import androidx.compose.ui.Alignment +import androidx.compose.ui.unit.DpSize +import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Window import androidx.compose.ui.window.WindowPosition import androidx.compose.ui.window.application @@ -12,7 +14,7 @@ import org.jetbrains.skiko.hostOs fun main() = application { Window( onCloseRequest = ::exitApplication, - state = rememberWindowState(position = WindowPosition(Alignment.Center)), + state = rememberWindowState(position = WindowPosition(Alignment.Center), size = DpSize(1280.dp, 720.dp)), title = "Compose Fluent Design Gallery" ) { GalleryTheme(displayMicaLayer = !hostOs.isWindows) { From 0a1ace20f8f4ae57ed09121f9a9fe5ce160302b4 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Tue, 27 Feb 2024 01:51:32 +0800 Subject: [PATCH 006/136] [Gallery] Add ButtonScreen. Optimize animations. --- .../kotlin/com/konyaco/fluent/gallery/App.kt | 50 ++- .../gallery/component/GallerySection.kt | 122 ++++++++ .../fluent/gallery/component/SourceCode.kt | 18 ++ .../fluent/gallery/screen/HomeScreen.kt | 294 +++++++++--------- .../gallery/screen/basicinput/ButtonScreen.kt | 68 ++++ 5 files changed, 385 insertions(+), 167 deletions(-) create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/SourceCode.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt index e4ace65e..12dcf1c7 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt @@ -13,13 +13,16 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.component.* import com.konyaco.fluent.gallery.screen.HomeScreen import com.konyaco.fluent.gallery.screen.TodoScreen +import com.konyaco.fluent.gallery.screen.basicinput.BasicInputIndexScreen +import com.konyaco.fluent.gallery.screen.basicinput.ButtonScreen import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.* +import com.konyaco.fluent.shape.FluentRoundedCornerShape +import com.konyaco.fluent.surface.Card @OptIn(ExperimentalAnimationApi::class) @Composable fun App() { - Row(Modifier.fillMaxSize()) { var expanded by remember { mutableStateOf(true) } val (selectedItem, setSelectedItem) = remember { @@ -53,7 +56,6 @@ fun App() { } ) { navs.forEach { navItem -> - NavigationItem(selectedItem, setSelectedItem, navItem) if (navItem.label == "All samples") { NavigationItemSeparator(modifier = Modifier.padding(vertical = 2.dp)) @@ -61,17 +63,37 @@ fun App() { } } - AnimatedContent(selectedItemWithContent, Modifier.fillMaxHeight().weight(1f), transitionSpec = { - fadeIn(tween(FluentDuration.ShortDuration, easing = FluentEasing.FastInvokeEasing)) + - slideInVertically( - tween( - FluentDuration.ShortDuration, - easing = FluentEasing.FastInvokeEasing - ) - ) { it / 6 } with - fadeOut(tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing)) - }) { - it.content?.invoke() + Card( + modifier = Modifier.fillMaxHeight().weight(1f), + shape = FluentRoundedCornerShape( + topStart = 8.dp, + topEnd = 0.dp, + bottomStart = 0.dp, + bottomEnd = 0.dp + ) + ) { + AnimatedContent(selectedItemWithContent, Modifier.fillMaxSize(), transitionSpec = { + (fadeIn( + tween( + FluentDuration.ShortDuration, + easing = FluentEasing.FastInvokeEasing, + delayMillis = FluentDuration.ShortDuration + ) + ) + slideInVertically( + tween( + FluentDuration.ShortDuration, + easing = FluentEasing.FastInvokeEasing, + delayMillis = FluentDuration.ShortDuration + ) + ) { it / 6 }) togetherWith fadeOut( + tween( + FluentDuration.QuickDuration, + easing = FluentEasing.FastDismissEasing + ) + ) + }) { + it.content?.invoke() + } } } } @@ -151,7 +173,7 @@ private val navs = listOf( icon = Icons.Default.CheckboxChecked, nestedItems = listOf( NavItem("InputValidation") { TodoScreen() }, - NavItem("Button") { TodoScreen() }, + NavItem("Button") { ButtonScreen() }, NavItem("DropDownButton") { TodoScreen() }, NavItem("HyperlinkButton") { TodoScreen() }, NavItem("RepeatButton") { TodoScreen() }, diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt new file mode 100644 index 00000000..107c0ab1 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt @@ -0,0 +1,122 @@ +package com.konyaco.fluent.gallery.component + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween +import androidx.compose.animation.expandVertically +import androidx.compose.animation.shrinkVertically +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.rotate +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.FluentTheme +import com.konyaco.fluent.animation.FluentDuration +import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.Layer +import com.konyaco.fluent.background.Mica +import com.konyaco.fluent.component.Icon +import com.konyaco.fluent.component.SubtleButton +import com.konyaco.fluent.component.Text +import com.konyaco.fluent.icons.Icons +import com.konyaco.fluent.icons.regular.ChevronDown +import com.konyaco.fluent.shape.FluentRoundedCornerShape +import com.konyaco.fluent.surface.Card + +@Composable +fun GallerySection( + modifier: Modifier, + title: String, + content: @Composable BoxScope.() -> Unit, + sourceCode: String, +) { + Column(modifier) { + Text(title, style = FluentTheme.typography.bodyStrong) + Spacer(Modifier.height(16.dp)) + Layer( + modifier = Modifier.fillMaxWidth().wrapContentHeight(), + shape = FluentRoundedCornerShape( + topStart = 8.dp, topEnd = 8.dp + ) + ) { + Mica(Modifier) { + Box( + Modifier.wrapContentHeight().fillMaxWidth().defaultMinSize(minHeight = 100.dp) + .padding(16.dp), Alignment.CenterStart, + content = content + ) + } + } + + var sourceCodeExpanded by remember { mutableStateOf(false) } + + val interactionSource = remember { MutableInteractionSource() } + Card( + modifier = Modifier.fillMaxWidth().clickable(interactionSource = interactionSource, indication = null, onClick = { + sourceCodeExpanded = !sourceCodeExpanded + }), + shape = FluentRoundedCornerShape( + bottomStart = if (sourceCodeExpanded) 0.dp else 8.dp, + bottomEnd = if (sourceCodeExpanded) 0.dp else 8.dp + ) + ) { + Row(Modifier.padding(8.dp), verticalAlignment = Alignment.CenterVertically) { + Text(modifier = Modifier.padding(start = 8.dp).weight(1f), text = "Source Code") + SubtleButton( + onClick = { sourceCodeExpanded = !sourceCodeExpanded }, + interaction = interactionSource, + iconOnly = true + ) { + Icon( + modifier = Modifier.rotate( + animateFloatAsState( + if (sourceCodeExpanded) 180f else 0f, + ).value + ), + imageVector = Icons.Default.ChevronDown, + contentDescription = "Expand source code" + ) + } + } + } + AnimatedVisibility( + visible = sourceCodeExpanded, + enter = expandVertically( + tween(FluentDuration.MediumDuration, 0, FluentEasing.FastInvokeEasing) + ), + exit = shrinkVertically( + tween(FluentDuration.QuickDuration, 0, FluentEasing.SoftDismissEasing) + ) + ) { + Card( + modifier = Modifier.fillMaxWidth(), + shape = FluentRoundedCornerShape( + bottomStart = 8.dp, + bottomEnd = 8.dp + ) + ) { + Column(Modifier.padding(16.dp, 12.dp)) { + Text("Kotlin", style = FluentTheme.typography.bodyStrong) + Spacer(Modifier.height(12.dp)) + SourceCode(sourceCode) + } + } + } + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/SourceCode.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/SourceCode.kt new file mode 100644 index 00000000..ed85a4e0 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/SourceCode.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.component + +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.runtime.Composable +import androidx.compose.ui.text.font.FontFamily +import com.konyaco.fluent.component.Text + +@Composable +fun SourceCode( + code: String +) { + SelectionContainer { + Text( + text = code, + fontFamily = FontFamily.Monospace + ) + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index c300454a..ebe1a055 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -69,183 +69,171 @@ fun HomeScreen() { var scale by remember(density) { mutableStateOf(density.density) } val store = LocalStore.current - Layer( - modifier = Modifier.padding(top = 16.dp).fillMaxSize() - .verticalScroll(rememberScrollState()), - shape = RoundedCornerShape( - topStart = 8.dp, - topEnd = 0.dp, - bottomStart = 0.dp, - bottomEnd = 0.dp - ), - outsideBorder = true - ) { - Column(Modifier.padding(16.dp), Arrangement.spacedBy(8.dp)) { - Controller(scale, { scale = it }, store.darkMode, { store.darkMode = it }) - - CompositionLocalProvider(LocalDensity provides Density(scale)) { - Content() - } + Column(Modifier.padding(16.dp), Arrangement.spacedBy(8.dp)) { + Controller(scale, { scale = it }, store.darkMode, { store.darkMode = it }) - AccentButton(onClick = { - displayDialog = true - }) { Text("Display Dialog") } + CompositionLocalProvider(LocalDensity provides Density(scale)) { + Content() + } - Box { - var expanded by remember { mutableStateOf(false) } + AccentButton(onClick = { + displayDialog = true + }) { Text("Display Dialog") } - Button(onClick = { - expanded = true - }) { - Text("Show DropdownMenu") - } + Box { + var expanded by remember { mutableStateOf(false) } - fun close() { - expanded = false - } - - DropdownMenu(expanded, ::close) { - DropdownMenuItem(::close) { Text("Option 1") } - DropdownMenuItem(::close) { Text("Option 2") } - DropdownMenuItem(::close) { Text("Option 3") } - } + Button(onClick = { + expanded = true + }) { + Text("Show DropdownMenu") } - var currentPlacement by remember { - mutableStateOf(FlyoutPlacement.Auto) + + fun close() { + expanded = false } - Row { - FlyoutContainer( - flyout = { - Text("this is a flyout") - }, - placement = currentPlacement, - content = { - Button( - onClick = { isFlyoutVisible = true } - ) { - Text("Open Flyout") - } - } - ) - Spacer(Modifier.width(8.dp)) - Box { - var isFlyoutPlacementDropdownMenuOpened by remember { - mutableStateOf(false) - } - Button(onClick = { - isFlyoutPlacementDropdownMenuOpened = true - }) { - Text("Flyout placement") - } - val item = @Composable { placement: FlyoutPlacement -> - DropdownMenuItem({ - currentPlacement = placement - isFlyoutPlacementDropdownMenuOpened = false - }) { - Icon( - Icons.Default.Checkmark, - contentDescription = null, - modifier = Modifier.padding(end = 8.dp) - .alpha(if (placement == currentPlacement) 1f else 0f) - ) - Text(text = placement.toString()) - } - } - DropdownMenu( - isFlyoutPlacementDropdownMenuOpened, - { isFlyoutPlacementDropdownMenuOpened = false }) { - FlyoutPlacement.entries.forEach { item(it) } - } - } + DropdownMenu(expanded, ::close) { + DropdownMenuItem(::close) { Text("Option 1") } + DropdownMenuItem(::close) { Text("Option 2") } + DropdownMenuItem(::close) { Text("Option 3") } } + } + var currentPlacement by remember { + mutableStateOf(FlyoutPlacement.Auto) + } + Row { - MenuFlyoutContainer( - placement = currentPlacement, + FlyoutContainer( flyout = { - MenuFlyoutItem( - onClick = { - - }, - icon = { - Icon(Icons.Default.Delete, contentDescription = null) - }, - text = { - Text("Delete") - } - ) - MenuFlyoutSeparator() - MenuFlyoutItem( - onClick = { - - }, - icon = { - Icon(Icons.Default.Add, contentDescription = null) - }, - text = { - Text("Add") - } - ) - MenuFlyoutSeparator() - MenuFlyoutItem( - onClick = {}, - icon = {}, - paddingIcon = true, - text = { Text("test") } - ) - MenuFlyoutItem( - items = { - MenuFlyoutItem( - onClick = { - - }, - icon = { - Icon(Icons.Default.Add, contentDescription = null) - }, - text = { - Text("Add") - } - ) - }, - icon = { - Icon(Icons.Default.ClipboardMore, contentDescription = null) - }, - text = { - Text("More") - } - ) + Text("this is a flyout") }, + placement = currentPlacement, content = { Button( - onClick = { isFlyoutVisible = !isFlyoutVisible } + onClick = { isFlyoutVisible = true } ) { - Text("Open MenuFlyout") + Text("Open Flyout") } } ) + Spacer(Modifier.width(8.dp)) + Box { + var isFlyoutPlacementDropdownMenuOpened by remember { + mutableStateOf(false) + } + Button(onClick = { + isFlyoutPlacementDropdownMenuOpened = true + }) { + Text("Flyout placement") + } + val item = @Composable { placement: FlyoutPlacement -> + DropdownMenuItem({ + currentPlacement = placement + isFlyoutPlacementDropdownMenuOpened = false + }) { + Icon( + Icons.Default.Checkmark, + contentDescription = null, + modifier = Modifier.padding(end = 8.dp) + .alpha(if (placement == currentPlacement) 1f else 0f) + ) + Text(text = placement.toString()) + } + } + DropdownMenu( + isFlyoutPlacementDropdownMenuOpened, + { isFlyoutPlacementDropdownMenuOpened = false }) { + FlyoutPlacement.entries.forEach { item(it) } + } + } } - Dialog( - title = "This is an example dialog", - visible = displayDialog, - cancelButtonText = "Cancel", - confirmButtonText = "Confirm", - onCancel = { - displayDialog = false - }, - onConfirm = { - displayDialog = false + MenuFlyoutContainer( + placement = currentPlacement, + flyout = { + MenuFlyoutItem( + onClick = { + + }, + icon = { + Icon(Icons.Default.Delete, contentDescription = null) + }, + text = { + Text("Delete") + } + ) + MenuFlyoutSeparator() + MenuFlyoutItem( + onClick = { + + }, + icon = { + Icon(Icons.Default.Add, contentDescription = null) + }, + text = { + Text("Add") + } + ) + MenuFlyoutSeparator() + MenuFlyoutItem( + onClick = {}, + icon = {}, + paddingIcon = true, + text = { Text("test") } + ) + MenuFlyoutItem( + items = { + MenuFlyoutItem( + onClick = { + + }, + icon = { + Icon(Icons.Default.Add, contentDescription = null) + }, + text = { + Text("Add") + } + ) + }, + icon = { + Icon(Icons.Default.ClipboardMore, contentDescription = null) + }, + text = { + Text("More") + } + ) }, content = { - Text( - "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + - "\n" + - "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", - color = LocalContentColor.current - ) + Button( + onClick = { isFlyoutVisible = !isFlyoutVisible } + ) { + Text("Open MenuFlyout") + } } ) } + + Dialog( + title = "This is an example dialog", + visible = displayDialog, + cancelButtonText = "Cancel", + confirmButtonText = "Confirm", + onCancel = { + displayDialog = false + }, + onConfirm = { + displayDialog = false + }, + content = { + Text( + "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + + "\n" + + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", + color = LocalContentColor.current + ) + } + ) } diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt new file mode 100644 index 00000000..5077e308 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt @@ -0,0 +1,68 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.desktop.ui.tooling.preview.Preview +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.FluentTheme +import com.konyaco.fluent.component.AccentButton +import com.konyaco.fluent.component.Button +import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.component.GallerySection + +@Composable +@Preview +fun ButtonScreen() { + Column(Modifier.fillMaxSize().padding(32.dp)) { + Text( + text = "Button", + style = FluentTheme.typography.title + ) + // TODO: Dropdown button + Spacer(Modifier.height(24.dp)) + Text("The Button control provides a Click event to respond to user input from a touch, mouse, keyboard, stylus, or other input device. You can put different kinds of content in a button, such as text or an image, or you can restyle a button to give it a new look.") + Spacer(Modifier.height(24.dp)) + + Column(Modifier.weight(1f).verticalScroll(rememberScrollState())) { + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A simple Button with text content.", + content = { + Button(onClick = {}) { + Text("Standard Compose Button") + } + }, + sourceCode = """ + Button(onClick = {}) { + Text("Standard Compose Button") + } + """.trimIndent() + ) + // TODO: Button with graphical content. + // TODO: Wrapping Buttons with large content. + Spacer(Modifier.height(32.dp)) + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "Accent style applied to Button.", + content = { + AccentButton(onClick = {}) { + Text("Standard Compose Button") + } + }, + sourceCode = """ + AccentButton(onClick = {}) { + Text("Standard Compose Button") + } + """.trimIndent() + ) + } + } +} \ No newline at end of file From 8fd3d20b91fcdaad3902a23fecbaa99a9239c84f Mon Sep 17 00:00:00 2001 From: KonYaco Date: Tue, 27 Feb 2024 10:57:51 +0800 Subject: [PATCH 007/136] [Gallery] Extract GalleryHeader --- .../fluent/gallery/component/GalleryHeader.kt | 25 +++++++++++++++++++ .../basicinput/BasicInputIndexScreen.kt | 8 ++++++ .../gallery/screen/basicinput/ButtonScreen.kt | 21 ++++++---------- 3 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/BasicInputIndexScreen.kt diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt new file mode 100644 index 00000000..daa1ab14 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt @@ -0,0 +1,25 @@ +package com.konyaco.fluent.gallery.component + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.FluentTheme +import com.konyaco.fluent.component.Text + +@Composable +fun GalleryHeader(title: String, description: String) { + Column(Modifier.padding(top = 32.dp, start = 32.dp, end = 32.dp)) { + Text( + text = title, + style = FluentTheme.typography.title + ) + // TODO: Dropdown button + Spacer(Modifier.height(24.dp)) + Text(description) + Spacer(Modifier.height(24.dp)) + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/BasicInputIndexScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/BasicInputIndexScreen.kt new file mode 100644 index 00000000..b92fb5f0 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/BasicInputIndexScreen.kt @@ -0,0 +1,8 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.runtime.Composable + +@Composable +fun BasicInputIndexScreen() { + +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt index 5077e308..c1b36ac9 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt @@ -12,26 +12,21 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.component.AccentButton import com.konyaco.fluent.component.Button import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection @Composable @Preview fun ButtonScreen() { - Column(Modifier.fillMaxSize().padding(32.dp)) { - Text( - text = "Button", - style = FluentTheme.typography.title + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "Button", + "The Button control provides a Click event to respond to user input from a touch, mouse, keyboard, stylus, or other input device. You can put different kinds of content in a button, such as text or an image, or you can restyle a button to give it a new look." ) - // TODO: Dropdown button - Spacer(Modifier.height(24.dp)) - Text("The Button control provides a Click event to respond to user input from a touch, mouse, keyboard, stylus, or other input device. You can put different kinds of content in a button, such as text or an image, or you can restyle a button to give it a new look.") - Spacer(Modifier.height(24.dp)) - - Column(Modifier.weight(1f).verticalScroll(rememberScrollState())) { + Column(Modifier.weight(1f).verticalScroll(rememberScrollState()).padding(32.dp)) { GallerySection( modifier = Modifier.fillMaxWidth(), title = "A simple Button with text content.", @@ -54,12 +49,12 @@ fun ButtonScreen() { title = "Accent style applied to Button.", content = { AccentButton(onClick = {}) { - Text("Standard Compose Button") + Text("Accent Compose Button") } }, sourceCode = """ AccentButton(onClick = {}) { - Text("Standard Compose Button") + Text("Accent Compose Button") } """.trimIndent() ) From 40055fa9ffd104ba92ca42dc99cc59de34356063 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Tue, 27 Feb 2024 11:32:07 +0800 Subject: [PATCH 008/136] [Gallery] Add more screens. --- .../kotlin/com/konyaco/fluent/gallery/App.kt | 36 ++++++++++++------- .../fluent/gallery/component/GalleryHeader.kt | 3 +- .../gallery/screen/basicinput/ButtonScreen.kt | 5 ++- .../screen/basicinput/CheckBoxScreen.kt | 18 ++++++++++ .../screen/basicinput/ColorPickerScreen.kt | 18 ++++++++++ .../screen/basicinput/ComboBoxScreen.kt | 18 ++++++++++ .../screen/basicinput/DropDownButtonScreen.kt | 18 ++++++++++ .../basicinput/HyperlinkButtonScreen.kt | 18 ++++++++++ .../screen/basicinput/RadioButtonScreen.kt | 18 ++++++++++ .../screen/basicinput/RatingControlScreen.kt | 18 ++++++++++ .../screen/basicinput/RepeatButtonScreen.kt | 18 ++++++++++ .../gallery/screen/basicinput/SliderScreen.kt | 18 ++++++++++ .../screen/basicinput/SplitButtonScreen.kt | 18 ++++++++++ .../screen/basicinput/ToggleButtonScreen.kt | 18 ++++++++++ .../basicinput/ToggleSplitButtonScreen.kt | 18 ++++++++++ .../screen/basicinput/ToggleSwitchScreen.kt | 18 ++++++++++ 16 files changed, 263 insertions(+), 15 deletions(-) create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ColorPickerScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ComboBoxScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt index 12dcf1c7..8c31a097 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt @@ -15,6 +15,18 @@ import com.konyaco.fluent.gallery.screen.HomeScreen import com.konyaco.fluent.gallery.screen.TodoScreen import com.konyaco.fluent.gallery.screen.basicinput.BasicInputIndexScreen import com.konyaco.fluent.gallery.screen.basicinput.ButtonScreen +import com.konyaco.fluent.gallery.screen.basicinput.CheckBoxScreen +import com.konyaco.fluent.gallery.screen.basicinput.ColorPickerScreen +import com.konyaco.fluent.gallery.screen.basicinput.ComboBoxScreen +import com.konyaco.fluent.gallery.screen.basicinput.DropDownButtonScreen +import com.konyaco.fluent.gallery.screen.basicinput.HyperlinkButtonScreen +import com.konyaco.fluent.gallery.screen.basicinput.RadioButtonScreen +import com.konyaco.fluent.gallery.screen.basicinput.RatingControlScreen +import com.konyaco.fluent.gallery.screen.basicinput.RepeatButtonScreen +import com.konyaco.fluent.gallery.screen.basicinput.SliderScreen +import com.konyaco.fluent.gallery.screen.basicinput.SplitButtonScreen +import com.konyaco.fluent.gallery.screen.basicinput.ToggleButtonScreen +import com.konyaco.fluent.gallery.screen.basicinput.ToggleSwitchScreen import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.* import com.konyaco.fluent.shape.FluentRoundedCornerShape @@ -174,18 +186,18 @@ private val navs = listOf( nestedItems = listOf( NavItem("InputValidation") { TodoScreen() }, NavItem("Button") { ButtonScreen() }, - NavItem("DropDownButton") { TodoScreen() }, - NavItem("HyperlinkButton") { TodoScreen() }, - NavItem("RepeatButton") { TodoScreen() }, - NavItem("ToggleButton") { TodoScreen() }, - NavItem("SplitButton") { TodoScreen() }, - NavItem("CheckBox") { TodoScreen() }, - NavItem("ColorPicker") { TodoScreen() }, - NavItem("ComboBox") { TodoScreen() }, - NavItem("RadioButton") { TodoScreen() }, - NavItem("RatingControl") { TodoScreen() }, - NavItem("Slider") { TodoScreen() }, - NavItem("ToggleSwitch") { TodoScreen() } + NavItem("DropDownButton") { DropDownButtonScreen() }, + NavItem("HyperlinkButton") { HyperlinkButtonScreen() }, + NavItem("RepeatButton") { RepeatButtonScreen() }, + NavItem("ToggleButton") { ToggleButtonScreen() }, + NavItem("SplitButton") { SplitButtonScreen() }, + NavItem("CheckBox") { CheckBoxScreen() }, + NavItem("ColorPicker") { ColorPickerScreen() }, + NavItem("ComboBox") { ComboBoxScreen() }, + NavItem("RadioButton") { RadioButtonScreen() }, + NavItem("RatingControl") { RatingControlScreen() }, + NavItem("Slider") { SliderScreen() }, + NavItem("ToggleSwitch") { ToggleSwitchScreen() } ) ) { TodoScreen() }, NavItem( diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt index daa1ab14..2d8fce1e 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt @@ -12,7 +12,7 @@ import com.konyaco.fluent.component.Text @Composable fun GalleryHeader(title: String, description: String) { - Column(Modifier.padding(top = 32.dp, start = 32.dp, end = 32.dp)) { + Column(Modifier.padding(top = 32.dp, bottom = 12.dp, start = 32.dp, end = 32.dp)) { Text( text = title, style = FluentTheme.typography.title @@ -20,6 +20,5 @@ fun GalleryHeader(title: String, description: String) { // TODO: Dropdown button Spacer(Modifier.height(24.dp)) Text(description) - Spacer(Modifier.height(24.dp)) } } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt index c1b36ac9..6b0d94b5 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt @@ -26,7 +26,10 @@ fun ButtonScreen() { "Button", "The Button control provides a Click event to respond to user input from a touch, mouse, keyboard, stylus, or other input device. You can put different kinds of content in a button, such as text or an image, or you can restyle a button to give it a new look." ) - Column(Modifier.weight(1f).verticalScroll(rememberScrollState()).padding(32.dp)) { + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { GallerySection( modifier = Modifier.fillMaxWidth(), title = "A simple Button with text content.", diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt new file mode 100644 index 00000000..b99c9a79 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun CheckBoxScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "CheckBox", + "CheckBox controls let the user select a combination of binary options. In contrast, RadioButton controls allow the user to select from mutually exclusive options. The indeterminate state is used to indicate that an option is set for some, but not all, child options. Don't allow users to set an indeterminate state directly to indicate a third option." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ColorPickerScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ColorPickerScreen.kt new file mode 100644 index 00000000..73958956 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ColorPickerScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun ColorPickerScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "ColorPicker", + "A selectable color spectrum." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ComboBoxScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ComboBoxScreen.kt new file mode 100644 index 00000000..d423f550 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ComboBoxScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun ComboBoxScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "ComboBox", + "Use a ComboBox when you need to conserve on-screen space and when users select only one option at a time. A ComboBox shows only the currently selected item." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt new file mode 100644 index 00000000..7ce4b9ea --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun DropDownButtonScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "DropDownButton", + "A control that drops down a flyout of choices from which one can be chosen." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt new file mode 100644 index 00000000..2400dd67 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun HyperlinkButtonScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "HyperlinkButton", + "A HyperlinkButton appears as a text hyperlink. When a user clicks it, it opens the page you specify in the NavigateUri property in the default browser. Or you can handle its Click event, typically to navigate within your app." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt new file mode 100644 index 00000000..b5b11cbd --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun RadioButtonScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "RadioButton", + "Use RadioButtons to let a user choose between mutually exclusive, related options. Generally contained within a RadioButtons group control." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt new file mode 100644 index 00000000..2600a6f2 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun RatingControlScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "RatingControl", + "Rate something 1 to 5 stars." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt new file mode 100644 index 00000000..a520e0bd --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun RepeatButtonScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "RepeatButton", + "The RepeatButton control is like a standard Button, except that the Click event occurs continuously while the user presses the RepeatButton." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt new file mode 100644 index 00000000..2759c4c4 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun SliderScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "Slider", + "Use a Slider when you want your users to be able to set defined, contiguous values (such as volume or brightness) or a range of discrete values (such as screen resolution settings)." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt new file mode 100644 index 00000000..63c3439c --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun SplitButtonScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "SplitButton", + "The SplitButton is a dropdown button, but with an addition execution hit target." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt new file mode 100644 index 00000000..67b6958e --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun ToggleButtonScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "ToggleButton", + "A ToggleButton looks like a Button, but works like a CheckBox. It typically has two states, checked (on) or unchecked (off), but can be indeterminate if the IsThreeState property is true. You can determine it's state by checking the IsChecked property." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt new file mode 100644 index 00000000..31011ad9 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun ToggleSplitButtonScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "ToggleSplitButton", + "A version of the SplitButton where the activation target toggles on/off." + ) + // TODO: + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt new file mode 100644 index 00000000..5b2b8e48 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt @@ -0,0 +1,18 @@ +package com.konyaco.fluent.gallery.screen.basicinput + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.component.GalleryHeader + +@Composable +fun ToggleSwitchScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "ToggleSwitch", + "Use ToggleSwitch controls to present users with exactly two mutually exclusive options (like on/off), where choosing an option results in an immediate commit. A toggle switch should have a single label." + ) + // TODO: + } +} \ No newline at end of file From b2e58ea905b6483eb0ef5e59ca3b619f0b8062b3 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Tue, 27 Feb 2024 14:50:27 +0800 Subject: [PATCH 009/136] [Gallery] Add more screens. --- .../kotlin/com/konyaco/fluent/gallery/App.kt | 3 +- .../gallery/component/GallerySection.kt | 2 +- .../fluent/gallery/component/TodoComponent.kt | 27 +++++++ .../screen/basicinput/CheckBoxScreen.kt | 44 ++++++++++- .../gallery/screen/basicinput/SliderScreen.kt | 51 +++++++++++- .../screen/basicinput/ToggleSwitchScreen.kt | 40 +++++++++- .../screen/dialogs/ContentDialogScreen.kt | 79 +++++++++++++++++++ 7 files changed, 241 insertions(+), 5 deletions(-) create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/TodoComponent.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt index 8c31a097..cb0a6282 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt @@ -27,6 +27,7 @@ import com.konyaco.fluent.gallery.screen.basicinput.SliderScreen import com.konyaco.fluent.gallery.screen.basicinput.SplitButtonScreen import com.konyaco.fluent.gallery.screen.basicinput.ToggleButtonScreen import com.konyaco.fluent.gallery.screen.basicinput.ToggleSwitchScreen +import com.konyaco.fluent.gallery.screen.dialogs.ContentDialogScreen import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.* import com.konyaco.fluent.shape.FluentRoundedCornerShape @@ -227,7 +228,7 @@ private val navs = listOf( label = "Dialogs & flyouts", icon = Icons.Default.Chat, nestedItems = listOf( - NavItem("ContentDialog") { TodoScreen() }, + NavItem("ContentDialog") { ContentDialogScreen() }, NavItem("Flyout") { TodoScreen() }, NavItem("TeachingTip") { TodoScreen() } ) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt index 107c0ab1..c90f343d 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt @@ -43,8 +43,8 @@ import com.konyaco.fluent.surface.Card fun GallerySection( modifier: Modifier, title: String, - content: @Composable BoxScope.() -> Unit, sourceCode: String, + content: @Composable BoxScope.() -> Unit, ) { Column(modifier) { Text(title, style = FluentTheme.typography.bodyStrong) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/TodoComponent.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/TodoComponent.kt new file mode 100644 index 00000000..e5d7bb0e --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/TodoComponent.kt @@ -0,0 +1,27 @@ +package com.konyaco.fluent.gallery.component + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import com.konyaco.fluent.component.Button +import com.konyaco.fluent.component.Text +import java.awt.Desktop +import java.net.URI + +@Composable +fun TodoComponent() { + Box(Modifier.fillMaxWidth()) { + Text(modifier = Modifier.align(Alignment.CenterStart), text = "TODO") + Button( + modifier = Modifier.align(Alignment.CenterEnd), + onClick = { + if (Desktop.isDesktopSupported()) { + Desktop.getDesktop().browse(URI("https://github.com/Konyaco/compose-fluent-ui")) + } + }) { + Text("Contribute") + } + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt index b99c9a79..1f4d3eb0 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt @@ -1,10 +1,26 @@ package com.konyaco.fluent.gallery.screen.basicinput import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.CheckBox +import com.konyaco.fluent.component.Slider import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection +import com.konyaco.fluent.gallery.component.TodoComponent @Composable fun CheckBoxScreen() { @@ -13,6 +29,32 @@ fun CheckBoxScreen() { "CheckBox", "CheckBox controls let the user select a combination of binary options. In contrast, RadioButton controls allow the user to select from mutually exclusive options. The indeterminate state is used to indicate that an option is set for some, but not all, child options. Don't allow users to set an indeterminate state directly to indicate a third option." ) - // TODO: + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + Modifier.fillMaxWidth(), "A 2-state CheckBox.", + """ + var checked by remember { mutableStateOf(false) } + CheckBox(checked, "Two-state CheckBox", onCheckStateChange = { checked = it }) + """.trimIndent() + ) { + var checked by remember { mutableStateOf(false) } + CheckBox(checked, "Two-state CheckBox", onCheckStateChange = { checked = it }) + } + Spacer(Modifier.height(32.dp)) + GallerySection( + Modifier.fillMaxWidth(), "A 3-state CheckBox.", "" + ) { + TodoComponent() + } + Spacer(Modifier.height(32.dp)) + GallerySection( + Modifier.fillMaxWidth(), "Using a 3-state CheckBox", "" + ) { + TodoComponent() + } + } } } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt index 2759c4c4..13373e77 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt @@ -1,10 +1,27 @@ package com.konyaco.fluent.gallery.screen.basicinput import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.Slider +import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection +import com.konyaco.fluent.gallery.component.TodoComponent @Composable fun SliderScreen() { @@ -13,6 +30,38 @@ fun SliderScreen() { "Slider", "Use a Slider when you want your users to be able to set defined, contiguous values (such as volume or brightness) or a range of discrete values (such as screen resolution settings)." ) - // TODO: + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + Modifier.fillMaxWidth(), "A simple Slider.", + """ + var value by remember { mutableStateOf(0f) } + Slider(value, { value = it }) + """.trimIndent() + ) { + var value by remember { mutableStateOf(0f) } + Slider(modifier = Modifier.width(200.dp), value = value, onValueChange = { value = it }) + } + Spacer(Modifier.height(32.dp)) + GallerySection( + Modifier.fillMaxWidth(), "A Slider with range and steps specified.", "" + ) { + TodoComponent() + } + Spacer(Modifier.height(32.dp)) + GallerySection( + Modifier.fillMaxWidth(), "A Slider with tick marks.", "" + ) { + TodoComponent() + } + Spacer(Modifier.height(32.dp)) + GallerySection( + Modifier.fillMaxWidth(), "A vertical slider with range and tick marks specified.", "" + ) { + TodoComponent() + } + } } } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt index 5b2b8e48..e68a10a0 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt @@ -1,10 +1,25 @@ package com.konyaco.fluent.gallery.screen.basicinput import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.Switcher +import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection +import com.konyaco.fluent.gallery.component.TodoComponent @Composable fun ToggleSwitchScreen() { @@ -13,6 +28,29 @@ fun ToggleSwitchScreen() { "ToggleSwitch", "Use ToggleSwitch controls to present users with exactly two mutually exclusive options (like on/off), where choosing an option results in an immediate commit. A toggle switch should have a single label." ) - // TODO: + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A simple ToggleSwitch.", + sourceCode = """ + var checked by remember { mutableStateOf(false) } + Switcher(checked, { checked = it }, text = if (checked) "On" else "Off") + """.trimIndent() + ) { + var checked by remember { mutableStateOf(false) } + Switcher(checked, { checked = it }, text = if (checked) "On" else "Off") + } + Spacer(Modifier.height(24.dp)) + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A ToggleSwitch with custom header and content.", + sourceCode = "" + ) { + TodoComponent() + } + } } } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt new file mode 100644 index 00000000..c306fd08 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt @@ -0,0 +1,79 @@ +package com.konyaco.fluent.gallery.screen.dialogs + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.LocalContentColor +import com.konyaco.fluent.component.Button +import com.konyaco.fluent.component.Dialog +import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection + +@Composable +fun ContentDialogScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "ContentDialog", + "Use a ContentDialog to show relevant information or to provide a modal dialog experience that can show any Compose content." + ) + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection(Modifier.fillMaxWidth(), "A basic content dialog with content.", + """ + Dialog( + title = "This is an example dialog", + visible = displayDialog, + cancelButtonText = "Cancel", + confirmButtonText = "Confirm", + onCancel = { displayDialog = false }, + onConfirm = { displayDialog = false }, + content = { + Text( + "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + + "\n" + + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", + color = LocalContentColor.current + ) + } + ) + """.trimIndent()) { + // TODO: Style + + var displayDialog by remember { mutableStateOf(false) } + + Dialog( + title = "This is an example dialog", + visible = displayDialog, + cancelButtonText = "Cancel", + confirmButtonText = "Confirm", + onCancel = { displayDialog = false }, + onConfirm = { displayDialog = false }, + content = { + Text( + "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + + "\n" + + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", + color = LocalContentColor.current + ) + } + ) + Button(onClick = { displayDialog = true }) { + Text("Show dialog") + } + } + } + } +} \ No newline at end of file From 27b79f8014ba28a64bb6e469174863616579e6d7 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Tue, 27 Feb 2024 20:31:00 +0800 Subject: [PATCH 010/136] [Gallery]Add Sample annotation for generating source code --- .../gallery/screen/basicinput/ButtonScreen.kt | 39 +++++----- .../screen/basicinput/CheckBoxScreen.kt | 24 +++--- .../gallery/screen/basicinput/SliderScreen.kt | 24 +++--- .../screen/basicinput/ToggleSwitchScreen.kt | 20 ++--- .../screen/dialogs/ContentDialogScreen.kt | 74 ++++++++----------- 5 files changed, 90 insertions(+), 91 deletions(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt index 6b0d94b5..21334292 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.unit.dp import com.konyaco.fluent.component.AccentButton import com.konyaco.fluent.component.Button import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection @@ -33,16 +34,8 @@ fun ButtonScreen() { GallerySection( modifier = Modifier.fillMaxWidth(), title = "A simple Button with text content.", - content = { - Button(onClick = {}) { - Text("Standard Compose Button") - } - }, - sourceCode = """ - Button(onClick = {}) { - Text("Standard Compose Button") - } - """.trimIndent() + content = { ButtonSample() }, + sourceCode = sourceCodeOfButtonSample ) // TODO: Button with graphical content. // TODO: Wrapping Buttons with large content. @@ -51,16 +44,26 @@ fun ButtonScreen() { modifier = Modifier.fillMaxWidth(), title = "Accent style applied to Button.", content = { - AccentButton(onClick = {}) { - Text("Accent Compose Button") - } + AccentButtonSample() }, - sourceCode = """ - AccentButton(onClick = {}) { - Text("Accent Compose Button") - } - """.trimIndent() + sourceCode = sourceCodeOfAccentButtonSample ) } } +} + +@Sample +@Composable +private fun ButtonSample() { + Button(onClick = {}) { + Text("Standard Compose Button") + } +} + +@Sample +@Composable +private fun AccentButtonSample() { + AccentButton(onClick = {}) { + Text("Accent Compose Button") + } } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt index 1f4d3eb0..42b6818b 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt @@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable @@ -17,7 +16,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.konyaco.fluent.component.CheckBox -import com.konyaco.fluent.component.Slider +import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection import com.konyaco.fluent.gallery.component.TodoComponent @@ -34,15 +33,11 @@ fun CheckBoxScreen() { .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) ) { GallerySection( - Modifier.fillMaxWidth(), "A 2-state CheckBox.", - """ - var checked by remember { mutableStateOf(false) } - CheckBox(checked, "Two-state CheckBox", onCheckStateChange = { checked = it }) - """.trimIndent() - ) { - var checked by remember { mutableStateOf(false) } - CheckBox(checked, "Two-state CheckBox", onCheckStateChange = { checked = it }) - } + modifier = Modifier.fillMaxWidth(), + title = "A 2-state CheckBox.", + content = { TwoStateCheckBoxSample() }, + sourceCode = sourceCodeOfTwoStateCheckBoxSample + ) Spacer(Modifier.height(32.dp)) GallerySection( Modifier.fillMaxWidth(), "A 3-state CheckBox.", "" @@ -57,4 +52,11 @@ fun CheckBoxScreen() { } } } +} + +@Sample +@Composable +private fun TwoStateCheckBoxSample() { + var checked by remember { mutableStateOf(false) } + CheckBox(checked, "Two-state CheckBox", onCheckStateChange = { checked = it }) } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt index 13373e77..bab920a7 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt @@ -7,7 +7,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable @@ -18,7 +17,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.konyaco.fluent.component.Slider -import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection import com.konyaco.fluent.gallery.component.TodoComponent @@ -35,15 +34,11 @@ fun SliderScreen() { .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) ) { GallerySection( - Modifier.fillMaxWidth(), "A simple Slider.", - """ - var value by remember { mutableStateOf(0f) } - Slider(value, { value = it }) - """.trimIndent() - ) { - var value by remember { mutableStateOf(0f) } - Slider(modifier = Modifier.width(200.dp), value = value, onValueChange = { value = it }) - } + modifier = Modifier.fillMaxWidth(), + title = "A simple Slider.", + sourceCode = sourceCodeOfSliderSample, + content = { SliderSample() } + ) Spacer(Modifier.height(32.dp)) GallerySection( Modifier.fillMaxWidth(), "A Slider with range and steps specified.", "" @@ -64,4 +59,11 @@ fun SliderScreen() { } } } +} + +@Sample +@Composable +private fun SliderSample() { + var value by remember { mutableStateOf(0f) } + Slider(modifier = Modifier.width(200.dp), value = value, onValueChange = { value = it }) } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt index e68a10a0..eee2f0f4 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt @@ -16,7 +16,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.konyaco.fluent.component.Switcher -import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection import com.konyaco.fluent.gallery.component.TodoComponent @@ -35,14 +35,9 @@ fun ToggleSwitchScreen() { GallerySection( modifier = Modifier.fillMaxWidth(), title = "A simple ToggleSwitch.", - sourceCode = """ - var checked by remember { mutableStateOf(false) } - Switcher(checked, { checked = it }, text = if (checked) "On" else "Off") - """.trimIndent() - ) { - var checked by remember { mutableStateOf(false) } - Switcher(checked, { checked = it }, text = if (checked) "On" else "Off") - } + sourceCode = sourceCodeOfToggleSwitchSample, + content = { ToggleSwitchSample() } + ) Spacer(Modifier.height(24.dp)) GallerySection( modifier = Modifier.fillMaxWidth(), @@ -53,4 +48,11 @@ fun ToggleSwitchScreen() { } } } +} + +@Sample +@Composable +private fun ToggleSwitchSample() { + var checked by remember { mutableStateOf(false) } + Switcher(checked, { checked = it }, text = if (checked) "On" else "Off") } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt index c306fd08..9cb9d0c0 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt @@ -17,6 +17,7 @@ import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.component.Button import com.konyaco.fluent.component.Dialog import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection @@ -31,49 +32,38 @@ fun ContentDialogScreen() { Modifier.weight(1f).verticalScroll(rememberScrollState()) .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) ) { - GallerySection(Modifier.fillMaxWidth(), "A basic content dialog with content.", - """ - Dialog( - title = "This is an example dialog", - visible = displayDialog, - cancelButtonText = "Cancel", - confirmButtonText = "Confirm", - onCancel = { displayDialog = false }, - onConfirm = { displayDialog = false }, - content = { - Text( - "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + - "\n" + - "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", - color = LocalContentColor.current - ) - } - ) - """.trimIndent()) { - // TODO: Style - - var displayDialog by remember { mutableStateOf(false) } + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A basic content dialog with content.", + sourceCode = sourceCodeOfBasicContentDialogSample, + content = { BasicContentDialogSample() } + ) + } + } +} - Dialog( - title = "This is an example dialog", - visible = displayDialog, - cancelButtonText = "Cancel", - confirmButtonText = "Confirm", - onCancel = { displayDialog = false }, - onConfirm = { displayDialog = false }, - content = { - Text( - "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + - "\n" + - "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", - color = LocalContentColor.current - ) - } - ) - Button(onClick = { displayDialog = true }) { - Text("Show dialog") - } - } +@Sample +@Composable +private fun BasicContentDialogSample() { + // TODO: Style + var displayDialog by remember { mutableStateOf(false) } + Dialog( + title = "This is an example dialog", + visible = displayDialog, + cancelButtonText = "Cancel", + confirmButtonText = "Confirm", + onCancel = { displayDialog = false }, + onConfirm = { displayDialog = false }, + content = { + Text( + "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + + "\n" + + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", + color = LocalContentColor.current + ) } + ) + Button(onClick = { displayDialog = true }) { + Text("Show dialog") } } \ No newline at end of file From 77c70ecbd9547dbe41f3b77bb166f70c0da58af6 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Wed, 28 Feb 2024 00:10:28 +0800 Subject: [PATCH 011/136] [Gallery] Let HomeScreen be scrollable. --- .../kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index ebe1a055..5a0ad0ec 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -69,7 +69,7 @@ fun HomeScreen() { var scale by remember(density) { mutableStateOf(density.density) } val store = LocalStore.current - Column(Modifier.padding(16.dp), Arrangement.spacedBy(8.dp)) { + Column(Modifier.verticalScroll(rememberScrollState()).padding(16.dp), Arrangement.spacedBy(8.dp)) { Controller(scale, { scale = it }, store.darkMode, { store.darkMode = it }) CompositionLocalProvider(LocalDensity provides Density(scale)) { From 99cf64a363c7fa9ce527491e9f96ad001c12db4f Mon Sep 17 00:00:00 2001 From: KonYaco Date: Wed, 28 Feb 2024 00:27:06 +0800 Subject: [PATCH 012/136] [Gallery] Let SourceCode be horizontal scrollable. --- .../gallery/component/GallerySection.kt | 21 +++++++++++++++---- .../fluent/gallery/component/SourceCode.kt | 10 +++++---- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt index c90f343d..c24ab878 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt @@ -6,6 +6,7 @@ import androidx.compose.animation.core.tween import androidx.compose.animation.expandVertically import androidx.compose.animation.shrinkVertically import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxScope @@ -17,6 +18,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.rememberScrollState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -32,6 +34,7 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica import com.konyaco.fluent.component.Icon +import com.konyaco.fluent.component.Scrollbar import com.konyaco.fluent.component.SubtleButton import com.konyaco.fluent.component.Text import com.konyaco.fluent.icons.Icons @@ -68,9 +71,10 @@ fun GallerySection( val interactionSource = remember { MutableInteractionSource() } Card( - modifier = Modifier.fillMaxWidth().clickable(interactionSource = interactionSource, indication = null, onClick = { - sourceCodeExpanded = !sourceCodeExpanded - }), + modifier = Modifier.fillMaxWidth() + .clickable(interactionSource = interactionSource, indication = null, onClick = { + sourceCodeExpanded = !sourceCodeExpanded + }), shape = FluentRoundedCornerShape( bottomStart = if (sourceCodeExpanded) 0.dp else 8.dp, bottomEnd = if (sourceCodeExpanded) 0.dp else 8.dp @@ -114,7 +118,16 @@ fun GallerySection( Column(Modifier.padding(16.dp, 12.dp)) { Text("Kotlin", style = FluentTheme.typography.bodyStrong) Spacer(Modifier.height(12.dp)) - SourceCode(sourceCode) + val scrollState = rememberScrollState() + Box(Modifier.fillMaxWidth().wrapContentHeight()) { + SourceCode( + modifier = Modifier.horizontalScroll(scrollState), + code = sourceCode + ) + Box(Modifier.fillMaxWidth().align(Alignment.BottomCenter)) { + Scrollbar(modifier = Modifier.fillMaxWidth(), isVertical = false, adapter = com.konyaco.fluent.component.rememberScrollbarAdapter(scrollState)) + } + } } } } diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/SourceCode.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/SourceCode.kt index ed85a4e0..a4849b19 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/SourceCode.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/SourceCode.kt @@ -2,17 +2,19 @@ package com.konyaco.fluent.gallery.component import androidx.compose.foundation.text.selection.SelectionContainer import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.style.TextOverflow import com.konyaco.fluent.component.Text @Composable -fun SourceCode( - code: String -) { +fun SourceCode(code: String, modifier: Modifier = Modifier) { SelectionContainer { Text( + modifier = modifier, text = code, - fontFamily = FontFamily.Monospace + fontFamily = FontFamily.Monospace, + overflow = TextOverflow.Visible ) } } \ No newline at end of file From 8a4291110f3141cc8e45405d5002d93b2275d662 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Wed, 28 Feb 2024 00:27:24 +0800 Subject: [PATCH 013/136] [Gallery] Add SubtleButtonSample to ButtonScreen. --- .../gallery/screen/basicinput/ButtonScreen.kt | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt index 21334292..b3d627a3 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable @@ -14,10 +15,14 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.konyaco.fluent.component.AccentButton import com.konyaco.fluent.component.Button +import com.konyaco.fluent.component.Icon +import com.konyaco.fluent.component.SubtleButton import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection +import com.konyaco.fluent.icons.Icons +import com.konyaco.fluent.icons.regular.Home @Composable @Preview @@ -37,9 +42,15 @@ fun ButtonScreen() { content = { ButtonSample() }, sourceCode = sourceCodeOfButtonSample ) - // TODO: Button with graphical content. - // TODO: Wrapping Buttons with large content. Spacer(Modifier.height(32.dp)) + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "Button with graphical content.", + content = { GraphicalButtonSample() }, + sourceCode = sourceCodeOfGraphicalButtonSample + ) + Spacer(Modifier.height(32.dp)) + // TODO: Wrapping Buttons with large content. GallerySection( modifier = Modifier.fillMaxWidth(), title = "Accent style applied to Button.", @@ -48,6 +59,15 @@ fun ButtonScreen() { }, sourceCode = sourceCodeOfAccentButtonSample ) + Spacer(Modifier.height(32.dp)) + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "Subtle button.", + content = { + SubtleButtonSample() + }, + sourceCode = sourceCodeOfSubtleButtonSample + ) } } } @@ -60,10 +80,26 @@ private fun ButtonSample() { } } +@Sample +@Composable +private fun GraphicalButtonSample() { + Button(modifier = Modifier.size(48.dp), onClick = {}, iconOnly = true) { + Icon(modifier = Modifier.size(20.dp), imageVector = Icons.Default.Home, contentDescription = null) + } +} + @Sample @Composable private fun AccentButtonSample() { AccentButton(onClick = {}) { Text("Accent Compose Button") } +} + +@Sample +@Composable +private fun SubtleButtonSample() { + SubtleButton(onClick = {}) { + Text("Subtle Compose Button") + } } \ No newline at end of file From 97eba7d9a17a0115ca0021795f3d1c2cb50cdfc3 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Wed, 28 Feb 2024 08:59:59 +0800 Subject: [PATCH 014/136] [Gallery] Remove function signature in generated source code string --- .../gallery/processor/SampleCodeProcessor.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt index efed6612..b2e1b478 100644 --- a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt @@ -46,6 +46,18 @@ class SampleCodeProcessor(private val logger: KSPLogger, private val codeGenerat func.containingFile?.let { sourceFileList.add(it) } if (func is KSFunctionDeclarationImpl) { val funcName = func.simpleName.asString() + val bodyText = func.ktFunction.let { + it.bodyExpression + ?.text + ?.removePrefix("{") + ?.removeSuffix("}") + ?.trimIndent() ?: + it.bodyBlockExpression + ?.statements + ?.joinToString(System.lineSeparator()) { statement -> statement.text } + ?.trimIndent() ?: + it.text + } sourceFile.addProperty( PropertySpec.builder( "sourceCodeOf${funcName.first().uppercase()}${funcName.substring(1)}", @@ -54,7 +66,7 @@ class SampleCodeProcessor(private val logger: KSPLogger, private val codeGenerat .addModifiers(KModifier.INTERNAL) .getter( FunSpec.getterBuilder() - .addStatement("return %S", func.ktFunction.text) + .addStatement("return %S", bodyText) .build() ) .build() From 5424f0f33d2644f5429bd92f1a60381d96c32043 Mon Sep 17 00:00:00 2001 From: Sanlorng Date: Fri, 1 Mar 2024 20:18:56 +0800 Subject: [PATCH 015/136] [Gallery] Generate navigation tree. (#33) * [Gallery] Add @Component and @ComponentGroup for generate navigation tree --- .../gallery/processor/CommonProcessor.kt | 46 +++ .../gallery/processor/ComponentProcessor.kt | 321 ++++++++++++++++++ .../fluent/gallery/processor/IProcessor.kt | 22 ++ .../gallery/processor/SampleCodeProcessor.kt | 49 ++- .../fluent/gallery/processor/Visitor.kt | 13 +- ...ols.ksp.processing.SymbolProcessorProvider | 2 +- .../kotlin/com/konyaco/fluent/gallery/App.kt | 298 ++-------------- .../fluent/gallery/annotation/Component.kt | 11 + .../gallery/annotation/ComponentGroup.kt | 9 + .../gallery/component/ComponentGroupInfo.kt | 61 ++++ .../gallery/component/ComponentIndexScreen.kt | 63 ++++ .../fluent/gallery/component/ComponentItem.kt | 13 + .../gallery/component/ComponentNavigator.kt | 6 + .../fluent/gallery/screen/AllSamplesScreen.kt | 25 ++ .../fluent/gallery/screen/HomeScreen.kt | 3 +- .../basicinput/BasicInputIndexScreen.kt | 8 - .../gallery/screen/basicinput/ButtonScreen.kt | 5 + .../screen/basicinput/CheckBoxScreen.kt | 2 + .../screen/basicinput/ColorPickerScreen.kt | 2 + .../screen/basicinput/ComboBoxScreen.kt | 2 + .../screen/basicinput/DropDownButtonScreen.kt | 2 + .../basicinput/HyperlinkButtonScreen.kt | 2 + .../screen/basicinput/RadioButtonScreen.kt | 2 + .../screen/basicinput/RatingControlScreen.kt | 2 + .../screen/basicinput/RepeatButtonScreen.kt | 2 + .../gallery/screen/basicinput/SliderScreen.kt | 2 + .../screen/basicinput/SplitButtonScreen.kt | 2 + .../screen/basicinput/ToggleButtonScreen.kt | 2 + .../basicinput/ToggleSplitButtonScreen.kt | 2 + .../screen/basicinput/ToggleSwitchScreen.kt | 2 + .../screen/dialogs/ContentDialogScreen.kt | 2 + 31 files changed, 679 insertions(+), 304 deletions(-) create mode 100644 gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/CommonProcessor.kt create mode 100644 gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt create mode 100644 gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/IProcessor.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/Component.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/ComponentGroup.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentIndexScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentItem.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentNavigator.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/AllSamplesScreen.kt delete mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/BasicInputIndexScreen.kt diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/CommonProcessor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/CommonProcessor.kt new file mode 100644 index 00000000..abfa294b --- /dev/null +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/CommonProcessor.kt @@ -0,0 +1,46 @@ +package com.konyaco.fluent.gallery.processor + +import com.google.devtools.ksp.processing.* +import com.google.devtools.ksp.symbol.KSAnnotated + +class CommonProcessor(logger: KSPLogger, codeGenerator: CodeGenerator): SymbolProcessor { + + private val visitor = Visitor( + onPropertyNode = { property -> + processors.forEach { it.onPropertyVisit(property) } + }, + onFunNode = { function -> + processors.forEach { it.onFunctionVisit(function) } + } + ) + + private val processors = listOf( + SampleCodeProcessor(logger, codeGenerator), + ComponentProcessor(logger, codeGenerator) + ) + + override fun process(resolver: Resolver): List { + resolver.getAllFiles().forEach { it.accept(visitor, Unit) } + return processors.flatMap { it.process(resolver) } + } + + override fun finish() { + super.finish() + processors.forEach { it.finish() } + } + + override fun onError() { + super.onError() + processors.forEach { it.onError() } + } + + companion object { + const val annotationPackage = "com.konyaco.fluent.gallery.annotation" + } +} + +class CommonProcessorProvider : SymbolProcessorProvider { + override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { + return CommonProcessor(environment.logger, environment.codeGenerator) + } +} \ No newline at end of file diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt new file mode 100644 index 00000000..89c8684b --- /dev/null +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt @@ -0,0 +1,321 @@ +package com.konyaco.fluent.gallery.processor + +import com.google.devtools.ksp.processing.CodeGenerator +import com.google.devtools.ksp.processing.Dependencies +import com.google.devtools.ksp.processing.KSPLogger +import com.google.devtools.ksp.symbol.* +import com.google.devtools.ksp.symbol.impl.kotlin.KSPropertyDeclarationImpl +import com.squareup.kotlinpoet.* +import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy +import org.jetbrains.kotlin.util.prefixIfNot +import java.io.OutputStreamWriter +import java.nio.charset.StandardCharsets + +class ComponentProcessor(private val logger: KSPLogger, private val codeGenerator: CodeGenerator) : IProcessor { + + private val componentAnnotation = "Component" + private val componentGroupAnnotation = "ComponentGroup" + + private val iconImportPrefix = "com.konyaco.fluent.icons.regular" + private val iconPrefix = "com.konyaco.fluent.icons.Icons.Regular" + + private val componentFunctions = mutableMapOf>>() + private val componentGroups = mutableMapOf>() + private val componentPackageMap = mutableMapOf() + + private val componentPackage = "com.konyaco.fluent.gallery.component" + private val componentItemClass = ClassName(componentPackage, "ComponentItem") + + private val componentNameList = mutableListOf() + + override fun finish() { + super.finish() + arrangeComponentGroup() + generateComponents() + } + + private fun arrangeComponentGroup() { + val mapPackage = componentFunctions.remove("/_Auto") ?: emptyList() + mapPackage.forEach { pair -> + val group = componentPackageMap[pair.second.packageName.asString()] + if (!group.isNullOrEmpty()) { + val list = + componentFunctions[group] ?: mutableListOf>().apply { + componentFunctions[group] = this + } + list.add(pair) + } else { + val list = componentFunctions["/"] ?: mutableListOf>().apply { + componentFunctions["/"] = this + } + list.add(pair) + } + } + } + + override fun onFunctionVisit(function: KSFunctionDeclaration) { + super.onFunctionVisit(function) + function.annotations.forEach { annotation -> + if (annotation.isTargetAnnotation(componentAnnotation)) { + var groupArg: KSValueArgument? = null + annotation.arguments.forEach { arg -> + when (arg.name?.asString()) { + "group" -> groupArg = arg + } + } + val group = (groupArg?.value as? String)?.prefixIfNot("/") ?: return@forEach + val list = + componentFunctions[group] ?: mutableListOf>().apply { + componentFunctions[group] = this + } + list.add(annotation to function) + return + } + } + } + + override fun onPropertyVisit(property: KSPropertyDeclaration) { + super.onPropertyVisit(property) + val annotation = property.annotations.firstOrNull { + it.isTargetAnnotation(componentGroupAnnotation) + } ?: return + if (property is KSPropertyDeclarationImpl) { + val groupName = + property.ktProperty.initializer?.text?.removePrefix("\"")?.removeSuffix("\"")?.prefixIfNot("/") + ?: return + componentGroups[groupName] = annotation to property + val packageNameValue = + annotation.arguments.firstOrNull { it.name?.asString() == "packageMap" }?.value as? String + val packageName = packageNameValue?.ifBlank { null } ?: return + componentPackageMap[packageName] = groupName + } + } + + private fun generateComponents() { + + val fileSpecBuilder = FileSpec.builder(componentPackage, "Components") + val listComponentsType = List::class.asTypeName().parameterizedBy(componentItemClass) + val rootComponent = + PropertySpec.builder("components", listComponentsType) + .addModifiers(KModifier.INTERNAL) + val keySets = mutableSetOf() + componentFunctions.keys.forEach { + var route = "" + it.split('/').forEach { node -> + if (node.isNotEmpty()) { + route += "/$node" + keySets.add(route) + } + } + } + val levelKey = keySets.groupBy { it.substringBeforeLast('/') } + levelKey.entries.sortedByDescending { (group, _) -> + group.count { it == '/' } + }.forEach { (group, items) -> + val actualItems = items.filter { (it.isNotBlank() && it != "/") } + val key = group.ifEmpty { "/" } + if (group == "") { + fileSpecBuilder.addProperty( + rootComponent.delegate( + """ + lazy { + ${ + createItemsString( + group = "", + fileSpec = fileSpecBuilder, + functions = componentFunctions[key], + childNodes = actualItems.map { + componentGroups[it]?.first to generateComponentsFullName(it) + } + ) + } + } + """.trimIndent() + ).build() + ) + + } + actualItems.forEach { item -> + val itemName = if (item != "/") { + item.substringAfterLast('/') + } else { + "" + } + val propertyName = generateComponentsFullName(item) + val componentGroupConfig = generateComponentGroupConfig(item) + val functionItems = componentFunctions[item] + val childNodeItems = levelKey[item] + fileSpecBuilder.addProperty( + PropertySpec.builder(propertyName, componentItemClass) + .addModifiers(KModifier.INTERNAL) + .initializer( + componentItemInitializerString( + name = itemName, + group = item.substringBeforeLast('/'), + description = "", + icon = componentGroupConfig.icon?.run { + fileSpecBuilder.addImport(iconImportPrefix, this) + "$iconPrefix.$this" + }, + content = componentGroupConfig.contentData, + items = createItemsString(itemName, fileSpecBuilder, functionItems, childNodeItems?.map { + componentGroups[it]?.first to generateComponentsFullName(it) + }) + ) + ) + .build() + ) + } + + } + fileSpecBuilder.addProperty( + PropertySpec.builder( + name = "flatMapComponents", + type = listComponentsType + ).addModifiers(KModifier.INTERNAL) + .delegate( + """ + lazy { + ${componentNameList.joinToString(",\n", "listOf(\n", ")")} + } + """.trimIndent() + ) + .build() + ) + val file = codeGenerator.createNewFile( + Dependencies(true), + fileSpecBuilder.packageName, + fileSpecBuilder.name + ) + OutputStreamWriter(file, StandardCharsets.UTF_8).use(fileSpecBuilder.build()::writeTo) + } + + private fun createItemsString( + group: String, + fileSpec: FileSpec.Builder, + functions: List>?, + childNodes: List>? + ): String? { + val functionItems = functions ?: emptyList() + val childNodeItems = childNodes ?: emptyList() + return if (functions.isNullOrEmpty() && childNodes.isNullOrEmpty()) { + null + } else { + (functionItems.map { (annotation, function) -> + annotation to generateComponentItemProperty(group, fileSpec, function, annotation) + .removePrefix("`") + .removeSuffix("`") + } + childNodeItems).sortedBy { (annotation, _) -> + (annotation?.arguments?.first { arg -> arg.name?.asString() == "index" }?.value as? Int) ?: Int.MAX_VALUE + }.joinToString( + ",\n", + "listOf(\n", + ")\n" + ) { "`${it.second}`" } + } + } + + private fun generateComponentsFullName(group: String): String { + return group.replace( + "/", + "_" + ) + "Components" + } + + private fun generateComponentItemProperty( + group: String, + fileSpec: FileSpec.Builder, + functionDeclaration: KSFunctionDeclaration, + annotation: KSAnnotation + ): String { + val simpleNameString = functionDeclaration.simpleName.asString() + val packageNameString = functionDeclaration.packageName.asString() + val functionName = group + "_" + simpleNameString + "Component" + var nameArg: KSValueArgument? = null + var descriptionArg: KSValueArgument? = null + var icon: String? = null + annotation.arguments.forEach { + when (it.name?.asString()) { + "name" -> nameArg = it + "description" -> descriptionArg = it + "icon" -> icon = (it.value as? String)?.ifBlank { null } + } + } + val description = descriptionArg?.value as? String ?: "" + fileSpec.addImport( + ClassName( + packageNameString.substringBeforeLast("."), + packageNameString.substringAfterLast(".") + ), simpleNameString + ) + val componentName = + (nameArg?.value as? String)?.ifBlank { null } ?: functionDeclaration.simpleName.asString() + .removeSuffix("Screen") + componentNameList.add("`$functionName`") + var arg = "" + functionDeclaration.parameters.forEach { + val type = it.type.resolve().declaration + if (type.simpleName.asString() == "ComponentNavigator" && type.packageName.asString() == componentPackage) { + arg = "${it.name?.asString()} = it" + } + } + fileSpec.addProperty( + PropertySpec.builder("`$functionName`", componentItemClass) + .addModifiers(KModifier.INTERNAL) + .initializer( + componentItemInitializerString( + name = componentName, + group = group, + description = description, + content = "{ ${simpleNameString}($arg) }", + icon = icon?.run { + fileSpec.addImport(iconImportPrefix, this) + "$iconPrefix.$this" + }, + items = null + ) + ) + .build() + ) + return "`$functionName`" + } + + private fun componentItemInitializerString( + name: String, + group: String, + description: String, + content: String?, + icon: String?, + items: String? + ) = """ + ComponentItem( + name = "$name", + group = "${if (group.isNotBlank()) group.prefixIfNot("/") else "" }", + description = "$description", + content = $content, + icon = $icon, + items = $items + ) + """.trimIndent() + + private fun generateComponentGroupConfig(group: String): ComponentGroupConfig { + var icon: String? = null + var contentData: String? = null + componentGroups[group]?.let { (annotation) -> + annotation.arguments.forEach { + when (it.name?.asString()) { + "icon" -> icon = (it.value as? String)?.ifBlank { null } + "generateScreen" -> contentData = """ + { ComponentIndexScreen(it) } + """.trimIndent() + } + } + } + return ComponentGroupConfig(icon, contentData) + } + + data class ComponentGroupConfig( + val icon: String?, + val contentData: String? + ) +} \ No newline at end of file diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/IProcessor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/IProcessor.kt new file mode 100644 index 00000000..0a2d8bd8 --- /dev/null +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/IProcessor.kt @@ -0,0 +1,22 @@ +package com.konyaco.fluent.gallery.processor + +import com.google.devtools.ksp.processing.Resolver +import com.google.devtools.ksp.processing.SymbolProcessor +import com.google.devtools.ksp.symbol.KSAnnotated +import com.google.devtools.ksp.symbol.KSAnnotation +import com.google.devtools.ksp.symbol.KSFunctionDeclaration +import com.google.devtools.ksp.symbol.KSPropertyDeclaration + +interface IProcessor: SymbolProcessor { + fun onFunctionVisit(function: KSFunctionDeclaration) {} + + fun onPropertyVisit(property: KSPropertyDeclaration) {} + + override fun process(resolver: Resolver): List { + return emptyList() + } + + fun KSAnnotation.isTargetAnnotation(targetName: String): Boolean { + return shortName.asString() == targetName && annotationType.resolve().declaration.packageName.asString() == CommonProcessor.annotationPackage + } +} \ No newline at end of file diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt index b2e1b478..3aba111c 100644 --- a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/SampleCodeProcessor.kt @@ -10,33 +10,32 @@ import com.squareup.kotlinpoet.PropertySpec import java.io.OutputStreamWriter import java.nio.charset.StandardCharsets -class SampleCodeProcessor(private val logger: KSPLogger, private val codeGenerator: CodeGenerator) : SymbolProcessor { +class SampleCodeProcessor(private val logger: KSPLogger, private val codeGenerator: CodeGenerator) : IProcessor { - private val annotationPackage = "com.konyaco.fluent.gallery.annotation" private val sampleAnnotation = "Sample" private val sampleCodeFunctions = mutableMapOf>() - private val visitor = FindFunctionVisitor { - if (it.annotations.any { annotation -> - annotation.shortName.asString() == sampleAnnotation && - annotation.annotationType.resolve().declaration.packageName.asString() == annotationPackage - } - ) { - val list = sampleCodeFunctions[it.packageName.asString()] ?: mutableListOf().apply { - sampleCodeFunctions[it.packageName.asString()] = this + override fun onFunctionVisit(function: KSFunctionDeclaration) { + super.onFunctionVisit(function) + function.annotations.forEach { + if (it.isTargetAnnotation(sampleAnnotation)) { + val list = sampleCodeFunctions[function.packageName.asString()] + ?: mutableListOf().apply { + sampleCodeFunctions[function.packageName.asString()] = this + } + list.add(function) } - list.add(it) + return } } - override fun process(resolver: Resolver): List { - resolver.getAllFiles().forEach { it.accept(visitor, Unit) } - return emptyList() - } - override fun finish() { super.finish() + generateSampleCode() + } + + private fun generateSampleCode() { val fileName = "_SampleCodeString" sampleCodeFunctions.forEach { (packageName, functions) -> if (functions.isNotEmpty()) { @@ -51,12 +50,10 @@ class SampleCodeProcessor(private val logger: KSPLogger, private val codeGenerat ?.text ?.removePrefix("{") ?.removeSuffix("}") - ?.trimIndent() ?: - it.bodyBlockExpression - ?.statements - ?.joinToString(System.lineSeparator()) { statement -> statement.text } - ?.trimIndent() ?: - it.text + ?.trimIndent() ?: it.bodyBlockExpression + ?.statements + ?.joinToString(System.lineSeparator()) { statement -> statement.text } + ?.trimIndent() ?: it.text } sourceFile.addProperty( PropertySpec.builder( @@ -67,7 +64,7 @@ class SampleCodeProcessor(private val logger: KSPLogger, private val codeGenerat .getter( FunSpec.getterBuilder() .addStatement("return %S", bodyText) - .build() + .build() ) .build() ) @@ -83,10 +80,6 @@ class SampleCodeProcessor(private val logger: KSPLogger, private val codeGenerat } } } + } -class SampleCodeProcessorProvider : SymbolProcessorProvider { - override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { - return SampleCodeProcessor(environment.logger, environment.codeGenerator) - } -} \ No newline at end of file diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/Visitor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/Visitor.kt index 29275714..8c93a1be 100644 --- a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/Visitor.kt +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/Visitor.kt @@ -1,21 +1,28 @@ package com.konyaco.fluent.gallery.processor import com.google.devtools.ksp.getDeclaredFunctions +import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.symbol.* -internal class FindFunctionVisitor( - private val onNode:(node: KSFunctionDeclaration) -> Unit +internal class Visitor( + private val onFunNode:(node: KSFunctionDeclaration) -> Unit, + private val onPropertyNode: (node: KSPropertyDeclaration) -> Unit, ) : KSVisitorVoid() { override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { super.visitClassDeclaration(classDeclaration, data) + classDeclaration.getDeclaredProperties().forEach { it.accept(this, Unit) } classDeclaration.getDeclaredFunctions().forEach { it.accept(this, Unit) } } override fun visitFunctionDeclaration(function: KSFunctionDeclaration, data: Unit) { - onNode(function) + onFunNode(function) } + override fun visitPropertyDeclaration(property: KSPropertyDeclaration, data: Unit) { + super.visitPropertyDeclaration(property, data) + onPropertyNode(property) + } override fun visitFile(file: KSFile, data: Unit) { file.declarations.forEach { it.accept(this, Unit) } } diff --git a/gallery-processor/src/jvmMain/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/gallery-processor/src/jvmMain/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider index 844d0e42..d229557c 100644 --- a/gallery-processor/src/jvmMain/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider +++ b/gallery-processor/src/jvmMain/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -1 +1 @@ -com.konyaco.fluent.gallery.processor.SampleCodeProcessorProvider \ No newline at end of file +com.konyaco.fluent.gallery.processor.CommonProcessorProvider \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt index cb0a6282..ffca4286 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt @@ -5,41 +5,24 @@ import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.* import androidx.compose.runtime.* import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.unit.dp import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.component.* -import com.konyaco.fluent.gallery.screen.HomeScreen +import com.konyaco.fluent.gallery.component.ComponentItem +import com.konyaco.fluent.gallery.component.ComponentNavigator +import com.konyaco.fluent.gallery.component.components import com.konyaco.fluent.gallery.screen.TodoScreen -import com.konyaco.fluent.gallery.screen.basicinput.BasicInputIndexScreen -import com.konyaco.fluent.gallery.screen.basicinput.ButtonScreen -import com.konyaco.fluent.gallery.screen.basicinput.CheckBoxScreen -import com.konyaco.fluent.gallery.screen.basicinput.ColorPickerScreen -import com.konyaco.fluent.gallery.screen.basicinput.ComboBoxScreen -import com.konyaco.fluent.gallery.screen.basicinput.DropDownButtonScreen -import com.konyaco.fluent.gallery.screen.basicinput.HyperlinkButtonScreen -import com.konyaco.fluent.gallery.screen.basicinput.RadioButtonScreen -import com.konyaco.fluent.gallery.screen.basicinput.RatingControlScreen -import com.konyaco.fluent.gallery.screen.basicinput.RepeatButtonScreen -import com.konyaco.fluent.gallery.screen.basicinput.SliderScreen -import com.konyaco.fluent.gallery.screen.basicinput.SplitButtonScreen -import com.konyaco.fluent.gallery.screen.basicinput.ToggleButtonScreen -import com.konyaco.fluent.gallery.screen.basicinput.ToggleSwitchScreen -import com.konyaco.fluent.gallery.screen.dialogs.ContentDialogScreen -import com.konyaco.fluent.icons.Icons -import com.konyaco.fluent.icons.regular.* import com.konyaco.fluent.shape.FluentRoundedCornerShape import com.konyaco.fluent.surface.Card -@OptIn(ExperimentalAnimationApi::class) @Composable fun App() { Row(Modifier.fillMaxSize()) { var expanded by remember { mutableStateOf(true) } val (selectedItem, setSelectedItem) = remember { - mutableStateOf(navs.first()) + mutableStateOf(components.first()) } var selectedItemWithContent by remember { mutableStateOf(selectedItem) @@ -52,6 +35,9 @@ fun App() { var textFieldValue by remember { mutableStateOf(TextFieldValue()) } + val navigator = remember(setSelectedItem) { + ComponentNavigator(setSelectedItem) + } SideNav( modifier = Modifier.fillMaxHeight(), expanded = expanded, @@ -68,9 +54,9 @@ fun App() { NavigationItem(selectedItem, setSelectedItem, settingItem) } ) { - navs.forEach { navItem -> + components.forEach { navItem -> NavigationItem(selectedItem, setSelectedItem, navItem) - if (navItem.label == "All samples") { + if (navItem.name == "All samples") { NavigationItemSeparator(modifier = Modifier.padding(vertical = 2.dp)) } } @@ -105,7 +91,7 @@ fun App() { ) ) }) { - it.content?.invoke() + it.content?.invoke(it, navigator) } } } @@ -113,259 +99,45 @@ fun App() { @Composable private fun NavigationItem( - selectedItem: NavItem, - onSelectedItemChanged: (NavItem) -> Unit, - navItem: NavItem + selectedItem: ComponentItem, + onSelectedItemChanged: (ComponentItem) -> Unit, + navItem: ComponentItem ) { val expandedItems = remember { mutableStateOf(false) } + LaunchedEffect(selectedItem) { + if (navItem != selectedItem) { + val navItemAsGroup = "${navItem.group}/${navItem.name}/" + if ((selectedItem.group + "/").startsWith(navItemAsGroup)) + expandedItems.value = true + } + } SideNavItem( selectedItem == navItem, onClick = { onSelectedItemChanged(navItem) expandedItems.value = !expandedItems.value }, - icon = navItem.icon?.let { { Icon(it, navItem.label) } }, - content = { Text(navItem.label) }, + icon = navItem.icon?.let { { Icon(it, navItem.name) } }, + content = { Text(navItem.name) }, expandItems = expandedItems.value, - items = navItem.nestedItems?.let { - { - it.forEach { nestedItem -> - NavigationItem( - selectedItem = selectedItem, - onSelectedItemChanged = onSelectedItemChanged, - navItem = nestedItem - ) + items = navItem.items?.let { + if (it.isNotEmpty()) { + { + it.forEach { nestedItem -> + NavigationItem( + selectedItem = selectedItem, + onSelectedItemChanged = onSelectedItemChanged, + navItem = nestedItem + ) + } } + } else { + null } } ) } -private data class NavItem( - val label: String, - val icon: ImageVector? = null, - val nestedItems: List? = null, - val content: (@Composable () -> Unit)? = null, -) - -// TODO Remove unnecessary pages -private val navs = listOf( - NavItem( - label = "Home", - icon = Icons.Default.Home - ) { HomeScreen() }, - NavItem( - label = "Design guidance", - icon = Icons.Default.Ruler, - nestedItems = listOf( - NavItem("Typography", Icons.Default.TextFont) { - TodoScreen() - }, - NavItem("Icons", Icons.Default.Diversity) { - TodoScreen() - }, - NavItem("Colors", Icons.Default.Color) { - TodoScreen() - }, - NavItem( - label = "Accessibility", - icon = Icons.Default.Accessibility, - nestedItems = listOf( - NavItem("Screen reader support") { TodoScreen() }, - NavItem("Keyboard support") { TodoScreen() }, - NavItem("Color contrast") { TodoScreen() } - ) - ) - ) - ), - NavItem("All samples", Icons.Default.AppsList) { TodoScreen() }, - NavItem( - label = "Basic input", - icon = Icons.Default.CheckboxChecked, - nestedItems = listOf( - NavItem("InputValidation") { TodoScreen() }, - NavItem("Button") { ButtonScreen() }, - NavItem("DropDownButton") { DropDownButtonScreen() }, - NavItem("HyperlinkButton") { HyperlinkButtonScreen() }, - NavItem("RepeatButton") { RepeatButtonScreen() }, - NavItem("ToggleButton") { ToggleButtonScreen() }, - NavItem("SplitButton") { SplitButtonScreen() }, - NavItem("CheckBox") { CheckBoxScreen() }, - NavItem("ColorPicker") { ColorPickerScreen() }, - NavItem("ComboBox") { ComboBoxScreen() }, - NavItem("RadioButton") { RadioButtonScreen() }, - NavItem("RatingControl") { RatingControlScreen() }, - NavItem("Slider") { SliderScreen() }, - NavItem("ToggleSwitch") { ToggleSwitchScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Collections", - icon = Icons.Default.Table, - nestedItems = listOf( - NavItem("FlipView") { TodoScreen() }, - NavItem("GridView") { TodoScreen() }, - NavItem("ListBox") { TodoScreen() }, - NavItem("ListView") { TodoScreen() }, - NavItem("PullToRefresh") { TodoScreen() }, - NavItem("TreeView") { TodoScreen() }, - NavItem("DataGrid") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Date & time", - icon = Icons.Default.CalendarClock, - nestedItems = listOf( - NavItem("CalendarDatePicker") { TodoScreen() }, - NavItem("CalendarView") { TodoScreen() }, - NavItem("DatePicker") { TodoScreen() }, - NavItem("TimePicker") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Dialogs & flyouts", - icon = Icons.Default.Chat, - nestedItems = listOf( - NavItem("ContentDialog") { ContentDialogScreen() }, - NavItem("Flyout") { TodoScreen() }, - NavItem("TeachingTip") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Layout", - icon = Icons.Default.SlideLayout, - nestedItems = listOf( - NavItem("Border") { TodoScreen() }, - NavItem("Canvas") { TodoScreen() }, - NavItem("Expander") { TodoScreen() }, - NavItem("ItemRepeater") { TodoScreen() }, - NavItem("Grid") { TodoScreen() }, - NavItem("RadioButtons") { TodoScreen() }, - NavItem("RelativePanel") { TodoScreen() }, - NavItem("SpiltView") { TodoScreen() }, - NavItem("StackPanel") { TodoScreen() }, - NavItem("VariableSizedWrapGrid") { TodoScreen() }, - NavItem("Viewbox") { TodoScreen() }, - ) - ) { TodoScreen() }, - NavItem( - label = "Media", - icon = Icons.Default.VideoClip, - nestedItems = listOf( - NavItem("AnimatedVisualPlayer") { TodoScreen() }, - NavItem("Image") { TodoScreen() }, - NavItem("MediaPlayerElement") { TodoScreen() }, - NavItem("PersonPicture") { TodoScreen() }, - NavItem("Sound") { TodoScreen() }, - NavItem("Webview") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Menus & toolbars", - icon = Icons.Default.Save, - nestedItems = listOf( - NavItem("BasicUICommand") { TodoScreen() }, - NavItem("StandardUICommand") { TodoScreen() }, - NavItem("AppBarButton") { TodoScreen() }, - NavItem("AppBarSeparator") { TodoScreen() }, - NavItem("AppBarToggleButton") { TodoScreen() }, - NavItem("CommandBar") { TodoScreen() }, - NavItem("MenuBar") { TodoScreen() }, - NavItem("CommandBarFlyout") { TodoScreen() }, - NavItem("MenuFlyout") { TodoScreen() }, - NavItem("SwipeControl") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Motion", - icon = Icons.Default.Flash, - nestedItems = listOf( - NavItem("Connected Animation") { TodoScreen() }, - NavItem("Easing Functions") { TodoScreen() }, - NavItem("Page Transitions") { TodoScreen() }, - NavItem("Theme Transitions") { TodoScreen() }, - NavItem("Animation interop") { TodoScreen() }, - NavItem("Implicit Transitions") { TodoScreen() }, - NavItem("ParallaxView") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Navigation", - icon = Icons.Default.Navigation, - nestedItems = listOf( - NavItem("BreadcrumbBar") { TodoScreen() }, - NavItem("NavigationViw") { TodoScreen() }, - NavItem("Pivot") { TodoScreen() }, - NavItem("TabView") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Scrolling", - icon = Icons.Default.ArrowSort, - nestedItems = listOf( - NavItem("PipsPager") { TodoScreen() }, - NavItem("ScrollViewer") { TodoScreen() }, - NavItem("SemanticZoom") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Status & info", - icon = Icons.Default.ChatMultiple, - nestedItems = listOf( - NavItem("InfoBadge") { TodoScreen() }, - NavItem("InfoBar") { TodoScreen() }, - NavItem("ProgressBar") { TodoScreen() }, - NavItem("ProgressRing") { TodoScreen() }, - NavItem("Tooltip") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Styles", - icon = Icons.Default.Color, - nestedItems = listOf( - NavItem("AcrylicBrush") { TodoScreen() }, - NavItem("AnimatedIcon") { TodoScreen() }, - NavItem("ColorPaletteResources") { TodoScreen() }, - NavItem("Compact Sizing") { TodoScreen() }, - NavItem("IconElement") { TodoScreen() }, - NavItem("RadialGradientBrush") { TodoScreen() }, - NavItem("Reveal Focus") { TodoScreen() }, - NavItem("Shape") { TodoScreen() }, - NavItem("Line") { TodoScreen() }, - NavItem("System Backdrops(Mica/Acrylic)") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "System", - icon = Icons.Default.System, - nestedItems = listOf( - NavItem("Clipboard") { TodoScreen() }, - NavItem("FilePicker") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Text", - icon = Icons.Default.TextFont, - nestedItems = listOf( - NavItem("AutoSuggestBox") { TodoScreen() }, - NavItem("NumberBox") { TodoScreen() }, - NavItem("PasswordBox") { TodoScreen() }, - NavItem("RichEditBox") { TodoScreen() }, - NavItem("RichTextBlock") { TodoScreen() }, - NavItem("TextBlock") { TodoScreen() }, - NavItem("TextBox") { TodoScreen() } - ) - ) { TodoScreen() }, - NavItem( - label = "Windowing", - icon = Icons.Default.Window, - nestedItems = listOf( - NavItem("Multiple windows") { TodoScreen() }, - NavItem("TitleBar") { TodoScreen() } - ) - ) { TodoScreen() }, -) - -private val settingItem = NavItem("Settings", Icons.Default.Settings) { TodoScreen() } \ No newline at end of file +private val settingItem = ComponentItem("Settings", group = "", description = "") { TodoScreen() } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/Component.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/Component.kt new file mode 100644 index 00000000..84a8e8ea --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/Component.kt @@ -0,0 +1,11 @@ +package com.konyaco.fluent.gallery.annotation + +@Target(AnnotationTarget.FUNCTION) +annotation class Component( + val name: String = "", + val icon: String = "", + val description: String = "", + val group: String = "_Auto", + val index: Int = -1, + val enabled: Boolean = true +) \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/ComponentGroup.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/ComponentGroup.kt new file mode 100644 index 00000000..4f845549 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/annotation/ComponentGroup.kt @@ -0,0 +1,9 @@ +package com.konyaco.fluent.gallery.annotation + +@Target(AnnotationTarget.PROPERTY) +annotation class ComponentGroup( + val icon: String, + val index: Int = Int.MAX_VALUE, + val generateScreen: Boolean = true, + val packageMap: String = "" +) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt new file mode 100644 index 00000000..bc71056f --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt @@ -0,0 +1,61 @@ +@file:Suppress + +package com.konyaco.fluent.gallery.component + +import com.konyaco.fluent.gallery.annotation.ComponentGroup + +object ComponentGroupInfo { + + private const val screenPackage: String = "com.konyaco.fluent.gallery.screen" + + @ComponentGroup("Ruler", index = 0) + const val DesignGuidance = "Design guidance" + + @ComponentGroup("Accessibility", generateScreen = false, index = 3) + const val Accessibility = "Design guidance/Accessibility" + + @ComponentGroup("CheckboxChecked", index = 2, packageMap = "$screenPackage.basicinput") + const val BasicInput = "Basic input" + + @ComponentGroup("Table", index = 3) + const val Collections = "Collections" + + @ComponentGroup("CalendarClock", index = 4) + const val DateAndTime = "Date & time" + + @ComponentGroup("Chat", index = 5, packageMap = "$screenPackage.dialogs") + const val DialogAndFlyout = "Dialog & flyouts" + + @ComponentGroup("SlideLayout", index = 6) + const val Layout = "Layout" + + @ComponentGroup("VideoClip", index = 7) + const val Media = "Media" + + @ComponentGroup("Save", index = 8) + const val MenusAndToolbars = "Menus & toolbars" + + @ComponentGroup("Flash", index = 9) + const val Motion = "Motion" + + @ComponentGroup("Navigation", index = 10) + const val Navigation = "Navigation" + + @ComponentGroup("ArrowSort", index = 11) + const val Scrolling = "Scrolling" + + @ComponentGroup("ChatMultiple", index = 12) + const val StatusAndInfo = "Status & info" + + @ComponentGroup("Color", index = 13) + const val Styles = "Styles" + + @ComponentGroup("System", index = 14) + const val System = "System" + + @ComponentGroup("TextFont", index = 15) + const val Text = "Text" + + @ComponentGroup("Window", index = 16) + const val Windowing = "Windowing" +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentIndexScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentIndexScreen.kt new file mode 100644 index 00000000..8731198a --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentIndexScreen.kt @@ -0,0 +1,63 @@ +package com.konyaco.fluent.gallery.component + +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.FluentTheme +import com.konyaco.fluent.component.Button +import com.konyaco.fluent.component.Text + +@Composable +fun ComponentItem.ComponentIndexScreen(navigator: ComponentNavigator) { + ComponentIndexScreen(name, description, items, navigator) +} + +@Composable +fun ComponentIndexScreen( + name: String, + description: String, + items: List?, + navigator: ComponentNavigator +) { + //TODO Fixed Style + Column { + GalleryHeader(name, description) + LazyVerticalGrid( + columns = GridCells.Adaptive(300.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + contentPadding = PaddingValues(32.dp) + ) { + items( + items = items ?: emptyList() + ) { + Button(onClick = { navigator.navigate(it) }) { + Column( + verticalArrangement = Arrangement.spacedBy(8.dp), + modifier = Modifier.padding(16.dp) + .fillMaxWidth() + .heightIn(64.dp) + ) { + Text( + text = it.name, + style = FluentTheme.typography.bodyStrong + ) + Text( + text = it.description, + style = FluentTheme.typography.caption, + fontWeight = FontWeight.Normal, + minLines = 2, + maxLines = 2 + ) + } + } + } + } + } +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentItem.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentItem.kt new file mode 100644 index 00000000..36e652d5 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentItem.kt @@ -0,0 +1,13 @@ +package com.konyaco.fluent.gallery.component + +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.vector.ImageVector + +class ComponentItem( + val name: String = "", + val group: String, + val description: String, + val items: List? = null, + val icon: ImageVector? = null, + val content: (@Composable ComponentItem.(navigator: ComponentNavigator) -> Unit)? +) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentNavigator.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentNavigator.kt new file mode 100644 index 00000000..0f8953c7 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentNavigator.kt @@ -0,0 +1,6 @@ +package com.konyaco.fluent.gallery.component + +fun interface ComponentNavigator { + fun navigate(componentItem: ComponentItem) + +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/AllSamplesScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/AllSamplesScreen.kt new file mode 100644 index 00000000..d3e93b31 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/AllSamplesScreen.kt @@ -0,0 +1,25 @@ +package com.konyaco.fluent.gallery.screen + +import androidx.compose.runtime.* +import com.konyaco.fluent.gallery.annotation.Component +import com.konyaco.fluent.gallery.component.* +import com.konyaco.fluent.gallery.component._AllSamplesScreenComponent +import com.konyaco.fluent.gallery.component._HomeScreenComponent + +@Component(icon = "AppsList", index = 1, name = "All samples") +@Composable +fun AllSamplesScreen(navigator: ComponentNavigator) { + var allComponents by remember { + mutableStateOf?>(null) + } + LaunchedEffect(flatMapComponents) { + val excludeComponents = listOf(_HomeScreenComponent, _AllSamplesScreenComponent) + allComponents = flatMapComponents.filter { it !in excludeComponents } + } + ComponentIndexScreen( + name = "All samples", + description = "", + items = allComponents, + navigator + ) +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index 5a0ad0ec..698f0f12 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -51,6 +50,7 @@ import com.konyaco.fluent.component.Switcher import com.konyaco.fluent.component.Text import com.konyaco.fluent.component.TextField import com.konyaco.fluent.gallery.LocalStore +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Add import com.konyaco.fluent.icons.regular.ArrowLeft @@ -62,6 +62,7 @@ import com.konyaco.fluent.icons.regular.List import com.konyaco.fluent.icons.regular.Navigation +@Component(icon = "Home") @Composable fun HomeScreen() { var displayDialog by remember { mutableStateOf(false) } diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/BasicInputIndexScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/BasicInputIndexScreen.kt deleted file mode 100644 index b92fb5f0..00000000 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/BasicInputIndexScreen.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.konyaco.fluent.gallery.screen.basicinput - -import androidx.compose.runtime.Composable - -@Composable -fun BasicInputIndexScreen() { - -} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt index b3d627a3..dbc31f6c 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt @@ -18,12 +18,17 @@ import com.konyaco.fluent.component.Button import com.konyaco.fluent.component.Icon import com.konyaco.fluent.component.SubtleButton import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Home +@Component( + index = 0, + description = "A control that responds to user input and raises a Click event." +) @Composable @Preview fun ButtonScreen() { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt index 42b6818b..0842f752 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/CheckBoxScreen.kt @@ -16,11 +16,13 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.konyaco.fluent.component.CheckBox +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection import com.konyaco.fluent.gallery.component.TodoComponent +@Component(index = 7) @Composable fun CheckBoxScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ColorPickerScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ColorPickerScreen.kt index 73958956..c55f2c0e 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ColorPickerScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ColorPickerScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 8) @Composable fun ColorPickerScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ComboBoxScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ComboBoxScreen.kt index d423f550..e484271b 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ComboBoxScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ComboBoxScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 9) @Composable fun ComboBoxScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt index 7ce4b9ea..b0e81275 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 1) @Composable fun DropDownButtonScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt index 2400dd67..8e6fbcf2 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 2) @Composable fun HyperlinkButtonScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt index b5b11cbd..f5e0103d 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 10) @Composable fun RadioButtonScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt index 2600a6f2..833e2838 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 11) @Composable fun RatingControlScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt index a520e0bd..0a75c53f 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 3) @Composable fun RepeatButtonScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt index bab920a7..f4df0dad 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SliderScreen.kt @@ -17,11 +17,13 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.konyaco.fluent.component.Slider +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection import com.konyaco.fluent.gallery.component.TodoComponent +@Component(index = 12) @Composable fun SliderScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt index 63c3439c..3abb1517 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 5) @Composable fun SplitButtonScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt index 67b6958e..8fb8d7b7 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 4) @Composable fun ToggleButtonScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt index 31011ad9..386774c3 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt @@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.component.GalleryHeader +@Component(index = 6) @Composable fun ToggleSplitButtonScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt index eee2f0f4..608df80a 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSwitchScreen.kt @@ -16,11 +16,13 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.konyaco.fluent.component.Switcher +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection import com.konyaco.fluent.gallery.component.TodoComponent +@Component(index = 13) @Composable fun ToggleSwitchScreen() { Column(Modifier.fillMaxSize()) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt index 9cb9d0c0..08c18c7c 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt @@ -17,10 +17,12 @@ import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.component.Button import com.konyaco.fluent.component.Dialog import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection +@Component @Composable fun ContentDialogScreen() { Column(Modifier.fillMaxSize()) { From 3e9fcf9f703ad144173d5c7e8014f4ebaef53ead Mon Sep 17 00:00:00 2001 From: sanlorng Date: Fri, 1 Mar 2024 23:04:03 +0800 Subject: [PATCH 016/136] [Gallery] Add Setting Navigation Icon --- .../src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt index ffca4286..9ec17698 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt @@ -14,6 +14,8 @@ import com.konyaco.fluent.gallery.component.ComponentItem import com.konyaco.fluent.gallery.component.ComponentNavigator import com.konyaco.fluent.gallery.component.components import com.konyaco.fluent.gallery.screen.TodoScreen +import com.konyaco.fluent.icons.Icons +import com.konyaco.fluent.icons.regular.Settings import com.konyaco.fluent.shape.FluentRoundedCornerShape import com.konyaco.fluent.surface.Card @@ -140,4 +142,4 @@ private fun NavigationItem( ) } -private val settingItem = ComponentItem("Settings", group = "", description = "") { TodoScreen() } \ No newline at end of file +private val settingItem = ComponentItem("Settings", group = "", description = "", icon = Icons.Default.Settings) { TodoScreen() } \ No newline at end of file From 8b9f3cf82d2cfc1707169b2125ca96fcd8446ad7 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 2 Mar 2024 15:13:46 +0800 Subject: [PATCH 017/136] [Gallery] Format component source code. --- .../gallery/processor/ComponentProcessor.kt | 137 ++++++++++++------ 1 file changed, 91 insertions(+), 46 deletions(-) diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt index 89c8684b..ba006b4d 100644 --- a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt @@ -28,6 +28,8 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato private val componentNameList = mutableListOf() + private val propertyNameRegex = Regex("^[a-zA-Z_]*\\w") + override fun finish() { super.finish() arrangeComponentGroup() @@ -115,12 +117,11 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato val actualItems = items.filter { (it.isNotBlank() && it != "/") } val key = group.ifEmpty { "/" } if (group == "") { + fileSpecBuilder.addProperty( - rootComponent.delegate( - """ - lazy { - ${ - createItemsString( + rootComponent + .lazy { + val itemNames = createItemsString( group = "", fileSpec = fileSpecBuilder, functions = componentFunctions[key], @@ -128,10 +129,12 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato componentGroups[it]?.first to generateComponentsFullName(it) } ) - } + if (itemNames == null) { + addStatement("emptyList()") + } else { + createList("", itemNames) { (_, name) -> name } } - """.trimIndent() - ).build() + }.build() ) } @@ -158,9 +161,14 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato "$iconPrefix.$this" }, content = componentGroupConfig.contentData, - items = createItemsString(itemName, fileSpecBuilder, functionItems, childNodeItems?.map { - componentGroups[it]?.first to generateComponentsFullName(it) - }) + items = createItemsString( + itemName, + fileSpecBuilder, + functionItems, + childNodeItems?.map { + componentGroups[it]?.first to generateComponentsFullName(it) + }), + getItem = { (_, name) -> name } ) ) .build() @@ -173,13 +181,7 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato name = "flatMapComponents", type = listComponentsType ).addModifiers(KModifier.INTERNAL) - .delegate( - """ - lazy { - ${componentNameList.joinToString(",\n", "listOf(\n", ")")} - } - """.trimIndent() - ) + .lazy { createList("", componentNameList) { it } } .build() ) val file = codeGenerator.createNewFile( @@ -195,7 +197,7 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato fileSpec: FileSpec.Builder, functions: List>?, childNodes: List>? - ): String? { + ): List>? { val functionItems = functions ?: emptyList() val childNodeItems = childNodes ?: emptyList() return if (functions.isNullOrEmpty() && childNodes.isNullOrEmpty()) { @@ -203,23 +205,35 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato } else { (functionItems.map { (annotation, function) -> annotation to generateComponentItemProperty(group, fileSpec, function, annotation) - .removePrefix("`") - .removeSuffix("`") } + childNodeItems).sortedBy { (annotation, _) -> - (annotation?.arguments?.first { arg -> arg.name?.asString() == "index" }?.value as? Int) ?: Int.MAX_VALUE - }.joinToString( - ",\n", - "listOf(\n", - ")\n" - ) { "`${it.second}`" } + (annotation?.arguments?.first { arg -> arg.name?.asString() == "index" }?.value as? Int) + ?: Int.MAX_VALUE + } } } + private fun CodeBlock.Builder.createList( + prefix: String, + items: List, + item: (T) -> String + ): CodeBlock.Builder = addStatement("${prefix}listOf(") + .withTwoIndent { + items.forEachIndexed { index, t -> + val string = item(t) + if (index != items.lastIndex) { + addStatement("$string,") + } else { + addStatement(string) + } + } + } + .addStatement(")") + private fun generateComponentsFullName(group: String): String { - return group.replace( + return (group.replace( "/", "_" - ) + "Components" + ) + "Components").asPropertyName() } private fun generateComponentItemProperty( @@ -248,10 +262,11 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato packageNameString.substringAfterLast(".") ), simpleNameString ) + val propertyName = functionName.asPropertyName() val componentName = (nameArg?.value as? String)?.ifBlank { null } ?: functionDeclaration.simpleName.asString() .removeSuffix("Screen") - componentNameList.add("`$functionName`") + componentNameList.add(propertyName) var arg = "" functionDeclaration.parameters.forEach { val type = it.type.resolve().declaration @@ -260,10 +275,10 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato } } fileSpec.addProperty( - PropertySpec.builder("`$functionName`", componentItemClass) + PropertySpec.builder(propertyName, componentItemClass) .addModifiers(KModifier.INTERNAL) .initializer( - componentItemInitializerString( + componentItemInitializerString( name = componentName, group = group, description = description, @@ -272,31 +287,39 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato fileSpec.addImport(iconImportPrefix, this) "$iconPrefix.$this" }, - items = null + items = null, + getItem = { it } ) ) .build() ) - return "`$functionName`" + return propertyName } - private fun componentItemInitializerString( + private fun componentItemInitializerString( name: String, group: String, description: String, content: String?, icon: String?, - items: String? - ) = """ - ComponentItem( - name = "$name", - group = "${if (group.isNotBlank()) group.prefixIfNot("/") else "" }", - description = "$description", - content = $content, - icon = $icon, - items = $items - ) - """.trimIndent() + items: List?, + getItem: (T) -> String, + ) = CodeBlock.builder() + .addStatement("ComponentItem(") + .withTwoIndent { + addStatement("name = %S,", name) + addStatement("group = %S,", if (group.isNotBlank()) group.prefixIfNot("/") else "") + addStatement("description = %S,", description) + addStatement("content = $content,") + addStatement("icon = $icon,") + if (items != null) { + createList("items = ", items, getItem) + } else { + addStatement("items = null") + } + } + .addStatement(")") + .build() private fun generateComponentGroupConfig(group: String): ComponentGroupConfig { var icon: String? = null @@ -314,6 +337,28 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato return ComponentGroupConfig(icon, contentData) } + private fun PropertySpec.Builder.lazy(buildAction: CodeBlock.Builder.() -> Unit) = delegate( + CodeBlock.builder() + .addStatement("lazy {") + .withTwoIndent { buildAction() } + .addStatement("}") + .build() + ) + + private fun CodeBlock.Builder.withTwoIndent(buildAction: CodeBlock.Builder.() -> Unit): CodeBlock.Builder { + return withIndent { + withIndent(buildAction) + } + } + + private fun String.asPropertyName(): String { + return if (propertyNameRegex.matches(this)) { + this + } else { + "`$this`" + } + } + data class ComponentGroupConfig( val icon: String?, val contentData: String? From 805fd0552cd5c4251fe98afd04b78803e1f8db35 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sat, 2 Mar 2024 15:57:44 +0800 Subject: [PATCH 018/136] [Gallery] Update RadioButtonScreen --- .../screen/basicinput/RadioButtonScreen.kt | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt index f5e0103d..3bb1dcdf 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RadioButtonScreen.kt @@ -1,13 +1,30 @@ package com.konyaco.fluent.gallery.screen.basicinput +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.RadioButton +import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.annotation.Component +import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection -@Component(index = 10) +@Component( + index = 10, + description = "A control that allows a user to select a single option from a group of options." +) @Composable fun RadioButtonScreen() { Column(Modifier.fillMaxSize()) { @@ -15,6 +32,29 @@ fun RadioButtonScreen() { "RadioButton", "Use RadioButtons to let a user choose between mutually exclusive, related options. Generally contained within a RadioButtons group control." ) - // TODO: + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A group of RadioButton controls.", + sourceCode = sourceCodeOfRadioButtonSample + ) { + RadioButtonSample() + } + } + } +} + +@Sample +@Composable +fun RadioButtonSample() { + Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { + Text("Options:") + var selected by remember { mutableStateOf(0) } + RadioButton(selected = selected == 0, onClick = { selected = 0 }, label = "Option 1") + RadioButton(selected = selected == 1, onClick = { selected = 1 }, label = "Option 2") + RadioButton(selected = selected == 2, onClick = { selected = 2 }, label = "Option 3") } } \ No newline at end of file From c901601847318202776d760ad3544db5b9aa69d2 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sat, 2 Mar 2024 16:07:25 +0800 Subject: [PATCH 019/136] [Gallery] Add ProgressBarScreen and ProgressRingScreen. --- .../gallery/component/ComponentGroupInfo.kt | 2 +- .../screen/status/ProgressBarScreen.kt | 72 +++++++++++++++++++ .../screen/status/ProgressRingScreen.kt | 72 +++++++++++++++++++ 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/status/ProgressBarScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/status/ProgressRingScreen.kt diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt index bc71056f..de5dd4a4 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt @@ -44,7 +44,7 @@ object ComponentGroupInfo { @ComponentGroup("ArrowSort", index = 11) const val Scrolling = "Scrolling" - @ComponentGroup("ChatMultiple", index = 12) + @ComponentGroup("ChatMultiple", index = 12, packageMap = "$screenPackage.status") const val StatusAndInfo = "Status & info" @ComponentGroup("Color", index = 13) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/status/ProgressBarScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/status/ProgressBarScreen.kt new file mode 100644 index 00000000..2a37aedd --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/status/ProgressBarScreen.kt @@ -0,0 +1,72 @@ +package com.konyaco.fluent.gallery.screen.status + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.ProgressBar +import com.konyaco.fluent.gallery.annotation.Component +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection + +@Component( + index = 2, + description = "Shows the apps progress on a task, or that the app is performing ongoing work that doesn't block user interaction." +) +@Composable +fun ProgressBarScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "ProgressBar", + "The ProgressBar has two different visual representations:\n" + + "Indeterminate - shows that a task is ongoing, but doesn't block user interaction.\n" + + "Determinate - shows how much progress has been made on a known amount of work." + ) + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "An indeterminate progress bar.", + sourceCode = sourceCodeOfProgressBarSample + ) { + ProgressBarSample() + } + Spacer(Modifier.height(24.dp)) + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A determinate progress bar.", + sourceCode = sourceCodeOfDeterminateProgressBarSample + ) { + DeterminateProgressBarSample() + } + } + } +} + +@Sample +@Composable +private fun ProgressBarSample() { + ProgressBar() +} + +@Sample +@Composable +private fun DeterminateProgressBarSample() { + var progress by remember { mutableStateOf(0.5f) } + ProgressBar(progress) + // TODO: Use NumberBox to change progress +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/status/ProgressRingScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/status/ProgressRingScreen.kt new file mode 100644 index 00000000..ab070291 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/status/ProgressRingScreen.kt @@ -0,0 +1,72 @@ +package com.konyaco.fluent.gallery.screen.status + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.ProgressRing +import com.konyaco.fluent.gallery.annotation.Component +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection + +@Component( + index = 2, + description = "Shows the apps progress on a task, or that the app is performing ongoing work that does block user interaction." +) +@Composable +fun ProgressRingScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "ProgressRing", + "The ProgressRing has two different visual representations:\n" + + "Indeterminate - shows that a task is ongoing, but blocks user interaction.\n" + + "Determinate - shows how much progress has been made on a known amount of work." + ) + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "An indeterminate progress ring.", + sourceCode = sourceCodeOfProgressRingSample + ) { + ProgressRingSample() + } + Spacer(Modifier.height(24.dp)) + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A determinate progress ring.", + sourceCode = sourceCodeOfDeterminateProgressRingSample + ) { + DeterminateProgressRingSample() + } + } + } +} + +@Sample +@Composable +private fun ProgressRingSample() { + ProgressRing() +} + +@Sample +@Composable +private fun DeterminateProgressRingSample() { + var progress by remember { mutableStateOf(0.5f) } + ProgressRing(progress) + // TODO: Use NumberBox to change progress +} \ No newline at end of file From adb208e2024fbc29d20a32d29cf6e0171dd3e6c5 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sat, 2 Mar 2024 16:34:16 +0800 Subject: [PATCH 020/136] [Gallery] Add TextBlockScreen and TextBoxScreen. --- .../gallery/component/ComponentGroupInfo.kt | 2 +- .../gallery/screen/text/TextBlockScreen.kt | 67 ++++++++++++++++ .../gallery/screen/text/TextBoxScreen.kt | 78 +++++++++++++++++++ 3 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/text/TextBlockScreen.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/text/TextBoxScreen.kt diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt index de5dd4a4..c0566098 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt @@ -53,7 +53,7 @@ object ComponentGroupInfo { @ComponentGroup("System", index = 14) const val System = "System" - @ComponentGroup("TextFont", index = 15) + @ComponentGroup("TextFont", index = 15, packageMap = "$screenPackage.text") const val Text = "Text" @ComponentGroup("Window", index = 16) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/text/TextBlockScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/text/TextBlockScreen.kt new file mode 100644 index 00000000..d72a39e9 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/text/TextBlockScreen.kt @@ -0,0 +1,67 @@ +package com.konyaco.fluent.gallery.screen.text + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.Text +import com.konyaco.fluent.gallery.annotation.Component +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection + +@Component( + index = 5, + description = "A lightweight control for displaying small amounts of text." +) +@Composable +fun TextBlockScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "TextBlock", + "TextBlock is the primary control for displaying read-only text in your app. " + + "You typically display text by setting the Text property to a simple string. " + + "You can also display a series of strings in Run elements and give each different formatting." + ) + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A simple TextBox.", + sourceCode = sourceCodeOfSimpleTextBlockSample + ) { + SimpleTextBlockSample() + } + Spacer(Modifier.height(24.dp)) + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A TextBlock with a style applied.", + sourceCode = sourceCodeOfStyledTextBlockSample + ) { + StyledTextBlockSample() + } + } + } +} + +@Sample +@Composable +private fun SimpleTextBlockSample() { + Text("I am a TextBlock.") +} + +@Sample +@Composable +private fun StyledTextBlockSample() { + Text("I am a styled TextBlock", fontFamily = FontFamily.Cursive) +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/text/TextBoxScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/text/TextBoxScreen.kt new file mode 100644 index 00000000..28099d4f --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/text/TextBoxScreen.kt @@ -0,0 +1,78 @@ +package com.konyaco.fluent.gallery.screen.text + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.Text +import com.konyaco.fluent.component.TextField +import com.konyaco.fluent.gallery.annotation.Component +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection + +@Component( + index = 6, + description = "A single-line or multi-line plain text field." +) +@Composable +fun TextBoxScreen() { + Column(Modifier.fillMaxSize()) { + GalleryHeader( + "TextBox", + "Use a TextBox to let a user enter simple text input in your app. You can add a header and placeholder text to let the user know that the TextBox is for, and you can customize it in other ways." + ) + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A simple TextBox.", + sourceCode = sourceCodeOfTextBoxSample + ) { + TextBoxSample() + } + Spacer(Modifier.height(24.dp)) + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A TextBox with a header and placeholder text.", + sourceCode = sourceCodeOfTextBoxHeaderSample + ) { + TextBoxHeaderSample() + } + } + } +} + +@Sample +@Composable +private fun TextBoxSample() { + var value by remember { mutableStateOf(TextFieldValue()) } + TextField(value, onValueChange = { value = it }) +} + +@Sample +@Composable +private fun TextBoxHeaderSample() { + var value by remember { mutableStateOf(TextFieldValue()) } + TextField( + value = value, + onValueChange = { value = it }, + header = { Text("Enter your name:") }, + // placeholder = { Text("Name") }, + ) + // TODO: Support placeholder +} \ No newline at end of file From 45c024ab93b6fa510164b5811546eb7c4354aef9 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sat, 2 Mar 2024 16:34:34 +0800 Subject: [PATCH 021/136] [Gallery] Update padding in GalleryHeader. --- .../com/konyaco/fluent/gallery/component/GalleryHeader.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt index 2d8fce1e..171cae16 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt @@ -12,7 +12,7 @@ import com.konyaco.fluent.component.Text @Composable fun GalleryHeader(title: String, description: String) { - Column(Modifier.padding(top = 32.dp, bottom = 12.dp, start = 32.dp, end = 32.dp)) { + Column(Modifier.padding(top = 32.dp, bottom = 24.dp, start = 32.dp, end = 32.dp)) { Text( text = title, style = FluentTheme.typography.title From 47f01e00eaab3f3ab873add38117f0326396110d Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sat, 2 Mar 2024 16:35:51 +0800 Subject: [PATCH 022/136] [Gallery] Update animation on switching screen. --- .../kotlin/com/konyaco/fluent/gallery/App.kt | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt index 9ec17698..a3b2dbf9 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt @@ -1,15 +1,33 @@ package com.konyaco.fluent.gallery -import androidx.compose.animation.* +import androidx.compose.animation.AnimatedContent import androidx.compose.animation.core.tween -import androidx.compose.foundation.layout.* -import androidx.compose.runtime.* +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.slideInVertically +import androidx.compose.animation.togetherWith +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.unit.dp import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing -import com.konyaco.fluent.component.* +import com.konyaco.fluent.component.Icon +import com.konyaco.fluent.component.NavigationItemSeparator +import com.konyaco.fluent.component.SideNav +import com.konyaco.fluent.component.SideNavItem +import com.konyaco.fluent.component.Text +import com.konyaco.fluent.component.TextField import com.konyaco.fluent.gallery.component.ComponentItem import com.konyaco.fluent.gallery.component.ComponentNavigator import com.konyaco.fluent.gallery.component.components @@ -77,19 +95,20 @@ fun App() { (fadeIn( tween( FluentDuration.ShortDuration, - easing = FluentEasing.FastInvokeEasing, - delayMillis = FluentDuration.ShortDuration + easing = FluentEasing.FadeInFadeOutEasing, + delayMillis = FluentDuration.QuickDuration ) ) + slideInVertically( tween( - FluentDuration.ShortDuration, + FluentDuration.MediumDuration, easing = FluentEasing.FastInvokeEasing, - delayMillis = FluentDuration.ShortDuration + delayMillis = FluentDuration.QuickDuration ) - ) { it / 6 }) togetherWith fadeOut( + ) { it / 5 }) togetherWith fadeOut( tween( FluentDuration.QuickDuration, - easing = FluentEasing.FastDismissEasing + easing = FluentEasing.FadeInFadeOutEasing, + delayMillis = FluentDuration.QuickDuration ) ) }) { From b0c6b448cf2ae8be9b72eef877ad4488f541fb7f Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 2 Mar 2024 17:41:55 +0800 Subject: [PATCH 023/136] [Gallery] Fixed Android compilation error --- .../fluent/gallery/processor/ComponentProcessor.kt | 9 ++++++++- .../fluent/gallery/screen/basicinput/ButtonScreen.kt | 2 -- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt index ba006b4d..d7af04bb 100644 --- a/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt +++ b/gallery-processor/src/jvmMain/kotlin/com/konyaco/fluent/gallery/processor/ComponentProcessor.kt @@ -355,7 +355,14 @@ class ComponentProcessor(private val logger: KSPLogger, private val codeGenerato return if (propertyNameRegex.matches(this)) { this } else { - "`$this`" + buildString(length) { + this@asPropertyName.forEach { + append(when(it) { + ' ', '&', '/' -> '_' + else -> it + }) + } + } } } diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt index dbc31f6c..f6a2f92c 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ButtonScreen.kt @@ -1,6 +1,5 @@ package com.konyaco.fluent.gallery.screen.basicinput -import androidx.compose.desktop.ui.tooling.preview.Preview import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize @@ -30,7 +29,6 @@ import com.konyaco.fluent.icons.regular.Home description = "A control that responds to user input and raises a Click event." ) @Composable -@Preview fun ButtonScreen() { Column(Modifier.fillMaxSize()) { GalleryHeader( From 0dc476bd0a2749070837c973ec4900c8a679fb46 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Mon, 11 Mar 2024 14:45:15 +0800 Subject: [PATCH 024/136] [Gallery] Fixed Open Url crashed in Android. --- .../com/konyaco/fluent/gallery/component/TodoComponent.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/TodoComponent.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/TodoComponent.kt index e5d7bb0e..33f64737 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/TodoComponent.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/TodoComponent.kt @@ -5,21 +5,19 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalUriHandler import com.konyaco.fluent.component.Button import com.konyaco.fluent.component.Text -import java.awt.Desktop -import java.net.URI @Composable fun TodoComponent() { Box(Modifier.fillMaxWidth()) { Text(modifier = Modifier.align(Alignment.CenterStart), text = "TODO") + val urlHandle = LocalUriHandler.current Button( modifier = Modifier.align(Alignment.CenterEnd), onClick = { - if (Desktop.isDesktopSupported()) { - Desktop.getDesktop().browse(URI("https://github.com/Konyaco/compose-fluent-ui")) - } + urlHandle.openUri("https://github.com/Konyaco/compose-fluent-ui") }) { Text("Contribute") } From a106b6bcd659bb32d3258742d4b92c97653f99d6 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 2 Mar 2024 22:59:05 +0800 Subject: [PATCH 025/136] [fluent] Add key event support for Flyout and DropdownMenu --- .../konyaco/fluent/component/Popup.android.kt | 16 +++++++++++++++ .../com/konyaco/fluent/component/Dropdown.kt | 9 ++++++++- .../com/konyaco/fluent/component/Flyout.kt | 18 ++++++++++++++--- .../konyaco/fluent/component/MenuFlyout.kt | 20 +++++++++++++++---- .../com/konyaco/fluent/component/Popup.kt | 17 ++++++++++++++++ .../com/konyaco/fluent/component/Popup.jvm.kt | 16 +++++++++++++++ 6 files changed, 88 insertions(+), 8 deletions(-) create mode 100644 fluent/src/androidMain/kotlin/com/konyaco/fluent/component/Popup.android.kt create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Popup.kt create mode 100644 fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/Popup.jvm.kt diff --git a/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/Popup.android.kt b/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/Popup.android.kt new file mode 100644 index 00000000..9c0d3580 --- /dev/null +++ b/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/Popup.android.kt @@ -0,0 +1,16 @@ +package com.konyaco.fluent.component + +import androidx.compose.runtime.Composable +import androidx.compose.ui.input.key.KeyEvent +import androidx.compose.ui.window.PopupPositionProvider +import androidx.compose.ui.window.PopupProperties + +@Composable +internal actual fun Popup( + popupPositionProvider: PopupPositionProvider, + onDismissRequest: (() -> Unit)?, + properties: PopupProperties, + onPreviewKeyEvent: ((KeyEvent) -> Boolean)?, + onKeyEvent: ((KeyEvent) -> Boolean)?, + content: @Composable () -> Unit +) = androidx.compose.ui.window.Popup(popupPositionProvider, onDismissRequest, properties, content) \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt index b54b8098..689c67c4 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.TransformOrigin +import androidx.compose.ui.input.key.KeyEvent import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.DpOffset @@ -35,8 +36,8 @@ import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Popup import androidx.compose.ui.window.PopupPositionProvider +import androidx.compose.ui.window.PopupProperties import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing @@ -49,6 +50,9 @@ fun DropdownMenu( expanded: Boolean, onDismissRequest: () -> Unit, modifier: Modifier = Modifier, + focusable: Boolean = false, + onPreviewKeyEvent: ((KeyEvent) -> Boolean) = { false }, + onKeyEvent: ((KeyEvent) -> Boolean) = { false }, offset: DpOffset = DpOffset(0.dp, 0.dp), // TODO: Offset content: @Composable ColumnScope.() -> Unit ) { @@ -62,7 +66,10 @@ fun DropdownMenu( val popupPositionProvider = DropdownMenuPositionProvider(density) Popup( + properties = PopupProperties(focusable = focusable), onDismissRequest = onDismissRequest, + onKeyEvent = onKeyEvent, + onPreviewKeyEvent = onPreviewKeyEvent, popupPositionProvider = popupPositionProvider, ) { DropdownMenuContent( diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt index 79228973..1e5e6886 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.geometry.Size import androidx.compose.ui.geometry.center import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.input.key.KeyEvent import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntOffset @@ -35,7 +36,6 @@ import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.center import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Popup import androidx.compose.ui.window.PopupPositionProvider import androidx.compose.ui.window.PopupProperties import com.konyaco.fluent.animation.FluentDuration @@ -49,6 +49,8 @@ fun FlyoutContainer( modifier: Modifier = Modifier, initialVisible: Boolean = false, placement: FlyoutPlacement = FlyoutPlacement.Auto, + onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, + onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, content: @Composable FlyoutScope.() -> Unit ) { BasicFlyoutContainer( @@ -57,6 +59,8 @@ fun FlyoutContainer( visible = isFlyoutVisible, onDismissRequest = { isFlyoutVisible = false }, placement = placement, + onKeyEvent = onKeyEvent, + onPreviewKeyEvent = onPreviewKeyEvent, content = flyout ) }, @@ -109,6 +113,8 @@ fun Flyout( modifier: Modifier = Modifier, placement: FlyoutPlacement = FlyoutPlacement.Auto, shape: Shape = RoundedCornerShape(8.dp), + onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, + onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, content: @Composable () -> Unit ) { BasicFlyout( @@ -117,6 +123,8 @@ fun Flyout( modifier = modifier, positionProvider = rememberFlyoutPositionProvider(initialPlacement = placement), shape = shape, + onKeyEvent = onKeyEvent, + onPreviewKeyEvent = onPreviewKeyEvent, content = content ) } @@ -130,6 +138,8 @@ internal fun BasicFlyout( shape: Shape = RoundedCornerShape(8.dp), contentPadding: PaddingValues = PaddingValues(12.dp), positionProvider: FlyoutPositionProvider = rememberFlyoutPositionProvider(), + onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, + onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, content: @Composable () -> Unit ) { val visibleState = remember { @@ -137,10 +147,12 @@ internal fun BasicFlyout( } visibleState.targetState = visible if (visibleState.currentState || visibleState.targetState) { - Popup( + com.konyaco.fluent.component.Popup( onDismissRequest = onDismissRequest, - properties = PopupProperties(clippingEnabled = false), + properties = PopupProperties(clippingEnabled = false, focusable = onKeyEvent != null || onPreviewKeyEvent != null), popupPositionProvider = positionProvider, + onKeyEvent = onKeyEvent, + onPreviewKeyEvent = onPreviewKeyEvent ) { if (positionProvider.applyAnimation) { FlyoutContent( diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt index 8846659f..8bd9a318 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt @@ -43,6 +43,7 @@ import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.input.key.KeyEvent import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntRect @@ -67,6 +68,8 @@ fun MenuFlyoutContainer( modifier: Modifier = Modifier, initialVisible: Boolean = false, placement: FlyoutPlacement = FlyoutPlacement.Auto, + onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, + onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, content: @Composable FlyoutScope.() -> Unit ) { BasicFlyoutContainer( @@ -76,8 +79,9 @@ fun MenuFlyoutContainer( onDismissRequest = { isFlyoutVisible = false }, placement = placement, content = flyout, - - ) + onKeyEvent = onKeyEvent, + onPreviewKeyEvent = onPreviewKeyEvent + ) }, content = content, modifier = modifier, @@ -92,6 +96,8 @@ fun MenuFlyout( modifier: Modifier = Modifier, placement: FlyoutPlacement = FlyoutPlacement.Auto, shape: Shape = RoundedCornerShape(8.dp), + onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, + onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, content: @Composable MenuFlyoutScope.() -> Unit ) { MenuFlyout( @@ -100,7 +106,9 @@ fun MenuFlyout( modifier = modifier, shape = shape, positionProvider = rememberFlyoutPositionProvider(placement), - content = content + content = content, + onKeyEvent = onKeyEvent, + onPreviewKeyEvent = onPreviewKeyEvent ) } @@ -112,6 +120,8 @@ private fun MenuFlyout( shape: Shape = RoundedCornerShape(8.dp), positionProvider: FlyoutPositionProvider = rememberFlyoutPositionProvider(), enterPlacementAnimation: (FlyoutPlacement) -> EnterTransition = ::defaultFlyoutEnterPlacementAnimation, + onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, + onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, content: @Composable MenuFlyoutScope.() -> Unit ) { BasicFlyout( @@ -121,7 +131,9 @@ private fun MenuFlyout( enterPlacementAnimation = enterPlacementAnimation, shape = shape, positionProvider = positionProvider, - contentPadding = PaddingValues(vertical = 2.dp) + contentPadding = PaddingValues(vertical = 2.dp), + onKeyEvent = onKeyEvent, + onPreviewKeyEvent = onPreviewKeyEvent ) { Column( modifier = Modifier.width(IntrinsicSize.Max) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Popup.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Popup.kt new file mode 100644 index 00000000..b16b4453 --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Popup.kt @@ -0,0 +1,17 @@ +package com.konyaco.fluent.component + +import androidx.compose.runtime.Composable +import androidx.compose.ui.input.key.KeyEvent +import androidx.compose.ui.window.PopupPositionProvider +import androidx.compose.ui.window.PopupProperties + +//Remove when compose common source support key event parameter +@Composable +internal expect fun Popup( + popupPositionProvider: PopupPositionProvider, + onDismissRequest: (() -> Unit)? = null, + properties: PopupProperties = PopupProperties(), + onPreviewKeyEvent: ((KeyEvent) -> Boolean)? = null, + onKeyEvent: ((KeyEvent) -> Boolean)? = null, + content: @Composable () -> Unit +) \ No newline at end of file diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/Popup.jvm.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/Popup.jvm.kt new file mode 100644 index 00000000..01e4ca1f --- /dev/null +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/Popup.jvm.kt @@ -0,0 +1,16 @@ +package com.konyaco.fluent.component + +import androidx.compose.runtime.Composable +import androidx.compose.ui.input.key.KeyEvent +import androidx.compose.ui.window.PopupPositionProvider +import androidx.compose.ui.window.PopupProperties + +@Composable +internal actual fun Popup( + popupPositionProvider: PopupPositionProvider, + onDismissRequest: (() -> Unit)?, + properties: PopupProperties, + onPreviewKeyEvent: ((KeyEvent) -> Boolean)?, + onKeyEvent: ((KeyEvent) -> Boolean)?, + content: @Composable () -> Unit +) = androidx.compose.ui.window.Popup(popupPositionProvider, onDismissRequest, properties, onPreviewKeyEvent, onKeyEvent, content) \ No newline at end of file From df4f3e53ba3604e6afcf0d79c63ca01fec3174ec Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 9 Mar 2024 15:44:38 +0800 Subject: [PATCH 026/136] [fluent] Fix the issue of incorrect nested Popup position calculation on Android. --- .../konyaco/fluent/component/Popup.android.kt | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/Popup.android.kt b/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/Popup.android.kt index 9c0d3580..8079b839 100644 --- a/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/Popup.android.kt +++ b/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/Popup.android.kt @@ -1,7 +1,11 @@ package com.konyaco.fluent.component -import androidx.compose.runtime.Composable +import androidx.compose.runtime.* import androidx.compose.ui.input.key.KeyEvent +import androidx.compose.ui.unit.IntOffset +import androidx.compose.ui.unit.IntRect +import androidx.compose.ui.unit.IntSize +import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.window.PopupPositionProvider import androidx.compose.ui.window.PopupProperties @@ -13,4 +17,42 @@ internal actual fun Popup( onPreviewKeyEvent: ((KeyEvent) -> Boolean)?, onKeyEvent: ((KeyEvent) -> Boolean)?, content: @Composable () -> Unit -) = androidx.compose.ui.window.Popup(popupPositionProvider, onDismissRequest, properties, content) \ No newline at end of file +) { + val offset = LocalPopupOffset.current + val delegatePopupPositionProvider = remember(popupPositionProvider) { + DelegatePopupPositionProvider({ offset }, popupPositionProvider) + } + androidx.compose.ui.window.Popup(delegatePopupPositionProvider, onDismissRequest, properties) { + CompositionLocalProvider( + LocalPopupOffset provides delegatePopupPositionProvider.currentOffset, + content = content + ) + } +} + +// Workaround for android nested popup position calculate +private val LocalPopupOffset = staticCompositionLocalOf { IntOffset.Zero } + +private class DelegatePopupPositionProvider( + val offset: () -> IntOffset, + val positionProvider: PopupPositionProvider +): PopupPositionProvider { + + var currentOffset by mutableStateOf(IntOffset.Zero) + + override fun calculatePosition( + anchorBounds: IntRect, + windowSize: IntSize, + layoutDirection: LayoutDirection, + popupContentSize: IntSize + ): IntOffset { + return positionProvider.calculatePosition( + anchorBounds.translate(offset()), + windowSize, + layoutDirection, + popupContentSize + ).apply { + currentOffset = this + } + } +} \ No newline at end of file From 0bfe219a4644309f0eb8a68840db638645f0b544 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Mon, 11 Mar 2024 14:36:11 +0800 Subject: [PATCH 027/136] [fluent] refactor FlyoutPositionProvider --- .../com/konyaco/fluent/component/Flyout.kt | 375 +----------- .../component/FlyoutPositionProvider.kt | 537 ++++++++++++++++++ .../konyaco/fluent/component/MenuFlyout.kt | 7 +- 3 files changed, 550 insertions(+), 369 deletions(-) create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FlyoutPositionProvider.kt diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt index 1e5e6886..d25fcce8 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt @@ -15,28 +15,16 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState -import androidx.compose.runtime.Stable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.geometry.Size -import androidx.compose.ui.geometry.center import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.key.KeyEvent -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.IntOffset -import androidx.compose.ui.unit.IntRect -import androidx.compose.ui.unit.IntSize -import androidx.compose.ui.unit.LayoutDirection -import androidx.compose.ui.unit.center import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.PopupPositionProvider import androidx.compose.ui.window.PopupProperties import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing @@ -49,6 +37,7 @@ fun FlyoutContainer( modifier: Modifier = Modifier, initialVisible: Boolean = false, placement: FlyoutPlacement = FlyoutPlacement.Auto, + adaptivePlacement: Boolean = false, onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, content: @Composable FlyoutScope.() -> Unit @@ -59,6 +48,7 @@ fun FlyoutContainer( visible = isFlyoutVisible, onDismissRequest = { isFlyoutVisible = false }, placement = placement, + adaptivePlacement = adaptivePlacement, onKeyEvent = onKeyEvent, onPreviewKeyEvent = onPreviewKeyEvent, content = flyout @@ -112,6 +102,7 @@ fun Flyout( onDismissRequest: () -> Unit, modifier: Modifier = Modifier, placement: FlyoutPlacement = FlyoutPlacement.Auto, + adaptivePlacement: Boolean = false, shape: Shape = RoundedCornerShape(8.dp), onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, @@ -121,7 +112,10 @@ fun Flyout( visible = visible, onDismissRequest = onDismissRequest, modifier = modifier, - positionProvider = rememberFlyoutPositionProvider(initialPlacement = placement), + positionProvider = rememberFlyoutPositionProvider( + initialPlacement = placement, + adaptivePlacement = adaptivePlacement + ), shape = shape, onKeyEvent = onKeyEvent, onPreviewKeyEvent = onPreviewKeyEvent, @@ -147,7 +141,7 @@ internal fun BasicFlyout( } visibleState.targetState = visible if (visibleState.currentState || visibleState.targetState) { - com.konyaco.fluent.component.Popup( + Popup( onDismissRequest = onDismissRequest, properties = PopupProperties(clippingEnabled = false, focusable = onKeyEvent != null || onPreviewKeyEvent != null), popupPositionProvider = positionProvider, @@ -210,359 +204,6 @@ internal fun FlyoutContent( } } -@Composable -internal fun rememberFlyoutPositionProvider( - initialPlacement: FlyoutPlacement = FlyoutPlacement.Auto, - paddingToAnchor: PaddingValues = PaddingValues(flyoutDefaultPadding) -): FlyoutPositionProvider { - val density = LocalDensity.current - return remember(initialPlacement, density, paddingToAnchor) { - FlyoutPositionProvider(density, initialPlacement, paddingToAnchor) - } -} - -@Stable -internal open class FlyoutPositionProvider( - private val density: Density, - private val initialPlacement: FlyoutPlacement = FlyoutPlacement.Auto, - private val paddingToAnchor: PaddingValues = PaddingValues(flyoutDefaultPadding), -) : PopupPositionProvider { - - var applyAnimation by mutableStateOf(false) - private set - - var targetPlacement by mutableStateOf(initialPlacement) - private set - - override fun calculatePosition( - anchorBounds: IntRect, - windowSize: IntSize, - layoutDirection: LayoutDirection, - popupContentSize: IntSize - ): IntOffset { - applyAnimation = false - with(density) { - val popupPadding = flyoutPopPaddingFixShadowRender.toPx() - val popupActualSize = Size( - popupContentSize.width - popupPadding * 2, - popupContentSize.height - popupPadding * 2 - ) - val horizontalPlacement: HorizontalPlacement - val verticalPlacement: VerticalPlacement - - targetPlacement = if (initialPlacement != FlyoutPlacement.Auto) { - initialPlacement.apply { - val (targetHorizontalPlacement, targetVerticalPlacement) = transformPlacement( - initialPlacement - ) - horizontalPlacement = targetHorizontalPlacement - verticalPlacement = targetVerticalPlacement - } - } else { - val (targetHorizontalPlacement, targetVerticalPlacement) = calculateTargetPlacement( - anchorBounds, - windowSize, - layoutDirection, - popupActualSize - ) - horizontalPlacement = targetHorizontalPlacement - verticalPlacement = targetVerticalPlacement - transformPlacement(horizontalPlacement, verticalPlacement) - } - applyAnimation = true - if (targetPlacement == FlyoutPlacement.Full) { - return IntOffset((windowSize.width - popupContentSize.width) / 2, (windowSize.height - popupContentSize.height) / 2) - } - val popupActualCenter = popupActualSize.center - val anchorCenter = anchorBounds.center - return IntOffset( - x = (getOffsetX( - horizontalPlacement, - layoutDirection, - anchorBounds, - anchorCenter, - popupActualSize, - popupActualCenter, - windowSize - ) - popupPadding).toInt(), - y = (getOffsetY( - verticalPlacement, - anchorBounds, - anchorCenter, - popupActualSize, - popupActualCenter, - windowSize - ) - popupPadding).toInt() - ) - } - } - - private fun Density.getOffsetX( - placement: HorizontalPlacement, - layoutDirection: LayoutDirection, - anchorBounds: IntRect, - anchorCenter: IntOffset, - popupContentSize: Size, - popupContentCenter: Offset, - windowSize: IntSize - ): Float { - val isLTR = layoutDirection == LayoutDirection.Ltr - return if (isLTR) { - when (placement) { - HorizontalPlacement.Start -> anchorBounds.left - popupContentSize.width - paddingToAnchor.calculateLeftPadding( - layoutDirection - ).toPx() - - HorizontalPlacement.End -> anchorBounds.right + paddingToAnchor.calculateRightPadding( - layoutDirection - ).toPx() - - HorizontalPlacement.Center -> anchorCenter.x - popupContentCenter.x - HorizontalPlacement.AlignedStart -> anchorBounds.left.toFloat() - HorizontalPlacement.AlignedEnd -> anchorBounds.right - popupContentSize.width - else -> windowSize.center.x - popupContentCenter.x - } - } else { - when (placement) { - HorizontalPlacement.End -> anchorBounds.left - popupContentSize.width - paddingToAnchor.calculateLeftPadding( - layoutDirection - ).toPx() - - HorizontalPlacement.Start -> anchorBounds.right + paddingToAnchor.calculateRightPadding( - layoutDirection - ).toPx() - - HorizontalPlacement.Center -> anchorCenter.x - popupContentCenter.x - HorizontalPlacement.AlignedEnd -> anchorBounds.left.toFloat() - HorizontalPlacement.AlignedStart -> anchorBounds.right - popupContentSize.width - else -> windowSize.center.x - popupContentCenter.x - } - } - } - - private fun Density.getOffsetY( - placement: VerticalPlacement, - anchorBounds: IntRect, - anchorCenter: IntOffset, - popupContentSize: Size, - popupContentCenter: Offset, - windowSize: IntSize - ): Float { - return when (placement) { - VerticalPlacement.Top -> (anchorBounds.top - popupContentSize.height - paddingToAnchor.calculateTopPadding() - .toPx()) - - VerticalPlacement.Center -> anchorCenter.y - popupContentCenter.y - VerticalPlacement.Bottom -> anchorBounds.bottom + paddingToAnchor.calculateBottomPadding() - .toPx() - - VerticalPlacement.AlignedTop -> anchorBounds.top.toFloat() - VerticalPlacement.AlignedBottom -> anchorBounds.bottom - popupContentSize.height - else -> windowSize.center.y - popupContentCenter.y - } - } - - protected open fun Density.calculateTargetPlacement( - anchorBounds: IntRect, - windowSize: IntSize, - layoutDirection: LayoutDirection, - popupContentSize: Size - ): Pair { - return calculateVerticalPlacement( - anchorBounds, - windowSize, - layoutDirection, - popupContentSize - ) - } - - private fun Density.calculateVerticalPlacement( - anchorBounds: IntRect, - windowSize: IntSize, - layoutDirection: LayoutDirection, - popupContentSize: Size - ): Pair { - val hasTopSpace = anchorBounds.top - paddingToAnchor.calculateTopPadding() - .toPx() >= popupContentSize.height - val halfContentWidth = popupContentSize.width / 2f - val center = anchorBounds.center - - fun calculateStartOrEndOrCenter(): HorizontalPlacement { - val hasLeftSpace = center.x >= halfContentWidth - val hasRightSpace = windowSize.width - center.x >= halfContentWidth - return when { - hasRightSpace && hasLeftSpace -> HorizontalPlacement.Center - (hasLeftSpace && layoutDirection == LayoutDirection.Ltr) or - (hasRightSpace && layoutDirection == LayoutDirection.Rtl) -> HorizontalPlacement.Start - - hasRightSpace -> HorizontalPlacement.Center - hasLeftSpace -> HorizontalPlacement.End - else -> HorizontalPlacement.None - } - } - - if (hasTopSpace) { - return calculateStartOrEndOrCenter() to VerticalPlacement.Top - } - val hasBottomSpace = anchorBounds.bottom - paddingToAnchor.calculateBottomPadding() - .toPx() >= popupContentSize.height - - if (hasBottomSpace) { - return calculateStartOrEndOrCenter() to VerticalPlacement.Bottom - } - return HorizontalPlacement.Center to VerticalPlacement.Top - } - - protected fun Density.calculateHorizontalPlacement( - anchorBounds: IntRect, - windowSize: IntSize, - layoutDirection: LayoutDirection, - popupContentSize: Size - ): Pair { - val isLRT = layoutDirection == LayoutDirection.Ltr - val halfContentWidth = popupContentSize.width / 2f - val halfContentHeight = popupContentSize.height / 2f - val center = anchorBounds.center - val hasLeftSpace = - center.x >= halfContentWidth + paddingToAnchor.calculateLeftPadding(layoutDirection) - .toPx() - val hasRightSpace = - windowSize.width - center.x >= halfContentWidth + paddingToAnchor.calculateRightPadding( - layoutDirection - ).toPx() - - fun calculateTopOrBottomOrCenter(): VerticalPlacement { - val hasAlignedTopSpace = windowSize.height - anchorBounds.top >= popupContentSize.height - val hasAlignedBottomSpace = anchorBounds.bottom >= popupContentSize.height - if (hasAlignedTopSpace) { - return VerticalPlacement.AlignedTop - } - if (hasAlignedBottomSpace) { - return VerticalPlacement.AlignedBottom - } - if (center.y - halfContentHeight > 0) { - return VerticalPlacement.Center - } - return VerticalPlacement.None - } - - if (isLRT) { - if (hasRightSpace) { - return HorizontalPlacement.End to calculateTopOrBottomOrCenter() - } - - if (hasLeftSpace) { - return HorizontalPlacement.Start to calculateTopOrBottomOrCenter() - } - } else { - if (hasLeftSpace) { - return HorizontalPlacement.End to calculateTopOrBottomOrCenter() - } - if (hasRightSpace) { - return HorizontalPlacement.Start to calculateTopOrBottomOrCenter() - } - } - - return HorizontalPlacement.End to VerticalPlacement.AlignedTop - } - - private fun transformPlacement( - horizontalPlacement: HorizontalPlacement, - verticalPlacement: VerticalPlacement - ): FlyoutPlacement { - return when (horizontalPlacement) { - HorizontalPlacement.Start -> { - when (verticalPlacement) { - VerticalPlacement.AlignedTop -> FlyoutPlacement.StartAlignedTop - VerticalPlacement.AlignedBottom -> FlyoutPlacement.StartAlignedBottom - else -> FlyoutPlacement.Start - } - } - - HorizontalPlacement.End -> { - when (verticalPlacement) { - VerticalPlacement.AlignedTop -> FlyoutPlacement.EndAlignedTop - VerticalPlacement.AlignedBottom -> FlyoutPlacement.EndAlignedBottom - else -> FlyoutPlacement.End - } - } - - HorizontalPlacement.Center -> { - when (verticalPlacement) { - VerticalPlacement.Top -> FlyoutPlacement.Top - VerticalPlacement.Bottom -> FlyoutPlacement.Bottom - else -> FlyoutPlacement.Full - } - } - - HorizontalPlacement.AlignedStart -> { - when (verticalPlacement) { - VerticalPlacement.Top -> FlyoutPlacement.TopAlignedStart - VerticalPlacement.Bottom -> FlyoutPlacement.BottomAlignedStart - else -> FlyoutPlacement.Full - } - } - - HorizontalPlacement.AlignedEnd -> { - when (verticalPlacement) { - VerticalPlacement.Top -> FlyoutPlacement.TopAlignedEnd - VerticalPlacement.Bottom -> FlyoutPlacement.BottomAlignedEnd - else -> FlyoutPlacement.Full - } - } - - else -> FlyoutPlacement.Full - } - } - - private fun transformPlacement(flyoutPlacement: FlyoutPlacement): Pair { - return when (flyoutPlacement) { - FlyoutPlacement.Top -> HorizontalPlacement.Center to VerticalPlacement.Top - FlyoutPlacement.Bottom -> HorizontalPlacement.Center to VerticalPlacement.Bottom - FlyoutPlacement.Start -> HorizontalPlacement.Start to VerticalPlacement.Center - FlyoutPlacement.End -> HorizontalPlacement.End to VerticalPlacement.Center - FlyoutPlacement.TopAlignedStart -> HorizontalPlacement.AlignedStart to VerticalPlacement.Top - FlyoutPlacement.TopAlignedEnd -> HorizontalPlacement.AlignedEnd to VerticalPlacement.Top - FlyoutPlacement.BottomAlignedStart -> HorizontalPlacement.AlignedStart to VerticalPlacement.Bottom - FlyoutPlacement.BottomAlignedEnd -> HorizontalPlacement.AlignedEnd to VerticalPlacement.Bottom - FlyoutPlacement.StartAlignedTop -> HorizontalPlacement.Start to VerticalPlacement.AlignedTop - FlyoutPlacement.StartAlignedBottom -> HorizontalPlacement.Start to VerticalPlacement.AlignedBottom - FlyoutPlacement.EndAlignedTop -> HorizontalPlacement.End to VerticalPlacement.AlignedTop - FlyoutPlacement.EndAlignedBottom -> HorizontalPlacement.End to VerticalPlacement.AlignedBottom - FlyoutPlacement.Full -> HorizontalPlacement.Center to VerticalPlacement.Center - else -> HorizontalPlacement.None to VerticalPlacement.None - } - } - - @JvmInline - protected value class HorizontalPlacement( - private val value: Int - ) { - companion object { - val Start = HorizontalPlacement(0) - val Center = HorizontalPlacement(1) - val End = HorizontalPlacement(2) - val None = HorizontalPlacement(-1) - val AlignedStart = HorizontalPlacement(3) - val AlignedEnd = HorizontalPlacement(4) - } - } - - @JvmInline - protected value class VerticalPlacement( - private val value: Int - ) { - companion object { - val Top = VerticalPlacement(0) - val Center = VerticalPlacement(1) - val Bottom = VerticalPlacement(2) - val AlignedTop = VerticalPlacement(3) - val AlignedBottom = VerticalPlacement(4) - val None = VerticalPlacement(-1) - } - } -} - private class FlyoutScopeImpl(visibleState: MutableState) : FlyoutScope { override var isFlyoutVisible: Boolean by visibleState diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FlyoutPositionProvider.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FlyoutPositionProvider.kt new file mode 100644 index 00000000..d6e021fc --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FlyoutPositionProvider.kt @@ -0,0 +1,537 @@ +package com.konyaco.fluent.component + +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.runtime.* +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.geometry.center +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.unit.* +import androidx.compose.ui.window.PopupPositionProvider + +@Composable +internal fun rememberFlyoutPositionProvider( + initialPlacement: FlyoutPlacement = FlyoutPlacement.Auto, + paddingToAnchor: PaddingValues = PaddingValues(flyoutDefaultPadding), + adaptivePlacement: Boolean = false +): FlyoutPositionProvider { + val density = LocalDensity.current + return remember(initialPlacement, density, paddingToAnchor, adaptivePlacement) { + FlyoutPositionProvider(density, initialPlacement, paddingToAnchor, adaptivePlacement) + } +} + +@Stable +internal open class FlyoutPositionProvider( + private val density: Density, + private val initialPlacement: FlyoutPlacement = FlyoutPlacement.Auto, + private val paddingToAnchor: PaddingValues = PaddingValues(flyoutDefaultPadding), + private val adaptivePlacement: Boolean = false, +) : PopupPositionProvider { + + var applyAnimation by mutableStateOf(false) + private set + + var targetPlacement by mutableStateOf(initialPlacement) + private set + + override fun calculatePosition( + anchorBounds: IntRect, + windowSize: IntSize, + layoutDirection: LayoutDirection, + popupContentSize: IntSize + ): IntOffset { + applyAnimation = false + with(density) { + val popupPadding = flyoutPopPaddingFixShadowRender.toPx() + val popupActualSize = Size( + popupContentSize.width - popupPadding * 2, + popupContentSize.height - popupPadding * 2 + ) + var (horizontalPlacement, verticalPlacement) = transformPlacement(initialPlacement) + targetPlacement = when { + initialPlacement != FlyoutPlacement.Auto && !adaptivePlacement -> initialPlacement + + initialPlacement != FlyoutPlacement.Auto && adaptivePlacement -> { + val (hasHorizontalSpace, hasVerticalSpace) = hasSpaceForTargetPlacement( + horizontalPlacement, + verticalPlacement, + layoutDirection, + popupActualSize, + anchorBounds, + windowSize + ) + when { + hasHorizontalSpace && hasVerticalSpace -> initialPlacement + hasHorizontalSpace -> transformPlacement( + horizontalPlacement, + calculateTopOrBottomPlacement( + anchorBounds, windowSize, popupActualSize + ).apply { + verticalPlacement = this + } + ) + + hasVerticalSpace -> transformPlacement( + calculateStartOrEndPlacement( + anchorBounds, windowSize, layoutDirection, popupActualSize + ).apply { + horizontalPlacement = this + }, + verticalPlacement + ) + + else -> { + val (targetHorizontalPlacement, targetVerticalPlacement) = calculateTargetPlacement( + anchorBounds, + windowSize, + layoutDirection, + popupActualSize + ) + horizontalPlacement = targetHorizontalPlacement + verticalPlacement = targetVerticalPlacement + transformPlacement(horizontalPlacement, verticalPlacement) + } + } + } + + else -> { + val (targetHorizontalPlacement, targetVerticalPlacement) = calculateTargetPlacement( + anchorBounds, + windowSize, + layoutDirection, + popupActualSize + ) + horizontalPlacement = targetHorizontalPlacement + verticalPlacement = targetVerticalPlacement + transformPlacement(horizontalPlacement, verticalPlacement) + } + } + applyAnimation = true + if (targetPlacement == FlyoutPlacement.Full) { + return IntOffset( + (windowSize.width - popupContentSize.width) / 2, + (windowSize.height - popupContentSize.height) / 2 + ) + } + val popupActualCenter = popupActualSize.center + val anchorCenter = anchorBounds.center + return IntOffset( + x = (getOffsetX( + horizontalPlacement, + layoutDirection, + anchorBounds, + anchorCenter, + popupActualSize, + popupActualCenter, + windowSize + ) - popupPadding).toInt(), + y = (getOffsetY( + verticalPlacement, + anchorBounds, + anchorCenter, + popupActualSize, + popupActualCenter, + windowSize + ) - popupPadding).toInt() + ) + } + } + + private fun Density.getOffsetX( + placement: HorizontalPlacement, + layoutDirection: LayoutDirection, + anchorBounds: IntRect, + anchorCenter: IntOffset, + popupContentSize: Size, + popupContentCenter: Offset, + windowSize: IntSize + ): Float { + val isLTR = layoutDirection == LayoutDirection.Ltr + return if (isLTR) { + when (placement) { + HorizontalPlacement.Start -> anchorBounds.left - popupContentSize.width - paddingToAnchor.calculateLeftPadding( + layoutDirection + ).toPx() + + HorizontalPlacement.End -> anchorBounds.right + paddingToAnchor.calculateRightPadding( + layoutDirection + ).toPx() + + HorizontalPlacement.Center -> anchorCenter.x - popupContentCenter.x + HorizontalPlacement.AlignedStart -> anchorBounds.left.toFloat() + HorizontalPlacement.AlignedEnd -> anchorBounds.right - popupContentSize.width + else -> windowSize.center.x - popupContentCenter.x + } + } else { + when (placement) { + HorizontalPlacement.End -> anchorBounds.left - popupContentSize.width - paddingToAnchor.calculateLeftPadding( + layoutDirection + ).toPx() + + HorizontalPlacement.Start -> anchorBounds.right + paddingToAnchor.calculateRightPadding( + layoutDirection + ).toPx() + + HorizontalPlacement.Center -> anchorCenter.x - popupContentCenter.x + HorizontalPlacement.AlignedEnd -> anchorBounds.left.toFloat() + HorizontalPlacement.AlignedStart -> anchorBounds.right - popupContentSize.width + else -> windowSize.center.x - popupContentCenter.x + } + } + } + + private fun Density.getOffsetY( + placement: VerticalPlacement, + anchorBounds: IntRect, + anchorCenter: IntOffset, + popupContentSize: Size, + popupContentCenter: Offset, + windowSize: IntSize + ): Float { + return when (placement) { + VerticalPlacement.Top -> (anchorBounds.top - popupContentSize.height - paddingToAnchor.calculateTopPadding() + .toPx()) + + VerticalPlacement.Center -> anchorCenter.y - popupContentCenter.y + VerticalPlacement.Bottom -> anchorBounds.bottom + paddingToAnchor.calculateBottomPadding() + .toPx() + + VerticalPlacement.AlignedTop -> anchorBounds.top.toFloat() + VerticalPlacement.AlignedBottom -> anchorBounds.bottom - popupContentSize.height + else -> windowSize.center.y - popupContentCenter.y + } + } + + private fun hasSpaceForTargetPlacement( + horizontalPlacement: HorizontalPlacement, + verticalPlacement: VerticalPlacement, + layoutDirection: LayoutDirection, + popupContentSize: Size, + anchorBounds: IntRect, + windowSize: IntSize + ): Pair { + with(density) { + val hasVertical = when (verticalPlacement) { + VerticalPlacement.Top -> popupContentSize.height + paddingToAnchor.calculateTopPadding() + .toPx() >= anchorBounds.top + + VerticalPlacement.AlignedTop -> windowSize.height >= anchorBounds.top + paddingToAnchor.calculateTopPadding() + .toPx() + popupContentSize.height + + VerticalPlacement.Bottom -> windowSize.height >= anchorBounds.bottom + paddingToAnchor.calculateBottomPadding() + .toPx() + popupContentSize.height + + VerticalPlacement.AlignedBottom -> anchorBounds.bottom >= popupContentSize.height + paddingToAnchor.calculateBottomPadding() + .toPx() + + VerticalPlacement.Center -> { + val center = anchorBounds.center + val halfHeight = popupContentSize.height / 2 + windowSize.height >= center.y + halfHeight && center.y - halfHeight >= 0 + } + + else -> false + } + val isLrt = layoutDirection == LayoutDirection.Ltr + val hasHorizontal = when { + (isLrt && horizontalPlacement == HorizontalPlacement.Start) || (!isLrt && horizontalPlacement == HorizontalPlacement.End) -> { + anchorBounds.left >= popupContentSize.width + paddingToAnchor.calculateLeftPadding(layoutDirection) + .toPx() + } + + (!isLrt && horizontalPlacement == HorizontalPlacement.Start) || (isLrt && horizontalPlacement == HorizontalPlacement.End) + -> { + windowSize.width >= anchorBounds.right + paddingToAnchor.calculateRightPadding(layoutDirection) + .toPx() + } + + (isLrt && horizontalPlacement == HorizontalPlacement.AlignedStart) || (!isLrt && horizontalPlacement == HorizontalPlacement.AlignedEnd) -> { + windowSize.width >= anchorBounds.left + paddingToAnchor.calculateLeftPadding(layoutDirection) + .toPx() + popupContentSize.width + } + + (!isLrt && horizontalPlacement == HorizontalPlacement.AlignedStart) || (isLrt && horizontalPlacement == HorizontalPlacement.AlignedEnd) + -> { + anchorBounds.right - paddingToAnchor.calculateRightPadding(layoutDirection) + .toPx() - popupContentSize.width >= 0 + } + + horizontalPlacement == HorizontalPlacement.Center -> { + val center = anchorBounds.center + val halfWidth = popupContentSize.width / 2 + windowSize.width >= center.x + halfWidth && center.x - halfWidth >= 0 + } + + else -> false + } + return hasHorizontal to hasVertical + } + } + + protected open fun Density.calculateTargetPlacement( + anchorBounds: IntRect, + windowSize: IntSize, + layoutDirection: LayoutDirection, + popupContentSize: Size + ): Pair { + return calculatePlacementByVertical( + anchorBounds, + windowSize, + layoutDirection, + popupContentSize + ) + } + + private fun Density.calculatePlacementByVertical( + anchorBounds: IntRect, + windowSize: IntSize, + layoutDirection: LayoutDirection, + popupContentSize: Size + ): Pair { + val hasTopSpace = anchorBounds.top - paddingToAnchor.calculateTopPadding() + .toPx() >= popupContentSize.height + val hasBottomSpace = (windowSize.height - anchorBounds.bottom) - paddingToAnchor.calculateBottomPadding() + .toPx() >= popupContentSize.height + + if (hasTopSpace) { + return calculateAlignedStartOrEndOrCenter( + anchorBounds, + windowSize, + layoutDirection, + popupContentSize + ) to VerticalPlacement.Top + } + if (hasBottomSpace) { + return calculateAlignedStartOrEndOrCenter( + anchorBounds, + windowSize, + layoutDirection, + popupContentSize + ) to VerticalPlacement.Bottom + } + return calculateAlignedStartOrEndOrCenter( + anchorBounds, + windowSize, + layoutDirection, + popupContentSize + ) to calculateTopOrBottomPlacement(anchorBounds, windowSize, popupContentSize) + } + + private fun calculateTopOrBottomPlacement( + anchorBounds: IntRect, + windowSize: IntSize, + popupContentSize: Size + ): VerticalPlacement { + return with(density) { + val hasTopSpace = anchorBounds.top - paddingToAnchor.calculateTopPadding() + .toPx() >= popupContentSize.height + val hasBottomSpace = (windowSize.height - anchorBounds.bottom) - paddingToAnchor.calculateBottomPadding() + .toPx() >= popupContentSize.height + when { + hasTopSpace -> VerticalPlacement.Top + hasBottomSpace -> VerticalPlacement.Bottom + else -> VerticalPlacement.Top + } + } + } + + private fun calculateAlignedStartOrEndOrCenter( + anchorBounds: IntRect, + windowSize: IntSize, + layoutDirection: LayoutDirection, + popupContentSize: Size + ): HorizontalPlacement { + val halfContentWidth = popupContentSize.width / 2f + val center = anchorBounds.center + val hasLeftSpace = center.x >= halfContentWidth + val hasRightSpace = windowSize.width - center.x >= halfContentWidth + return when { + hasRightSpace && hasLeftSpace -> HorizontalPlacement.Center + (hasLeftSpace && layoutDirection == LayoutDirection.Ltr) or + (hasRightSpace && layoutDirection == LayoutDirection.Rtl) -> HorizontalPlacement.Start + + hasRightSpace -> HorizontalPlacement.Center + hasLeftSpace -> HorizontalPlacement.End + else -> HorizontalPlacement.None + } + } + + private fun calculateStartOrEndPlacement( + anchorBounds: IntRect, + windowSize: IntSize, + layoutDirection: LayoutDirection, + popupContentSize: Size + ): HorizontalPlacement { + with(density) { + val isLRT = layoutDirection == LayoutDirection.Ltr + val halfContentWidth = popupContentSize.width / 2f + val center = anchorBounds.center + val hasLeftSpace = + center.x >= halfContentWidth + paddingToAnchor.calculateLeftPadding(layoutDirection) + .toPx() + val hasRightSpace = + windowSize.width - center.x >= halfContentWidth + paddingToAnchor.calculateRightPadding( + layoutDirection + ).toPx() + + return when { + hasRightSpace -> { + if (isLRT) { + HorizontalPlacement.End + } else { + HorizontalPlacement.Start + } + } + + hasLeftSpace -> { + if (isLRT) { + HorizontalPlacement.Start + } else { + HorizontalPlacement.End + } + } + + else -> HorizontalPlacement.End + } + } + + } + + protected fun calculatePlacementByHorizontal( + anchorBounds: IntRect, + windowSize: IntSize, + layoutDirection: LayoutDirection, + popupContentSize: Size + ): Pair { + val center = anchorBounds.center + return calculateStartOrEndPlacement( + anchorBounds, + windowSize, + layoutDirection, + popupContentSize + ) to calculateAlignedTopOrBottomOrCenter( + anchorBounds, + windowSize, + center, + popupContentSize + ) + } + + private fun calculateAlignedTopOrBottomOrCenter( + anchorBounds: IntRect, + windowSize: IntSize, + anchorCenter: IntOffset, + popupContentSize: Size + ): VerticalPlacement { + val halfContentHeight = popupContentSize.height / 2f + val hasAlignedTopSpace = windowSize.height - anchorBounds.top >= popupContentSize.height + val hasAlignedBottomSpace = anchorBounds.bottom >= popupContentSize.height + if (hasAlignedTopSpace) { + return VerticalPlacement.AlignedTop + } + if (hasAlignedBottomSpace) { + return VerticalPlacement.AlignedBottom + } + if (anchorCenter.y - halfContentHeight > 0) { + return VerticalPlacement.Center + } + return VerticalPlacement.None + } + + private fun transformPlacement( + horizontalPlacement: HorizontalPlacement, + verticalPlacement: VerticalPlacement + ): FlyoutPlacement { + return when (horizontalPlacement) { + HorizontalPlacement.Start -> { + when (verticalPlacement) { + VerticalPlacement.AlignedTop -> FlyoutPlacement.StartAlignedTop + VerticalPlacement.AlignedBottom -> FlyoutPlacement.StartAlignedBottom + else -> FlyoutPlacement.Start + } + } + + HorizontalPlacement.End -> { + when (verticalPlacement) { + VerticalPlacement.AlignedTop -> FlyoutPlacement.EndAlignedTop + VerticalPlacement.AlignedBottom -> FlyoutPlacement.EndAlignedBottom + else -> FlyoutPlacement.End + } + } + + HorizontalPlacement.Center -> { + when (verticalPlacement) { + VerticalPlacement.Top -> FlyoutPlacement.Top + VerticalPlacement.Bottom -> FlyoutPlacement.Bottom + else -> FlyoutPlacement.Full + } + } + + HorizontalPlacement.AlignedStart -> { + when (verticalPlacement) { + VerticalPlacement.Top -> FlyoutPlacement.TopAlignedStart + VerticalPlacement.Bottom -> FlyoutPlacement.BottomAlignedStart + else -> FlyoutPlacement.Full + } + } + + HorizontalPlacement.AlignedEnd -> { + when (verticalPlacement) { + VerticalPlacement.Top -> FlyoutPlacement.TopAlignedEnd + VerticalPlacement.Bottom -> FlyoutPlacement.BottomAlignedEnd + else -> FlyoutPlacement.Full + } + } + + else -> FlyoutPlacement.Full + } + } + + private fun transformPlacement(flyoutPlacement: FlyoutPlacement): Pair { + return when (flyoutPlacement) { + FlyoutPlacement.Top -> HorizontalPlacement.Center to VerticalPlacement.Top + FlyoutPlacement.Bottom -> HorizontalPlacement.Center to VerticalPlacement.Bottom + FlyoutPlacement.Start -> HorizontalPlacement.Start to VerticalPlacement.Center + FlyoutPlacement.End -> HorizontalPlacement.End to VerticalPlacement.Center + FlyoutPlacement.TopAlignedStart -> HorizontalPlacement.AlignedStart to VerticalPlacement.Top + FlyoutPlacement.TopAlignedEnd -> HorizontalPlacement.AlignedEnd to VerticalPlacement.Top + FlyoutPlacement.BottomAlignedStart -> HorizontalPlacement.AlignedStart to VerticalPlacement.Bottom + FlyoutPlacement.BottomAlignedEnd -> HorizontalPlacement.AlignedEnd to VerticalPlacement.Bottom + FlyoutPlacement.StartAlignedTop -> HorizontalPlacement.Start to VerticalPlacement.AlignedTop + FlyoutPlacement.StartAlignedBottom -> HorizontalPlacement.Start to VerticalPlacement.AlignedBottom + FlyoutPlacement.EndAlignedTop -> HorizontalPlacement.End to VerticalPlacement.AlignedTop + FlyoutPlacement.EndAlignedBottom -> HorizontalPlacement.End to VerticalPlacement.AlignedBottom + FlyoutPlacement.Full -> HorizontalPlacement.Center to VerticalPlacement.Center + else -> HorizontalPlacement.None to VerticalPlacement.None + } + } + + @JvmInline + protected value class HorizontalPlacement( + private val value: Int + ) { + companion object { + val Start = HorizontalPlacement(0) + val Center = HorizontalPlacement(1) + val End = HorizontalPlacement(2) + val None = HorizontalPlacement(-1) + val AlignedStart = HorizontalPlacement(3) + val AlignedEnd = HorizontalPlacement(4) + } + } + + @JvmInline + protected value class VerticalPlacement( + private val value: Int + ) { + companion object { + val Top = VerticalPlacement(0) + val Center = VerticalPlacement(1) + val Bottom = VerticalPlacement(2) + val AlignedTop = VerticalPlacement(3) + val AlignedBottom = VerticalPlacement(4) + val None = VerticalPlacement(-1) + } + } +} \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt index 8bd9a318..b5f567c1 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt @@ -68,6 +68,7 @@ fun MenuFlyoutContainer( modifier: Modifier = Modifier, initialVisible: Boolean = false, placement: FlyoutPlacement = FlyoutPlacement.Auto, + adaptivePlacement: Boolean = false, onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, content: @Composable FlyoutScope.() -> Unit @@ -78,6 +79,7 @@ fun MenuFlyoutContainer( visible = isFlyoutVisible, onDismissRequest = { isFlyoutVisible = false }, placement = placement, + adaptivePlacement = adaptivePlacement, content = flyout, onKeyEvent = onKeyEvent, onPreviewKeyEvent = onPreviewKeyEvent @@ -95,6 +97,7 @@ fun MenuFlyout( onDismissRequest: () -> Unit, modifier: Modifier = Modifier, placement: FlyoutPlacement = FlyoutPlacement.Auto, + adaptivePlacement: Boolean = false, shape: Shape = RoundedCornerShape(8.dp), onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, @@ -105,7 +108,7 @@ fun MenuFlyout( onDismissRequest = onDismissRequest, modifier = modifier, shape = shape, - positionProvider = rememberFlyoutPositionProvider(placement), + positionProvider = rememberFlyoutPositionProvider(placement, adaptivePlacement = adaptivePlacement), content = content, onKeyEvent = onKeyEvent, onPreviewKeyEvent = onPreviewKeyEvent @@ -430,7 +433,7 @@ private class SubMenuFlyoutPositionProvider( layoutDirection: LayoutDirection, popupContentSize: Size ): Pair { - return calculateHorizontalPlacement( + return calculatePlacementByHorizontal( anchorBounds, windowSize, layoutDirection, From 41b07bdcbf1989ad3d67610334ce748862d1ba3b Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 2 Mar 2024 15:38:11 +0800 Subject: [PATCH 028/136] [fluent] Bump compose to 1.6.0 --- .../commonMain/kotlin/com/konyaco/fluent/component/Text.kt | 4 ++-- .../src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt | 4 ++-- gradle/libs.versions.toml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Text.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Text.kt index 511002ff..b0d3aa9f 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Text.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Text.kt @@ -31,7 +31,7 @@ fun Text( fontFamily: FontFamily? = null, letterSpacing: TextUnit = TextUnit.Unspecified, textDecoration: TextDecoration? = null, - textAlign: TextAlign? = null, + textAlign: TextAlign = TextAlign.Unspecified, lineHeight: TextUnit = TextUnit.Unspecified, overflow: TextOverflow = TextOverflow.Clip, softWrap: Boolean = true, @@ -72,7 +72,7 @@ fun Text( fontFamily: FontFamily? = null, letterSpacing: TextUnit = TextUnit.Unspecified, textDecoration: TextDecoration? = null, - textAlign: TextAlign? = null, + textAlign: TextAlign = TextAlign.Unspecified, lineHeight: TextUnit = TextUnit.Unspecified, overflow: TextOverflow = TextOverflow.Clip, softWrap: Boolean = true, diff --git a/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt b/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt index 617c72c7..95b1ad17 100644 --- a/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt +++ b/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt @@ -9,7 +9,6 @@ import androidx.compose.ui.window.application import androidx.compose.ui.window.rememberWindowState import com.mayakapps.compose.windowstyler.WindowBackdrop import com.mayakapps.compose.windowstyler.WindowStyle -import org.jetbrains.skiko.hostOs fun main() = application { Window( @@ -17,7 +16,8 @@ fun main() = application { state = rememberWindowState(position = WindowPosition(Alignment.Center), size = DpSize(1280.dp, 720.dp)), title = "Compose Fluent Design Gallery" ) { - GalleryTheme(displayMicaLayer = !hostOs.isWindows) { + GalleryTheme { + //TODO Make Window transparent. WindowStyle( isDarkTheme = LocalStore.current.darkMode, backdropType = WindowBackdrop.Mica diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c2f37dae..7cfbd673 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] kotlin = "1.9.0" ksp = "1.9.0-1.0.13" -compose = "1.5.0" +compose = "1.6.0" androidGradlePlugin = "7.4.2" androidBuildTools = "27.2.0-alpha16" From 4b3337073037f0775a4b569ab99f5fe7ac058e47 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 2 Mar 2024 15:39:29 +0800 Subject: [PATCH 029/136] [fluent] Deprecate defaultFontFamily(). --- .../com/konyaco/fluent/DefaultFontFamily.kt | 1 + .../kotlin/com/konyaco/fluent/FluentTheme.kt | 15 +-------------- .../konyaco/fluent/defaultFontFamily.desktop.kt | 16 +--------------- 3 files changed, 3 insertions(+), 29 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/DefaultFontFamily.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/DefaultFontFamily.kt index e1144ee5..30838f8d 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/DefaultFontFamily.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/DefaultFontFamily.kt @@ -3,5 +3,6 @@ package com.konyaco.fluent import androidx.compose.runtime.Composable import androidx.compose.ui.text.font.FontFamily +@Deprecated("it will be remove in the future", ReplaceWith("null")) @Composable expect fun defaultFontFamily(): FontFamily? \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt index 15b1599e..79697d9e 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt @@ -5,29 +5,16 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.Color -import androidx.compose.ui.text.font.FontFamily @Composable fun FluentTheme( colors: Colors = FluentTheme.colors, typography: Typography = FluentTheme.typography, -// defaultFontFamily: FontFamily? = defaultFontFamily(), content: @Composable () -> Unit ) { CompositionLocalProvider( LocalColors provides colors, - LocalTypography provides typography/*(defaultFontFamily?.let { - Typography( - caption = typography.caption.copy(fontFamily = defaultFontFamily), - body = typography.body.copy(fontFamily = defaultFontFamily), - bodyStrong = typography.bodyStrong.copy(fontFamily = defaultFontFamily), - bodyLarge = typography.bodyLarge.copy(fontFamily = defaultFontFamily), - subtitle = typography.subtitle.copy(fontFamily = defaultFontFamily), - title = typography.title.copy(fontFamily = defaultFontFamily), - titleLarge = typography.titleLarge.copy(fontFamily = defaultFontFamily), - display = typography.display.copy(fontFamily = defaultFontFamily), - ) - } ?: typography)*/, + LocalTypography provides typography, content = content ) } diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt index 0183a180..d8df06b4 100644 --- a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt @@ -6,18 +6,4 @@ import androidx.compose.ui.text.font.FontFamily @Composable actual fun defaultFontFamily(): FontFamily? { return null -} - -/* -@Composable -actual fun defaultFontFamily(): FontFamily? { - val state = remember { - mutableStateOf(null) - } - LaunchedEffect(state) { - state.value = AwtFontManager.DEFAULT.findFontFamilyFile("Segoe UI Variable")?.let { - Font(it).toFontFamily() - } - } - return state.value -}*/ +} \ No newline at end of file From bd54c9e897877628d6e35da950de60e27259ef83 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 30 Apr 2023 23:31:44 +0800 Subject: [PATCH 030/136] add font icon component. (cherry picked from commit e1ee52f2f75a856a0cac57970460e4226de5b6fc) --- .../fluent/component/FontIcon.android.kt | 8 ++++ .../com/konyaco/fluent/component/FontIcon.kt | 43 +++++++++++++++++++ .../fluent/component/FontIcon.desktop.kt | 20 +++++++++ 3 files changed, 71 insertions(+) create mode 100644 fluent/src/androidMain/kotlin/com/konyaco/fluent/component/FontIcon.android.kt create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FontIcon.kt create mode 100644 fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt diff --git a/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/FontIcon.android.kt b/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/FontIcon.android.kt new file mode 100644 index 00000000..d1ef3903 --- /dev/null +++ b/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/FontIcon.android.kt @@ -0,0 +1,8 @@ +package com.konyaco.fluent.component + +import androidx.compose.runtime.Composable + +@Composable +actual fun ProvideFontIcon(content: @Composable () -> Unit) { + content() +} \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FontIcon.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FontIcon.kt new file mode 100644 index 00000000..a4734898 --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FontIcon.kt @@ -0,0 +1,43 @@ +package com.konyaco.fluent.component + +import androidx.compose.foundation.layout.height +import androidx.compose.runtime.Composable +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.unit.TextUnit +import androidx.compose.ui.unit.sp + +@Composable +fun FontIcon( + glyph: Char, + modifier: Modifier = Modifier, + iconSize: TextUnit = FontIconDefaults.fontSizeStandard, + fallback: (@Composable () -> Unit)? = null, +) { + if (LocalFontIconFontFamily.current != null || fallback == null) { + Text( + text = glyph.toString(), + fontFamily = LocalFontIconFontFamily.current, + fontSize = iconSize, + modifier = Modifier.then(modifier) + .height(with(LocalDensity.current) { iconSize.toDp() }) + ) + } else { + fallback() + } +} + +object FontIconDefaults { + val fontSizeStandard = 16.sp + val fontSizeSmall = 12.sp +} + +@Composable +expect fun ProvideFontIcon( + content: @Composable () -> Unit +) + +val LocalFontIconFontFamily = + staticCompositionLocalOf { error("No Font provide for load font icon") } diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt new file mode 100644 index 00000000..e8a7ee68 --- /dev/null +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt @@ -0,0 +1,20 @@ +package com.konyaco.fluent.component + +import androidx.compose.runtime.* +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.toFontFamily +import androidx.compose.ui.text.platform.Font +import org.jetbrains.skiko.AwtFontManager + +@Composable +actual fun ProvideFontIcon(content: @Composable () -> Unit) { + var fontFamily: FontFamily? by remember { mutableStateOf(null) } + LaunchedEffect(Unit) { + fontFamily = AwtFontManager.DEFAULT.findFontFamilyFile("Segoe Fluent Icons")?.let { Font(it).toFontFamily() } + } + + CompositionLocalProvider( + LocalFontIconFontFamily provides fontFamily, + content = content + ) +} \ No newline at end of file From cdf35b42f874609e5ea69580d7ba4b79c79543f9 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 30 Apr 2023 23:51:46 +0800 Subject: [PATCH 031/136] implement FluentContextMenu in JVM Desktop. (cherry picked from commit 822767c88a07c11c43844d4e90903a7427b85a57) --- ...latformCompositionLocalProvider.android.kt | 8 + .../PlatformCompositionLocalProvider.kt | 7 + ...latformCompositionLocalProvider.desktop.kt | 21 +++ .../fluent/component/ContextMenu.desktop.kt | 177 ++++++++++++++++++ 4 files changed, 213 insertions(+) create mode 100644 fluent/src/androidMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.android.kt create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.kt create mode 100644 fluent/src/jvmMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt create mode 100644 fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt diff --git a/fluent/src/androidMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.android.kt b/fluent/src/androidMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.android.kt new file mode 100644 index 00000000..1a0e2804 --- /dev/null +++ b/fluent/src/androidMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.android.kt @@ -0,0 +1,8 @@ +package com.konyaco.fluent + +import androidx.compose.runtime.Composable + +@Composable +actual fun PlatformCompositionLocalProvider(content: @Composable () -> Unit) { + content() +} \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.kt new file mode 100644 index 00000000..1669aa64 --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.kt @@ -0,0 +1,7 @@ +package com.konyaco.fluent + +import androidx.compose.runtime.Composable + +@Composable +expect fun PlatformCompositionLocalProvider(content: @Composable () -> Unit) + diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt new file mode 100644 index 00000000..5a7bff46 --- /dev/null +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt @@ -0,0 +1,21 @@ +package com.konyaco.fluent + +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.LocalContextMenuRepresentation +import androidx.compose.foundation.text.LocalTextContextMenu +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import com.konyaco.fluent.component.FluentContextMenuRepresentation +import com.konyaco.fluent.component.FluentTextContextMenu + +@OptIn(ExperimentalFoundationApi::class) +@Composable +actual fun PlatformCompositionLocalProvider(content: @Composable () -> Unit) { + CompositionLocalProvider( + LocalTextContextMenu provides FluentTextContextMenu, + LocalContextMenuRepresentation provides FluentContextMenuRepresentation + ) { + content() + } +} + diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt new file mode 100644 index 00000000..e132dcca --- /dev/null +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt @@ -0,0 +1,177 @@ +package com.konyaco.fluent.component + +import androidx.compose.foundation.* +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.text.TextContextMenu +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.input.key.* +import androidx.compose.ui.platform.LocalLocalization +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.FluentTheme +import com.konyaco.fluent.LocalContentColor +import com.konyaco.fluent.icons.Icons +import com.konyaco.fluent.icons.regular.Copy +import com.konyaco.fluent.icons.regular.Cut +import com.konyaco.fluent.icons.regular.ClipboardPaste +import org.jetbrains.skiko.hostOs + +internal object FluentContextMenuRepresentation : ContextMenuRepresentation { + @Composable + override fun Representation(state: ContextMenuState, items: () -> List) { + val isOpen = state.status is ContextMenuState.Status.Open + DropdownMenu( + focusable = true, + expanded = isOpen, + onDismissRequest = { + state.status = ContextMenuState.Status.Closed + }, + onKeyEvent = { keyEvent -> + println("keyEvent: ${keyEvent.isMetaPressed}") + items().firstOrNull { + val result = it is FluentContextMenuItem && + keyEvent.type == KeyEventType.KeyDown && + it.keyData != null && + it.keyData.isAltPressed == keyEvent.isAltPressed && + it.keyData.isCtrlPressed == keyEvent.isCtrlPressed && + it.keyData.isShiftPressed == keyEvent.isShiftPressed && + it.keyData.key == keyEvent.key + if (result) { + it.onClick() + state.status = ContextMenuState.Status.Closed + } + result + } != null + } + ) { + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + items().forEach { + if (it is FluentContextMenuItem) { + DropdownMenuItem( + onClick = { + it.onClick() + state.status = ContextMenuState.Status.Closed + } + ) { + Box( + contentAlignment = Alignment.Center, + modifier = Modifier.width(24.dp).fillMaxHeight() + ) { + if (it.glyph != null && LocalFontIconFontFamily.current != null) { + FontIcon(it.glyph) + } else if (it.vector != null) { + Icon(it.vector, it.label, modifier = Modifier.size(20.dp)) + } + } + Text(it.label, modifier = Modifier.weight(1f)) + it.keyData?.let { keyData -> + val keyString = remember(keyData) { + buildString { + if (keyData.isAltPressed) { + append("Alt+") + } + if (keyData.isCtrlPressed) { + append("Ctrl+") + } + if (keyData.isShiftPressed) { + append("Shift+") + } + append(keyData.key.toString().removePrefix("Key: ")) + } + } + Text( + text = keyString, + color = LocalContentColor.current.copy(0.6f), + style = FluentTheme.typography.caption, + modifier = Modifier.padding(start = 24.dp, end = 8.dp) + ) + } + } + } else { + DropdownMenuItem( + onClick = { + it.onClick() + state.status = ContextMenuState.Status.Closed + }, + ) { + Spacer(Modifier.width(28.dp)) + Text(it.label) + } + } + } + } + } + } +} + +@OptIn(ExperimentalFoundationApi::class) +internal object FluentTextContextMenu : TextContextMenu { + + @OptIn(ExperimentalComposeUiApi::class) + @Composable + override fun Area( + textManager: TextContextMenu.TextManager, + state: ContextMenuState, + content: @Composable () -> Unit + ) { + val localization = LocalLocalization.current + val items = { + listOfNotNull( + textManager.cut?.let { + FluentContextMenuItem( + label = localization.cut, + onClick = it, + glyph = '\uE8C6', + vector = Icons.Default.Cut, + keyData = FluentContextMenuItem.KeyData(Key.X, isCtrlPressed = true) + ) + }, + textManager.copy?.let { + FluentContextMenuItem( + label = localization.copy, + onClick = it, + glyph = '\uE8C8', + vector = Icons.Default.Copy, + keyData = FluentContextMenuItem.KeyData(Key.C, isCtrlPressed = true) + ) + }, + textManager.paste?.let { + FluentContextMenuItem( + label = localization.paste, + onClick = it, + glyph = '\uE77F', + vector = Icons.Default.ClipboardPaste, + keyData = FluentContextMenuItem.KeyData(Key.V, isCtrlPressed = true) + ) + }, + textManager.selectAll?.let { + FluentContextMenuItem( + label = localization.selectAll, + onClick = it, + keyData = FluentContextMenuItem.KeyData(Key.A, isCtrlPressed = true), + ) + }, + ) + } + ContextMenuArea(items, state, content = content) + } +} + +class FluentContextMenuItem( + label: String, + onClick: () -> Unit, + val vector: ImageVector? = null, + val keyData: KeyData? = null, + val glyph: Char? = null +) : ContextMenuItem(label, onClick) { + data class KeyData( + val key: Key, + val isAltPressed: Boolean = false, + val isCtrlPressed: Boolean = false, + val isShiftPressed: Boolean = false + ) +} \ No newline at end of file From d044dbe2b06c08264a9e324318f5bb1f1dd66a0d Mon Sep 17 00:00:00 2001 From: sanlorng Date: Mon, 1 May 2023 00:07:40 +0800 Subject: [PATCH 032/136] code clean. (cherry picked from commit 2f944ded4dc569a7fc4e8311291b8df45129043f) --- .../kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt index e132dcca..ae8ee139 100644 --- a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt @@ -18,7 +18,6 @@ import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Copy import com.konyaco.fluent.icons.regular.Cut import com.konyaco.fluent.icons.regular.ClipboardPaste -import org.jetbrains.skiko.hostOs internal object FluentContextMenuRepresentation : ContextMenuRepresentation { @Composable @@ -31,7 +30,6 @@ internal object FluentContextMenuRepresentation : ContextMenuRepresentation { state.status = ContextMenuState.Status.Closed }, onKeyEvent = { keyEvent -> - println("keyEvent: ${keyEvent.isMetaPressed}") items().firstOrNull { val result = it is FluentContextMenuItem && keyEvent.type == KeyEventType.KeyDown && From 9086840b2516b7c8678e3ef46cc41e729405e73f Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 2 Mar 2024 23:00:46 +0800 Subject: [PATCH 033/136] [fluent] make FontIcon internal. --- .../fluent/component/FontIcon.android.kt | 2 +- .../kotlin/com/konyaco/fluent/FluentTheme.kt | 10 +++++-- .../com/konyaco/fluent/component/FontIcon.kt | 13 ++++---- .../fluent/component/FontIcon.desktop.kt | 30 +++++++++++++------ 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/FontIcon.android.kt b/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/FontIcon.android.kt index d1ef3903..62808826 100644 --- a/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/FontIcon.android.kt +++ b/fluent/src/androidMain/kotlin/com/konyaco/fluent/component/FontIcon.android.kt @@ -3,6 +3,6 @@ package com.konyaco.fluent.component import androidx.compose.runtime.Composable @Composable -actual fun ProvideFontIcon(content: @Composable () -> Unit) { +internal actual fun ProvideFontIcon(content: @Composable () -> Unit) { content() } \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt index 79697d9e..9a9e46ba 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt @@ -5,6 +5,7 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.Color +import com.konyaco.fluent.component.ProvideFontIcon @Composable fun FluentTheme( @@ -14,9 +15,12 @@ fun FluentTheme( ) { CompositionLocalProvider( LocalColors provides colors, - LocalTypography provides typography, - content = content - ) + LocalTypography provides typography + ) { + ProvideFontIcon { + PlatformCompositionLocalProvider(content) + } + } } object FluentTheme { diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FontIcon.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FontIcon.kt index a4734898..6661a4f8 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FontIcon.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/FontIcon.kt @@ -9,8 +9,9 @@ import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.unit.TextUnit import androidx.compose.ui.unit.sp +//TODO Public @Composable -fun FontIcon( +internal fun FontIcon( glyph: Char, modifier: Modifier = Modifier, iconSize: TextUnit = FontIconDefaults.fontSizeStandard, @@ -22,22 +23,24 @@ fun FontIcon( fontFamily = LocalFontIconFontFamily.current, fontSize = iconSize, modifier = Modifier.then(modifier) - .height(with(LocalDensity.current) { iconSize.toDp() }) + .height(with(LocalDensity.current) { iconSize.toDp() }), + onTextLayout = { + } ) } else { fallback() } } -object FontIconDefaults { +internal object FontIconDefaults { val fontSizeStandard = 16.sp val fontSizeSmall = 12.sp } @Composable -expect fun ProvideFontIcon( +internal expect fun ProvideFontIcon( content: @Composable () -> Unit ) -val LocalFontIconFontFamily = +internal val LocalFontIconFontFamily = staticCompositionLocalOf { error("No Font provide for load font icon") } diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt index e8a7ee68..7854d0e6 100644 --- a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt @@ -1,20 +1,32 @@ package com.konyaco.fluent.component import androidx.compose.runtime.* +import androidx.compose.ui.platform.LocalFontFamilyResolver +import androidx.compose.ui.text.ExperimentalTextApi import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.toFontFamily -import androidx.compose.ui.text.platform.Font -import org.jetbrains.skiko.AwtFontManager +import androidx.compose.ui.text.platform.FontLoadResult +@OptIn(ExperimentalTextApi::class) @Composable -actual fun ProvideFontIcon(content: @Composable () -> Unit) { - var fontFamily: FontFamily? by remember { mutableStateOf(null) } - LaunchedEffect(Unit) { - fontFamily = AwtFontManager.DEFAULT.findFontFamilyFile("Segoe Fluent Icons")?.let { Font(it).toFontFamily() } +internal actual fun ProvideFontIcon(content: @Composable () -> Unit) { + val fontFamilyResolver = LocalFontFamilyResolver.current + var fontIconFamily by remember { + mutableStateOf(null) + } + LaunchedEffect(fontFamilyResolver) { + val fontName = "Segoe Fluent Icons" + val fontFamily = FontFamily(fontName) + fontIconFamily = kotlin.runCatching { + val result = fontFamilyResolver.resolve(fontFamily).value as FontLoadResult + if (result.typeface == null || result.typeface?.familyName != fontName) { + null + } else { + fontFamily + } + }.getOrNull() } - CompositionLocalProvider( - LocalFontIconFontFamily provides fontFamily, + LocalFontIconFontFamily provides fontIconFamily, content = content ) } \ No newline at end of file From 5e8883ae02d5fd20d75f18426ce6000a3f0e0f63 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 2 Mar 2024 23:20:01 +0800 Subject: [PATCH 034/136] [fluent] refactor ContextMenu --- .../konyaco/fluent/component/MenuFlyout.kt | 13 ++- .../fluent/component/ContextMenu.desktop.kt | 100 ++++++++++-------- 2 files changed, 62 insertions(+), 51 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt index b5f567c1..71c0f915 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt @@ -45,6 +45,7 @@ import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.input.key.KeyEvent import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.IntSize @@ -54,6 +55,7 @@ import com.benasher44.uuid.uuid4 import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentAlpha import com.konyaco.fluent.LocalContentColor +import com.konyaco.fluent.LocalTextStyle import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer @@ -116,7 +118,7 @@ fun MenuFlyout( } @Composable -private fun MenuFlyout( +internal fun MenuFlyout( visible: Boolean, onDismissRequest: () -> Unit, modifier: Modifier = Modifier, @@ -194,7 +196,7 @@ fun MenuFlyoutScope.MenuFlyoutItem( modifier = modifier .padding(horizontal = 4.dp, vertical = 2.dp).defaultMinSize( minWidth = 108.dp, - minHeight = 28.dp + minHeight = 30.dp ).fillMaxWidth(), shape = FluentRoundedCornerShape(4.dp), border = BorderStroke(1.dp, menuColor.borderBrush), @@ -226,10 +228,13 @@ fun MenuFlyoutScope.MenuFlyoutItem( ) { icon() } - text() + Box(modifier = Modifier.weight(1f), contentAlignment = Alignment.CenterStart) { + text() + } CompositionLocalProvider( LocalContentColor provides menuColor.trainingColor, - LocalContentAlpha provides menuColor.trainingColor.alpha + LocalContentAlpha provides menuColor.trainingColor.alpha, + LocalTextStyle provides FluentTheme.typography.caption.copy(fontWeight = FontWeight.Normal) ) { training?.invoke() } diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt index ae8ee139..d03e5a44 100644 --- a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt @@ -1,19 +1,20 @@ package com.konyaco.fluent.component +import androidx.compose.animation.EnterTransition +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn import androidx.compose.foundation.* import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.TextContextMenu import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.input.key.* import androidx.compose.ui.platform.LocalLocalization import androidx.compose.ui.unit.dp -import com.konyaco.fluent.FluentTheme -import com.konyaco.fluent.LocalContentColor +import com.konyaco.fluent.animation.FluentDuration +import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Copy import com.konyaco.fluent.icons.regular.Cut @@ -22,13 +23,9 @@ import com.konyaco.fluent.icons.regular.ClipboardPaste internal object FluentContextMenuRepresentation : ContextMenuRepresentation { @Composable override fun Representation(state: ContextMenuState, items: () -> List) { - val isOpen = state.status is ContextMenuState.Status.Open - DropdownMenu( - focusable = true, - expanded = isOpen, - onDismissRequest = { - state.status = ContextMenuState.Status.Closed - }, + MenuFlyout( + visible = state.status is ContextMenuState.Status.Open, + onDismissRequest = { state.status = ContextMenuState.Status.Closed }, onKeyEvent = { keyEvent -> items().firstOrNull { val result = it is FluentContextMenuItem && @@ -44,28 +41,26 @@ internal object FluentContextMenuRepresentation : ContextMenuRepresentation { } result } != null - } + }, + positionProvider = rememberFlyoutPositionProvider(placeBottomFirst = true), + enterPlacementAnimation = ::enterAnimation ) { - Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { - items().forEach { - if (it is FluentContextMenuItem) { - DropdownMenuItem( - onClick = { - it.onClick() - state.status = ContextMenuState.Status.Closed + val menuItems = items() + val shouldPaddingIcon = menuItems.any { it is FluentContextMenuItem && (it.glyph != null || it.vector != null) } + menuItems.forEach { + if (it is FluentContextMenuItem) { + MenuFlyoutItem( + text = { + Text(it.label, modifier = Modifier) + }, + icon = { + if (it.glyph != null && LocalFontIconFontFamily.current != null) { + FontIcon(it.glyph, modifier = Modifier) + } else if (it.vector != null) { + Icon(it.vector, it.label, modifier = Modifier.size(20.dp)) } - ) { - Box( - contentAlignment = Alignment.Center, - modifier = Modifier.width(24.dp).fillMaxHeight() - ) { - if (it.glyph != null && LocalFontIconFontFamily.current != null) { - FontIcon(it.glyph) - } else if (it.vector != null) { - Icon(it.vector, it.label, modifier = Modifier.size(20.dp)) - } - } - Text(it.label, modifier = Modifier.weight(1f)) + }, + training = { it.keyData?.let { keyData -> val keyString = remember(keyData) { buildString { @@ -83,33 +78,44 @@ internal object FluentContextMenuRepresentation : ContextMenuRepresentation { } Text( text = keyString, - color = LocalContentColor.current.copy(0.6f), - style = FluentTheme.typography.caption, - modifier = Modifier.padding(start = 24.dp, end = 8.dp) + modifier = Modifier.padding(start = 16.dp, end = 8.dp) ) } - } - } else { - DropdownMenuItem( - onClick = { - it.onClick() - state.status = ContextMenuState.Status.Closed - }, - ) { - Spacer(Modifier.width(28.dp)) - Text(it.label) - } - } + }, + onClick = { + it.onClick() + state.status = ContextMenuState.Status.Closed + }, + paddingIcon = shouldPaddingIcon + ) + } else { + MenuFlyoutItem( + onClick = { + it.onClick() + state.status = ContextMenuState.Status.Closed + }, + icon = { + + }, + text = { Text(it.label) }, + paddingIcon = true + ) } } } } + + + private fun enterAnimation(placement: FlyoutPlacement): EnterTransition { + return fadeIn(defaultAnimationSpec()) + } + + private fun defaultAnimationSpec() = tween(FluentDuration.ShortDuration, easing = FluentEasing.FastInvokeEasing) } @OptIn(ExperimentalFoundationApi::class) internal object FluentTextContextMenu : TextContextMenu { - @OptIn(ExperimentalComposeUiApi::class) @Composable override fun Area( textManager: TextContextMenu.TextManager, From 2d241dbea32f372e2a79126d758f0d1d90b8da5e Mon Sep 17 00:00:00 2001 From: sanlorng Date: Tue, 12 Mar 2024 20:23:15 +0800 Subject: [PATCH 035/136] [fluent] Update ContextMenu's placement calculation --- .../fluent/component/ContextMenu.desktop.kt | 58 ++++++++++++++++--- 1 file changed, 49 insertions(+), 9 deletions(-) diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt index d03e5a44..2df554f2 100644 --- a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt +++ b/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt @@ -6,13 +6,14 @@ import androidx.compose.animation.fadeIn import androidx.compose.foundation.* import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.TextContextMenu -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember +import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Rect import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.input.key.* +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalLocalization -import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.* import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.icons.Icons @@ -23,8 +24,24 @@ import com.konyaco.fluent.icons.regular.ClipboardPaste internal object FluentContextMenuRepresentation : ContextMenuRepresentation { @Composable override fun Representation(state: ContextMenuState, items: () -> List) { + var rect by remember { + mutableStateOf(Rect.Zero) + } + var visible by remember { + mutableStateOf(false) + } + val status = state.status + LaunchedEffect(status) { + if (status is ContextMenuState.Status.Open) { + rect = status.rect + visible = true + } else { + visible = false + } + } + val density = LocalDensity.current MenuFlyout( - visible = state.status is ContextMenuState.Status.Open, + visible = visible, onDismissRequest = { state.status = ContextMenuState.Status.Closed }, onKeyEvent = { keyEvent -> items().firstOrNull { @@ -42,11 +59,14 @@ internal object FluentContextMenuRepresentation : ContextMenuRepresentation { result } != null }, - positionProvider = rememberFlyoutPositionProvider(placeBottomFirst = true), - enterPlacementAnimation = ::enterAnimation + positionProvider = remember(rect, density) { + ContextMenuFlyoutPositionProvider(rect, density) + }, + enterPlacementAnimation = { enterAnimation() } ) { val menuItems = items() - val shouldPaddingIcon = menuItems.any { it is FluentContextMenuItem && (it.glyph != null || it.vector != null) } + val shouldPaddingIcon = + menuItems.any { it is FluentContextMenuItem && (it.glyph != null || it.vector != null) } menuItems.forEach { if (it is FluentContextMenuItem) { MenuFlyoutItem( @@ -106,11 +126,12 @@ internal object FluentContextMenuRepresentation : ContextMenuRepresentation { } - private fun enterAnimation(placement: FlyoutPlacement): EnterTransition { + private fun enterAnimation(): EnterTransition { return fadeIn(defaultAnimationSpec()) } - private fun defaultAnimationSpec() = tween(FluentDuration.ShortDuration, easing = FluentEasing.FastInvokeEasing) + private fun defaultAnimationSpec() = + tween(FluentDuration.ShortDuration, easing = FluentEasing.FastInvokeEasing) } @OptIn(ExperimentalFoundationApi::class) @@ -178,4 +199,23 @@ class FluentContextMenuItem( val isCtrlPressed: Boolean = false, val isShiftPressed: Boolean = false ) +} + +private class ContextMenuFlyoutPositionProvider( + val rect: Rect, + density: Density, +) : FlyoutPositionProvider(density = density, adaptivePlacement = true, initialPlacement = FlyoutPlacement.BottomAlignedStart) { + + override fun calculatePosition( + anchorBounds: IntRect, + windowSize: IntSize, + layoutDirection: LayoutDirection, + popupContentSize: IntSize + ): IntOffset { + val targetAnchor = IntRect( + offset = rect.center.round() + anchorBounds.topLeft, + size = IntSize.Zero + ) + return super.calculatePosition(targetAnchor, windowSize, layoutDirection, popupContentSize) + } } \ No newline at end of file From b1d174b2f97ce25682583820d2254041a8857f4c Mon Sep 17 00:00:00 2001 From: sanlorng Date: Tue, 12 Mar 2024 21:38:40 +0800 Subject: [PATCH 036/136] [fluent] commonize kmp target setup step, prepare for js support. --- build-plugin/build.gradle.kts | 2 +- build-plugin/settings.gradle.kts | 7 +++++++ .../konyaco/fluent/plugin/build/BuildExtension.kt | 11 +++++++++++ fluent-icons-core/build.gradle.kts | 11 ++++------- fluent-icons-extended/build.gradle.kts | 11 ++++------- fluent/build.gradle.kts | 11 ++++------- .../PlatformCompositionLocalProvider.desktop.kt | 0 .../konyaco/fluent/component/ContextMenu.desktop.kt | 0 .../com/konyaco/fluent/component/Dialog.desktop.kt | 0 .../konyaco/fluent/component/FontIcon.desktop.kt | 0 .../fluent/component/PlatformScrollBar.desktop.kt | 0 .../com/konyaco/fluent/component/Popup.desktop.kt} | 0 .../fluent/component/rememberResourcePainter.kt | 0 .../com/konyaco/fluent/defaultFontFamily.desktop.kt | 0 .../resources/NoiseAsset_256.png | Bin gallery/build.gradle.kts | 5 ++--- 16 files changed, 33 insertions(+), 25 deletions(-) create mode 100644 build-plugin/src/main/java/com/konyaco/fluent/plugin/build/BuildExtension.kt rename fluent/src/{jvmMain => desktopMain}/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt (100%) rename fluent/src/{jvmMain => desktopMain}/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt (100%) rename fluent/src/{jvmMain => desktopMain}/kotlin/com/konyaco/fluent/component/Dialog.desktop.kt (100%) rename fluent/src/{jvmMain => desktopMain}/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt (100%) rename fluent/src/{jvmMain => desktopMain}/kotlin/com/konyaco/fluent/component/PlatformScrollBar.desktop.kt (100%) rename fluent/src/{jvmMain/kotlin/com/konyaco/fluent/component/Popup.jvm.kt => desktopMain/kotlin/com/konyaco/fluent/component/Popup.desktop.kt} (100%) rename fluent/src/{jvmMain => desktopMain}/kotlin/com/konyaco/fluent/component/rememberResourcePainter.kt (100%) rename fluent/src/{jvmMain => desktopMain}/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt (100%) rename fluent/src/{jvmMain => desktopMain}/resources/NoiseAsset_256.png (100%) diff --git a/build-plugin/build.gradle.kts b/build-plugin/build.gradle.kts index dc5f86e5..362af2cb 100644 --- a/build-plugin/build.gradle.kts +++ b/build-plugin/build.gradle.kts @@ -9,7 +9,7 @@ repositories { dependencies { implementation(gradleApi()) - implementation(kotlin("gradle-plugin")) + implementation(kotlin("gradle-plugin", libs.versions.kotlin.get())) } kotlin { diff --git a/build-plugin/settings.gradle.kts b/build-plugin/settings.gradle.kts index e69de29b..fa8bc749 100644 --- a/build-plugin/settings.gradle.kts +++ b/build-plugin/settings.gradle.kts @@ -0,0 +1,7 @@ +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} \ No newline at end of file diff --git a/build-plugin/src/main/java/com/konyaco/fluent/plugin/build/BuildExtension.kt b/build-plugin/src/main/java/com/konyaco/fluent/plugin/build/BuildExtension.kt new file mode 100644 index 00000000..c2d206f2 --- /dev/null +++ b/build-plugin/src/main/java/com/konyaco/fluent/plugin/build/BuildExtension.kt @@ -0,0 +1,11 @@ +package com.konyaco.fluent.plugin.build + +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension + +fun KotlinMultiplatformExtension.applyTargets(publish: Boolean = true) { + jvm("desktop") + androidTarget { + if (publish) publishLibraryVariants("release") + } + jvmToolchain(BuildConfig.Jvm.jvmToolchainVersion) +} \ No newline at end of file diff --git a/fluent-icons-core/build.gradle.kts b/fluent-icons-core/build.gradle.kts index 07daec9b..b05072f1 100644 --- a/fluent-icons-core/build.gradle.kts +++ b/fluent-icons-core/build.gradle.kts @@ -1,4 +1,5 @@ import com.konyaco.fluent.plugin.build.BuildConfig +import com.konyaco.fluent.plugin.build.applyTargets plugins { alias(libs.plugins.kotlin.multiplatform) @@ -12,24 +13,20 @@ group = BuildConfig.group version = BuildConfig.libraryVersion kotlin { - jvm() - androidTarget { - publishLibraryVariants("release") - } + applyTargets() sourceSets { val commonMain by getting { dependencies { implementation(compose.foundation) } } - val jvmMain by getting { + val desktopMain by getting { dependencies { implementation(compose.desktop.currentOs) } } - val jvmTest by getting + val desktopTest by getting } - jvmToolchain(BuildConfig.Jvm.jvmToolchainVersion) } android { diff --git a/fluent-icons-extended/build.gradle.kts b/fluent-icons-extended/build.gradle.kts index 93956c84..6f44f64c 100644 --- a/fluent-icons-extended/build.gradle.kts +++ b/fluent-icons-extended/build.gradle.kts @@ -1,4 +1,5 @@ import com.konyaco.fluent.plugin.build.BuildConfig +import com.konyaco.fluent.plugin.build.applyTargets plugins { alias(libs.plugins.kotlin.multiplatform) @@ -12,10 +13,7 @@ group = BuildConfig.group version = BuildConfig.libraryVersion kotlin { - jvm() - androidTarget { - publishLibraryVariants("release") - } + applyTargets() sourceSets { val commonMain by getting { dependencies { @@ -24,14 +22,13 @@ kotlin { implementation(project(":fluent-icons-core")) } } - val jvmMain by getting { + val desktopMain by getting { dependencies { implementation(compose.desktop.currentOs) } } - val jvmTest by getting + val desktopTest by getting } - jvmToolchain(BuildConfig.Jvm.jvmToolchainVersion) } android { diff --git a/fluent/build.gradle.kts b/fluent/build.gradle.kts index 732a1b32..bf7ba58e 100644 --- a/fluent/build.gradle.kts +++ b/fluent/build.gradle.kts @@ -1,4 +1,5 @@ import com.konyaco.fluent.plugin.build.BuildConfig +import com.konyaco.fluent.plugin.build.applyTargets import org.jetbrains.compose.compose plugins { @@ -13,10 +14,7 @@ group = BuildConfig.group version = BuildConfig.libraryVersion kotlin { - jvm() - androidTarget { - publishLibraryVariants("release") - } + applyTargets() sourceSets { val commonMain by getting { dependencies { @@ -34,14 +32,13 @@ kotlin { val androidMain by getting val androidUnitTest by getting val androidInstrumentedTest by getting - val jvmMain by getting { + val desktopMain by getting { dependencies { api(compose.preview) } } - val jvmTest by getting + val desktopTest by getting } - jvmToolchain(BuildConfig.Jvm.jvmToolchainVersion) } android { diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt b/fluent/src/desktopMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt similarity index 100% rename from fluent/src/jvmMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt rename to fluent/src/desktopMain/kotlin/com/konyaco/fluent/PlatformCompositionLocalProvider.desktop.kt diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt b/fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt similarity index 100% rename from fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt rename to fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/ContextMenu.desktop.kt diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/Dialog.desktop.kt b/fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/Dialog.desktop.kt similarity index 100% rename from fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/Dialog.desktop.kt rename to fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/Dialog.desktop.kt diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt b/fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt similarity index 100% rename from fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt rename to fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/FontIcon.desktop.kt diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/PlatformScrollBar.desktop.kt b/fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/PlatformScrollBar.desktop.kt similarity index 100% rename from fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/PlatformScrollBar.desktop.kt rename to fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/PlatformScrollBar.desktop.kt diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/Popup.jvm.kt b/fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/Popup.desktop.kt similarity index 100% rename from fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/Popup.jvm.kt rename to fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/Popup.desktop.kt diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/rememberResourcePainter.kt b/fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/rememberResourcePainter.kt similarity index 100% rename from fluent/src/jvmMain/kotlin/com/konyaco/fluent/component/rememberResourcePainter.kt rename to fluent/src/desktopMain/kotlin/com/konyaco/fluent/component/rememberResourcePainter.kt diff --git a/fluent/src/jvmMain/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt b/fluent/src/desktopMain/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt similarity index 100% rename from fluent/src/jvmMain/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt rename to fluent/src/desktopMain/kotlin/com/konyaco/fluent/defaultFontFamily.desktop.kt diff --git a/fluent/src/jvmMain/resources/NoiseAsset_256.png b/fluent/src/desktopMain/resources/NoiseAsset_256.png similarity index 100% rename from fluent/src/jvmMain/resources/NoiseAsset_256.png rename to fluent/src/desktopMain/resources/NoiseAsset_256.png diff --git a/gallery/build.gradle.kts b/gallery/build.gradle.kts index d25d7e90..1f107813 100644 --- a/gallery/build.gradle.kts +++ b/gallery/build.gradle.kts @@ -1,4 +1,5 @@ import com.konyaco.fluent.plugin.build.BuildConfig +import com.konyaco.fluent.plugin.build.applyTargets import org.jetbrains.compose.compose import org.jetbrains.compose.desktop.application.dsl.TargetFormat @@ -10,8 +11,7 @@ plugins { } kotlin { - jvm("desktop") - androidTarget() + applyTargets(publish = false) sourceSets { val commonMain by getting { dependencies { @@ -46,7 +46,6 @@ kotlin { } val desktopTest by getting } - jvmToolchain(BuildConfig.Jvm.jvmToolchainVersion) } android { From 7a403666eb7b204fa30295402613b8258b7b9a99 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sat, 16 Mar 2024 23:51:18 +0800 Subject: [PATCH 037/136] [fluent] bump compose to 1.6.1. --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7cfbd673..c23bfc8a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] kotlin = "1.9.0" ksp = "1.9.0-1.0.13" -compose = "1.6.0" +compose = "1.6.1" androidGradlePlugin = "7.4.2" androidBuildTools = "27.2.0-alpha16" From 8d65972b0f6028a2817efc100b1d6721ec7829ba Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 17 Mar 2024 00:26:17 +0800 Subject: [PATCH 038/136] [fluent] Fake acrylic support. --- fluent/build.gradle.kts | 1 + .../konyaco/fluent/ExperimentalFluentApi.kt | 12 ++ .../kotlin/com/konyaco/fluent/FluentTheme.kt | 60 ++++++++- .../com/konyaco/fluent/background/Acrylic.kt | 119 ++++++++++++------ .../com/konyaco/fluent/component/Flyout.kt | 94 ++++++++++---- .../konyaco/fluent/gallery/GalleryTheme.kt | 8 +- .../gallery/component/ComponentGroupInfo.kt | 2 +- .../fluent/gallery/component/GalleryHeader.kt | 38 +++++- .../screen/styles/AcylicContainerScreen.kt | 73 +++++++++++ gradle/libs.versions.toml | 2 + 10 files changed, 334 insertions(+), 75 deletions(-) create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/ExperimentalFluentApi.kt create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/styles/AcylicContainerScreen.kt diff --git a/fluent/build.gradle.kts b/fluent/build.gradle.kts index bf7ba58e..dc0aa4af 100644 --- a/fluent/build.gradle.kts +++ b/fluent/build.gradle.kts @@ -22,6 +22,7 @@ kotlin { api(project(":fluent-icons-core")) implementation(compose("org.jetbrains.compose.ui:ui-util")) implementation(libs.uuid) + implementation(libs.haze) } } val commonTest by getting { diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/ExperimentalFluentApi.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/ExperimentalFluentApi.kt new file mode 100644 index 00000000..d063dd02 --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/ExperimentalFluentApi.kt @@ -0,0 +1,12 @@ +package com.konyaco.fluent + +@RequiresOptIn(message = "This is an experimental fluent API.") +@Target( + AnnotationTarget.CLASS, + AnnotationTarget.FUNCTION, + AnnotationTarget.PROPERTY, + AnnotationTarget.FIELD, + AnnotationTarget.PROPERTY_GETTER, +) +@Retention(AnnotationRetention.BINARY) +annotation class ExperimentalFluentApi \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt index 9a9e46ba..e4e9f0d9 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt @@ -1,28 +1,52 @@ package com.konyaco.fluent +import androidx.compose.foundation.layout.Box import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape +import com.konyaco.fluent.background.AcrylicContainer +import com.konyaco.fluent.background.AcrylicContainerScope import com.konyaco.fluent.component.ProvideFontIcon +@ExperimentalFluentApi @Composable fun FluentTheme( colors: Colors = FluentTheme.colors, typography: Typography = FluentTheme.typography, + useAcrylicPopup: Boolean = false, content: @Composable () -> Unit ) { - CompositionLocalProvider( - LocalColors provides colors, - LocalTypography provides typography - ) { - ProvideFontIcon { - PlatformCompositionLocalProvider(content) + AcrylicContainer { + CompositionLocalProvider( + LocalAcrylicPopupEnabled provides useAcrylicPopup, + LocalColors provides colors, + LocalTypography provides typography, + LocalWindowAcrylicContainer provides this + ) { + Box(modifier = Modifier.behindAcrylic()) { + ProvideFontIcon { + PlatformCompositionLocalProvider(content) + } + } } } } +@OptIn(ExperimentalFluentApi::class) +@Composable +fun FluentTheme( + colors: Colors = FluentTheme.colors, + typography: Typography = FluentTheme.typography, + content: @Composable () -> Unit +) { + FluentTheme(colors, typography, useAcrylicPopup = false, content) +} + object FluentTheme { val colors: Colors @Composable @@ -36,6 +60,30 @@ object FluentTheme { internal val LocalColors = staticCompositionLocalOf { lightColors() } +@ExperimentalFluentApi +internal val LocalWindowAcrylicContainer = + staticCompositionLocalOf { EmptyAcrylicContainerScope() } + +@OptIn(ExperimentalFluentApi::class) +private class EmptyAcrylicContainerScope : AcrylicContainerScope { + override fun Modifier.behindAcrylic(): Modifier { + return this + } + + override fun Modifier.acrylicOverlay(tint: Color, shape: Shape, enabled: () -> Boolean): Modifier { + return this + } + + override fun Modifier.align(alignment: Alignment): Modifier { + return this + } + + override fun Modifier.matchParentSize(): Modifier { + return this + } +} + +internal val LocalAcrylicPopupEnabled = staticCompositionLocalOf { true } fun lightColors(accent: Color = Color(0xFF0078D4)): Colors = Colors(generateShades(accent), false) fun darkColors(accent: Color = Color(0xFF0078D4)): Colors = Colors(generateShades(accent), true) \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Acrylic.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Acrylic.kt index 257ba4e2..68731c33 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Acrylic.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Acrylic.kt @@ -1,57 +1,96 @@ package com.konyaco.fluent.background -/* -import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.layout.BoxScope import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.drawWithContent -import androidx.compose.ui.graphics.BlendMode -import androidx.compose.ui.graphics.FilterQuality -import androidx.compose.ui.res.ResourceLoader -import androidx.compose.ui.res.loadImageBitmap -import androidx.compose.ui.unit.IntOffset +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.RectangleShape +import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp +import com.konyaco.fluent.ExperimentalFluentApi import com.konyaco.fluent.FluentTheme -import kotlin.math.ceil +import dev.chrisbanes.haze.HazeState +import dev.chrisbanes.haze.HazeStyle +import dev.chrisbanes.haze.haze +import dev.chrisbanes.haze.hazeChild -@OptIn(ExperimentalComposeUiApi::class) +@ExperimentalFluentApi @Composable -fun Acrylic( +fun AcrylicContainerScope.Acrylic( modifier: Modifier = Modifier, + enabled: () -> Boolean = { true }, + tint: Color = AcrylicDefaults.tintColor, + shape: Shape = AcrylicDefaults.shape, + border: BorderStroke? = null, content: @Composable () -> Unit ) { - val img = remember { - loadImageBitmap(ResourceLoader.Default.load("NoiseAsset_256.png")) - } Layer( outsideBorder = true, - shape = RoundedCornerShape(8.dp), - color = FluentTheme.colors.background.acrylic.base, - border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.default), - cornerRadius = 8.dp + shape = shape, + color = if (enabled()) Color.Transparent else FluentTheme.colors.background.layer.default, + border = border, + modifier = modifier.acrylicOverlay(tint = tint, shape = shape, enabled = enabled) ) { - Box(Modifier.drawWithContent { - val w = ceil(size.width / img.width).toInt() - val h = ceil(size.height / img.height).toInt() - - repeat(h) { y -> - repeat(w) { x -> - drawImage( - image = img, - dstOffset = IntOffset(x * img.width, y * img.height), - blendMode = BlendMode.Luminosity, - alpha = 0.02f, - filterQuality = FilterQuality.None - ) - } - } - drawContent() - }.then(modifier)) { - content() - } + content() + } +} + +@ExperimentalFluentApi +@Composable +fun AcrylicContainer( + content: @Composable AcrylicContainerScope.() -> Unit +) { + Box { + val scope = remember(this) { AcrylicContainerScopeImpl(this) } + scope.content() + } +} + +@OptIn(ExperimentalFluentApi::class) +private class AcrylicContainerScopeImpl(boxScope: BoxScope): AcrylicContainerScope, BoxScope by boxScope { + private val hazeState = HazeState() + + override fun Modifier.behindAcrylic(): Modifier { + return then(Modifier.haze(state = hazeState)) } -}*/ + + override fun Modifier.acrylicOverlay(tint: Color, shape: Shape, enabled: () -> Boolean): Modifier { + return then(if (enabled()) { + Modifier.hazeChild( + state = hazeState, + shape = shape, + style = HazeStyle( + tint = tint, + noiseFactor = AcrylicDefaults.noise, + blurRadius = AcrylicDefaults.blurRadius + ) + ) + } else { + Modifier + }) + } +} + +@ExperimentalFluentApi +interface AcrylicContainerScope: BoxScope { + fun Modifier.behindAcrylic(): Modifier + + fun Modifier.acrylicOverlay(tint: Color, shape: Shape, enabled: () -> Boolean = { true }): Modifier + +} + +internal object AcrylicDefaults { + + const val noise = 0.02f + + val blurRadius = 70.dp + + val tintColor: Color + @Composable + get() = FluentTheme.colors.background.acrylic.default.copy(0.8f) + + val shape = RectangleShape +} \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt index d25fcce8..54c6a6d5 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt @@ -1,14 +1,10 @@ package com.konyaco.fluent.component -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.EnterTransition +import androidx.compose.animation.* import androidx.compose.animation.core.MutableTransitionState import androidx.compose.animation.core.tween -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.animation.scaleIn -import androidx.compose.animation.slideInHorizontally -import androidx.compose.animation.slideInVertically +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.padding @@ -21,13 +17,19 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.key.KeyEvent +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.window.PopupProperties +import com.konyaco.fluent.* +import com.konyaco.fluent.LocalAcrylicPopupEnabled +import com.konyaco.fluent.LocalWindowAcrylicContainer import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.AcrylicDefaults import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica @@ -143,7 +145,10 @@ internal fun BasicFlyout( if (visibleState.currentState || visibleState.targetState) { Popup( onDismissRequest = onDismissRequest, - properties = PopupProperties(clippingEnabled = false, focusable = onKeyEvent != null || onPreviewKeyEvent != null), + properties = PopupProperties( + clippingEnabled = false, + focusable = onKeyEvent != null || onPreviewKeyEvent != null + ), popupPositionProvider = positionProvider, onKeyEvent = onKeyEvent, onPreviewKeyEvent = onPreviewKeyEvent @@ -182,21 +187,68 @@ internal fun FlyoutContent( contentPadding: PaddingValues = PaddingValues(12.dp), content: @Composable () -> Unit ) { - - AnimatedVisibility( + AcrylicPopupContent( visibleState = visibleState, - enter = enterPlacementAnimation(placement), - exit = fadeOut(flyoutExitSpec()) - ) { - Mica( - modifier = modifier.padding(flyoutPopPaddingFixShadowRender).graphicsLayer { - shadowElevation = 8.dp.toPx() - this.shape = shape - clip = true - } + enterTransition = enterPlacementAnimation(placement), + exitTransition = fadeOut(flyoutExitSpec()), + content = content, + contentPadding = contentPadding, + elevation = 8.dp, + shape = shape, + modifier = modifier + ) +} + +@OptIn(ExperimentalFluentApi::class) +@Composable +internal fun AcrylicPopupContent( + visibleState: MutableTransitionState, + enterTransition: EnterTransition, + exitTransition: ExitTransition, + modifier: Modifier = Modifier, + elevation: Dp, + shape: Shape, + contentPadding: PaddingValues, + content: @Composable () -> Unit +) { + with(LocalWindowAcrylicContainer.current) { + val userAcrylic = LocalAcrylicPopupEnabled.current + AnimatedVisibility( + visibleState = visibleState, + enter = enterTransition, + exit = exitTransition, + modifier = Modifier.then( + if (userAcrylic) { + Modifier.padding(flyoutPopPaddingFixShadowRender) + } else { + Modifier + } + ) ) { - Layer(shape = shape) { - Box(modifier = Modifier.padding(contentPadding)) { + if (!userAcrylic) { + Mica(modifier = modifier.padding(flyoutPopPaddingFixShadowRender).graphicsLayer { + this.shape = shape + shadowElevation = elevation.toPx() + clip = true + }) { + Layer(shape = shape) { + Box(modifier = modifier.padding(contentPadding)) { + content() + } + } + } + } else { + Box( + modifier = Modifier + .border(BorderStroke(1.dp, FluentTheme.colors.stroke.card.default), shape = shape) + .acrylicOverlay( + tint = AcrylicDefaults.tintColor, + enabled = { visibleState.targetState || (visibleState.currentState && visibleState.isIdle) }, + shape = shape + ) + .padding(contentPadding) + .clip(shape) + ) { content() } } diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/GalleryTheme.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/GalleryTheme.kt index 5883dd2e..7bdf4691 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/GalleryTheme.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/GalleryTheme.kt @@ -4,11 +4,8 @@ import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.* import androidx.compose.ui.Modifier -import com.konyaco.fluent.FluentTheme -import com.konyaco.fluent.LocalContentColor +import com.konyaco.fluent.* import com.konyaco.fluent.background.Mica -import com.konyaco.fluent.darkColors -import com.konyaco.fluent.lightColors val LocalStore = compositionLocalOf { error("Not provided") } @@ -18,6 +15,7 @@ class Store( var darkMode by mutableStateOf(systemDarkMode) } +@OptIn(ExperimentalFluentApi::class) @Composable fun GalleryTheme( displayMicaLayer: Boolean = true, @@ -33,7 +31,7 @@ fun GalleryTheme( CompositionLocalProvider( LocalStore provides store ) { - FluentTheme(colors = if (store.darkMode) darkColors() else lightColors()) { + FluentTheme(colors = if (store.darkMode) darkColors() else lightColors(), useAcrylicPopup = true) { if (displayMicaLayer) { Mica(modifier = Modifier.fillMaxSize()) { content() diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt index c0566098..e4113e6c 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/ComponentGroupInfo.kt @@ -47,7 +47,7 @@ object ComponentGroupInfo { @ComponentGroup("ChatMultiple", index = 12, packageMap = "$screenPackage.status") const val StatusAndInfo = "Status & info" - @ComponentGroup("Color", index = 13) + @ComponentGroup("Color", index = 13, packageMap = "$screenPackage.styles") const val Styles = "Styles" @ComponentGroup("System", index = 14) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt index 171cae16..174823a0 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryHeader.kt @@ -1,24 +1,58 @@ package com.konyaco.fluent.gallery.component +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.runtime.Composable +import androidx.compose.foundation.text.ClickableText +import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.input.pointer.PointerIcon +import androidx.compose.ui.input.pointer.pointerHoverIcon +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.ExperimentalTextApi import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme +import com.konyaco.fluent.LocalContentAlpha +import com.konyaco.fluent.LocalContentColor +import com.konyaco.fluent.LocalTextStyle import com.konyaco.fluent.component.Text @Composable fun GalleryHeader(title: String, description: String) { + GalleryHeader(AnnotatedString(title), AnnotatedString(description)) +} + +@OptIn(ExperimentalTextApi::class, ExperimentalFoundationApi::class) +@Composable +fun GalleryHeader(title: AnnotatedString, description: AnnotatedString) { Column(Modifier.padding(top = 32.dp, bottom = 24.dp, start = 32.dp, end = 32.dp)) { + val uriHandle = LocalUriHandler.current Text( text = title, style = FluentTheme.typography.title ) // TODO: Dropdown button Spacer(Modifier.height(24.dp)) - Text(description) + var isOnHoverLink by remember { + mutableStateOf(false) + } + ClickableText( + text = description, + onHover = { + val index = it ?: return@ClickableText + isOnHoverLink = description.getUrlAnnotations(index, index + 1).firstOrNull() != null + }, + style = LocalTextStyle.current.copy(LocalContentColor.current.copy(alpha = LocalContentAlpha.current)), + modifier = Modifier.pointerHoverIcon( + icon = if (isOnHoverLink) PointerIcon.Hand else PointerIcon.Default + ) + ) { + description.getUrlAnnotations(it, it + 1).firstOrNull()?.let { urlAnnotation -> + uriHandle.openUri(urlAnnotation.item.url) + } + } } } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/styles/AcylicContainerScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/styles/AcylicContainerScreen.kt new file mode 100644 index 00000000..9bf65cd1 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/styles/AcylicContainerScreen.kt @@ -0,0 +1,73 @@ +@file:OptIn(ExperimentalFluentApi::class) + +package com.konyaco.fluent.gallery.screen.styles + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.* +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.ExperimentalFluentApi +import com.konyaco.fluent.FluentTheme +import com.konyaco.fluent.background.Acrylic +import com.konyaco.fluent.background.AcrylicContainer +import com.konyaco.fluent.gallery.annotation.Component +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.component.GallerySection + +@OptIn(ExperimentalTextApi::class) +@Component( + index = 3, + description = "A translucent material recommended for panel backgrounds.", +) +@Composable +fun AcrylicContainerScreen() { + Column(Modifier.fillMaxSize()) { + val linkTextColor = FluentTheme.colors.text.accent.primary + GalleryHeader( + AnnotatedString("AcrylicContainer"), + buildAnnotatedString { + append("A translucent material recommended for panel backgrounds. ") + append("supported by ") + withAnnotation(UrlAnnotation("https://github.com/chrisbanes/haze")) { + append(AnnotatedString("haze", spanStyle = SpanStyle(color = linkTextColor))) + } + append(".") + } + ) + Column( + Modifier.weight(1f).verticalScroll(rememberScrollState()) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp) + ) { + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "A Basic Acrylic sample", + sourceCode = sourceCodeOfBasicAcrylicSample + ) { + BasicAcrylicSample() + } + } + } +} + +@Sample +@Composable +private fun BasicAcrylicSample() { + AcrylicContainer { + Box(modifier = Modifier.defaultMinSize(minWidth = 360.dp).height(250.dp).behindAcrylic()) { + Box(Modifier.align(Alignment.TopStart).size(100.dp, 200.dp).background(Color.Cyan)) + Box(Modifier.align(Alignment.Center).size(152.dp).background(Color.Magenta, shape = CircleShape)) + Box(Modifier.align(Alignment.BottomEnd).size(80.dp, 100.dp).background(Color.Yellow)) + } + Acrylic(modifier = Modifier.align(Alignment.Center)) { + Box(Modifier.width(336.dp).height(226.dp)) + } + } +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c23bfc8a..72cf20d0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,4 +1,5 @@ [versions] +haze = "0.6.2" kotlin = "1.9.0" ksp = "1.9.0-1.0.13" compose = "1.6.1" @@ -8,6 +9,7 @@ androidBuildTools = "27.2.0-alpha16" [libraries] androidx-test-junit = "androidx.test.ext:junit:1.1.5" +haze = { module = "dev.chrisbanes.haze:haze", version.ref = "haze" } uuid = "com.benasher44:uuid:0.8.2" ktor-client-java = "io.ktor:ktor-client-java:2.2.1" From 3794585785e6cf8bbeffea7f54fda216f4c0680a Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 17 Mar 2024 00:30:18 +0800 Subject: [PATCH 039/136] [fluent] update compose-ui-util dependency. --- fluent/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluent/build.gradle.kts b/fluent/build.gradle.kts index dc0aa4af..eebbb205 100644 --- a/fluent/build.gradle.kts +++ b/fluent/build.gradle.kts @@ -20,7 +20,7 @@ kotlin { dependencies { api(compose.foundation) api(project(":fluent-icons-core")) - implementation(compose("org.jetbrains.compose.ui:ui-util")) + implementation(compose.uiUtil) implementation(libs.uuid) implementation(libs.haze) } From fa93bf42fd25207e2d0c33658e56e018879f3cb3 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 17 Mar 2024 00:31:55 +0800 Subject: [PATCH 040/136] [fluent] update text selection background: FluentTheme.colors.fillAccent.selectedTextBackground. --- .../commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt index e4e9f0d9..9bf41fd2 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt @@ -1,6 +1,8 @@ package com.konyaco.fluent import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.text.selection.LocalTextSelectionColors +import androidx.compose.foundation.text.selection.TextSelectionColors import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable @@ -26,7 +28,11 @@ fun FluentTheme( LocalAcrylicPopupEnabled provides useAcrylicPopup, LocalColors provides colors, LocalTypography provides typography, - LocalWindowAcrylicContainer provides this + LocalWindowAcrylicContainer provides this, + LocalTextSelectionColors provides TextSelectionColors( + colors.text.onAccent.primary, + colors.fillAccent.selectedTextBackground.copy(0.4f) + ) ) { Box(modifier = Modifier.behindAcrylic()) { ProvideFontIcon { From 2d1afbb7ef90f0fcca22e7b4c1949fb8758ba7a8 Mon Sep 17 00:00:00 2001 From: 123Duo3 <123duo3@gmail.com> Date: Tue, 2 Apr 2024 19:09:18 +0800 Subject: [PATCH 041/136] Add icon in README.md --- .gitignore | 3 ++- README.md | 2 +- assets/icon.png | Bin 0 -> 9135 bytes 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 assets/icon.png diff --git a/.gitignore b/.gitignore index 306b1c32..3f7b3d8f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .gradle/ .idea/ build/ -local.properties \ No newline at end of file +local.properties +.DS_Store diff --git a/README.md b/README.md index ab8464a1..2ea063fb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Compose Fluent +

Compose Fluent logo Compose Fluent

[![License](https://img.shields.io/github/license/Konyaco/compose-fluent-ui)](LICENSE) [![Version](https://img.shields.io/github/v/release/Konyaco/compose-fluent-ui?include_prereleases)](https://github.com/Konyaco/compose-fluent-ui/releases) diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b813645f19aa3c8343dd4bf036fb9fc59233522b GIT binary patch literal 9135 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 Mb$zwEXO2<-1AnFGD*ylh literal 0 HcmV?d00001 From 8976c9002f5cc859aa2bc22bde07661e3cc6cb4b Mon Sep 17 00:00:00 2001 From: 123Duo3 <123duo3@gmail.com> Date: Tue, 2 Apr 2024 19:52:31 +0800 Subject: [PATCH 042/136] Add IDEA project icon --- .idea/icon.svg | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .idea/icon.svg diff --git a/.idea/icon.svg b/.idea/icon.svg new file mode 100644 index 00000000..af160dd4 --- /dev/null +++ b/.idea/icon.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 475b29dc4ab00316526164c0f267257b238c11c0 Mon Sep 17 00:00:00 2001 From: 123Duo3 <123duo3@gmail.com> Date: Thu, 4 Apr 2024 18:11:03 +0800 Subject: [PATCH 043/136] Update LICENSE --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 261eeb9e..754dd3ba 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [yyyy] [name of copyright owner] + Copyright 2024 Konyaco Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From c78823057df485a3a6843025ac82bfff094b2b5c Mon Sep 17 00:00:00 2001 From: 123Duo3 <123duo3@gmail.com> Date: Thu, 4 Apr 2024 18:11:47 +0800 Subject: [PATCH 044/136] Add gallery app icon --- gallery/build.gradle.kts | 9 +++++++++ gallery/icons/icon.icns | Bin 0 -> 404295 bytes gallery/icons/icon.ico | Bin 0 -> 35639 bytes gallery/icons/icon.png | Bin 0 -> 9135 bytes 4 files changed, 9 insertions(+) create mode 100644 gallery/icons/icon.icns create mode 100644 gallery/icons/icon.ico create mode 100644 gallery/icons/icon.png diff --git a/gallery/build.gradle.kts b/gallery/build.gradle.kts index 3a4c8bb1..b1626f50 100644 --- a/gallery/build.gradle.kts +++ b/gallery/build.gradle.kts @@ -88,6 +88,15 @@ compose.desktop { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) packageName = "Compose Fluent Design Gallery" packageVersion = "1.0.0" + macOS { + iconFile.set(project.file("icons/icon.icns")) + } + windows { + iconFile.set(project.file("icons/icon.ico")) + } + linux { + iconFile.set(project.file("icons/icon.png")) + } } } } \ No newline at end of file diff --git a/gallery/icons/icon.icns b/gallery/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..0f281e8772c7ef4741ea1a4a6593650d5cdfea61 GIT binary patch literal 404295 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
  • 86aDFkWsd#9 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ΜiwPbqZh}^Ij`p>rN7*Xg`M{``pZMV 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

    u-;H$fmN@rhKcc zxQBdHR)3w>o_@8jynY_SqpSR}zC7*0)ld7{u6&GZ(=q*H?VB%Ooc#O`-pYoUPWX!= zKW`E@4YT7ToyH?XAvadJAMEBP;dY-22AxC0I66e=g9e@VQ zkj6!#E@%Q1z)_Uia)MpX81f2?=N`Op0D+95wyB>VYUtWKMZ=RUR1PBXaTN(3266c5 z3|H{sAUc}e(|bnvc(ulMEkgn`Nb2|z*w7e|1&*Nf)#+%FarNgXdk!dp+mStu5#;1d z%Mk&rn$wHc5(2=DCR>}yQN{>M$3w|%ZGB!iI@)`Wfo4zS1>ksf7>>Ztwetp$Iic0f z_1ehMh_!EyipzUfBKCo9Q~?l_4#+cTc+p9<5ljkbfN>mPB(ft)Rg)GVj96gm0Zt4d z8z!N!flaUs11#DZ144#(2(xk6q4;y~jvY@t(c;+?I8;Hg#(M4|nH&-VYiUX*8OTr# z4*clZf&;7od1_#nJQ;%>I`DR=Pz{#`YZuWSae}4CP7Mh?p?Iz%7){kQb`)qBg9XML zB?-$4bS51*KFkv>9Iz504v}t$@Hos3EhPfI7~%ECBXcou{}4IRBlWuE$*X+;Tzmt; z^+kdq>N9Gb3_XUFdZ#6D9mG}4`ZUc z+h79lzQ9fm23Zn|dx9TZjR+_19j$GY>G1Nbll>9~SdJ~PwpN9;vSI3^WHiysgG#

    =Fju*9RBlfe){Fle)HKc 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�DYmCZQ-|E*`9Undcj9}}GtU%iy9Su2t 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
    |y^d7ICpYbHVDCdIahRvPKd3E-4Y}U#jIB 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ΞF~KNmfvjXyHM7EC`s% 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%0AIH>sEO8J2tj#Vi>XVn%ysnP%pkkqw^_?{qwKbs< zcxev!&KH5uFw4pi>w1O|d1N#SE;UHubTi3*3dVYw^hcL5=N=qV!?r*<;`Sukjxu5BHp5`->{O0e+KfQnPH-G%)SNEU)Vty0&-J6M%1vOF9lLGSe z)Kd*UsDo`&TI|SfY6j#;kW-;y7%6;dteNbWQa+L$BQV_tjbJUsj4=|{4LVAYxs0%8 zOkIaDVy;ervcGYgp!1Pq$NEYqramJN)Lc9caWa4Iyfq;Ni~!Y^AwZ24SLbmKH|}Y; z>{yyHGL8qs1>fQy^@EhSm4$KoLiK@kc{vZa4ildwd!cC{-~%f^Yl#nBQ`4*`TG;sw z$q9HnVhDLUaI*~u3gR0$fKX5#3Jamv0x-xHhk^IPnd>S>EL3FFP5{j=7@VO?4qGRLWZ=ceOG)_+`tV|h8(fJSFw;bKgN+o+{^MFZ{ZQq0VA zPT%S^DU2CGdY-_;Bph5HEz-n^OI0L~4v_GhXAL;I2IC7Yfu!Z4u%*us7m0O`0~z4X z{}W73li(x+wPdk~oWSNhB;4rWF~8Weh!Q%{BWIMh`;hDh$4M!;V1PxP&IGU<^!5?2 z3n{tC@mD_lT-h9;4+h>_43sQWV#S|WdBJ7Ysz*k<&PV#Nug^+4zw)C$xjLq= z%_%$al_M**{IxHpJy=@t#UU%^?29{X7}Gvv+Zc)|pGIp}UHQ-cL->=IadGtLR<8Q1 zUGbIESJ(d3o#Rtqp0hvwpW~AwC&J@Jz8c`HjWPNLaO%oe{dJDKG6%=5xAANn)uDJHapZ-oA`m>e$F-&#fPv6C! z`f?&eUtPzwIp>VetsEz|vi8NFbHd-HM?{R-RMd@u@qpm6y9*U^=d@eK~)u2ixt6tAF}#V2ZD-IONqMqqVPG;bm98 zVm{1s_c9)MgTjLgemGPUc6k%t+c|?sRujP94>DQa>T`pJbnXZpL6in<;toZ6F=P9X ziwAhYg9#4a9QcR&K&5PSy2u@+G>y**8e0Z9=YG*fLAkHYxA%~!Q7sOCTl2w>Zy`pa z6x$5g+>z4Utfof?yU2+*zjR_P#oXk=f*#}~p`%4?7r>2;0-6neZ_*py9K|@g$u~VK zk2ij*-g^bcL>#xgaUt&9wC}@{1Qy@^_JJ`(KTtvQ;ma1`;W%d9@EZ%-4k4t|=1tB_ zca4~XKgDlw(RrXKAvX1!iB&=vU)CyPz9CY_eg-TKVt0-S&9#h#2SBYIamHsT<9Ht| zVMn8%SZ7{Ya2S=hO867|q!FC6HugUzmy3z%6Zx|{>KsTsIXlcUBNNtun@OvCAjUkfJDyWApYUZ8#QcizV(@@ zH27h#`oeI4!5DEFN}S16E;IIFi4W}NIdK_Er1|bO1Kt~h zao_0rn>*t)5pz5YVEg&BJ8_zAb^+iYpVq}bH5t4WP(SH!qQgm@N)JBYV-_)dpl*PN z8FT=;bkGn@{>T{5Q{F!N^SihFIq3Iqvex(nA}P*gl_ir8iJpJ)+5MNl{l)Xo!!zq6 z3~zINB-zBoZzU2JhLCezV@^*)W(#a52!lxn5RP;s8z}1xUz`w-rMK25VZKwEc(ImR z1qU7ZI$$DJcWU&5oB{Z3oEZ85k;aKS2^iOKjf!w|sD4<~utZkIA(nex+~l|88nw9% zr(rmcTLUt9l`sVilVPbLZ0b77OfnEL<+MatNvy?`Im0Oyh8fTC!sXVogm|+B;1Un7H#NW%bYh2>#-e=Rg0e-+%HK?>~O=Q(QjHPly;+I3{kc2>6|2x7P_K@Av?6 zw!Hp$7f$498508-lbO{FiOmnm!Z~Xf;-F|TFotv)@AV}-^fRB(9ZXg-zm!1A0Ll``?1`rbAN|osZVqb@1GdS#qXJbQS>>?%* z{R}@^_(0=g_mn1MInz;}$rrF<`_Z%3*Jsp@CyblpNn`Jwp^J4*cuOR!+G{-U48Q!M^9iJRB_9 zmZ9L$_Sw_tA9*M8G#?Jf-Vih}RE)XIj5GWr#?P)7j|YLJp~`O8cen&2rB3#{bG8yJ zlDDyYD3W3f`3@%(+16Y+&LuRg*tJPcb=q?6;X@$w5gPNTVc|qU`*KXY6LaRB(_=wE1>Xy3ZYu%R9^@CoO!Nbc} zWT4Y0_dswM2^|e3P;E%x8bi;^2bPWjA`?#sE{%IuuluVbkl{K^Cl0Rdj7ms?jOUL5qvI8U>&;TSNgNX94b0f~q+JaAXeA z_{%uBaD_RzT>631$VVJww^dMoW1P4q&|nA{2u-qiHA6;^Rr!B@ZBYiw_m?__Kglh66|Ev9vQ7Vj*DY{ z;?8+FkX9PdT{4f-POLf$ZLnJ zjq%k6UFD};ZRk&%6I(noHrhE>urjdSkY8<2-qY^N+j%i3*Ev4<>g%*&{1_LqQ;zL9 z@3{Txlbiip0T@4KjO;P_NyPZtt~Th;AUgjs860Q3&dbsMsxNo@>f0k{+^szH#n9LO zDlew;;wnFFJ1&O4;}g%gTY2eeS6uB!JNv7wHdo9QSN&u1lY=psv#;%myUI>p#^)UD z)%L2t&ae3E9M03`9HaZO23PsogNK8yvXk>FD-L;a?N6>Vj#FQ|%IHrY9iR3mFZkM4 zUYqu{z0Oa&V#;yqusdx}9r)_6^2fN4(Tb(VzVlNjaIsfR=k*Pi@!6l8mDeBhtNuDK zro6RnkN#|@yf)Qexr=T5orAA!ZHhrx8U5AfoP#}E@yHmTJ!5>-KF_dT1;s;zi1Ooe z42t1~cV{}X#&j@a_``Dy8L^H#XToB!kxmf!5<@?_;MRkbM=eJjxPx0M zAWpuSLp?2X1Y38CIlAm~v+Mb^N!6Q20Uo*VAjjN%8=HlBNS{&!V?L9^P>~L?aD#3P zLoqk`@w0C2Gxs?2*3;6_rA5v^ zN#kjtTQl zbnZm?=%G!+pLNaHs9*>MJn4rtFlwM-IO*NtH($m&b;%oKYYc_Fc#Lh<_Ta_|AO7k_ zs$juGEV;RaTaw6fj2N2>yqi=yTXXLR%5q@4_5sDY5mP6AikrD2be0@a9#LR}X8efj z7||SnjeQii!r%god51LL2G&B+2LJ#d07*naRPCoAnnsIg{L>Fzq*FIls}7KwLy`}2 z^S8&IfBod$^S{f#2z|{5G6{Q#=5XX8^4Mb=zEa_EfU)_-_i z9HB=~TuB?3h?!?Mcw|xfrI@9*ki`@qe>rSnA-3?6AVfS6a_tiaIyrG-Jg{s$j65<7 z0P{dDeV`a}!i3fj{v)1-xjcgpR$GEnGu?iOFeY%`nqd$M4WjuW1@t3S>0`9&=cpltk}x)q8PE9*9yx9H z)-gk8te}m}PX)H-{NCJJBYp~ZNS&g33K z=xr*%lLK|JvChUnG#-m|xRQ=@2l3L{N$frzx~NSeE;(GyH{`c@b}4+ z*Xc8T^5<{A&7Xt*=;QzCKYjkyvtRx4r}+~AQxBq>72pqhN~bFLOs){6%WtHCASozcdPf-wm9P z__mJxa4!kSZwdhgh{)#BLBTe0@aI}RhY(K87|j?X)|ib1GG_gaJUJ0O{unIi!D554 z4%T>x0t6c?uHjB3Mq&(LW1BAnlXs#R9}{0p=f2UP;>4h(ZW^%RV9eN;X8lS{e!1@x zGzN+dU`-JiD|VE|FAcK`2nx!O7|>;k>1X5ZXkwdYHKVw1w;a9wHK&{vlp(k#GxlXC?gMe5UZP9 zGA6v3Qzmgi5{crdFiL#6UgSNQe2E9;w2TO2S())yZ#0u_YLQbfMvQqKwxF08d*%#> z0!XGCV;CYQcawBNY@tt*>45^!l?tJzusR69&Qv&tQ(GMATAqmGJQ6E)$`^-<4I7YS z409s5%jdthh;*9YZY3t}m;Equ;EHZ9n2~XfN2Ls}_)n)J{OD+8f)hL8=gQ^g1e*|1 z7TxY|9}gbeq?YG((w}kct%9knUt_^NaT5*!aNMGpA4pp{jwqQ1gvqHA5y63-9E=NK zh9nI>)wgoU-E3cibM? z*{<>{Px)(eomWne4!$c#eVp>^xI8BZvhuY@Pdn|)uOho*uej>ZzWypJe{Czj_E-P- zy!t&ku6T4OzWirA)t|C*qU*RlxDU1J+Mo8m;#6_=fEq-J(bu>#`cr=DYk$g4yV}+- z^J2@{d9n0uwY&DG9$odP{IM~z$MBUCOSf{K@m+CX&=-rot#*&;u9z#fb8z*6tQ&I1 z=*r*miK#7k+I2qChy7`bv_3j+fBFPNtL(%e`;h!YHptsf|CN>RF~7yMuYIwVx4+68 zZ+(DceB!RUa-DtgSH9Es#CQB-`cv02eYbMZ*MDVTkaep)`i^T;zRJsi{?wHVeQgb#uAmG8uM+`gF8 zPkHD&2G4fRPaDQ3zPMuQkNMqy{9kgL`R;XwZ?fgY=BG5_&K zbzmSq6lVt&=G*2@GJeB~?ZjW@SwLgcJU|(+(NAU%HNXKr!Xyo726Y*zspGLVpJ?KT`aqa3=`lF!uCLD1Px%stIN}LDhEe%O zi(*2=8&w`6j_1YEkp(eEk#`c_Hzx*RdxLCf1~Un{XNOhY;xKc5kxg56%;|?LUg99L zOw&=fiH#z7oJ|IVNyKn%;V~v^gYmd1H#M|1UM2~{rz{zoARI9;#wn0*5+=0qiQa}6 zRzc_bWJa>;26RN@}by}dOVKIU>X-S&)hmhtP$aGPi7=rUu49#tj54W zGuDPdr7g2r_y8di>*KolBm%F4&Qv4`Vk_<{rvmhzDf85gUdR#Vc7m z7T64>=3OfB-)bTa9FPM6JVK}DxuA?SgmOa=ss*)Ti_)Cv0TJUwXt2nz4s_Ho?HKY9 z8gG^qon}ZVi+;?2RBQD##JTQHJp|uZ@bm-i2%^VoMlp zN-@&Cc!R_V@ys#cGr0+GNun9OF@uy+5**ONs*NETB2(%%*x)eJCyM!1hh7_~aY&-Y zDqqRfO(Fh=ES&nFW3j=tMOPkjSSpQ~z>7^Y92w&4xPm==jDb zd|`lQgyggeKof_sfKb#O2731#$*=Led;cbnUB7?z!|y8HW_-~OFk?wFtF7f_z( z17H4s=!^UJAOH0qKK+Zk&p!F--Tia2c*OxTb1Y4>R7V_rb?(OBx=q7G- zft$)6*Ig&DV8@oVPeM~(qNi*TaKf1LWcQHeWEv^NtV8l&qeVqjD_&QoB;nI9yWk{{ zWCY4&!Z|U;KgVggMk;`6BsK!j7A|9*p0FZPr`76!tDra1>~(85biwl6Ipm~7qlkv

  • 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

    =;BUYYr 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

  • 0ei!;gf?Y}$ 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%0D^@BFg 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 VKXm#}d!I+CxdtA}pZ(u<{ckHaZ3h4V literal 0 HcmV?d00001 diff --git a/gallery/icons/icon.png b/gallery/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b813645f19aa3c8343dd4bf036fb9fc59233522b GIT binary patch literal 9135 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 Mb$zwEXO2<-1AnFGD*ylh literal 0 HcmV?d00001 From ee48a0a077be2499124ef6a386de237a14351084 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Thu, 4 Apr 2024 19:05:38 +0800 Subject: [PATCH 045/136] Add icon as window icon --- gallery/build.gradle.kts | 1 + .../composeResources/drawable/icon.png | Bin 0 -> 9135 bytes .../kotlin/com/konyaco/fluent/gallery/Main.kt | 8 +++++++- 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 gallery/src/commonMain/composeResources/drawable/icon.png diff --git a/gallery/build.gradle.kts b/gallery/build.gradle.kts index 0c57047f..5a18c3bb 100644 --- a/gallery/build.gradle.kts +++ b/gallery/build.gradle.kts @@ -16,6 +16,7 @@ kotlin { val commonMain by getting { dependencies { implementation(compose.foundation) + implementation(compose.components.resources) implementation(project(":fluent")) implementation(project(":fluent-icons-extended")) implementation(compose("org.jetbrains.compose.ui:ui-util")) diff --git a/gallery/src/commonMain/composeResources/drawable/icon.png b/gallery/src/commonMain/composeResources/drawable/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b813645f19aa3c8343dd4bf036fb9fc59233522b GIT binary patch literal 9135 zcmaKSWmHsO)c%Y^cXzkaAl=d--7WniMoL0pX6TX<38h0Ri4l-4X{DrlkWP_i#$kBz zeZTxa{Xd+0*1GFiXYafBbN0S#uP4z^Uz3=CfdBvi5Nm6x89(g3{}vw3!_#=x8~0(u z_tmlr000On{w?728UzghumQByR7^wiPa;A;bIpaGo|<00Ua%sj8*H&W&?9;RbHQHCUlR~&Tbq{@g^w4`=2Y_v4LNOGia7jW>3-vkTh6q^ z(=T0JM}o@tg!u{HU0}qah5Nrp7W~ z=*3J)M`4K6A9WrrCN_`HMNF&=qmHMCz}5YnOASV!gSdgvko0oL50?(NEn^1`dI0PHB9EG2&Z)-U7g1C?>|BwLNu3+>JTGC%uf)kn> z<$Fd(#rgb>M|~YZ=#jsklnq);#l*HUGTlMyET?bW;7_!sJG!7HQ3p$6V1>^AhW(_D zo;yASTd@J+FE90OsD_okw_@pevqhgZKO-XaR2!=O~GO< z{szCRR=oUW%J6lO^}zLqq*JD@zj@k_4T?li>wsD2){U)LOirViOFebIi1uVzsj^Im zT95DcZ)T-e_O4L_KqlXv?c3!HqM-V*t?J@TtFx}~Xz>H}J8|yt2Fp)3EO%q6&Ll0@ z5)`-%y(opPws3+;ho=cj0Kl_>pp*1V|b-D4jN0`w6w3qzP385DL@ceGoO#svU zDSeJH7HK`p0OH8?c@#|x9=>!PY2;;GGqCcB;isfaxa?q^vo^$0c@scXw<-=9PLj80 znV5Q!tqju;7$GKPyA05Je@F@0)UH;=uLQSQMaVa~!C0Z>eK<`fd-Ol$6 zCdk*<04WbadC?Rd#45SKHxA~=p({mgVb9#hKkqKMuL>!9{tjTrb6?7%mVxsp^baY$ z>*J1I^xS6~zX#5CQZ~3z4WZfgUCi@MEW--rDt`Kc6BVVxs?k|h!cZGOOY_Onm&_Z7 z3Q*+LTy%&|+J(BO0ns-^dB=YOl1d^^2huM!$V{pDW^@mwQp0!i5ML!uj4lg6wr9&y zbygBu>nu9Xt?KShV}X5-yCTEXJo?|R=kg{05_Sf!5=1*bH)cs0#(Z|o-3x)-eIdLIuS($8Yhl^mwjeA z`njQqak72}eI2+1oh;--JKqg=io;CUy2AQirRxPA%z2f$)uToQZ31`!7w0&eX0W6+9~pu3uWAG_qjK-lEn z@O9oxEA!C5Z}k*vTMl|$vvfl0rD3G}^r^jiQ9rmFV=Q?ahX}}8H2(}Zw@?Go+>I0E zEjtS7RYB6ITxiKK1hN+P&K@NrUV8ITE+n*@nm zSo=D^BtvTdUPRXg!|qYni}&pjp~$eZ$FTs(?TT8-^-nt7Opo3DTJzQI+$&U?64`fo zQRB7~j(k=A(T3fzZAv=RAmxu5562Gb88xSl95cZH={sUy4uq!#JK9l;uNGu`_tu#@ zknKNFlM6fioaO_PnMF(Ztzm%TN}Z6Ncm0VvLsUP>Bw3vB*%OY&f2Je()Gv&+dapB= zvY&f_)v+f8s-;CM=x8|}9RWCO?qu_j)Z4QWfj~h0?DK+|tGq8;+t2*6CWr zRigh%KJHQxO>8Stl`F3RJb9IrdGX{^wm|CriVOf~=eg-B9x zdf7Z)dNISk$JBIVEGnsykl@fvA6F1Q3HOO zTk@0C@yg2CDuvOt%L9_$mBw`+>h`k}JSHoX6ool5L ziRgI=i10wro=7b+HA_s|bj$-88A)m#waO)FaxS`u71yz-JEPwh1szN>OL7+1%RkLQ zd-r(Y0>)(0JYJN_G@&;P4t5I=0hTJ|2`QlP-{bH+rLHgNA8F-BU;YlvwGFZ2Ag_>z zrr%1OaE8Cr!*z`N(`tq04E`Y(+tAtaf2lcbnMlH z8Y2}&{8rt#GfK8d8V;`FHNlouOl@w(ofLnJo6j6}n^+h6;@%s)y(i^S_4`SfYS?p6b`Z*6Yj_kW;}i%_uRg`K$I~Qz~?Um zvpYV0CDeNxpTmvaHg*^IV}jOhm7b5|6>PFcBIx3I*_@POVa={xyfg>n;kUSsYaizf z%axR}9b7D20{Z;APbye%*kH&?tT!aeC4)#_cj|mQM=r#nN&ABVSO9=y#E)sig|pO- zCxYVrtVX*`JDQCGcd^Ocd;9Pwsyi=U_h^}?R#U>QUSY*D9U(-t>Eq@lmikUCw??8{ z7M8~4JsbY|;jRY2HML<7O_4i;d8VX3sDjiynco(#bi zZhkPpWNi0^zSKL;7$>&BugJ~|L@uJIm^PAMhM%l6X3t>|ACa%ObT^kxy>*}AG*be+ z{ZBmlZ9CvqCQ(xE7b%@EVA-cE*+0MDL@m8tJB!7eWp!jyCi~m61t{FtU>JTfeKR9S zSrVQYvO)4^X`x%v|4QuDDREgAG32ey3lcI>WEa`W5B)zY9|b1%H6Ksu#878#tVShe z2E4knpyhmWh08!<_>^Bs7t$fBc49v|xt^(es%gEhC1rqx;*N}z?G+Tpyhkh5RaO)<2`fQ zIekPVAVxN(X58=;kF^iurs_kuGgNyto`x~Pb*!X+@D2Lm9k9t)SO?NsC|6)A&1X=E zJ~)&yH9cr6#>~uLJXPA1;tsrgb;eCE%$(I=SY;ESb)LJSQH=@TI0Y7h0}SuU$SOh7 z8A{d?U)gI1ZB_OF7ZUhNN{@f_Vndo~$dbHy=Nx>U85tvw&N$V2<&+ydnO5}yA+={6 zaQHI*Lj~%7`~cSao5G+d3BR4 zWC&%OWn$ymyKO@r4@=aIraU)dUyP8C1;j(>iWLvk=b#y`<>d-n-r&wH`~CifwkLaUe6pLNg= z3nJ5mzTb|rD@?fOZXLooC{Ks&?(W#U#c<^zfif`CXYFwExAPqEAn{bYxAJBgf4&>x zvra^_XZ1r2uxQP zzQOaiOw?bEQU8yQWl2?~7@<$^>(Pr^d&!=H!-aySgenX;H94TIJUdnyN#?1tvu_W^zp9?v(M%e zHIlP9-%C*0FXLQfX45&B>gV_A4jPIGmW^E?_EQ8+i*O8Z zYbJ>Pe3i++NVHQ^zXtCrCZu$rVU{J_)|=+@MDr$#VNOK)0wWvAA}}8lMAUp$F5y_t z3F(zkP4Wg1me~^Ak1ly&d0e_ZnuaHF?`xL8QfgHWBM&=fbmo&9jiU9|!_iV+# zA*)sf4&8WU&@}M$tS}XS(h1q?e6x@$$)HXkRJ~_Ytwehib~hUbHotG6L?n=50s!$| zVT^2*3{W%nkn07C32Glmq+92tlr_EhT3rAZZ9+5(cQ;2-wJ0H-$=~&R zDxr(}Q~Kn~!=)ZdVQfBm5)fX->02fC*KXdTUe8cu#}^@&tfh=32MgJCEP&G6%sRM)%TL3Ls2wHrZQ8 zsb7RsT($8GJxY1m;glkiHH&=lDQ_7N0Uw@|+Xh<^EI4F8OPwS=p7J_8O+>GK#3*Y` z0+;L0#3fgoZ}tH5^|-7{WYOXtg<>CgTVK__;WyV#LBrZ)@CNMey7Xz>HW|Og2gaJ? z%t2^s-~lN;T`!%;WvGFGQ8skcz@jvv+~LO`+~^7F$F}XOy9VNB9wjnklHxmW zlLJ4ytp)GSw+Im-?8=g6;IrowQ|LnCSrd0H_ z{RU*o)ln)r*@h*3Zqk@yb%GyUdy_dNA#uqF0K3ahS>3q4bxleOt$+S-D1rMwswbe_f^d6w7SGFw%E)eju!2* zZ@=Ij$iU>z<;;9K&7qg+!-q03>c}gYUI&i{%X=D3(2!)rXIqBWYlC@zC>tjyHFyPGIM-7@zRU zEq+lqi&X~bN3&Oz3v)_CcxPV5z?K*3mE+aZ&QhrbCKB%ccot(li4lzVrb~DFn-qzt z_#~}vE(0$waomP6!8cn8-UBr;x)Lo%dlX(jteU^ZCKdC~9~uZiely2lxI?Y;f~T!B z5JCfRlF(zSr3f*Bq!Yp6-8$V@8>^+76oWcA^F{Yz!L6Qla+oP8wDE*?U&RDmt6cFxr6&r8PD0UrL(Jr=yImgx6ylH%!( z7VIx5G=Z|>d1COs)sGZ{LLLXisX%UA4f-VbCdNRTLWZ@UM;Wmr7pr^L-8qk5#3+)p zzhz=OX6R{|d%yC=^JVzHS>+>EJ)<#(Zkw@9^<%56Q)M2epYML|0WxN92Yt=&=e=K1 zOFvcjbBnZ5p~FgUL^Wz~$YHPvIIh#C5Ty!)v!dsXebh5<8MiDQ%6?80PbN;Ku6P?< zTxkDQ-$@{#p0stj_ROZ1D1Z5)IG3NI6Kbx$bhw&Yv@ms0xLDIOZ1Jt?5!Ii-6Am;J zTNFbN|6+_{7K87G{Gcsdv~lO}c6cSUV?S^wUPKPY=ug;R9#XAD7DPg3mVyA9Lm}$e zsgsq`62tQQaIxRISGbE6yCr3ywxAIANRIlmm1v9mnE)!*iAt7K;mZ zqbAyU$|98EUGgfB*Xb;PY@ZAnSsV-_nZG?TG=oL3&NEuDjIQEeNnL4v#>5iDz)MW_ z`>zM(FMs}wY*gO;+Mu#D8bzS6`3DtOGN9|~_?511^CIB&7s4P><_H5{@AOI~!)jn7 z_H!ih_DkDK!_6P1;_i{MvHCU8^iDj_&mT%3L)v)gavnH-74zX1=hQNz06VGR@F>Cf zP65GMiZZDthbC$V<&k#b=@pg!JR6Y8x8pu%Dt6YI?TL*QYcPCdx|{W1_d&tm7EM)F z=8RncT(zeP+D0-a@Sa~DOGIStXx9G3xfG)ubBh04=rR{oL)F?an{*Mog+Fq-b8JBS z5c;3)(L)q>#h7=GF1Q`x-r^OphwnHaPBX3* zik{`$stf%D8DYhr9zERw!@Ec_f7l}D{6j~4=h=*Is=FXNkh%@^Bo*NqLjD>H4JRGy1R1z zPB^GxWx^{T`+j>2ypfGosm;`!Dls@lkj-Qzw4p3K$Ih_7WjF-Zk5dZNRH+SoX*&5= z`Jr;KB0KgcSM@c$`H*mxw4=5Pt5SEoQk~QV30&iXb5GhX6zJ|ZKxH^jrBcaf02w=U zhFycT@RZ2p;^qsB@U_C*+b<1hJU*pdA!pH%vuEl|b3KN@i3y33$$8PlUA)qBSGl(5 zblW%Bq|WZ!$}%*SpnSo%thh4vtqB>Z1*(+W0NvUTihhO>KP_M1p1KO!pA?VhHBnNa_&@j0&5jm?v`+C;3IVRD+f0O?`Sb@#fhj>AHbijCL;Ck$Nmd z{v*oF8(ovoj@utIhumkRv9g~rRMz=WH;tNeONFt`n!IP{9ZT$3N5s)HFRGy$_5+3} z&cKzKsKzzSgE2sF$4$7`A+09=kDKSe;FiB}ygdXxTRJM%WPm5P-*{YL_~lvN zSDn&<6DvqhxvPk*@493Y1s>B)cvp}@++)CDuXz>+0Ws5mjE{*sSm|3mOfeNl7LEZP znXSE5>Kn1q%Hr>5`}jZq`LB9o*@xB3#00j)ec~_^G1duY%JfwVk?EqRLG~NomyC(0 zkFw7A7%ZHm+;N)XPWc^8vf8w`#dJ0W(H*H4>A^mM$n;-4XUEo5lZraFR47?yG|@3@ zVsXLW^;!+L(c*DuLrrV+rF|jk!O`ZtaZ*@LD6SnOkP@>mU zN%b}cRAj?w6#>ev3H5fk4M$~D-{0$wRR}j+Bxr$iaz89HGbumSU!7Cp6z0fjF9L_5 z%x*GU;(G%Ca-FXhOoY224R6<^Vu#D}X#te(jSCID`G`L)wlh!U#vA2C-7XR!-7Qi#zc%d2He+@AraO0|D%^O!40!aVk}bsaubY=JAS{MtdMW_5k^i8)lt#kiN3j|X}+%rUp@=YsZcx4qKp zdV;bpC#sn=`ahKI0Q9l;bdtc#FyrSZgl0|pPS$T8GxX0aF-L-=ciBnqa8?pVigXLq zG}g5q;2Hl$pTD&G)CUmVWud0j+vrT6e@u8UC7&*6`gh5F_ViIAy!dQ4Bp)LWR_N1NVqVgn>>7q z<4ZXc9}!-XDFJ2af8R4?C`(Cu4ia4kT6!!x!5)ODAVj!!on90m`-S%ALY{Mp^CcJq~e0P|lcdD~^2{xC8qq4|LmM=8Us z_XGaNbb5b(km||7)@}g0BJo-u2^uV24w1Ixh_jNc;U|e zjCiv^Echt!SR{1M#GngO`S$LLX!$;RIiqM##SZvsw`uy*vUI~xCabR|MCmHDXPcA| zJTH=q6v7dI4`x%E;(j1O9t5@T>Xof~-wnoE=;#`504>TYM{hsDrXf&n^R#>Xh3=bK zN5vMQT`2~62`S&1oUZL-wIrmp+XKi->MLG%cxjIIe4dco!~I8Q676f!oXc(}ddnvd zzq3lloPM1=U3F=~x2E@el!&Izgz(ptYpBZ(7Pl1Q_IV&+qncGoz@by@?^R9C7Jdi1 zHw!fD*^8zS=rJ}f--J{v)D>-rrTCdbt&GzRlyvSroGRk!o#X3*0L%;M?W1Tf^9o4F z17Eafp`Q35zZ%q!%PK!?TBtj){1WxJL8;9jQ9AI3tUnH~zIWWEADL#Isr|)ll1iZP z3m~hAJaj%h!bx>&ut3y24#1V<&Qx%pG+LkxQY)mVrDy_FtPgpdQ1tPUhE4 z-@(JmZVj}fq?h|7y-xkQX+$nxwsZcbzN=TaBiqY!>^H8DpOWX)NIX?`lX5xemS%Cl zqfj^n$c~V**yA>1Bt5UPNV0+Y1Zg@f(ThrXvWecFoNLo^e%;KdAz)y-I}1kDw0ct2 z4BOQtEwO%wYi!bf;%`X7a7`C8vU!W}W~P=>__eKyMH%lyv6=GezzA0x(;$yqh}5`g z?t$wQC$}6u23YEtzOhWYF&9({TAB4XKw#vCl_64%*QjdUkscKy+q8SJu3rTe>SCow z2DN`|*$S7td>}mAWNO5t=4D|+i@4_ng%c+stp-n(O%v;b!e6NN3?PHFm|(zA$gvln zS+L{XQ!S=m;C35a z&ak#iV2o5PAsJP%qwX?ORAIx5>E9xXh#dgh!qB(%c)Q8Ym8SRW>8v3UWyyY~r#Gz; za!!hOd~5BEHEEAEA8_(8v~L(m5=vetOG)I_5c?VPh&;&ZbvpR{{>qn67F;A7pzZjT zg;H}wiq1*3n=`L!ku3`JaGf3o(h&~xmq`P_Wx&H%v%ISoRwZYyY3S7b%bPHznN77V zeluO$6>2O_aJgobz@{Q~8cq#bBEkt+Sz9CDFmgZ1_2*%ShG_-CV9JGvLRGs^>Yc+1 zpU+LuWuyCWH!0)k2jaLfPGx)b(Wfr;O)o9|n+p|6~}- zg^Yj2zR$Tgql<~pz5Fod?agwE9@Q)9+W_`R@Dh@9yOEyArRY)$0P8!>Op#V%hiW~T z#d|QT81vx^?ap#a9eCuS>2bd-x8cctW^aw)^n>B46s|zBvRN&eYNk?!S9MzS!pY92 zQ8bC5K*07AT-5Xkx)K=k&QwEEp^(WTf#v^XDcZjOUzy7Pg3!D}KWqK1i*>ml6gU8F Mb$zwEXO2<-1AnFGD*ylh literal 0 HcmV?d00001 diff --git a/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt b/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt index 95b1ad17..f5f64993 100644 --- a/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt +++ b/gallery/src/desktopMain/kotlin/com/konyaco/fluent/gallery/Main.kt @@ -9,12 +9,18 @@ import androidx.compose.ui.window.application import androidx.compose.ui.window.rememberWindowState import com.mayakapps.compose.windowstyler.WindowBackdrop import com.mayakapps.compose.windowstyler.WindowStyle +import fluentdesign.gallery.generated.resources.Res +import fluentdesign.gallery.generated.resources.icon +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.resources.painterResource +@OptIn(ExperimentalResourceApi::class) fun main() = application { Window( onCloseRequest = ::exitApplication, state = rememberWindowState(position = WindowPosition(Alignment.Center), size = DpSize(1280.dp, 720.dp)), - title = "Compose Fluent Design Gallery" + title = "Compose Fluent Design Gallery", + icon = painterResource(Res.drawable.icon) ) { GalleryTheme { //TODO Make Window transparent. From f7897a61fdea4839a512f10bcdda769b36d6990b Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sat, 6 Apr 2024 23:52:28 +0800 Subject: [PATCH 046/136] [fluent] Refactor dialog. Add basic `FluentDialog`, simple `ContentDialog`, and `FluentDialogHost` for command-style invocation. --- .../kotlin/com/konyaco/fluent/FluentTheme.kt | 9 +- .../com/konyaco/fluent/component/Dialog.kt | 227 ++++++++++++++---- .../kotlin/com/konyaco/fluent/surface/Card.kt | 10 + .../fluent/gallery/screen/HomeScreen.kt | 18 +- .../screen/dialogs/ContentDialogScreen.kt | 53 +++- 5 files changed, 244 insertions(+), 73 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt index 9bf41fd2..7144c97d 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.text.selection.TextSelectionColors import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable +import androidx.compose.runtime.remember import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -13,6 +14,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import com.konyaco.fluent.background.AcrylicContainer import com.konyaco.fluent.background.AcrylicContainerScope +import com.konyaco.fluent.component.ContentDialogHost +import com.konyaco.fluent.component.ContentDialogHostState +import com.konyaco.fluent.component.LocalContentDialog import com.konyaco.fluent.component.ProvideFontIcon @ExperimentalFluentApi @@ -23,6 +27,7 @@ fun FluentTheme( useAcrylicPopup: Boolean = false, content: @Composable () -> Unit ) { + val contentDialogHostState = remember { ContentDialogHostState() } AcrylicContainer { CompositionLocalProvider( LocalAcrylicPopupEnabled provides useAcrylicPopup, @@ -32,8 +37,10 @@ fun FluentTheme( LocalTextSelectionColors provides TextSelectionColors( colors.text.onAccent.primary, colors.fillAccent.selectedTextBackground.copy(0.4f) - ) + ), + LocalContentDialog provides contentDialogHostState ) { + ContentDialogHost(contentDialogHostState) Box(modifier = Modifier.behindAcrylic()) { ProvideFontIcon { PlatformCompositionLocalProvider(content) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt index 163be106..e0472955 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt @@ -1,7 +1,7 @@ package com.konyaco.fluent.component import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.MutableTransitionState import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn @@ -24,12 +24,18 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.Stable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Popup import androidx.compose.ui.window.PopupPositionProvider @@ -41,19 +47,31 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica import com.konyaco.fluent.shape.FluentRoundedCornerShape +import kotlinx.coroutines.CancellableContinuation +import kotlinx.coroutines.suspendCancellableCoroutine +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock +import kotlin.coroutines.resume -internal expect val DialogPopupPositionProvider : PopupPositionProvider +internal expect val DialogPopupPositionProvider: PopupPositionProvider + +@Stable +class DialogSize( + val min: Dp, + val max: Dp +) { + companion object { + val Max = DialogSize(540.dp, 540.dp) + val Standard = DialogSize(448.dp, 448.dp) + val Min = DialogSize(320.dp, 320.dp) + } +} -@OptIn(ExperimentalAnimationApi::class) @Composable -fun Dialog( - title: String, +fun FluentDialog( visible: Boolean, - content: @Composable () -> Unit, - cancelButtonText: String, - onCancel: () -> Unit, - confirmButtonText: String, - onConfirm: () -> Unit + size: DialogSize = DialogSize.Standard, + content: @Composable () -> Unit ) { val visibleState = remember { MutableTransitionState(false) } @@ -64,63 +82,170 @@ fun Dialog( if (visibleState.currentState || visibleState.targetState) Popup( popupPositionProvider = DialogPopupPositionProvider ) { + val scrim by animateColorAsState( + if (visible) Color.Black.copy(0.3f) else Color.Transparent, animationSpec = tween( + easing = FluentEasing.FastInvokeEasing, + durationMillis = FluentDuration.ShortDuration + ) + ) + val tween = tween( + easing = FluentEasing.FastInvokeEasing, + durationMillis = FluentDuration.ShortDuration + ) Box( Modifier.fillMaxSize() - .background(Color.Black.copy(0.3f)) + .background(scrim) .pointerInput(Unit) {}, Alignment.Center ) { - - val tween = tween( - easing = FluentEasing.FastInvokeEasing, - durationMillis = FluentDuration.QuickDuration - ) - AnimatedVisibility( visibleState = visibleState, - enter = fadeIn(tween) + scaleIn(tween, initialScale = 1.1f), - exit = fadeOut(tween) + scaleOut(tween, targetScale = 1.1f) + enter = fadeIn(tween) + scaleIn(tween, initialScale = 1.05f), + exit = fadeOut(tween) + scaleOut(tween, targetScale = 1.05f) ) { Mica(Modifier.wrapContentSize().clip(RoundedCornerShape(8.dp))) { Layer( - Modifier.wrapContentSize().widthIn(200.dp, 600.dp), + Modifier.wrapContentSize().widthIn(size.min, size.max), shape = FluentRoundedCornerShape(8.dp), border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.default), outsideBorder = true, + color = FluentTheme.colors.background.solid.base, contentColor = FluentTheme.colors.text.text.primary, - ) { - Column(Modifier.background(FluentTheme.colors.background.solid.base)) { - Column(Modifier.background(FluentTheme.colors.background.layer.alt).padding(24.dp)) { - Text( - style = FluentTheme.typography.subtitle, - text = title, -// color = FluentTheme.colors.text.text.primary - ) - Spacer(Modifier.height(12.dp)) - CompositionLocalProvider( - LocalTextStyle provides FluentTheme.typography.body, - LocalContentColor provides FluentTheme.colors.text.text.primary - ) { - content() - } - } - // Divider - Box(Modifier.height(1.dp).background(FluentTheme.colors.stroke.surface.default)) - // Button Grid - Box(Modifier.height(80.dp).padding(horizontal = 25.dp), Alignment.Center) { - Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { - AccentButton(modifier = Modifier.weight(1f), onClick = onConfirm) { - Text(confirmButtonText) - } - Button(modifier = Modifier.weight(1f), onClick = onCancel) { - Text(cancelButtonText) - } - } - } - } + content = content + ) + } + } + } + } +} + +enum class ContentDialogButton { + Primary, Secondary, Close +} + +@Composable +fun ContentDialog( + title: String, + visible: Boolean, + content: @Composable () -> Unit, + primaryButtonText: String, + secondaryButtonText: String? = null, + closeButtonText: String? = null, + onButtonClick: (ContentDialogButton) -> Unit, + size: DialogSize = DialogSize.Standard +) { + FluentDialog(visible, size) { + Column { + Column(Modifier.background(FluentTheme.colors.background.layer.alt).padding(24.dp)) { + Text( + style = FluentTheme.typography.subtitle, + text = title, +// color = FluentTheme.colors.text.text.primary + ) + Spacer(Modifier.height(12.dp)) + CompositionLocalProvider( + LocalTextStyle provides FluentTheme.typography.body, + LocalContentColor provides FluentTheme.colors.text.text.primary + ) { + content() + } + } + // Divider + Box(Modifier.height(1.dp).background(FluentTheme.colors.stroke.surface.default)) + // Button Grid + Box(Modifier.height(80.dp).padding(horizontal = 25.dp), Alignment.CenterEnd) { + Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { + AccentButton(modifier = Modifier.weight(1f), onClick = { + onButtonClick(ContentDialogButton.Primary) + }) { + Text(primaryButtonText) + } + if (secondaryButtonText != null) Button( + modifier = Modifier.weight(1f), + onClick = { + onButtonClick(ContentDialogButton.Secondary) + }) { + Text(secondaryButtonText) + } + if (closeButtonText != null) Button(modifier = Modifier.weight(1f), onClick = { + onButtonClick(ContentDialogButton.Close) + }) { + Text(closeButtonText) } } } } } -} \ No newline at end of file +} + +@Composable +fun ContentDialogHost(state: ContentDialogHostState) { + val data = state.currentData + + if (data != null) { + var visible by remember(data) { mutableStateOf(true) } + + ContentDialog( + title = data.title, + visible = visible, + size = data.size, + content = { Text(data.contentText) }, + primaryButtonText = data.primaryButtonText, + secondaryButtonText = data.secondaryButtonText, + closeButtonText = data.closeButtonText, + onButtonClick = { + visible = false + if (data.continuation.isActive) { + data.continuation.resume(it) + } + } + ) + } +} + +val LocalContentDialog = staticCompositionLocalOf { error("Not provided") } + +class ContentDialogHostState { + private val mutex = Mutex() + + internal var currentData by mutableStateOf(null) + private set + + suspend fun show( + title: String, + contentText: String, + primaryButtonText: String, + secondaryButtonText: String? = null, + closeButtonText: String? = null, + size: DialogSize = DialogSize.Standard, + ): ContentDialogButton { + mutex.withLock { + try { + return suspendCancellableCoroutine { cont -> + currentData = DialogData( + title, + contentText, + primaryButtonText, + secondaryButtonText, + closeButtonText, + size, + cont + ) + } + } finally { + // FIXME: If set null instantly, exit animation will be terminated +// currentData = null + } + } + } + + internal class DialogData( + val title: String, + val contentText: String, + val primaryButtonText: String, + val secondaryButtonText: String? = null, + val closeButtonText: String? = null, + val size: DialogSize = DialogSize.Standard, + val continuation: CancellableContinuation + ) +} diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt index c47ff6a6..6f78ddbd 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt @@ -14,4 +14,14 @@ fun Card( content: @Composable () -> Unit ) { Layer(modifier = modifier, shape = shape, outsideBorder = true, content = content) +} + +@Composable +fun Card( + modifier: Modifier, + shape: Shape = FluentRoundedCornerShape(8.dp), + clickable: () -> Unit, + content: @Composable () -> Unit +) { + Layer(shape = shape, outsideBorder = true, content = content) } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index 698f0f12..b7194b7e 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -31,7 +31,7 @@ import com.konyaco.fluent.background.Layer import com.konyaco.fluent.component.AccentButton import com.konyaco.fluent.component.Button import com.konyaco.fluent.component.CheckBox -import com.konyaco.fluent.component.Dialog +import com.konyaco.fluent.component.ContentDialog import com.konyaco.fluent.component.DropdownMenu import com.konyaco.fluent.component.DropdownMenuItem import com.konyaco.fluent.component.FlyoutContainer @@ -215,23 +215,17 @@ fun HomeScreen() { ) } - Dialog( + ContentDialog( title = "This is an example dialog", visible = displayDialog, - cancelButtonText = "Cancel", - confirmButtonText = "Confirm", - onCancel = { - displayDialog = false - }, - onConfirm = { - displayDialog = false - }, + primaryButtonText = "Confirm", + closeButtonText = "Cancel", + onButtonClick = { displayDialog = false }, content = { Text( "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + "\n" + - "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", - color = LocalContentColor.current + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n" ) } ) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt index 08c18c7c..3d0d1ad8 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt @@ -1,8 +1,10 @@ package com.konyaco.fluent.gallery.screen.dialogs import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll @@ -10,17 +12,20 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.component.Button -import com.konyaco.fluent.component.Dialog +import com.konyaco.fluent.component.ContentDialog +import com.konyaco.fluent.component.DialogSize +import com.konyaco.fluent.component.LocalContentDialog import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection +import kotlinx.coroutines.launch @Component @Composable @@ -40,6 +45,15 @@ fun ContentDialogScreen() { sourceCode = sourceCodeOfBasicContentDialogSample, content = { BasicContentDialogSample() } ) + + Spacer(Modifier.height(32.dp)) + + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "Use content dialog by LocalContentDialog.", + sourceCode = sourceCodeOfLocalContentDialogSample, + content = { LocalContentDialogSample() } + ) } } } @@ -47,25 +61,46 @@ fun ContentDialogScreen() { @Sample @Composable private fun BasicContentDialogSample() { - // TODO: Style var displayDialog by remember { mutableStateOf(false) } - Dialog( + ContentDialog( title = "This is an example dialog", visible = displayDialog, - cancelButtonText = "Cancel", - confirmButtonText = "Confirm", - onCancel = { displayDialog = false }, - onConfirm = { displayDialog = false }, + size = DialogSize.Max, + primaryButtonText = "Confirm", + closeButtonText = "Cancel", + onButtonClick = { displayDialog = false }, content = { Text( "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + "\n" + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", - color = LocalContentColor.current ) } ) Button(onClick = { displayDialog = true }) { Text("Show dialog") } +} + +@Sample +@Composable +private fun LocalContentDialogSample() { + val dialog = LocalContentDialog.current + val scope = rememberCoroutineScope() + + Button(onClick = { + scope.launch { + val result = dialog.show( + size = DialogSize.Standard, + title = "This is an example dialog", + contentText = "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + + "\n" + + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", + primaryButtonText = "Confirm", + closeButtonText = "Cancel" + ) + } + }) { + Text("Show dialog") + } } \ No newline at end of file From 16c1c05f1c7a37586fd73eb08235da915bdb2011 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sat, 6 Apr 2024 23:52:28 +0800 Subject: [PATCH 047/136] [fluent] Refactor dialog. Add basic `FluentDialog`, simple `ContentDialog`, and `FluentDialogHost` for command-style invocation. --- .../kotlin/com/konyaco/fluent/FluentTheme.kt | 9 +- .../com/konyaco/fluent/component/Dialog.kt | 227 ++++++++++++++---- .../fluent/gallery/screen/HomeScreen.kt | 18 +- .../screen/dialogs/ContentDialogScreen.kt | 53 +++- 4 files changed, 234 insertions(+), 73 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt index 9bf41fd2..7144c97d 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/FluentTheme.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.text.selection.TextSelectionColors import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable +import androidx.compose.runtime.remember import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -13,6 +14,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import com.konyaco.fluent.background.AcrylicContainer import com.konyaco.fluent.background.AcrylicContainerScope +import com.konyaco.fluent.component.ContentDialogHost +import com.konyaco.fluent.component.ContentDialogHostState +import com.konyaco.fluent.component.LocalContentDialog import com.konyaco.fluent.component.ProvideFontIcon @ExperimentalFluentApi @@ -23,6 +27,7 @@ fun FluentTheme( useAcrylicPopup: Boolean = false, content: @Composable () -> Unit ) { + val contentDialogHostState = remember { ContentDialogHostState() } AcrylicContainer { CompositionLocalProvider( LocalAcrylicPopupEnabled provides useAcrylicPopup, @@ -32,8 +37,10 @@ fun FluentTheme( LocalTextSelectionColors provides TextSelectionColors( colors.text.onAccent.primary, colors.fillAccent.selectedTextBackground.copy(0.4f) - ) + ), + LocalContentDialog provides contentDialogHostState ) { + ContentDialogHost(contentDialogHostState) Box(modifier = Modifier.behindAcrylic()) { ProvideFontIcon { PlatformCompositionLocalProvider(content) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt index 163be106..e0472955 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt @@ -1,7 +1,7 @@ package com.konyaco.fluent.component import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.MutableTransitionState import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn @@ -24,12 +24,18 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.Stable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Popup import androidx.compose.ui.window.PopupPositionProvider @@ -41,19 +47,31 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica import com.konyaco.fluent.shape.FluentRoundedCornerShape +import kotlinx.coroutines.CancellableContinuation +import kotlinx.coroutines.suspendCancellableCoroutine +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock +import kotlin.coroutines.resume -internal expect val DialogPopupPositionProvider : PopupPositionProvider +internal expect val DialogPopupPositionProvider: PopupPositionProvider + +@Stable +class DialogSize( + val min: Dp, + val max: Dp +) { + companion object { + val Max = DialogSize(540.dp, 540.dp) + val Standard = DialogSize(448.dp, 448.dp) + val Min = DialogSize(320.dp, 320.dp) + } +} -@OptIn(ExperimentalAnimationApi::class) @Composable -fun Dialog( - title: String, +fun FluentDialog( visible: Boolean, - content: @Composable () -> Unit, - cancelButtonText: String, - onCancel: () -> Unit, - confirmButtonText: String, - onConfirm: () -> Unit + size: DialogSize = DialogSize.Standard, + content: @Composable () -> Unit ) { val visibleState = remember { MutableTransitionState(false) } @@ -64,63 +82,170 @@ fun Dialog( if (visibleState.currentState || visibleState.targetState) Popup( popupPositionProvider = DialogPopupPositionProvider ) { + val scrim by animateColorAsState( + if (visible) Color.Black.copy(0.3f) else Color.Transparent, animationSpec = tween( + easing = FluentEasing.FastInvokeEasing, + durationMillis = FluentDuration.ShortDuration + ) + ) + val tween = tween( + easing = FluentEasing.FastInvokeEasing, + durationMillis = FluentDuration.ShortDuration + ) Box( Modifier.fillMaxSize() - .background(Color.Black.copy(0.3f)) + .background(scrim) .pointerInput(Unit) {}, Alignment.Center ) { - - val tween = tween( - easing = FluentEasing.FastInvokeEasing, - durationMillis = FluentDuration.QuickDuration - ) - AnimatedVisibility( visibleState = visibleState, - enter = fadeIn(tween) + scaleIn(tween, initialScale = 1.1f), - exit = fadeOut(tween) + scaleOut(tween, targetScale = 1.1f) + enter = fadeIn(tween) + scaleIn(tween, initialScale = 1.05f), + exit = fadeOut(tween) + scaleOut(tween, targetScale = 1.05f) ) { Mica(Modifier.wrapContentSize().clip(RoundedCornerShape(8.dp))) { Layer( - Modifier.wrapContentSize().widthIn(200.dp, 600.dp), + Modifier.wrapContentSize().widthIn(size.min, size.max), shape = FluentRoundedCornerShape(8.dp), border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.default), outsideBorder = true, + color = FluentTheme.colors.background.solid.base, contentColor = FluentTheme.colors.text.text.primary, - ) { - Column(Modifier.background(FluentTheme.colors.background.solid.base)) { - Column(Modifier.background(FluentTheme.colors.background.layer.alt).padding(24.dp)) { - Text( - style = FluentTheme.typography.subtitle, - text = title, -// color = FluentTheme.colors.text.text.primary - ) - Spacer(Modifier.height(12.dp)) - CompositionLocalProvider( - LocalTextStyle provides FluentTheme.typography.body, - LocalContentColor provides FluentTheme.colors.text.text.primary - ) { - content() - } - } - // Divider - Box(Modifier.height(1.dp).background(FluentTheme.colors.stroke.surface.default)) - // Button Grid - Box(Modifier.height(80.dp).padding(horizontal = 25.dp), Alignment.Center) { - Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { - AccentButton(modifier = Modifier.weight(1f), onClick = onConfirm) { - Text(confirmButtonText) - } - Button(modifier = Modifier.weight(1f), onClick = onCancel) { - Text(cancelButtonText) - } - } - } - } + content = content + ) + } + } + } + } +} + +enum class ContentDialogButton { + Primary, Secondary, Close +} + +@Composable +fun ContentDialog( + title: String, + visible: Boolean, + content: @Composable () -> Unit, + primaryButtonText: String, + secondaryButtonText: String? = null, + closeButtonText: String? = null, + onButtonClick: (ContentDialogButton) -> Unit, + size: DialogSize = DialogSize.Standard +) { + FluentDialog(visible, size) { + Column { + Column(Modifier.background(FluentTheme.colors.background.layer.alt).padding(24.dp)) { + Text( + style = FluentTheme.typography.subtitle, + text = title, +// color = FluentTheme.colors.text.text.primary + ) + Spacer(Modifier.height(12.dp)) + CompositionLocalProvider( + LocalTextStyle provides FluentTheme.typography.body, + LocalContentColor provides FluentTheme.colors.text.text.primary + ) { + content() + } + } + // Divider + Box(Modifier.height(1.dp).background(FluentTheme.colors.stroke.surface.default)) + // Button Grid + Box(Modifier.height(80.dp).padding(horizontal = 25.dp), Alignment.CenterEnd) { + Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { + AccentButton(modifier = Modifier.weight(1f), onClick = { + onButtonClick(ContentDialogButton.Primary) + }) { + Text(primaryButtonText) + } + if (secondaryButtonText != null) Button( + modifier = Modifier.weight(1f), + onClick = { + onButtonClick(ContentDialogButton.Secondary) + }) { + Text(secondaryButtonText) + } + if (closeButtonText != null) Button(modifier = Modifier.weight(1f), onClick = { + onButtonClick(ContentDialogButton.Close) + }) { + Text(closeButtonText) } } } } } -} \ No newline at end of file +} + +@Composable +fun ContentDialogHost(state: ContentDialogHostState) { + val data = state.currentData + + if (data != null) { + var visible by remember(data) { mutableStateOf(true) } + + ContentDialog( + title = data.title, + visible = visible, + size = data.size, + content = { Text(data.contentText) }, + primaryButtonText = data.primaryButtonText, + secondaryButtonText = data.secondaryButtonText, + closeButtonText = data.closeButtonText, + onButtonClick = { + visible = false + if (data.continuation.isActive) { + data.continuation.resume(it) + } + } + ) + } +} + +val LocalContentDialog = staticCompositionLocalOf { error("Not provided") } + +class ContentDialogHostState { + private val mutex = Mutex() + + internal var currentData by mutableStateOf(null) + private set + + suspend fun show( + title: String, + contentText: String, + primaryButtonText: String, + secondaryButtonText: String? = null, + closeButtonText: String? = null, + size: DialogSize = DialogSize.Standard, + ): ContentDialogButton { + mutex.withLock { + try { + return suspendCancellableCoroutine { cont -> + currentData = DialogData( + title, + contentText, + primaryButtonText, + secondaryButtonText, + closeButtonText, + size, + cont + ) + } + } finally { + // FIXME: If set null instantly, exit animation will be terminated +// currentData = null + } + } + } + + internal class DialogData( + val title: String, + val contentText: String, + val primaryButtonText: String, + val secondaryButtonText: String? = null, + val closeButtonText: String? = null, + val size: DialogSize = DialogSize.Standard, + val continuation: CancellableContinuation + ) +} diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index 698f0f12..b7194b7e 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -31,7 +31,7 @@ import com.konyaco.fluent.background.Layer import com.konyaco.fluent.component.AccentButton import com.konyaco.fluent.component.Button import com.konyaco.fluent.component.CheckBox -import com.konyaco.fluent.component.Dialog +import com.konyaco.fluent.component.ContentDialog import com.konyaco.fluent.component.DropdownMenu import com.konyaco.fluent.component.DropdownMenuItem import com.konyaco.fluent.component.FlyoutContainer @@ -215,23 +215,17 @@ fun HomeScreen() { ) } - Dialog( + ContentDialog( title = "This is an example dialog", visible = displayDialog, - cancelButtonText = "Cancel", - confirmButtonText = "Confirm", - onCancel = { - displayDialog = false - }, - onConfirm = { - displayDialog = false - }, + primaryButtonText = "Confirm", + closeButtonText = "Cancel", + onButtonClick = { displayDialog = false }, content = { Text( "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + "\n" + - "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", - color = LocalContentColor.current + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n" ) } ) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt index 08c18c7c..3d0d1ad8 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/dialogs/ContentDialogScreen.kt @@ -1,8 +1,10 @@ package com.konyaco.fluent.gallery.screen.dialogs import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll @@ -10,17 +12,20 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.component.Button -import com.konyaco.fluent.component.Dialog +import com.konyaco.fluent.component.ContentDialog +import com.konyaco.fluent.component.DialogSize +import com.konyaco.fluent.component.LocalContentDialog import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryHeader import com.konyaco.fluent.gallery.component.GallerySection +import kotlinx.coroutines.launch @Component @Composable @@ -40,6 +45,15 @@ fun ContentDialogScreen() { sourceCode = sourceCodeOfBasicContentDialogSample, content = { BasicContentDialogSample() } ) + + Spacer(Modifier.height(32.dp)) + + GallerySection( + modifier = Modifier.fillMaxWidth(), + title = "Use content dialog by LocalContentDialog.", + sourceCode = sourceCodeOfLocalContentDialogSample, + content = { LocalContentDialogSample() } + ) } } } @@ -47,25 +61,46 @@ fun ContentDialogScreen() { @Sample @Composable private fun BasicContentDialogSample() { - // TODO: Style var displayDialog by remember { mutableStateOf(false) } - Dialog( + ContentDialog( title = "This is an example dialog", visible = displayDialog, - cancelButtonText = "Cancel", - confirmButtonText = "Confirm", - onCancel = { displayDialog = false }, - onConfirm = { displayDialog = false }, + size = DialogSize.Max, + primaryButtonText = "Confirm", + closeButtonText = "Cancel", + onButtonClick = { displayDialog = false }, content = { Text( "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + "\n" + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", - color = LocalContentColor.current ) } ) Button(onClick = { displayDialog = true }) { Text("Show dialog") } +} + +@Sample +@Composable +private fun LocalContentDialogSample() { + val dialog = LocalContentDialog.current + val scope = rememberCoroutineScope() + + Button(onClick = { + scope.launch { + val result = dialog.show( + size = DialogSize.Standard, + title = "This is an example dialog", + contentText = "This is body text. Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. \n" + + "\n" + + "The design principles below have guided us throughout the journey of making Windows the best-in-class implementation of Fluent.\n", + primaryButtonText = "Confirm", + closeButtonText = "Cancel" + ) + } + }) { + Text("Show dialog") + } } \ No newline at end of file From 111bf4aa7e2f8e0fbd06b979697738ca66fa7d5e Mon Sep 17 00:00:00 2001 From: KonYaco Date: Sun, 7 Apr 2024 00:34:26 +0800 Subject: [PATCH 048/136] Remove Card --- .../kotlin/com/konyaco/fluent/surface/Card.kt | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt index 6f78ddbd..d96788f7 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt @@ -15,13 +15,3 @@ fun Card( ) { Layer(modifier = modifier, shape = shape, outsideBorder = true, content = content) } - -@Composable -fun Card( - modifier: Modifier, - shape: Shape = FluentRoundedCornerShape(8.dp), - clickable: () -> Unit, - content: @Composable () -> Unit -) { - Layer(shape = shape, outsideBorder = true, content = content) -} \ No newline at end of file From 264d2dceccb5720241e5713b4c4e6e3d9b5dc397 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Mon, 8 Apr 2024 12:57:10 +0800 Subject: [PATCH 049/136] Format code --- .../com/konyaco/fluent/component/Dialog.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt index e0472955..4264a4da 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt @@ -140,7 +140,6 @@ fun ContentDialog( Text( style = FluentTheme.typography.subtitle, text = title, -// color = FluentTheme.colors.text.text.primary ) Spacer(Modifier.height(12.dp)) CompositionLocalProvider( @@ -155,21 +154,22 @@ fun ContentDialog( // Button Grid Box(Modifier.height(80.dp).padding(horizontal = 25.dp), Alignment.CenterEnd) { Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { - AccentButton(modifier = Modifier.weight(1f), onClick = { - onButtonClick(ContentDialogButton.Primary) - }) { + AccentButton( + modifier = Modifier.weight(1f), + onClick = { onButtonClick(ContentDialogButton.Primary) } + ) { Text(primaryButtonText) } if (secondaryButtonText != null) Button( modifier = Modifier.weight(1f), - onClick = { - onButtonClick(ContentDialogButton.Secondary) - }) { + onClick = { onButtonClick(ContentDialogButton.Secondary) } + ) { Text(secondaryButtonText) } - if (closeButtonText != null) Button(modifier = Modifier.weight(1f), onClick = { - onButtonClick(ContentDialogButton.Close) - }) { + if (closeButtonText != null) Button( + modifier = Modifier.weight(1f), + onClick = { onButtonClick(ContentDialogButton.Close) } + ) { Text(closeButtonText) } } From c03469728c5449e2392a237583396dad79bfd13c Mon Sep 17 00:00:00 2001 From: sanlorng Date: Thu, 21 Mar 2024 00:51:10 +0800 Subject: [PATCH 050/136] [fluent] disabled click event when button is disabled. --- .../commonMain/kotlin/com/konyaco/fluent/component/Button.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 2800b3ba..5e9c398f 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -135,7 +135,8 @@ private fun Button( .clickable( onClick = onClick, interactionSource = interaction, - indication = null + indication = null, + enabled = !disabled ) .then(if (iconOnly) Modifier else Modifier.padding(horizontal = 12.dp)), horizontalArrangement = Arrangement.spacedBy(8.dp, Alignment.CenterHorizontally), From e416f028bbb8bc6a598f7b7d05adb5b55347c151 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Thu, 21 Mar 2024 00:52:05 +0800 Subject: [PATCH 051/136] [fluent] Add HyperlinkButton. --- .../com/konyaco/fluent/component/Button.kt | 76 +++++++++++++++++++ .../fluent/gallery/component/GalleryPage.kt | 60 +++++++++++++++ .../basicinput/HyperlinkButtonScreen.kt | 53 ++++++++++--- 3 files changed, 177 insertions(+), 12 deletions(-) create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryPage.kt diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 5e9c398f..5b8e1bf2 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -21,6 +21,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.input.pointer.PointerIcon +import androidx.compose.ui.input.pointer.pointerHoverIcon +import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration @@ -82,6 +85,50 @@ fun SubtleButton( Button(modifier, interaction, disabled, buttonColors, true, onClick, iconOnly, content) } +@Composable +fun HyperlinkButton( + navigateUri: String, + modifier: Modifier = Modifier, + disabled: Boolean = false, + buttonColors: ButtonColors = hyperlinkButtonColors(), + interaction: MutableInteractionSource = remember { MutableInteractionSource() }, + iconOnly: Boolean = false, + content: @Composable RowScope.() -> Unit +) { + val uriHandler = LocalUriHandler.current + HyperlinkButton( + modifier = modifier, + disabled = disabled, + buttonColors = buttonColors, + interaction = interaction, + iconOnly = iconOnly, + content = content, + onClick = { uriHandler.openUri(navigateUri) } + ) +} + +@Composable +fun HyperlinkButton( + onClick: () -> Unit, + modifier: Modifier = Modifier, + disabled: Boolean = false, + buttonColors: ButtonColors = hyperlinkButtonColors(), + interaction: MutableInteractionSource = remember { MutableInteractionSource() }, + iconOnly: Boolean = false, + content: @Composable RowScope.() -> Unit +) { + Button( + modifier = modifier.pointerHoverIcon(if (!disabled) PointerIcon.Hand else PointerIcon.Default), + interaction = interaction, + disabled = disabled, + buttonColors = buttonColors, + true, + onClick = onClick, + iconOnly = iconOnly, + content = content + ) +} + @Composable private fun Button( modifier: Modifier, @@ -232,4 +279,33 @@ private fun subtleButtonColors(): ButtonColors { ), ) } +} + +@Composable +private fun hyperlinkButtonColors(): ButtonColors { + val colors = FluentTheme.colors + return remember(colors) { + ButtonColors( + default = ButtonColor( + colors.subtleFill.transparent, + colors.text.accent.primary, + SolidColor(Color.Transparent) + ), + hovered = ButtonColor( + colors.subtleFill.secondary, + colors.text.accent.primary, + SolidColor(Color.Transparent) + ), + pressed = ButtonColor( + colors.subtleFill.tertiary, + colors.text.accent.secondary, + SolidColor(Color.Transparent) + ), + disabled = ButtonColor( + colors.subtleFill.disabled, + colors.text.accent.disabled, + SolidColor(Color.Transparent) + ), + ) + } } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryPage.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryPage.kt new file mode 100644 index 00000000..7de98d58 --- /dev/null +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GalleryPage.kt @@ -0,0 +1,60 @@ +package com.konyaco.fluent.gallery.component + +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.ScrollbarContainer +import com.konyaco.fluent.component.rememberScrollbarAdapter + +@Composable +fun GalleryPage( + title: String, + description: String, + content: @Composable GalleryPageScope.() -> Unit +) { + GalleryPage(AnnotatedString(title), AnnotatedString(description), content) +} + +@Composable +fun GalleryPage( + title: AnnotatedString, + description: AnnotatedString, + content: @Composable GalleryPageScope.() -> Unit +) { + + Column( + modifier = Modifier.fillMaxSize() + ) { + GalleryHeader(title, description) + val scrollState = rememberScrollState() + ScrollbarContainer( + adapter = rememberScrollbarAdapter(scrollState), + modifier = Modifier.weight(1f) + ) { + Column( + modifier = Modifier + .fillMaxHeight() + .verticalScroll(scrollState) + .padding(start = 32.dp, end = 32.dp, top = 0.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(32.dp) + ) { + val scope = remember { GalleryPageScope(this) } + scope.content() + } + } + } +} + +class GalleryPageScope(columnScope: ColumnScope): ColumnScope by columnScope { + + @Composable + fun Section(title: String, sourceCode: String, content: @Composable BoxScope.() -> Unit) { + GallerySection(modifier = Modifier.fillMaxSize(), title, sourceCode, content) + } + +} \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt index 8e6fbcf2..3d00f477 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/HyperlinkButtonScreen.kt @@ -1,20 +1,49 @@ package com.konyaco.fluent.gallery.screen.basicinput -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier +import com.konyaco.fluent.component.HyperlinkButton +import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.annotation.Component -import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.* +import com.konyaco.fluent.gallery.component.Basic_input_ToggleButtonScreenComponent -@Component(index = 2) +@Component(index = 2, description = "A button that appears as hyperlink text, and can navigate to a URl or handle a Click event.") @Composable -fun HyperlinkButtonScreen() { - Column(Modifier.fillMaxSize()) { - GalleryHeader( - "HyperlinkButton", - "A HyperlinkButton appears as a text hyperlink. When a user clicks it, it opens the page you specify in the NavigateUri property in the default browser. Or you can handle its Click event, typically to navigate within your app." - ) - // TODO: +fun HyperlinkButtonScreen(navigator: ComponentNavigator) { + GalleryPage( + title = "HyperlinkButton", + description = "A HyperlinkButton appears as a text hyperlink. When a user clicks it, it opens the page you specify in the NavigateUri property in the default browser. Or you can handle its Click event, typically to navigate within your app." + ) { + Section( + title = "A hyperlink button that navigates to a URl.", + sourceCode = sourceCodeOfNavigateUriHyperlinkButtonSample + ) { + NavigateUriHyperlinkButtonSample() + } + Section( + title = "A hyperlink button that handles a Click event.", + sourceCode = sourceCodeOfClickEventHyperlinkButtonSample + ) { + ClickEventHyperlinkButtonSample { + navigator.navigate(Basic_input_ToggleButtonScreenComponent) + } + } + } +} + +@Sample +@Composable +private fun NavigateUriHyperlinkButtonSample() { + HyperlinkButton(navigateUri = "https://www.microsoft.com") { + Text("Microsoft home page") + } +} + +@Sample +@Composable +private fun ClickEventHyperlinkButtonSample(onClick: () -> Unit) { + HyperlinkButton(onClick = onClick) { + Text("Go to ToggleButton") } } \ No newline at end of file From db27c256dc822bd4a00c5e7317204ef716cf2d42 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Thu, 21 Mar 2024 08:57:16 +0800 Subject: [PATCH 052/136] [fluent] Add RepeatButton. --- .../com/konyaco/fluent/component/Button.kt | 78 +++++++++++++++---- .../screen/basicinput/RepeatButtonScreen.kt | 45 ++++++++--- 2 files changed, 99 insertions(+), 24 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 5b8e1bf2..06316883 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -3,19 +3,16 @@ package com.konyaco.fluent.component import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.tween import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.clickable -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.interaction.collectIsHoveredAsState -import androidx.compose.foundation.interaction.collectIsPressedAsState +import androidx.compose.foundation.combinedClickable +import androidx.compose.foundation.interaction.* import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.padding -import androidx.compose.runtime.Composable -import androidx.compose.runtime.Immutable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.remember +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush @@ -30,6 +27,8 @@ import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.shape.FluentRoundedCornerShape +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch @Immutable data class ButtonColors( @@ -129,6 +128,53 @@ fun HyperlinkButton( ) } +@OptIn(ExperimentalFoundationApi::class) +@Composable +fun RepeatButton( + onClick: () -> Unit, + modifier: Modifier = Modifier, + delay: Long = 200, + interval: Long = 50, + disabled: Boolean = false, + buttonColors: ButtonColors = buttonColors(), + interaction: MutableInteractionSource = remember { MutableInteractionSource() }, + iconOnly: Boolean = false, + content: @Composable RowScope.() -> Unit +) { + val pressed = interaction.collectIsPressedAsState() + val scope = rememberCoroutineScope() + + Button( + modifier = modifier.combinedClickable( + interactionSource = interaction, + indication = null, + enabled = !disabled, + onClick = onClick, + onLongClick = { + onClick() + scope.launch { + delay(delay) + do { + onClick() + delay(interval) + } while (pressed.value) + } + }, + onDoubleClick = { + onClick() + onClick() + } + ), + interaction = interaction, + disabled = disabled, + buttonColors = buttonColors, + accentButton = true, + onClick = null, + iconOnly = iconOnly, + content = content + ) +} + @Composable private fun Button( modifier: Modifier, @@ -136,7 +182,7 @@ private fun Button( disabled: Boolean, buttonColors: ButtonColors, accentButton: Boolean, - onClick: () -> Unit, + onClick: (() -> Unit)?, iconOnly: Boolean, content: @Composable RowScope.() -> Unit ) { @@ -179,11 +225,17 @@ private fun Button( ) { Row( Modifier - .clickable( - onClick = onClick, - interactionSource = interaction, - indication = null, - enabled = !disabled + .then( + if (onClick != null) { + Modifier.clickable( + onClick = onClick, + interactionSource = interaction, + indication = null, + enabled = !disabled + ) + } else { + Modifier + } ) .then(if (iconOnly) Modifier else Modifier.padding(horizontal = 12.dp)), horizontalArrangement = Arrangement.spacedBy(8.dp, Alignment.CenterHorizontally), diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt index 0a75c53f..e65cf1c1 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RepeatButtonScreen.kt @@ -1,20 +1,43 @@ package com.konyaco.fluent.gallery.screen.basicinput -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.RepeatButton +import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.annotation.Component -import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryPage -@Component(index = 3) +@Component(index = 3, description = "A button that raises its Click event repeatedly from the time it's pressed until it's released.") @Composable fun RepeatButtonScreen() { - Column(Modifier.fillMaxSize()) { - GalleryHeader( - "RepeatButton", - "The RepeatButton control is like a standard Button, except that the Click event occurs continuously while the user presses the RepeatButton." - ) - // TODO: + GalleryPage( + title = "RepeatButton", + description = "The RepeatButton control is like a standard Button, except that the Click event occurs continuously while the user presses the RepeatButton." + ) { + Section( + title = "A simple RepeatButton with text content.", + sourceCode = sourceCodeOfBasicRepeatButtonSample + ) { + BasicRepeatButtonSample() + } } +} + +@Sample +@Composable +private fun BasicRepeatButtonSample() { + val clickCount = remember { mutableIntStateOf(0) } + Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(12.dp)) { + RepeatButton(onClick = { clickCount.value += 1 }) { + Text("Click and hold") + } + Text("Number of clicks: ${clickCount.value}") + } + } \ No newline at end of file From 84d704b43dc75ab2131e7b43c2bf1be978e6fef5 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 24 Mar 2024 13:52:05 +0800 Subject: [PATCH 053/136] [fluent] Rename FlyoutScope. --- .../com/konyaco/fluent/component/Flyout.kt | 16 ++++++++-------- .../com/konyaco/fluent/component/MenuFlyout.kt | 18 +++++++++++++++--- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt index 54c6a6d5..c4f2a78a 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt @@ -35,14 +35,14 @@ import com.konyaco.fluent.background.Mica @Composable fun FlyoutContainer( - flyout: @Composable () -> Unit, + flyout: @Composable FlyoutContainerScope.() -> Unit, modifier: Modifier = Modifier, initialVisible: Boolean = false, placement: FlyoutPlacement = FlyoutPlacement.Auto, adaptivePlacement: Boolean = false, onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, - content: @Composable FlyoutScope.() -> Unit + content: @Composable FlyoutContainerScope.() -> Unit ) { BasicFlyoutContainer( flyout = { @@ -53,7 +53,7 @@ fun FlyoutContainer( adaptivePlacement = adaptivePlacement, onKeyEvent = onKeyEvent, onPreviewKeyEvent = onPreviewKeyEvent, - content = flyout + content = { flyout() } ) }, content = content, @@ -64,16 +64,16 @@ fun FlyoutContainer( @Composable internal fun BasicFlyoutContainer( - flyout: @Composable FlyoutScope.() -> Unit, + flyout: @Composable FlyoutContainerScope.() -> Unit, modifier: Modifier = Modifier, initialVisible: Boolean = false, - content: @Composable FlyoutScope.() -> Unit + content: @Composable FlyoutContainerScope.() -> Unit ) { val flyoutState = remember(initialVisible) { mutableStateOf(initialVisible) } val flyoutScope = remember(flyoutState) { - FlyoutScopeImpl(flyoutState) + FlyoutContainerScopeImpl(flyoutState) } Box(modifier = modifier) { flyoutScope.content() @@ -256,12 +256,12 @@ internal fun AcrylicPopupContent( } } -private class FlyoutScopeImpl(visibleState: MutableState) : FlyoutScope { +private class FlyoutContainerScopeImpl(visibleState: MutableState) : FlyoutContainerScope { override var isFlyoutVisible: Boolean by visibleState } -interface FlyoutScope { +interface FlyoutContainerScope { var isFlyoutVisible: Boolean diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt index 71c0f915..cf56fe0a 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt @@ -66,14 +66,14 @@ import kotlinx.coroutines.delay @Composable fun MenuFlyoutContainer( - flyout: @Composable MenuFlyoutScope.() -> Unit, + flyout: @Composable MenuFlyoutContainerScope.() -> Unit, modifier: Modifier = Modifier, initialVisible: Boolean = false, placement: FlyoutPlacement = FlyoutPlacement.Auto, adaptivePlacement: Boolean = false, onKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, onPreviewKeyEvent: ((keyEvent: KeyEvent) -> Boolean)? = null, - content: @Composable FlyoutScope.() -> Unit + content: @Composable FlyoutContainerScope.() -> Unit ) { BasicFlyoutContainer( flyout = { @@ -82,7 +82,12 @@ fun MenuFlyoutContainer( onDismissRequest = { isFlyoutVisible = false }, placement = placement, adaptivePlacement = adaptivePlacement, - content = flyout, + content = { + val containerScope = remember(this@BasicFlyoutContainer, this) { + MenuFlyoutContainerScopeImpl(this@BasicFlyoutContainer, this) + } + containerScope.flyout() + }, onKeyEvent = onKeyEvent, onPreviewKeyEvent = onPreviewKeyEvent ) @@ -381,6 +386,13 @@ interface MenuFlyoutScope { ) } +interface MenuFlyoutContainerScope : MenuFlyoutScope, FlyoutContainerScope + +private class MenuFlyoutContainerScopeImpl( + flyoutScope: FlyoutContainerScope, + menuFlyoutScope: MenuFlyoutScope +) : MenuFlyoutContainerScope, FlyoutContainerScope by flyoutScope, MenuFlyoutScope by menuFlyoutScope + private fun defaultMenuFlyoutEnterPlacementAnimation( placement: FlyoutPlacement, paddingTop: Int From 6373e5b109f3c9baa035d434a8dfd872ea84f572 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 24 Mar 2024 14:08:14 +0800 Subject: [PATCH 054/136] [fluent] Remove Button's defaultMinWidth. --- .../src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 06316883..4ce7d0ca 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -212,7 +212,6 @@ private fun Button( it.defaultMinSize(32.dp, 32.dp) } else { it.defaultMinSize( - minWidth = 120.dp, minHeight = 32.dp ) } From 9713e07fd607d2d910d9c7992206d2f519644e25 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 24 Mar 2024 14:19:56 +0800 Subject: [PATCH 055/136] [fluent] Add DropDownButton. --- .../com/konyaco/fluent/component/Button.kt | 47 +++++++++-- .../screen/basicinput/DropDownButtonScreen.kt | 80 ++++++++++++++++--- 2 files changed, 112 insertions(+), 15 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 4ce7d0ca..95f00b3d 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -1,23 +1,21 @@ package com.konyaco.fluent.component import androidx.compose.animation.animateColorAsState +import androidx.compose.animation.core.animateDpAsState import androidx.compose.animation.core.tween import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.clickable import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.* -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.RowScope -import androidx.compose.foundation.layout.defaultMinSize -import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.pointer.PointerIcon import androidx.compose.ui.input.pointer.pointerHoverIcon import androidx.compose.ui.platform.LocalUriHandler @@ -26,6 +24,8 @@ import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer +import com.konyaco.fluent.icons.Icons +import com.konyaco.fluent.icons.regular.ChevronDown import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -175,6 +175,29 @@ fun RepeatButton( ) } +@Composable +fun DropDownButton( + onClick: () -> Unit, + modifier: Modifier = Modifier, + disabled: Boolean = false, + buttonColors: ButtonColors = buttonColors(), + interaction: MutableInteractionSource = remember { MutableInteractionSource() }, + iconOnly: Boolean = false, + content: @Composable RowScope.() -> Unit +) { + Button( + onClick = onClick, + disabled = disabled, + buttonColors = buttonColors, + interaction = interaction, + iconOnly = iconOnly, + modifier = modifier + ) { + content() + AnimatedDropDownIcon(interaction) + } +} + @Composable private fun Button( modifier: Modifier, @@ -359,4 +382,18 @@ private fun hyperlinkButtonColors(): ButtonColors { ), ) } +} + +@Composable +private fun AnimatedDropDownIcon(interaction: MutableInteractionSource) { + val isPressed by interaction.collectIsPressedAsState() + val animatedOffset = animateDpAsState( + targetValue = if (isPressed) 2.dp else 0.dp, + animationSpec = tween(FluentDuration.ShortDuration, easing = FluentEasing.FastInvokeEasing) + ) + Icon( + imageVector = Icons.Default.ChevronDown, + contentDescription = null, + modifier = Modifier.graphicsLayer { translationY = animatedOffset.value.toPx() }.size(12.dp) + ) } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt index b0e81275..cd50e5e1 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/DropDownButtonScreen.kt @@ -1,20 +1,80 @@ package com.konyaco.fluent.gallery.screen.basicinput -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.size import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.* import com.konyaco.fluent.gallery.annotation.Component -import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryPage +import com.konyaco.fluent.icons.Icons +import com.konyaco.fluent.icons.filled.Send +import com.konyaco.fluent.icons.regular.Mail +import com.konyaco.fluent.icons.regular.MailArrowDoubleBack -@Component(index = 1) +@Component(index = 1, description = "A button that displays a flyout of choices when clicked.") @Composable fun DropDownButtonScreen() { - Column(Modifier.fillMaxSize()) { - GalleryHeader( - "DropDownButton", - "A control that drops down a flyout of choices from which one can be chosen." - ) - // TODO: + GalleryPage( + title = "DropDownButton", + description = "A control that drops down a flyout of choices from which one can be chosen." + ) { + Section( + title = "Simple DropDownButton", + sourceCode = sourceCodeOfBasicDropDownButton + ) { + BasicDropDownButton() + } + Section( + title = "DropDownButton with Icons", + sourceCode = sourceCodeOfIconDropDownButton + ) { + IconDropDownButton() + } } +} + +@Sample +@Composable +private fun BasicDropDownButton() { + MenuFlyoutContainer( + flyout = { + MenuFlyoutItem(text = { Text("Send") }, onClick = { isFlyoutVisible = false }, icon = {}) + MenuFlyoutItem(text = { Text("Reply") }, onClick = { isFlyoutVisible = false }, icon = {}) + MenuFlyoutItem(text = { Text("Reply All") }, onClick = { isFlyoutVisible = false }, icon = {}) + }, + content = { DropDownButton(onClick = { isFlyoutVisible = !isFlyoutVisible }, content = { Text("Email") }) }, + adaptivePlacement = true, + placement = FlyoutPlacement.BottomAlignedStart + ) +} + +@Sample +@Composable +private fun IconDropDownButton() { + MenuFlyoutContainer( + flyout = { + MenuFlyoutItem( + text = { Text("Send") }, + onClick = { isFlyoutVisible = false }, + icon = { Icon(Icons.Filled.Send, contentDescription = "Send", modifier = Modifier.size(20.dp)) }) + MenuFlyoutItem( + text = { Text("Reply") }, + onClick = { isFlyoutVisible = false }, + icon = { Icon(Icons.Default.MailArrowDoubleBack, contentDescription = "Reply", modifier = Modifier.size(20.dp)) }) + MenuFlyoutItem( + text = { Text("Reply All") }, + onClick = { isFlyoutVisible = false }, + icon = { Icon(Icons.Default.MailArrowDoubleBack, contentDescription = "Reply All", modifier = Modifier.size(20.dp)) }) + }, + content = { + DropDownButton( + onClick = { isFlyoutVisible = !isFlyoutVisible }, + content = { Icon(Icons.Default.Mail, contentDescription = null, modifier = Modifier.size(24.dp)) } + ) + }, + adaptivePlacement = true, + placement = FlyoutPlacement.BottomAlignedStart + ) } \ No newline at end of file From b8ad37cee68f702f593eaea0417403cf81c780b6 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Wed, 27 Mar 2024 00:30:53 +0800 Subject: [PATCH 056/136] Set `accentButton` to `false` on RepeatButton --- .../commonMain/kotlin/com/konyaco/fluent/component/Button.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 95f00b3d..8a835fff 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -168,7 +168,7 @@ fun RepeatButton( interaction = interaction, disabled = disabled, buttonColors = buttonColors, - accentButton = true, + accentButton = false, onClick = null, iconOnly = iconOnly, content = content From 834dcb9aaf9a97b79a9968d57aa9e968fc639453 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Thu, 28 Mar 2024 23:01:29 +0800 Subject: [PATCH 057/136] [fluent] Update padding logic in the Modifier.layer. make content always padding to the border --- .../com/konyaco/fluent/background/Layer.kt | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index 5bb434e0..6bc1aba0 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -85,13 +85,25 @@ private fun Modifier.layer( innerShape: Shape ) = this.shadow(elevation, shape, clip = false) .then(if (border != null) Modifier.border(border, shape) else Modifier) - .layout { measurable, constraints -> + .then( + if (outsideBorder) { + Modifier.paddingToBorder(shape) + .background(color = color, shape = innerShape) + } else { + /* Never draw content in the border. */ + Modifier.background(color = color, shape = shape) + .paddingToBorder(shape) + } + ) + .clip(shape = innerShape) + +private fun Modifier.paddingToBorder(shape: Shape) = then( + layout { measurable, constraints -> val circular = shape == FluentCircleShape // TODO: A better way to implement outside border val paddingValue = when { - outsideBorder && circular -> calcCircularPadding(this) - outsideBorder -> calcPadding(this) - else -> 0.dp + circular -> calcCircularPadding(this) + else -> calcPadding(this) }.roundToPx() val placeable = measurable.measure(constraints.offset(-paddingValue * 2, -paddingValue * 2)) val width = constraints.constrainWidth(placeable.width + paddingValue * 2) @@ -100,8 +112,7 @@ private fun Modifier.layer( placeable.place(paddingValue, paddingValue) } } - .background(color = color, shape = innerShape) - .clip(shape = innerShape) +) /** * This is a workaround solution to eliminate 1 pixel gap From 12ef63a058faf726556b6d22b5efcff4b1c8d859 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Thu, 28 Mar 2024 23:02:31 +0800 Subject: [PATCH 058/136] [fluent] Add ToggleButton. --- .../com/konyaco/fluent/component/Button.kt | 33 +++++++++++++++++++ .../screen/basicinput/ToggleButtonScreen.kt | 32 ++++++++++++------ 2 files changed, 55 insertions(+), 10 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 8a835fff..b578aa84 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -9,6 +9,7 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.* import androidx.compose.foundation.layout.* +import androidx.compose.foundation.selection.selectable import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -19,6 +20,7 @@ import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.pointer.PointerIcon import androidx.compose.ui.input.pointer.pointerHoverIcon import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration @@ -198,6 +200,37 @@ fun DropDownButton( } } +@Composable +fun ToggleButton( + checked: Boolean, + onCheckedChanged: (Boolean) -> Unit, + modifier: Modifier = Modifier, + disabled: Boolean = false, + colors: ButtonColors = buttonColors(), + selectedColors: ButtonColors = accentButtonColors(), + interaction: MutableInteractionSource = remember { MutableInteractionSource() }, + iconOnly: Boolean = false, + outsideBorder: Boolean = !checked, + content: @Composable RowScope.() -> Unit +) { + Button( + onClick = null, + modifier = modifier.selectable( + selected = checked, + interactionSource = interaction, + indication = null, + onClick = { onCheckedChanged(!checked) }, + role = Role.Checkbox + ), + iconOnly = iconOnly, + buttonColors = if (checked) selectedColors else colors, + interaction = interaction, + disabled = disabled, + accentButton = !outsideBorder, + content = content + ) +} + @Composable private fun Button( modifier: Modifier, diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt index 8fb8d7b7..27be9472 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleButtonScreen.kt @@ -1,20 +1,32 @@ package com.konyaco.fluent.gallery.screen.basicinput -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import com.konyaco.fluent.component.Text +import com.konyaco.fluent.component.ToggleButton import com.konyaco.fluent.gallery.annotation.Component -import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryPage -@Component(index = 4) +@Component(index = 4, description = "A button that can be switched between two states like a CheckBox.") @Composable fun ToggleButtonScreen() { - Column(Modifier.fillMaxSize()) { - GalleryHeader( - "ToggleButton", - "A ToggleButton looks like a Button, but works like a CheckBox. It typically has two states, checked (on) or unchecked (off), but can be indeterminate if the IsThreeState property is true. You can determine it's state by checking the IsChecked property." + GalleryPage( + title = "ToggleButton", + description = "A ToggleButton looks like a Button, but works like a CheckBox. It typically has two states, checked (on) or unchecked (off), but can be indeterminate if the IsThreeState property is true. You can determine it's state by checking the IsChecked property." + ) { + Section( + title = "A simple ToggleButton with text content.", + sourceCode = sourceCodeOfBasicToggleButton, + content = { BasicToggleButton() } ) - // TODO: } +} + +@Sample +@Composable +private fun BasicToggleButton() { + val (checked, setChecked) = remember { mutableStateOf(false) } + ToggleButton(checked, setChecked) { Text("ToggleButton") } } \ No newline at end of file From a4fb33be562a4b326a05bc0d22fe2dc6880b6f5e Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 31 Mar 2024 13:56:36 +0800 Subject: [PATCH 059/136] [fluent] Remove layer's border padding when border is null. --- .../com/konyaco/fluent/background/Layer.kt | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index 6bc1aba0..c90ae0ad 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -84,18 +84,23 @@ private fun Modifier.layer( color: Color, innerShape: Shape ) = this.shadow(elevation, shape, clip = false) - .then(if (border != null) Modifier.border(border, shape) else Modifier) .then( - if (outsideBorder) { - Modifier.paddingToBorder(shape) - .background(color = color, shape = innerShape) + if (border != null) { + Modifier.border(border, shape) + .then( + if (outsideBorder) { + Modifier.paddingToBorder(shape) + .background(color = color, shape = innerShape) + } else { + /* Never draw content in the border. */ + Modifier.background(color = color, shape = shape) + .paddingToBorder(shape) + } + ).clip(innerShape) } else { - /* Never draw content in the border. */ - Modifier.background(color = color, shape = shape) - .paddingToBorder(shape) + Modifier.background(color = color, shape = shape).clip(shape) } ) - .clip(shape = innerShape) private fun Modifier.paddingToBorder(shape: Shape) = then( layout { measurable, constraints -> From 72a31fc5509ea23b3fd19bc6697783795dc38382 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Sun, 31 Mar 2024 17:20:17 +0800 Subject: [PATCH 060/136] [fluent] Add SplitButton and ToggleSplitButton. --- .../com/konyaco/fluent/component/Button.kt | 215 ++++++++++++++---- .../screen/basicinput/SplitButtonScreen.kt | 110 ++++++++- .../basicinput/ToggleSplitButtonScreen.kt | 71 +++++- 3 files changed, 335 insertions(+), 61 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index b578aa84..bdc6c730 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -3,22 +3,20 @@ package com.konyaco.fluent.component import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateDpAsState import androidx.compose.animation.core.tween -import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.clickable -import androidx.compose.foundation.combinedClickable +import androidx.compose.foundation.* import androidx.compose.foundation.interaction.* import androidx.compose.foundation.layout.* import androidx.compose.foundation.selection.selectable import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Brush -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.SolidColor -import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.draw.drawWithCache +import androidx.compose.ui.graphics.* +import androidx.compose.ui.graphics.drawscope.Stroke import androidx.compose.ui.input.pointer.PointerIcon import androidx.compose.ui.input.pointer.pointerHoverIcon +import androidx.compose.ui.layout.onGloballyPositioned +import androidx.compose.ui.layout.positionInParent import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp @@ -231,6 +229,118 @@ fun ToggleButton( ) } +@Composable +fun SplitButton( + flyoutClick: () -> Unit, + onClick: () -> Unit, + modifier: Modifier = Modifier, + buttonColors: ButtonColors = buttonColors(), + accentButton: Boolean = false, + disabled: Boolean = false, + content: @Composable RowScope.() -> Unit +) { + val currentColor = if (!disabled) { + buttonColors.default + } else { + buttonColors.disabled + } + val borderBrush = currentColor.borderBrush + val endContentOffset = remember { mutableStateOf(0f) } + Layer( + color = Color.Transparent, + contentColor = currentColor.contentColor, + /* workaround for outside border padding */ + modifier = modifier.border(BorderStroke(buttonBorderStrokeWidth, currentColor.borderBrush), buttonShape) + .drawWithCache { + /* draw split broder */ + val path = Path() + val strokeWidth = buttonBorderStrokeWidth.toPx() + path.moveTo(endContentOffset.value, strokeWidth) + path.lineTo(endContentOffset.value, size.height - 2 * strokeWidth) + path.close() + onDrawWithContent { + drawContent() + drawPath(path, borderBrush, style = Stroke(strokeWidth)) + } + }, + border = null, + shape = buttonShape, + outsideBorder = !accentButton + ) { + Row(modifier = Modifier.height(IntrinsicSize.Min)) { + val contentInteraction = remember { MutableInteractionSource() } + ButtonLayer( + shape = RectangleShape, + buttonColors = buttonColors, + interaction = contentInteraction, + disabled = disabled, + accentButton = false, + displayBorder = false, + modifier = Modifier.clickable( + interactionSource = contentInteraction, + indication = null, + onClick = onClick, + enabled = !disabled + ).heightIn(buttonMinHeight) + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically + ) { + content() + } + } + val dropDownInteraction = remember { MutableInteractionSource() } + ButtonLayer( + shape = RectangleShape, + buttonColors = buttonColors, + interaction = dropDownInteraction, + disabled = disabled, + accentButton = false, + displayBorder = false, + modifier = Modifier.clickable( + interactionSource = dropDownInteraction, + indication = null, + onClick = flyoutClick, + enabled = !disabled + ).fillMaxHeight().onGloballyPositioned { + endContentOffset.value = it.positionInParent().x.toInt().toFloat() + }, + ) { + Box( + modifier = Modifier.fillMaxHeight().padding(start = 1.dp).size(32.dp), + contentAlignment = Alignment.Center + ) { + AnimatedDropDownIcon(dropDownInteraction) + } + } + } + } +} + +@Composable +fun ToggleSplitButton( + flyoutClick: () -> Unit, + onClick: () -> Unit, + checked: Boolean, + modifier: Modifier = Modifier, + colors: ButtonColors = buttonColors(), + selectedColors: ButtonColors = accentButtonColors(), + accentButton: Boolean = checked, + disabled: Boolean = false, + content: @Composable RowScope.() -> Unit +) { + SplitButton( + flyoutClick = flyoutClick, + onClick = onClick, + modifier = modifier, + buttonColors = if (checked) selectedColors else colors, + accentButton = accentButton, + disabled = disabled, + content = content + ) +} + @Composable private fun Button( modifier: Modifier, @@ -242,41 +352,22 @@ private fun Button( iconOnly: Boolean, content: @Composable RowScope.() -> Unit ) { - val hovered by interaction.collectIsHoveredAsState() - val pressed by interaction.collectIsPressedAsState() - - val buttonColor = when { - disabled -> buttonColors.disabled - pressed -> buttonColors.pressed - hovered -> buttonColors.hovered - else -> buttonColors.default - } - - val fillColor by animateColorAsState( - buttonColor.fillColor, - animationSpec = tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing) - ) - - val contentColor by animateColorAsState( - buttonColor.contentColor, - animationSpec = tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing) - ) - - Layer( + ButtonLayer( + shape = buttonShape, + displayBorder = true, + buttonColors = buttonColors, + interaction = interaction, + disabled = disabled, + accentButton = accentButton, modifier = modifier.let { if (iconOnly) { - it.defaultMinSize(32.dp, 32.dp) + it.defaultMinSize(32.dp, buttonMinHeight) } else { it.defaultMinSize( - minHeight = 32.dp + minHeight = buttonMinHeight ) } - }, - shape = FluentRoundedCornerShape(4.dp), - border = BorderStroke(1.dp, buttonColor.borderBrush), - color = fillColor, - contentColor = contentColor, - outsideBorder = !accentButton + } ) { Row( Modifier @@ -300,6 +391,50 @@ private fun Button( } } +/* +common interaction layer for button and split button. +*/ +@Composable +private fun ButtonLayer( + shape: Shape, + buttonColors: ButtonColors, + interaction: MutableInteractionSource, + disabled: Boolean, + accentButton: Boolean, + displayBorder: Boolean, + modifier: Modifier = Modifier, + content: @Composable () -> Unit +) { + val hovered by interaction.collectIsHoveredAsState() + val pressed by interaction.collectIsPressedAsState() + + val buttonColor = when { + disabled -> buttonColors.disabled + pressed -> buttonColors.pressed + hovered -> buttonColors.hovered + else -> buttonColors.default + } + + val fillColor by animateColorAsState( + buttonColor.fillColor, + animationSpec = tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing) + ) + + val contentColor by animateColorAsState( + buttonColor.contentColor, + animationSpec = tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing) + ) + Layer( + modifier = modifier, + color = fillColor, + contentColor = contentColor, + outsideBorder = !accentButton, + shape = shape, + border = if (displayBorder) BorderStroke(buttonBorderStrokeWidth, buttonColor.borderBrush) else null, + content = content + ) +} + @Composable private fun buttonColors(): ButtonColors { val colors = FluentTheme.colors @@ -429,4 +564,8 @@ private fun AnimatedDropDownIcon(interaction: MutableInteractionSource) { contentDescription = null, modifier = Modifier.graphicsLayer { translationY = animatedOffset.value.toPx() }.size(12.dp) ) -} \ No newline at end of file +} + +private val buttonMinHeight = 32.dp +private val buttonShape = FluentRoundedCornerShape(4.dp) +private val buttonBorderStrokeWidth = 1.dp \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt index 3abb1517..dd45e8a2 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt @@ -1,20 +1,106 @@ package com.konyaco.fluent.gallery.screen.basicinput -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.runtime.Composable +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.* import com.konyaco.fluent.gallery.annotation.Component -import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryPage +import com.konyaco.fluent.shape.FluentRoundedCornerShape -@Component(index = 5) +@Component(index = 5, description = "A two-part button that displays a flyout when its secondary part is clicked.") @Composable fun SplitButtonScreen() { - Column(Modifier.fillMaxSize()) { - GalleryHeader( - "SplitButton", - "The SplitButton is a dropdown button, but with an addition execution hit target." - ) - // TODO: + GalleryPage( + title = "SplitButton", + description = "The SplitButton is a dropdown button, but with an addition execution hit target." + ) { + Section( + title = "A SplitButton controlling text color in a RichEditBox", + sourceCode = sourceCodeOfBasicSplitButtonSample + ) { + BasicSplitButtonSample() + } + Section( + title = "A SplitButton with text", + sourceCode = sourceCodeOfSplitButtonWithTextSample + ) { + SplitButtonWithTextSample() + } } -} \ No newline at end of file +} + +@Sample +@Composable +private fun BasicSplitButtonSample() { + var currentColor by remember { mutableStateOf(colors.first()) } + FlyoutContainer( + flyout = { + ColorList { + currentColor = it + isFlyoutVisible = false + } + }, + adaptivePlacement = true, + placement = FlyoutPlacement.Bottom + ) { + SplitButton( + flyoutClick = { isFlyoutVisible = true }, + onClick = {} + ) { + Box(modifier = Modifier.size(32.dp).background(currentColor)) + } + } +} + +@Sample +@Composable +private fun SplitButtonWithTextSample() { + var currentColor by remember { mutableStateOf(colors.first()) } + FlyoutContainer( + flyout = { + ColorList { + currentColor = it + isFlyoutVisible = false + } + }, + adaptivePlacement = true, + placement = FlyoutPlacement.Bottom + ) { + SplitButton( + flyoutClick = { isFlyoutVisible = true }, + onClick = {} + ) { + Text("Choose color", modifier = Modifier.padding(horizontal = 2.dp)) + } + } +} + +@OptIn(ExperimentalLayoutApi::class) +@Composable +private fun ColorList( + onColorSelected: (color: Color) -> Unit +) { + FlowRow( + maxItemsInEachRow = 3, + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + colors.forEach { + SubtleButton( + onClick = { + onColorSelected(it) + }, + iconOnly = true + ) { + Box(modifier = Modifier.size(32.dp).background(it, FluentRoundedCornerShape(2.dp))) + } + } + } +} + +private val colors = listOf(Color.Red, Color.Blue, Color.Cyan, Color.Magenta, Color.Yellow, Color.Green, Color.Gray) \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt index 386774c3..652c5bae 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/ToggleSplitButtonScreen.kt @@ -1,20 +1,69 @@ package com.konyaco.fluent.gallery.screen.basicinput -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.runtime.Composable +import androidx.compose.foundation.layout.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.konyaco.fluent.component.* import com.konyaco.fluent.gallery.annotation.Component -import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryPage +import com.konyaco.fluent.icons.Icons +import com.konyaco.fluent.icons.regular.List +import com.konyaco.fluent.icons.regular.TextBulletListLtr -@Component(index = 6) +@Component(index = 6, description = "A version of the SplitButton where the activation target toggles on/off.") @Composable fun ToggleSplitButtonScreen() { - Column(Modifier.fillMaxSize()) { - GalleryHeader( - "ToggleSplitButton", - "A version of the SplitButton where the activation target toggles on/off." + GalleryPage( + title = "ToggleSplitButton", + description = "A version of the SplitButton where the activation target toggles on/off." + ) { + Section( + title = "Using ToggleSplitButton to control bulleted list functionality in RichEditBox", + sourceCode = sourceCodeOfBasicToggleSplitButtonSample, + content = { BasicToggleSplitButtonSample() } ) - // TODO: } -} \ No newline at end of file +} + +@Sample +@Composable +private fun BasicToggleSplitButtonSample() { + val (checked, setChecked) = remember { mutableStateOf(false) } + var currentIcon by remember { mutableStateOf(icons.first()) } + FlyoutContainer( + flyout = { + Row(horizontalArrangement = Arrangement.spacedBy(8.dp), modifier = Modifier.padding(horizontal = 4.dp)) { + icons.forEach { + Button( + onClick = { + currentIcon = it + setChecked(true) + isFlyoutVisible = false + }, + iconOnly = true + ) { + Icon(it, null) + } + } + + } + }, + adaptivePlacement = true, + placement = FlyoutPlacement.Bottom + ) { + ToggleSplitButton( + flyoutClick = { + isFlyoutVisible = true + }, + onClick = { setChecked(!checked) }, + checked = checked + ) { + Icon(currentIcon, null, modifier = Modifier.widthIn(32.dp).wrapContentWidth(Alignment.CenterHorizontally)) + } + } +} + +private val icons = listOf(Icons.Default.List, Icons.Default.TextBulletListLtr) \ No newline at end of file From 30aa93da254ad5c6c6f1655b27ec218708fcb27e Mon Sep 17 00:00:00 2001 From: sanlorng Date: Tue, 2 Apr 2024 20:24:10 +0800 Subject: [PATCH 061/136] [fluent] Fixed incorrect layout modifier usage. --- .../commonMain/kotlin/com/konyaco/fluent/background/Layer.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index c90ae0ad..6613c6fb 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -103,7 +103,7 @@ private fun Modifier.layer( ) private fun Modifier.paddingToBorder(shape: Shape) = then( - layout { measurable, constraints -> + Modifier.layout { measurable, constraints -> val circular = shape == FluentCircleShape // TODO: A better way to implement outside border val paddingValue = when { From ec9a46444cc70f3557df559bc8cac96e2603037c Mon Sep 17 00:00:00 2001 From: KonYaco Date: Wed, 3 Apr 2024 12:51:21 +0800 Subject: [PATCH 062/136] layer-compare --- .../com/konyaco/fluent/background/Layer.kt | 100 +++++++++++++++++- .../com/konyaco/fluent/component/Button.kt | 49 +++++++-- .../fluent/gallery/screen/HomeScreen.kt | 40 ++++++- 3 files changed, 172 insertions(+), 17 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index 6613c6fb..fa01e3c4 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -30,6 +30,27 @@ import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlin.math.ceil import kotlin.math.floor +/** + * Defines constants that specify how far an element's background extends in relation to the element's border. + */ +enum class BackgroundSizing { + /** + * The element's background extends to the inner edge of the border, but does not extend under the border. + */ + InnerBorderEdge, + + /** + * The element's background extends under the border to its outer edge, and is visible if the border is transparent. + */ + OuterBorderEdge +} +@Deprecated( + message = "Use backgroundSizing", + replaceWith = ReplaceWith( + expression = "Layer(modifier=modifier,shape=shape,color=color,contentColor=contentColor,border=border,backgroundSizing=if (outsideBorder) BackgroundSizing.InnerBorderEdge else BackgroundSizing.OuterBorderEdge,elevation=elevation,content=content)", + imports = arrayOf("com.konyaco.fluent.background.BackgroundSizing") + ) +) @Composable fun Layer( modifier: Modifier = Modifier, @@ -60,13 +81,86 @@ fun Layer( } } Box( - modifier.layer( + modifier.layerLegacy( elevation, shape, border, outsideBorder, color, innerShape + ), + propagateMinConstraints = true + ) { + content() + } + } + } +} + +private fun Modifier.layerLegacy( + elevation: Dp, + shape: Shape, + border: BorderStroke?, + outsideBorder: Boolean, + color: Color, + innerShape: Shape +) = this.shadow(elevation, shape, clip = false) + .then(if (border != null) Modifier.border(border, shape) else Modifier) + .layout { measurable, constraints -> + val circular = shape == FluentCircleShape + // TODO: A better way to implement outside border + val paddingValue = when { + outsideBorder && circular -> calcCircularPadding(this) + outsideBorder -> calcPadding(this) + else -> 0.dp + }.roundToPx() + val placeable = measurable.measure(constraints.offset(-paddingValue * 2, -paddingValue * 2)) + val width = constraints.constrainWidth(placeable.width + paddingValue * 2) + val height = constraints.constrainHeight(placeable.height + paddingValue * 2) + layout(width, height) { + placeable.place(paddingValue, paddingValue) + } + } + .background(color = color, shape = innerShape) + .clip(shape = innerShape) + +@Composable +fun Layer( + modifier: Modifier = Modifier, + shape: Shape = FluentRoundedCornerShape(4.dp), + color: Color = FluentTheme.colors.background.layer.default, + contentColor: Color = FluentTheme.colors.text.text.primary, + border: BorderStroke? = BorderStroke(1.dp, FluentTheme.colors.stroke.card.default), + backgroundSizing: BackgroundSizing, + elevation: Dp = 0.dp, + content: @Composable () -> Unit +) { + ProvideTextStyle(FluentTheme.typography.body.copy(color = contentColor)) { + CompositionLocalProvider(LocalContentColor provides contentColor) { + val innerShape = remember(shape, backgroundSizing) { + if (shape is FluentRoundedCornerShape && shape != FluentCircleShape && backgroundSizing == BackgroundSizing.InnerBorderEdge) { + if (shape.fluentTopStart is FluentDpCornerSize) { + RoundedCornerShape( + topStart = (shape.fluentTopStart.size - 1.dp).coerceIn(0.dp, Dp.Infinity), + topEnd = ((shape.fluentTopEnd as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity), + bottomStart = ((shape.fluentBottomStart as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity), + bottomEnd = ((shape.fluentBottomEnd as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity) + ) + } else { + shape + } + } else { + shape + } + } + Box( + modifier.layer( + elevation, + shape, + border, + backgroundSizing, + color, + innerShape ), // TODO: A better way to set content corner propagateMinConstraints = true ) { @@ -80,7 +174,7 @@ private fun Modifier.layer( elevation: Dp, shape: Shape, border: BorderStroke?, - outsideBorder: Boolean, + backgroundSizing: BackgroundSizing, color: Color, innerShape: Shape ) = this.shadow(elevation, shape, clip = false) @@ -88,7 +182,7 @@ private fun Modifier.layer( if (border != null) { Modifier.border(border, shape) .then( - if (outsideBorder) { + if (backgroundSizing == BackgroundSizing.InnerBorderEdge) { Modifier.paddingToBorder(shape) .background(color = color, shape = innerShape) } else { diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index bdc6c730..6eb57b2c 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -3,16 +3,43 @@ package com.konyaco.fluent.component import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateDpAsState import androidx.compose.animation.core.tween -import androidx.compose.foundation.* -import androidx.compose.foundation.interaction.* -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.combinedClickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.collectIsHoveredAsState +import androidx.compose.foundation.interaction.collectIsPressedAsState +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.selection.selectable -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithCache -import androidx.compose.ui.graphics.* +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Path +import androidx.compose.ui.graphics.RectangleShape +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.drawscope.Stroke +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.pointer.PointerIcon import androidx.compose.ui.input.pointer.pointerHoverIcon import androidx.compose.ui.layout.onGloballyPositioned @@ -23,6 +50,7 @@ import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronDown @@ -247,9 +275,6 @@ fun SplitButton( val borderBrush = currentColor.borderBrush val endContentOffset = remember { mutableStateOf(0f) } Layer( - color = Color.Transparent, - contentColor = currentColor.contentColor, - /* workaround for outside border padding */ modifier = modifier.border(BorderStroke(buttonBorderStrokeWidth, currentColor.borderBrush), buttonShape) .drawWithCache { /* draw split broder */ @@ -263,9 +288,13 @@ fun SplitButton( drawPath(path, borderBrush, style = Stroke(strokeWidth)) } }, - border = null, shape = buttonShape, - outsideBorder = !accentButton + color = Color.Transparent, + contentColor = currentColor.contentColor, + /* workaround for outside border padding */ + border = null, + backgroundSizing = if (!accentButton + ) BackgroundSizing.InnerBorderEdge else BackgroundSizing.OuterBorderEdge ) { Row(modifier = Modifier.height(IntrinsicSize.Min)) { val contentInteraction = remember { MutableInteractionSource() } diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index 698f0f12..0f2431ab 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -1,6 +1,7 @@ package com.konyaco.fluent.gallery.screen import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -27,6 +28,7 @@ import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.component.AccentButton import com.konyaco.fluent.component.Button @@ -60,6 +62,7 @@ import com.konyaco.fluent.icons.regular.Delete import com.konyaco.fluent.icons.regular.Dismiss import com.konyaco.fluent.icons.regular.List import com.konyaco.fluent.icons.regular.Navigation +import com.konyaco.fluent.surface.Card @Component(icon = "Home") @@ -276,22 +279,51 @@ private fun Content() { Controls() Row { + Box { + Box(Modifier.size(32.dp).background(FluentTheme.colors.fillAccent.default)) + } + Layer( - modifier = Modifier.size(32.dp), shape = RoundedCornerShape(4.dp), color = FluentTheme.colors.fillAccent.default, border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), - content = {}, + content = { + Box(Modifier.size(32.dp)) + }, outsideBorder = false ) Layer( - modifier = Modifier.size(32.dp), shape = RoundedCornerShape(4.dp), color = FluentTheme.colors.fillAccent.default, border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), - content = {}, + content = { + Box(Modifier.size(32.dp)) + }, outsideBorder = true ) + + Layer( + shape = RoundedCornerShape(4.dp), + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), + content = { + Box(Modifier.size(32.dp)) + }, + backgroundSizing = BackgroundSizing.InnerBorderEdge + ) + Layer( + shape = RoundedCornerShape(4.dp), + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), + content = { + Box(Modifier.size(32.dp)) + }, + backgroundSizing = BackgroundSizing.OuterBorderEdge + ) + + Card(Modifier) { + Box(Modifier.size(32.dp)) + } } var value by remember { mutableStateOf(TextFieldValue("Hello Fluent!")) } From 482900d5efd839bafa31b33f845005135b0968a5 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Mon, 8 Apr 2024 14:21:40 +0800 Subject: [PATCH 063/136] [fluent] New layer implementation. --- .../com/konyaco/fluent/background/Layer.kt | 158 +++++++++------ .../fluent/gallery/screen/HomeScreen.kt | 184 +++++++++--------- 2 files changed, 189 insertions(+), 153 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index fa01e3c4..9b5dc329 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -4,23 +4,19 @@ import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.Stable -import androidx.compose.runtime.remember +import androidx.compose.foundation.shape.* +import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.geometry.translate import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Outline import androidx.compose.ui.graphics.Shape import androidx.compose.ui.layout.layout -import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.constrainHeight -import androidx.compose.ui.unit.constrainWidth -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.offset +import androidx.compose.ui.unit.* import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.ProvideTextStyle @@ -29,6 +25,8 @@ import com.konyaco.fluent.shape.FluentDpCornerSize import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlin.math.ceil import kotlin.math.floor +import kotlin.math.sqrt +import kotlin.ranges.coerceIn /** * Defines constants that specify how far an element's background extends in relation to the element's border. @@ -137,31 +135,14 @@ fun Layer( ) { ProvideTextStyle(FluentTheme.typography.body.copy(color = contentColor)) { CompositionLocalProvider(LocalContentColor provides contentColor) { - val innerShape = remember(shape, backgroundSizing) { - if (shape is FluentRoundedCornerShape && shape != FluentCircleShape && backgroundSizing == BackgroundSizing.InnerBorderEdge) { - if (shape.fluentTopStart is FluentDpCornerSize) { - RoundedCornerShape( - topStart = (shape.fluentTopStart.size - 1.dp).coerceIn(0.dp, Dp.Infinity), - topEnd = ((shape.fluentTopEnd as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity), - bottomStart = ((shape.fluentBottomStart as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity), - bottomEnd = ((shape.fluentBottomEnd as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity) - ) - } else { - shape - } - } else { - shape - } - } Box( - modifier.layer( + modifier = modifier.layer( elevation, shape, border, backgroundSizing, - color, - innerShape - ), // TODO: A better way to set content corner + color + ), propagateMinConstraints = true ) { content() @@ -175,43 +156,94 @@ private fun Modifier.layer( shape: Shape, border: BorderStroke?, backgroundSizing: BackgroundSizing, - color: Color, - innerShape: Shape -) = this.shadow(elevation, shape, clip = false) - .then( - if (border != null) { - Modifier.border(border, shape) - .then( - if (backgroundSizing == BackgroundSizing.InnerBorderEdge) { - Modifier.paddingToBorder(shape) - .background(color = color, shape = innerShape) + color: Color +) = then( + Modifier + .shadow(elevation = elevation, shape = shape, clip = false) + .then( + if (border != null) { + val backgroundShape = + if (backgroundSizing == BackgroundSizing.InnerBorderEdge && shape is CornerBasedShape) { + BackgroundPaddingShape(shape) } else { - /* Never draw content in the border. */ - Modifier.background(color = color, shape = shape) - .paddingToBorder(shape) + shape } - ).clip(innerShape) - } else { - Modifier.background(color = color, shape = shape).clip(shape) - } - ) + Modifier.border(border, shape) + .background(color, backgroundShape) + } else { + Modifier.background(color, shape) + } + ) + .clip(shape) +) -private fun Modifier.paddingToBorder(shape: Shape) = then( - Modifier.layout { measurable, constraints -> - val circular = shape == FluentCircleShape - // TODO: A better way to implement outside border - val paddingValue = when { - circular -> calcCircularPadding(this) - else -> calcPadding(this) - }.roundToPx() - val placeable = measurable.measure(constraints.offset(-paddingValue * 2, -paddingValue * 2)) - val width = constraints.constrainWidth(placeable.width + paddingValue * 2) - val height = constraints.constrainHeight(placeable.height + paddingValue * 2) - layout(width, height) { - placeable.place(paddingValue, paddingValue) +/** + * keep padding for background + */ +@Immutable +@JvmInline +private value class BackgroundPaddingShape(private val borderShape: CornerBasedShape) : Shape { + + override fun createOutline(size: Size, layoutDirection: LayoutDirection, density: Density): Outline { + return with(density) { + val circular = borderShape == FluentCircleShape || borderShape == CircleShape + val paddingPx = when { + circular -> calcCircularPadding(density) + else -> calcPadding(density) + }.toPx() + createInnerOutline(size, density, layoutDirection, paddingPx) } } -) + + /** + * Fork from [CornerBasedShape.createOutline], add padding to corner size and outline rect size. + */ + private fun createInnerOutline(size: Size, density: Density, layoutDirection: LayoutDirection, paddingPx: Float) = + borderShape.run { + val cornerPaddingPx = if (this is CutCornerShape) { + /** padding for cut corner shape */ + (paddingPx / sqrt(2f)).toInt().toFloat() + } else { + paddingPx + } + val innerSize = Size(size.width - 2 * paddingPx, size.height - 2 * paddingPx) + /** add padding to corner size */ + var topStart = (borderShape.topStart.toPx(size, density) - cornerPaddingPx).coerceAtLeast(0f) + var topEnd = (borderShape.topEnd.toPx(size, density) - cornerPaddingPx).coerceAtLeast(0f) + var bottomEnd = (borderShape.bottomEnd.toPx(size, density) - cornerPaddingPx).coerceAtLeast(0f) + var bottomStart = (borderShape.bottomStart.toPx(size, density) - cornerPaddingPx).coerceAtLeast(0f) + val minDimension = innerSize.minDimension + if (topStart + bottomStart > minDimension) { + val scale = minDimension / (topStart + bottomStart) + topStart *= scale + bottomStart *= scale + } + if (topEnd + bottomEnd > minDimension) { + val scale = minDimension / (topEnd + bottomEnd) + topEnd *= scale + bottomEnd *= scale + } + require(topStart >= 0.0f && topEnd >= 0.0f && bottomEnd >= 0.0f && bottomStart >= 0.0f) { + "Corner size in Px can't be negative(topStart = $topStart, topEnd = $topEnd, " + + "bottomEnd = $bottomEnd, bottomStart = $bottomStart)!" + } + /** add padding to outline rect size */ + val oldOutline = createOutline( + size = innerSize, + topStart = topStart, + topEnd = topEnd, + bottomEnd = bottomEnd, + bottomStart = bottomStart, + layoutDirection = layoutDirection + ) + /** translate outline to the actual rect bounds */ + when (oldOutline) { + is Outline.Rectangle -> Outline.Rectangle(oldOutline.rect.translate(Offset(paddingPx, paddingPx))) + is Outline.Rounded -> Outline.Rounded(oldOutline.roundRect.translate(Offset(paddingPx, paddingPx))) + is Outline.Generic -> Outline.Generic(oldOutline.path.apply { translate(Offset(paddingPx, paddingPx)) }) + } + } +} /** * This is a workaround solution to eliminate 1 pixel gap diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index 0f2431ab..e632b973 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -1,24 +1,11 @@ package com.konyaco.fluent.gallery.screen -import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.* +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.CutCornerShape import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.verticalScroll -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha @@ -30,38 +17,12 @@ import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer -import com.konyaco.fluent.component.AccentButton -import com.konyaco.fluent.component.Button -import com.konyaco.fluent.component.CheckBox -import com.konyaco.fluent.component.Dialog -import com.konyaco.fluent.component.DropdownMenu -import com.konyaco.fluent.component.DropdownMenuItem -import com.konyaco.fluent.component.FlyoutContainer -import com.konyaco.fluent.component.FlyoutPlacement -import com.konyaco.fluent.component.Icon -import com.konyaco.fluent.component.MenuFlyoutContainer -import com.konyaco.fluent.component.MenuFlyoutItem -import com.konyaco.fluent.component.MenuFlyoutSeparator -import com.konyaco.fluent.component.ProgressBar -import com.konyaco.fluent.component.ProgressRing -import com.konyaco.fluent.component.ProgressRingSize -import com.konyaco.fluent.component.RadioButton -import com.konyaco.fluent.component.Slider -import com.konyaco.fluent.component.SubtleButton -import com.konyaco.fluent.component.Switcher -import com.konyaco.fluent.component.Text -import com.konyaco.fluent.component.TextField +import com.konyaco.fluent.component.* +import com.konyaco.fluent.component.rememberScrollbarAdapter import com.konyaco.fluent.gallery.LocalStore import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.icons.Icons -import com.konyaco.fluent.icons.regular.Add -import com.konyaco.fluent.icons.regular.ArrowLeft -import com.konyaco.fluent.icons.regular.Checkmark -import com.konyaco.fluent.icons.regular.ClipboardMore -import com.konyaco.fluent.icons.regular.Delete -import com.konyaco.fluent.icons.regular.Dismiss -import com.konyaco.fluent.icons.regular.List -import com.konyaco.fluent.icons.regular.Navigation +import com.konyaco.fluent.icons.regular.* import com.konyaco.fluent.surface.Card @@ -278,54 +239,97 @@ private fun Content() { Controls() - Row { - Box { - Box(Modifier.size(32.dp).background(FluentTheme.colors.fillAccent.default)) - } + val layerScrollState = rememberScrollState() + ScrollbarContainer( + adapter = rememberScrollbarAdapter(layerScrollState), + isVertical = false + ) { + Row(modifier = Modifier.padding(bottom = 8.dp).horizontalScroll(layerScrollState)) { + Box { + Box(Modifier.size(32.dp).background(FluentTheme.colors.fillAccent.default)) + } - Layer( - shape = RoundedCornerShape(4.dp), - color = FluentTheme.colors.fillAccent.default, - border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), - content = { - Box(Modifier.size(32.dp)) - }, - outsideBorder = false - ) - Layer( - shape = RoundedCornerShape(4.dp), - color = FluentTheme.colors.fillAccent.default, - border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), - content = { - Box(Modifier.size(32.dp)) - }, - outsideBorder = true - ) + Layer( + shape = RoundedCornerShape(4.dp), + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), + content = { + Box(Modifier.size(32.dp)) + }, + outsideBorder = false + ) + Layer( + shape = RoundedCornerShape(4.dp), + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), + content = { + Box(Modifier.size(32.dp)) + }, + outsideBorder = true + ) - Layer( - shape = RoundedCornerShape(4.dp), - color = FluentTheme.colors.fillAccent.default, - border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), - content = { - Box(Modifier.size(32.dp)) - }, - backgroundSizing = BackgroundSizing.InnerBorderEdge - ) - Layer( - shape = RoundedCornerShape(4.dp), - color = FluentTheme.colors.fillAccent.default, - border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), - content = { - Box(Modifier.size(32.dp)) - }, - backgroundSizing = BackgroundSizing.OuterBorderEdge - ) + Layer( + shape = RoundedCornerShape(4.dp), + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), + content = { + Box(Modifier.size(32.dp)) + }, + backgroundSizing = BackgroundSizing.InnerBorderEdge + ) + Layer( + shape = RoundedCornerShape(4.dp), + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), + content = { + Box(Modifier.size(32.dp)) + }, + backgroundSizing = BackgroundSizing.OuterBorderEdge + ) - Card(Modifier) { - Box(Modifier.size(32.dp)) + Layer( + shape = CutCornerShape(4.dp), + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default.copy(0.5f)), + content = { + Box(Modifier.size(32.dp)) + }, + backgroundSizing = BackgroundSizing.InnerBorderEdge + ) + Layer( + shape = CutCornerShape(4.dp), + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default.copy(0.5f)), + content = { + Box(Modifier.size(32.dp)) + }, + backgroundSizing = BackgroundSizing.OuterBorderEdge + ) + + Layer( + shape = CircleShape, + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), + content = { + Box(Modifier.size(32.dp)) + }, + backgroundSizing = BackgroundSizing.InnerBorderEdge + ) + Layer( + shape = CircleShape, + color = FluentTheme.colors.fillAccent.default, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), + content = { + Box(Modifier.size(32.dp)) + }, + backgroundSizing = BackgroundSizing.OuterBorderEdge + ) + + Card(Modifier) { + Box(Modifier.size(32.dp)) + } } } - var value by remember { mutableStateOf(TextFieldValue("Hello Fluent!")) } TextField(value, onValueChange = { value = it }) TextField( From 8fa59c25a34a9acac85390d0040051a381835df8 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Tue, 9 Apr 2024 20:32:18 +0800 Subject: [PATCH 064/136] [fluent] Deprecate `FluentRoundedCorner` and `FluentCornerSize`. --- .../com/konyaco/fluent/background/Layer.kt | 31 ++-- .../com/konyaco/fluent/component/Button.kt | 4 +- .../com/konyaco/fluent/component/CheckBox.kt | 4 +- .../com/konyaco/fluent/component/Dialog.kt | 4 +- .../com/konyaco/fluent/component/Dropdown.kt | 3 +- .../konyaco/fluent/component/MenuFlyout.kt | 3 +- .../konyaco/fluent/component/RadioButton.kt | 3 +- .../com/konyaco/fluent/component/SideNav.kt | 4 +- .../konyaco/fluent/shape/FluentCornerSize.kt | 92 +++++++--- .../com/konyaco/fluent/shape/FluentShape.kt | 158 ++++++++---------- .../kotlin/com/konyaco/fluent/surface/Card.kt | 4 +- .../kotlin/com/konyaco/fluent/gallery/App.kt | 4 +- .../gallery/component/GallerySection.kt | 16 +- .../screen/basicinput/SplitButtonScreen.kt | 4 +- 14 files changed, 170 insertions(+), 164 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index 9b5dc329..0276d522 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -4,7 +4,10 @@ import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.shape.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.CornerBasedShape +import androidx.compose.foundation.shape.CutCornerShape +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip @@ -20,13 +23,9 @@ import androidx.compose.ui.unit.* import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.ProvideTextStyle -import com.konyaco.fluent.shape.FluentCircleShape -import com.konyaco.fluent.shape.FluentDpCornerSize -import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlin.math.ceil import kotlin.math.floor import kotlin.math.sqrt -import kotlin.ranges.coerceIn /** * Defines constants that specify how far an element's background extends in relation to the element's border. @@ -42,6 +41,7 @@ enum class BackgroundSizing { */ OuterBorderEdge } + @Deprecated( message = "Use backgroundSizing", replaceWith = ReplaceWith( @@ -52,7 +52,7 @@ enum class BackgroundSizing { @Composable fun Layer( modifier: Modifier = Modifier, - shape: Shape = FluentRoundedCornerShape(4.dp), + shape: Shape = RoundedCornerShape(size = 4.dp), color: Color = FluentTheme.colors.background.layer.default, contentColor: Color = FluentTheme.colors.text.text.primary, border: BorderStroke? = BorderStroke(1.dp, FluentTheme.colors.stroke.card.default), @@ -63,17 +63,8 @@ fun Layer( ProvideTextStyle(FluentTheme.typography.body.copy(color = contentColor)) { CompositionLocalProvider(LocalContentColor provides contentColor) { val innerShape = remember(shape, outsideBorder) { - if (shape is FluentRoundedCornerShape && shape != FluentCircleShape && outsideBorder) { - if (shape.fluentTopStart is FluentDpCornerSize) { - RoundedCornerShape( - topStart = (shape.fluentTopStart.size - 1.dp).coerceIn(0.dp, Dp.Infinity), - topEnd = ((shape.fluentTopEnd as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity), - bottomStart = ((shape.fluentBottomStart as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity), - bottomEnd = ((shape.fluentBottomEnd as FluentDpCornerSize).size - 1.dp).coerceIn(0.dp, Dp.Infinity) - ) - } else { - shape - } + if (shape is CornerBasedShape && shape != CircleShape && outsideBorder) { + BackgroundPaddingShape(shape) } else { shape } @@ -105,7 +96,7 @@ private fun Modifier.layerLegacy( ) = this.shadow(elevation, shape, clip = false) .then(if (border != null) Modifier.border(border, shape) else Modifier) .layout { measurable, constraints -> - val circular = shape == FluentCircleShape + val circular = shape == CircleShape // TODO: A better way to implement outside border val paddingValue = when { outsideBorder && circular -> calcCircularPadding(this) @@ -125,7 +116,7 @@ private fun Modifier.layerLegacy( @Composable fun Layer( modifier: Modifier = Modifier, - shape: Shape = FluentRoundedCornerShape(4.dp), + shape: Shape = RoundedCornerShape(size = 4.dp), color: Color = FluentTheme.colors.background.layer.default, contentColor: Color = FluentTheme.colors.text.text.primary, border: BorderStroke? = BorderStroke(1.dp, FluentTheme.colors.stroke.card.default), @@ -186,7 +177,7 @@ private value class BackgroundPaddingShape(private val borderShape: CornerBasedS override fun createOutline(size: Size, layoutDirection: LayoutDirection, density: Density): Outline { return with(density) { - val circular = borderShape == FluentCircleShape || borderShape == CircleShape + val circular = borderShape == CircleShape val paddingPx = when { circular -> calcCircularPadding(density) else -> calcPadding(density) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 6eb57b2c..47ea1acf 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.selection.selectable +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.runtime.getValue @@ -54,7 +55,6 @@ import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronDown -import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -596,5 +596,5 @@ private fun AnimatedDropDownIcon(interaction: MutableInteractionSource) { } private val buttonMinHeight = 32.dp -private val buttonShape = FluentRoundedCornerShape(4.dp) +private val buttonShape = RoundedCornerShape(size = 4.dp) private val buttonBorderStrokeWidth = 1.dp \ No newline at end of file diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt index cc8743cc..f6c072df 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt @@ -17,6 +17,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember @@ -31,7 +32,6 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Checkmark -import com.konyaco.fluent.shape.FluentRoundedCornerShape @Composable fun CheckBox( @@ -74,7 +74,7 @@ fun CheckBox( ) Layer( modifier = Modifier.size(20.dp), - shape = FluentRoundedCornerShape(4.dp), + shape = RoundedCornerShape(4.dp), border = BorderStroke( 1.dp, if (checked) when { !enabled -> colors.fillAccent.disabled diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt index 163be106..8cea2ff0 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt @@ -40,11 +40,9 @@ import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica -import com.konyaco.fluent.shape.FluentRoundedCornerShape internal expect val DialogPopupPositionProvider : PopupPositionProvider -@OptIn(ExperimentalAnimationApi::class) @Composable fun Dialog( title: String, @@ -84,7 +82,7 @@ fun Dialog( Mica(Modifier.wrapContentSize().clip(RoundedCornerShape(8.dp))) { Layer( Modifier.wrapContentSize().widthIn(200.dp, 600.dp), - shape = FluentRoundedCornerShape(8.dp), + shape = RoundedCornerShape(size = 8.dp), border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.default), outsideBorder = true, contentColor = FluentTheme.colors.text.text.primary, diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt index 689c67c4..811e080b 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt @@ -43,7 +43,6 @@ import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica -import com.konyaco.fluent.shape.FluentRoundedCornerShape @Composable fun DropdownMenu( @@ -126,7 +125,7 @@ internal fun DropdownMenuContent( Mica(Modifier.shadow(8.dp, RoundedCornerShape(8.dp)).clip(RoundedCornerShape(8.dp))) { // TODO: Dropdown should use Acrylic material. Layer( - shape = FluentRoundedCornerShape(8.dp), + shape = RoundedCornerShape(8.dp), border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.flyout), outsideBorder = true ) { diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt index cf56fe0a..e5c06532 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt @@ -61,7 +61,6 @@ import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronRight -import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlinx.coroutines.delay @Composable @@ -203,7 +202,7 @@ fun MenuFlyoutScope.MenuFlyoutItem( minWidth = 108.dp, minHeight = 30.dp ).fillMaxWidth(), - shape = FluentRoundedCornerShape(4.dp), + shape = RoundedCornerShape(size = 4.dp), border = BorderStroke(1.dp, menuColor.borderBrush), color = fillColor, contentColor = contentColor, diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt index 46ea4b53..80fbc1ef 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt @@ -26,7 +26,6 @@ import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.Layer -import com.konyaco.fluent.shape.FluentCircleShape @Composable fun RadioButton( @@ -63,7 +62,7 @@ fun RadioButton( ) Layer( modifier = Modifier.size(20.dp), - shape = FluentCircleShape, + shape = CircleShape, color = fillColor, outsideBorder = true, border = BorderStroke( diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt index 41513c3a..60c19451 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt @@ -34,6 +34,7 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider @@ -64,7 +65,6 @@ import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronDown import com.konyaco.fluent.icons.regular.Navigation import com.konyaco.fluent.icons.regular.Search -import com.konyaco.fluent.shape.FluentRoundedCornerShape import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlin.math.roundToInt @@ -216,7 +216,7 @@ fun SideNavItem( val navigationLevelPadding = 28.dp * LocalNavigationLevel.current Layer( modifier = Modifier.fillMaxWidth().height(36.dp), - shape = FluentRoundedCornerShape(4.dp), + shape = RoundedCornerShape(size = 4.dp), color = animateColorAsState( color, tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing) ).value, diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentCornerSize.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentCornerSize.kt index 57a55d4b..776d376a 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentCornerSize.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentCornerSize.kt @@ -19,8 +19,8 @@ package com.konyaco.fluent.shape import androidx.compose.foundation.shape.CornerSize +import androidx.compose.foundation.shape.ZeroCornerSize -import androidx.compose.runtime.Immutable import androidx.compose.runtime.Stable import androidx.compose.ui.geometry.Size import androidx.compose.ui.platform.InspectableValue @@ -30,26 +30,36 @@ import androidx.compose.ui.unit.Dp /** * Defines size of a corner in pixels. For example for rounded shape it can be a corner radius. */ -@Immutable -interface FluentCornerSize : CornerSize { - /** - * Converts the [CornerSize] to pixels. - * - * @param shapeSize the size of the shape - * @param density the current density of the screen. - * - * @return resolved size of the corner in pixels - */ - override fun toPx(shapeSize: Size, density: Density): Float -} +@Deprecated( + message = "Use CornerSize instead", + replaceWith = ReplaceWith( + expression = "CornerSize", + imports = arrayOf("androidx.compose.foundation.shape.CornerSize") + ) +) +typealias FluentCornerSize = CornerSize /** * Creates [CornerSize] with provided size. * @param size the corner size defined in [Dp]. */ +@Deprecated( + message = "Use CornerSize instead", + replaceWith = ReplaceWith( + expression = "CornerSize(size = size)", + imports = arrayOf("androidx.compose.foundation.shape.CornerSize") + ) +) @Stable -fun FluentCornerSize(size: Dp): FluentCornerSize = FluentDpCornerSize(size) - +fun FluentCornerSize(size: Dp): FluentCornerSize = CornerSize(size) + +@Deprecated( + message = "Use CornerSize instead", + replaceWith = ReplaceWith( + expression = "CornerSize(size = size)", + imports = arrayOf("androidx.compose.foundation.shape.CornerSize") + ) +) data class FluentDpCornerSize(val size: Dp) : FluentCornerSize, InspectableValue { override fun toPx(shapeSize: Size, density: Density) = with(density) { size.toPx() } @@ -64,9 +74,23 @@ data class FluentDpCornerSize(val size: Dp) : FluentCornerSize, InspectableValue * Creates [CornerSize] with provided size. * @param size the corner size defined in pixels. */ +@Deprecated( + message = "Use CornerSize instead", + replaceWith = ReplaceWith( + expression = "CornerSize(size = size)", + imports = arrayOf("androidx.compose.foundation.shape.CornerSize") + ) +) @Stable -fun FluentCornerSize(size: Float): FluentCornerSize = FluentPxCornerSize(size) - +fun FluentCornerSize(size: Float): FluentCornerSize = CornerSize(size) + +@Deprecated( + message = "Use CornerSize instead", + replaceWith = ReplaceWith( + expression = "CornerSize(size = size)", + imports = arrayOf("androidx.compose.foundation.shape.CornerSize") + ) +) data class FluentPxCornerSize(val size: Float) : FluentCornerSize, InspectableValue { override fun toPx(shapeSize: Size, density: Density) = size @@ -81,15 +105,28 @@ data class FluentPxCornerSize(val size: Float) : FluentCornerSize, InspectableVa * @param percent the corner size defined in percents of the shape's smaller side. * Can't be negative or larger then 100 percents. */ +@Deprecated( + message = "Use CornerSize instead", + replaceWith = ReplaceWith( + expression = "CornerSize(percent = percent)", + imports = arrayOf("androidx.compose.foundation.shape.CornerSize") + ) +) @Stable -fun FluentCornerSize(/*@IntRange(from = 0, to = 100)*/ percent: Int): FluentCornerSize = - FluentPercentCornerSize(percent.toFloat()) +fun FluentCornerSize(/*@IntRange(from = 0, to = 100)*/ percent: Int): FluentCornerSize = CornerSize(percent) /** * Creates [CornerSize] with provided size. * @param percent the corner size defined in float percents of the shape's smaller side. * Can't be negative or larger then 100 percents. */ +@Deprecated( + message = "Use CornerSize instead", + replaceWith = ReplaceWith( + expression = "CornerSize(percent = percent)", + imports = arrayOf("androidx.compose.foundation.shape.CornerSize") + ) +) data class FluentPercentCornerSize( /*@FloatRange(from = 0.0, to = 100.0)*/ val percent: Float @@ -112,12 +149,13 @@ data class FluentPercentCornerSize( /** * [CornerSize] always equals to zero. */ +@Deprecated( + message = "Use ZeroCornerSize instead", + replaceWith = ReplaceWith( + expression = "ZeroCornerSize", + imports = arrayOf("androidx.compose.foundation.shape.ZeroCornerSize") + ) +) @Stable -val FluentZeroCornerSize: FluentCornerSize = object : FluentCornerSize, InspectableValue { - override fun toPx(shapeSize: Size, density: Density) = 0.0f - - override fun toString(): String = "ZeroCornerSize" - - override val valueOverride: String - get() = "ZeroCornerSize" -} +val FluentZeroCornerSize: FluentCornerSize + get() = ZeroCornerSize diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentShape.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentShape.kt index 2f0b1374..005b8c95 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentShape.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/shape/FluentShape.kt @@ -18,14 +18,7 @@ */ package com.konyaco.fluent.shape -import androidx.compose.foundation.shape.AbsoluteRoundedCornerShape -import androidx.compose.foundation.shape.CornerBasedShape -import androidx.compose.foundation.shape.CornerSize -import androidx.compose.ui.geometry.CornerRadius -import androidx.compose.ui.geometry.RoundRect -import androidx.compose.ui.geometry.Size -import androidx.compose.ui.geometry.toRect -import androidx.compose.ui.graphics.Outline +import androidx.compose.foundation.shape.* import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.LayoutDirection @@ -42,115 +35,90 @@ import androidx.compose.ui.unit.dp * @param bottomEnd a size of the bottom end corner * @param bottomStart a size of the bottom start corner */ -class FluentRoundedCornerShape( - topStart: FluentCornerSize, - topEnd: FluentCornerSize, - bottomEnd: FluentCornerSize, - bottomStart: FluentCornerSize -) : CornerBasedShape( - topStart = topStart, - topEnd = topEnd, - bottomEnd = bottomEnd, - bottomStart = bottomStart -) { - val fluentTopStart = topStart - val fluentTopEnd = topEnd - val fluentBottomEnd = bottomEnd - val fluentBottomStart = bottomStart - - override fun createOutline( - size: Size, - topStart: Float, - topEnd: Float, - bottomEnd: Float, - bottomStart: Float, - layoutDirection: LayoutDirection - ) = if (topStart + topEnd + bottomEnd + bottomStart == 0.0f) { - Outline.Rectangle(size.toRect()) - } else { - Outline.Rounded( - RoundRect( - rect = size.toRect(), - topLeft = CornerRadius(if (layoutDirection == LayoutDirection.Ltr) topStart else topEnd), - topRight = CornerRadius(if (layoutDirection == LayoutDirection.Ltr) topEnd else topStart), - bottomRight = CornerRadius(if (layoutDirection == LayoutDirection.Ltr) bottomEnd else bottomStart), - bottomLeft = CornerRadius(if (layoutDirection == LayoutDirection.Ltr) bottomStart else bottomEnd) - ) - ) - } - - override fun copy( - topStart: CornerSize, - topEnd: CornerSize, - bottomEnd: CornerSize, - bottomStart: CornerSize - ): CornerBasedShape = FluentRoundedCornerShape( - topStart = topStart as FluentCornerSize, - topEnd = topEnd as FluentCornerSize, - bottomEnd = bottomEnd as FluentCornerSize, - bottomStart = bottomStart as FluentCornerSize +@Deprecated( + message = "Use RoundedCornerShape instead", + replaceWith = ReplaceWith( + expression = "RoundedCornerShape(topStart = topStart, topEnd = topEnd, bottomEnd = bottomEnd, bottomStart = bottomStart)", + imports = arrayOf("androidx.compose.foundation.shape.RoundedCornerShape") ) - - override fun toString(): String { - return "FluentRoundedCornerShape(topStart = $topStart, topEnd = $topEnd, bottomEnd = " + - "$bottomEnd, bottomStart = $bottomStart)" - } - - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other !is FluentRoundedCornerShape) return false - - if (topStart != other.topStart) return false - if (topEnd != other.topEnd) return false - if (bottomEnd != other.bottomEnd) return false - if (bottomStart != other.bottomStart) return false - - return true - } - - override fun hashCode(): Int { - var result = topStart.hashCode() - result = 31 * result + topEnd.hashCode() - result = 31 * result + bottomEnd.hashCode() - result = 31 * result + bottomStart.hashCode() - return result - } -} +) +typealias FluentRoundedCornerShape = RoundedCornerShape /** * Circular [Shape] with all the corners sized as the 50 percent of the shape size. */ -val FluentCircleShape = FluentRoundedCornerShape(50) +@Deprecated( + message = "Use CircleShape instead", + replaceWith = ReplaceWith( + expression = "CircleShape", + imports = arrayOf("androidx.compose.foundation.shape.CircleShape") + ) +) +val FluentCircleShape: FluentRoundedCornerShape + get() = CircleShape /** * Creates [RoundedCornerShape] with the same size applied for all four corners. * @param corner [FluentCornerSize] to apply. */ -fun FluentRoundedCornerShape(corner: FluentCornerSize) = - FluentRoundedCornerShape(corner, corner, corner, corner) +@Deprecated( + message = "Use RoundedCornerShape instead", + replaceWith = ReplaceWith( + expression = "RoundedCornerShape(corner = corner)", + imports = arrayOf("androidx.compose.foundation.shape.RoundedCornerShape") + ) +) +fun FluentRoundedCornerShape(corner: FluentCornerSize) = RoundedCornerShape(corner, corner, corner, corner) /** * Creates [RoundedCornerShape] with the same size applied for all four corners. * @param size Size in [Dp] to apply. */ -fun FluentRoundedCornerShape(size: Dp) = FluentRoundedCornerShape(FluentCornerSize(size)) +@Deprecated( + message = "Use RoundedCornerShape instead", + replaceWith = ReplaceWith( + expression = "RoundedCornerShape(size = size)", + imports = arrayOf("androidx.compose.foundation.shape.RoundedCornerShape") + ) +) +fun FluentRoundedCornerShape(size: Dp) = RoundedCornerShape(CornerSize(size)) /** * Creates [RoundedCornerShape] with the same size applied for all four corners. * @param size Size in pixels to apply. */ -fun FluentRoundedCornerShape(size: Float) = FluentRoundedCornerShape(FluentCornerSize(size)) +@Deprecated( + message = "Use RoundedCornerShape instead", + replaceWith = ReplaceWith( + expression = "RoundedCornerShape(size = size)", + imports = arrayOf("androidx.compose.foundation.shape.RoundedCornerShape") + ) +) +fun FluentRoundedCornerShape(size: Float) = RoundedCornerShape(CornerSize(size)) /** * Creates [RoundedCornerShape] with the same size applied for all four corners. * @param percent Size in percents to apply. */ -fun FluentRoundedCornerShape(percent: Int) = - FluentRoundedCornerShape(FluentCornerSize(percent)) +@Deprecated( + message = "Use RoundedCornerShape instead", + replaceWith = ReplaceWith( + expression = "RoundedCornerShape(percent = percent)", + imports = arrayOf("androidx.compose.foundation.shape.RoundedCornerShape") + ) +) +fun FluentRoundedCornerShape(percent: Int) = RoundedCornerShape(CornerSize(percent)) /** * Creates [RoundedCornerShape] with sizes defined in [Dp]. */ +@Deprecated( + message = "Use RoundedCornerShape instead", + replaceWith = ReplaceWith( + expression = "RoundedCornerShape(topStart = topStart, topEnd = topEnd, bottomEnd = bottomEnd, bottomStart = bottomStart)", + imports = arrayOf("androidx.compose.foundation.shape.RoundedCornerShape") + ) +) fun FluentRoundedCornerShape( topStart: Dp = 0.dp, topEnd: Dp = 0.dp, @@ -166,6 +134,13 @@ fun FluentRoundedCornerShape( /** * Creates [RoundedCornerShape] with sizes defined in pixels. */ +@Deprecated( + message = "Use RoundedCornerShape instead", + replaceWith = ReplaceWith( + expression = "RoundedCornerShape(topStart = topStart, topEnd = topEnd, bottomEnd = bottomEnd, bottomStart = bottomStart)", + imports = arrayOf("androidx.compose.foundation.shape.RoundedCornerShape") + ) +) fun FluentRoundedCornerShape( topStart: Float = 0.0f, topEnd: Float = 0.0f, @@ -190,6 +165,13 @@ fun FluentRoundedCornerShape( * @param bottomStartPercent The bottom start corner radius as a percentage of the smaller side, * with a range of 0 - 100. */ +@Deprecated( + message = "Use RoundedCornerShape instead", + replaceWith = ReplaceWith( + expression = "RoundedCornerShape(topStartPercent = topStartPercent, topEndPercent = topEndPercent, bottomEndPercent = bottomEndPercent, bottomStartPercent = bottomStartPercent)", + imports = arrayOf("androidx.compose.foundation.shape.RoundedCornerShape") + ) +) fun FluentRoundedCornerShape( /*@IntRange(from = 0, to = 100)*/ topStartPercent: Int = 0, diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt index c47ff6a6..9bfca34e 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt @@ -1,16 +1,16 @@ package com.konyaco.fluent.surface +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp import com.konyaco.fluent.background.Layer -import com.konyaco.fluent.shape.FluentRoundedCornerShape @Composable fun Card( modifier: Modifier, - shape: Shape = FluentRoundedCornerShape(8.dp), + shape: Shape = RoundedCornerShape(size = 8.dp), content: @Composable () -> Unit ) { Layer(modifier = modifier, shape = shape, outsideBorder = true, content = content) diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt index a3b2dbf9..db48ff70 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/App.kt @@ -11,6 +11,7 @@ import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -34,7 +35,6 @@ import com.konyaco.fluent.gallery.component.components import com.konyaco.fluent.gallery.screen.TodoScreen import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Settings -import com.konyaco.fluent.shape.FluentRoundedCornerShape import com.konyaco.fluent.surface.Card @Composable @@ -84,7 +84,7 @@ fun App() { Card( modifier = Modifier.fillMaxHeight().weight(1f), - shape = FluentRoundedCornerShape( + shape = RoundedCornerShape( topStart = 8.dp, topEnd = 0.dp, bottomStart = 0.dp, diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt index c24ab878..fa97a85b 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt @@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -39,7 +40,6 @@ import com.konyaco.fluent.component.SubtleButton import com.konyaco.fluent.component.Text import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronDown -import com.konyaco.fluent.shape.FluentRoundedCornerShape import com.konyaco.fluent.surface.Card @Composable @@ -54,7 +54,7 @@ fun GallerySection( Spacer(Modifier.height(16.dp)) Layer( modifier = Modifier.fillMaxWidth().wrapContentHeight(), - shape = FluentRoundedCornerShape( + shape = RoundedCornerShape( topStart = 8.dp, topEnd = 8.dp ) ) { @@ -75,9 +75,9 @@ fun GallerySection( .clickable(interactionSource = interactionSource, indication = null, onClick = { sourceCodeExpanded = !sourceCodeExpanded }), - shape = FluentRoundedCornerShape( - bottomStart = if (sourceCodeExpanded) 0.dp else 8.dp, - bottomEnd = if (sourceCodeExpanded) 0.dp else 8.dp + shape = RoundedCornerShape( + bottomEnd = if (sourceCodeExpanded) 0.dp else 8.dp, + bottomStart = if (sourceCodeExpanded) 0.dp else 8.dp ) ) { Row(Modifier.padding(8.dp), verticalAlignment = Alignment.CenterVertically) { @@ -110,9 +110,9 @@ fun GallerySection( ) { Card( modifier = Modifier.fillMaxWidth(), - shape = FluentRoundedCornerShape( - bottomStart = 8.dp, - bottomEnd = 8.dp + shape = RoundedCornerShape( + bottomEnd = 8.dp, + bottomStart = 8.dp ) ) { Column(Modifier.padding(16.dp, 12.dp)) { diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt index dd45e8a2..934cf932 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/SplitButtonScreen.kt @@ -2,6 +2,7 @@ package com.konyaco.fluent.gallery.screen.basicinput import androidx.compose.foundation.background import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -10,7 +11,6 @@ import com.konyaco.fluent.component.* import com.konyaco.fluent.gallery.annotation.Component import com.konyaco.fluent.gallery.annotation.Sample import com.konyaco.fluent.gallery.component.GalleryPage -import com.konyaco.fluent.shape.FluentRoundedCornerShape @Component(index = 5, description = "A two-part button that displays a flyout when its secondary part is clicked.") @Composable @@ -97,7 +97,7 @@ private fun ColorList( }, iconOnly = true ) { - Box(modifier = Modifier.size(32.dp).background(it, FluentRoundedCornerShape(2.dp))) + Box(modifier = Modifier.size(32.dp).background(it, RoundedCornerShape(2.dp))) } } } From cb0bbeeb5dd30844442c2e5c5e2d007bc55361d0 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Tue, 9 Apr 2024 20:52:12 +0800 Subject: [PATCH 065/136] [fluent] Deprecate `Layer` with `outsideBorder` parameter. --- .../com/konyaco/fluent/background/Acrylic.kt | 4 +- .../com/konyaco/fluent/background/Layer.kt | 66 ++++--------------- .../com/konyaco/fluent/component/Button.kt | 4 +- .../com/konyaco/fluent/component/CheckBox.kt | 15 +++-- .../com/konyaco/fluent/component/Dialog.kt | 8 +-- .../com/konyaco/fluent/component/Dropdown.kt | 3 +- .../com/konyaco/fluent/component/Flyout.kt | 6 +- .../konyaco/fluent/component/MenuFlyout.kt | 5 +- .../konyaco/fluent/component/RadioButton.kt | 9 +-- .../com/konyaco/fluent/component/SideNav.kt | 5 +- .../com/konyaco/fluent/component/Slider.kt | 10 +-- .../com/konyaco/fluent/component/TextField.kt | 12 ++-- .../kotlin/com/konyaco/fluent/surface/Card.kt | 8 ++- .../gallery/component/GallerySection.kt | 4 +- .../fluent/gallery/screen/HomeScreen.kt | 19 ------ 15 files changed, 71 insertions(+), 107 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Acrylic.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Acrylic.kt index 68731c33..c5a2062c 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Acrylic.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Acrylic.kt @@ -28,11 +28,11 @@ fun AcrylicContainerScope.Acrylic( content: @Composable () -> Unit ) { Layer( - outsideBorder = true, + modifier = modifier.acrylicOverlay(tint = tint, shape = shape, enabled = enabled), shape = shape, color = if (enabled()) Color.Transparent else FluentTheme.colors.background.layer.default, border = border, - modifier = modifier.acrylicOverlay(tint = tint, shape = shape, enabled = enabled) + backgroundSizing = BackgroundSizing.InnerBorderEdge ) { content() } diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index 0276d522..787c231d 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -18,7 +18,6 @@ import androidx.compose.ui.geometry.translate import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Outline import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.layout.layout import androidx.compose.ui.unit.* import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor @@ -60,59 +59,22 @@ fun Layer( elevation: Dp = 0.dp, content: @Composable () -> Unit ) { - ProvideTextStyle(FluentTheme.typography.body.copy(color = contentColor)) { - CompositionLocalProvider(LocalContentColor provides contentColor) { - val innerShape = remember(shape, outsideBorder) { - if (shape is CornerBasedShape && shape != CircleShape && outsideBorder) { - BackgroundPaddingShape(shape) - } else { - shape - } - } - Box( - modifier.layerLegacy( - elevation, - shape, - border, - outsideBorder, - color, - innerShape - ), - propagateMinConstraints = true - ) { - content() - } - } - } + Layer( + modifier = modifier, + shape = shape, + color = color, + contentColor = contentColor, + border = border, + elevation = elevation, + backgroundSizing = if (outsideBorder) { + BackgroundSizing.InnerBorderEdge + } else { + BackgroundSizing.OuterBorderEdge + }, + content = content + ) } -private fun Modifier.layerLegacy( - elevation: Dp, - shape: Shape, - border: BorderStroke?, - outsideBorder: Boolean, - color: Color, - innerShape: Shape -) = this.shadow(elevation, shape, clip = false) - .then(if (border != null) Modifier.border(border, shape) else Modifier) - .layout { measurable, constraints -> - val circular = shape == CircleShape - // TODO: A better way to implement outside border - val paddingValue = when { - outsideBorder && circular -> calcCircularPadding(this) - outsideBorder -> calcPadding(this) - else -> 0.dp - }.roundToPx() - val placeable = measurable.measure(constraints.offset(-paddingValue * 2, -paddingValue * 2)) - val width = constraints.constrainWidth(placeable.width + paddingValue * 2) - val height = constraints.constrainHeight(placeable.height + paddingValue * 2) - layout(width, height) { - placeable.place(paddingValue, paddingValue) - } - } - .background(color = color, shape = innerShape) - .clip(shape = innerShape) - @Composable fun Layer( modifier: Modifier = Modifier, diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt index 47ea1acf..bea3d089 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt @@ -455,11 +455,11 @@ private fun ButtonLayer( ) Layer( modifier = modifier, + shape = shape, color = fillColor, contentColor = contentColor, - outsideBorder = !accentButton, - shape = shape, border = if (displayBorder) BorderStroke(buttonBorderStrokeWidth, buttonColor.borderBrush) else null, + backgroundSizing = if (!accentButton) BackgroundSizing.InnerBorderEdge else BackgroundSizing.OuterBorderEdge, content = content ) } diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt index f6c072df..03656596 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.Checkmark @@ -75,6 +76,12 @@ fun CheckBox( Layer( modifier = Modifier.size(20.dp), shape = RoundedCornerShape(4.dp), + color = fillColor, + contentColor = when { + !enabled -> colors.text.onAccent.disabled + pressed -> colors.text.onAccent.secondary + else -> colors.text.onAccent.primary + }, border = BorderStroke( 1.dp, if (checked) when { !enabled -> colors.fillAccent.disabled @@ -84,13 +91,7 @@ fun CheckBox( else -> colors.controlStrong.default } ), - color = fillColor, - contentColor = when { - !enabled -> colors.text.onAccent.disabled - pressed -> colors.text.onAccent.secondary - else -> colors.text.onAccent.primary - }, - outsideBorder = !checked + backgroundSizing = if (!checked) BackgroundSizing.InnerBorderEdge else BackgroundSizing.OuterBorderEdge ) { Box(contentAlignment = Alignment.CenterStart) { androidx.compose.animation.AnimatedVisibility( diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt index 8cea2ff0..84264777 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dialog.kt @@ -1,7 +1,6 @@ package com.konyaco.fluent.component import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.animation.core.MutableTransitionState import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn @@ -38,6 +37,7 @@ import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.LocalTextStyle import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica @@ -81,11 +81,11 @@ fun Dialog( ) { Mica(Modifier.wrapContentSize().clip(RoundedCornerShape(8.dp))) { Layer( - Modifier.wrapContentSize().widthIn(200.dp, 600.dp), + modifier = Modifier.wrapContentSize().widthIn(200.dp, 600.dp), shape = RoundedCornerShape(size = 8.dp), - border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.default), - outsideBorder = true, contentColor = FluentTheme.colors.text.text.primary, + border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.default), + backgroundSizing = BackgroundSizing.InnerBorderEdge ) { Column(Modifier.background(FluentTheme.colors.background.solid.base)) { Column(Modifier.background(FluentTheme.colors.background.layer.alt).padding(24.dp)) { diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt index 811e080b..fa608655 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Dropdown.kt @@ -41,6 +41,7 @@ import androidx.compose.ui.window.PopupProperties import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica @@ -127,7 +128,7 @@ internal fun DropdownMenuContent( Layer( shape = RoundedCornerShape(8.dp), border = BorderStroke(1.dp, FluentTheme.colors.stroke.surface.flyout), - outsideBorder = true + backgroundSizing = BackgroundSizing.InnerBorderEdge ) { Column( modifier = modifier diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt index c4f2a78a..284da1ab 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Flyout.kt @@ -30,6 +30,7 @@ import com.konyaco.fluent.LocalWindowAcrylicContainer import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing import com.konyaco.fluent.background.AcrylicDefaults +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica @@ -231,7 +232,10 @@ internal fun AcrylicPopupContent( shadowElevation = elevation.toPx() clip = true }) { - Layer(shape = shape) { + Layer( + shape = shape, + backgroundSizing = BackgroundSizing.OuterBorderEdge + ) { Box(modifier = modifier.padding(contentPadding)) { content() } diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt index e5c06532..6cfbe918 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/MenuFlyout.kt @@ -58,6 +58,7 @@ import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.LocalTextStyle import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronRight @@ -203,10 +204,10 @@ fun MenuFlyoutScope.MenuFlyoutItem( minHeight = 30.dp ).fillMaxWidth(), shape = RoundedCornerShape(size = 4.dp), - border = BorderStroke(1.dp, menuColor.borderBrush), color = fillColor, contentColor = contentColor, - outsideBorder = true + border = BorderStroke(1.dp, menuColor.borderBrush), + backgroundSizing = BackgroundSizing.InnerBorderEdge ) { Row( modifier = Modifier diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt index 80fbc1ef..7192428c 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RadioButton.kt @@ -25,6 +25,7 @@ import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer @Composable @@ -64,7 +65,6 @@ fun RadioButton( modifier = Modifier.size(20.dp), shape = CircleShape, color = fillColor, - outsideBorder = true, border = BorderStroke( 1.dp, color = if (selected) when { @@ -74,7 +74,8 @@ fun RadioButton( !enabled || pressed -> FluentTheme.colors.stroke.controlStrong.disabled else -> FluentTheme.colors.stroke.controlStrong.default } - ) + ), + backgroundSizing = BackgroundSizing.InnerBorderEdge ) { Box(contentAlignment = Alignment.Center) { // Bullet, Only displays when selected, or is pressed @@ -93,13 +94,13 @@ fun RadioButton( // Inner Layer( modifier = Modifier.size(if (size == 0.dp || !selected) size else size + 2.dp), // TODO: Remove this 2dp if outside border is provided + shape = CircleShape, color = FluentTheme.colors.text.onAccent.primary, border = if (selected) BorderStroke( 1.dp, FluentTheme.colors.borders.circle ) else null, - shape = CircleShape, - outsideBorder = true, + backgroundSizing = BackgroundSizing.InnerBorderEdge, content = {} ) } diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt index 60c19451..1d43df7a 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/SideNav.kt @@ -60,6 +60,7 @@ import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalTextStyle import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.icons.Icons import com.konyaco.fluent.icons.regular.ChevronDown @@ -221,8 +222,8 @@ fun SideNavItem( color, tween(FluentDuration.QuickDuration, easing = FluentEasing.FastInvokeEasing) ).value, contentColor = FluentTheme.colors.text.text.primary, - outsideBorder = false, - border = null + border = null, + backgroundSizing = BackgroundSizing.OuterBorderEdge ) { Box( Modifier.clickable( diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Slider.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Slider.kt index d832c6b7..a6ee7b90 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Slider.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Slider.kt @@ -42,6 +42,7 @@ import androidx.compose.ui.unit.times import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer @Composable @@ -148,14 +149,15 @@ private fun calcThumbOffset( @Composable private fun Rail() { // Rail - Layer(modifier = Modifier.fillMaxWidth().requiredHeight(4.dp), + Layer( + modifier = Modifier.fillMaxWidth().requiredHeight(4.dp), shape = CircleShape, color = FluentTheme.colors.controlStrong.default, border = BorderStroke( 1.dp, if (FluentTheme.colors.darkMode) FluentTheme.colors.stroke.controlStrong.default else FluentTheme.colors.controlStrong.default ), - outsideBorder = true, + backgroundSizing = BackgroundSizing.InnerBorderEdge, content = {} ) } @@ -190,9 +192,9 @@ private fun Thumb( .size(ThumbSizeWithBorder) .clickable(interactionSource, null, onClick = {}), shape = CircleShape, - border = BorderStroke(1.dp, FluentTheme.colors.borders.circle), color = FluentTheme.colors.controlSolid.default, - outsideBorder = true + border = BorderStroke(1.dp, FluentTheme.colors.borders.circle), + backgroundSizing = BackgroundSizing.InnerBorderEdge ) { Box(contentAlignment = Alignment.Center) { // Inner Thumb diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/TextField.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/TextField.kt index 3adc3818..eae98f0a 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/TextField.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/TextField.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalTextStyle +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer @Composable @@ -77,17 +78,18 @@ fun TextField( modifier = Modifier.hoverable(interactionSource) .drawBottomLine(enabled) { focused }, shape = RoundedCornerShape(4.dp), - border = BorderStroke( - 1.dp, - if (focused || pressed) SolidColor(FluentTheme.colors.stroke.control.default) - else FluentTheme.colors.borders.textControl - ), color = when { !enabled -> FluentTheme.colors.control.disabled pressed || focused -> FluentTheme.colors.control.inputActive hovered -> FluentTheme.colors.control.secondary else -> FluentTheme.colors.control.default }, + border = BorderStroke( + 1.dp, + if (focused || pressed) SolidColor(FluentTheme.colors.stroke.control.default) + else FluentTheme.colors.borders.textControl + ), + backgroundSizing = BackgroundSizing.OuterBorderEdge ) { Box( Modifier.offset(y = (-1).dp).padding(start = 12.dp, end = 12.dp, top = 4.dp, bottom = 3.dp), diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt index 9bfca34e..4f61153d 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/surface/Card.kt @@ -5,6 +5,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer @Composable @@ -13,5 +14,10 @@ fun Card( shape: Shape = RoundedCornerShape(size = 8.dp), content: @Composable () -> Unit ) { - Layer(modifier = modifier, shape = shape, outsideBorder = true, content = content) + Layer( + modifier = modifier, + shape = shape, + backgroundSizing = BackgroundSizing.InnerBorderEdge, + content = content + ) } \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt index fa97a85b..7231449f 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/GallerySection.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.animation.FluentDuration import com.konyaco.fluent.animation.FluentEasing +import com.konyaco.fluent.background.BackgroundSizing import com.konyaco.fluent.background.Layer import com.konyaco.fluent.background.Mica import com.konyaco.fluent.component.Icon @@ -56,7 +57,8 @@ fun GallerySection( modifier = Modifier.fillMaxWidth().wrapContentHeight(), shape = RoundedCornerShape( topStart = 8.dp, topEnd = 8.dp - ) + ), + backgroundSizing = BackgroundSizing.OuterBorderEdge ) { Mica(Modifier) { Box( diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt index e632b973..44576c48 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt @@ -249,25 +249,6 @@ private fun Content() { Box(Modifier.size(32.dp).background(FluentTheme.colors.fillAccent.default)) } - Layer( - shape = RoundedCornerShape(4.dp), - color = FluentTheme.colors.fillAccent.default, - border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), - content = { - Box(Modifier.size(32.dp)) - }, - outsideBorder = false - ) - Layer( - shape = RoundedCornerShape(4.dp), - color = FluentTheme.colors.fillAccent.default, - border = BorderStroke(1.dp, FluentTheme.colors.stroke.control.default), - content = { - Box(Modifier.size(32.dp)) - }, - outsideBorder = true - ) - Layer( shape = RoundedCornerShape(4.dp), color = FluentTheme.colors.fillAccent.default, From 5e19cd835d55cb60f1ce605ad9a13c46492f5902 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Thu, 11 Apr 2024 08:22:20 +0800 Subject: [PATCH 066/136] [fluent] Add VisualStateScheme. --- .../fluent/scheme/VisualStateScheme.kt | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/scheme/VisualStateScheme.kt diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/scheme/VisualStateScheme.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/scheme/VisualStateScheme.kt new file mode 100644 index 00000000..87fa9bf4 --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/scheme/VisualStateScheme.kt @@ -0,0 +1,66 @@ +package com.konyaco.fluent.scheme + +import androidx.compose.foundation.interaction.InteractionSource +import androidx.compose.foundation.interaction.collectIsHoveredAsState +import androidx.compose.foundation.interaction.collectIsPressedAsState +import androidx.compose.runtime.* + +fun interface VisualStateScheme { + fun schemeFor(state: VisualState): Scheme +} + +interface ValueVisualStateScheme: VisualStateScheme { + val default: Scheme + val hovered: Scheme + val pressed: Scheme + val disabled: Scheme + + override fun schemeFor(state: VisualState): Scheme = when(state) { + VisualState.Default -> default + VisualState.Hovered -> hovered + VisualState.Pressed -> pressed + VisualState.Disabled -> disabled + } + +} + +@Immutable +class SelectableVisualStateScheme( + private val default: VisualStateScheme, + private val selected: VisualStateScheme, + private val selectedState: () -> Boolean = { false }, +): VisualStateScheme { + override fun schemeFor(state: VisualState): Scheme { + return if (selectedState()) { + selected.schemeFor(state) + } else { + default.schemeFor(state) + } + } +} + +fun VisualStateScheme.collectCurrentScheme(isHovered: Boolean = false, isPressed: Boolean = false, disabled: Boolean = false): T { + return when { + disabled -> schemeFor(VisualState.Disabled) + isPressed -> schemeFor(VisualState.Pressed) + isHovered -> schemeFor(VisualState.Hovered) + else -> schemeFor(VisualState.Default) + } +} + +@Composable +fun VisualStateScheme.collectCurrentScheme(interactionSource: InteractionSource, disabled: Boolean = false): T { + val isHovered by interactionSource.collectIsHoveredAsState() + val isPressed by interactionSource.collectIsPressedAsState() + return collectCurrentScheme(isHovered, isPressed, disabled) +} + +sealed interface VisualState { + data object Default: VisualState + + data object Hovered: VisualState + + data object Pressed: VisualState + + data object Disabled: VisualState +} \ No newline at end of file From 9d197dd6fdfdd16f08eec004e282b182f85d99e2 Mon Sep 17 00:00:00 2001 From: sanlorng Date: Thu, 11 Apr 2024 08:24:59 +0800 Subject: [PATCH 067/136] [fluent] Add RatingControl. --- .../konyaco/fluent/component/RatingControl.kt | 363 ++++++++++++++++++ .../screen/basicinput/RatingControlScreen.kt | 44 ++- 2 files changed, 397 insertions(+), 10 deletions(-) create mode 100644 fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RatingControl.kt diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RatingControl.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RatingControl.kt new file mode 100644 index 00000000..8e75335b --- /dev/null +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/component/RatingControl.kt @@ -0,0 +1,363 @@ +package com.konyaco.fluent.component + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.hoverable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.PressInteraction +import androidx.compose.foundation.interaction.collectIsHoveredAsState +import androidx.compose.foundation.layout.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Outline +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.input.pointer.PointerEventPass +import androidx.compose.ui.input.pointer.PointerEventType +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.layout.boundsInParent +import androidx.compose.ui.layout.onGloballyPositioned +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.* +import com.konyaco.fluent.FluentTheme +import com.konyaco.fluent.LocalContentColor +import com.konyaco.fluent.ProvideTextStyle +import com.konyaco.fluent.icons.Icons +import com.konyaco.fluent.icons.filled.Star +import com.konyaco.fluent.icons.regular.Star +import com.konyaco.fluent.scheme.ValueVisualStateScheme +import com.konyaco.fluent.scheme.VisualStateScheme +import com.konyaco.fluent.scheme.collectCurrentScheme +import kotlinx.coroutines.currentCoroutineContext +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.flow.filterIsInstance +import kotlinx.coroutines.isActive + +/** + * @param width: star width + * @param placeholderValue: the placeholder value will display when value is 0f + * @param maxRating: star count + * @param isClearEnabled: click same star value will clear value. + * @param caption: addition info for rating control + * @param stepValue: if true, [onValueChanged] will set value as int, otherwise [onValueChanged] will set value as float + * @param isReadOnly: if true, user can't set [value] by click. + */ +@Composable +fun RatingControl( + value: Float, + onValueChanged: (Float) -> Unit, + modifier: Modifier = Modifier, + colors: VisualStateScheme = RatingControlDefaults.colors(), + width: Dp = 20.dp, + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, + placeholderValue: Float = 0f, + maxRating: Int = 5, + caption: @Composable () -> Unit = {}, + stepValue: Boolean = true, + isReadOnly: Boolean = false, + isClearEnabled: Boolean = false, + disabled: Boolean = false +) { + val valueRange = 0f..maxRating.toFloat() + require(value in valueRange) { "value is invalid" } + val isHovered = interactionSource.collectIsHoveredAsState() + val itemPositions = remember(maxRating) { mutableStateListOf(*Array(maxRating) { Rect.Zero }) } + val valueState by rememberUpdatedState { value } + val placeholderValueState by rememberUpdatedState { placeholderValue } + val displayPlaceholder = remember { + derivedStateOf { valueState() == 0f && placeholderValueState() > 0f && !isHovered.value } + } + val shapeFraction by remember { + derivedStateOf { + parseValueToFraction(itemPositions, if (displayPlaceholder.value) placeholderValueState() else valueState()) + } + } + val color = colors.collectCurrentScheme(interactionSource, disabled) + val hoveredOffset = remember { mutableStateOf(null) } + /** collect pointer release offset */ + LaunchedEffect(interactionSource, value) { + interactionSource.interactions.filterIsInstance() + .collectLatest { + when (it) { + is PressInteraction.Release -> { + val offset = hoveredOffset.value ?: it.press.pressPosition + val targetValue = getValueByOffset(stepValue, offset, itemPositions) + if (isClearEnabled && value == targetValue) { + onValueChanged(0f) + } else { + println(targetValue) + onValueChanged(targetValue) + } + } + } + } + } + + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + Box( + modifier = modifier.hoverable(interactionSource, !disabled) + .pointerInput(isReadOnly, disabled) { + /** detect hovered state pointer offset */ + val currentContext = currentCoroutineContext() + if (!isReadOnly && !disabled) { + awaitPointerEventScope { + while (currentContext.isActive) { + val event = awaitPointerEvent(PointerEventPass.Main) + if (event.type == PointerEventType.Move) { + hoveredOffset.value = event.changes.first().position + } else if (event.type == PointerEventType.Exit) { + hoveredOffset.value = null + } + } + } + } else if (hoveredOffset.value != null) { + hoveredOffset.value = null + } + } + .clickable( + enabled = !disabled && !isReadOnly, + interactionSource = interactionSource, + onClick = {}, + indication = null + ) + ) { + drawStar( + color = color, + width = width, + maxRating = maxRating, + selected = true, + isHovered = isHovered.value, + onItemPositioned = { index, position -> itemPositions[index] = position }, + value = valueState, + displayPlaceholder = displayPlaceholder.value, + modifier = Modifier.graphicsLayer { + clip = true + val currentHoveredOffset = hoveredOffset.value + shape = if (currentHoveredOffset != null) { + val hoveredValue = getValueByOffset(stepValue, currentHoveredOffset, itemPositions) + RatingStarClipShape(true, parseValueToFraction(itemPositions, hoveredValue)) + } else { + RatingStarClipShape(true, shapeFraction) + } + } + ) + drawStar( + color = color, + width = width, + maxRating = maxRating, + selected = false, + isHovered = isHovered.value, + value = valueState, + displayPlaceholder = displayPlaceholder.value, + modifier = Modifier.graphicsLayer { + clip = true + val currentHoveredOffset = hoveredOffset.value + shape = if (currentHoveredOffset != null) { + val hoveredValue = getValueByOffset(stepValue, currentHoveredOffset, itemPositions) + RatingStarClipShape(false, parseValueToFraction(itemPositions, hoveredValue)) + } else { + RatingStarClipShape(false, shapeFraction) + } + }) + } + ProvideTextStyle( + FluentTheme.typography.caption.copy(color.captionColor, fontWeight = FontWeight.Normal) + ) { + CompositionLocalProvider( + LocalContentColor provides color.captionColor + ) { + caption() + } + } + + } +} + +@Immutable +data class RatingControlColorScheme( + override val default: RatingControlColor, + override val hovered: RatingControlColor, + override val pressed: RatingControlColor, + override val disabled: RatingControlColor, +) : ValueVisualStateScheme + +@Immutable +data class RatingControlColor( + val color: Color, + val selectedColor: Color, + val captionColor: Color, + val placeholderColor: Color +) + +object RatingControlDefaults { + + @Composable + @Stable + fun colors( + default: RatingControlColor = RatingControlColor( + color = FluentTheme.colors.text.text.secondary, + selectedColor = FluentTheme.colors.fillAccent.default, + placeholderColor = FluentTheme.colors.text.text.primary, + captionColor = FluentTheme.colors.text.text.secondary + ), + hovered: RatingControlColor = default.copy( + selectedColor = FluentTheme.colors.fillAccent.default, + placeholderColor = FluentTheme.colors.controlAlt.tertiary, + ), + pressed: RatingControlColor = default, + disabled: RatingControlColor = default.copy( + selectedColor = FluentTheme.colors.text.text.secondary + ) + ) = RatingControlColorScheme( + default = default, + hovered = hovered, + pressed = pressed, + disabled = disabled + ) +} + +/** parse value to rating control clip percent */ +private fun parseValueToFraction(itemPositions: List, value: Float): Float { + val currentValueInt = value.toInt() + val currentValueFloat = value - currentValueInt + val lastRect = itemPositions.last() + return if (lastRect.right > 0) { + if (currentValueFloat == 0f && currentValueInt > 0) { + itemPositions[currentValueInt - 1].right / lastRect.right + } else { + val item = itemPositions[currentValueInt] + (item.left + item.width * currentValueFloat) / lastRect.right + } + } else { + 0f + } +} + +/** parse hovered offset to star value */ +private fun getValueByOffset(stepValue: Boolean = true, offset: Offset, itemPositions: List): Float { + val lastIndex = itemPositions.lastIndex + val offsetX = offset.x + for (index in lastIndex downTo 0) { + val nextRect = itemPositions.getOrNull(index + 1) + val rect = itemPositions[index] + when { + index == lastIndex && rect.right <= offsetX -> return lastIndex + 1f + offsetX >= rect.left && offsetX <= (nextRect?.right ?: rect.right) -> return if (stepValue) { + index + 1f + } else { + index + ((offsetX - rect.left) / rect.width).coerceAtMost(1f) + } + } + } + return 0f +} + +@Composable +private fun drawStar( + color: RatingControlColor, + width: Dp, + maxRating: Int, + selected: Boolean, + isHovered: Boolean, + displayPlaceholder: Boolean, + modifier: Modifier = Modifier, + onItemPositioned: (index: Int, bounds: Rect) -> Unit = { _, _ -> }, + value: () -> Float = { 0.0f } +) { + Row(horizontalArrangement = Arrangement.spacedBy(ratingSpacing), modifier = modifier) { + val hasValue = value() != 0f + val (icon, iconColor) = when { + selected -> Icons.Filled.Star to when { + (!hasValue && isHovered) || displayPlaceholder -> color.placeholderColor + else -> color.selectedColor + } + + else -> Icons.Regular.Star to color.color + } + repeat(maxRating) { index -> + Box( + modifier = Modifier.onGloballyPositioned { + onItemPositioned(index, it.boundsInParent()) + } + ) { + //TODO Update star icon + Icon( + imageVector = icon, + contentDescription = null, + tint = iconColor, + modifier = Modifier.size(width) + ) + if (isHovered && !hasValue && selected) { + Icon( + imageVector = Icons.Regular.Star, + contentDescription = null, + tint = color.color, + modifier = Modifier.size(width) + ) + } + } + + + } + } +} + +@Stable +private class RatingStarClipShape( + private val isStart: Boolean, + private val fraction: Float +) : Shape { + override fun createOutline( + size: Size, + layoutDirection: LayoutDirection, + density: Density + ): Outline { + val isRtl = layoutDirection == LayoutDirection.Rtl + + return Outline.Rectangle( + if ((!isRtl && isStart) || isRtl) { + Rect( + Offset.Zero, + Size( + size.width * if (!isRtl) { + fraction + } else { + 1 - fraction + }, + size.height + ) + ) + } else { + Rect( + Offset( + size.width * fraction, + 0f + ), + Size( + size.width * (1 - fraction), + size.height + ) + ) + } + ) + } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + val otherShape = other as? RatingStarClipShape ?: return false + return otherShape.isStart == isStart && otherShape.fraction == fraction + } + + override fun hashCode(): Int { + return 31 * fraction.hashCode() + isStart.hashCode() + } +} + +private val ratingSpacing = 4.dp \ No newline at end of file diff --git a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt index 833e2838..7f107c3c 100644 --- a/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt +++ b/gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/basicinput/RatingControlScreen.kt @@ -1,20 +1,44 @@ package com.konyaco.fluent.gallery.screen.basicinput -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import com.konyaco.fluent.component.RatingControl +import com.konyaco.fluent.component.Text import com.konyaco.fluent.gallery.annotation.Component -import com.konyaco.fluent.gallery.component.GalleryHeader +import com.konyaco.fluent.gallery.annotation.Sample +import com.konyaco.fluent.gallery.component.GalleryPage -@Component(index = 11) +@Component(index = 11, description = "Rate something 1 to 5 stars.") @Composable fun RatingControlScreen() { - Column(Modifier.fillMaxSize()) { - GalleryHeader( - "RatingControl", - "Rate something 1 to 5 stars." + GalleryPage( + title = "RatingControl", + description = "Rate something 1 to 5 stars." + ) { + Section( + title = "A simple RatingControl", + sourceCode = sourceCodeOfBasicRatingControlSample, + content = { BasicRatingControlSample() } + ) + Section( + title = "PlaceholderValue of RatingControl", + sourceCode = sourceCodeOfPlaceholderRatingControlSample, + content = { PlaceholderRatingControlSample() } ) - // TODO: } +} + +@Sample +@Composable +private fun BasicRatingControlSample() { + val (value, setValue) = remember { mutableStateOf(0.5f) } + RatingControl(value = value, onValueChanged = setValue, caption = { Text("Your rating") }) +} + +@Sample +@Composable +private fun PlaceholderRatingControlSample() { + val (value, setValue) = remember { mutableStateOf(0.0f) } + RatingControl(value = value, onValueChanged = setValue, placeholderValue = 2f) } \ No newline at end of file From 496e4d8fffe3624acd6a44b5f89b74cc1c5122cc Mon Sep 17 00:00:00 2001 From: KonYaco Date: Thu, 11 Apr 2024 10:41:20 +0800 Subject: [PATCH 068/136] Update workaround for gap. --- .../com/konyaco/fluent/background/Layer.kt | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index 787c231d..98e36b05 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -8,7 +8,10 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CornerBasedShape import androidx.compose.foundation.shape.CutCornerShape import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.Stable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow @@ -18,12 +21,14 @@ import androidx.compose.ui.geometry.translate import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Outline import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.unit.* +import androidx.compose.ui.unit.Density +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.LayoutDirection +import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.ProvideTextStyle import kotlin.math.ceil -import kotlin.math.floor import kotlin.math.sqrt /** @@ -206,13 +211,12 @@ private value class BackgroundPaddingShape(private val borderShape: CornerBasedS private fun calcPadding(density: Density): Dp { val remainder = density.density % 1f - return when { - remainder == 0f -> 1.dp - remainder < 0.5f -> with(density) { -// (1.dp.toPx() + 1).toDp() - ceil(1.dp.toPx()).toDp() + return with(density) { + when { + remainder == 0f -> 1.dp +// remainder < 0.5f -> ceil(1.dp.toPx()).toDp() + else -> ceil(1.dp.toPx()).toDp() } - else -> 1.dp } } @@ -221,7 +225,7 @@ private fun calcCircularPadding(density: Density): Dp { val remainder = density.density % 1f return with(density) { - if (remainder == 0f) (1.dp.toPx() - 1f).toDp() // floor(1.dp.toPx() - 0.5f).toDp() - else floor(1.dp.toPx()).toDp() + if (remainder == 0f) 1.dp + else ceil(1.dp.toPx()).toDp() } } \ No newline at end of file From d3002ade0781ad4cc2d75dcef21232923c66c180 Mon Sep 17 00:00:00 2001 From: KonYaco Date: Thu, 11 Apr 2024 10:48:49 +0800 Subject: [PATCH 069/136] Update workaround for gap. --- .../kotlin/com/konyaco/fluent/background/Layer.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt index 98e36b05..2f3e0d7f 100644 --- a/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt +++ b/fluent/src/commonMain/kotlin/com/konyaco/fluent/background/Layer.kt @@ -28,7 +28,6 @@ import androidx.compose.ui.unit.dp import com.konyaco.fluent.FluentTheme import com.konyaco.fluent.LocalContentColor import com.konyaco.fluent.ProvideTextStyle -import kotlin.math.ceil import kotlin.math.sqrt /** @@ -214,8 +213,7 @@ private fun calcPadding(density: Density): Dp { return with(density) { when { remainder == 0f -> 1.dp -// remainder < 0.5f -> ceil(1.dp.toPx()).toDp() - else -> ceil(1.dp.toPx()).toDp() + else -> (1.dp.toPx() - remainder + 1).toDp() } } } @@ -226,6 +224,6 @@ private fun calcCircularPadding(density: Density): Dp { return with(density) { if (remainder == 0f) 1.dp - else ceil(1.dp.toPx()).toDp() + else (1.dp.toPx() - remainder + 1).toDp() } } \ No newline at end of file From b808d463b60ebf2f5351155225abd63f21fa6c41 Mon Sep 17 00:00:00 2001 From: 123Duo3 <123duo3@gmail.com> Date: Sat, 13 Apr 2024 18:11:40 +0800 Subject: [PATCH 070/136] [Gallery] Support dark title bar on macOS. --- gallery/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gallery/build.gradle.kts b/gallery/build.gradle.kts index 5a18c3bb..b0a4b146 100644 --- a/gallery/build.gradle.kts +++ b/gallery/build.gradle.kts @@ -92,6 +92,9 @@ compose.desktop { packageVersion = "1.0.0" macOS { iconFile.set(project.file("icons/icon.icns")) + jvmArgs( + "-Dapple.awt.application.appearance=system" + ) } windows { iconFile.set(project.file("icons/icon.ico")) From de991cb366dd1056032d85e1cc5b62ee6ab33765 Mon Sep 17 00:00:00 2001 From: 123Duo3 <123duo3@gmail.com> Date: Sat, 13 Apr 2024 18:12:33 +0800 Subject: [PATCH 071/136] [Gallery] New home screen. --- .../composeResources/drawable/banner.png | Bin 0 -> 3558359 bytes .../composeResources/drawable/fluent_logo.svg | 3 + .../composeResources/drawable/github_logo.svg | 1 + .../drawable/jetpack_compose_logo.png | Bin 0 -> 44165 bytes .../fluent/gallery/screen/HomeScreen.kt | 540 ++++++------------ .../fluent/gallery/screen/HomeScreen.kt.bak | 410 +++++++++++++ 6 files changed, 577 insertions(+), 377 deletions(-) create mode 100644 gallery/src/commonMain/composeResources/drawable/banner.png create mode 100644 gallery/src/commonMain/composeResources/drawable/fluent_logo.svg create mode 100644 gallery/src/commonMain/composeResources/drawable/github_logo.svg create mode 100644 gallery/src/commonMain/composeResources/drawable/jetpack_compose_logo.png create mode 100644 gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/HomeScreen.kt.bak diff --git a/gallery/src/commonMain/composeResources/drawable/banner.png b/gallery/src/commonMain/composeResources/drawable/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..e88b50df66bfcfc53de170a99855b95e49dcf3d1 GIT binary patch literal 3558359 zcmZs?WmH^E@F$EUArM>=T!JORb#QkN5;WN0GQ%*q3~s?CxP;*D?g0j865I(M0t~?h zhvoV2yL;Xbd(W*~eScNeU8lcvbyatimWCo84kZp68XBImlAJag8dl(c^zy|M!u4GR z{=@{W4U}!v)zLmYwaK4I>50()FULTqM0@`KAurLX{%@P`2}4WpI_`X8*kA<(=zstJ z^DKR6o_uOxyC@kxfv<@FBlM|N*xeH-;U;h3reN=6jV3E%q6f8hg_=lPIopHmp>D1g zZeUjvIj|?l32b2nH4)@jbhU7%m$QaCx`ACx?5w>wEuE}ER^jLPyiYxm|JRe8g_|`R zFE=kg7x#ZJJ&&LW508j|(1;r=e0LZ=r#`_X|H0Z%PFcJD&oI1C z!w7K-@&6%~{P85F`A-b=20B?oIX~H3d#YJ@Tf1^XEu3AR5Hx;nVZm5cm#6tbWBPw8 zx`Ev+oXp(*^Z$Q$3=nP<>=S#^Xa0ZcyZ(XQNI|I+~K4FcM^f_tPPM^l!Q*7ZV9=^CrCGECjIwz=GicZt{UF6XVNuP-;| z$gh^+P*IwA8ATyWNb*AIB{maF>0pB7w>|OS1m@3_lwPuMB-r&uz7BRM{7}~Zs&sVR z%Syq@M$W7C)<5gy*58q<;fVFfM-JQrL#;Xb9~j3sAnJg7>8l;4>dsxJH69(Gnc|!$ zZQJS%_g3cWGijQg0}@C}&K7Op?zj!=TU7Ju!p*ympO*o}w?&v{^;BA` z;bk-AOrXUdaFpr0Yv+I2Q0=_i4M9!J*Tcp6%|>m_sv0C&%v=#yv^{v!*_LVU4jsrW z1gsebt zZJ8bNmu||R%KHqUd7HO4X0TMev&yw|wsKOp@HHU$p15J4qUC)H2Q=~@x;HQjx|?nt z>sSrE2W+I>MEH$}--_Clz*1W#*t3LFPXsltWw)B`@9P7U)=z==;}A8;q0RwL_a%h8 z%bK8gGg#CenzeK0)oky#ELgpRYCxpYB~P@|BDz+(AwT}y>qd;`ga%U;n~t*cGP^c zR(0Icv3ie!`PVPbz*gx?n6fTxpfDd-SD32@#I+vg)-LRewQ)8*u}jhJ3AvuM>4N>Z zqW;3SOC`Gq@?!9tJp3Rps?@c4> zmYGwN>sblOtd+G0$pUUpE4sTzl1IWPS4dj(U-ZS85XTS=i(0B<^kumRHT~+Tv%!t` zHUa>Ni@IMhdhuW@WnK6 zugr!3%?#^XM@=9cnD?)#<>!GjBjlsb8SRKreW%l@N<2l`>tDzJfKGougRvQ@8qWXy zboS;XUH%qLr{Uq*W+R#8cg!gp*_3E~qRb@dNI~)~809xN`Ix`A0AYdxc9y(wZM$^R z2(yPR#28DGn>uFf<}|C3oIUYlimY(r%jK)ij`eDgFlSB8Je~jbDeCN?gQIDjM~>#x zK|^x#%{2&;UR{r0_;oNOcg{7}S<9VTCk5r~i^If0 zlQceEj;v`cf4N;wcaIdy)rlF^m!Tjb*(>|EnGBur7#d+c(Yt#)?OJV48g!D}{gA{r zjUioOkjK$WFNkELx{);*#x-`M%AWa!E$QAnCswB8R79p&qimTpPpQmc3Xsjo7pRZb z+X|%b+fbyqnUN-NjdcIq5Rhc{*Q8B_bDV{<25-*$YQcOD{UchM%OsxRR*2Xw+s(HH zT}}K;4L&a584xIPJB%tcTNt6oTH9E(Wie59=-KUcbu=K;?Uxk>=NR;MhqAobDk6DqR&@38WVt4!7-aeZr}g){=jS^3#vBFqHgQ4JE7pSIQ)U8_}e<= z)yKO062TGCxe*Q)GK|~tt-N_{vBNprEWS5KBgsP*o?IHpwGd0FhX?$m!*sP?V-ZpD zM!&|B%XAfn+8^q<}z;yRiw^(MKZuz2esBzsK#!dTXS&9Xmf{Ez2eL7qd13+i~l)!+GCkWaN9~i zEM441KJ+D9;VHHdZIu9}A0Hm$$@TZbcPD?w&*gqv!{P2Fgt{KDl1yM}Uo#D6E zSjzXml%6}abX^Qc$l-{`jp^Zz01mK-x|72@C}ejMq<0+i_RgK-9ytZY>p);UR{N~= zFY}^ivW9@fw%1VFz;{EkmR9OsNqlkCB}kol0eZ8v+Hsz|GkgYY{@iV*IpDGwQN?uL z`#pj8+1kuDL6!1Sag9+rH`zU3o+(k&$Mi03DqQXE?_weHB(M8Yp>JwJJ!{NX9~zF1 z?xR;%ncZfzHD6~5%{iJ4@mlw5yZo7J|LH2xP&3c$#u?CMKB<<*K&aXM&QHKRYu+L7 zz1#*~{CpK5Rn1VEJNi-gcWcu<{sw8a=NDhSp3O87#C^@@HL}?53l}~po{XA;e?8C% z$!x90Rq@O&fck6cL_k-oQ0c_Af*TVfCG+$^kBm`pBaN!1;%Ez=i+YF zh^SsuK_XSlk*o-k@p{R|N}!4{3yu{jjYm9RRK1`-O-$2I2<^GS*%gnpqsErOrGfR4 zp}!`x3Ao6kOz#L>`)%>cNDx<`Ij%Zjf7J`0pP+`st@oO_L$2%~^z6r0^z4nFf0yWN zl=G79ZCm>s+u=#f5hP||{0v^9gY3LGYjy6yo^ReTdM0g96=XV2i?w@iq}ppjUVTm(KWK* zg2j5VW+>GaYSkegpv?n?Xng$jAEEX<9u7yzq1M#)mccnxY=(cC@#OL&vE-QTByCIg zo^ws-{dsF0D%LUPUJT^4l`3et#{$~5yBmLB3|U3A(k{2Gx~`-f);NLwI^Cq-7Ky0{ za)2jy{NkFN+w@mmKynW1ybl_mLOK2T z<#;jGYWPBhV>R+C*U+ew>K)JGq4B*~p7-p8bJ;>8AxbE*) zw^Ph}so!!i5Ae*YSZ1r1?0O2q%^<5eSbQeiu1zqH`fefLz0FM?Kv8b6Hw@x)!#N_k zH8;q&Mk^r=i{n~H_kC`vSRO&7-|pFcGRB~H8*({|6n5Mz;sleQqFsjj&drBjWLEsC zh)%w6JWtz(MoS*cx#WO6Mt)wZn2IsxUZSUV4t`zA`evF2jY2jFJ%03>o)wM5@H(?Y zi}V+zZ)hGIqQZSPiIos`2c6IOr^cIlq4EBBVStdksU32(u#tIWzi;-A^W6W22E2lCPU-bBmmQT-dD)8k=-8tB^;I zMTy3mkaQqt8a{C0yc%Gd9!+)IUx|M*`Xi(1i66f!9R(}ZYfRJ8L4Xa`|AA7$eT zs4?N;{$d7ft2PvwKJY~dZNO_vddFn<(7v0$sE3P@-McjE%=Mm*o&YOnP4Pl6uD|O0 z6ZfcdkpE?YC#S}IO$|swQe1r1G&}di{0blU&iiGj;rdw+arBnIE*;ZpOjtxp+XxTu z8G6nwN6U@j?ZL_w%Zgunuh6|MjaVag)vFK^1l=07=2tP$X$)?gy1xb|P+6&LCDzg0 zC}b+WDRh$JxLsdDyH>kY;o1I=R~@9e$qUDNzb(F2|~N-pa(yCCpR^cWK3W`7W3o;Hx9k3i^mJo!3xq|RxsGidcyTXDxH%@$Acv; zP?u$K*ShZq*^U5_@A&-L)S!5)1Q2 z0r3Rha20hPnng}!CrQ!ZCWekAFg3@X<#VHY2Czl3>nr-eCmSPg_wYKyNL8=TlM4;g zcK9x>zx5H8?)hz(pDT~|x*d?dxap+kt{t>{z#kwy|C&<7kf(XeYeH=^ea z^5vtXWdwd{%NmFuFS2J5jYaPJ^h*EVCSh!C^zR; z2dW64M9X6{z{+@S=06-D@#o%L0u@ zv?VarC%r#T%v!}_Q>O)4j0-%1*%QH*f3n4e_TQjtRLG>#MGDy)7WFN z!B6+rcF(g4#-LVu6CLAZsh)G_y)hccjuDJw%1c(p$d+V8?yr?Y(5K_<+!{K`j;pmD z&t_IL|A(vT*;!_~&EG*5oWYY!;Tx2nKD(+VB^OPGWL7f9e^l-Nh{T*b%E5Y%T^Dbl z7H(u~9#Sut(oaI?CyZ$x%>Y97K{!YIXFkf(Y5B-X+!E!o0fffOz6uZJPFy=f5;nO;71{_HUNURt^9p@qJhEiD)JtBk zNDJza8!c(YSd7HhQCzH(13KSjF9Vj0>-H0Aa#`UMOhK==NsKiOB7|GWmLKp+SsxNa zzkAJ>81C+IJils}-^r<(4MobnfKlZM;gOraP*;?dyQi=0yUwnq&XBC3f3BwO0afBb zT8=0p31a?aQu(i6N9$JSnc8>n(oK>8{o4Z}>XZJ%KuZIG-#!ad4BWfae7o~aN&OLF z7gFgISe`k{wI|tdO$}%K^7>&4DMWz5iB+naaDWb)8|=2t`DT_CkN_IS>qwV1F_4C5Y~Dx6C6@+(;d!4l8Usr#&ZYY8Qj8W;+06dj3w zcCfm*@9T~VB-uaOzX_i0l||qUkws8U7Z2_e|=N4>$(MpDb*N{}UlD8gf>W3>flFkJ%TCS5x+gxukAXUrxiQt_R zA9R9x>Cz9m+01_2tc-9M%AY}O*+L#~Ow@D{FHcuTw?V41%f zngdZ?bOLNqBVaZiKta{KSV@+EVHj$W{3uJ+aBNV}Gv4;rdqr?!y6Y53y);?HvswW? z3|LN*{J~(h)QEudD{i&xueTSeFMF)FT1zg|Oi!S4Lh5N-)X#+S+&S`YX#tv0w{;0y z6X4!c>hb8(Kyr-o$wg?C{XO6UZs(Xw(UU?mR>HH2KuxUj@^Bo~`7a9wAeO70eL(9A zsS|#^3ZJe>w7`3O4;81xd zWOUtTy><8R1G(8)COEeRkt%GqNy&G4=9MuNaMAPFQxR~w$EE-H(DShNH{eDR)FQTW z@=&#Y>f_cf?h996Rop8%@T4^pgL!!Ppg51w)^@u8iT)GY-CYs}5OpOF7;_-6Eca~0 z+<@pY2LdAcn1Z=PQrqq6dtx0_Drw-8q#?)Z@S4ES!QF!dbd{*Mq&GcnYLmC%a})19 z&NTa-?;=@7AP7m%VUjCixzZ;?4OdA0nqGib@8Sgp=lWUbRBSsj^(o;GQFLc%`gKv7 z3d1u$)izS}P}4lfc!Z6iQWOW+wCd$V3u)qR6*I}ei#UT&!R-l4O$g z_x21}A;a(0HoMgnY{TQaiG6v5}5_ab~Qw;R)Ol*E!N1L;4NS z1jNZ=u$IP2W380%;VrZ_Dg`YnD8ea1NPlK?-E?`6M0p7g`b#XZ-( zf)R3yi1(I{09LLP8UyGlv+_$M(s)7rYVzJD^Mo90k11KBYH*#0S;OMtvNIu@kVV)w z-NDgc#jGQq-wz~&bhJE{O;~Xw_}s?6W^nLgzWOA|X!=?eFrBZ}s}-BdiEFDp@=}MQ&kp zQs91mt(};;*iA3|7q_S&Vwrs)l!=G<=f4SUC1+Q2mLCbJBjmdaKck)2my z<&?Wv{I#5Ae|;16gMwoZA70+DmV^g+Nl=4hgjN@qV-`fv=;zCo`7N?zw|dpbj$%5y z#-~TOZZkL5ES2X@S|X-_LMXLwimDibo%vYg!){0QcJW zIhdSy%t2p*_SoQ&9@tJ6^NSB#T?X9+0#7aP)t*W4@{Epdj-48&=}-JhWhJuFVd_c? zA8oY^;sSi#V-gORXWxMqQcCQ)j2yPz5Ua%6*J(dn!#*$$3sDP(p=x`SpbXU@v zHM^ylbwLMvypG6|T&kA1x#ohkwI9|L`i#D1NtaD;%Ka%;r~7h5Z0qn1ovv47hMN2z z=z!QCfQiiM#=D%4zN_+KQ3-DrPO{Kl26&3TPYFu)SYRm^cjx?$HTE4>!qu>fTa$eSSjBNYE<-SJT_4%n5VTxG^o1)UPzvymO}EsV`f5q3Y&@blvNbxfG66W%^VnIgd}mf~&)+{#0%;!QV^7N;po4{F$WxvpsSeMi(ZNu%x}r;ED{O>N>!(+93Ag zXB0YzEs$i-i#gZpr;hI^>zK8XMDQBS3P~pe-Lo6d&D>z=-!hAdV_b!JP$rfU;U;Iq zZIVJ?1_v!yu3gYUok*ZFbRtYRqP&KAfi-}gIPPHFD_qi13ml7%qmMi}wk*92qSf^N zg9H;TuE@F!T@Quz`L%S7ytnX-P9#{u#ydFVq<4$= z8uidW)s>cwpNh-wl4By_$Taeu2D&}VcK7Vby%X*AcILF!UB^|ifOoluYt+u`P~YXl zTjv#U16T1<_k`ye0JiU&8|@wG_#WJCExAQYDY>oay;tdsh(Bqpgv2)Gx$~LD53(<} zY#5$O@Pm;+ANS8^Pf;Pk#84w*k2G7Aj-1xw$Zp6OtnAqPl23nmvVCsZQw^Hk;71Ek zFg#oI%(~#nf;4pR#5RBpFF71zP^zoig3IjpWw$Jbx0(0j*;QtzeqfEU^V?od>gB7pzlaHj znw~b~@3*O!7Zh0#E0wNKJ4q>P@oZ;gAs1u-b+3pfUuR9fd9BaW&^I=CoE*3dkgqv6 zZ6`l$w4nYK=3?v?LI4xA|V!HJ%jft`D)>Yo*yAKB=pG5zFd)=%*PAq97>0?nQBrP()d_04im zY&2plQutW0`xLuV574hDxuLy){Rp0-4fz7*6zctuKi-jyYP<$fx3& zK0}uo6_^&|_HX`VRp7eHEY-i!vWk+=N1P(q;p(MSlo1NGSbGv5R|#qO-ZXM3yPOP+IStMn7rd|L!YSZfAIxy<35?fS)-_WWfUW|)b$_RewW)_vl2&5j3ksI`1Y+%07h>8_?D9>eg>oi$ zpjEZLZ%V!<&D-D~f!F{~cr^DXC%L_Tyu~4ve(d;hJw+f|N#T7diAq6yl@A0P!>mkx zg1Q(VzR{K-s&Ji+?H=D5iH^t0puxG*+o{$&Sk)yKp4^%ss)P*BNLVP29cB|^R+hUh z*R!jT>Pz!J-zCQUydS*g!U#kPRg-aRB*i#K-0{&Md1)JCE{NN4U@@~1;@c!OF4G&& zbF%W+%%_XY6gsbeA09qC;BQo=wmYj7KcBoI2q-CD4{w=?DeW}CWulf^igB)3x2lYO=4L4IZchw2BJV-T)Z@`s-P|##k;bk z&}(C+HZhGWRV8uhCL2boH|rak5g0;ezTiF(57Y7GHk7LE{3!1%?I7;T4hrkUe*ucL zL|s^JXJazWziS=io#(*ppMIOaw}m#ov8h?(lqca^|B!ItgYO6%6m9w0W`j8C*hz-u z!MrcB%=~V4N;>pwuKoX9{Nod?1ewQU=+****<>}n@!m)M&O$%M#Zhhqs-yrXA_=zz z<($`8WCMPa=nd4l>8D55u$MUqx<=s~qPKonH+!Dd)rfIHBjtuhw;xKnJHJb$?Pe3e z^}v$^x_f3pI$64+4`#TV6HH1#HIBrsIn`Jn^1?=)TTCa27^|o7UD>GYSI}n6&+yizE))#;x z)~f$04;{{W`Whd`+IKe_FHt8W>cRE%n!w$Y@n3c0H->Yrx8Cdg#lT$Qr}|jdEk#A= z$tu7@I6!Hw6=|Ej71wcVIJeLSUg2$71kKU(2P8Yi%|cps-Ph8QRD74tqRUM%djP_B z#eaE$F1cx?+dt}Hu0EIUz_#!cdMT;;qh40Uq6 ztGgaw6>_E&T^2<)pHDY8ZXf=v!L+cgYj_ zzJWv7*6>UK4!Z|GzNzqh*gmd&h$VQK``gdDGIsGM6m*Q31RM+9!si)AX-V?Sw#UIr2Yxy1^NBUvD6{nMX zhcU{r`>|zfs}UxeU^YDt@bZp#L>zxIy2UdKXwj5tkBpr!-`I?;o$u4y9>Vnlq}Yyc zx}-jCg{KMPk}Z}4G%}?xit760Uj%G)UB#J^w%Q&JSwLILJ=9{hq7&WYYm~@-;x1lk zZNH$te`sh=h4bTNwAS;fmr1QMJCS)@q z{p|O67I0m*ocmB_PhE8`YxA_&JM*^UY&zF(*Y?j2P)e4q?uAwx-4fy@!@jgs?1jV* zCzjXelwY2b?>@4KlQnP-w}z3J-p)h1;>9+zN;4~!jedNnSTnAB_Dp;%{MWRz@}C(7ek@Q zKTRLzXJ$T`5*2@G!%P;6S&j@1t@%rxU++be4-Y5}kNqW7S$v(#M*uksOX^g$eM4>< z@(M@n&Z)tGUti&%?UwSR(F?Mg*Fp%)`2=`1q_~jFIm}Si{q(Jplp348tV|ZKot_Pa zu8>i&1+8xx6pL$--_v5P@}*SPa-4;iirB}QNOLjNL1%lsVU8(@W1vsPjDpLrzg8d? zP6z&@A_`TLQRz>Cu3N3A(e+pT`2@~Ga=!!VwR54EbBVW*M{@yecU*$P#Qdb{Nei-g zhEW=`V3}U?eu_0d1v+>U4!N16wD@{XBfcGGcHWOY`y%l zQdR8z&I&E_73J-*ODQG1c8!lxjVPr&Cb8VS>v&`oqb`WM%;^0QB;5Lwwjr7uyLN1Z zfcy*1{c?xXPZP3+GuBlGB_BTUs+kz|a8P|WUwrmy@g1+2@nIw@|44~jzdiR?6^rn* ze;ZBalz{nC+G(S4h?~LuoOFSarg}i+Zo+zGe>z6B`i{?UzQoB#JPp||&f;mLyYdX* zMGz%{-d-s(-_PeQj-#`DbPdXV=6Bkk4%{ZX96g)SeM{#WDbsNmpX1rOMO)@B_;_@) zx&5$uEEaGs(epjjY^J~FmPsRTYxzo^(l2uBAv(|hyu$2X6#fH!?XO)lK)ShOUdHzW z@tXGb$|d4h*c7ui#Z-c~+OAKe<<$mG3Cp*)0&K5Z7JJ$pkJWEp|0Ix{J(wOY`lE&? zWr7VfX^PeIey3%1IMAvRQ+6ViNHZs_j31si@O)|4V2swLbG`7l`LO%1aeYZLMWs?k zX;#qds2w{#tM~C|cewEzVp{PSnbn=aObRB+;m3Mp$*RL$xZr9ePb_3 z8(~4Z+*j_<>L$NbdA%#Hx;5U%&c9tkon@MuUkYg(3DJRFp7|m)u9I2c#QP0>+h;X1 z^}qWIhTV+$6qjoToXOG1{*hIz^6#5fj`PGUnMF7GsQ0%zT07RQ4b)$X(p!U3S|n9gS3G0_pCr77HePeY%#N zP5tjTPZ3wd|0W!ulbAjMd{X3iTpVo!@*XOMJG0#3$5zsQUR-|L;W)Z(b~|H~mY-f@ zwRs?^`=>a&R|{#kWYk^@Nr@InF%olN~YUBWmcTC}qSuN)Sp;FF7e=M+QEMv*>zj#^xK+vem_6D{_S9MLX;n_Xr*)=L9bRI6H^@{NnEN zspIs+GOXHcER}p`$R)NV59oX=Tus3Tq)X!BQO!Qf=s8)fXu0UTP3msbv(19uv1D9j zoGr&J!@K>3oBzXUn@63;TJa;-cfE#f_6zo6!IEcwsS|AyOyF_qW9owz3Q4PFS78x& z>P6?Zu>_EY?Tv3`UY%-JJ7_}u)~PeS2v%l%GjFr&5SPkvo$9mKOffHEYY5D|%x^md z#X3vu@Y#;-nZ|hVJsq_^X{tW*c}mWlC3N18qxk0Psvr|B*^gtE16*x3i{taBizQo= zkU0eJPBTiUVQJDt^*SaGBA$B^mv)uw8Dp6Wv=*#u&{!1nbaK=fsxm`0fM^laPt`jR z!N_1EXxBT-Z|-8D8|v^vHUJ!T-E#W1?}#KQ5?oBsSZ3=5=?frDl zQaiO~?}#kFQRZAYi}-lOXkNj_*;bR#Ei*|sviR9`a;!_m6fdaHk(L|5H`1<2_G;OKGO6v? z3}PI}OQjcb;p~>m88&bB3!Q!P@EYO_H9&_7f2kPO$(jFIC?_bZQ@-C$ZeHsf&~w#Z z6cKL1j46d>w_{F-8L+H?l>Bi@A{y)nNr6AiC>?Rm@nZz|<-l+YVap?_L>rlVUf@pQjZN_y+Y?kl^7R$p9YXB`tE?cX+jZS732?eWjDBNIH z`{>~nMBg(IQA%mqs4Ryz=`f`{6r)L{NG+AC{#BX&f1B9oOvj4eO zKSr{TY!_J0+5N*iBO=KGY>ODW+z^tqX2+}s4VsF`zx&&oozbW>5+FLnFPmJzf*a8> z6_i?ThmX4A^9Cs7L*4?%X%Ty&sJnM;n#%t$6_A8u6Uhp3hc^P}7{u5sXdMzqbp0+; zM0qF7`s5@sc8Z@iKmjr+9`vd$*4uvDG+IQ`v2pF_X59cLO~y%^2e2QWo1F3o;GK}A z?IN#}A{66y<-Vdm#q<)R`Til1QE+>mz@y4wmR%wkPoeT6Os3u9@3&H-?ZIEvm8=Tr zydHq-+Q_UwfaAQ}wH{B%WEVhV-KTus?ID=D=f&B9eg)UV>GXVF=hH-@4!2hbpywfK zZBBF8Hn)$8~ADsGN*=}6FtlSG01!qtS@c4q07WT zz={8*RA|hkwu8m*y#CV>QJ5rpW7e<{2u!59D*GI1}W2QS!DxDM{mp?Kis+0th;py>Ymn&d}_$Pa~H+ z@e>*x2@p?w!}B>hSh6-?F)kO zy)h1isxv;lVO_S>GlHJNxvMkdhN7zm43PSkw_Pc}|y>v6zZ9>@&El0wXca>L|sEs@`GD@Dk`t4@zKIUqu3GcIS8J zWz69{cDz%jRG%HTePcsu>+0lVM+XktdOBXpJ0&HM%d*U=bU5gAmWE>~8>m~WVz>SD zf4sgv7V8r79+J(_G_H|=L2gGXdaf6_v@@w2c3^oqWPMowM$u8N76l)^K>RCog8?`Ur27!p87nE1DVnq{STg zxDNC%C7-r#2(Eic=TfRG!>RV2=tcc^b#kERju%w1v?8MDBsT>fVspli1}r0GHyEVM zp*=UockNC+{x#UJr>XfU@W2aSwDE86>h8WV16B9joz2c6I4Dxa9M_qYYNv!ou&4?= zY^V|_(WscCXjFb+_946yj)d%+%KkcxFcyIls}()4Ol6g;qDyOU#2cHZ=N|uH)as(+ zylabuP^T*861fU%;x_?MO>rL~7%j7u!q0dRz80je15?Sr5b44hsV$XznN8!6u{7Sj zhU%we$nqz(_(69^?@Ny3hjf#Ss%syKF^qJAOfKzG~BgkNk^3x_*%)lpJG zTUvTXfpdxgY?13I2SKfRFDn8$LY(mA@!8C=9nVq!ca;q8t}*fJW>={Au{oU?l#AeD z-yztU7rF(h9@cp+rwPU$L(azix2PP!qVW5K&brkI^QCduq1Cu+-If#pY!RTpWqV&I zCK3nqhy};NMeT2y>Dh=Q1~WeR$)RtvJ+jCN-r^68pZL0%Sz^=Vyg0rHB>Eh( zxSQ^Ws)3FCLLJrYLDvNdAl{h&_5)Dsl@B?R*Bup-_ZtxvX8sq8H>W7ev&~t@2i)UK z@SogntnH4@)jJ|jU)Z?yx#m@}gyin#ZA5l^Pya-ot<^bsUT;_V9`7Q6)`Z8$0ikY^ ztqHk$(Z^>0V6vFmQ};vmb9djXl%Amu-`F_tX|);jEK>5mZ3`z z4@s+6*GiLjecIaCACorT%CpB|I(z%3cgys+0)Y1)W=y=WDln4YzOQ!`7|_^$O>MJH zHUTpYB8tPTbx+gqisxJ-z@z&7vHfY5JlL( z|3U`Bd=E%^nLj#^J;CtI&UJd=9l6d{xz(VZmhaLt$^cnh7Cp|G*JUunLb!liP{JpC zMsYrCikX*kzlMcfTX4uKv%_4dL_<?@8kE2H{ut8s}W=B4j$I! zPNN-9oV1wctge|ons;;uIE=q8he1oNgoT=Gsy%xAPJAx0*QHLmVr+Aw1Q-qym$q2@ z{*YQA?PAeH!1RU(1y?_GzcQ}4PEsa`eX9kzk|}^i_+mFtstMl`be(TT;|0mnFcjIo z7FADCG_KBJO+8IZXHPKeOF`I}2+}a&7+!e;LFB<7ihEZV1~O;@#chdVnZlUlDAW|! zeNm<5F^pzgL5Qlm#R1;UxB;ynnE1~ts6C^;-%I1f@;v{(RlBppx?9BEj8ETxbplU7 z04&*tgt$oMo16NM8dW39ruaWlrgn8$EwLsikv5-isxf?`%zX8|bFFbTxc!TgIqrvf zS$6IjxwVfVaUnmxfvzE(S`~|DMcgNL3j;mUr$84DUNqy~Bd(n+ z{oJCIjhWDHjeVr#Q~cc{%O_+x@}2GmCtgZSP<)Qy&-bsM=Hfei1X;?Z*jGJMknJU`0>*(QrWW72Z17-`SL)&1Ds@M_bI zx=z0CXjL>@i?NO=n#91JeCNa%OexBfz?n3Ch*d{Ssc8hYA+8$La1R_E`bT)C9Y`lR zWu6++5bH*#FG3{|l&^8O$nbPG2~nCh^n1;pI|Td;Fg5$;Q}>HOX9#77i}rkktoZAN z?+WkV1z7=DBc_;mJyYv+`Fe2by<`&j6Y*_-L%YlE4?ir>|Lo&&QyMiBC)eODb@Vr< z5bbS}7?a5N8d=>_JjYhnfXN)o9&2$hTnv)|jN|vX{c|Q2=(XH zn|-CfGj!!oLH03lxKSuEC_XI_BPSv*bbosVZPU3_n>S6Cqcl{KGd`gm8MSu{T8EYsI0W3iY-wVuM>a-$(N zBF`13lio`0#q%|ULpiht5DuatuKD<0Dk&^cZkD3{Ho)P30fRt%zoP^mLs_oc6qe0s5d=kES`#qU9Qae2A^v)#?rJ%8i5uW=1P z4;@3CBMe=|BWdW}h%HREBXHen!fAWh7^M5ZZA zv+CYo2PupIyN(63xOFU`OMZp%y;TB8bRJJbZtU4#MK+iU+`)(N1~o@H+>%?Br{h zghmKz()2baV_0ht+z@wXS_3>*3$tXA*eW%Bq%6%Rg#Z8`07*naR5t3YEsd@((~zdg zS-g@m3UjUF3>9fSY8Wzbqt;co?B@gF*k1=;^mUnmb?pZntT$)F%^}dLZAf)q4d)q{ zkj?o#j*yMA#wt5DZ*1dcOpont?WeJA+x?82WsPsXrLN`Ow|?$t?#6X5ZXUPY+hj}K za^4)>tM7I!pSRgBZD;IKr;nvdthrh@^N3sOm$D_k zxo7#Y@iEy$w#pxhPu-Gh#yeiN#&@s2$M&}NmkFEJJD)MjaoaWin7(Dr-8RiV&u3ZN zE%nW_#ER=UT4z7oKg2oPwQch`pIh_ITy5X|jCXuYKHJaurTih=j&B){TrHbma(x?o+s=L4HQ%f|7E8;-X*=7^ z_AM3^1nzv?e zZnd+`{u(iJHfE`t=Z#s~HKyZez4G=yV~)vM-!{!P%a^+LGxuUT*B-as+vYq3;BRr& z#k9C?|M0*5)$06Wz54W5zh1w%`}*YZ*(1K0yM4l+%zXD`bN)R(!T5VD=O1%n`4dY0 zV>13-uJArY#zWrKW3Km3*#jHzgb-Q&Zloh(_UhIPOI^8jz;hRWUGwUO|5yBfh42-i zm*6kK^J|-T==@d9`R%NI(bg8RsVM-5!&bRJ@y93xY9o}SV;~@L!Md@TmnO?r z^1O){TGMHKzq#1Em>KjOFi9I@nN|I)Z?5VUMl&q&7u|?PX*sNn8r`{|qy`5En3sbB z=FP{^#JU#Xre=`){Iqk8jc%XA0gtzk<1`_dNutRE87JAfa*Xf~xrAEz{vBuC-5KmE z(nj4FA4E)Wn0e(JrwKiEMl&8{)q*2Pxe{$UHd#A$v$cal#$VL)%_+fE9aP0O_cr4b z)R2w++YgTO=DH262e2flZ$r>0!a&@NQjbA$@LsQlMx~qhb~3lz96;vc%8xs!M#35# z--+E^tXC#NQ#=L=gh#<}01@Tf0&V#D&keK!6^@b=}^ z?z7idyHD=!c6{q74@c4L!;fQQ#horvV`H(l%*PE`gs%^+A;JV0!G{@Z`iR zs~9>5$;f)^CJ$-HC)w4E#N)?sjA1lKu?I>Zor>tl=gD5E0PHrL)(XC;s>_wm8uZ0F))yqHvu^H0BgUY6t)W?uBxv@#ekr zv-|fi&QI$)!zciH3lodoufM+g>gS(tKYsD*)oo66$+~|<}&j`W&t?!Xjf($mP$f#Y}Xz%Ntb)$=2I%Y&@TFC0$Iv|=1 zpTh*fflqu~rgtZVf=vvqFftdr3LlL1>ur1moDkLTZDVuLIkI&sHP+XjBznva$4MUizZRmkKr_O~Vi$FUP1;}c5pQohSmLRB#Q#;r~b#@F5i zo>^^zONvGVE(IJp2agGC1DD@CY^Vr=9%F4Q4()5-$8CA`z?Z|5d`tcVZZ(n@PpKa=(9eQ^W!l!@NH#5qGFqpcpmN?G)ast5_@Q6={DzN>*LxA9sQWId-AP6 zL#Pr8!3u0fsYk7bLR3LT5s9K#_ZHm{8;faFycZp%%` z0T@%RnFgme6{%jj^;#Gj145;-_KchwQ;Aetl6c$iBcUm}eWWE3iXv1PR$h^WPh{5q zSa0YfD5t}J!^2`Qp=RA{RMF8#STRWpM;hm)iQ0HDt-6+p zFb>6*D0aDK)sMMj z7I2p(JjI=wWbS6PJx|;v_Yq40x)2En(eN_@s1sRECg=#PhwMVbS#M9De)riQJwDq# z+436>Znh_1y!!h7|6bi*^6L&fr`d=+WvhCWtlgH(e0l5RNzw=O#$Y{iy=J!AD|8Aa z^fV!^rlZbznN+7H?6{h%F+E@ETfXF9&c)4K z-^OQS=6=c3{u|@`ZR56o2s87|*dDjO`{uDqS%0ivOFxaDd3wCWw%mTH z>$$pb>vzVseed_yDPQubv(4C&9As_NytBT?bHDVXZnkY-&3nvt=9tGbcFF7fAx__1 zfByAq^}Xlo)knYHt$z5yYW45_mw&PP_x}F7tDk+eS-rk~xqk8L?&Rv~hL7fLpI)3_ zynBDQ`97D!KjO0R54i692^Ww2+UAqr;bH5CxOzr8A3@8f_w$A^zIk_%u;>US*E4IM z>}JBlTXNy=?fSQO{U&c7?!IERe$6-aF8OV&$kx~B{3ACSK>~{EVbeR0H@vx+)KA?& zKmbsgoPMriD7rksJ(Rk56}v_NXi-Xe}cv`yvsoB5d?F z)@0?uIHswKh<$znGpDx|cXG8TU_Ia2#{#Rp09PXqy ze$B0MM+3^^-iN&~oZfD4zQA+k5_gC>-_pWh~IR z&L**@BCeB)ClMO6dElS9ado8nH$T8bXoL#p7ET=-eRXmL()PoA@a@TbQ;&`7Ht+Hi z2OOOHvzFmVMt}zW*a7-l1XA-*lS9^9mRaH$_|C1dBRlcln@{{1Yg9g!5?j&{Q1Kub z{!1o4hE{+9%B}^LeI8P}=PHys-B;;h4_`YnittD`ic_H!PPgdYaLxr2v>|3>O>^&} zd70~If7cq67O8!RVp^1JjZOL_-@UPxgLod|EUB;|O(js2Wzb2o*d{*t_a0){u5zPD z(h3G0SlxClD=3dG2q;Yq2fizn5Y$WE;S5UBC=p#aqIXiS30V`J0J=Sx!3er!Y-Pwd z-;5IH#pj(X$;N?;kfDFObhWv@zkL4WV)en<1-Co1()l`Z;^do&yga;oy?*h}e{uQo z>z9`|wM!~$GZ|0NiO)#fcPU|ZKzv)H6g7R$X#z(xL1R>+FatSijIJiKqm7Sj0?@9$ zfj{b_b2aYYn8d8;RMb?a%qp1}1T(y}`wA&Wg(-sGKZC6N5q(}t_uPhJB(~az5~UW& zS9SJHof~kS4>5@5e;otn5%c=SGs6mPh@J1b%0_{Ao3)R-ws1a0WO=+kOb&7ky{}#S z>xRZp`h)|#qGxuj5a>>iEYI)krb79M*EnU6(1BL+EyGbIH`4!HU@-df-g6->o_7)FP49^`W0WB?`lo-iSicaUBYPJ}A!h z#8_+2`dElW71Kc=m!#Q*k`21S5U7H{;Z1C1+xrSk?bkX~I3Z}IYXj_l?1bURmDC!2 z8A0G$mK)|S$V5^OrQNs0?XvOzs0T2SS{>LJGcN@y>ndbV9iyo*1KSii9wpt&dlDKZ zwBqQpCul@_8*K#*Sq6eFm?r_kk8KRgaV%m*xMhzyQ3tCauOp#6U{kyO)BsW&{Z>_Y zb&+F0vKOpfgbwtvx6i&SFyU31JqNhsTvmL`cEFX)p~z$lw|TyivI=vLF_84-HnSLV zHt^+=-`4f??EUXNJNxeGsee^zyZZSTx1U`8^yhp7xQdpI_=w z!ADm&gdP?ZJK*H8cLLWS9k!W;PB+5!r)z~Jb6UGuRSVUD8U(3HUf1+3d0YpNZBSwo z+IoG)-^=>o$=`l-x_zYRYJ2*t*I!-!`R?v|yWX5?FN+Zoe=Z;l29|X47zUflG_PMu zB&%vM7F&4Y&o|FSBm}mdU*)RUU6cJ}Qg7;Gn9V4@P+_U;P#CfPj5#%6*zq|)8Fgfq z$Y7lyMHOA)%73VoW-6wJQk5@y%pz~s{+1bWE?AYvnvRWzA9BdGh;K(}G01Vn3)$&< z^XT+@?>#;JW1q6~XA5}#`|`iPy}SIFzXpt1epNTYkMlWBB{7iEXUKcAMDTd%Tn(o6m`Ztu{Vv>S^8;WuvGmbc`&p;` zEbDoM13Sx>w$5jL+cl@U#&o~L%yY*}o7T6y=QH-0Y>umacQ4*?w&4HQdG2_&Yn#T;ddJ;no0i#s8@tBI@lE3Z*etQjIOljehPGMy=(&AkmVB*iuI0S_ zDepGRnpfS-;e5t9@7D6R{ic{^TyxmB+;RJES#!=h$K4v|e75az9J5~grESk=`<5NERn|N` zZrt22`5N2uWAm2TFJn;FZRSw+P+cD4Sju~TtZ$#~qvvzqc1u~$m-TAA{oIy59@4kG zd5`roujBT4#p6=H`o|w4d1F7S|Nejc->&|HzyGhUe)5A4R-b+KoAno8-=5s>?)bjU z$rA|P=f24IxCZ?_Zshy{_@8VxC%+HX@35*qF$=wWgKM-Bs#G=nMOVQ10<<@%=%;CNz@j<#Ipz2;zK*tyI#uWD=zrUN z$>j)jYz>bvjWjpUIyfZy314l8nKB7zaa1u%qD1EX4GsjQrHhZ68!MwY)`^B#TGr%M zcUziQWVwn5#xXEH?WUIb!Awm#8r%gPEZH^XT)TRgE2#t{z7CY&h}KU#3q8DPl2Doa z8EYB)njZp=&^7PPO7X%;V3aLpIEXmT#@)^&t2F$2Gj4v|Kot`gqhoK3=Vqu{Eh68? zly|k2K>S+33R^fWB<31(xjW9zQ2~yc-#*jGLt2!>zd`Id%18Wb=9JAIDKq~LIlN(< z0Lr3xFy!Apn$XE-eXPZB8~U6O?zZ=5_p7__@|Opnp@h&h%Du-fT-&SL-LJoTb^r0p zOaJDU2)C*n)L8cl(hpx_V(^IpbU?*kvFS@bu;EL|h!cVJu0r9WxC1Fe@x5Q;2z*+4 zPdrJ(yuFF;jfHZfCw(P~3Vy_0G)2tVyY<5@qrKPtsNphooXS!_Wteb6cV`$=?BYqM zgqjFK5}m4;vMs%arUX7aF2RC2h{o|$&ZO)pL#rA7Ig8IU@dIBD?Q$u4iqD#9AdNRrKm|TZlY{Z~8 znuKSb#qaSKsf5jeKtPtG>f&`-jK5imq>HllSG)t=tWWOvHJ7&^oaT4Fn~~4zH7@F} zuXZo~#V;;@e*OA3-vssq11RTVqGEAm*^OW{tU?(FP$m_>fV$_Jb*hROO=no>PS3G% zTumX;%-s~bgM;4^yKDIyZ@w1Qu4%Y^B=qrsfRlZ_n2bD4s_=>5p!R<+PP5@S-oXhU zF_x8?ggenD-sI=Oqp|*J?LwX`{YjP>;jl1)k5m&^aF#|t1{0-49M@?PvY{cWW38rR zTM<_nwQEPHm9RD=f!NEVrJ15)T+0lXCgXMGh;Q)sI>cJDY#1b$lxCc7&8_Bd9pxB}7G@^qXC`585gBV8G8*$$(TtZc#!qKclll1}*v zdDH_oeC^9p)Fa+hg)zRok1K_B^v9fYJTb}1wsK5tye1`v3NE#;%R`SZz6rcKJ6%0} zbaM3_{-ie_K=tOi{`rr^&%e5S`PUzR@$>DAmsg$$R2hRHV@e5hQtnVihtgN| zLJwIMm4+5Xa|Qt?-f&s^3Rt}W`f!#4|Ee_MbpgbNhacmE6#{Ir8bm#duTnssxVkz6 zscfIX2o1gpIYG%ie2=-obo6Rz_=p=fhj0>FR9*z8_}0iwhmjqoonKAeb`0twZ7z+G zr52$n01>5>h0Rve+8-6KuM62hv2gFe93%82p~@m#A`sZT!+#2+hM!K<#o|M^yw|E| zZ4Rf_!x4%B=10vbx^6LGD)F)rIZ!DzT$Jx;u8uz zD`1n8cOo?~jP`gu9f)%3!9vqIO^B`IG=}mShjIEIE-oUJ$6R2Jhhj|)Mhum=Hnbv& zNKDOjX3SC*%3T&wc`eeBT5#dQEte#Q#LNEK=KP%xAOEfM(=A`y=5Jixu0Oka@shtS z>-8PqEX}nM^aiYd7<5t&rAvgF3OVebv6j<`t0oIAnTIAx6ua``(@z~6Wd*WY65Q*? z5{1pI2g2~i`^gfvZS=!`Ct~eKi)*9Xr;vOsuqhjHHTg=GeW&m2TRB@Nvhj|U+lDMQ zB}tx9qce2&N&M}9qeOP@$cxL|cYFES+FxXsePrnVxOd`c zI3dLfY`*|d3pADi1z$5=D;uhLlp0rPLyRZPkXuC=OAc3VC1jyWgpurN<*;K^gMF%w zx(Tf3ST|jEAac}xD@r{|!0}ec7W$--Xo}0Axp?r@S1NoB4f7r+vRGG~%9r@YJk*PC zyN7tSZC&#>U(0*me9q@_>zDFln5E2lx23<9e_NZzHD~iJ+EGRAp6+dJ;uTE3hg!!)-0V>aJLH*?RqG~e8d?V2q6S?Aa`=iEG{ zd2>7aZOucnnX|F>jh|(X8^845_|}VEVwBlhzO-4+XYAX?vu?>T`|8*p!ZeS)*kd?# z-5N9Zt+Q|6Et~mztZr#P+x2+aH|Mdwx#fLZn>ocb{+sM)yV+(Q&wP&C#_`-{`RsR= zi|_f2ImXla*3B_FZl2cLx6Q0?+%es3(>(2GscU)jG=A+W!<&M?$d>*S? zwprhtZM(!eU*czM+ly;?%X+TP);z5*>0#~9^B&u`UCY|O`CH%pY%|MR-aPhi<7iy_ zoAHjDd)d!+^0&Ti?Avc+yPvVjdM@5i)Hh$_?SJ$S{>kb;`8WU0>f_JyT27B?JQ8JvRk{&W;p26(u6WqyLb{@m7(rzkj&iD` z;>ss^E4`S+xvb@JZ?5aMiOQ%`XB|48+>Eg~*!EnqF+IGQNPJEen<HW;jBl&h!N7gZbMjjsLZ zavytDz*tl#IYk2-LJKTjv1HmiIgILf6rsWgMD{>6&A6 zi~S)cgxXar0=5MdD_M3|*`X0VZr~R%Rt^(Yx;i*S8nMpHPG8|3`Q${AZ#WA`9?8+C zf5{N%koXZhcoq z=oyQ2j=XHtcY{L~nj_JvJ(GZB(sZnKDO}zmL!&8>+SdsyWmTUKtrgqK2Ou2X8D% zN?3(wK4~$nQFQpP{6jdFjXsG<1!m(zPUE*&lzZgaM@3rO@=y+}MuH?PSBt(pm*!yw zW4#T%ODF)v#a{6#%rSy-RhI!WFaokk)ZtSQANJ~1RY;CWYy&#yR2(9VQ0rPlAh5Y>ZS`jKO8Z!DlCWBQ;+o3P_xBU=%M+8Y+bv%rmvNjaZ3Kp%_c@R}x>he%L^(nU6q7S8I)zZAxxXIk(E9NDSri`j= zf<3;{jDTSZ03q`A8K21F56nD$bb7-#fq4k*SsJ`HoBaLK-Ri~b?aROV=`TLsy}IE; zr2dLc!rA)Ef`E?qM&U2^9Nk(6A^-p&07*naRF{bwPt-xMNOzb!qVxjH4KlWd;=nps z*BqbWbZyYYf*boY8JA_{Ba!<-?q1t^EY8q|K{Zg2j56@}iolID&I~EQOvhLw?Iay> zrug_X!F?MJVxMuFlvz0|_tu&dg3p%(d2S$g{?GoAj}OWWMRVU)eL3*K_XwPuaUHYnEMETIcQ_H-#cXp;Trmgp_0{1Wbd?u>7YIrhJN>v$+w zetfUB<{Wd(%UXM%{qO&r|HP>P=)i#GpgCJ03LW{rmirD#4X!OHmeD~DpF}n`mvwML zZSvu*BEG__F(~~|6mz+K``t(S4dAnHKYsN1==%2d{;xlK^*5KFe)^d=Y0iP6bF9ST zxeu9+g2U2hd67ux9PlgofrR5zsE9fJoR0kRkvbRIpgNQxUKkgzQ?VY>X3De zE#u-UZ(rpDw7LFWQ<@Cj_7{FcZb_HUA-U;Wqb z+OHhN!&m<+_bMy4T+EBz#>%ToZ{?>Q4`G5M~{`%+}7f+9V z@#W3Q_1(38>hSiF%-_-9ul(Rwzxd7XogIDj$<52-@829B{Xp;Oe(&<~=sWtz=8x`9 z?%tJ)N2mOaP`$vFhw;hlm3x0gGXi|-Mw**Qewm2BwX46or8jf$?_cPq`kBJ=o4ktn zOGW%b@>c@i`lT|r@p{8l_&k8dg_96MFAz9LpjQX>?H6d8%RgU28toTr27spyY1GIy z(EynU^`Zev3kW#8Ccp+x?ykjQeq^+S0Uz&;7;z*9AnG^Q+uWkmcS;4yb;B`Z>@@J6^%zdq zAob-XSo~lqF~U7|>GMjD zddQUGJ6}4JIzd6rJ=iiX$Ly;K7EFv4+FpHzwlOoJo=)$Xg^0YgT#|*Lb#KAeI?%sb8 zOF!_UPl!GKrG7f)NY}=15C+C>>Q8m%Uz{C(`2M@z0-wIRy1U}p7Ict+BUpya5YSVC zd^umljs&QNzAm~IMrKPS4pZH~LdT?rRN+zKTOqr0nav;DXaOY4oGL=~oZ}l@!Vn~u}M0GjgSm^Y9v?H1QBxPgx~2 zflU+a<}*}mDIoST*C0QRSM~FaLja(-*O4N6%qHT7;`sjj>5Z;CCnuL5otz$@La1ln z{=qqF{{FkC@BQ%iAAj;se{u4YXU|^fQ%EpZ-q1Q12_{OSKt9t1k9VYQL>qgJ)OZlb z$*QfLY?U6@ofz2!6kDm5DFA!e?x!an_GSD~Rn##gK53Gz0XirQZzxPOw*UGQHbbNY zX2b-jxqUjMbwgnST70oqXQ-r8HK;ssLh(APm{_U3*6Wd#B5^@r^DULUxQb-yXyCQ; zVJBY?U6YB&Q7JKEBr=zt!t+LjM4Yo24JkGBT*rttr|kMDNI|T`@1VNq0#Gh>dZ3FJ zeE=u>QY8A;p^tDysrAmfhh`{nj5EA>QTVVM-UEUNjKriXmr6eYSQ>ji=U7PY)z#pK zNH!Yrw-Sef)14f2%E}HDTb{aVs=CV;M*5GymzacLsX3(pm*#BAPhV2tdNjmB?C?s& z_eFCeu{jUjrSOGnjA{#(Nc8SuN@cDROT)Q&dBfe|*^BGj(_g-Gar^P3i{lHqkW9tC zzVM zWr-$2?RK%sRQmz~U*osn@JMJV90>je%U6_Wa_?19@juRe5dmbqi^$$k4b6mD`6nO^;q-zb&jM(m zhI_&wF%I=h1*DcD0Y`5Vsr(gnIIv|qYX;JtCZ3zcuZf^i8)CMyw^O39QLIS|AN?T; z7;q|6@=J__HjBS`Vm&B87D&9(WOLZwDoOP57&?FSb0oJq$Mn-sM9g(de^1ue7fnUt zM5=?=5fZZ^A)I(h&Am|&1cc7|bJ1msR^JA;Z5Ky=Tap93uPj_j?22cV>+) zy`8&u*vdxyuB+kYQKb5LQ!e8QfL+707(Nxj0M&uBRbyRjwuBrsF}b<4$;DAH$L-dX zpTBQOQ2$x_Z4FopVoZ`IOj%r5$0Bv)h+wisPDAEZXK44t8}RV*(5QM=z)5QXygywc zmO^5I{NGDphju5e67zE6T^9|Cgo*LQ=ZSddnGxRn{gU8O>%ijU(?-cD<`!T}Y+wly zRj|ir7;=8i?>bz&Y*Na^7-F7gd(Slz2SdlE4o((GUpDj<#CUa}!-*aLyM^&J=A`D$AoJq=9tUuSNkvFjN7y|3!_{K!|?L*vTY*QT6}w|aV7 z<&3|MtoGn(>%8{J%e&WCUfUJBm(}*`@RnzfT{-Hzvid__yN-)pF^p*|Hj*66+rGNa z_ja8Zx9=MZ@--gj^ihV)vM0_x+pVEAAnE{Z+U6 zs;>6*583~4)m*>`9r$OR%~T&;#jd@ z+G>ZM@tgYMAJU^+d5YchRbKoW(~3pE>Q=kjR#sf?SAAoB2#c)x_FsjouKnt-GJ51~ zD=*`AuwKif6(8Z$99SHV?HJ zhLSiGKNC9`ZpVd0Vk^On(MAl*$gN@;9$^!{y$B;Yb=%%d7BOEN6=uNlf)Zj`5`+i7 z8D{vJf$_3)A^OCKd@S?Fwc!#D=#8T{spHG*i^UZ#{35~w0!)OYVxM?u_H>A(XHHygx``DOrc1FR!)$aA#^jV!k$@w0G2@2VQ(Hz=@wJ%xGr zE4$Zh5B0-fiw{?R6(bo$z-;P%vcLgRMPs$2Lh6Bg>A@A2sI1WeTmIYEmbI7E>*7U? zDJGgGcSAXdS&Xg+07-1@v?!PWTR9uA98Ri4#a=R!kQwuc(!BUmLxz*d!21~p%{>^8 zbrc1%c?Af>&6E=~AbvZ-&n3Z2&Z~Tg?N1i=1u2dvIu8+zQ-(B8otty@Z@b_>G21h! zgy3XR0l>HAu9@-T@uxyk7pYG5H-W#U-TY0&a1c0uKNL1f^YZfOi!Ywv{^XT_=u|$a zHDDj>bw74#BWDpQlY56H02m(IXs(Ty5D3oKXtQCF7~mcT2k&P!1fv->9CxIXhtZ&k zLuxw)Aa3g=w1KdL5eUbup<^_mB*9A#bgW=9An@Qe#CfWtPi+MFWTd2GFG5~WA6 z~IORzQ6H_l7ul+4E(r~>= zn8dZfE<8LkHLpFx!~T_2-&oZV$GEj_p( z1c7Mv!yiYNSI5u)@1H*Z>C5Mr`t%Zh`&O0Ge)DhnCtoiJby4&Lvv|UtT@h%9u%l33 zx)&e;(sm+}A7(D6jLhftXKfT%<1m;t>GRnTQ*Zb+GnRp9{5}H@@$Js~1Kz?o8coAi zz63J$g_u|sv174GEF9WID@kKmhHMDr4r?;D?Z#sLp@^1S7Qb+{KuIzi#`(*P1^Dg! z^c(|4zCn}wQ*6~{6(b>u4Z@hK? zExif+C_(1jJl307{6_z8p1gYTD`lOujEOFXR^PgSkU<(G8U9moBLS&Aa6fI z3loEYn$ZBUcrmdRDR>`7mGw0TxGsR!BMXPjeDN7f#t9*tLuBycRd|Qt8tB}|kE4+s zg>iO>={BwHaD#FYYGTgX&NWx|1Ui15>c*#9`UeUeQt-jDY&6&jcE%}IYBoT_8jq}U zT_$83<>=P{Nu<#Y<>ZDmcm!I@u_NJdP8I@LBD@q@bAOluzcuf3upFSmnG7_^`IEKr zvb82TPvT!zr0aEUK<3f)TJ!Nv2uSfszDB55Eap$W;>uxwoxH>mA9U>5(2JQb%M3o) zVd<{{Fwu~G?p}WK8^CyY>z(rtzx|EJ-#R-#*ZaS>_dovm(;wgb;^$9X9Uc{I{`q#j zT~p)%N)Ct_+Gm7>oDZ!)eDDh%3%)1NG)6#9{(cr4l<-WdE{?v3dAsRcMjIQAsQreQ z$(&zktRp($coLs~FvVlsN-0v=OCp`9c+U(DtW|8j>2r?~dkmn8KQH+<#~wd;<)FFu zg~ys{P8_4diGiUq)`8%2_L5_X`GJd4E2NA2x4!YwJAZU~a;IOC)Wev|`@gz*e)X5J zC8eI4_Uv$EsFq5&Ck6$PTmx|k_5kY^F$w1@xtR$v6A~^%pM&nvt4x0VbV)0Q7lQc3=DANKpa%r5z&C_pHOr(ithqNXa<83gBdo6ZQ_AoY?3)IM+9PPEMF#Q z!-dI~v;67xgG05`iAS9=wvuncgU3fRnhQHgi4P?REQgdcRX@+b&G{SJp&%4+A{}h! zo1;WvZFQwx=fzjI_N#8SSuyLlc>1=Ev9BIo<*Tgn`l`*!Rb6Fk|5f<<17F-K+s9Gf zVwo4y820wHS+TWQWyO`J^R=(v)qdsJ`z}}U)mOf9cU&y<6<2xtRsRt0YFqBg%2B)a z=&Qq~^2*wmuk*F9u3Vk(`|2Chs;>^&o5sc0evM(Z+2e|@e6>Tiw?$8Dzm8X~-^H_H z>!Y&T+K~>czJ7~ozmKE1y={FI&wP~?kG}GiYn87YYaCx?x8ks;eU+@f!Iih;)vmZ= z=&Ns!9j%z!MEdZtw(VDY#;d&Z_G=8tX!YHGwXZD5!?Bn>-#RbmV0G|SUGc?KPT#hU zk?k?%Xb*;Q`{Lg;ubjTv`s{q=E^f7}tbUn)-Bz3WtS|bG%hh?YmD8hZTXBr5t6k^C zSI)e;_QkBahh%Wn<{`e?6w`V8y`1^;EB)P_b3JGj2+k*ZYxVud+-GKgoc)LY%h7-G z?|yRh`0Rt@r_Vk+esXL1b;l}^XlysgU=oQZWjpSDXz0wQ77m7k3 z(|r8w_V)IPbbgap0KLhpU*geE2lFV@ZyZY?S_eJLBsaXEMHY=;VQ4BIbgm@^`oUsu zxB(H3Z@z~^nBfeGK?nt0Ur0ii`%ewjxcl~-!*SyxSg+Ttgp4!G#sMIL(u5ZD@f#bX!v$VzH38+Ku^HinRVjfaf<@P&}!(eDAsALj|AlDIKIAL&7kiEH4}7&So(Z9dcZ zmj-+OV!|4kJaKEBg286FLZ_+bs8V}l6@#WY)l>ywXisJ&GNoe(deL&W_K2eSNDxS(;F6Pv0dkpH>my-}Q2hj8406y}K44&D$;|US zfWwY2WG;@?HkUx@=a*llHzNxSk~u~^aR~#~4r0zEg$#1sO5;4S(*6^ce9Ur)4Ra?I zXAn=^f(omxtGN-(D4=`B`mgbjVjo+g@|!AwN;t8Drb(_?4t3Z5*kfNJF;gO2JuT4>W9>eK+3zgsR?*~V}Sga6CGixF*L1*#3Cyz%;w_QADp;A44tNc zMZ|%?@9%GKPM+QA*{Oc7@LLz>ddjV8>)r~RBc1a{Z#}+$_h0$$JD>dM=jT89;t79K zRIxZ5IOWz<;AxH#uktHrBU6{KiQ>=zcn*hEiB;CRC$cI}AxRhrUvN`ds$i+k2Vzpg zdQ12)_Wsv_-%Mp40Z$zWKtk6jnTSjkFfoBf39&@_!fPJ>Yf31DnW*7p4k)d?C7R$2 z-*N~*hnbnvLZUIwv{PyDMmhvpk~xluK^c(~|3^TKu7wef#y)l5Aw0HffISp-?&BmG zJEP4Kpu|20CC8SuGeDs+oFr5|8o4*x3xyKiD+C9W=jX9TvGDJJGvnq#y@a=Lf6g@BZrc{?)TrN59mYy5BxM z11;pPzm7$)A6E|LN^-p1$zk#pF`pkn@uhgezZ))D8+tV}mh zC~X6hff~HTqZVS>N|SvWi22a7=NuOC`COb>grDq6&;Dd_=bn-np)qO>TWwQUIQWVK z4U%92%e|>@xfJjOs%Mh)+@23m8Ub*rrj4LOZD305gSAWH6RREBYGP+R{uyQ> z9X0WF4_9tfO+(SLsPY-P=1v3>*;$plq#7z99`YzmhXjNK;0kf}hFQdg7ahTD05+00 z00u0DF8b_vCTh6l7z4y;JWXy?By&Q<#C0VEiF1D;gzZJ705AxTqSMKXwJ3C-;b#To zKv=}i3lW3~+IWIub?^qM2!x^ET&lBR5s zsSW8QOwp2rRQ@;+Y<14^A$T|ZjdlKmg`eOsVn8(E%Kb#h43WaOh6&ZtN~EA=BLK&6 zO)S3UB?Fc52ZQm$kz*dqkI^Khki_^GpS|xkuY**gH`N<=N|p6}yhVu3c@~m;Ir6b#IEL`u1?pitl`t8K6UT zVBh3>&(nE1+OPH$v{gSGVtLN568`Zk2Uh z9bB}^ADUNJ8~VnumoW$bCjFkP{%Tjgy?t@3{X;VB-y|=0F)PWg3Hl@(LnLp-al<2BB8T>aXA zmA?Lor{mSOaUv^E`xW<)eve!ESKivLeASnOIlnnVU)_K8zdt*A>)p?fe)+|#<0ntg zj&JT>oZjE+ecrR9cXdzn;qC2_0Hr`$zkZYV=zF?d`ho5Tzpod4pPZhYen$^XKG0eI zj+h?l&Qec3_;_aJuK@DGFxS-HG2v1w{nwkkNB38n>rLLf=fXdg{Hbj8kbf`a#5W`-Qm_Q4fj2NinO$6>g2?$62B6A`QCVlGx zkHJ!Mx1X`?JoX>FqJ01WAOJ~3K~%l$$|XP8xXH1{jv^xS4e5rH-u_tyn~%nEJN`a| zP+{?%6q1MI#oVFwML2m*6u;G>V&Pj$8G1<-?vTYKl#1<;2f8)T=czr@v6Hpzpc9;Mj7)s4$KppgLUUt48kLDYs{ z%BcenL=cNSUOkiyJS1UCaI&0V8}wAeaCUWliJHo|>Wqy1wgg0zdiHlbgS}(wo5g8-*&6f~IB!CU?g3+^6%9^B`;U*L++W z={46e55r6#?7+#D87v;-!%5gKlmfUW;{j~5_J~l#V!7;PZax>P{s1QDMCxOFIje*L zsSfZ@=4W+Y-^CGajHXrm8qHC3xE!{miTv|bm6 zML20q@UdZ2PfJG57$XXnTD9gB$SMxA<_jNc!c>>#mn(eh|NMsT2qdGG3ru~3#WVAv ziKGz8b$h_GR4(<}GdijyIG*tAPjd(e)75Ov?T3Taoc6IZexzs}L?R)Kyom&776fx1 z&N^9~kh5fz*yn(u<`EEoNQsA`4;m2LBZzKDl=(bMMLjGU+0KiQ2gNK#oq>$s6d4`m)YXv?-E8mCL?dd`$%%FH zJbO{zmu`a5Jc#4~zRf|-#B%vpNUM1E0a}6^ z)zrYrpuz}QUdJX(#8}b0KAC!6l_siR)*YqG$+jN=u zh#CiJxXb%mTh4Mb0fuN(Y$T(0$AMHP&hW~FfpwcdNxZh+vsrYbs0|bnK}2q*bUAY_ zn8-o@RMA^(*}eC;a+5W$9TaS>cjcvQC!N4G8vOlg~g_S(m}W;U?hZrfKZ3 zug+D80QORLPp{dQ_K7?J0=9$ic&{ zNWsWLCE+MY&hO#h{NsWg$e;3QI&p8KDTO}m`K|MJKlt#iKhk@pC;Ca%`=>9j{`~gU z?N9hAw%EhYe{9wAg95$Ra}4%{$^ah(cKj0Q^_Gs@>uhy(Tt+*NEO7&ty>lO)C=bl9 z1(U#FlEXv78bh4#m)m(tOuR-?APtqk*ker&H&aHE_jK5`qg@cYvc`NG@ifsJlL`!Ga+~ncw*)ew@^HqyFPyF{dfQP@x{>}5Z3L@)!$xUKKq~U zZ?E(mj_*OfFR%sriNU0f4bsF_M{}|yBc+e6ePYgdO(RN3g!7)yEr3XIhg|gJucc0| zPEI*C7C+1Mz;Uv3^JaOJsp=fe?QQ_0f;l|o;~|^c|1LbVd;hgr<&B}fIxn{K z+N?dg#?vuML94oUS1CRHNI88j=v73_!V3K55>3YuzhI0+LgbuwXd!`=-SH5yz>=E$duY7I@{k_c z9@BaIhcI8owb$))tA6FLkLsHHn{2-dUtapQm8bGmR$Ti%W}UxjjP0uHe4h)L)pzH$ z#jbi}uk>(&KekJI^78)Z{kM*f{)7MGFOL50fAQkz{G8todw%@v%cIj*mzR$fz`Od5 zv5)jdtp0fK>G$-a`ulp;_yfJ+`-vW2{GRwe&>hp;qPx&T5B(-D4-j+*EFX$q|9pET z|Kvg(-2C#0k>BJ!y3*g;dnqBmx%*r18Arr+#k&fnza=2LI-a+^mAK1b+9m7C~1 zAWbg(a4;A(4%|U*eidizWO;xP5jUcK#f}3%ka3&|7bdwfj(a}e1?Pc~3G+wPz@!Oj zenAj8#?!e!FUAV!g^|oW$anxlPkU{kWagEv-{9oojO~)9#xkTP#6^jOhp9F2jWT)( zM-?abgTW|9YFo>;yn>my=1zW#QBb)AYkoNfE-(RTLVS(EclC&qIu@7`up@@ZH`QRU zQ{xrNP(kA{^ba-zlI1M8Uo=QOFCGX@UoMn7;t)LbRV>x9fMA%b`KX!4J~rc|35ltE zh#j274}pC$5C=42WxkbG6TxyY0b`nCPq>-detXkmWX@GkhaDRk>Ew_EV-XYCIM;;C zwwX!dbK)&+eG{;QD}@tF7Lk)bjY_bHez1K=Q@%o>hu!kzbJK8n06b&5E#Ab3K>s)Y zxRJp1&c2X9b22g)9Ty*JWYud2*IO=4YK;itnRQ}Jy(A5#dkV`nNO3Qw&X^pjbo{ws z2~OnH{*L|YCliZL2L``v3C5vgKubM>-qHrjKBd0qB}@~@=r9~E!Z^9PyZ-Rx^!`J= zy8x$+bG;1F^H+CIKi6*pzq&foM^BoT?D)@{bMrLC(GZpptf4R7+G%`XgD>W;f?_iT zEW#;ipm_s}fyxdu!{8@93Eh&jZ5%6d0dv9=R2n0nS5Z6M@S&G7NN)~?n@)z5(rWoy zUI%jHRJ3fdG(qJ!gu z>!5)rZIcNo8vhOGY+{tk1z%ha28*r7=ol`(ecA9zutpeSL_pp)Ny9U*XUvIN{N6Y0 zlf%O&=VJHrqwk+Mv}WnGIYBoEb4xfvylj7{L{YJQT9FrBi1Y(%3{I1;nF1TH|- z+nZ9Z6Rcb+e6t9g(wS`SLAgGT(?#4+EPb0}vw+`Kt$x;!pdywr7AF@izO zF+GkW1GD8ud54JW$ABR8-q9ShfjCb<6DP6QoErNYz%%gp!wx)D`eGfW$`8;9F$)T@ zW`;DaIE!b;L{w3#3-qgAray{fFL%zrJChz&_{l$Ba??2Y3Bt4eWzWIBm==ijbr(eE& z^`oDCq2C17o4_!5At6rTh=Ex<%u?Nz|Ya>&P|%Y#)&ufPd7<|4Pj5Q<7i7nI^SC)RtE$&)LU%$3A4;K@L}nmz z5KagdX{px9H@^AKx4-r7+57BY{V3zzk3aqOpWlA=>ldQoR~Y%V_gF$ej=UMSN#F~w z>$8OCFmjB=Uf%vpXK;Q{CP|4$O22of0WwXA zTs#!twUke>5~E|4R}dPzPb!D8^Ct+$svbOa7&%Giqf~0e`x5*L0`-vOBNnROcHh`nTEL@fW<~+@afv&8J3gx5qy;uiusPA>P&YA)l4CUt=hDbr1F6S6uDCN(KflT5+B%hgH9h3wcPk z>fi;l=dbJ``^w6*+OE1i_nUOc%hB;3i?7Oxt^e8-v-+(~vGldCUHcWY%GU9U>A3ob zdNB33;w!IBb@a$+`#knMV2UlC{-IVs#qYV^B!_FYeJG~dg5C4h{vq9Jx7Y7==-cX} zm^aOf2e*$K-QKRU^47j``f_z#-6}^$tE_!x^!s=k3p!eD+E+%u+E)IMJ-W74zjC5y zPTONFT;zM)I`6nVotKk2u?f1Cmw941mE3ePa zYxi~g+R@kMp>c6<@>l)ZH{P#fQ{V0PJmpyR>v+X8M)zO;AAfT6)UsZpL}_J z_T|f~NBRY@_w)<8AL?G{4|Ie1Jv{*Yf#%=W3-Ryj#s2T<_T~d^s<(Cjej%Uw>A1Z3 z!#^*$bT`Dt)-?A=Jhza5mtuT8>!koMbyNLZ$Y( zxy#o5-i9~Tu&EP~?pk?1WS+19etmBHiBFGjb)$c{gHLQ2z-E5e1uhDngVX|W7mJ*j z6&-yHWQd} z$;KCQC`3JNfXLjU%rUP}CAP1F4?>AQ^~B?#W3SLGb2#I^SmC^`I5!T^H1b8P|05e_ z$}loX#ONu>yF73QKri1+gaONl;5?X#m6l7D5+{g|_#u+_p6Hb}&&!-^IZ~6%CVZW! zX3gF|#F|LsE9?a2vkf8S`5{`5$tPmioT+<;`r@Sz$xCT(l8FGDC47`-spYPBz^V;} zk}8hq^)SIq$;fMiUXA>z18U?sFAqAY92cIz+g9x0^lBM#{ScaKn^_kZ){7_4Z5`9V*(HPj>a9n>=0MjSnCqlfkfJiK2Hwh6Q3z# zZg1r#M1=~WI#=5Q&5a`whV=N>(B~Ne$(9KGWJSh2csC$)JvzSl5MEq7FTf6CzdHcw zT(^b89m@d3lVDR1L#5hkOKdd7=YlcR{|RMsLNK`K9R~TPZq7LCCVjDR0EFA((Iqfs zMr8eyQ{8UiU|I?(9pe_^~@$-nUs zsmEDg;)x6ITTd*43g}F1Lm?#~4#eXFUqS|33u?_bQji2NM3|V_MxHP?odeK--FSZF4lyXV!L$zUIW&JSFxzV6!ZN*hIdh>iZkMByyUmDQyuB ziRW@99d&T6hZBMr)R&2=E5LBL&PGXOPMteS#OJGUd~b!ur4bKye9v?OgpQ0LaD^Yo zJ>$3!drxU?Xh9sO?V#odCmx-j=uO~by$O8(m^XdH`BKgoD^uiUoZei4(7MMDV5G} zilGZZtQFeqon%iWX3hDb<> zxTU15`ej22=A1onK%HD&9D>{U#KY9Q#2|&Bc@s-B10(delIa|h;qMEtP%FmWUn zB=M0Y@pMGgqObK>A}51KCB=d!Ib4OGYZ0N6BavGXE|WWQ8(ZjFK?RoAMjrU$X^DhV z2%i`un>E`PnCSb2|N>*Rf>yNFSy!ZaQ|Juc)(~p2%T|N6} zdIR`>)At?yO}1W|6~eaG8Y(9J@RHc`=t=_;!?|6yCw9lG!*4a`>UDI{TsoJhRrUn4 zjl)YenK~=!d=27t6E&fAZ9RGYpy=2?OPuIKkFnxrchNh?XdQ=GljB$zpzQTa)Tj6Q zE*;+(8n6^%DTayB7hfzrZN(N-S-C4;@zt4R4&Z8A?5eNLp060><*0qJD{t}TV_w`t zy2|Lwv)Wc)U1Ol{xS0BBzn6Eu_A3YD+BSyjD{l|SI^J`x^N!2Ky!ll3CfTZA$F*NM z(eGpGy!aK<94lKfs}4P_`aS0!TYan!N95%=NPl}&`|{RqMZSrrwqXDN+OM3e&vguM z=MVAMe=*?OR{l51%31x|@44$^?ZFpU+xji8a{Bt)+Z0nh^V(PTkWF=~{T{cUmwUBg zyyvPN@{WsR&j0FaTUq6+kCmh2_TbiW{jBnG?tQIx)wM@geeG9H#{2dr96ab&ZfuKR z`*Ie$>Kae^)*id+%kfq7>e}z^SNTIRG`{*;=h&_`#gwysDaZvM}ExrEx=CpZQDMQTHCBUcW%p+JvhuW?_=j3=tm)x_egIs<_)wn&>L6?5_zn+2sXYJ=>=;alIY#mqr*>f! zKrlGgm}h(pTr^xVsdborj0~OE$_J;mDoG!yTVQhhDKVv?s+t`fyuK zfhG*q#%tM{*ne^pR0FIy$NX+8e8hnRhU$5+;Fu++Stq%mUI*o?zFszSBW%w|c33cP z>kBnxa5h)pO(nlKz^3@9+s#ag{X;3-r6*pbv=j03uiD?>D| zs5czH8ANId63RgFJ`-xVHGpcC1)>T0$Xtxn2r~{q`TR#-SAvo2VWNiiH+dP$8jmBB z#D@K#_loY$PA`6=-yhJQL%;r(_#7|`P9V}Bz5VFq8=8GzA5r<&&tKiVBu2KOJ}#OC zb72Y0rDUDkh&}OmASi`%v?QP}6@}zv<7sqcqpz$Rw6mv#A1}snGTNCrArV&e=I?a~ z-th|$7yz?h!h?~CZ8~^ZLPjhG+IH9oyEZPV>+Chc&JS^k2oC*oog4~tT8<7{_RPF+ z?sN#iWtkyc$m#O5#}t6n$i@Enfeb5jK#_Dv*$-dYH1!$=rl~I)aO%BJHFdNkU@Pmw ziwpC_+HZn%AJCfM|D05Pt^WhIN>yBnvup^Cc=5|PH_P` zLkLnT_e^~{*}wTl56*MPq;)4E_JIdi`r{Z!N2f2&&ffaf_1&v)pPk*FZx!Tsouqzr zas2r2|Nf&-{_ObZCr`e3r8j}Kg_NK(R_B=Ff<@#hzTX{AIxL49J^v>{4QJ8DA8SO+ zaBKGxmy2j2EaZU$*(rYCD*|^elA^E?cAjW|YOG*wH3%0&c2jD6`Mkiy85x(TP2+=w z2Q_|hrQn3@ioI|68p1qG5Cc0Kstx|aE(JM87bLDyIS1N%<qiNH~qnCEqAS3*YQ9i3rY(eE5xCVuxG67GxawddW>y zYU3?i&ny_fwyH<%x5t;yUmg8IUcUY4;^r;?hOyl6JsTpuLHy|Nee%)Y`LnaLpWgiP z^JiK+Io6Nq>dh3_0g^=IV^+Z;fb73y?pjcy#3O2#gxVnT7bDk0hg>Jfp4?KGfDZm* zteSg(Ysg}ON$P^Fy-_O-k+V*;;In6CXlju;PECCc0H;{JCp?T0MstG5(5GaJ3 za|opVCySoe1m77s^+dOQR>TqCOwZK_2wgAufh0sBo5XAwI0MLLH6s! zOO}#zAtg9QhS-;}S;@iCISVK1q3aqs@sKOQ4xJQ@eT&KqjW-t;Q_!+Z@odjrn%JZk z9%B+8gyGofJT{8}Sv=QV-!ocQncIn-5kj~%wRQFkL&Ay|GE`$?*x#^d=N~E?tD= zMNls!_Z52XqCus?F?Q(FQ#j6JRE*%4!=Y(Pb!1|II1=Wdj{)|Zt%8>)%0D~ErCccD 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 z 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