Reorganise project structure
GitOrigin-RevId: 21550b01dfef4f580fe57fc00bfa4d7c2a87b943
1010
platform/jewel/.idea/inspectionProfiles/Project_Default.xml
generated
@@ -2,7 +2,7 @@
|
|||||||
<configuration default="false" name="IDE sample" type="GradleRunConfiguration" factoryName="Gradle">
|
<configuration default="false" name="IDE sample" type="GradleRunConfiguration" factoryName="Gradle">
|
||||||
<ExternalSystemSettings>
|
<ExternalSystemSettings>
|
||||||
<option name="executionName" />
|
<option name="executionName" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$/samples/ide-plugin" />
|
||||||
<option name="externalSystemIdString" value="GRADLE" />
|
<option name="externalSystemIdString" value="GRADLE" />
|
||||||
<option name="scriptParameters" value="" />
|
<option name="scriptParameters" value="" />
|
||||||
<option name="taskDescriptions">
|
<option name="taskDescriptions">
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
</option>
|
</option>
|
||||||
<option name="taskNames">
|
<option name="taskNames">
|
||||||
<list>
|
<list>
|
||||||
<option value="themes:intellij:idea:runIde" />
|
<option value="runIde" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
<option name="vmOptions" />
|
<option name="vmOptions" />
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<configuration default="false" name="Stand-alone sample" type="GradleRunConfiguration" factoryName="Gradle">
|
<configuration default="false" name="Stand-alone sample" type="GradleRunConfiguration" factoryName="Gradle">
|
||||||
<ExternalSystemSettings>
|
<ExternalSystemSettings>
|
||||||
<option name="executionName" />
|
<option name="executionName" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$/sample" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$/samples/standalone" />
|
||||||
<option name="externalSystemIdString" value="GRADLE" />
|
<option name="externalSystemIdString" value="GRADLE" />
|
||||||
<option name="scriptParameters" value="" />
|
<option name="scriptParameters" value="" />
|
||||||
<option name="taskDescriptions">
|
<option name="taskDescriptions">
|
||||||
|
|||||||
13
platform/jewel/compose-utils/build.gradle.kts
Normal file
@@ -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)
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel
|
package org.jetbrains.jewel.util
|
||||||
|
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
|
||||||
@@ -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() }
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package org.jetbrains.jewel.util
|
||||||
|
|
||||||
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
|
|
||||||
|
val LazyListState.visibleItemsRange
|
||||||
|
get() = firstVisibleItemIndex..firstVisibleItemIndex + layoutInfo.visibleItemsInfo.size
|
||||||
@@ -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()
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel
|
package org.jetbrains.jewel.util
|
||||||
|
|
||||||
private val osName = System.getProperty("os.name")
|
private val osName = System.getProperty("os.name")
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.font
|
package org.jetbrains.jewel.util.font
|
||||||
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
@@ -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.Advapi32Util
|
||||||
import com.sun.jna.platform.win32.WinReg
|
import com.sun.jna.platform.win32.WinReg
|
||||||
@@ -18,9 +18,9 @@ import kotlinx.coroutines.withContext
|
|||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import kotlinx.serialization.json.decodeFromStream
|
import kotlinx.serialization.json.decodeFromStream
|
||||||
import org.jetbrains.jewel.isLinux
|
import org.jetbrains.jewel.util.isLinux
|
||||||
import org.jetbrains.jewel.isMacOs
|
import org.jetbrains.jewel.util.isMacOs
|
||||||
import org.jetbrains.jewel.isWindows
|
import org.jetbrains.jewel.util.isWindows
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.TreeMap
|
import java.util.TreeMap
|
||||||
import java.util.zip.ZipFile
|
import java.util.zip.ZipFile
|
||||||
@@ -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.FontFamily
|
||||||
import androidx.compose.ui.text.font.FontStyle
|
import androidx.compose.ui.text.font.FontStyle
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.font
|
package org.jetbrains.jewel.util.font
|
||||||
|
|
||||||
import kotlinx.serialization.KSerializer
|
import kotlinx.serialization.KSerializer
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
@@ -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.FontFamily
|
||||||
import androidx.compose.ui.text.platform.FileFont
|
import androidx.compose.ui.text.platform.FileFont
|
||||||
@@ -17,11 +17,7 @@ kotlin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly(compose.desktop.currentOs) {
|
api(projects.composeUtils)
|
||||||
exclude(group = "org.jetbrains.compose.material")
|
|
||||||
}
|
|
||||||
implementation(libs.kotlinx.serialization.json)
|
|
||||||
implementation(libs.jna)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val sourcesJar by tasks.creating(Jar::class) {
|
val sourcesJar by tasks.creating(Jar::class) {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.theme.intellij
|
package org.jetbrains.jewel
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.shape.CornerSize
|
import androidx.compose.foundation.shape.CornerSize
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.theme.intellij
|
package org.jetbrains.jewel
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.graphics.painter.Painter
|
import androidx.compose.ui.graphics.painter.Painter
|
||||||
@@ -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.Brush
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
@@ -1,33 +1,32 @@
|
|||||||
package org.jetbrains.jewel.theme.intellij
|
package org.jetbrains.jewel
|
||||||
|
|
||||||
import androidx.compose.foundation.LocalIndication
|
import androidx.compose.foundation.LocalIndication
|
||||||
import androidx.compose.foundation.LocalScrollbarStyle
|
import androidx.compose.foundation.LocalScrollbarStyle
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.CompositionLocalProvider
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
import androidx.compose.runtime.compositionLocalOf
|
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.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.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<IntelliJTypography> { localNotProvided() }
|
val LocalTypography = compositionLocalOf<IntelliJTypography> { localNotProvided() }
|
||||||
val LocalMetrics = compositionLocalOf<IntelliJMetrics> { localNotProvided() }
|
val LocalMetrics = compositionLocalOf<IntelliJMetrics> { localNotProvided() }
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.theme.intellij
|
package org.jetbrains.jewel
|
||||||
|
|
||||||
data class IntelliJThemeDefinition(
|
data class IntelliJThemeDefinition(
|
||||||
val palette: IntelliJPalette,
|
val palette: IntelliJPalette,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.theme.intellij
|
package org.jetbrains.jewel
|
||||||
|
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@file:OptIn(ExperimentalComposeUiApi::class)
|
@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.clickable
|
||||||
import androidx.compose.foundation.focusable
|
import androidx.compose.foundation.focusable
|
||||||
@@ -32,18 +32,17 @@ import androidx.compose.ui.input.pointer.onPointerEvent
|
|||||||
import androidx.compose.ui.semantics.Role
|
import androidx.compose.ui.semantics.Role
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import org.jetbrains.jewel.components.ImageSliceValues
|
|
||||||
import org.jetbrains.jewel.components.state.ButtonMouseState
|
import org.jetbrains.jewel.components.state.ButtonMouseState
|
||||||
import org.jetbrains.jewel.components.state.ButtonState
|
import org.jetbrains.jewel.components.state.ButtonState
|
||||||
import org.jetbrains.jewel.modifiers.background
|
import org.jetbrains.jewel.modifiers.background
|
||||||
import org.jetbrains.jewel.shape
|
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.LocalTextStyle
|
||||||
import org.jetbrains.jewel.styles.Styles
|
import org.jetbrains.jewel.styles.Styles
|
||||||
import org.jetbrains.jewel.styles.withTextStyle
|
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
|
@Composable
|
||||||
fun IconButton(
|
fun IconButton(
|
||||||
@@ -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.focusable
|
||||||
import androidx.compose.foundation.interaction.FocusInteraction
|
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.ButtonMouseState
|
||||||
import org.jetbrains.jewel.components.state.CheckboxState
|
import org.jetbrains.jewel.components.state.CheckboxState
|
||||||
import org.jetbrains.jewel.shape
|
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.LocalTextStyle
|
||||||
import org.jetbrains.jewel.styles.Styles
|
import org.jetbrains.jewel.styles.Styles
|
||||||
import org.jetbrains.jewel.styles.withTextStyle
|
import org.jetbrains.jewel.styles.withTextStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.CheckboxStyle
|
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.LocalCheckboxStyle
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun Checkbox(
|
fun Checkbox(
|
||||||
@@ -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.animateFloat
|
||||||
import androidx.compose.animation.core.infiniteRepeatable
|
import androidx.compose.animation.core.infiniteRepeatable
|
||||||
@@ -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.background
|
||||||
import androidx.compose.foundation.layout.Box
|
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 androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import org.jetbrains.jewel.Orientation
|
import org.jetbrains.jewel.Orientation
|
||||||
import org.jetbrains.jewel.theme.intellij.LocalPalette
|
import org.jetbrains.jewel.LocalPalette
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun Divider(
|
fun Divider(
|
||||||
@@ -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.animation.core.FiniteAnimationSpec
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
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.Dp
|
||||||
import androidx.compose.ui.unit.IntOffset
|
import androidx.compose.ui.unit.IntOffset
|
||||||
import androidx.compose.ui.unit.dp
|
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.max
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
|
||||||
@@ -259,6 +259,7 @@ fun FocusableLazyColumn(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalFoundationApi::class)
|
||||||
private fun LazyListScope.stickyHeader(
|
private fun LazyListScope.stickyHeader(
|
||||||
entry: LazyListScopeContainer.Entry.StickyHeader,
|
entry: LazyListScopeContainer.Entry.StickyHeader,
|
||||||
onItemFocused: (Int) -> Unit
|
onItemFocused: (Int) -> Unit
|
||||||
@@ -295,6 +296,7 @@ private fun LazyListScope.items(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalFoundationApi::class)
|
||||||
private fun LazyListScope.item(
|
private fun LazyListScope.item(
|
||||||
entry: LazyListScopeContainer.Entry.Item,
|
entry: LazyListScopeContainer.Entry.Item,
|
||||||
onItemFocused: (Int) -> Unit
|
onItemFocused: (Int) -> Unit
|
||||||
@@ -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.Row
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.theme.intellij.components
|
package org.jetbrains.jewel.components
|
||||||
|
|
||||||
import androidx.compose.animation.animateColorAsState
|
import androidx.compose.animation.animateColorAsState
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
@@ -7,7 +7,7 @@ import androidx.compose.foundation.layout.BoxScope
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import org.jetbrains.jewel.theme.intellij.LocalPalette
|
import org.jetbrains.jewel.LocalPalette
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun Surface(modifier: Modifier = Modifier, content: @Composable BoxScope.() -> Unit) {
|
fun Surface(modifier: Modifier = Modifier, content: @Composable BoxScope.() -> Unit) {
|
||||||
@@ -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.focusable
|
||||||
import androidx.compose.foundation.interaction.FocusInteraction
|
import androidx.compose.foundation.interaction.FocusInteraction
|
||||||
@@ -40,12 +40,12 @@ import androidx.compose.ui.text.TextStyle
|
|||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
import org.jetbrains.jewel.components.state.ButtonMouseState
|
import org.jetbrains.jewel.components.state.ButtonMouseState
|
||||||
import org.jetbrains.jewel.shape
|
import org.jetbrains.jewel.shape
|
||||||
|
import org.jetbrains.jewel.styles.LocalRadioButtonStyle
|
||||||
import org.jetbrains.jewel.styles.LocalTextStyle
|
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.Styles
|
||||||
import org.jetbrains.jewel.styles.withTextStyle
|
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
|
@Composable
|
||||||
fun RadioButton(
|
fun RadioButton(
|
||||||
@@ -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.Box
|
||||||
import androidx.compose.foundation.layout.fillMaxHeight
|
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 androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import org.jetbrains.jewel.Orientation
|
import org.jetbrains.jewel.Orientation
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.LocalSeparatorStyle
|
import org.jetbrains.jewel.styles.LocalSeparatorStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.SeparatorStyle
|
import org.jetbrains.jewel.styles.SeparatorStyle
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun Separator(
|
fun Separator(
|
||||||
@@ -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.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.awt.SwingPanel
|
import androidx.compose.ui.awt.SwingPanel
|
||||||
import org.jetbrains.jewel.Orientation
|
import org.jetbrains.jewel.Orientation
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.LocalSliderStyle
|
import org.jetbrains.jewel.styles.LocalSliderStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.SliderAppearance
|
import org.jetbrains.jewel.styles.SliderAppearance
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.SliderStyle
|
import org.jetbrains.jewel.styles.SliderStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.appearance
|
import org.jetbrains.jewel.styles.appearance
|
||||||
import org.jetbrains.jewel.toAwtColor
|
import org.jetbrains.jewel.util.toAwtColor
|
||||||
import javax.swing.JSlider
|
import javax.swing.JSlider
|
||||||
import javax.swing.SwingConstants
|
import javax.swing.SwingConstants
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@file:OptIn(ExperimentalTypeInference::class)
|
@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.background
|
||||||
import androidx.compose.foundation.gestures.FlingBehavior
|
import androidx.compose.foundation.gestures.FlingBehavior
|
||||||
@@ -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.clickable
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
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.Orientation
|
||||||
import org.jetbrains.jewel.components.state.TabState
|
import org.jetbrains.jewel.components.state.TabState
|
||||||
import org.jetbrains.jewel.shape
|
import org.jetbrains.jewel.shape
|
||||||
|
import org.jetbrains.jewel.styles.LocalTabStyle
|
||||||
import org.jetbrains.jewel.styles.LocalTextStyle
|
import org.jetbrains.jewel.styles.LocalTextStyle
|
||||||
import org.jetbrains.jewel.styles.Styles
|
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.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
|
@Composable
|
||||||
fun <T : Any> TabRow(
|
fun <T : Any> TabRow(
|
||||||
@@ -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.BasicText
|
||||||
import androidx.compose.foundation.text.InlineTextContent
|
import androidx.compose.foundation.text.InlineTextContent
|
||||||
@@ -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.focusable
|
||||||
import androidx.compose.foundation.interaction.FocusInteraction
|
import androidx.compose.foundation.interaction.FocusInteraction
|
||||||
@@ -19,9 +19,9 @@ import androidx.compose.ui.graphics.drawscope.Stroke
|
|||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import org.jetbrains.jewel.components.state.TextFieldState
|
import org.jetbrains.jewel.components.state.TextFieldState
|
||||||
import org.jetbrains.jewel.shape
|
import org.jetbrains.jewel.shape
|
||||||
|
import org.jetbrains.jewel.styles.LocalTextFieldStyle
|
||||||
import org.jetbrains.jewel.styles.LocalTextStyle
|
import org.jetbrains.jewel.styles.LocalTextStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.LocalTextFieldStyle
|
import org.jetbrains.jewel.styles.TextFieldStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.TextFieldStyle
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun TextField(
|
fun TextField(
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@file:OptIn(ExperimentalComposeUiApi::class)
|
@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.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.background
|
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.dp
|
||||||
import androidx.compose.ui.unit.times
|
import androidx.compose.ui.unit.times
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.jetbrains.jewel.theme.intellij.appendIf
|
import org.jetbrains.jewel.styles.LocalTreeViewStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.LocalTreeViewStyle
|
import org.jetbrains.jewel.styles.TreeViewState
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.TreeViewState
|
import org.jetbrains.jewel.styles.TreeViewStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.TreeViewStyle
|
import org.jetbrains.jewel.styles.updateTreeViewAppearanceTransition
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.updateTreeViewAppearanceTransition
|
import org.jetbrains.jewel.util.appendIf
|
||||||
import org.jetbrains.jewel.theme.intellij.visibleItemsRange
|
import org.jetbrains.jewel.util.visibleItemsRange
|
||||||
import org.jetbrains.skiko.hostOs
|
import org.jetbrains.skiko.hostOs
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
@@ -12,27 +12,25 @@ import androidx.compose.ui.unit.IntSize
|
|||||||
import org.jetbrains.jewel.components.ImageSlice
|
import org.jetbrains.jewel.components.ImageSlice
|
||||||
import org.jetbrains.jewel.components.ImageSliceValues
|
import org.jetbrains.jewel.components.ImageSliceValues
|
||||||
|
|
||||||
fun Modifier.background(image: ImageBitmap, maintainAspect: Boolean = true): Modifier {
|
fun Modifier.background(image: ImageBitmap, maintainAspect: Boolean = true): Modifier =
|
||||||
return then(
|
then(
|
||||||
DrawImageBackgroundModifier(image, maintainAspect, debugInspectorInfo {
|
DrawImageBackgroundModifier(image, maintainAspect, debugInspectorInfo {
|
||||||
name = "background"
|
name = "background"
|
||||||
properties["image"] = image
|
properties["image"] = image
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|
||||||
fun Modifier.background(image: ImageBitmap, slices: ImageSliceValues): Modifier =
|
fun Modifier.background(image: ImageBitmap, slices: ImageSliceValues): Modifier =
|
||||||
background(ImageSlice(image, slices))
|
background(ImageSlice(image, slices))
|
||||||
|
|
||||||
fun Modifier.background(imageSlice: ImageSlice): Modifier {
|
fun Modifier.background(imageSlice: ImageSlice): Modifier =
|
||||||
return then(
|
then(
|
||||||
DrawImageSliceBackgroundModifier(imageSlice, debugInspectorInfo {
|
DrawImageSliceBackgroundModifier(imageSlice, debugInspectorInfo {
|
||||||
name = "background"
|
name = "background"
|
||||||
properties["image"] = imageSlice.image
|
properties["image"] = imageSlice.image
|
||||||
properties["slices"] = imageSlice.slices
|
properties["slices"] = imageSlice.slices
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|
||||||
abstract class CustomBackgroundModifier(
|
abstract class CustomBackgroundModifier(
|
||||||
inspectorInfo: InspectorInfo.() -> Unit
|
inspectorInfo: InspectorInfo.() -> Unit
|
||||||
@@ -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.animation.core.updateTransition
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
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.DpSize
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import org.jetbrains.jewel.Insets
|
import org.jetbrains.jewel.Insets
|
||||||
|
import org.jetbrains.jewel.IntelliJMetrics
|
||||||
|
import org.jetbrains.jewel.IntelliJPalette
|
||||||
import org.jetbrains.jewel.ShapeStroke
|
import org.jetbrains.jewel.ShapeStroke
|
||||||
import org.jetbrains.jewel.animateShapeStroke
|
import org.jetbrains.jewel.animateShapeStroke
|
||||||
import org.jetbrains.jewel.components.state.ButtonAppearanceTransitionState
|
import org.jetbrains.jewel.components.state.ButtonAppearanceTransitionState
|
||||||
import org.jetbrains.jewel.components.state.ButtonMouseState
|
import org.jetbrains.jewel.components.state.ButtonMouseState
|
||||||
import org.jetbrains.jewel.components.state.ButtonState
|
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
|
import org.jetbrains.jewel.toBrush
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
@@ -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.Composable
|
||||||
import androidx.compose.runtime.Immutable
|
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.text.TextStyle
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
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.ShapeStroke
|
||||||
import org.jetbrains.jewel.components.state.ButtonMouseState
|
import org.jetbrains.jewel.components.state.ButtonMouseState
|
||||||
import org.jetbrains.jewel.components.state.CheckboxState
|
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<CheckboxAppearance, CheckboxState>
|
typealias CheckboxStyle = ControlStyle<CheckboxAppearance, CheckboxState>
|
||||||
|
|
||||||
@@ -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.Composable
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import androidx.compose.runtime.ReadOnlyComposable
|
import androidx.compose.runtime.ReadOnlyComposable
|
||||||
import androidx.compose.runtime.compositionLocalOf
|
import androidx.compose.runtime.compositionLocalOf
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import org.jetbrains.jewel.styles.ControlStyle
|
import org.jetbrains.jewel.IntelliJPalette
|
||||||
import org.jetbrains.jewel.styles.Styles
|
|
||||||
import org.jetbrains.jewel.styles.localNotProvided
|
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJPalette
|
|
||||||
|
|
||||||
typealias FrameStyle = ControlStyle<FrameAppearance, Unit>
|
typealias FrameStyle = ControlStyle<FrameAppearance, Unit>
|
||||||
|
|
||||||
@@ -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.Composable
|
||||||
import androidx.compose.runtime.Immutable
|
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.text.TextStyle
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
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.ShapeStroke
|
||||||
import org.jetbrains.jewel.components.state.ButtonMouseState
|
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<RadioButtonAppearance, RadioButtonState>
|
typealias RadioButtonStyle = ControlStyle<RadioButtonAppearance, RadioButtonState>
|
||||||
|
|
||||||
@@ -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.ScrollbarStyle
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
|
import org.jetbrains.jewel.IntelliJMetrics
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJPalette
|
import org.jetbrains.jewel.IntelliJPalette
|
||||||
|
|
||||||
// TODO consider that scrollbars have different behaviors on different OSes
|
// 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.
|
// Scrollbars on IJ do NOT follow the LaF defaults! They are only influenced by the ScrollbarUI being used, which depends on the OS.
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.theme.intellij.styles
|
package org.jetbrains.jewel.styles
|
||||||
|
|
||||||
import androidx.compose.foundation.BorderStroke
|
import androidx.compose.foundation.BorderStroke
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -7,9 +7,8 @@ import androidx.compose.runtime.ReadOnlyComposable
|
|||||||
import androidx.compose.runtime.compositionLocalOf
|
import androidx.compose.runtime.compositionLocalOf
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import org.jetbrains.jewel.styles.Styles
|
import org.jetbrains.jewel.IntelliJMetrics
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
|
import org.jetbrains.jewel.IntelliJPalette
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJPalette
|
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class SeparatorStyle(
|
data class SeparatorStyle(
|
||||||
@@ -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.Composable
|
||||||
import androidx.compose.runtime.ReadOnlyComposable
|
import androidx.compose.runtime.ReadOnlyComposable
|
||||||
import androidx.compose.runtime.compositionLocalOf
|
import androidx.compose.runtime.compositionLocalOf
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
|
import org.jetbrains.jewel.IntelliJPalette
|
||||||
import org.jetbrains.jewel.Orientation
|
import org.jetbrains.jewel.Orientation
|
||||||
import org.jetbrains.jewel.styles.ControlStyle
|
import org.jetbrains.jewel.IntelliJTypography
|
||||||
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
|
|
||||||
|
|
||||||
typealias SliderStyle = ControlStyle<SliderAppearance, SliderState>
|
typealias SliderStyle = ControlStyle<SliderAppearance, SliderState>
|
||||||
|
|
||||||
@@ -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.Arrangement
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
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 androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import org.jetbrains.jewel.BottomLineShape
|
import org.jetbrains.jewel.BottomLineShape
|
||||||
|
import org.jetbrains.jewel.IntelliJPalette
|
||||||
import org.jetbrains.jewel.Orientation
|
import org.jetbrains.jewel.Orientation
|
||||||
import org.jetbrains.jewel.ShapeStroke
|
import org.jetbrains.jewel.ShapeStroke
|
||||||
import org.jetbrains.jewel.components.state.TabState
|
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<TabAppearance, TabState>
|
typealias TabStyle = ControlStyle<TabAppearance, TabState>
|
||||||
|
|
||||||
@@ -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.foundation.layout.PaddingValues
|
||||||
import androidx.compose.runtime.Composable
|
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.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import org.jetbrains.jewel.Insets
|
import org.jetbrains.jewel.Insets
|
||||||
|
import org.jetbrains.jewel.IntelliJMetrics
|
||||||
|
import org.jetbrains.jewel.IntelliJPalette
|
||||||
import org.jetbrains.jewel.ShapeStroke
|
import org.jetbrains.jewel.ShapeStroke
|
||||||
import org.jetbrains.jewel.components.state.TextFieldState
|
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
|
import org.jetbrains.jewel.toBrush
|
||||||
|
|
||||||
typealias TextFieldStyle = ControlStyle<TextFieldAppearance, TextFieldState>
|
typealias TextFieldStyle = ControlStyle<TextFieldAppearance, TextFieldState>
|
||||||
@@ -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.animateColor
|
||||||
import androidx.compose.animation.core.updateTransition
|
import androidx.compose.animation.core.updateTransition
|
||||||
@@ -9,13 +9,10 @@ import androidx.compose.runtime.compositionLocalOf
|
|||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
import org.jetbrains.jewel.styles.ControlStyle
|
import org.jetbrains.jewel.IntelliJMetrics
|
||||||
import org.jetbrains.jewel.styles.Styles
|
import org.jetbrains.jewel.IntelliJPainters
|
||||||
import org.jetbrains.jewel.styles.localNotProvided
|
import org.jetbrains.jewel.IntelliJPalette
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
|
import org.jetbrains.jewel.PainterProvider
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJPainters
|
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJPalette
|
|
||||||
import org.jetbrains.jewel.theme.intellij.PainterProvider
|
|
||||||
|
|
||||||
typealias TreeViewStyle = ControlStyle<TreeViewAppearance, TreeViewState>
|
typealias TreeViewStyle = ControlStyle<TreeViewAppearance, TreeViewState>
|
||||||
|
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
[versions]
|
[versions]
|
||||||
composeDesktop = "1.2.1"
|
composeDesktop = "1.2.1"
|
||||||
coroutines = "1.6.0"
|
coroutines = "1.6.0"
|
||||||
ideaGradlePlugin = "1.10.0"
|
idea = "223.7571.203"
|
||||||
|
ideaGradlePlugin = "1.11.0-SNAPSHOT"
|
||||||
jna = "5.10.0"
|
jna = "5.10.0"
|
||||||
kotlin = "1.7.10"
|
kotlin = "1.7.10"
|
||||||
kotlinxSerialization = "1.3.1"
|
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" }
|
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-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" }
|
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]
|
[plugins]
|
||||||
composeDesktop = { id = "org.jetbrains.compose", version.ref = "composeDesktop" }
|
composeDesktop = { id = "org.jetbrains.compose", version.ref = "composeDesktop" }
|
||||||
|
|||||||
41
platform/jewel/samples/ide-plugin/build.gradle.kts
Normal file
@@ -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)
|
||||||
|
}
|
||||||
@@ -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.background
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
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.ToolWindow
|
||||||
import com.intellij.openapi.wm.ToolWindowFactory
|
import com.intellij.openapi.wm.ToolWindowFactory
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
import org.jetbrains.jewel.IntelliJTheme
|
||||||
import org.jetbrains.jewel.Orientation
|
import org.jetbrains.jewel.Orientation
|
||||||
import org.jetbrains.jewel.theme.idea.IntelliJTheme
|
import org.jetbrains.jewel.components.Button
|
||||||
import org.jetbrains.jewel.theme.idea.addComposePanel
|
import org.jetbrains.jewel.components.Checkbox
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJTheme
|
import org.jetbrains.jewel.components.CheckboxRow
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Button
|
import org.jetbrains.jewel.components.Divider
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Checkbox
|
import org.jetbrains.jewel.components.RadioButtonRow
|
||||||
import org.jetbrains.jewel.theme.intellij.components.CheckboxRow
|
import org.jetbrains.jewel.components.Tab
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Divider
|
import org.jetbrains.jewel.components.TabRow
|
||||||
import org.jetbrains.jewel.theme.intellij.components.RadioButtonRow
|
import org.jetbrains.jewel.components.TabScope
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Tab
|
import org.jetbrains.jewel.components.Text
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TabRow
|
import org.jetbrains.jewel.components.TextField
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TabScope
|
import org.jetbrains.jewel.components.rememberTabContainerState
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Text
|
import org.jetbrains.jewel.themes.darcula.idebridge.IntelliJTheme
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TextField
|
import org.jetbrains.jewel.themes.darcula.idebridge.addComposePanel
|
||||||
import org.jetbrains.jewel.theme.intellij.components.rememberTabContainerState
|
|
||||||
|
|
||||||
@ExperimentalCoroutinesApi
|
@ExperimentalCoroutinesApi
|
||||||
internal class JewelDemoToolWindow : ToolWindowFactory, DumbAware {
|
internal class JewelDemoToolWindow : ToolWindowFactory, DumbAware {
|
||||||
@@ -74,7 +74,10 @@ internal class JewelDemoToolWindow : ToolWindowFactory, DumbAware {
|
|||||||
horizontalArrangement = Arrangement.spacedBy(24.dp)
|
horizontalArrangement = Arrangement.spacedBy(24.dp)
|
||||||
) {
|
) {
|
||||||
Text("One")
|
Text("One")
|
||||||
Divider(orientation = Orientation.Vertical, startIndent = 12.dp)
|
Divider(
|
||||||
|
orientation = Orientation.Vertical,
|
||||||
|
startIndent = 12.dp
|
||||||
|
)
|
||||||
Text("Two")
|
Text("Two")
|
||||||
Divider(orientation = Orientation.Vertical)
|
Divider(orientation = Orientation.Vertical)
|
||||||
Text("Three")
|
Text("Three")
|
||||||
@@ -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.VerticalScrollbar
|
||||||
import androidx.compose.foundation.layout.Box
|
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.ToolWindow
|
||||||
import com.intellij.openapi.wm.ToolWindowFactory
|
import com.intellij.openapi.wm.ToolWindowFactory
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import org.jetbrains.jewel.theme.idea.IntelliJTheme
|
import org.jetbrains.jewel.components.Surface
|
||||||
import org.jetbrains.jewel.theme.idea.addComposePanel
|
import org.jetbrains.jewel.components.Text
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Surface
|
import org.jetbrains.jewel.components.Tree
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Text
|
import org.jetbrains.jewel.components.TreeLayout
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Tree
|
import org.jetbrains.jewel.components.asTree
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TreeLayout
|
import org.jetbrains.jewel.themes.darcula.idebridge.IntelliJTheme
|
||||||
import org.jetbrains.jewel.theme.intellij.components.asTree
|
import org.jetbrains.jewel.themes.darcula.idebridge.addComposePanel
|
||||||
import java.nio.file.Paths
|
import java.nio.file.Paths
|
||||||
|
|
||||||
@ExperimentalCoroutinesApi
|
@ExperimentalCoroutinesApi
|
||||||
@@ -47,7 +47,8 @@ internal class PKGSDemo : ToolWindowFactory, DumbAware {
|
|||||||
onTreeElementDoubleClick = {
|
onTreeElementDoubleClick = {
|
||||||
when (it) {
|
when (it) {
|
||||||
is Tree.Element.Leaf -> println("CIAO ${it.data.absolutePath}")
|
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 = {
|
rowContent = {
|
||||||
@@ -69,4 +70,4 @@ internal class PKGSDemo : ToolWindowFactory, DumbAware {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,3 @@
|
|||||||
@file:Suppress("UnstableApiUsage")
|
|
||||||
|
|
||||||
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
@@ -26,17 +24,13 @@ kotlin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(compose.desktop.currentOs) {
|
implementation(projects.themes.darcula.standalone)
|
||||||
exclude(group = "org.jetbrains.compose.material")
|
implementation(libs.compose.components.splitpane)
|
||||||
}
|
|
||||||
implementation(projects.library)
|
|
||||||
implementation(projects.themes.intellij.standalone)
|
|
||||||
api(libs.compose.components.splitpane)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
compose.desktop {
|
compose.desktop {
|
||||||
application {
|
application {
|
||||||
mainClass = "org.jetbrains.jewel.sample.MainKt"
|
mainClass = "org.jetbrains.jewel.samples.standalone.MainKt"
|
||||||
nativeDistributions {
|
nativeDistributions {
|
||||||
targetFormats(TargetFormat.Dmg)
|
targetFormats(TargetFormat.Dmg)
|
||||||
packageName = "Jewel Sample"
|
packageName = "Jewel Sample"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@file:OptIn(ExperimentalFoundationApi::class)
|
@file:OptIn(ExperimentalFoundationApi::class)
|
||||||
|
|
||||||
package org.jetbrains.jewel.sample
|
package org.jetbrains.jewel.samples.standalone
|
||||||
|
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
@@ -15,13 +15,13 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.window.singleWindowApplication
|
import androidx.compose.ui.window.singleWindowApplication
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJThemeLight
|
import org.jetbrains.jewel.themes.darcula.IntelliJThemeLight
|
||||||
import org.jetbrains.jewel.theme.intellij.LocalPalette
|
import org.jetbrains.jewel.themes.darcula.LocalPalette
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Button
|
import org.jetbrains.jewel.themes.darcula.components.Button
|
||||||
import org.jetbrains.jewel.theme.intellij.components.FocusableLazyColumn
|
import org.jetbrains.jewel.themes.darcula.components.FocusableLazyColumn
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Text
|
import org.jetbrains.jewel.themes.darcula.components.Text
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TextField
|
import org.jetbrains.jewel.themes.darcula.components.rememberFocusableLazyListState
|
||||||
import org.jetbrains.jewel.theme.intellij.components.rememberFocusableLazyListState
|
import java.awt.TextField
|
||||||
|
|
||||||
fun main() = singleWindowApplication {
|
fun main() = singleWindowApplication {
|
||||||
IntelliJThemeLight {
|
IntelliJThemeLight {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.sample
|
package org.jetbrains.jewel.samples.standalone
|
||||||
|
|
||||||
import androidx.compose.foundation.ScrollbarAdapter
|
import androidx.compose.foundation.ScrollbarAdapter
|
||||||
import androidx.compose.foundation.VerticalScrollbar
|
import androidx.compose.foundation.VerticalScrollbar
|
||||||
@@ -24,12 +24,12 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.window.singleWindowApplication
|
import androidx.compose.ui.window.singleWindowApplication
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJMetrics
|
import org.jetbrains.jewel.themes.darcula.IntelliJMetrics
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJTheme
|
import org.jetbrains.jewel.themes.darcula.IntelliJTheme
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Checkbox
|
import org.jetbrains.jewel.themes.darcula.components.Checkbox
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Slider
|
import org.jetbrains.jewel.themes.darcula.components.Slider
|
||||||
import org.jetbrains.jewel.theme.intellij.default
|
import org.jetbrains.jewel.themes.darcula.default
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.SliderStyle
|
import org.jetbrains.jewel.themes.darcula.styles.SliderStyle
|
||||||
|
|
||||||
fun main() = singleWindowApplication(
|
fun main() = singleWindowApplication(
|
||||||
title = "JSlider sample"
|
title = "JSlider sample"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@file:OptIn(ExperimentalTime::class, ExperimentalComposeUiApi::class, ExperimentalSplitPaneApi::class)
|
@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.focusable
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -15,14 +15,14 @@ import androidx.compose.ui.ExperimentalComposeUiApi
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.window.singleWindowApplication
|
import androidx.compose.ui.window.singleWindowApplication
|
||||||
import org.jetbrains.compose.splitpane.ExperimentalSplitPaneApi
|
import org.jetbrains.compose.splitpane.ExperimentalSplitPaneApi
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJTheme
|
import org.jetbrains.jewel.themes.darcula.IntelliJTheme
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Checkbox
|
import org.jetbrains.jewel.themes.darcula.components.Checkbox
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Surface
|
import org.jetbrains.jewel.themes.darcula.components.Surface
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Tab
|
import org.jetbrains.jewel.themes.darcula.components.Tab
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TabRow
|
import org.jetbrains.jewel.themes.darcula.components.TabRow
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TabScope
|
import org.jetbrains.jewel.themes.darcula.components.TabScope
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Text
|
import org.jetbrains.jewel.themes.darcula.components.Text
|
||||||
import org.jetbrains.jewel.theme.intellij.components.rememberTabContainerState
|
import org.jetbrains.jewel.themes.darcula.components.rememberTabContainerState
|
||||||
import kotlin.time.ExperimentalTime
|
import kotlin.time.ExperimentalTime
|
||||||
|
|
||||||
@Suppress("EXPERIMENTAL_IS_NOT_ENABLED")
|
@Suppress("EXPERIMENTAL_IS_NOT_ENABLED")
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.sample
|
package org.jetbrains.jewel.samples.standalone
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
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.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.window.singleWindowApplication
|
import androidx.compose.ui.window.singleWindowApplication
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJThemeDark
|
import org.jetbrains.jewel.themes.darcula.IntelliJThemeDark
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Surface
|
import org.jetbrains.jewel.themes.darcula.components.Surface
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Table
|
import org.jetbrains.jewel.themes.darcula.components.Table
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TableView
|
import org.jetbrains.jewel.themes.darcula.components.TableView
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Text
|
import org.jetbrains.jewel.themes.darcula.components.Text
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
singleWindowApplication {
|
singleWindowApplication {
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@file:OptIn(ExperimentalSplitPaneApi::class)
|
@file:OptIn(ExperimentalSplitPaneApi::class)
|
||||||
|
|
||||||
package org.jetbrains.jewel.sample
|
package org.jetbrains.jewel.samples.standalone
|
||||||
|
|
||||||
import androidx.compose.foundation.VerticalScrollbar
|
import androidx.compose.foundation.VerticalScrollbar
|
||||||
import androidx.compose.foundation.focusable
|
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.HorizontalSplitPane
|
||||||
import org.jetbrains.compose.splitpane.rememberSplitPaneState
|
import org.jetbrains.compose.splitpane.rememberSplitPaneState
|
||||||
import org.jetbrains.jewel.Orientation
|
import org.jetbrains.jewel.Orientation
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJTheme
|
import org.jetbrains.jewel.themes.darcula.IntelliJTheme
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Checkbox
|
import org.jetbrains.jewel.themes.darcula.components.Checkbox
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Separator
|
import org.jetbrains.jewel.themes.darcula.components.Separator
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Surface
|
import org.jetbrains.jewel.themes.darcula.components.Surface
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Text
|
import org.jetbrains.jewel.themes.darcula.components.Text
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Tree
|
import org.jetbrains.jewel.themes.darcula.components.Tree
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TreeLayout
|
import org.jetbrains.jewel.themes.darcula.components.TreeLayout
|
||||||
import org.jetbrains.jewel.theme.intellij.components.asTree
|
import org.jetbrains.jewel.themes.darcula.components.asTree
|
||||||
import org.jetbrains.skiko.Cursor
|
import org.jetbrains.skiko.Cursor
|
||||||
import java.nio.file.Paths
|
import java.nio.file.Paths
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.jetbrains.jewel.sample
|
package org.jetbrains.jewel.samples.standalone
|
||||||
|
|
||||||
import androidx.compose.foundation.VerticalScrollbar
|
import androidx.compose.foundation.VerticalScrollbar
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
@@ -50,28 +50,28 @@ import org.jetbrains.compose.splitpane.HorizontalSplitPane
|
|||||||
import org.jetbrains.jewel.Orientation
|
import org.jetbrains.jewel.Orientation
|
||||||
import org.jetbrains.jewel.components.Icon
|
import org.jetbrains.jewel.components.Icon
|
||||||
import org.jetbrains.jewel.isMacOs
|
import org.jetbrains.jewel.isMacOs
|
||||||
import org.jetbrains.jewel.theme.intellij.IntelliJTheme
|
import org.jetbrains.jewel.themes.darcula.IntelliJTheme
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Button
|
import org.jetbrains.jewel.themes.darcula.components.Button
|
||||||
import org.jetbrains.jewel.theme.intellij.components.CheckboxRow
|
import org.jetbrains.jewel.themes.darcula.components.CheckboxRow
|
||||||
import org.jetbrains.jewel.theme.intellij.components.CircularProgressIndicator
|
import org.jetbrains.jewel.themes.darcula.components.CircularProgressIndicator
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Divider
|
import org.jetbrains.jewel.themes.darcula.components.Divider
|
||||||
import org.jetbrains.jewel.theme.intellij.components.GroupHeader
|
import org.jetbrains.jewel.themes.darcula.components.GroupHeader
|
||||||
import org.jetbrains.jewel.theme.intellij.components.IconButton
|
import org.jetbrains.jewel.themes.darcula.components.IconButton
|
||||||
import org.jetbrains.jewel.theme.intellij.components.RadioButtonRow
|
import org.jetbrains.jewel.themes.darcula.components.RadioButtonRow
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Slider
|
import org.jetbrains.jewel.themes.darcula.components.Slider
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Surface
|
import org.jetbrains.jewel.themes.darcula.components.Surface
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Tab
|
import org.jetbrains.jewel.themes.darcula.components.Tab
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TabRow
|
import org.jetbrains.jewel.themes.darcula.components.TabRow
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Text
|
import org.jetbrains.jewel.themes.darcula.components.Text
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TextField
|
import org.jetbrains.jewel.themes.darcula.components.TextField
|
||||||
import org.jetbrains.jewel.theme.intellij.components.Tree
|
import org.jetbrains.jewel.themes.darcula.components.Tree
|
||||||
import org.jetbrains.jewel.theme.intellij.components.TreeLayout
|
import org.jetbrains.jewel.themes.darcula.components.TreeLayout
|
||||||
import org.jetbrains.jewel.theme.intellij.components.asTree
|
import org.jetbrains.jewel.themes.darcula.components.asTree
|
||||||
import org.jetbrains.jewel.theme.intellij.components.rememberTabContainerState
|
import org.jetbrains.jewel.themes.darcula.components.rememberTabContainerState
|
||||||
import org.jetbrains.jewel.theme.intellij.pxToDp
|
import org.jetbrains.jewel.themes.darcula.pxToDp
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.ButtonStyle
|
import org.jetbrains.jewel.themes.darcula.styles.ButtonStyle
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.IntelliJButtonStyleVariations
|
import org.jetbrains.jewel.themes.darcula.styles.IntelliJButtonStyleVariations
|
||||||
import org.jetbrains.jewel.theme.intellij.styles.SliderStyle
|
import org.jetbrains.jewel.themes.darcula.styles.SliderStyle
|
||||||
import java.awt.Cursor
|
import java.awt.Cursor
|
||||||
import java.awt.Dimension
|
import java.awt.Dimension
|
||||||
import java.awt.event.WindowEvent
|
import java.awt.event.WindowEvent
|
||||||
|
Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 390 B |
|
Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 390 B |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 461 B After Width: | Height: | Size: 461 B |
|
Before Width: | Height: | Size: 461 B After Width: | Height: | Size: 461 B |
|
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 375 B |
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 275 B |
|
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 369 B |
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 525 B After Width: | Height: | Size: 525 B |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
@@ -7,6 +7,7 @@ pluginManagement {
|
|||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/")
|
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/")
|
||||||
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
|
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
|
||||||
|
maven("https://oss.sonatype.org/content/repositories/snapshots/")
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,9 +23,12 @@ dependencyResolutionManagement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
include(
|
include(
|
||||||
":library",
|
":core",
|
||||||
":sample",
|
":compose-utils",
|
||||||
":themes:intellij",
|
":samples:ide-plugin",
|
||||||
":themes:intellij:standalone",
|
":samples:standalone",
|
||||||
":themes:intellij:idea"
|
":themes:darcula:standalone",
|
||||||
|
":themes:darcula:ide-bridge",
|
||||||
|
":themes:new-ui:standalone",
|
||||||
|
":themes:new-ui:ide-bridge"
|
||||||
)
|
)
|
||||||
|
|||||||
35
platform/jewel/themes/darcula/ide-bridge/build.gradle.kts
Normal file
@@ -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)
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@file:Suppress("UnstableApiUsage")
|
@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.foundation.layout.PaddingValues
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||