mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:10:43 +07:00
[JEWEL-1000] Update standalone theme defs, fix generator
This updates the ThemeDefinition dumps for standalone for the main branch, fixes the Gradle generator to generate them in the correct folder, makes sure they're properly formatted. It also adds a step to the release guide to make sure we update them. Bonus changes: * Removed unused `ijp.target` property and relative logic from the Gradle build and docs. * Bumped target IJP to 252.1 in Gradle build * Bump IJP Gradle Plugin to 2.8.0 closes https://github.com/JetBrains/intellij-community/pull/3215 (cherry picked from commit f101aa8994c72b6db52118fb9942b1a2fad28944) GitOrigin-RevId: 9ac97d38d9b83d95d18106782834d2a3f6fb90f9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a0256a539f
commit
07fa590b64
@@ -56,13 +56,17 @@ kotlin {
|
||||
}
|
||||
|
||||
tasks {
|
||||
detektMain { exclude { it.file.absolutePath.startsWith(layout.buildDirectory.asFile.get().absolutePath) } }
|
||||
// We need to use relative paths for patterns.
|
||||
// Exclude does not work; this is how the Kotlinter plugin docs recommend doing it, and it works...
|
||||
val buildDir = layout.buildDirectory.asFile.get().relativeTo(project.projectDir).path
|
||||
detektMain { source = (source - fileTree(buildDir)).asFileTree }
|
||||
|
||||
formatKotlinMain { exclude { it.file.absolutePath.replace('\\', '/').contains("build/generated") } }
|
||||
withType<KtfmtBaseTask> { exclude { it.file.absolutePath.contains("build/generated") } }
|
||||
formatKotlinMain { source = (source - fileTree(buildDir)).asFileTree }
|
||||
|
||||
withType<KtfmtBaseTask> { source = (source - fileTree(buildDir)).asFileTree }
|
||||
|
||||
lintKotlinMain {
|
||||
exclude { it.file.absolutePath.replace('\\', '/').contains("build/generated") }
|
||||
source = (source - fileTree(buildDir)).asFileTree
|
||||
|
||||
reports = provider {
|
||||
mapOf(
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
package org.jetbrains.jewel.buildlogic.ideversion
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
internal data class ApiIdeaReleasesItem(
|
||||
@SerialName("code") val code: String,
|
||||
@SerialName("releases") val releases: List<Release>,
|
||||
) {
|
||||
|
||||
@Serializable
|
||||
internal data class Release(
|
||||
@SerialName("build") val build: String,
|
||||
@SerialName("type") val type: String,
|
||||
@SerialName("version") val version: String,
|
||||
@SerialName("majorVersion") val majorVersion: String,
|
||||
)
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
package org.jetbrains.jewel.buildlogic.ideversion
|
||||
|
||||
import java.io.File
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.GradleException
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
|
||||
open class CheckIdeaVersionTask : DefaultTask() {
|
||||
|
||||
private val releasesUrl =
|
||||
"https://data.services.jetbrains.com/products?" +
|
||||
"fields=code,releases,releases.version,releases.build,releases.type,releases.majorVersion&" +
|
||||
"code=IC"
|
||||
|
||||
private val ideaVersionRegex = "202\\d\\.(\\d\\.)?\\d".toRegex(RegexOption.IGNORE_CASE)
|
||||
|
||||
private val intelliJPlatformBuildRegex = "2\\d{2}\\.\\d+\\.\\d+(?:-EAP-SNAPSHOT)?".toRegex(RegexOption.IGNORE_CASE)
|
||||
|
||||
private val currentIjpVersion = project.currentIjpVersion
|
||||
|
||||
init {
|
||||
group = "jewel"
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
fun generate() {
|
||||
logger.lifecycle("Fetching IntelliJ Platform releases from $releasesUrl...")
|
||||
val ideaVersion = readCurrentVersionInfo()
|
||||
validateIdeaVersion(ideaVersion)
|
||||
|
||||
val platformBuildsForThisMajorVersion =
|
||||
IJPVersionsFetcher.fetchBuildsForCurrentMajorVersion(releasesUrl, ideaVersion.majorVersion, logger)
|
||||
|
||||
if (platformBuildsForThisMajorVersion == null) {
|
||||
logger.error("Cannot check platform version, no builds found for current version $ideaVersion")
|
||||
return
|
||||
}
|
||||
|
||||
val latestAvailableBuild = platformBuildsForThisMajorVersion.last()
|
||||
logger.info("The latest IntelliJ Platform ${ideaVersion.version} build is ${latestAvailableBuild.build}")
|
||||
|
||||
val isCurrentBuildStable = ideaVersion.type.lowercase() != "eap"
|
||||
if (IJPVersionsFetcher.compare(ideaVersion, latestAvailableBuild) < 0) {
|
||||
throw GradleException(
|
||||
buildString {
|
||||
appendLine("IntelliJ Platform version dependency is out of date.")
|
||||
appendLine()
|
||||
|
||||
append("Current build: ${ideaVersion.build}")
|
||||
if (!isCurrentBuildStable) append("-EAP-SNAPSHOT")
|
||||
appendLine()
|
||||
appendLine("Current version: ${ideaVersion.version}")
|
||||
append("Detected channel: ")
|
||||
appendLine(latestAvailableBuild.type)
|
||||
appendLine()
|
||||
|
||||
append("Latest build: ${latestAvailableBuild.build}")
|
||||
if (!isCurrentBuildStable) append("-EAP-SNAPSHOT")
|
||||
appendLine()
|
||||
|
||||
append("Latest version: ")
|
||||
if (isCurrentBuildStable) {
|
||||
appendLine(latestAvailableBuild.version)
|
||||
} else {
|
||||
appendLine(latestAvailableBuild.build.removeSuffix("-EAP-SNAPSHOT"))
|
||||
}
|
||||
|
||||
appendLine(
|
||||
"Please update the 'idea' and 'intelliJPlatformBuild' " + "versions in the catalog accordingly."
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
logger.lifecycle(
|
||||
"No IntelliJ Platform version updates available. " +
|
||||
"Current: ${ideaVersion.build} (${ideaVersion.version})"
|
||||
)
|
||||
}
|
||||
|
||||
private fun readCurrentVersionInfo(): ApiIdeaReleasesItem.Release {
|
||||
val catalogFile = project.rootProject.file("gradle/libs.versions.toml")
|
||||
val ideaVersion = readIdeaVersion(catalogFile)
|
||||
val isStableBuild = !ideaVersion.matches(intelliJPlatformBuildRegex)
|
||||
|
||||
val platformBuild = readPlatformBuild(catalogFile)
|
||||
val majorVersion =
|
||||
if (isStableBuild) {
|
||||
asMajorPlatformVersion(ideaVersion)
|
||||
} else {
|
||||
inferMajorPlatformVersion(platformBuild)
|
||||
}
|
||||
|
||||
return ApiIdeaReleasesItem.Release(
|
||||
build = platformBuild.removeSuffix("-EAP-SNAPSHOT"),
|
||||
version = ideaVersion,
|
||||
majorVersion = majorVersion,
|
||||
type = if (isStableBuild) "release" else "eap",
|
||||
)
|
||||
}
|
||||
|
||||
private fun asMajorPlatformVersion(rawVersion: String) = rawVersion.take(6)
|
||||
|
||||
private fun inferMajorPlatformVersion(rawBuildNumber: String) =
|
||||
"20${rawBuildNumber.take(2)}.${rawBuildNumber.substringBefore('.').last()}"
|
||||
|
||||
private fun readIdeaVersion(catalogFile: File): String {
|
||||
val versionName = "idea"
|
||||
|
||||
val catalogDependencyLine =
|
||||
catalogFile.useLines { lines -> lines.find { it.startsWith(versionName) } }
|
||||
?: throw GradleException(
|
||||
"Unable to find IJP dependency '$versionName' in the catalog file '${catalogFile.path}'"
|
||||
)
|
||||
|
||||
val dependencyVersion =
|
||||
catalogDependencyLine.substringAfter(versionName).trimStart(' ', '=').trimEnd().trim('"')
|
||||
|
||||
if (!dependencyVersion.matches(ideaVersionRegex) && !dependencyVersion.matches(intelliJPlatformBuildRegex)) {
|
||||
throw GradleException("Invalid IJ IDEA version found in version catalog: '$dependencyVersion'")
|
||||
}
|
||||
|
||||
return dependencyVersion
|
||||
}
|
||||
|
||||
private fun readPlatformBuild(catalogFile: File): String {
|
||||
val versionName = "intelliJPlatformBuild"
|
||||
|
||||
val catalogDependencyLine =
|
||||
catalogFile.useLines { lines -> lines.find { it.startsWith(versionName) } }
|
||||
?: throw GradleException(
|
||||
"Unable to find IJP dependency '$versionName' in the catalog file '${catalogFile.path}'"
|
||||
)
|
||||
|
||||
val declaredPlatformBuild =
|
||||
catalogDependencyLine.substringAfter(versionName).trimStart(' ', '=').trimEnd().trim('"')
|
||||
|
||||
if (!declaredPlatformBuild.matches(intelliJPlatformBuildRegex)) {
|
||||
throw GradleException("Invalid IJP build found in version catalog: '$declaredPlatformBuild'")
|
||||
}
|
||||
|
||||
return declaredPlatformBuild
|
||||
}
|
||||
|
||||
private fun validateIdeaVersion(currentVersion: ApiIdeaReleasesItem.Release) {
|
||||
val candidateMatches =
|
||||
IJPVersionsFetcher.fetchIJPVersions(releasesUrl, logger)
|
||||
?: throw GradleException("Can't fetch all IJP releases.")
|
||||
|
||||
val match =
|
||||
candidateMatches.find { it.build == currentVersion.build }
|
||||
?: throw GradleException("IJ build ${currentVersion.build} seemingly does not exist")
|
||||
|
||||
if (currentVersion.type != "eap" && match.version != currentVersion.version) {
|
||||
throw GradleException(
|
||||
buildString {
|
||||
appendLine("The 'idea' and 'intelliJPlatformBuild' properties in the catalog don't match.")
|
||||
append("'idea' = ")
|
||||
append(currentVersion.version)
|
||||
append(", 'intelliJPlatformBuild' = ")
|
||||
appendLine(currentVersion.build)
|
||||
appendLine()
|
||||
appendLine("That build number is for version ${match.version}.")
|
||||
appendLine("Adjust the values so they're aligned correctly.")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
// The match's build doesn't contain the -EAP-SNAPSHOT SUFFIX
|
||||
if (currentVersion.type == "eap" && currentVersion.version != match.build) {
|
||||
throw GradleException(
|
||||
buildString {
|
||||
appendLine("The 'idea' and 'intelliJPlatformBuild' properties in the catalog don't match.")
|
||||
append("'idea' = ")
|
||||
append(currentVersion.version)
|
||||
append(", 'intelliJPlatformBuild' = ")
|
||||
appendLine(currentVersion.build + "-EAP-SNAPSHOT")
|
||||
appendLine()
|
||||
appendLine("For non-stable IJP versions, the version and build should match,")
|
||||
appendLine("minus the '-EAP-SNAPSHOT' suffix in the build number.")
|
||||
appendLine("Adjust the values so they're aligned correctly.")
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package org.jetbrains.jewel.buildlogic.ideversion
|
||||
|
||||
import org.gradle.api.Project
|
||||
|
||||
val Project.currentIjpVersion: String
|
||||
get() {
|
||||
val rawValue =
|
||||
property("ijp.target") as? String ?: error("Property ijp.target not defined. Check your gradle.properties!")
|
||||
|
||||
if (rawValue.length != 3 || rawValue.toIntOrNull()?.let { it < 0 } == true) {
|
||||
error("Invalid ijp.target property value: '$rawValue'")
|
||||
}
|
||||
|
||||
return rawValue
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
package org.jetbrains.jewel.buildlogic.ideversion
|
||||
|
||||
import java.io.IOException
|
||||
import java.net.URI
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.decodeFromStream
|
||||
import org.gradle.api.logging.Logger
|
||||
|
||||
internal object IJPVersionsFetcher {
|
||||
|
||||
fun fetchIJPVersions(releasesUrl: String, logger: Logger): List<ApiIdeaReleasesItem.Release>? {
|
||||
val json = Json {
|
||||
ignoreUnknownKeys = true
|
||||
isLenient = true
|
||||
}
|
||||
|
||||
val icReleases =
|
||||
try {
|
||||
URI.create(releasesUrl)
|
||||
.toURL()
|
||||
.openStream()
|
||||
.use { json.decodeFromStream<List<ApiIdeaReleasesItem>>(it) }
|
||||
.first()
|
||||
} catch (e: IOException) {
|
||||
logger.warn(
|
||||
"Couldn't fetch IJ Platform releases, can't check for updates.\n" +
|
||||
"Cause: ${e::class.qualifiedName} — ${e.message}"
|
||||
)
|
||||
return null
|
||||
} catch (e: RuntimeException) {
|
||||
logger.error("Unexpected error while fetching IJ Platform releases, can't check for updates.", e)
|
||||
return null
|
||||
}
|
||||
|
||||
check(icReleases.code == "IIC") { "Was expecting code IIC but was ${icReleases.code}" }
|
||||
check(icReleases.releases.isNotEmpty()) { "Was expecting to have releases but the list is empty" }
|
||||
|
||||
return icReleases.releases
|
||||
}
|
||||
|
||||
fun fetchBuildsForCurrentMajorVersion(
|
||||
releasesUrl: String,
|
||||
majorPlatformVersion: String,
|
||||
logger: Logger,
|
||||
): List<ApiIdeaReleasesItem.Release>? {
|
||||
val releases = fetchIJPVersions(releasesUrl, logger) ?: return null
|
||||
|
||||
return releases
|
||||
.asSequence()
|
||||
.filter { it.majorVersion == majorPlatformVersion }
|
||||
.sortedWith(ReleaseComparator)
|
||||
.toList()
|
||||
}
|
||||
|
||||
fun fetchLatestBuildForCurrentMajorVersion(releasesUrl: String, majorPlatformVersion: String, logger: Logger) =
|
||||
fetchBuildsForCurrentMajorVersion(releasesUrl, majorPlatformVersion, logger)?.last()
|
||||
|
||||
fun compare(first: ApiIdeaReleasesItem.Release, second: ApiIdeaReleasesItem.Release): Int =
|
||||
VersionComparator.compare(first.build, second.build)
|
||||
|
||||
private object ReleaseComparator : Comparator<ApiIdeaReleasesItem.Release> {
|
||||
|
||||
override fun compare(o1: ApiIdeaReleasesItem.Release?, o2: ApiIdeaReleasesItem.Release?): Int {
|
||||
if (o1 == o2) return 0
|
||||
if (o1 == null) return -1
|
||||
if (o2 == null) return 1
|
||||
|
||||
return VersionComparator.compare(o1.build, o2.build)
|
||||
}
|
||||
}
|
||||
|
||||
private object VersionComparator : Comparator<String> {
|
||||
|
||||
override fun compare(o1: String?, o2: String?): Int {
|
||||
if (o1 == o2) return 0
|
||||
if (o1 == null) return -1
|
||||
if (o2 == null) return 1
|
||||
|
||||
require(o1.isNotEmpty() && o1.all { it.isDigit() || it == '.' }) { "The first version is invalid: '$o1'" }
|
||||
require(o2.isNotEmpty() && o2.all { it.isDigit() || it == '.' }) { "The first version is invalid: '$o2'" }
|
||||
|
||||
val firstGroups = o1.split('.')
|
||||
val secondGroups = o2.split('.')
|
||||
|
||||
require(firstGroups.size == 3) { "The first version is invalid: '$o1'" }
|
||||
require(secondGroups.size == 3) { "The second version is invalid: '$o2'" }
|
||||
|
||||
val firstComparison = firstGroups[0].toInt().compareTo(secondGroups[0].toInt())
|
||||
if (firstComparison != 0) return firstComparison
|
||||
|
||||
val secondComparison = firstGroups[1].toInt().compareTo(secondGroups[1].toInt())
|
||||
if (secondComparison != 0) return secondComparison
|
||||
|
||||
return firstGroups[2].toInt().compareTo(secondGroups[2].toInt())
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,22 +7,24 @@ import com.squareup.kotlinpoet.KModifier
|
||||
import com.squareup.kotlinpoet.PropertySpec
|
||||
import com.squareup.kotlinpoet.TypeSpec
|
||||
import com.squareup.kotlinpoet.joinToCode
|
||||
import java.time.ZoneOffset
|
||||
import java.time.ZonedDateTime
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import kotlinx.serialization.json.JsonPrimitive
|
||||
|
||||
internal object IntUiThemeDescriptorReader {
|
||||
|
||||
private val colorGroups = setOf("Gray", "Blue", "Green", "Red", "Yellow", "Orange", "Purple", "Teal")
|
||||
private val colorClassName = ClassName("androidx.compose.ui.graphics", "Color")
|
||||
|
||||
fun readThemeFrom(themeDescriptor: IntellijThemeDescriptor, className: ClassName, sourcePath: String) =
|
||||
fun readThemeFrom(
|
||||
themeDescriptor: IntellijThemeDescriptor,
|
||||
className: ClassName,
|
||||
sourcePath: String,
|
||||
ijpMajor: String,
|
||||
) =
|
||||
FileSpec.builder(className)
|
||||
.apply {
|
||||
indent(" ")
|
||||
val todayUtc = ZonedDateTime.now().withZoneSameInstant(ZoneOffset.UTC).toLocalDate()
|
||||
addFileComment("Generated by the Jewel Int UI Palette Generator on $todayUtc\n")
|
||||
addFileComment("Generated by the Jewel Int UI Palette Generator for IJP $ijpMajor\n")
|
||||
addFileComment("*** DO NOT EDIT MANUALLY! Use generateThemes task to update. ***\n")
|
||||
addFileComment("Source: $sourcePath")
|
||||
|
||||
addImport(colorClassName.packageName, colorClassName.simpleName)
|
||||
@@ -104,7 +106,9 @@ internal object IntUiThemeDescriptorReader {
|
||||
val pairValue = it.value
|
||||
if (pairValue is JsonPrimitive && pairValue.isString) {
|
||||
it.key to pairValue.content
|
||||
} else null
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
.forEach { colorPalette[it.first] = it.second }
|
||||
}
|
||||
@@ -117,7 +121,7 @@ internal object IntUiThemeDescriptorReader {
|
||||
PropertySpec.builder("iconData", iconDataClassName, KModifier.OVERRIDE)
|
||||
.initializer(
|
||||
CodeBlock.of(
|
||||
"ThemeIconData(iconOverrides = \n%L,colorPalette = \n%L,\nselectionColorPalette = %L\n)",
|
||||
"ThemeIconData(\niconOverrides = \n%L,\ncolorPalette = \n%L,\nselectionColorPalette = %L\n)",
|
||||
iconOverridesBlock,
|
||||
colorPalette.toMapCodeBlock(),
|
||||
selectionColorPaletteBlock,
|
||||
@@ -127,8 +131,11 @@ internal object IntUiThemeDescriptorReader {
|
||||
)
|
||||
}
|
||||
|
||||
private inline fun <reified K, reified V> Map<K, V>.toMapCodeBlock() =
|
||||
entries
|
||||
private inline fun <reified K, reified V> Map<K, V>.toMapCodeBlock(): CodeBlock {
|
||||
if (entries.isEmpty()) return CodeBlock.of("emptyMap()")
|
||||
|
||||
return entries
|
||||
.map { (key, value) -> CodeBlock.of("\"%L\" to \"%L\"", key, value) }
|
||||
.joinToCode(prefix = "mapOf(", separator = ",\n", suffix = ")")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ class ThemeGeneratorContainer(container: NamedDomainObjectContainer<ThemeGenerat
|
||||
NamedDomainObjectContainer<ThemeGeneration> by container
|
||||
|
||||
class ThemeGeneration(val name: String, project: Project) {
|
||||
|
||||
val targetDir: DirectoryProperty =
|
||||
project.objects.directoryProperty().convention(project.layout.buildDirectory.dir("generated/theme"))
|
||||
val themeClassName = project.objects.property<String>()
|
||||
@@ -33,15 +32,11 @@ class ThemeGeneration(val name: String, project: Project) {
|
||||
|
||||
@CacheableTask
|
||||
abstract class IntelliJThemeGeneratorTask : DefaultTask() {
|
||||
|
||||
@get:OutputFile abstract val outputFile: RegularFileProperty
|
||||
|
||||
@get:InputFile
|
||||
@get:PathSensitive(PathSensitivity.RELATIVE)
|
||||
abstract val themeFile: RegularFileProperty
|
||||
@get:InputFile @get:PathSensitive(PathSensitivity.RELATIVE) abstract val themeFile: RegularFileProperty
|
||||
|
||||
@get:Input
|
||||
abstract val themeFilePath: Property<String>
|
||||
@get:Input abstract val themeFilePath: Property<String>
|
||||
|
||||
@get:Input abstract val themeClassName: Property<String>
|
||||
|
||||
@@ -59,7 +54,19 @@ abstract class IntelliJThemeGeneratorTask : DefaultTask() {
|
||||
val themeDescriptor = themeFile.inputStream().use { json.decodeFromStream<IntellijThemeDescriptor>(it) }
|
||||
|
||||
val className = ClassName.bestGuess(themeClassName.get())
|
||||
val file = IntUiThemeDescriptorReader.readThemeFrom(themeDescriptor, className, themeFilePath.get())
|
||||
val buildNumberFile = project.rootDir.resolve("../../build.txt")
|
||||
check(buildNumberFile.isFile) { "The build.txt file must exist in the community root" }
|
||||
|
||||
val buildNumber = buildNumberFile.readText().trim()
|
||||
check(validateBuildNumber(buildNumber)) { "The build number in build.txt does not seem valid: '$buildNumber'" }
|
||||
|
||||
val file =
|
||||
IntUiThemeDescriptorReader.readThemeFrom(
|
||||
themeDescriptor,
|
||||
className,
|
||||
themeFilePath.get(),
|
||||
buildNumber.substringBefore('.'),
|
||||
)
|
||||
|
||||
val outputFile = outputFile.get().asFile
|
||||
logger.lifecycle(
|
||||
@@ -67,6 +74,19 @@ abstract class IntelliJThemeGeneratorTask : DefaultTask() {
|
||||
)
|
||||
outputFile.bufferedWriter().use { file.writeTo(it) }
|
||||
}
|
||||
|
||||
private fun validateBuildNumber(buildNumber: String): Boolean {
|
||||
// Examples:
|
||||
// * 253.1234.567
|
||||
// * 241.SNAPSHOT
|
||||
if (buildNumber.isBlank()) return false
|
||||
if (buildNumber.length < 5) return false
|
||||
if (buildNumber.take(3).toIntOrNull()?.takeIf { it > 240 } == null) return false
|
||||
if (buildNumber[3] != '.') return false
|
||||
|
||||
val afterDot = buildNumber.drop(4)
|
||||
return afterDot == "SNAPSHOT" || afterDot.all { it.isDigit() || it == '.' }
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
|
||||
@@ -24,9 +24,9 @@ High-level steps:
|
||||
```
|
||||
5. Cherry-pick the changes to the target release branches (e.g., `252`)
|
||||
1. Make sure you've not included IJP major release-specific changes
|
||||
2. Update the `ijp.target` entry in [`gradle.properties`](../gradle.properties)
|
||||
3. Update the Kotlin version in the [Gradle version catalog](../gradle/libs.versions.toml) to match the IJP's Kotlin version
|
||||
4. Update other related versions if needed
|
||||
2. Update the Kotlin version in the [Gradle version catalog](../gradle/libs.versions.toml) to match the IJ Platform's Kotlin version
|
||||
3. Update other related versions if needed
|
||||
4. Run `./gradlew generateThemes --rerun-tasks` to update the standalone theme definitions
|
||||
5. Run all Gradle-based checks
|
||||
6. Run all IJ tests (e.g., via the `tests.cmd` script)
|
||||
7. Verify everything works in the Jewel Standalone sample (components, Markdown rendering)
|
||||
@@ -36,8 +36,11 @@ High-level steps:
|
||||
```shell
|
||||
./scripts/metalava-signatures.sh --validate --release <new-release>
|
||||
```
|
||||
11. Open a MR for each cherry-pick branch on Space
|
||||
6. When both MRs are approved and merged, run the TeamCity job to publish the artefacts to Maven Central
|
||||
11. Open a merge request for each cherry-pick branch on Space
|
||||
6. When both MRs are approved and merged:
|
||||
1. Run the TeamCity job to publish the artefacts to Maven Central
|
||||
2. Tag the commits the releases were cut from, with this format: `JEWEL-[Jewel version]-[major IJP version]`. For
|
||||
example, for Jewel 0.30.0, `JEWEL-0.30.0-251` on the 251 branch and `JEWEL-0.30.0-252` on the 252 branch.
|
||||
|
||||
## Testing publishing locally
|
||||
|
||||
|
||||
@@ -8,5 +8,4 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
|
||||
org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true
|
||||
|
||||
jdk.level=21
|
||||
ijp.target=251
|
||||
jewel.release.version=0.30.0
|
||||
|
||||
@@ -6,9 +6,9 @@ composeDesktop = "1.9.0-beta03"
|
||||
detekt = "1.23.8"
|
||||
dokka = "2.0.0"
|
||||
filepicker = "3.1.0"
|
||||
idea = "2025.2"
|
||||
intelliJPlatformBuild = "252.23892.409"
|
||||
ideaPlugin = "2.6.0"
|
||||
idea = "2025.2.1"
|
||||
intelliJPlatformBuild = "252.25557.131"
|
||||
ideaPlugin = "2.8.0"
|
||||
jbr = "1.6.0"
|
||||
jna = "5.17.0"
|
||||
junitJupiter = "5.13.4"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import io.gitlab.arturbosch.detekt.Detekt
|
||||
import org.jetbrains.jewel.buildlogic.metalava.GenerateMetalavaApiTask
|
||||
import org.jetbrains.jewel.buildlogic.theme.IntelliJThemeGeneratorTask
|
||||
|
||||
@@ -18,14 +19,50 @@ intelliJThemeGenerator {
|
||||
register("intUiLight") {
|
||||
themeClassName = "org.jetbrains.jewel.intui.core.theme.IntUiLightTheme"
|
||||
themeFilePath = "../../platform/platform-resources/src/themes/expUI/expUI_light.theme.json"
|
||||
targetDir = project.file("generated/theme/")
|
||||
}
|
||||
|
||||
register("intUiDark") {
|
||||
themeClassName = "org.jetbrains.jewel.intui.core.theme.IntUiDarkTheme"
|
||||
themeFilePath = "../../platform/platform-resources/src/themes/expUI/expUI_dark.theme.json"
|
||||
targetDir = project.file("generated/theme/")
|
||||
}
|
||||
}
|
||||
|
||||
tasks {
|
||||
val themeGeneratorTasks = withType<IntelliJThemeGeneratorTask>()
|
||||
withType<GenerateMetalavaApiTask> { dependsOn(themeGeneratorTasks) }
|
||||
themeGeneratorTasks.configureEach { finalizedBy(ktfmtFormatMain) }
|
||||
|
||||
ktfmtFormatMain {
|
||||
// Ensure the ktfmtFormatMain task is not considered UP-TO-DATE when
|
||||
// we've regenerated the theme definitions (it doesn't always pick
|
||||
// it up for some reason)
|
||||
outputs.upToDateWhen { themeGeneratorTasks.none { it.state.executed } }
|
||||
}
|
||||
|
||||
val generateThemes by
|
||||
register("generateThemes") {
|
||||
description = "Updates the ThemeDescription dumps and reformats them."
|
||||
dependsOn(themeGeneratorTasks)
|
||||
dependsOn(ktfmtFormatMain)
|
||||
}
|
||||
|
||||
withType<GenerateMetalavaApiTask> { dependsOn(generateThemes) }
|
||||
|
||||
ktfmtCheckMain {
|
||||
mustRunAfter(generateThemes)
|
||||
mustRunAfter(ktfmtFormatMain)
|
||||
}
|
||||
lintKotlinMain {
|
||||
mustRunAfter(generateThemes)
|
||||
mustRunAfter(ktfmtFormatMain)
|
||||
}
|
||||
withType<Detekt>().configureEach {
|
||||
mustRunAfter(generateThemes)
|
||||
mustRunAfter(ktfmtFormatMain)
|
||||
}
|
||||
detektMain {
|
||||
mustRunAfter(generateThemes)
|
||||
mustRunAfter(ktfmtFormatMain)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Generated by the Jewel Int UI Palette Generator
|
||||
// Generated from the IntelliJ Platform version idea/243.19420.21
|
||||
// Source: https://raw.githubusercontent.com/JetBrains/intellij-community/idea/243.19420.21/platform/platform-resources/src/themes/expUI/expUI_dark.theme.json
|
||||
// Generated by the Jewel Int UI Palette Generator for IJP 253
|
||||
// *** DO NOT EDIT MANUALLY! Use generateThemes task to update. ***
|
||||
// Source: ../../platform/platform-resources/src/themes/expUI/expUI_dark.theme.json
|
||||
package org.jetbrains.jewel.intui.core.theme
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
@@ -15,254 +15,265 @@ public object IntUiDarkTheme : ThemeDescriptor {
|
||||
|
||||
override val name: String = "Dark (Int UI)"
|
||||
|
||||
override val colors: ThemeColorPalette = ThemeColorPalette(
|
||||
gray = listOf(
|
||||
Color(0xFF1E1F22),
|
||||
Color(0xFF2B2D30),
|
||||
Color(0xFF393B40),
|
||||
Color(0xFF43454A),
|
||||
Color(0xFF4E5157),
|
||||
Color(0xFF5A5D63),
|
||||
Color(0xFF6F737A),
|
||||
Color(0xFF868A91),
|
||||
Color(0xFF9DA0A8),
|
||||
Color(0xFFB4B8BF),
|
||||
Color(0xFFCED0D6),
|
||||
Color(0xFFDFE1E5),
|
||||
Color(0xFFF0F1F2),
|
||||
Color(0xFFFFFFFF)
|
||||
),
|
||||
blue = listOf(
|
||||
Color(0xFF25324D),
|
||||
Color(0xFF2E436E),
|
||||
Color(0xFF35538F),
|
||||
Color(0xFF375FAD),
|
||||
Color(0xFF366ACE),
|
||||
Color(0xFF3574F0),
|
||||
Color(0xFF467FF2),
|
||||
Color(0xFF548AF7),
|
||||
Color(0xFF6B9BFA),
|
||||
Color(0xFF83ACFC),
|
||||
Color(0xFF99BBFF),
|
||||
Color(0xFFB5CEFF),
|
||||
Color(0xFFD1E0FF)
|
||||
),
|
||||
green = listOf(
|
||||
Color(0xFF253627),
|
||||
Color(0xFF273828),
|
||||
Color(0xFF375239),
|
||||
Color(0xFF436946),
|
||||
Color(0xFF4E8052),
|
||||
Color(0xFF57965C),
|
||||
Color(0xFF5FAD65),
|
||||
Color(0xFF73BD79),
|
||||
Color(0xFF89CC8E),
|
||||
Color(0xFFA0DBA5),
|
||||
Color(0xFFB9EBBD),
|
||||
Color(0xFFD4FAD7)
|
||||
),
|
||||
yellow = listOf(
|
||||
Color(0xFF3D3223),
|
||||
Color(0xFF5E4D33),
|
||||
Color(0xFF826A41),
|
||||
Color(0xFF9E814A),
|
||||
Color(0xFFBA9752),
|
||||
Color(0xFFD6AE58),
|
||||
Color(0xFFF2C55C),
|
||||
Color(0xFFF5D273),
|
||||
Color(0xFFF7DE8B),
|
||||
Color(0xFFFCEBA4),
|
||||
Color(0xFFFFF6BD)
|
||||
),
|
||||
red = listOf(
|
||||
Color(0xFF402929),
|
||||
Color(0xFF472B2B),
|
||||
Color(0xFF5E3838),
|
||||
Color(0xFF7A4343),
|
||||
Color(0xFF9C4E4E),
|
||||
Color(0xFFBD5757),
|
||||
Color(0xFFDB5C5C),
|
||||
Color(0xFFE37774),
|
||||
Color(0xFFEB938D),
|
||||
Color(0xFFF2B1AA),
|
||||
Color(0xFFF7CCC6),
|
||||
Color(0xFFFAE3DE)
|
||||
),
|
||||
orange = listOf(
|
||||
Color(0xFF45322B),
|
||||
Color(0xFF614438),
|
||||
Color(0xFF825845),
|
||||
Color(0xFFA36B4E),
|
||||
Color(0xFFC27A53),
|
||||
Color(0xFFE08855),
|
||||
Color(0xFFE5986C),
|
||||
Color(0xFFF0AC81),
|
||||
Color(0xFFF5BD98),
|
||||
Color(0xFFFACEAF),
|
||||
Color(0xFFFFDFC7)
|
||||
),
|
||||
purple = listOf(
|
||||
Color(0xFF2F2936),
|
||||
Color(0xFF3B3147),
|
||||
Color(0xFF433358),
|
||||
Color(0xFF583D7A),
|
||||
Color(0xFF6C469C),
|
||||
Color(0xFF8150BE),
|
||||
Color(0xFF955AE0),
|
||||
Color(0xFFA571E6),
|
||||
Color(0xFFB589EC),
|
||||
Color(0xFFC4A0F3),
|
||||
Color(0xFFD4B8F9),
|
||||
Color(0xFFE4CEFF)
|
||||
),
|
||||
teal = listOf(
|
||||
Color(0xFF1D3838),
|
||||
Color(0xFF1D3D3B),
|
||||
Color(0xFF1E4D4A),
|
||||
Color(0xFF20635D),
|
||||
Color(0xFF21786F),
|
||||
Color(0xFF238E82),
|
||||
Color(0xFF24A394),
|
||||
Color(0xFF42B1A4),
|
||||
Color(0xFF60C0B5),
|
||||
Color(0xFF7DCEC5),
|
||||
Color(0xFF9BDDD6),
|
||||
Color(0xFFB9EBE6)
|
||||
),
|
||||
override val colors: ThemeColorPalette =
|
||||
ThemeColorPalette(
|
||||
gray =
|
||||
listOf(
|
||||
Color(0xFF1E1F22),
|
||||
Color(0xFF2B2D30),
|
||||
Color(0xFF393B40),
|
||||
Color(0xFF43454A),
|
||||
Color(0xFF4E5157),
|
||||
Color(0xFF5A5D63),
|
||||
Color(0xFF6F737A),
|
||||
Color(0xFF868A91),
|
||||
Color(0xFF9DA0A8),
|
||||
Color(0xFFB4B8BF),
|
||||
Color(0xFFCED0D6),
|
||||
Color(0xFFDFE1E5),
|
||||
Color(0xFFF0F1F2),
|
||||
Color(0xFFFFFFFF),
|
||||
),
|
||||
blue =
|
||||
listOf(
|
||||
Color(0xFF25324D),
|
||||
Color(0xFF2E436E),
|
||||
Color(0xFF35538F),
|
||||
Color(0xFF375FAD),
|
||||
Color(0xFF366ACE),
|
||||
Color(0xFF3574F0),
|
||||
Color(0xFF467FF2),
|
||||
Color(0xFF548AF7),
|
||||
Color(0xFF6B9BFA),
|
||||
Color(0xFF83ACFC),
|
||||
Color(0xFF99BBFF),
|
||||
Color(0xFFB5CEFF),
|
||||
Color(0xFFD1E0FF),
|
||||
),
|
||||
green =
|
||||
listOf(
|
||||
Color(0xFF253627),
|
||||
Color(0xFF273828),
|
||||
Color(0xFF375239),
|
||||
Color(0xFF436946),
|
||||
Color(0xFF4E8052),
|
||||
Color(0xFF57965C),
|
||||
Color(0xFF5FAD65),
|
||||
Color(0xFF73BD79),
|
||||
Color(0xFF89CC8E),
|
||||
Color(0xFFA0DBA5),
|
||||
Color(0xFFB9EBBD),
|
||||
Color(0xFFD4FAD7),
|
||||
),
|
||||
yellow =
|
||||
listOf(
|
||||
Color(0xFF3D3223),
|
||||
Color(0xFF5E4D33),
|
||||
Color(0xFF826A41),
|
||||
Color(0xFF9E814A),
|
||||
Color(0xFFBA9752),
|
||||
Color(0xFFD6AE58),
|
||||
Color(0xFFF2C55C),
|
||||
Color(0xFFF5D273),
|
||||
Color(0xFFF7DE8B),
|
||||
Color(0xFFFCEBA4),
|
||||
Color(0xFFFFF6BD),
|
||||
),
|
||||
red =
|
||||
listOf(
|
||||
Color(0xFF402929),
|
||||
Color(0xFF472B2B),
|
||||
Color(0xFF5E3838),
|
||||
Color(0xFF7A4343),
|
||||
Color(0xFF9C4E4E),
|
||||
Color(0xFFBD5757),
|
||||
Color(0xFFDB5C5C),
|
||||
Color(0xFFE37774),
|
||||
Color(0xFFEB938D),
|
||||
Color(0xFFF2B1AA),
|
||||
Color(0xFFF7CCC6),
|
||||
Color(0xFFFAE3DE),
|
||||
),
|
||||
orange =
|
||||
listOf(
|
||||
Color(0xFF45322B),
|
||||
Color(0xFF614438),
|
||||
Color(0xFF825845),
|
||||
Color(0xFFA36B4E),
|
||||
Color(0xFFC27A53),
|
||||
Color(0xFFE08855),
|
||||
Color(0xFFE5986C),
|
||||
Color(0xFFF0AC81),
|
||||
Color(0xFFF5BD98),
|
||||
Color(0xFFFACEAF),
|
||||
Color(0xFFFFDFC7),
|
||||
),
|
||||
purple =
|
||||
listOf(
|
||||
Color(0xFF2F2936),
|
||||
Color(0xFF3B3147),
|
||||
Color(0xFF433358),
|
||||
Color(0xFF583D7A),
|
||||
Color(0xFF6C469C),
|
||||
Color(0xFF8150BE),
|
||||
Color(0xFF955AE0),
|
||||
Color(0xFFA571E6),
|
||||
Color(0xFFB589EC),
|
||||
Color(0xFFC4A0F3),
|
||||
Color(0xFFD4B8F9),
|
||||
Color(0xFFE4CEFF),
|
||||
),
|
||||
teal =
|
||||
listOf(
|
||||
Color(0xFF1D3838),
|
||||
Color(0xFF1D3D3B),
|
||||
Color(0xFF1E4D4A),
|
||||
Color(0xFF20635D),
|
||||
Color(0xFF21786F),
|
||||
Color(0xFF238E82),
|
||||
Color(0xFF24A394),
|
||||
Color(0xFF42B1A4),
|
||||
Color(0xFF60C0B5),
|
||||
Color(0xFF7DCEC5),
|
||||
Color(0xFF9BDDD6),
|
||||
Color(0xFFB9EBE6),
|
||||
),
|
||||
rawMap =
|
||||
mapOf(
|
||||
"Gray1" to Color(0xFF1E1F22),
|
||||
"Gray2" to Color(0xFF2B2D30),
|
||||
"Gray3" to Color(0xFF393B40),
|
||||
"Gray4" to Color(0xFF43454A),
|
||||
"Gray5" to Color(0xFF4E5157),
|
||||
"Gray6" to Color(0xFF5A5D63),
|
||||
"Gray7" to Color(0xFF6F737A),
|
||||
"Gray8" to Color(0xFF868A91),
|
||||
"Gray9" to Color(0xFF9DA0A8),
|
||||
"Gray10" to Color(0xFFB4B8BF),
|
||||
"Gray11" to Color(0xFFCED0D6),
|
||||
"Gray12" to Color(0xFFDFE1E5),
|
||||
"Gray13" to Color(0xFFF0F1F2),
|
||||
"Gray14" to Color(0xFFFFFFFF),
|
||||
"Blue1" to Color(0xFF25324D),
|
||||
"Blue2" to Color(0xFF2E436E),
|
||||
"Blue3" to Color(0xFF35538F),
|
||||
"Blue4" to Color(0xFF375FAD),
|
||||
"Blue5" to Color(0xFF366ACE),
|
||||
"Blue6" to Color(0xFF3574F0),
|
||||
"Blue7" to Color(0xFF467FF2),
|
||||
"Blue8" to Color(0xFF548AF7),
|
||||
"Blue9" to Color(0xFF6B9BFA),
|
||||
"Blue10" to Color(0xFF83ACFC),
|
||||
"Blue11" to Color(0xFF99BBFF),
|
||||
"Blue12" to Color(0xFFB5CEFF),
|
||||
"Blue13" to Color(0xFFD1E0FF),
|
||||
"Green1" to Color(0xFF253627),
|
||||
"Green2" to Color(0xFF273828),
|
||||
"Green3" to Color(0xFF375239),
|
||||
"Green4" to Color(0xFF436946),
|
||||
"Green5" to Color(0xFF4E8052),
|
||||
"Green6" to Color(0xFF57965C),
|
||||
"Green7" to Color(0xFF5FAD65),
|
||||
"Green8" to Color(0xFF73BD79),
|
||||
"Green9" to Color(0xFF89CC8E),
|
||||
"Green10" to Color(0xFFA0DBA5),
|
||||
"Green11" to Color(0xFFB9EBBD),
|
||||
"Green12" to Color(0xFFD4FAD7),
|
||||
"Yellow1" to Color(0xFF3D3223),
|
||||
"Yellow2" to Color(0xFF5E4D33),
|
||||
"Yellow3" to Color(0xFF826A41),
|
||||
"Yellow4" to Color(0xFF9E814A),
|
||||
"Yellow5" to Color(0xFFBA9752),
|
||||
"Yellow6" to Color(0xFFD6AE58),
|
||||
"Yellow7" to Color(0xFFF2C55C),
|
||||
"Yellow8" to Color(0xFFF5D273),
|
||||
"Yellow9" to Color(0xFFF7DE8B),
|
||||
"Yellow10" to Color(0xFFFCEBA4),
|
||||
"Yellow11" to Color(0xFFFFF6BD),
|
||||
"Red1" to Color(0xFF402929),
|
||||
"Red2" to Color(0xFF472B2B),
|
||||
"Red3" to Color(0xFF5E3838),
|
||||
"Red4" to Color(0xFF7A4343),
|
||||
"Red5" to Color(0xFF9C4E4E),
|
||||
"Red6" to Color(0xFFBD5757),
|
||||
"Red7" to Color(0xFFDB5C5C),
|
||||
"Red8" to Color(0xFFE37774),
|
||||
"Red9" to Color(0xFFEB938D),
|
||||
"Red10" to Color(0xFFF2B1AA),
|
||||
"Red11" to Color(0xFFF7CCC6),
|
||||
"Red12" to Color(0xFFFAE3DE),
|
||||
"Orange1" to Color(0xFF45322B),
|
||||
"Orange2" to Color(0xFF614438),
|
||||
"Orange3" to Color(0xFF825845),
|
||||
"Orange4" to Color(0xFFA36B4E),
|
||||
"Orange5" to Color(0xFFC27A53),
|
||||
"Orange6" to Color(0xFFE08855),
|
||||
"Orange7" to Color(0xFFE5986C),
|
||||
"Orange8" to Color(0xFFF0AC81),
|
||||
"Orange9" to Color(0xFFF5BD98),
|
||||
"Orange10" to Color(0xFFFACEAF),
|
||||
"Orange11" to Color(0xFFFFDFC7),
|
||||
"Purple1" to Color(0xFF2F2936),
|
||||
"Purple2" to Color(0xFF3B3147),
|
||||
"Purple3" to Color(0xFF433358),
|
||||
"Purple4" to Color(0xFF583D7A),
|
||||
"Purple5" to Color(0xFF6C469C),
|
||||
"Purple6" to Color(0xFF8150BE),
|
||||
"Purple7" to Color(0xFF955AE0),
|
||||
"Purple8" to Color(0xFFA571E6),
|
||||
"Purple9" to Color(0xFFB589EC),
|
||||
"Purple10" to Color(0xFFC4A0F3),
|
||||
"Purple11" to Color(0xFFD4B8F9),
|
||||
"Purple12" to Color(0xFFE4CEFF),
|
||||
"Teal1" to Color(0xFF1D3838),
|
||||
"Teal2" to Color(0xFF1D3D3B),
|
||||
"Teal3" to Color(0xFF1E4D4A),
|
||||
"Teal4" to Color(0xFF20635D),
|
||||
"Teal5" to Color(0xFF21786F),
|
||||
"Teal6" to Color(0xFF238E82),
|
||||
"Teal7" to Color(0xFF24A394),
|
||||
"Teal8" to Color(0xFF42B1A4),
|
||||
"Teal9" to Color(0xFF60C0B5),
|
||||
"Teal10" to Color(0xFF7DCEC5),
|
||||
"Teal11" to Color(0xFF9BDDD6),
|
||||
"Teal12" to Color(0xFFB9EBE6),
|
||||
),
|
||||
)
|
||||
|
||||
rawMap = mapOf(
|
||||
"Gray1" to Color(0xFF1E1F22),
|
||||
"Gray2" to Color(0xFF2B2D30),
|
||||
"Gray3" to Color(0xFF393B40),
|
||||
"Gray4" to Color(0xFF43454A),
|
||||
"Gray5" to Color(0xFF4E5157),
|
||||
"Gray6" to Color(0xFF5A5D63),
|
||||
"Gray7" to Color(0xFF6F737A),
|
||||
"Gray8" to Color(0xFF868A91),
|
||||
"Gray9" to Color(0xFF9DA0A8),
|
||||
"Gray10" to Color(0xFFB4B8BF),
|
||||
"Gray11" to Color(0xFFCED0D6),
|
||||
"Gray12" to Color(0xFFDFE1E5),
|
||||
"Gray13" to Color(0xFFF0F1F2),
|
||||
"Gray14" to Color(0xFFFFFFFF),
|
||||
"Blue1" to Color(0xFF25324D),
|
||||
"Blue2" to Color(0xFF2E436E),
|
||||
"Blue3" to Color(0xFF35538F),
|
||||
"Blue4" to Color(0xFF375FAD),
|
||||
"Blue5" to Color(0xFF366ACE),
|
||||
"Blue6" to Color(0xFF3574F0),
|
||||
"Blue7" to Color(0xFF467FF2),
|
||||
"Blue8" to Color(0xFF548AF7),
|
||||
"Blue9" to Color(0xFF6B9BFA),
|
||||
"Blue10" to Color(0xFF83ACFC),
|
||||
"Blue11" to Color(0xFF99BBFF),
|
||||
"Blue12" to Color(0xFFB5CEFF),
|
||||
"Blue13" to Color(0xFFD1E0FF),
|
||||
"Green1" to Color(0xFF253627),
|
||||
"Green2" to Color(0xFF273828),
|
||||
"Green3" to Color(0xFF375239),
|
||||
"Green4" to Color(0xFF436946),
|
||||
"Green5" to Color(0xFF4E8052),
|
||||
"Green6" to Color(0xFF57965C),
|
||||
"Green7" to Color(0xFF5FAD65),
|
||||
"Green8" to Color(0xFF73BD79),
|
||||
"Green9" to Color(0xFF89CC8E),
|
||||
"Green10" to Color(0xFFA0DBA5),
|
||||
"Green11" to Color(0xFFB9EBBD),
|
||||
"Green12" to Color(0xFFD4FAD7),
|
||||
"Yellow1" to Color(0xFF3D3223),
|
||||
"Yellow2" to Color(0xFF5E4D33),
|
||||
"Yellow3" to Color(0xFF826A41),
|
||||
"Yellow4" to Color(0xFF9E814A),
|
||||
"Yellow5" to Color(0xFFBA9752),
|
||||
"Yellow6" to Color(0xFFD6AE58),
|
||||
"Yellow7" to Color(0xFFF2C55C),
|
||||
"Yellow8" to Color(0xFFF5D273),
|
||||
"Yellow9" to Color(0xFFF7DE8B),
|
||||
"Yellow10" to Color(0xFFFCEBA4),
|
||||
"Yellow11" to Color(0xFFFFF6BD),
|
||||
"Red1" to Color(0xFF402929),
|
||||
"Red2" to Color(0xFF472B2B),
|
||||
"Red3" to Color(0xFF5E3838),
|
||||
"Red4" to Color(0xFF7A4343),
|
||||
"Red5" to Color(0xFF9C4E4E),
|
||||
"Red6" to Color(0xFFBD5757),
|
||||
"Red7" to Color(0xFFDB5C5C),
|
||||
"Red8" to Color(0xFFE37774),
|
||||
"Red9" to Color(0xFFEB938D),
|
||||
"Red10" to Color(0xFFF2B1AA),
|
||||
"Red11" to Color(0xFFF7CCC6),
|
||||
"Red12" to Color(0xFFFAE3DE),
|
||||
"Orange1" to Color(0xFF45322B),
|
||||
"Orange2" to Color(0xFF614438),
|
||||
"Orange3" to Color(0xFF825845),
|
||||
"Orange4" to Color(0xFFA36B4E),
|
||||
"Orange5" to Color(0xFFC27A53),
|
||||
"Orange6" to Color(0xFFE08855),
|
||||
"Orange7" to Color(0xFFE5986C),
|
||||
"Orange8" to Color(0xFFF0AC81),
|
||||
"Orange9" to Color(0xFFF5BD98),
|
||||
"Orange10" to Color(0xFFFACEAF),
|
||||
"Orange11" to Color(0xFFFFDFC7),
|
||||
"Purple1" to Color(0xFF2F2936),
|
||||
"Purple2" to Color(0xFF3B3147),
|
||||
"Purple3" to Color(0xFF433358),
|
||||
"Purple4" to Color(0xFF583D7A),
|
||||
"Purple5" to Color(0xFF6C469C),
|
||||
"Purple6" to Color(0xFF8150BE),
|
||||
"Purple7" to Color(0xFF955AE0),
|
||||
"Purple8" to Color(0xFFA571E6),
|
||||
"Purple9" to Color(0xFFB589EC),
|
||||
"Purple10" to Color(0xFFC4A0F3),
|
||||
"Purple11" to Color(0xFFD4B8F9),
|
||||
"Purple12" to Color(0xFFE4CEFF),
|
||||
"Teal1" to Color(0xFF1D3838),
|
||||
"Teal2" to Color(0xFF1D3D3B),
|
||||
"Teal3" to Color(0xFF1E4D4A),
|
||||
"Teal4" to Color(0xFF20635D),
|
||||
"Teal5" to Color(0xFF21786F),
|
||||
"Teal6" to Color(0xFF238E82),
|
||||
"Teal7" to Color(0xFF24A394),
|
||||
"Teal8" to Color(0xFF42B1A4),
|
||||
"Teal9" to Color(0xFF60C0B5),
|
||||
"Teal10" to Color(0xFF7DCEC5),
|
||||
"Teal11" to Color(0xFF9BDDD6),
|
||||
"Teal12" to Color(0xFFB9EBE6)
|
||||
)
|
||||
)
|
||||
|
||||
override val iconData: ThemeIconData = ThemeIconData(iconOverrides =
|
||||
mapOf("/com/intellij/ide/ui/laf/icons/darcula/checkBox.svg" to
|
||||
"/themes/expUI/icons/dark/checkBox.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxIndeterminateSelected.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxIndeterminateSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxIndeterminateSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelectedFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxSelected.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelectedFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radio.svg" to
|
||||
"/themes/expUI/icons/dark/radio.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/radioDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioFocused.svg" to
|
||||
"/themes/expUI/icons/dark/radioFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioSelected.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelectedFocused.svg"), colorPalette =
|
||||
mapOf(),
|
||||
selectionColorPalette = mapOf()
|
||||
)
|
||||
override val iconData: ThemeIconData =
|
||||
ThemeIconData(
|
||||
iconOverrides =
|
||||
mapOf(
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBox.svg" to "/themes/expUI/icons/dark/checkBox.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxIndeterminateSelected.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxIndeterminateSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxIndeterminateSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelectedFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxSelected.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/checkBoxSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelectedFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radio.svg" to "/themes/expUI/icons/dark/radio.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/radioDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioFocused.svg" to
|
||||
"/themes/expUI/icons/dark/radioFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioSelected.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/darcula/radioSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelectedFocused.svg",
|
||||
),
|
||||
colorPalette = emptyMap(),
|
||||
selectionColorPalette = emptyMap(),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Generated by the Jewel Int UI Palette Generator
|
||||
// Generated from the IntelliJ Platform version idea/243.19420.21
|
||||
// Source: https://raw.githubusercontent.com/JetBrains/intellij-community/idea/243.19420.21/platform/platform-resources/src/themes/expUI/expUI_light.theme.json
|
||||
// Generated by the Jewel Int UI Palette Generator for IJP 253
|
||||
// *** DO NOT EDIT MANUALLY! Use generateThemes task to update. ***
|
||||
// Source: ../../platform/platform-resources/src/themes/expUI/expUI_light.theme.json
|
||||
package org.jetbrains.jewel.intui.core.theme
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
@@ -15,253 +15,267 @@ public object IntUiLightTheme : ThemeDescriptor {
|
||||
|
||||
override val name: String = "Light (Int UI)"
|
||||
|
||||
override val colors: ThemeColorPalette = ThemeColorPalette(
|
||||
gray = listOf(
|
||||
Color(0xFF000000),
|
||||
Color(0xFF27282E),
|
||||
Color(0xFF383A42),
|
||||
Color(0xFF494B57),
|
||||
Color(0xFF5A5D6B),
|
||||
Color(0xFF6C707E),
|
||||
Color(0xFF818594),
|
||||
Color(0xFFA8ADBD),
|
||||
Color(0xFFC9CCD6),
|
||||
Color(0xFFD3D5DB),
|
||||
Color(0xFFDFE1E5),
|
||||
Color(0xFFEBECF0),
|
||||
Color(0xFFF7F8FA),
|
||||
Color(0xFFFFFFFF)
|
||||
),
|
||||
blue = listOf(
|
||||
Color(0xFF2E55A3),
|
||||
Color(0xFF315FBD),
|
||||
Color(0xFF3369D6),
|
||||
Color(0xFF3574F0),
|
||||
Color(0xFF4682FA),
|
||||
Color(0xFF588CF3),
|
||||
Color(0xFF709CF5),
|
||||
Color(0xFF88ADF7),
|
||||
Color(0xFFA0BDF8),
|
||||
Color(0xFFC2D6FC),
|
||||
Color(0xFFD4E2FF),
|
||||
Color(0xFFEDF3FF),
|
||||
Color(0xFFF5F8FE)
|
||||
),
|
||||
green = listOf(
|
||||
Color(0xFF1E6B33),
|
||||
Color(0xFF1F7536),
|
||||
Color(0xFF1F8039),
|
||||
Color(0xFF208A3C),
|
||||
Color(0xFF369650),
|
||||
Color(0xFF55A76A),
|
||||
Color(0xFF89C398),
|
||||
Color(0xFFAFDBB8),
|
||||
Color(0xFFC5E5CC),
|
||||
Color(0xFFE3F7E7),
|
||||
Color(0xFFF2FCF3)
|
||||
),
|
||||
yellow = listOf(
|
||||
Color(0xFFA46704),
|
||||
Color(0xFFC27D04),
|
||||
Color(0xFFDF9303),
|
||||
Color(0xFFFFAF0F),
|
||||
Color(0xFFFDBD3D),
|
||||
Color(0xFFFED277),
|
||||
Color(0xFFFEE6B1),
|
||||
Color(0xFFFFF1D1),
|
||||
Color(0xFFFFF5DB),
|
||||
Color(0xFFFFFAEB)
|
||||
),
|
||||
red = listOf(
|
||||
Color(0xFFAD2B38),
|
||||
Color(0xFFBC303E),
|
||||
Color(0xFFCC3645),
|
||||
Color(0xFFDB3B4B),
|
||||
Color(0xFFE55765),
|
||||
Color(0xFFE46A76),
|
||||
Color(0xFFED99A1),
|
||||
Color(0xFFF2B6BB),
|
||||
Color(0xFFFAD4D8),
|
||||
Color(0xFFFFEBEC),
|
||||
Color(0xFFFFF2F3),
|
||||
Color(0xFFFFF7F7)
|
||||
),
|
||||
orange = listOf(
|
||||
Color(0xFFA14916),
|
||||
Color(0xFFB85516),
|
||||
Color(0xFFCE6117),
|
||||
Color(0xFFE56D17),
|
||||
Color(0xFFEC8F4C),
|
||||
Color(0xFFF2B181),
|
||||
Color(0xFFF9D2B6),
|
||||
Color(0xFFFFEFE3),
|
||||
Color(0xFFFFF4EB)
|
||||
),
|
||||
teal = listOf(
|
||||
Color(0xFF096A6E),
|
||||
Color(0xFF077A7F),
|
||||
Color(0xFF058B90),
|
||||
Color(0xFF039BA1),
|
||||
Color(0xFF3FB3B8),
|
||||
Color(0xFF7BCCCF),
|
||||
Color(0xFFB6E4E5),
|
||||
Color(0xFFDAF4F5),
|
||||
Color(0xFFF2FCFC)
|
||||
),
|
||||
purple = listOf(
|
||||
Color(0xFF55339C),
|
||||
Color(0xFF643CB8),
|
||||
Color(0xFF7444D4),
|
||||
Color(0xFF834DF0),
|
||||
Color(0xFFA177F4),
|
||||
Color(0xFFBFA1F8),
|
||||
Color(0xFFDCCBFB),
|
||||
Color(0xFFEFE5FF),
|
||||
Color(0xFFF5EDFF),
|
||||
Color(0xFFFAF5FF)
|
||||
),
|
||||
override val colors: ThemeColorPalette =
|
||||
ThemeColorPalette(
|
||||
gray =
|
||||
listOf(
|
||||
Color(0xFF000000),
|
||||
Color(0xFF27282E),
|
||||
Color(0xFF383A42),
|
||||
Color(0xFF494B57),
|
||||
Color(0xFF5A5D6B),
|
||||
Color(0xFF6C707E),
|
||||
Color(0xFF818594),
|
||||
Color(0xFFA8ADBD),
|
||||
Color(0xFFC9CCD6),
|
||||
Color(0xFFD3D5DB),
|
||||
Color(0xFFDFE1E5),
|
||||
Color(0xFFEBECF0),
|
||||
Color(0xFFF7F8FA),
|
||||
Color(0xFFFFFFFF),
|
||||
),
|
||||
blue =
|
||||
listOf(
|
||||
Color(0xFF2E55A3),
|
||||
Color(0xFF315FBD),
|
||||
Color(0xFF3369D6),
|
||||
Color(0xFF3574F0),
|
||||
Color(0xFF4682FA),
|
||||
Color(0xFF588CF3),
|
||||
Color(0xFF709CF5),
|
||||
Color(0xFF88ADF7),
|
||||
Color(0xFFA0BDF8),
|
||||
Color(0xFFC2D6FC),
|
||||
Color(0xFFD4E2FF),
|
||||
Color(0xFFEDF3FF),
|
||||
Color(0xFFF5F8FE),
|
||||
),
|
||||
green =
|
||||
listOf(
|
||||
Color(0xFF1E6B33),
|
||||
Color(0xFF1F7536),
|
||||
Color(0xFF1F8039),
|
||||
Color(0xFF208A3C),
|
||||
Color(0xFF369650),
|
||||
Color(0xFF55A76A),
|
||||
Color(0xFF89C398),
|
||||
Color(0xFFAFDBB8),
|
||||
Color(0xFFC5E5CC),
|
||||
Color(0xFFE3F7E7),
|
||||
Color(0xFFF2FCF3),
|
||||
),
|
||||
yellow =
|
||||
listOf(
|
||||
Color(0xFFA46704),
|
||||
Color(0xFFC27D04),
|
||||
Color(0xFFDF9303),
|
||||
Color(0xFFFFAF0F),
|
||||
Color(0xFFFDBD3D),
|
||||
Color(0xFFFED277),
|
||||
Color(0xFFFEE6B1),
|
||||
Color(0xFFFFF1D1),
|
||||
Color(0xFFFFF5DB),
|
||||
Color(0xFFFFFAEB),
|
||||
),
|
||||
red =
|
||||
listOf(
|
||||
Color(0xFFAD2B38),
|
||||
Color(0xFFBC303E),
|
||||
Color(0xFFCC3645),
|
||||
Color(0xFFDB3B4B),
|
||||
Color(0xFFE55765),
|
||||
Color(0xFFE46A76),
|
||||
Color(0xFFED99A1),
|
||||
Color(0xFFF2B6BB),
|
||||
Color(0xFFFAD4D8),
|
||||
Color(0xFFFFEBEC),
|
||||
Color(0xFFFFF2F3),
|
||||
Color(0xFFFFF7F7),
|
||||
),
|
||||
orange =
|
||||
listOf(
|
||||
Color(0xFFA14916),
|
||||
Color(0xFFB85516),
|
||||
Color(0xFFCE6117),
|
||||
Color(0xFFE56D17),
|
||||
Color(0xFFEC8F4C),
|
||||
Color(0xFFF2B181),
|
||||
Color(0xFFF9D2B6),
|
||||
Color(0xFFFFEFE3),
|
||||
Color(0xFFFFF4EB),
|
||||
),
|
||||
teal =
|
||||
listOf(
|
||||
Color(0xFF096A6E),
|
||||
Color(0xFF077A7F),
|
||||
Color(0xFF058B90),
|
||||
Color(0xFF039BA1),
|
||||
Color(0xFF3FB3B8),
|
||||
Color(0xFF7BCCCF),
|
||||
Color(0xFFB6E4E5),
|
||||
Color(0xFFDAF4F5),
|
||||
Color(0xFFF2FCFC),
|
||||
),
|
||||
purple =
|
||||
listOf(
|
||||
Color(0xFF55339C),
|
||||
Color(0xFF643CB8),
|
||||
Color(0xFF7444D4),
|
||||
Color(0xFF834DF0),
|
||||
Color(0xFFA177F4),
|
||||
Color(0xFFBFA1F8),
|
||||
Color(0xFFDCCBFB),
|
||||
Color(0xFFEFE5FF),
|
||||
Color(0xFFF5EDFF),
|
||||
Color(0xFFFAF5FF),
|
||||
),
|
||||
rawMap =
|
||||
mapOf(
|
||||
"Gray1" to Color(0xFF000000),
|
||||
"Gray2" to Color(0xFF27282E),
|
||||
"Gray3" to Color(0xFF383A42),
|
||||
"Gray4" to Color(0xFF494B57),
|
||||
"Gray5" to Color(0xFF5A5D6B),
|
||||
"Gray6" to Color(0xFF6C707E),
|
||||
"Gray7" to Color(0xFF818594),
|
||||
"Gray8" to Color(0xFFA8ADBD),
|
||||
"Gray9" to Color(0xFFC9CCD6),
|
||||
"Gray10" to Color(0xFFD3D5DB),
|
||||
"Gray11" to Color(0xFFDFE1E5),
|
||||
"Gray12" to Color(0xFFEBECF0),
|
||||
"Gray13" to Color(0xFFF7F8FA),
|
||||
"Gray14" to Color(0xFFFFFFFF),
|
||||
"windowsPopupBorder" to Color(0xFFB9BDC9),
|
||||
"Blue1" to Color(0xFF2E55A3),
|
||||
"Blue2" to Color(0xFF315FBD),
|
||||
"Blue3" to Color(0xFF3369D6),
|
||||
"Blue4" to Color(0xFF3574F0),
|
||||
"Blue5" to Color(0xFF4682FA),
|
||||
"Blue6" to Color(0xFF588CF3),
|
||||
"Blue7" to Color(0xFF709CF5),
|
||||
"Blue8" to Color(0xFF88ADF7),
|
||||
"Blue9" to Color(0xFFA0BDF8),
|
||||
"Blue10" to Color(0xFFC2D6FC),
|
||||
"Blue11" to Color(0xFFD4E2FF),
|
||||
"Blue12" to Color(0xFFEDF3FF),
|
||||
"Blue13" to Color(0xFFF5F8FE),
|
||||
"Green1" to Color(0xFF1E6B33),
|
||||
"Green2" to Color(0xFF1F7536),
|
||||
"Green3" to Color(0xFF1F8039),
|
||||
"Green4" to Color(0xFF208A3C),
|
||||
"Green5" to Color(0xFF369650),
|
||||
"Green6" to Color(0xFF55A76A),
|
||||
"Green7" to Color(0xFF89C398),
|
||||
"Green8" to Color(0xFFAFDBB8),
|
||||
"Green9" to Color(0xFFC5E5CC),
|
||||
"Green10" to Color(0xFFE3F7E7),
|
||||
"Green11" to Color(0xFFF2FCF3),
|
||||
"Yellow1" to Color(0xFFA46704),
|
||||
"Yellow2" to Color(0xFFC27D04),
|
||||
"Yellow3" to Color(0xFFDF9303),
|
||||
"Yellow4" to Color(0xFFFFAF0F),
|
||||
"Yellow5" to Color(0xFFFDBD3D),
|
||||
"Yellow6" to Color(0xFFFED277),
|
||||
"Yellow7" to Color(0xFFFEE6B1),
|
||||
"Yellow8" to Color(0xFFFFF1D1),
|
||||
"Yellow9" to Color(0xFFFFF5DB),
|
||||
"Yellow10" to Color(0xFFFFFAEB),
|
||||
"Red1" to Color(0xFFAD2B38),
|
||||
"Red2" to Color(0xFFBC303E),
|
||||
"Red3" to Color(0xFFCC3645),
|
||||
"Red4" to Color(0xFFDB3B4B),
|
||||
"Red5" to Color(0xFFE55765),
|
||||
"Red6" to Color(0xFFE46A76),
|
||||
"Red7" to Color(0xFFED99A1),
|
||||
"Red8" to Color(0xFFF2B6BB),
|
||||
"Red9" to Color(0xFFFAD4D8),
|
||||
"Red10" to Color(0xFFFFEBEC),
|
||||
"Red11" to Color(0xFFFFF2F3),
|
||||
"Red12" to Color(0xFFFFF7F7),
|
||||
"Orange1" to Color(0xFFA14916),
|
||||
"Orange2" to Color(0xFFB85516),
|
||||
"Orange3" to Color(0xFFCE6117),
|
||||
"Orange4" to Color(0xFFE56D17),
|
||||
"Orange5" to Color(0xFFEC8F4C),
|
||||
"Orange6" to Color(0xFFF2B181),
|
||||
"Orange7" to Color(0xFFF9D2B6),
|
||||
"Orange8" to Color(0xFFFFEFE3),
|
||||
"Orange9" to Color(0xFFFFF4EB),
|
||||
"Teal1" to Color(0xFF096A6E),
|
||||
"Teal2" to Color(0xFF077A7F),
|
||||
"Teal3" to Color(0xFF058B90),
|
||||
"Teal4" to Color(0xFF039BA1),
|
||||
"Teal5" to Color(0xFF3FB3B8),
|
||||
"Teal6" to Color(0xFF7BCCCF),
|
||||
"Teal7" to Color(0xFFB6E4E5),
|
||||
"Teal8" to Color(0xFFDAF4F5),
|
||||
"Teal9" to Color(0xFFF2FCFC),
|
||||
"Purple1" to Color(0xFF55339C),
|
||||
"Purple2" to Color(0xFF643CB8),
|
||||
"Purple3" to Color(0xFF7444D4),
|
||||
"Purple4" to Color(0xFF834DF0),
|
||||
"Purple5" to Color(0xFFA177F4),
|
||||
"Purple6" to Color(0xFFBFA1F8),
|
||||
"Purple7" to Color(0xFFDCCBFB),
|
||||
"Purple8" to Color(0xFFEFE5FF),
|
||||
"Purple9" to Color(0xFFF5EDFF),
|
||||
"Purple10" to Color(0xFFFAF5FF),
|
||||
),
|
||||
)
|
||||
|
||||
rawMap = mapOf(
|
||||
"Gray1" to Color(0xFF000000),
|
||||
"Gray2" to Color(0xFF27282E),
|
||||
"Gray3" to Color(0xFF383A42),
|
||||
"Gray4" to Color(0xFF494B57),
|
||||
"Gray5" to Color(0xFF5A5D6B),
|
||||
"Gray6" to Color(0xFF6C707E),
|
||||
"Gray7" to Color(0xFF818594),
|
||||
"Gray8" to Color(0xFFA8ADBD),
|
||||
"Gray9" to Color(0xFFC9CCD6),
|
||||
"Gray10" to Color(0xFFD3D5DB),
|
||||
"Gray11" to Color(0xFFDFE1E5),
|
||||
"Gray12" to Color(0xFFEBECF0),
|
||||
"Gray13" to Color(0xFFF7F8FA),
|
||||
"Gray14" to Color(0xFFFFFFFF),
|
||||
"windowsPopupBorder" to Color(0xFFB9BDC9),
|
||||
"Blue1" to Color(0xFF2E55A3),
|
||||
"Blue2" to Color(0xFF315FBD),
|
||||
"Blue3" to Color(0xFF3369D6),
|
||||
"Blue4" to Color(0xFF3574F0),
|
||||
"Blue5" to Color(0xFF4682FA),
|
||||
"Blue6" to Color(0xFF588CF3),
|
||||
"Blue7" to Color(0xFF709CF5),
|
||||
"Blue8" to Color(0xFF88ADF7),
|
||||
"Blue9" to Color(0xFFA0BDF8),
|
||||
"Blue10" to Color(0xFFC2D6FC),
|
||||
"Blue11" to Color(0xFFD4E2FF),
|
||||
"Blue12" to Color(0xFFEDF3FF),
|
||||
"Blue13" to Color(0xFFF5F8FE),
|
||||
"Green1" to Color(0xFF1E6B33),
|
||||
"Green2" to Color(0xFF1F7536),
|
||||
"Green3" to Color(0xFF1F8039),
|
||||
"Green4" to Color(0xFF208A3C),
|
||||
"Green5" to Color(0xFF369650),
|
||||
"Green6" to Color(0xFF55A76A),
|
||||
"Green7" to Color(0xFF89C398),
|
||||
"Green8" to Color(0xFFAFDBB8),
|
||||
"Green9" to Color(0xFFC5E5CC),
|
||||
"Green10" to Color(0xFFE3F7E7),
|
||||
"Green11" to Color(0xFFF2FCF3),
|
||||
"Yellow1" to Color(0xFFA46704),
|
||||
"Yellow2" to Color(0xFFC27D04),
|
||||
"Yellow3" to Color(0xFFDF9303),
|
||||
"Yellow4" to Color(0xFFFFAF0F),
|
||||
"Yellow5" to Color(0xFFFDBD3D),
|
||||
"Yellow6" to Color(0xFFFED277),
|
||||
"Yellow7" to Color(0xFFFEE6B1),
|
||||
"Yellow8" to Color(0xFFFFF1D1),
|
||||
"Yellow9" to Color(0xFFFFF5DB),
|
||||
"Yellow10" to Color(0xFFFFFAEB),
|
||||
"Red1" to Color(0xFFAD2B38),
|
||||
"Red2" to Color(0xFFBC303E),
|
||||
"Red3" to Color(0xFFCC3645),
|
||||
"Red4" to Color(0xFFDB3B4B),
|
||||
"Red5" to Color(0xFFE55765),
|
||||
"Red6" to Color(0xFFE46A76),
|
||||
"Red7" to Color(0xFFED99A1),
|
||||
"Red8" to Color(0xFFF2B6BB),
|
||||
"Red9" to Color(0xFFFAD4D8),
|
||||
"Red10" to Color(0xFFFFEBEC),
|
||||
"Red11" to Color(0xFFFFF2F3),
|
||||
"Red12" to Color(0xFFFFF7F7),
|
||||
"Orange1" to Color(0xFFA14916),
|
||||
"Orange2" to Color(0xFFB85516),
|
||||
"Orange3" to Color(0xFFCE6117),
|
||||
"Orange4" to Color(0xFFE56D17),
|
||||
"Orange5" to Color(0xFFEC8F4C),
|
||||
"Orange6" to Color(0xFFF2B181),
|
||||
"Orange7" to Color(0xFFF9D2B6),
|
||||
"Orange8" to Color(0xFFFFEFE3),
|
||||
"Orange9" to Color(0xFFFFF4EB),
|
||||
"Teal1" to Color(0xFF096A6E),
|
||||
"Teal2" to Color(0xFF077A7F),
|
||||
"Teal3" to Color(0xFF058B90),
|
||||
"Teal4" to Color(0xFF039BA1),
|
||||
"Teal5" to Color(0xFF3FB3B8),
|
||||
"Teal6" to Color(0xFF7BCCCF),
|
||||
"Teal7" to Color(0xFFB6E4E5),
|
||||
"Teal8" to Color(0xFFDAF4F5),
|
||||
"Teal9" to Color(0xFFF2FCFC),
|
||||
"Purple1" to Color(0xFF55339C),
|
||||
"Purple2" to Color(0xFF643CB8),
|
||||
"Purple3" to Color(0xFF7444D4),
|
||||
"Purple4" to Color(0xFF834DF0),
|
||||
"Purple5" to Color(0xFFA177F4),
|
||||
"Purple6" to Color(0xFFBFA1F8),
|
||||
"Purple7" to Color(0xFFDCCBFB),
|
||||
"Purple8" to Color(0xFFEFE5FF),
|
||||
"Purple9" to Color(0xFFF5EDFF),
|
||||
"Purple10" to Color(0xFFFAF5FF)
|
||||
)
|
||||
)
|
||||
|
||||
override val iconData: ThemeIconData = ThemeIconData(iconOverrides =
|
||||
mapOf("/windows/minimize.svg" to "/expui/windows/minimize.svg",
|
||||
"/windows/minimizeInactive.svg" to "/expui/windows/minimizeInactive.svg",
|
||||
"/windows/maximize.svg" to "/expui/windows/maximize.svg",
|
||||
"/windows/maximizeInactive.svg" to "/expui/windows/maximizeInactive.svg",
|
||||
"/windows/closeActive.svg" to "/expui/windows/closeActive.svg",
|
||||
"/windows/closeInactive.svg" to "/expui/windows/closeInactive.svg",
|
||||
"/windows/restore.svg" to "/expui/windows/restore.svg",
|
||||
"/windows/restoreInactive.svg" to "/expui/windows/restoreInactive.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBox.svg" to
|
||||
"/themes/expUI/icons/dark/checkBox.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxIndeterminateSelected.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxIndeterminateSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxIndeterminateSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelectedFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxSelected.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelectedFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radio.svg" to
|
||||
"/themes/expUI/icons/dark/radio.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/radioDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioFocused.svg" to
|
||||
"/themes/expUI/icons/dark/radioFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioSelected.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelectedFocused.svg"), colorPalette =
|
||||
mapOf("Checkbox.Background.Default" to "Gray14",
|
||||
"Checkbox.Border.Default" to "Gray8",
|
||||
"Checkbox.Foreground.Selected" to "Gray14",
|
||||
"Checkbox.Background.Selected" to "Blue4",
|
||||
"Checkbox.Border.Selected" to "Blue4",
|
||||
"Checkbox.Focus.Wide" to "Blue4",
|
||||
"Checkbox.Foreground.Disabled" to "Gray9",
|
||||
"Checkbox.Background.Disabled" to "Gray13",
|
||||
"Checkbox.Border.Disabled" to "Gray11"),
|
||||
selectionColorPalette = mapOf()
|
||||
)
|
||||
override val iconData: ThemeIconData =
|
||||
ThemeIconData(
|
||||
iconOverrides =
|
||||
mapOf(
|
||||
"/windows/minimize.svg" to "/expui/windows/minimize.svg",
|
||||
"/windows/minimizeInactive.svg" to "/expui/windows/minimizeInactive.svg",
|
||||
"/windows/maximize.svg" to "/expui/windows/maximize.svg",
|
||||
"/windows/maximizeInactive.svg" to "/expui/windows/maximizeInactive.svg",
|
||||
"/windows/closeActive.svg" to "/expui/windows/closeActive.svg",
|
||||
"/windows/closeInactive.svg" to "/expui/windows/closeInactive.svg",
|
||||
"/windows/restore.svg" to "/expui/windows/restore.svg",
|
||||
"/windows/restoreInactive.svg" to "/expui/windows/restoreInactive.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBox.svg" to "/themes/expUI/icons/dark/checkBox.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxIndeterminateSelected.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxIndeterminateSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxIndeterminateSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxIndeterminateSelectedFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxSelected.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/checkBoxSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/checkBoxSelectedFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radio.svg" to "/themes/expUI/icons/dark/radio.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/radioDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioFocused.svg" to
|
||||
"/themes/expUI/icons/dark/radioFocused.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioSelected.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelected.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioSelectedDisabled.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelectedDisabled.svg",
|
||||
"/com/intellij/ide/ui/laf/icons/intellij/radioSelectedFocused.svg" to
|
||||
"/themes/expUI/icons/dark/radioSelectedFocused.svg",
|
||||
),
|
||||
colorPalette =
|
||||
mapOf(
|
||||
"Checkbox.Background.Default" to "Gray14",
|
||||
"Checkbox.Border.Default" to "Gray8",
|
||||
"Checkbox.Foreground.Selected" to "Gray14",
|
||||
"Checkbox.Background.Selected" to "Blue4",
|
||||
"Checkbox.Border.Selected" to "Blue4",
|
||||
"Checkbox.Focus.Wide" to "Blue4",
|
||||
"Checkbox.Foreground.Disabled" to "Gray9",
|
||||
"Checkbox.Background.Disabled" to "Gray13",
|
||||
"Checkbox.Border.Disabled" to "Gray11",
|
||||
),
|
||||
selectionColorPalette = emptyMap(),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -105,7 +105,8 @@ class CompareBranchesCommand : SuspendingCliktCommand() {
|
||||
if (anyPathMissing) exitProcess(1)
|
||||
|
||||
println(
|
||||
"🔍 Comparing commits for paths '${Config.PATHS_TO_CHECK.joinToString()}' between '$branch1' and '$branch2' since $sinceDate..."
|
||||
"🔍 Comparing commits for paths '${Config.PATHS_TO_CHECK.joinToString()}' between " +
|
||||
"'$branch1' and '$branch2' since $sinceDate..."
|
||||
)
|
||||
|
||||
val pathsArg = Config.PATHS_TO_CHECK.joinToString(separator = " ") { "-- $it" }
|
||||
|
||||
@@ -50,7 +50,8 @@ class ExtractReleaseNotesCommand : CliktCommand() {
|
||||
val latestReleaseDate = getLatestReleaseDate()
|
||||
if (latestReleaseDate.isNullOrBlank()) {
|
||||
printlnErr(
|
||||
"Error: --start-date is required if ${Config.RELEASE_NOTES_FILE} does not exist or contain a release date."
|
||||
"Error: --start-date is required if ${Config.RELEASE_NOTES_FILE} " +
|
||||
"does not exist or contain a release date."
|
||||
)
|
||||
exitProcess(1)
|
||||
}
|
||||
@@ -224,9 +225,9 @@ class ExtractReleaseNotesCommand : CliktCommand() {
|
||||
|
||||
val sectionOrder = listOf("⚠️ Important Changes", "New features", "Bug fixes", "Deprecated API", "Other")
|
||||
val sortedSections =
|
||||
allReleaseNotes.keys.sortedWith(
|
||||
compareBy { sectionKey -> sectionOrder.indexOf(sectionKey).let { if (it == -1) Int.MAX_VALUE else it } }
|
||||
)
|
||||
allReleaseNotes.keys.sortedBy{ sectionKey ->
|
||||
sectionOrder.indexOf(sectionKey).takeIf { it >= 0 } ?: Int.MAX_VALUE
|
||||
}
|
||||
|
||||
sortedSections.forEach { sectionHeader ->
|
||||
val notes = allReleaseNotes[sectionHeader]!!
|
||||
@@ -273,7 +274,12 @@ class ExtractReleaseNotesCommand : CliktCommand() {
|
||||
private val workingDir = File("").absoluteFile
|
||||
|
||||
// --- Data Structures ---
|
||||
private data class ReleaseNoteItem(val issueId: String?, val description: String, val prId: String, val prUrl: String)
|
||||
private data class ReleaseNoteItem(
|
||||
val issueId: String?,
|
||||
val description: String,
|
||||
val prId: String,
|
||||
val prUrl: String,
|
||||
)
|
||||
|
||||
private enum class PrProcessingStatus {
|
||||
Extracted,
|
||||
|
||||
@@ -50,7 +50,6 @@ private val jewelApiVersionTemplate =
|
||||
|/** The Jewel API version for this build, expressed as a string. E.g.: "0.30.0" */
|
||||
|public val JewelBuild.apiVersionString: String
|
||||
| get() = "%%JEWEL_VERSION%%"
|
||||
|
|
||||
"""
|
||||
.trimMargin()
|
||||
|
||||
|
||||
@@ -11,22 +11,21 @@ import kotlin.time.Duration.Companion.minutes
|
||||
private fun printHelp() {
|
||||
println(
|
||||
"""
|
||||
Usage: kotlin metalava-signatures.main.kts <command> [options]
|
||||
Commands:
|
||||
update Generate and update API signature dumps.
|
||||
validate Validate the current signatures against previously generated ones.
|
||||
|
||||
Options:
|
||||
--release <version> Tells Metalava to create a versioned release archival dump (or validate against one).
|
||||
If omitted, it will use the current Jewel API version from gradle.properties.
|
||||
--module <path> Only checks/generates the dump for one module (e.g., ':ui').
|
||||
--stable-only Only run tasks for the stable API surface.
|
||||
--experimental-only Only run tasks for the experimental API surface.
|
||||
--force Forces a clean build before running the tasks.
|
||||
--help Display this help and exit.
|
||||
|Usage: kotlin metalava-signatures.main.kts <command> [options]
|
||||
|Commands:
|
||||
| update Generate and update API signature dumps.
|
||||
| validate Validate the current signatures against previously generated ones.
|
||||
|
|
||||
|Options:
|
||||
| --release <version> Tells Metalava to create a versioned release archival dump (or validate against one).
|
||||
| If omitted, it will use the current Jewel API version from gradle.properties.
|
||||
| --module <path> Only checks/generates the dump for one module (e.g., ':ui').
|
||||
| --stable-only Only run tasks for the stable API surface.
|
||||
| --experimental-only Only run tasks for the experimental API surface.
|
||||
| --force Forces a clean build before running the tasks.
|
||||
| --help Display this help and exit.
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
.trimMargin())
|
||||
}
|
||||
|
||||
print("⏳ Locating Jewel folder...")
|
||||
@@ -99,6 +98,10 @@ while (argIterator.hasNext()) {
|
||||
exitProcess(1)
|
||||
}
|
||||
taskPath = "$modulePath:"
|
||||
|
||||
if (!taskPath.startsWith(":")) {
|
||||
taskPath = ":$taskPath"
|
||||
}
|
||||
}
|
||||
"--stable-only" -> {
|
||||
if (apiSurface != null) {
|
||||
|
||||
Reference in New Issue
Block a user