diff --git a/platform/jewel/.idea/inspectionProfiles/Project_Default.xml b/platform/jewel/.idea/inspectionProfiles/Project_Default.xml
index 422f98913247..0886d6c091eb 100644
--- a/platform/jewel/.idea/inspectionProfiles/Project_Default.xml
+++ b/platform/jewel/.idea/inspectionProfiles/Project_Default.xml
@@ -1,6 +1,1016 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/platform/jewel/.idea/runConfigurations/IDE_sample.xml b/platform/jewel/.idea/runConfigurations/IDE_sample.xml
index 5e3b4a57da17..3ba7c5d9c4f1 100644
--- a/platform/jewel/.idea/runConfigurations/IDE_sample.xml
+++ b/platform/jewel/.idea/runConfigurations/IDE_sample.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/platform/jewel/.idea/runConfigurations/Stand_alone_sample.xml b/platform/jewel/.idea/runConfigurations/Stand_alone_sample.xml
index bc5fa7bfd046..b3e90b2b3d03 100644
--- a/platform/jewel/.idea/runConfigurations/Stand_alone_sample.xml
+++ b/platform/jewel/.idea/runConfigurations/Stand_alone_sample.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/platform/jewel/compose-utils/build.gradle.kts b/platform/jewel/compose-utils/build.gradle.kts
new file mode 100644
index 000000000000..8f1e3da146b1
--- /dev/null
+++ b/platform/jewel/compose-utils/build.gradle.kts
@@ -0,0 +1,13 @@
+plugins {
+ alias(libs.plugins.kotlinJvm)
+ alias(libs.plugins.composeDesktop)
+}
+
+
+dependencies {
+ api(compose.desktop.currentOs) {
+ exclude(group = "org.jetbrains.compose.material")
+ }
+ implementation(libs.jna)
+ implementation(libs.kotlinx.serialization.json)
+}
\ No newline at end of file
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/ColorInterop.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/ColorInterop.kt
similarity index 76%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/ColorInterop.kt
rename to platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/ColorInterop.kt
index f36f5278ff0b..672d5c8843d2 100644
--- a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/ColorInterop.kt
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/ColorInterop.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel
+package org.jetbrains.jewel.util
import androidx.compose.ui.graphics.Color
diff --git a/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/IntExtensions.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/IntExtensions.kt
new file mode 100644
index 000000000000..2c60c01682ae
--- /dev/null
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/IntExtensions.kt
@@ -0,0 +1,7 @@
+package org.jetbrains.jewel.util
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.platform.LocalDensity
+
+@Composable
+fun Int.pxToDp() = with(LocalDensity.current) { this@pxToDp.toDp() }
\ No newline at end of file
diff --git a/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/LazyListStateExtensions.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/LazyListStateExtensions.kt
new file mode 100644
index 000000000000..051e2d1c72dd
--- /dev/null
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/LazyListStateExtensions.kt
@@ -0,0 +1,6 @@
+package org.jetbrains.jewel.util
+
+import androidx.compose.foundation.lazy.LazyListState
+
+val LazyListState.visibleItemsRange
+ get() = firstVisibleItemIndex..firstVisibleItemIndex + layoutInfo.visibleItemsInfo.size
\ No newline at end of file
diff --git a/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/ModifierExtensions.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/ModifierExtensions.kt
new file mode 100644
index 000000000000..2e7f6e33a772
--- /dev/null
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/ModifierExtensions.kt
@@ -0,0 +1,6 @@
+package org.jetbrains.jewel.util
+
+import androidx.compose.ui.Modifier
+
+fun Modifier.appendIf(condition: Boolean, transformer: Modifier.() -> Modifier): Modifier =
+ if (!condition) this else transformer()
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/OsUtils.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/OsUtils.kt
similarity index 89%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/OsUtils.kt
rename to platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/OsUtils.kt
index ec5645d493c2..254e8b80e06d 100644
--- a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/OsUtils.kt
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/OsUtils.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel
+package org.jetbrains.jewel.util
private val osName = System.getProperty("os.name")
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FileProvider.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FileProvider.kt
similarity index 93%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FileProvider.kt
rename to platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FileProvider.kt
index 3f848bbd255d..11175ad1ea63 100644
--- a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FileProvider.kt
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FileProvider.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.font
+package org.jetbrains.jewel.util.font
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FontFilesProvider.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FontFilesProvider.kt
similarity index 97%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FontFilesProvider.kt
rename to platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FontFilesProvider.kt
index d827dc85dc46..9de5ac7cb2e7 100644
--- a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FontFilesProvider.kt
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FontFilesProvider.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.font
+package org.jetbrains.jewel.util.font
import com.sun.jna.platform.win32.Advapi32Util
import com.sun.jna.platform.win32.WinReg
@@ -18,9 +18,9 @@ import kotlinx.coroutines.withContext
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
-import org.jetbrains.jewel.isLinux
-import org.jetbrains.jewel.isMacOs
-import org.jetbrains.jewel.isWindows
+import org.jetbrains.jewel.util.isLinux
+import org.jetbrains.jewel.util.isMacOs
+import org.jetbrains.jewel.util.isWindows
import java.io.File
import java.util.TreeMap
import java.util.zip.ZipFile
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FontsLoader.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FontsLoader.kt
similarity index 99%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FontsLoader.kt
rename to platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FontsLoader.kt
index 66e3c108d7bf..2650cea51313 100644
--- a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/FontsLoader.kt
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/FontsLoader.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.font
+package org.jetbrains.jewel.util.font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontStyle
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/MacOsSystemProfilerFontListingOutput.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/MacOsSystemProfilerFontListingOutput.kt
similarity index 98%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/MacOsSystemProfilerFontListingOutput.kt
rename to platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/MacOsSystemProfilerFontListingOutput.kt
index 7d8f6dd64a8e..c815c824b6c4 100644
--- a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/MacOsSystemProfilerFontListingOutput.kt
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/MacOsSystemProfilerFontListingOutput.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.font
+package org.jetbrains.jewel.util.font
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerialName
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/SystemFontFamily.kt b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/SystemFontFamily.kt
similarity index 84%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/SystemFontFamily.kt
rename to platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/SystemFontFamily.kt
index 6b58ca40fc03..67543308febd 100644
--- a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/font/SystemFontFamily.kt
+++ b/platform/jewel/compose-utils/src/main/kotlin/org/jetbrains/jewel/util/font/SystemFontFamily.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.font
+package org.jetbrains.jewel.util.font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.platform.FileFont
diff --git a/platform/jewel/library/build.gradle.kts b/platform/jewel/core/build.gradle.kts
similarity index 79%
rename from platform/jewel/library/build.gradle.kts
rename to platform/jewel/core/build.gradle.kts
index 4c73aa3216f4..6a8b80f525c0 100644
--- a/platform/jewel/library/build.gradle.kts
+++ b/platform/jewel/core/build.gradle.kts
@@ -17,11 +17,7 @@ kotlin {
}
dependencies {
- compileOnly(compose.desktop.currentOs) {
- exclude(group = "org.jetbrains.compose.material")
- }
- implementation(libs.kotlinx.serialization.json)
- implementation(libs.jna)
+ api(projects.composeUtils)
}
val sourcesJar by tasks.creating(Jar::class) {
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/Insets.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/Insets.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/Insets.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/Insets.kt
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJMetrics.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJMetrics.kt
similarity index 96%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJMetrics.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJMetrics.kt
index 243e73589086..554d6fdb2517 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJMetrics.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJMetrics.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.shape.CornerSize
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJPainters.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJPainters.kt
similarity index 96%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJPainters.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJPainters.kt
index 07931130c812..c4d186499ad3 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJPainters.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJPainters.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.painter.Painter
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJPalette.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJPalette.kt
similarity index 98%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJPalette.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJPalette.kt
index 7296390b5689..acdf34a44ec6 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJPalette.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJPalette.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJTheme.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJTheme.kt
similarity index 62%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJTheme.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJTheme.kt
index 77bb5831a578..3b4a0c76b395 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJTheme.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJTheme.kt
@@ -1,33 +1,32 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel
import androidx.compose.foundation.LocalIndication
import androidx.compose.foundation.LocalScrollbarStyle
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.compositionLocalOf
-import org.jetbrains.jewel.NoIndication
+import org.jetbrains.jewel.styles.ButtonStyle
+import org.jetbrains.jewel.styles.CheckboxStyle
+import org.jetbrains.jewel.styles.FrameStyle
+import org.jetbrains.jewel.styles.LocalButtonStyle
+import org.jetbrains.jewel.styles.LocalCheckboxStyle
+import org.jetbrains.jewel.styles.LocalFrameStyle
+import org.jetbrains.jewel.styles.LocalIconButtonStyle
+import org.jetbrains.jewel.styles.LocalRadioButtonStyle
+import org.jetbrains.jewel.styles.LocalSeparatorStyle
+import org.jetbrains.jewel.styles.LocalSliderStyle
+import org.jetbrains.jewel.styles.LocalTabStyle
+import org.jetbrains.jewel.styles.LocalTextFieldStyle
import org.jetbrains.jewel.styles.LocalTextStyle
+import org.jetbrains.jewel.styles.LocalTreeViewStyle
+import org.jetbrains.jewel.styles.RadioButtonStyle
+import org.jetbrains.jewel.styles.ScrollbarStyle
+import org.jetbrains.jewel.styles.SeparatorStyle
+import org.jetbrains.jewel.styles.SliderStyle
+import org.jetbrains.jewel.styles.TabStyle
+import org.jetbrains.jewel.styles.TextFieldStyle
+import org.jetbrains.jewel.styles.TreeViewStyle
import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.styles.ButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.CheckboxStyle
-import org.jetbrains.jewel.theme.intellij.styles.FrameStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalCheckboxStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalFrameStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalIconButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalRadioButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalSeparatorStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalSliderStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalTabStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalTextFieldStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalTreeViewStyle
-import org.jetbrains.jewel.theme.intellij.styles.RadioButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.ScrollbarStyle
-import org.jetbrains.jewel.theme.intellij.styles.SeparatorStyle
-import org.jetbrains.jewel.theme.intellij.styles.SliderStyle
-import org.jetbrains.jewel.theme.intellij.styles.TabStyle
-import org.jetbrains.jewel.theme.intellij.styles.TextFieldStyle
-import org.jetbrains.jewel.theme.intellij.styles.TreeViewStyle
val LocalTypography = compositionLocalOf { localNotProvided() }
val LocalMetrics = compositionLocalOf { localNotProvided() }
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJThemeDefinition.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJThemeDefinition.kt
similarity index 80%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJThemeDefinition.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJThemeDefinition.kt
index bb0de6d81934..684fc59c986c 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJThemeDefinition.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJThemeDefinition.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel
data class IntelliJThemeDefinition(
val palette: IntelliJPalette,
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJTypography.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJTypography.kt
similarity index 86%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJTypography.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJTypography.kt
index 4d482f35adaa..9dcc5d31e008 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJTypography.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/IntelliJTypography.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel
import androidx.compose.ui.text.TextStyle
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/NoIndication.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/NoIndication.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/NoIndication.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/NoIndication.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/Orientation.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/Orientation.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/Orientation.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/Orientation.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/ShapeModifier.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/ShapeModifier.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/ShapeModifier.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/ShapeModifier.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/ShapeStroke.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/ShapeStroke.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/ShapeStroke.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/ShapeStroke.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/Shapes.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/Shapes.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/Shapes.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/Shapes.kt
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Button.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Button.kt
similarity index 94%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Button.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Button.kt
index b0443ace4adc..9250df6ce343 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Button.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Button.kt
@@ -1,6 +1,6 @@
@file:OptIn(ExperimentalComposeUiApi::class)
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.focusable
@@ -32,18 +32,17 @@ import androidx.compose.ui.input.pointer.onPointerEvent
import androidx.compose.ui.semantics.Role
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
-import org.jetbrains.jewel.components.ImageSliceValues
import org.jetbrains.jewel.components.state.ButtonMouseState
import org.jetbrains.jewel.components.state.ButtonState
import org.jetbrains.jewel.modifiers.background
import org.jetbrains.jewel.shape
+import org.jetbrains.jewel.styles.ButtonAppearance
+import org.jetbrains.jewel.styles.ButtonStyle
+import org.jetbrains.jewel.styles.LocalButtonStyle
+import org.jetbrains.jewel.styles.LocalIconButtonStyle
import org.jetbrains.jewel.styles.LocalTextStyle
import org.jetbrains.jewel.styles.Styles
import org.jetbrains.jewel.styles.withTextStyle
-import org.jetbrains.jewel.theme.intellij.styles.ButtonAppearance
-import org.jetbrains.jewel.theme.intellij.styles.ButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalIconButtonStyle
@Composable
fun IconButton(
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Checkbox.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Checkbox.kt
similarity index 98%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Checkbox.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Checkbox.kt
index e250082f230d..17fa34e5c2db 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Checkbox.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Checkbox.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.focusable
import androidx.compose.foundation.interaction.FocusInteraction
@@ -42,11 +42,11 @@ import androidx.compose.ui.unit.Dp
import org.jetbrains.jewel.components.state.ButtonMouseState
import org.jetbrains.jewel.components.state.CheckboxState
import org.jetbrains.jewel.shape
+import org.jetbrains.jewel.styles.CheckboxStyle
+import org.jetbrains.jewel.styles.LocalCheckboxStyle
import org.jetbrains.jewel.styles.LocalTextStyle
import org.jetbrains.jewel.styles.Styles
import org.jetbrains.jewel.styles.withTextStyle
-import org.jetbrains.jewel.theme.intellij.styles.CheckboxStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalCheckboxStyle
@Composable
fun Checkbox(
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/CircularProgressIndicator.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/CircularProgressIndicator.kt
similarity index 96%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/CircularProgressIndicator.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/CircularProgressIndicator.kt
index c76b30292b6e..e38e4c350235 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/CircularProgressIndicator.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/CircularProgressIndicator.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.infiniteRepeatable
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Divider.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Divider.kt
similarity index 92%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Divider.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Divider.kt
index 3f8e295b1379..ad00c268c718 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Divider.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Divider.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
@@ -13,7 +13,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import org.jetbrains.jewel.Orientation
-import org.jetbrains.jewel.theme.intellij.LocalPalette
+import org.jetbrains.jewel.LocalPalette
@Composable
fun Divider(
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/FocusableLazyColumn.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/FocusableLazyColumn.kt
similarity index 98%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/FocusableLazyColumn.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/FocusableLazyColumn.kt
index 53e715e4b9a4..405820bde698 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/FocusableLazyColumn.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/FocusableLazyColumn.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.animation.core.FiniteAnimationSpec
import androidx.compose.foundation.ExperimentalFoundationApi
@@ -45,7 +45,7 @@ import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.dp
-import org.jetbrains.jewel.theme.intellij.visibleItemsRange
+import org.jetbrains.jewel.util.visibleItemsRange
import kotlin.math.max
import kotlin.math.min
@@ -259,6 +259,7 @@ fun FocusableLazyColumn(
}
}
+@OptIn(ExperimentalFoundationApi::class)
private fun LazyListScope.stickyHeader(
entry: LazyListScopeContainer.Entry.StickyHeader,
onItemFocused: (Int) -> Unit
@@ -295,6 +296,7 @@ private fun LazyListScope.items(
}
}
+@OptIn(ExperimentalFoundationApi::class)
private fun LazyListScope.item(
entry: LazyListScopeContainer.Entry.Item,
onItemFocused: (Int) -> Unit
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/GroupHeader.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/GroupHeader.kt
similarity index 91%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/GroupHeader.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/GroupHeader.kt
index f4fe96599780..4800e4dd5881 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/GroupHeader.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/GroupHeader.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/Icon.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Icon.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/Icon.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Icon.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/ImageSlice.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/ImageSlice.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/ImageSlice.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/ImageSlice.kt
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Panel.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Panel.kt
similarity index 83%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Panel.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Panel.kt
index 2eb9234ec55d..997d389a44e4 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Panel.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Panel.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.background
@@ -7,7 +7,7 @@ import androidx.compose.foundation.layout.BoxScope
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
-import org.jetbrains.jewel.theme.intellij.LocalPalette
+import org.jetbrains.jewel.LocalPalette
@Composable
fun Surface(modifier: Modifier = Modifier, content: @Composable BoxScope.() -> Unit) {
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/RadioButton.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/RadioButton.kt
similarity index 97%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/RadioButton.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/RadioButton.kt
index 44bd1f3ceb3c..f80557e8a93a 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/RadioButton.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/RadioButton.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.focusable
import androidx.compose.foundation.interaction.FocusInteraction
@@ -40,12 +40,12 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.Dp
import org.jetbrains.jewel.components.state.ButtonMouseState
import org.jetbrains.jewel.shape
+import org.jetbrains.jewel.styles.LocalRadioButtonStyle
import org.jetbrains.jewel.styles.LocalTextStyle
+import org.jetbrains.jewel.styles.RadioButtonState
+import org.jetbrains.jewel.styles.RadioButtonStyle
import org.jetbrains.jewel.styles.Styles
import org.jetbrains.jewel.styles.withTextStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalRadioButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.RadioButtonState
-import org.jetbrains.jewel.theme.intellij.styles.RadioButtonStyle
@Composable
fun RadioButton(
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Separator.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Separator.kt
similarity index 91%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Separator.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Separator.kt
index ca2e11ef467d..b8ade38afe77 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Separator.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Separator.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxHeight
@@ -13,8 +13,8 @@ import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import org.jetbrains.jewel.Orientation
-import org.jetbrains.jewel.theme.intellij.styles.LocalSeparatorStyle
-import org.jetbrains.jewel.theme.intellij.styles.SeparatorStyle
+import org.jetbrains.jewel.styles.LocalSeparatorStyle
+import org.jetbrains.jewel.styles.SeparatorStyle
@Composable
fun Separator(
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Slider.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Slider.kt
similarity index 83%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Slider.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Slider.kt
index dee134d5aef9..9d7c317aa8fb 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Slider.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Slider.kt
@@ -1,15 +1,15 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.awt.SwingPanel
import org.jetbrains.jewel.Orientation
-import org.jetbrains.jewel.theme.intellij.styles.LocalSliderStyle
-import org.jetbrains.jewel.theme.intellij.styles.SliderAppearance
-import org.jetbrains.jewel.theme.intellij.styles.SliderStyle
-import org.jetbrains.jewel.theme.intellij.styles.appearance
-import org.jetbrains.jewel.toAwtColor
+import org.jetbrains.jewel.styles.LocalSliderStyle
+import org.jetbrains.jewel.styles.SliderAppearance
+import org.jetbrains.jewel.styles.SliderStyle
+import org.jetbrains.jewel.styles.appearance
+import org.jetbrains.jewel.util.toAwtColor
import javax.swing.JSlider
import javax.swing.SwingConstants
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Table.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Table.kt
similarity index 99%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Table.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Table.kt
index 29588b59ce67..2bc27839867b 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Table.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Table.kt
@@ -1,6 +1,6 @@
@file:OptIn(ExperimentalTypeInference::class)
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.FlingBehavior
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Tabs.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Tabs.kt
similarity index 96%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Tabs.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Tabs.kt
index a862834ea0c0..d6177b6c54fb 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Tabs.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Tabs.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
@@ -36,12 +36,12 @@ import androidx.compose.ui.semantics.Role
import org.jetbrains.jewel.Orientation
import org.jetbrains.jewel.components.state.TabState
import org.jetbrains.jewel.shape
+import org.jetbrains.jewel.styles.LocalTabStyle
import org.jetbrains.jewel.styles.LocalTextStyle
import org.jetbrains.jewel.styles.Styles
+import org.jetbrains.jewel.styles.TabAppearance
+import org.jetbrains.jewel.styles.TabStyle
import org.jetbrains.jewel.styles.withTextStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalTabStyle
-import org.jetbrains.jewel.theme.intellij.styles.TabAppearance
-import org.jetbrains.jewel.theme.intellij.styles.TabStyle
@Composable
fun TabRow(
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Text.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Text.kt
similarity index 98%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Text.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Text.kt
index dabea81aef5e..71aba7146c5f 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/Text.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/Text.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.text.BasicText
import androidx.compose.foundation.text.InlineTextContent
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/TextField.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/TextField.kt
similarity index 94%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/TextField.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/TextField.kt
index 773e90b9eae7..1d54f01fa3d6 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/TextField.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/TextField.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.focusable
import androidx.compose.foundation.interaction.FocusInteraction
@@ -19,9 +19,9 @@ import androidx.compose.ui.graphics.drawscope.Stroke
import kotlinx.coroutines.flow.onEach
import org.jetbrains.jewel.components.state.TextFieldState
import org.jetbrains.jewel.shape
+import org.jetbrains.jewel.styles.LocalTextFieldStyle
import org.jetbrains.jewel.styles.LocalTextStyle
-import org.jetbrains.jewel.theme.intellij.styles.LocalTextFieldStyle
-import org.jetbrains.jewel.theme.intellij.styles.TextFieldStyle
+import org.jetbrains.jewel.styles.TextFieldStyle
@Composable
fun TextField(
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/TreeView.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/TreeView.kt
similarity index 97%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/TreeView.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/TreeView.kt
index e0f561090ac7..5be57e453f96 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/TreeView.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/TreeView.kt
@@ -1,6 +1,6 @@
@file:OptIn(ExperimentalComposeUiApi::class)
-package org.jetbrains.jewel.theme.intellij.components
+package org.jetbrains.jewel.components
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
@@ -45,12 +45,12 @@ import androidx.compose.ui.input.pointer.isMetaPressed
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.times
import kotlinx.coroutines.launch
-import org.jetbrains.jewel.theme.intellij.appendIf
-import org.jetbrains.jewel.theme.intellij.styles.LocalTreeViewStyle
-import org.jetbrains.jewel.theme.intellij.styles.TreeViewState
-import org.jetbrains.jewel.theme.intellij.styles.TreeViewStyle
-import org.jetbrains.jewel.theme.intellij.styles.updateTreeViewAppearanceTransition
-import org.jetbrains.jewel.theme.intellij.visibleItemsRange
+import org.jetbrains.jewel.styles.LocalTreeViewStyle
+import org.jetbrains.jewel.styles.TreeViewState
+import org.jetbrains.jewel.styles.TreeViewStyle
+import org.jetbrains.jewel.styles.updateTreeViewAppearanceTransition
+import org.jetbrains.jewel.util.appendIf
+import org.jetbrains.jewel.util.visibleItemsRange
import org.jetbrains.skiko.hostOs
import java.io.File
import java.nio.file.Path
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/state/ButtonState.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/state/ButtonState.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/state/ButtonState.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/state/ButtonState.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/state/CheckboxState.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/state/CheckboxState.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/state/CheckboxState.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/state/CheckboxState.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/state/TabState.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/state/TabState.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/state/TabState.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/state/TabState.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/state/TextFieldState.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/state/TextFieldState.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/components/state/TextFieldState.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/components/state/TextFieldState.kt
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/modifiers/Background.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/modifiers/Background.kt
similarity index 95%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/modifiers/Background.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/modifiers/Background.kt
index c9b9d7e2d94d..1a531bf2a935 100644
--- a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/modifiers/Background.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/modifiers/Background.kt
@@ -12,27 +12,25 @@ import androidx.compose.ui.unit.IntSize
import org.jetbrains.jewel.components.ImageSlice
import org.jetbrains.jewel.components.ImageSliceValues
-fun Modifier.background(image: ImageBitmap, maintainAspect: Boolean = true): Modifier {
- return then(
+fun Modifier.background(image: ImageBitmap, maintainAspect: Boolean = true): Modifier =
+ then(
DrawImageBackgroundModifier(image, maintainAspect, debugInspectorInfo {
name = "background"
properties["image"] = image
})
)
-}
fun Modifier.background(image: ImageBitmap, slices: ImageSliceValues): Modifier =
background(ImageSlice(image, slices))
-fun Modifier.background(imageSlice: ImageSlice): Modifier {
- return then(
+fun Modifier.background(imageSlice: ImageSlice): Modifier =
+ then(
DrawImageSliceBackgroundModifier(imageSlice, debugInspectorInfo {
name = "background"
properties["image"] = imageSlice.image
properties["slices"] = imageSlice.slices
})
)
-}
abstract class CustomBackgroundModifier(
inspectorInfo: InspectorInfo.() -> Unit
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/ButtonStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/ButtonStyle.kt
similarity index 94%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/ButtonStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/ButtonStyle.kt
index ed8a91e0596f..6d0d84187fbd 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/ButtonStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/ButtonStyle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.animation.core.updateTransition
import androidx.compose.foundation.layout.PaddingValues
@@ -16,16 +16,13 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import org.jetbrains.jewel.Insets
+import org.jetbrains.jewel.IntelliJMetrics
+import org.jetbrains.jewel.IntelliJPalette
import org.jetbrains.jewel.ShapeStroke
import org.jetbrains.jewel.animateShapeStroke
import org.jetbrains.jewel.components.state.ButtonAppearanceTransitionState
import org.jetbrains.jewel.components.state.ButtonMouseState
import org.jetbrains.jewel.components.state.ButtonState
-import org.jetbrains.jewel.styles.ControlStyle
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
import org.jetbrains.jewel.toBrush
@Immutable
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/CheckboxStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/CheckboxStyle.kt
similarity index 93%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/CheckboxStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/CheckboxStyle.kt
index f7c8867dfdb6..ff2005e4c41b 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/CheckboxStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/CheckboxStyle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
@@ -12,14 +12,11 @@ import androidx.compose.ui.state.ToggleableState
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
+import org.jetbrains.jewel.IntelliJPainters
+import org.jetbrains.jewel.IntelliJPalette
import org.jetbrains.jewel.ShapeStroke
import org.jetbrains.jewel.components.state.ButtonMouseState
import org.jetbrains.jewel.components.state.CheckboxState
-import org.jetbrains.jewel.styles.ControlStyle
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.IntelliJPainters
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
typealias CheckboxStyle = ControlStyle
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/styles/ControlStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/ControlStyle.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/styles/ControlStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/ControlStyle.kt
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/FrameStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/FrameStyle.kt
similarity index 74%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/FrameStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/FrameStyle.kt
index a9046605067c..ee76808a2477 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/FrameStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/FrameStyle.kt
@@ -1,14 +1,11 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.runtime.ReadOnlyComposable
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.ui.graphics.Color
-import org.jetbrains.jewel.styles.ControlStyle
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
+import org.jetbrains.jewel.IntelliJPalette
typealias FrameStyle = ControlStyle
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/RadioButtonStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/RadioButtonStyle.kt
similarity index 92%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/RadioButtonStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/RadioButtonStyle.kt
index 0ff3cecb117c..fd9cb01acf8f 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/RadioButtonStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/RadioButtonStyle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
@@ -11,13 +11,10 @@ import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
+import org.jetbrains.jewel.IntelliJPainters
+import org.jetbrains.jewel.IntelliJPalette
import org.jetbrains.jewel.ShapeStroke
import org.jetbrains.jewel.components.state.ButtonMouseState
-import org.jetbrains.jewel.styles.ControlStyle
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.IntelliJPainters
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
typealias RadioButtonStyle = ControlStyle
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/ScrollbarStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/ScrollbarStyle.kt
similarity index 89%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/ScrollbarStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/ScrollbarStyle.kt
index 42c6bb250a8d..1ccf1543ebdc 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/ScrollbarStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/ScrollbarStyle.kt
@@ -1,9 +1,9 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.foundation.ScrollbarStyle
import androidx.compose.foundation.shape.RoundedCornerShape
-import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
+import org.jetbrains.jewel.IntelliJMetrics
+import org.jetbrains.jewel.IntelliJPalette
// TODO consider that scrollbars have different behaviors on different OSes
// Scrollbars on IJ do NOT follow the LaF defaults! They are only influenced by the ScrollbarUI being used, which depends on the OS.
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/SeparatorStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/SeparatorStyle.kt
similarity index 83%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/SeparatorStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/SeparatorStyle.kt
index 4caadbf9f097..06b1752b6b59 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/SeparatorStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/SeparatorStyle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.foundation.BorderStroke
import androidx.compose.runtime.Composable
@@ -7,9 +7,8 @@ import androidx.compose.runtime.ReadOnlyComposable
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
+import org.jetbrains.jewel.IntelliJMetrics
+import org.jetbrains.jewel.IntelliJPalette
@Immutable
data class SeparatorStyle(
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/SliderStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/SliderStyle.kt
similarity index 85%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/SliderStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/SliderStyle.kt
index b7b02f849a9b..31c923705fe6 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/SliderStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/SliderStyle.kt
@@ -1,16 +1,13 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.runtime.Composable
import androidx.compose.runtime.ReadOnlyComposable
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
+import org.jetbrains.jewel.IntelliJPalette
import org.jetbrains.jewel.Orientation
-import org.jetbrains.jewel.styles.ControlStyle
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
-import org.jetbrains.jewel.theme.intellij.IntelliJTypography
+import org.jetbrains.jewel.IntelliJTypography
typealias SliderStyle = ControlStyle
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/styles/Styles.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/Styles.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/styles/Styles.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/Styles.kt
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TabStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TabStyle.kt
similarity index 94%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TabStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TabStyle.kt
index 1d72bf7da340..92712c8143f8 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TabStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TabStyle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
@@ -14,13 +14,10 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import org.jetbrains.jewel.BottomLineShape
+import org.jetbrains.jewel.IntelliJPalette
import org.jetbrains.jewel.Orientation
import org.jetbrains.jewel.ShapeStroke
import org.jetbrains.jewel.components.state.TabState
-import org.jetbrains.jewel.styles.ControlStyle
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
typealias TabStyle = ControlStyle
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TextFieldStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TextFieldStyle.kt
similarity index 94%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TextFieldStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TextFieldStyle.kt
index c519b081485a..f2141b345b86 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TextFieldStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TextFieldStyle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.runtime.Composable
@@ -14,13 +14,10 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import org.jetbrains.jewel.Insets
+import org.jetbrains.jewel.IntelliJMetrics
+import org.jetbrains.jewel.IntelliJPalette
import org.jetbrains.jewel.ShapeStroke
import org.jetbrains.jewel.components.state.TextFieldState
-import org.jetbrains.jewel.styles.ControlStyle
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
import org.jetbrains.jewel.toBrush
typealias TextFieldStyle = ControlStyle
diff --git a/platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/styles/TextStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TextStyle.kt
similarity index 100%
rename from platform/jewel/library/src/main/kotlin/org/jetbrains/jewel/styles/TextStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TextStyle.kt
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TreeViewStyle.kt b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TreeViewStyle.kt
similarity index 84%
rename from platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TreeViewStyle.kt
rename to platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TreeViewStyle.kt
index bcae64468c80..cc0f0518d228 100644
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/styles/TreeViewStyle.kt
+++ b/platform/jewel/core/src/main/kotlin/org/jetbrains/jewel/styles/TreeViewStyle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij.styles
+package org.jetbrains.jewel.styles
import androidx.compose.animation.animateColor
import androidx.compose.animation.core.updateTransition
@@ -9,13 +9,10 @@ import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.getValue
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.Dp
-import org.jetbrains.jewel.styles.ControlStyle
-import org.jetbrains.jewel.styles.Styles
-import org.jetbrains.jewel.styles.localNotProvided
-import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
-import org.jetbrains.jewel.theme.intellij.IntelliJPainters
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
-import org.jetbrains.jewel.theme.intellij.PainterProvider
+import org.jetbrains.jewel.IntelliJMetrics
+import org.jetbrains.jewel.IntelliJPainters
+import org.jetbrains.jewel.IntelliJPalette
+import org.jetbrains.jewel.PainterProvider
typealias TreeViewStyle = ControlStyle
diff --git a/platform/jewel/gradle/libs.versions.toml b/platform/jewel/gradle/libs.versions.toml
index 7ce084ed1f4a..212cee051f1a 100644
--- a/platform/jewel/gradle/libs.versions.toml
+++ b/platform/jewel/gradle/libs.versions.toml
@@ -1,7 +1,8 @@
[versions]
composeDesktop = "1.2.1"
coroutines = "1.6.0"
-ideaGradlePlugin = "1.10.0"
+idea = "223.7571.203"
+ideaGradlePlugin = "1.11.0-SNAPSHOT"
jna = "5.10.0"
kotlin = "1.7.10"
kotlinxSerialization = "1.3.1"
@@ -11,6 +12,12 @@ compose-components-splitpane = { module = "org.jetbrains.compose.components:comp
jna = { module = "net.java.dev.jna:jna-platform", version.ref = "jna" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
+ij-platform-ide-core = { module = "com.jetbrains.intellij.platform:ide-core", version.ref = "idea" }
+ij-platform-ide-impl = { module = "com.jetbrains.intellij.platform:ide-impl", version.ref = "idea" }
+ij-platform-core-ui = { module = "com.jetbrains.intellij.platform:core-ui", version.ref = "idea" }
+
+[bundles]
+idea = ["ij-platform-ide-core", "ij-platform-ide-impl", "ij-platform-core-ui"]
[plugins]
composeDesktop = { id = "org.jetbrains.compose", version.ref = "composeDesktop" }
diff --git a/platform/jewel/samples/ide-plugin/build.gradle.kts b/platform/jewel/samples/ide-plugin/build.gradle.kts
new file mode 100644
index 000000000000..f3c1c99d9e21
--- /dev/null
+++ b/platform/jewel/samples/ide-plugin/build.gradle.kts
@@ -0,0 +1,41 @@
+plugins {
+ alias(libs.plugins.kotlinJvm)
+ alias(libs.plugins.composeDesktop)
+ alias(libs.plugins.ideaGradlePlugin)
+}
+
+kotlin {
+ target {
+ compilations.all {
+ kotlinOptions {
+ jvmTarget = "17"
+ freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn", "-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi")
+ }
+ }
+ }
+ sourceSets {
+ all {
+ languageSettings.optIn("kotlinx.coroutines.ExperimentalCoroutinesApi")
+ languageSettings.optIn("kotlin.experimental.ExperimentalTypeInference")
+ languageSettings.optIn("androidx.compose.ui.ExperimentalComposeUiApi")
+ }
+ }
+}
+
+intellij {
+ pluginName.set("Jewel")
+ version.set("LATEST-EAP-SNAPSHOT")
+ plugins.set(listOf("org.jetbrains.kotlin"))
+ version.set("2022.3") // IJ 22.3 RC2
+}
+
+repositories {
+ maven("https://androidx.dev/storage/compose-compiler/repository/")
+ maven("https://www.jetbrains.com/intellij-repository/releases")
+ maven("https://cache-redirector.jetbrains.com/intellij-dependencies")
+ mavenCentral()
+}
+
+dependencies {
+ implementation(projects.themes.darcula.ideBridge)
+}
diff --git a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/demo/JewelDemoToolWindow.kt b/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/JewelDemoToolWindow.kt
similarity index 86%
rename from platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/demo/JewelDemoToolWindow.kt
rename to platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/JewelDemoToolWindow.kt
index a7ad59456fc9..7766f506ca52 100644
--- a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/demo/JewelDemoToolWindow.kt
+++ b/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/JewelDemoToolWindow.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.idea.demo
+package org.jetbrains.jewel.samples.ideplugin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -21,21 +21,21 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.wm.ToolWindow
import com.intellij.openapi.wm.ToolWindowFactory
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import org.jetbrains.jewel.IntelliJTheme
import org.jetbrains.jewel.Orientation
-import org.jetbrains.jewel.theme.idea.IntelliJTheme
-import org.jetbrains.jewel.theme.idea.addComposePanel
-import org.jetbrains.jewel.theme.intellij.IntelliJTheme
-import org.jetbrains.jewel.theme.intellij.components.Button
-import org.jetbrains.jewel.theme.intellij.components.Checkbox
-import org.jetbrains.jewel.theme.intellij.components.CheckboxRow
-import org.jetbrains.jewel.theme.intellij.components.Divider
-import org.jetbrains.jewel.theme.intellij.components.RadioButtonRow
-import org.jetbrains.jewel.theme.intellij.components.Tab
-import org.jetbrains.jewel.theme.intellij.components.TabRow
-import org.jetbrains.jewel.theme.intellij.components.TabScope
-import org.jetbrains.jewel.theme.intellij.components.Text
-import org.jetbrains.jewel.theme.intellij.components.TextField
-import org.jetbrains.jewel.theme.intellij.components.rememberTabContainerState
+import org.jetbrains.jewel.components.Button
+import org.jetbrains.jewel.components.Checkbox
+import org.jetbrains.jewel.components.CheckboxRow
+import org.jetbrains.jewel.components.Divider
+import org.jetbrains.jewel.components.RadioButtonRow
+import org.jetbrains.jewel.components.Tab
+import org.jetbrains.jewel.components.TabRow
+import org.jetbrains.jewel.components.TabScope
+import org.jetbrains.jewel.components.Text
+import org.jetbrains.jewel.components.TextField
+import org.jetbrains.jewel.components.rememberTabContainerState
+import org.jetbrains.jewel.themes.darcula.idebridge.IntelliJTheme
+import org.jetbrains.jewel.themes.darcula.idebridge.addComposePanel
@ExperimentalCoroutinesApi
internal class JewelDemoToolWindow : ToolWindowFactory, DumbAware {
@@ -74,7 +74,10 @@ internal class JewelDemoToolWindow : ToolWindowFactory, DumbAware {
horizontalArrangement = Arrangement.spacedBy(24.dp)
) {
Text("One")
- Divider(orientation = Orientation.Vertical, startIndent = 12.dp)
+ Divider(
+ orientation = Orientation.Vertical,
+ startIndent = 12.dp
+ )
Text("Two")
Divider(orientation = Orientation.Vertical)
Text("Three")
diff --git a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/demo/PKGSDemo.kt b/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/PKGSDemo.kt
similarity index 84%
rename from platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/demo/PKGSDemo.kt
rename to platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/PKGSDemo.kt
index 2d2471d3c567..a7e43f4eec56 100644
--- a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/demo/PKGSDemo.kt
+++ b/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/PKGSDemo.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.idea.demo
+package org.jetbrains.jewel.samples.ideplugin
import androidx.compose.foundation.VerticalScrollbar
import androidx.compose.foundation.layout.Box
@@ -18,13 +18,13 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.wm.ToolWindow
import com.intellij.openapi.wm.ToolWindowFactory
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import org.jetbrains.jewel.theme.idea.IntelliJTheme
-import org.jetbrains.jewel.theme.idea.addComposePanel
-import org.jetbrains.jewel.theme.intellij.components.Surface
-import org.jetbrains.jewel.theme.intellij.components.Text
-import org.jetbrains.jewel.theme.intellij.components.Tree
-import org.jetbrains.jewel.theme.intellij.components.TreeLayout
-import org.jetbrains.jewel.theme.intellij.components.asTree
+import org.jetbrains.jewel.components.Surface
+import org.jetbrains.jewel.components.Text
+import org.jetbrains.jewel.components.Tree
+import org.jetbrains.jewel.components.TreeLayout
+import org.jetbrains.jewel.components.asTree
+import org.jetbrains.jewel.themes.darcula.idebridge.IntelliJTheme
+import org.jetbrains.jewel.themes.darcula.idebridge.addComposePanel
import java.nio.file.Paths
@ExperimentalCoroutinesApi
@@ -47,7 +47,8 @@ internal class PKGSDemo : ToolWindowFactory, DumbAware {
onTreeElementDoubleClick = {
when (it) {
is Tree.Element.Leaf -> println("CIAO ${it.data.absolutePath}")
- is Tree.Element.Node -> tree = tree.replaceElement(it, it.copy(isOpen = !it.isOpen))
+ is Tree.Element.Node -> tree =
+ tree.replaceElement(it, it.copy(isOpen = !it.isOpen))
}
},
rowContent = {
@@ -69,4 +70,4 @@ internal class PKGSDemo : ToolWindowFactory, DumbAware {
}
}
}
-}
+}
\ No newline at end of file
diff --git a/platform/jewel/sample/build.gradle.kts b/platform/jewel/samples/standalone/build.gradle.kts
similarity index 70%
rename from platform/jewel/sample/build.gradle.kts
rename to platform/jewel/samples/standalone/build.gradle.kts
index ed7edaa5e8c0..d3335ddc3d4f 100644
--- a/platform/jewel/sample/build.gradle.kts
+++ b/platform/jewel/samples/standalone/build.gradle.kts
@@ -1,5 +1,3 @@
-@file:Suppress("UnstableApiUsage")
-
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
plugins {
@@ -26,17 +24,13 @@ kotlin {
}
dependencies {
- implementation(compose.desktop.currentOs) {
- exclude(group = "org.jetbrains.compose.material")
- }
- implementation(projects.library)
- implementation(projects.themes.intellij.standalone)
- api(libs.compose.components.splitpane)
+ implementation(projects.themes.darcula.standalone)
+ implementation(libs.compose.components.splitpane)
}
compose.desktop {
application {
- mainClass = "org.jetbrains.jewel.sample.MainKt"
+ mainClass = "org.jetbrains.jewel.samples.standalone.MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg)
packageName = "Jewel Sample"
diff --git a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/FocusableLazyColumnSample.kt b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/FocusableLazyColumnSample.kt
similarity index 77%
rename from platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/FocusableLazyColumnSample.kt
rename to platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/FocusableLazyColumnSample.kt
index b7bec7f7dc6b..839f9acab43a 100644
--- a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/FocusableLazyColumnSample.kt
+++ b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/FocusableLazyColumnSample.kt
@@ -1,6 +1,6 @@
@file:OptIn(ExperimentalFoundationApi::class)
-package org.jetbrains.jewel.sample
+package org.jetbrains.jewel.samples.standalone
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
@@ -15,13 +15,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.window.singleWindowApplication
import kotlinx.coroutines.launch
-import org.jetbrains.jewel.theme.intellij.IntelliJThemeLight
-import org.jetbrains.jewel.theme.intellij.LocalPalette
-import org.jetbrains.jewel.theme.intellij.components.Button
-import org.jetbrains.jewel.theme.intellij.components.FocusableLazyColumn
-import org.jetbrains.jewel.theme.intellij.components.Text
-import org.jetbrains.jewel.theme.intellij.components.TextField
-import org.jetbrains.jewel.theme.intellij.components.rememberFocusableLazyListState
+import org.jetbrains.jewel.themes.darcula.IntelliJThemeLight
+import org.jetbrains.jewel.themes.darcula.LocalPalette
+import org.jetbrains.jewel.themes.darcula.components.Button
+import org.jetbrains.jewel.themes.darcula.components.FocusableLazyColumn
+import org.jetbrains.jewel.themes.darcula.components.Text
+import org.jetbrains.jewel.themes.darcula.components.rememberFocusableLazyListState
+import java.awt.TextField
fun main() = singleWindowApplication {
IntelliJThemeLight {
diff --git a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/SliderSample.kt b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/SliderSample.kt
similarity index 87%
rename from platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/SliderSample.kt
rename to platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/SliderSample.kt
index 2c302ea2d007..eccda16e9375 100644
--- a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/SliderSample.kt
+++ b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/SliderSample.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.sample
+package org.jetbrains.jewel.samples.standalone
import androidx.compose.foundation.ScrollbarAdapter
import androidx.compose.foundation.VerticalScrollbar
@@ -24,12 +24,12 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.singleWindowApplication
-import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
-import org.jetbrains.jewel.theme.intellij.IntelliJTheme
-import org.jetbrains.jewel.theme.intellij.components.Checkbox
-import org.jetbrains.jewel.theme.intellij.components.Slider
-import org.jetbrains.jewel.theme.intellij.default
-import org.jetbrains.jewel.theme.intellij.styles.SliderStyle
+import org.jetbrains.jewel.themes.darcula.IntelliJMetrics
+import org.jetbrains.jewel.themes.darcula.IntelliJTheme
+import org.jetbrains.jewel.themes.darcula.components.Checkbox
+import org.jetbrains.jewel.themes.darcula.components.Slider
+import org.jetbrains.jewel.themes.darcula.default
+import org.jetbrains.jewel.themes.darcula.styles.SliderStyle
fun main() = singleWindowApplication(
title = "JSlider sample"
diff --git a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TabExample.kt b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TabExample.kt
similarity index 78%
rename from platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TabExample.kt
rename to platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TabExample.kt
index d450bf0e71b4..1b2c2908c8d1 100644
--- a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TabExample.kt
+++ b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TabExample.kt
@@ -1,6 +1,6 @@
@file:OptIn(ExperimentalTime::class, ExperimentalComposeUiApi::class, ExperimentalSplitPaneApi::class)
-package org.jetbrains.jewel.sample
+package org.jetbrains.jewel.samples.standalone
import androidx.compose.foundation.focusable
import androidx.compose.foundation.layout.Column
@@ -15,14 +15,14 @@ import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.window.singleWindowApplication
import org.jetbrains.compose.splitpane.ExperimentalSplitPaneApi
-import org.jetbrains.jewel.theme.intellij.IntelliJTheme
-import org.jetbrains.jewel.theme.intellij.components.Checkbox
-import org.jetbrains.jewel.theme.intellij.components.Surface
-import org.jetbrains.jewel.theme.intellij.components.Tab
-import org.jetbrains.jewel.theme.intellij.components.TabRow
-import org.jetbrains.jewel.theme.intellij.components.TabScope
-import org.jetbrains.jewel.theme.intellij.components.Text
-import org.jetbrains.jewel.theme.intellij.components.rememberTabContainerState
+import org.jetbrains.jewel.themes.darcula.IntelliJTheme
+import org.jetbrains.jewel.themes.darcula.components.Checkbox
+import org.jetbrains.jewel.themes.darcula.components.Surface
+import org.jetbrains.jewel.themes.darcula.components.Tab
+import org.jetbrains.jewel.themes.darcula.components.TabRow
+import org.jetbrains.jewel.themes.darcula.components.TabScope
+import org.jetbrains.jewel.themes.darcula.components.Text
+import org.jetbrains.jewel.themes.darcula.components.rememberTabContainerState
import kotlin.time.ExperimentalTime
@Suppress("EXPERIMENTAL_IS_NOT_ENABLED")
diff --git a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TableSample.kt b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TableSample.kt
similarity index 79%
rename from platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TableSample.kt
rename to platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TableSample.kt
index 6d8c6d58dd14..e343e0279b41 100644
--- a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TableSample.kt
+++ b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TableSample.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.sample
+package org.jetbrains.jewel.samples.standalone
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.fillMaxSize
@@ -6,11 +6,11 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.singleWindowApplication
-import org.jetbrains.jewel.theme.intellij.IntelliJThemeDark
-import org.jetbrains.jewel.theme.intellij.components.Surface
-import org.jetbrains.jewel.theme.intellij.components.Table
-import org.jetbrains.jewel.theme.intellij.components.TableView
-import org.jetbrains.jewel.theme.intellij.components.Text
+import org.jetbrains.jewel.themes.darcula.IntelliJThemeDark
+import org.jetbrains.jewel.themes.darcula.components.Surface
+import org.jetbrains.jewel.themes.darcula.components.Table
+import org.jetbrains.jewel.themes.darcula.components.TableView
+import org.jetbrains.jewel.themes.darcula.components.Text
fun main() {
singleWindowApplication {
diff --git a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TreeSample.kt b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TreeSample.kt
similarity index 89%
rename from platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TreeSample.kt
rename to platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TreeSample.kt
index 1122e65d291a..e4b3eba9d7c5 100644
--- a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/TreeSample.kt
+++ b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/TreeSample.kt
@@ -1,6 +1,6 @@
@file:OptIn(ExperimentalSplitPaneApi::class)
-package org.jetbrains.jewel.sample
+package org.jetbrains.jewel.samples.standalone
import androidx.compose.foundation.VerticalScrollbar
import androidx.compose.foundation.focusable
@@ -25,14 +25,14 @@ import org.jetbrains.compose.splitpane.ExperimentalSplitPaneApi
import org.jetbrains.compose.splitpane.HorizontalSplitPane
import org.jetbrains.compose.splitpane.rememberSplitPaneState
import org.jetbrains.jewel.Orientation
-import org.jetbrains.jewel.theme.intellij.IntelliJTheme
-import org.jetbrains.jewel.theme.intellij.components.Checkbox
-import org.jetbrains.jewel.theme.intellij.components.Separator
-import org.jetbrains.jewel.theme.intellij.components.Surface
-import org.jetbrains.jewel.theme.intellij.components.Text
-import org.jetbrains.jewel.theme.intellij.components.Tree
-import org.jetbrains.jewel.theme.intellij.components.TreeLayout
-import org.jetbrains.jewel.theme.intellij.components.asTree
+import org.jetbrains.jewel.themes.darcula.IntelliJTheme
+import org.jetbrains.jewel.themes.darcula.components.Checkbox
+import org.jetbrains.jewel.themes.darcula.components.Separator
+import org.jetbrains.jewel.themes.darcula.components.Surface
+import org.jetbrains.jewel.themes.darcula.components.Text
+import org.jetbrains.jewel.themes.darcula.components.Tree
+import org.jetbrains.jewel.themes.darcula.components.TreeLayout
+import org.jetbrains.jewel.themes.darcula.components.asTree
import org.jetbrains.skiko.Cursor
import java.nio.file.Paths
diff --git a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/WizardSample.kt b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/WizardSample.kt
similarity index 94%
rename from platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/WizardSample.kt
rename to platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/WizardSample.kt
index 249b5a00b6d1..213e199614ff 100644
--- a/platform/jewel/sample/src/main/kotlin/org/jetbrains/jewel/sample/WizardSample.kt
+++ b/platform/jewel/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/WizardSample.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.sample
+package org.jetbrains.jewel.samples.standalone
import androidx.compose.foundation.VerticalScrollbar
import androidx.compose.foundation.background
@@ -50,28 +50,28 @@ import org.jetbrains.compose.splitpane.HorizontalSplitPane
import org.jetbrains.jewel.Orientation
import org.jetbrains.jewel.components.Icon
import org.jetbrains.jewel.isMacOs
-import org.jetbrains.jewel.theme.intellij.IntelliJTheme
-import org.jetbrains.jewel.theme.intellij.components.Button
-import org.jetbrains.jewel.theme.intellij.components.CheckboxRow
-import org.jetbrains.jewel.theme.intellij.components.CircularProgressIndicator
-import org.jetbrains.jewel.theme.intellij.components.Divider
-import org.jetbrains.jewel.theme.intellij.components.GroupHeader
-import org.jetbrains.jewel.theme.intellij.components.IconButton
-import org.jetbrains.jewel.theme.intellij.components.RadioButtonRow
-import org.jetbrains.jewel.theme.intellij.components.Slider
-import org.jetbrains.jewel.theme.intellij.components.Surface
-import org.jetbrains.jewel.theme.intellij.components.Tab
-import org.jetbrains.jewel.theme.intellij.components.TabRow
-import org.jetbrains.jewel.theme.intellij.components.Text
-import org.jetbrains.jewel.theme.intellij.components.TextField
-import org.jetbrains.jewel.theme.intellij.components.Tree
-import org.jetbrains.jewel.theme.intellij.components.TreeLayout
-import org.jetbrains.jewel.theme.intellij.components.asTree
-import org.jetbrains.jewel.theme.intellij.components.rememberTabContainerState
-import org.jetbrains.jewel.theme.intellij.pxToDp
-import org.jetbrains.jewel.theme.intellij.styles.ButtonStyle
-import org.jetbrains.jewel.theme.intellij.styles.IntelliJButtonStyleVariations
-import org.jetbrains.jewel.theme.intellij.styles.SliderStyle
+import org.jetbrains.jewel.themes.darcula.IntelliJTheme
+import org.jetbrains.jewel.themes.darcula.components.Button
+import org.jetbrains.jewel.themes.darcula.components.CheckboxRow
+import org.jetbrains.jewel.themes.darcula.components.CircularProgressIndicator
+import org.jetbrains.jewel.themes.darcula.components.Divider
+import org.jetbrains.jewel.themes.darcula.components.GroupHeader
+import org.jetbrains.jewel.themes.darcula.components.IconButton
+import org.jetbrains.jewel.themes.darcula.components.RadioButtonRow
+import org.jetbrains.jewel.themes.darcula.components.Slider
+import org.jetbrains.jewel.themes.darcula.components.Surface
+import org.jetbrains.jewel.themes.darcula.components.Tab
+import org.jetbrains.jewel.themes.darcula.components.TabRow
+import org.jetbrains.jewel.themes.darcula.components.Text
+import org.jetbrains.jewel.themes.darcula.components.TextField
+import org.jetbrains.jewel.themes.darcula.components.Tree
+import org.jetbrains.jewel.themes.darcula.components.TreeLayout
+import org.jetbrains.jewel.themes.darcula.components.asTree
+import org.jetbrains.jewel.themes.darcula.components.rememberTabContainerState
+import org.jetbrains.jewel.themes.darcula.pxToDp
+import org.jetbrains.jewel.themes.darcula.styles.ButtonStyle
+import org.jetbrains.jewel.themes.darcula.styles.IntelliJButtonStyleVariations
+import org.jetbrains.jewel.themes.darcula.styles.SliderStyle
import java.awt.Cursor
import java.awt.Dimension
import java.awt.event.WindowEvent
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/LICENSE.txt b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/LICENSE.txt
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/LICENSE.txt
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/LICENSE.txt
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Black.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Black.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Black.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Black.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-BlackItalic.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-BlackItalic.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-BlackItalic.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-BlackItalic.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Bold.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Bold.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Bold.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Bold.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-BoldItalic.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-BoldItalic.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-BoldItalic.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-BoldItalic.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Italic.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Italic.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Italic.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Italic.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Light.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Light.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Light.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Light.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-LightItalic.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-LightItalic.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-LightItalic.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-LightItalic.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Medium.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Medium.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Medium.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Medium.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-MediumItalic.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-MediumItalic.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-MediumItalic.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-MediumItalic.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Regular.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Regular.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Regular.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Regular.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Thin.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Thin.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-Thin.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-Thin.ttf
diff --git a/platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-ThinItalic.ttf b/platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-ThinItalic.ttf
similarity index 100%
rename from platform/jewel/sample/src/main/resources/fonts/Roboto/Roboto-ThinItalic.ttf
rename to platform/jewel/samples/standalone/src/main/resources/fonts/Roboto/Roboto-ThinItalic.ttf
diff --git a/platform/jewel/sample/src/main/resources/images/android-head.svg b/platform/jewel/samples/standalone/src/main/resources/images/android-head.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/images/android-head.svg
rename to platform/jewel/samples/standalone/src/main/resources/images/android-head.svg
diff --git a/platform/jewel/sample/src/main/resources/images/android-head_dark.svg b/platform/jewel/samples/standalone/src/main/resources/images/android-head_dark.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/images/android-head_dark.svg
rename to platform/jewel/samples/standalone/src/main/resources/images/android-head_dark.svg
diff --git a/platform/jewel/sample/src/main/resources/images/android-studio.svg b/platform/jewel/samples/standalone/src/main/resources/images/android-studio.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/images/android-studio.svg
rename to platform/jewel/samples/standalone/src/main/resources/images/android-studio.svg
diff --git a/platform/jewel/sample/src/main/resources/images/help.svg b/platform/jewel/samples/standalone/src/main/resources/images/help.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/images/help.svg
rename to platform/jewel/samples/standalone/src/main/resources/images/help.svg
diff --git a/platform/jewel/sample/src/main/resources/images/help_dark.svg b/platform/jewel/samples/standalone/src/main/resources/images/help_dark.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/images/help_dark.svg
rename to platform/jewel/samples/standalone/src/main/resources/images/help_dark.svg
diff --git a/platform/jewel/sample/src/main/resources/organization/avatar.svg b/platform/jewel/samples/standalone/src/main/resources/organization/avatar.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/organization/avatar.svg
rename to platform/jewel/samples/standalone/src/main/resources/organization/avatar.svg
diff --git a/platform/jewel/sample/src/main/resources/organization/dashboard.svg b/platform/jewel/samples/standalone/src/main/resources/organization/dashboard.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/organization/dashboard.svg
rename to platform/jewel/samples/standalone/src/main/resources/organization/dashboard.svg
diff --git a/platform/jewel/sample/src/main/resources/organization/notifications.svg b/platform/jewel/samples/standalone/src/main/resources/organization/notifications.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/organization/notifications.svg
rename to platform/jewel/samples/standalone/src/main/resources/organization/notifications.svg
diff --git a/platform/jewel/sample/src/main/resources/organization/projects.svg b/platform/jewel/samples/standalone/src/main/resources/organization/projects.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/organization/projects.svg
rename to platform/jewel/samples/standalone/src/main/resources/organization/projects.svg
diff --git a/platform/jewel/sample/src/main/resources/organization/teams.svg b/platform/jewel/samples/standalone/src/main/resources/organization/teams.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/organization/teams.svg
rename to platform/jewel/samples/standalone/src/main/resources/organization/teams.svg
diff --git a/platform/jewel/sample/src/main/resources/organization/toolbox.svg b/platform/jewel/samples/standalone/src/main/resources/organization/toolbox.svg
similarity index 100%
rename from platform/jewel/sample/src/main/resources/organization/toolbox.svg
rename to platform/jewel/samples/standalone/src/main/resources/organization/toolbox.svg
diff --git a/platform/jewel/settings.gradle.kts b/platform/jewel/settings.gradle.kts
index edc60671553f..a97185339eb0 100644
--- a/platform/jewel/settings.gradle.kts
+++ b/platform/jewel/settings.gradle.kts
@@ -7,6 +7,7 @@ pluginManagement {
gradlePluginPortal()
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/")
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
+ maven("https://oss.sonatype.org/content/repositories/snapshots/")
mavenCentral()
}
}
@@ -22,9 +23,12 @@ dependencyResolutionManagement {
}
include(
- ":library",
- ":sample",
- ":themes:intellij",
- ":themes:intellij:standalone",
- ":themes:intellij:idea"
+ ":core",
+ ":compose-utils",
+ ":samples:ide-plugin",
+ ":samples:standalone",
+ ":themes:darcula:standalone",
+ ":themes:darcula:ide-bridge",
+ ":themes:new-ui:standalone",
+ ":themes:new-ui:ide-bridge"
)
diff --git a/platform/jewel/themes/darcula/ide-bridge/build.gradle.kts b/platform/jewel/themes/darcula/ide-bridge/build.gradle.kts
new file mode 100644
index 000000000000..f33019ea6eea
--- /dev/null
+++ b/platform/jewel/themes/darcula/ide-bridge/build.gradle.kts
@@ -0,0 +1,35 @@
+plugins {
+ alias(libs.plugins.kotlinJvm)
+ alias(libs.plugins.composeDesktop)
+}
+
+kotlin {
+ target {
+ compilations.all {
+ kotlinOptions {
+ jvmTarget = "17"
+ }
+ }
+ }
+ sourceSets {
+ all {
+ languageSettings {
+ optIn("kotlinx.coroutines.ExperimentalCoroutinesApi")
+ optIn("kotlin.experimental.ExperimentalTypeInference")
+ optIn("androidx.compose.ui.ExperimentalComposeUiApi")
+ }
+ }
+ }
+}
+
+repositories {
+ maven("https://androidx.dev/storage/compose-compiler/repository/")
+ maven("https://www.jetbrains.com/intellij-repository/releases")
+ maven("https://cache-redirector.jetbrains.com/intellij-dependencies")
+ mavenCentral()
+}
+
+dependencies {
+ api(projects.themes.darcula.standalone)
+ compileOnly(libs.bundles.idea)
+}
diff --git a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/Bridge.kt b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/Bridge.kt
similarity index 98%
rename from platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/Bridge.kt
rename to platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/Bridge.kt
index ed86814bcf8b..5c2a4a206bca 100644
--- a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/Bridge.kt
+++ b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/Bridge.kt
@@ -1,6 +1,6 @@
@file:Suppress("UnstableApiUsage")
-package org.jetbrains.jewel.theme.idea
+package org.jetbrains.jewel.themes.darcula.idebridge
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.runtime.Composable
diff --git a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/ComposePanel.kt b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/ComposePanel.kt
similarity index 93%
rename from platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/ComposePanel.kt
rename to platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/ComposePanel.kt
index eb00325859b9..d99cd12ddc84 100644
--- a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/ComposePanel.kt
+++ b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/ComposePanel.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.idea
+package org.jetbrains.jewel.themes.darcula.idebridge
import androidx.compose.runtime.Composable
import androidx.compose.ui.awt.ComposePanel
diff --git a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/CurrentIntelliJThemeDefinition.kt b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/CurrentIntelliJThemeDefinition.kt
similarity index 96%
rename from platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/CurrentIntelliJThemeDefinition.kt
rename to platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/CurrentIntelliJThemeDefinition.kt
index d46121cefda0..2ebb244df870 100644
--- a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/CurrentIntelliJThemeDefinition.kt
+++ b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/CurrentIntelliJThemeDefinition.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.idea
+package org.jetbrains.jewel.themes.darcula.idebridge
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.shape.CornerSize
@@ -6,11 +6,11 @@ import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.unit.dp
import com.intellij.icons.AllIcons
import com.intellij.ui.JBColor
-import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
-import org.jetbrains.jewel.theme.intellij.IntelliJPainters
-import org.jetbrains.jewel.theme.intellij.IntelliJPalette
-import org.jetbrains.jewel.theme.intellij.IntelliJThemeDefinition
-import org.jetbrains.jewel.theme.intellij.IntelliJTypography
+import org.jetbrains.jewel.IntelliJMetrics
+import org.jetbrains.jewel.IntelliJPainters
+import org.jetbrains.jewel.IntelliJPalette
+import org.jetbrains.jewel.IntelliJThemeDefinition
+import org.jetbrains.jewel.IntelliJTypography
@Suppress("FunctionName")
suspend fun CurrentIntelliJThemeDefinition(): IntelliJThemeDefinition {
diff --git a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/IntelliJTheme.kt b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/IntelliJTheme.kt
similarity index 90%
rename from platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/IntelliJTheme.kt
rename to platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/IntelliJTheme.kt
index 4c5fc9a57ebc..729db792e631 100644
--- a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/IntelliJTheme.kt
+++ b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/IntelliJTheme.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.idea
+package org.jetbrains.jewel.themes.darcula.idebridge
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
@@ -8,8 +8,8 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.awt.ComposePanel
import androidx.compose.ui.platform.LocalFocusManager
import com.intellij.openapi.application.Application
-import org.jetbrains.jewel.theme.intellij.IntelliJTheme
-import org.jetbrains.jewel.theme.intellij.IntelliJThemeDefinition
+import org.jetbrains.jewel.IntelliJTheme
+import org.jetbrains.jewel.IntelliJThemeDefinition
import java.awt.event.FocusEvent
import java.awt.event.FocusListener
diff --git a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/ProjectLifecycle.kt b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/ProjectLifecycle.kt
similarity index 85%
rename from platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/ProjectLifecycle.kt
rename to platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/ProjectLifecycle.kt
index 24b5ab60f9ca..60006ff31bbf 100644
--- a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/ProjectLifecycle.kt
+++ b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/ProjectLifecycle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.idea
+package org.jetbrains.jewel.themes.darcula.idebridge
import com.intellij.openapi.Disposable
import kotlinx.coroutines.CoroutineScope
diff --git a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/Svg.kt b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/Svg.kt
similarity index 95%
rename from platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/Svg.kt
rename to platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/Svg.kt
index 6208050f80b2..171cdc78eabc 100644
--- a/platform/jewel/themes/intellij/idea/src/main/kotlin/org/jetbrains/jewel/theme/idea/Svg.kt
+++ b/platform/jewel/themes/darcula/ide-bridge/src/main/kotlin/org/jetbrains/jewel/themes/darcula/idebridge/Svg.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.idea
+package org.jetbrains.jewel.themes.darcula.idebridge
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
diff --git a/platform/jewel/themes/intellij/idea/src/main/resources/META-INF/plugin.xml b/platform/jewel/themes/darcula/ide-bridge/src/main/resources/META-INF/plugin.xml
similarity index 69%
rename from platform/jewel/themes/intellij/idea/src/main/resources/META-INF/plugin.xml
rename to platform/jewel/themes/darcula/ide-bridge/src/main/resources/META-INF/plugin.xml
index 2e48142dd6c1..261584c03bd2 100644
--- a/platform/jewel/themes/intellij/idea/src/main/resources/META-INF/plugin.xml
+++ b/platform/jewel/themes/darcula/ide-bridge/src/main/resources/META-INF/plugin.xml
@@ -4,14 +4,14 @@
JetBrains
-
+
+ factoryClass="org.jetbrains.jewel.samples.ideplugin.JewelDemoToolWindow"/>
+ factoryClass="org.jetbrains.jewel.samples.ideplugin.PKGSDemo"/>
diff --git a/platform/jewel/themes/intellij/standalone/build.gradle.kts b/platform/jewel/themes/darcula/standalone/build.gradle.kts
similarity index 50%
rename from platform/jewel/themes/intellij/standalone/build.gradle.kts
rename to platform/jewel/themes/darcula/standalone/build.gradle.kts
index 5f22122b5b9a..0e3530125c14 100644
--- a/platform/jewel/themes/intellij/standalone/build.gradle.kts
+++ b/platform/jewel/themes/darcula/standalone/build.gradle.kts
@@ -1,6 +1,6 @@
plugins {
- id(libs.plugins.kotlinJvm.get().pluginId)
- id(libs.plugins.composeDesktop.get().pluginId)
+ alias(libs.plugins.kotlinJvm)
+ alias(libs.plugins.composeDesktop)
}
kotlin {
@@ -15,8 +15,5 @@ kotlin {
}
dependencies {
- implementation(compose.desktop.currentOs) {
- exclude(group = "org.jetbrains.compose.material")
- }
- api(projects.themes.intellij)
+ api(projects.core)
}
diff --git a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJThemeDefinition.kt b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/IntelliJThemeDefinition.kt
similarity index 65%
rename from platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJThemeDefinition.kt
rename to platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/IntelliJThemeDefinition.kt
index 568ff8c2ac12..fe63b64c95f4 100644
--- a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/IntelliJThemeDefinition.kt
+++ b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/IntelliJThemeDefinition.kt
@@ -1,10 +1,19 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel.themes.darcula.standalone
import androidx.compose.runtime.Composable
+import org.jetbrains.jewel.IntelliJMetrics
+import org.jetbrains.jewel.IntelliJPainters
+import org.jetbrains.jewel.IntelliJPalette
+import org.jetbrains.jewel.IntelliJTypography
+import org.jetbrains.jewel.IntelliJTheme as BaseIntelliJTheme
+
+@Composable
+fun IntelliJTheme(isDark: Boolean, content: @Composable () -> Unit) =
+ if (isDark) IntelliJThemeDark(content) else IntelliJThemeLight(content)
@Composable
fun IntelliJThemeLight(content: @Composable () -> Unit) =
- IntelliJTheme(
+ BaseIntelliJTheme(
IntelliJPalette.light,
IntelliJMetrics.default,
IntelliJPainters.light,
@@ -12,13 +21,9 @@ fun IntelliJThemeLight(content: @Composable () -> Unit) =
content
)
-@Composable
-fun IntelliJTheme(isDark: Boolean, content: @Composable () -> Unit) =
- if (isDark) IntelliJThemeDark(content) else IntelliJThemeLight(content)
-
@Composable
fun IntelliJThemeDark(content: @Composable () -> Unit) =
- IntelliJTheme(
+ BaseIntelliJTheme(
IntelliJPalette.darcula,
IntelliJMetrics.default,
IntelliJPainters.darcula,
diff --git a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/MetricsExtensions.kt b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/MetricsExtensions.kt
similarity index 92%
rename from platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/MetricsExtensions.kt
rename to platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/MetricsExtensions.kt
index 455dea0e56b9..3fcc4d31f98a 100644
--- a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/MetricsExtensions.kt
+++ b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/MetricsExtensions.kt
@@ -1,10 +1,11 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel.themes.darcula.standalone
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.shape.CornerSize
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
-import org.jetbrains.jewel.isMacOs
+import org.jetbrains.jewel.IntelliJMetrics
+import org.jetbrains.jewel.util.isMacOs
val IntelliJMetrics.Button.Companion.default
get() = IntelliJMetrics.Button(
diff --git a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/PaintersExtension.kt b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/PaintersExtension.kt
similarity index 97%
rename from platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/PaintersExtension.kt
rename to platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/PaintersExtension.kt
index 6f7637de2667..7d9c38e3f271 100644
--- a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/PaintersExtension.kt
+++ b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/PaintersExtension.kt
@@ -1,6 +1,7 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel.themes.darcula.standalone
import androidx.compose.ui.res.painterResource
+import org.jetbrains.jewel.IntelliJPainters
val IntelliJPainters.Companion.light
get() = IntelliJPainters(
diff --git a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/PaletteExtensions.kt b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/PaletteExtensions.kt
similarity index 98%
rename from platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/PaletteExtensions.kt
rename to platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/PaletteExtensions.kt
index b6dc06711b71..bda5d64591b0 100644
--- a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/PaletteExtensions.kt
+++ b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/PaletteExtensions.kt
@@ -1,10 +1,11 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel.themes.darcula.standalone
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
-import org.jetbrains.jewel.isMacOs
+import org.jetbrains.jewel.IntelliJPalette
import org.jetbrains.jewel.toBrush
+import org.jetbrains.jewel.util.isMacOs
@Suppress("unused")
val Color.Companion.IntelliJWhite
diff --git a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/TypographyExtensions.kt b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/TypographyExtensions.kt
similarity index 93%
rename from platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/TypographyExtensions.kt
rename to platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/TypographyExtensions.kt
index 873d1f1ec082..89d6e44fd142 100644
--- a/platform/jewel/themes/intellij/standalone/src/main/kotlin/org/jetbrains/jewel/theme/intellij/TypographyExtensions.kt
+++ b/platform/jewel/themes/darcula/standalone/src/main/kotlin/org/jetbrains/jewel/themes/darcula/standalone/TypographyExtensions.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.jewel.theme.intellij
+package org.jetbrains.jewel.themes.darcula.standalone
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
@@ -6,6 +6,7 @@ import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp
+import org.jetbrains.jewel.IntelliJTypography
val TextStyle.Companion.IntelliJLight
get() = TextStyle(
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBox.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBox.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBox.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBox.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxIndeterminateSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxIndeterminateSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxIndeterminateSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxIndeterminateSelected.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxIndeterminateSelectedDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxIndeterminateSelectedDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxIndeterminateSelectedDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxIndeterminateSelectedDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxIndeterminateSelectedFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxIndeterminateSelectedFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxIndeterminateSelectedFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxIndeterminateSelectedFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxSelected.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxSelectedDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxSelectedDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxSelectedDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxSelectedDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxSelectedFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxSelectedFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/checkBoxSelectedFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/checkBoxSelectedFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/chevron-right.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/chevron-right.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/chevron-right.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/chevron-right.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radio.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radio.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radio.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radio.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioSelected.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioSelectedDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioSelectedDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioSelectedDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioSelectedDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioSelectedFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioSelectedFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/darcula/radioSelectedFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/darcula/radioSelectedFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBox.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBox.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBox.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBox.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxIndeterminateSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxIndeterminateSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxIndeterminateSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxIndeterminateSelected.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxIndeterminateSelectedDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxIndeterminateSelectedDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxIndeterminateSelectedDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxIndeterminateSelectedDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxIndeterminateSelectedFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxIndeterminateSelectedFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxIndeterminateSelectedFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxIndeterminateSelectedFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxSelected.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxSelectedDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxSelectedDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxSelectedDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxSelectedDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxSelectedFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxSelectedFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkBoxSelectedFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkBoxSelectedFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkmark.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkmark.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkmark.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkmark.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkmarkDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkmarkDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkmarkDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkmarkDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkmarkSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkmarkSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/checkmarkSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/checkmarkSelected.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/chevron-right.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/chevron-right.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/chevron-right.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/chevron-right.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radio.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radio.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radio.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radio.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioSelected.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioSelectedDisabled.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioSelectedDisabled.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioSelectedDisabled.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioSelectedDisabled.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioSelectedFocused.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioSelectedFocused.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/radioSelectedFocused.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/radioSelectedFocused.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/treeCollapsed.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/treeCollapsed.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/treeCollapsed.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/treeCollapsed.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/treeCollapsedSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/treeCollapsedSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/treeCollapsedSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/treeCollapsedSelected.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/treeExpanded.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/treeExpanded.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/treeExpanded.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/treeExpanded.svg
diff --git a/platform/jewel/themes/intellij/standalone/src/main/resources/intellij/treeExpandedSelected.svg b/platform/jewel/themes/darcula/standalone/src/main/resources/intellij/treeExpandedSelected.svg
similarity index 100%
rename from platform/jewel/themes/intellij/standalone/src/main/resources/intellij/treeExpandedSelected.svg
rename to platform/jewel/themes/darcula/standalone/src/main/resources/intellij/treeExpandedSelected.svg
diff --git a/platform/jewel/themes/intellij/build.gradle.kts b/platform/jewel/themes/intellij/build.gradle.kts
deleted file mode 100644
index 9db403a10104..000000000000
--- a/platform/jewel/themes/intellij/build.gradle.kts
+++ /dev/null
@@ -1,35 +0,0 @@
-import org.jetbrains.compose.jetbrainsCompose
-
-plugins {
- alias(libs.plugins.kotlinJvm)
- alias(libs.plugins.composeDesktop)
-}
-
-kotlin {
- target {
- compilations.all {
- kotlinOptions {
- jvmTarget = "17"
- }
- }
- }
- sourceSets {
- all {
- languageSettings.optIn("androidx.compose.foundation.ExperimentalFoundationApi")
- languageSettings.optIn("kotlin.RequiresOptIn")
- }
- }
-}
-
-repositories {
- jetbrainsCompose()
- maven("https://androidx.dev/storage/compose-compiler/repository/")
- mavenCentral()
-}
-
-dependencies {
- implementation(compose.desktop.currentOs) {
- exclude(group = "org.jetbrains.compose.material")
- }
- api(projects.library)
-}
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/Tab.kt b/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/Tab.kt
deleted file mode 100644
index a2dd179f2495..000000000000
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/Tab.kt
+++ /dev/null
@@ -1,2 +0,0 @@
-package org.jetbrains.jewel.theme.intellij
-
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/Utils.kt b/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/Utils.kt
deleted file mode 100644
index a5255aaee04f..000000000000
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/Utils.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.jetbrains.jewel.theme.intellij
-
-import androidx.compose.foundation.lazy.LazyListState
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.platform.LocalDensity
-
-internal fun Modifier.appendIf(condition: Boolean, transformer: Modifier.() -> Modifier): Modifier =
- if (!condition) this else transformer()
-
-val LazyListState.visibleItemsRange
- get() = firstVisibleItemIndex..firstVisibleItemIndex + layoutInfo.visibleItemsInfo.size
-
-@Composable
-fun Int.pxToDp() = with(LocalDensity.current) { this@pxToDp.toDp() }
diff --git a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/ComboBox.kt b/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/ComboBox.kt
deleted file mode 100644
index 9bed56f0d860..000000000000
--- a/platform/jewel/themes/intellij/src/main/kotlin/org/jetbrains/jewel/theme/intellij/components/ComboBox.kt
+++ /dev/null
@@ -1,2 +0,0 @@
-package org.jetbrains.jewel.theme.intellij.components
-
diff --git a/platform/jewel/themes/intellij/idea/build.gradle.kts b/platform/jewel/themes/new-ui/ide-bridge/build.gradle.kts
similarity index 89%
rename from platform/jewel/themes/intellij/idea/build.gradle.kts
rename to platform/jewel/themes/new-ui/ide-bridge/build.gradle.kts
index 86375d672c12..0d42094869ac 100644
--- a/platform/jewel/themes/intellij/idea/build.gradle.kts
+++ b/platform/jewel/themes/new-ui/ide-bridge/build.gradle.kts
@@ -28,7 +28,7 @@ intellij {
pluginName.set("Jewel")
version.set("LATEST-EAP-SNAPSHOT")
plugins.set(listOf("org.jetbrains.kotlin"))
- version.set("223.7571.123-EAP-SNAPSHOT") // IJ 22.3 RC2
+ version.set("2022.3") // IJ 22.3 RC2
}
repositories {
@@ -41,10 +41,10 @@ dependencies {
implementation(compose.desktop.currentOs) {
exclude(group = "org.jetbrains.compose.material")
}
- implementation(projects.themes.intellij) {
+ implementation(projects.themes.darcula) {
exclude(compose.desktop.currentOs)
}
- implementation(projects.library) {
+ implementation(projects.core) {
exclude(compose.desktop.currentOs)
}
}
diff --git a/platform/jewel/themes/new-ui/standalone/build.gradle.kts b/platform/jewel/themes/new-ui/standalone/build.gradle.kts
new file mode 100644
index 000000000000..0e3530125c14
--- /dev/null
+++ b/platform/jewel/themes/new-ui/standalone/build.gradle.kts
@@ -0,0 +1,19 @@
+plugins {
+ alias(libs.plugins.kotlinJvm)
+ alias(libs.plugins.composeDesktop)
+}
+
+kotlin {
+ target {
+ compilations.all {
+ kotlinOptions {
+ jvmTarget = "17"
+ freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn")
+ }
+ }
+ }
+}
+
+dependencies {
+ api(projects.core)
+}