diff --git a/platform/jewel/gradle/libs.versions.toml b/platform/jewel/gradle/libs.versions.toml
index ca6211168475..39d4c2ed3dcc 100644
--- a/platform/jewel/gradle/libs.versions.toml
+++ b/platform/jewel/gradle/libs.versions.toml
@@ -4,8 +4,8 @@ composeDesktop = "1.8.0-alpha04"
detekt = "1.23.6"
dokka = "2.0.0"
filepicker = "3.1.0"
-idea = "251.23774.109"
-intelliJPlatformBuild = "251.23774.109-EAP-SNAPSHOT"
+idea = "251.23774.318"
+intelliJPlatformBuild = "251.23774.318-EAP-SNAPSHOT"
ideaPlugin = "2.4.0"
jna = "5.17.0"
kotlin = "2.1.10"
diff --git a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/JewelComposePanelWrapper.kt b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/JewelComposePanelWrapper.kt
index d2468190178d..859d164825f3 100644
--- a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/JewelComposePanelWrapper.kt
+++ b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/JewelComposePanelWrapper.kt
@@ -13,16 +13,16 @@ import androidx.compose.ui.platform.LocalWindowInfo
import androidx.compose.ui.unit.toSize
import com.intellij.openapi.actionSystem.DataSink
import com.intellij.openapi.actionSystem.UiDataProvider
-import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.PathManager
-import com.intellij.openapi.util.registry.Registry
import java.awt.BorderLayout
+import java.io.File
import javax.swing.JComponent
import javax.swing.JPanel
import org.jetbrains.jewel.bridge.actionSystem.ComponentDataProviderBridge
import org.jetbrains.jewel.bridge.theme.SwingBridgeTheme
import org.jetbrains.jewel.foundation.ExperimentalJewelApi
import org.jetbrains.jewel.foundation.InternalJewelApi
+import org.jetbrains.jewel.foundation.util.JewelLogger
@Suppress("ktlint:standard:function-naming", "FunctionName") // Swing to Compose bridge API
public fun JewelComposePanel(config: ComposePanel.() -> Unit = {}, content: @Composable () -> Unit): JComponent =
@@ -85,10 +85,12 @@ public fun JewelToolWindowNoThemeComposePanel(
private fun createJewelComposePanel(config: ComposePanel.(JewelComposePanelWrapper) -> Unit): JewelComposePanelWrapper {
if (System.getProperty("skiko.library.path") == null) {
- System.setProperty("skiko.library.path", PathManager.getLibPath() + "/skiko-awt-runtime-all")
- }
- if (ApplicationManager.getApplication().isInternal) {
- System.setProperty("compose.swing.render.on.graphics", Registry.stringValue("compose.swing.render.on.graphics"))
+ val bundledSkikoFolder = File(PathManager.getLibPath(), "/skiko-awt-runtime-all")
+ if (bundledSkikoFolder.isDirectory && bundledSkikoFolder.canRead()) {
+ System.setProperty("skiko.library.path", PathManager.getLibPath() + "/skiko-awt-runtime-all")
+ } else {
+ JewelLogger.getInstance("SkikoLoader").warn("Bundled Skiko not found/not readable, falling back to default")
+ }
}
val jewelPanel = JewelComposePanelWrapper()
jewelPanel.layout = BorderLayout()
diff --git a/platform/jewel/markdown/int-ui-standalone-styling/src/main/resources/intellij.platform.jewel.markdown.intUiStandaloneStyling.xml b/platform/jewel/markdown/int-ui-standalone-styling/src/main/resources/intellij.platform.jewel.markdown.intUiStandaloneStyling.xml
index 573a8fb14ccf..58b6378c94e2 100644
--- a/platform/jewel/markdown/int-ui-standalone-styling/src/main/resources/intellij.platform.jewel.markdown.intUiStandaloneStyling.xml
+++ b/platform/jewel/markdown/int-ui-standalone-styling/src/main/resources/intellij.platform.jewel.markdown.intUiStandaloneStyling.xml
@@ -1,9 +1,9 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/platform/jewel/samples/ide-plugin/build.gradle.kts b/platform/jewel/samples/ide-plugin/build.gradle.kts
index 6cd7c8db975a..d899c2f861d6 100644
--- a/platform/jewel/samples/ide-plugin/build.gradle.kts
+++ b/platform/jewel/samples/ide-plugin/build.gradle.kts
@@ -32,21 +32,19 @@ repositories {
}
dependencies {
- intellijPlatform { intellijIdeaCommunity(libs.versions.idea) }
+ intellijPlatform {
+ intellijIdeaCommunity(libs.versions.idea)
- implementation(projects.samples.showcase) { exclude(group = "org.jetbrains.kotlinx") }
- implementation(projects.ideLafBridge) { exclude(group = "org.jetbrains.kotlinx") }
- implementation(projects.markdown.ideLafBridgeStyling) { exclude(group = "org.jetbrains.kotlinx") }
-
- implementation(compose.desktop.currentOs) {
- exclude(group = "org.jetbrains.compose.material")
- exclude(group = "org.jetbrains.kotlinx")
+ bundledModule("intellij.platform.jewel.foundation")
+ bundledModule("intellij.platform.jewel.ui")
+ bundledModule("intellij.platform.jewel.ideLafBridge")
+ bundledModule("intellij.platform.jewel.markdown.core")
+ bundledModule("intellij.platform.jewel.markdown.ideLafBridgeStyling")
+ bundledModule("intellij.libraries.compose.foundation.desktop")
+ bundledModule("intellij.libraries.skiko")
}
- // TODO remove once https://youtrack.jetbrains.com/issue/IJPL-166436 is fixed
- implementation("androidx.lifecycle:lifecycle-common-jvm:2.8.5") { exclude(group = "org.jetbrains.kotlinx") }
- implementation("androidx.lifecycle:lifecycle-runtime-desktop:2.8.5") { exclude(group = "org.jetbrains.kotlinx") }
- // END TODO
+ implementation(projects.samples.showcase) { exclude(group = "org.jetbrains.kotlinx") }
}
intellijPlatform {
diff --git a/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt b/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt
index 45cc2485e8ba..6eab2a0cf746 100644
--- a/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt
+++ b/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt
@@ -49,9 +49,7 @@ import org.jetbrains.jewel.bridge.JewelComposePanel
import org.jetbrains.jewel.bridge.medium
import org.jetbrains.jewel.foundation.theme.JewelTheme
import org.jetbrains.jewel.ui.component.DefaultButton
-import org.jetbrains.jewel.ui.component.EditableListComboBox
import org.jetbrains.jewel.ui.component.Icon
-import org.jetbrains.jewel.ui.component.ListComboBox
import org.jetbrains.jewel.ui.component.OutlinedButton
import org.jetbrains.jewel.ui.component.Text
import org.jetbrains.jewel.ui.component.TextArea
@@ -278,12 +276,12 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() {
Text("Not editable")
Text(text = "Selected item: $selectedText")
- ListComboBox(
- items = comboBoxItems,
- selectedIndex = selectedIndex,
- onSelectedItemChange = { selectedIndex = it },
- modifier = Modifier.width(200.dp),
- )
+ // ListComboBox(
+ // items = comboBoxItems,
+ // selectedIndex = selectedIndex,
+ // onSelectedItemChange = { selectedIndex = it },
+ // modifier = Modifier.width(200.dp),
+ // )
}
Column {
@@ -293,13 +291,13 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() {
Text("Not editable + disabled")
Text(text = "Selected item: $selectedText")
- ListComboBox(
- items = comboBoxItems,
- selectedIndex = selectedIndex,
- onSelectedItemChange = { selectedIndex = it },
- modifier = Modifier.width(200.dp),
- enabled = false,
- )
+ // ListComboBox(
+ // items = comboBoxItems,
+ // selectedIndex = selectedIndex,
+ // onSelectedItemChange = { selectedIndex = it },
+ // modifier = Modifier.width(200.dp),
+ // enabled = false,
+ // )
}
Column {
@@ -309,13 +307,13 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() {
Text("Editable")
Text(text = "Selected item: $selectedText")
- EditableListComboBox(
- items = comboBoxItems,
- selectedIndex = selectedIndex,
- onSelectedItemChange = { selectedIndex = it },
- modifier = Modifier.width(200.dp),
- maxPopupHeight = 150.dp,
- )
+ // EditableListComboBox(
+ // items = comboBoxItems,
+ // selectedIndex = selectedIndex,
+ // onSelectedItemChange = { selectedIndex = it },
+ // modifier = Modifier.width(200.dp),
+ // maxPopupHeight = 150.dp,
+ // )
}
Column {
@@ -325,13 +323,13 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() {
Text("Editable + disabled")
Text(text = "Selected item: $selectedText")
- EditableListComboBox(
- items = comboBoxItems,
- selectedIndex = selectedIndex,
- onSelectedItemChange = { selectedIndex = it },
- modifier = Modifier.width(200.dp),
- enabled = false,
- )
+ // EditableListComboBox(
+ // items = comboBoxItems,
+ // selectedIndex = selectedIndex,
+ // onSelectedItemChange = { selectedIndex = it },
+ // modifier = Modifier.width(200.dp),
+ // enabled = false,
+ // )
}
}
}
diff --git a/platform/jewel/samples/ide-plugin/src/main/resources/META-INF/plugin.xml b/platform/jewel/samples/ide-plugin/src/main/resources/META-INF/plugin.xml
index f70b089d90da..49df47b9759c 100644
--- a/platform/jewel/samples/ide-plugin/src/main/resources/META-INF/plugin.xml
+++ b/platform/jewel/samples/ide-plugin/src/main/resources/META-INF/plugin.xml
@@ -9,7 +9,15 @@ A plugin that demonstrates the capabilities of the Jewel library and Compose.
See the Jewel repository for more information.
]]>
- com.intellij.modules.platform
+
+
+
+
+
+
+
+
+
messages.JewelBundle
diff --git a/platform/jewel/samples/showcase/build.gradle.kts b/platform/jewel/samples/showcase/build.gradle.kts
index adae6f9f4c60..ab263e2bad96 100644
--- a/platform/jewel/samples/showcase/build.gradle.kts
+++ b/platform/jewel/samples/showcase/build.gradle.kts
@@ -6,9 +6,9 @@ plugins {
}
dependencies {
- implementation(project(":foundation"))
- implementation(project(":ui"))
- implementation(projects.markdown.core)
+ compileOnly(project(":foundation"))
+ compileOnly(project(":ui"))
+ compileOnly(projects.markdown.core)
testImplementation(compose.desktop.uiTestJUnit4)
testImplementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") }
}