diff --git a/build.gradle.kts b/build.gradle.kts index e3f7b73..5877ce7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,16 +1,17 @@ @file:OptIn(ExperimentalWasmDsl::class) +import com.vanniktech.maven.publish.SonatypeHost import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl plugins { - kotlin("multiplatform") version "2.0.21" - `maven-publish` + kotlin("multiplatform") version "2.1.10" + id("com.vanniktech.maven.publish") version "0.31.0" signing - id("org.jetbrains.dokka") version "1.5.31" + id("org.jetbrains.dokka") version "2.0.0" } group = "nl.astraeus" -version = "1.0.11-SNAPSHOT" +version = "1.1.0" repositories { mavenCentral() @@ -54,61 +55,13 @@ kotlin { } } -extra["PUBLISH_GROUP_ID"] = group -extra["PUBLISH_VERSION"] = version -extra["PUBLISH_ARTIFACT_ID"] = name - -// Stub secrets to let the project sync and build without the publication values set up -val signingKeyId: String by project -val signingPassword: String by project -val signingSecretKeyRingFile: String by project -val ossrhUsername: String by project -val ossrhPassword: String by project - -extra["signing.keyId"] = signingKeyId -extra["signing.password"] = signingPassword -extra["signing.secretKeyRingFile"] = signingSecretKeyRingFile -extra["ossrhUsername"] = ossrhUsername -extra["ossrhPassword"] = ossrhPassword - val javadocJar by tasks.registering(Jar::class) { archiveClassifier.set("javadoc") } publishing { repositories { - maven { - name = "releases" - // change to point to your repo, e.g. http://my.org/repo - setUrl("https://reposilite.astraeus.nl/releases") - credentials { - val reposiliteUsername: String? by project - val reposilitePassword: String? by project - - username = reposiliteUsername - password = reposilitePassword - } - } - maven { - name = "snapshots" - // change to point to your repo, e.g. http://my.org/repo - setUrl("https://reposilite.astraeus.nl/snapshots") - credentials { - val reposiliteUsername: String? by project - val reposilitePassword: String? by project - - username = reposiliteUsername - password = reposilitePassword - } - } - maven { - name = "sonatype" - setUrl("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2") - credentials { - username = ossrhUsername - password = ossrhPassword - } - } + mavenLocal() maven { name = "gitea" setUrl("https://gitea.astraeus.nl/api/packages/rnentjes/maven") @@ -122,91 +75,44 @@ publishing { } } } - - // Configure all publications - publications.withType { - // Stub javadoc.jar artifact - artifact(javadocJar.get()) - - // Provide artifacts information requited by Maven Central - pom { - name.set("kotlin-css-generator") - description.set("Kotlin css generator") - url.set("https://github.com/rnentjes/kotlin-css-generator") - - licenses { - license { - name.set("MIT") - url.set("https://opensource.org/licenses/MIT") - } - } - developers { - developer { - id.set("rnentjes") - name.set("Rien Nentjes") - email.set("info@nentjes.com") - } - } - scm { - url.set("https://github.com/rnentjes/kotlin-css-generator") - } - } - } } signing { sign(publishing.publications) } -tasks.named("publishJsPublicationToMavenLocal") { - dependsOn(tasks.named("signJvmPublication")) - dependsOn(tasks.named("signKotlinMultiplatformPublication")) - dependsOn(tasks.named("signWasmJsPublication")) + +tasks.withType { + dependsOn(tasks.withType()) } -tasks.named("publishJvmPublicationToMavenLocal") { - dependsOn(tasks.named("signJsPublication")) - dependsOn(tasks.named("signKotlinMultiplatformPublication")) - dependsOn(tasks.named("signWasmJsPublication")) -} +mavenPublishing { + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) -tasks.named("publishKotlinMultiplatformPublicationToMavenLocal") { - dependsOn(tasks.named("signJvmPublication")) - dependsOn(tasks.named("signJsPublication")) - dependsOn(tasks.named("signWasmJsPublication")) -} + signAllPublications() -tasks.named("publishWasmJsPublicationToMavenLocal") { - dependsOn(tasks.named("signKotlinMultiplatformPublication")) - dependsOn(tasks.named("signJvmPublication")) - dependsOn(tasks.named("signJsPublication")) - dependsOn(tasks.named("signWasmJsPublication")) -} + coordinates(group.toString(), name, version.toString()) -tasks.named("publishJsPublicationToGiteaRepository") { - dependsOn(tasks.named("signKotlinMultiplatformPublication")) - dependsOn(tasks.named("signJvmPublication")) - dependsOn(tasks.named("signJsPublication")) - dependsOn(tasks.named("signWasmJsPublication")) -} - -tasks.named("publishJvmPublicationToGiteaRepository") { - dependsOn(tasks.named("signKotlinMultiplatformPublication")) - dependsOn(tasks.named("signJvmPublication")) - dependsOn(tasks.named("signJsPublication")) - dependsOn(tasks.named("signWasmJsPublication")) -} - -tasks.named("publishKotlinMultiplatformPublicationToGiteaRepository") { - dependsOn(tasks.named("signKotlinMultiplatformPublication")) - dependsOn(tasks.named("signJvmPublication")) - dependsOn(tasks.named("signJsPublication")) - dependsOn(tasks.named("signWasmJsPublication")) -} - -tasks.named("publishWasmJsPublicationToGiteaRepository") { - dependsOn(tasks.named("signKotlinMultiplatformPublication")) - dependsOn(tasks.named("signJvmPublication")) - dependsOn(tasks.named("signJsPublication")) - dependsOn(tasks.named("signWasmJsPublication")) + pom { + name = "kotlin-css-generator" + description = "Kotlin css generator" + inceptionYear = "2020" + url = "https://github.com/rnentjes/kotlin-css-generator" + licenses { + license { + name = "MIT" + url = "https://opensource.org/licenses/MIT" + } + } + developers { + developer { + id = "rnentjes" + name = "Rien Nentjes" + email = "info@nentjes.com" + } + } + scm { + url = "https://github.com/rnentjes/kotlin-css-generator" + } + } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a595206..48c0a02 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 09b3ea5..f032aca 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,11 +1,20 @@ pluginManagement { repositories { + google() mavenCentral() - - maven { setUrl("https://plugins.gradle.org/m2/") } + gradlePluginPortal() } } -rootProject.name = "kotlin-css-generator" +dependencyResolutionManagement { + repositories { + google() + mavenCentral() + } +} -//enableFeaturePreview("GRADLE_METADATA") +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" +} + +rootProject.name = "kotlin-css-generator" diff --git a/src/commonMain/kotlin/nl/astraeus/css/properties/Color.kt b/src/commonMain/kotlin/nl/astraeus/css/properties/Color.kt index adc6bdb..6872bd0 100644 --- a/src/commonMain/kotlin/nl/astraeus/css/properties/Color.kt +++ b/src/commonMain/kotlin/nl/astraeus/css/properties/Color.kt @@ -585,6 +585,8 @@ fun rgb(red: Int, green: Int, blue: Int) = Color("rgb($red, $green, $blue)") fun rgba(red: Int, green: Int, blue: Int, alpha: Double) = Color("rgba($red, $green, $blue, ${formatAlpha(alpha)})") fun hsl(hue: Int, saturation: Int, lightness: Int) = Color("hsl($hue, $saturation%, $lightness%)") fun hsla(hue: Int, saturation: Int, lightness: Int, alpha: Double) = Color("hsla($hue, $saturation%, $lightness%, ${formatAlpha(alpha)})") +fun oklch(lightness: Int, chroma: Double, hue: Double) = Color("oklch($lightness% $chroma $hue)") +fun oklch(lightness: Int, chroma: Double, hue: Double, alpha: Double) = Color("oklch($lightness% $chroma $hue / ${formatAlpha(alpha)})") fun blackAlpha(alpha: Double) = Color.black.withAlpha(alpha) fun whiteAlpha(alpha: Double) = Color.white.withAlpha(alpha) diff --git a/src/commonTest/kotlin/nl/astraeus/css/ColorTest.kt b/src/commonTest/kotlin/nl/astraeus/css/ColorTest.kt new file mode 100644 index 0000000..908f745 --- /dev/null +++ b/src/commonTest/kotlin/nl/astraeus/css/ColorTest.kt @@ -0,0 +1,20 @@ +package nl.astraeus.css + +import nl.astraeus.css.properties.oklch +import kotlin.test.Test + +class ColorTest { + + @Test + fun testColor() { + val css = style { + select("body") { + color(oklch(100, 0.5, 0.5)) + backgroundColor(oklch(100, 0.5, 0.5, 0.25)) + } + } + + println(css.generateCss()) + } + +} \ No newline at end of file diff --git a/src/commonTest/kotlin/nl/astraeus/css/TestCssBuilder.kt b/src/commonTest/kotlin/nl/astraeus/css/TestCssBuilder.kt index 7d47ad3..3ac0b69 100644 --- a/src/commonTest/kotlin/nl/astraeus/css/TestCssBuilder.kt +++ b/src/commonTest/kotlin/nl/astraeus/css/TestCssBuilder.kt @@ -187,7 +187,6 @@ class TestCssBuilder { println(css2.generateCss()) } - @Test fun testOr() { val css = style {