Reorganise project structure

GitOrigin-RevId: 21550b01dfef4f580fe57fc00bfa4d7c2a87b943
This commit is contained in:
Sebastiano Poggi
2022-12-05 20:40:12 +01:00
committed by intellij-monorepo-bot
parent 6f530981a4
commit 85cc9c6c50
157 changed files with 1414 additions and 347 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -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" />

View File

@@ -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">

View 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)
}

View File

@@ -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

View File

@@ -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() }

View File

@@ -0,0 +1,6 @@
package org.jetbrains.jewel.util
import androidx.compose.foundation.lazy.LazyListState
val LazyListState.visibleItemsRange
get() = firstVisibleItemIndex..firstVisibleItemIndex + layoutInfo.visibleItemsInfo.size

View File

@@ -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()

View File

@@ -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")

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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) {

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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() }

View File

@@ -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,

View File

@@ -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

View File

@@ -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(

View File

@@ -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(

View File

@@ -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

View File

@@ -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(

View File

@@ -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

View File

@@ -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

View File

@@ -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) {

View File

@@ -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(

View File

@@ -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(

View File

@@ -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

View File

@@ -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

View File

@@ -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(

View File

@@ -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

View File

@@ -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(

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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.

View File

@@ -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(

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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" }

View 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)
}

View File

@@ -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")

View File

@@ -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 {
} }
} }
} }
} }

View File

@@ -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"

View File

@@ -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 {

View File

@@ -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"

View File

@@ -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")

View File

@@ -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 {

View File

@@ -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

View File

@@ -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

View File

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 461 B

View File

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 461 B

View File

@@ -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"
) )

View 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)
}

View File

@@ -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

Some files were not shown because too many files have changed in this diff Show More