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