Skip to content

brahmkshatriya/compose-multiplatform-core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

197,971 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Compose Multiplatform Fork

Specifically made for Echo.

Changes

Foundation

  • stickyHeader now have a new param isSlidable. Allows multiple sticky headers to exist at the same time.
  • stickyHeader now consider contentPadding.top of the lazy list.

Material3

  • Fix the extra bounce the bottom sheet makes, when a nested scrollable child exists.
  • Disables mouse drag open of the Bottom Sheet.
  • Fix the issue where if a Bottom Sheet has a nested vertical scrollable child, the mouse scroll wheel can pass the extra delta to the bottom sheet, once the child has reached the top.

Usage

Add the following lines to these files.

libs.version.toml

[versions]
compose = "1.12.0-alpha01"

//...
[libraries]
compose-foundation = { module = "dev.brahmkshatriya.compose.foundation:foundation", version.ref = "compose" }
compose-material3 = { module = "dev.brahmkshatriya.compose.material3:material3", version.ref = "compose" }

Root build.gradle.kts (This is necessary, if you want this to work on android)

val androidComposeSubstitutions = mapOf(
    "androidx.compose.material3:material3-android" to libs.compose.material3,
    "androidx.compose.foundation:foundation-android" to libs.compose.foundation,
)

subprojects {
    configurations.all {
        resolutionStrategy.dependencySubstitution {
            androidComposeSubstitutions.forEach { (requestedModule, dependency) ->
                val catalogDependency = dependency.get()
                val androidCoordinate = "${requireNotNull(catalogDependency.group)}:${catalogDependency.name}-android:${catalogDependency.versionConstraint.requiredVersion}"
                substitute(module(requestedModule)).using(module(androidCoordinate))
            }
        }
    }
}

Module's build.gradle.kts

kotlin {
    //...
    sourceSets {
        commonMain.dependencies {
            implementation(libs.compose.foundation)
            implementation(libs.compose.material3)
        }
    }
}

Publication (Local Maven)

./gradlew :mpp:publishComposeJbToMavenLocal \
-Pjetbrains.publication.libraries=:compose:foundation:foundation,:compose:material3:material3 \
-Pcompose.platforms=jvm,android,js,wasmJs,linuxX64,linuxArm64

If you have a Mac (Not Tested)

./gradlew :mpp:publishComposeJbToMavenLocal \
-Pjetbrains.publication.libraries=:compose:foundation:foundation,:compose:material3:material3 \
-Pcompose.platforms=jvm,android,js,wasmJs,linuxX64,linuxArm64

Publication (Sonatype)

  • Set mavenCentralUsername, mavenCentralPassword, signing.keyId, signing.password, and signing.secretKeyRingFile in ~/.gradle/gradle.properties
  • Run the following command
./gradlew :mpp:publishComposeJbToSonatype \
-Pjetbrains.publication.libraries=:compose:foundation:foundation,:compose:material3:material3 \
-Pcompose.platforms=jvm,android,js,wasmJs,linuxX64,linuxArm64
  • After Sonatype validates the uploaded deployment, publish it from the Central Portal.

About

A fork of Compose, made for Echo.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 64.4%
  • Java 31.0%
  • C++ 4.0%
  • AIDL 0.3%
  • Python 0.1%
  • Shell 0.1%
  • Other 0.1%