diff --git a/web/integration-widgets/src/commonMain/kotlin/App.kt b/web/integration-widgets/src/commonMain/kotlin/App.kt index 5c4e545978..4df2914440 100644 --- a/web/integration-widgets/src/commonMain/kotlin/App.kt +++ b/web/integration-widgets/src/commonMain/kotlin/App.kt @@ -2,16 +2,11 @@ package org.jetbrainsc.compose.common.demo import androidx.compose.runtime.Composable import org.jetbrains.compose.common.foundation.layout.Box -import org.jetbrains.compose.common.ui.Modifier -import org.jetbrains.compose.common.ui.size -import org.jetbrains.compose.common.ui.background -import org.jetbrains.compose.common.ui.padding import org.jetbrains.compose.common.ui.unit.dp import org.jetbrains.compose.common.core.graphics.Color import org.jetbrains.compose.common.foundation.layout.Row import org.jetbrains.compose.common.foundation.layout.Column import org.jetbrains.compose.common.foundation.layout.Arrangement -import org.jetbrains.compose.common.ui.Alignment import org.jetbrains.compose.common.foundation.border import org.jetbrains.compose.common.material.Text import org.jetbrains.compose.common.ui.unit.em @@ -23,7 +18,9 @@ import org.jetbrains.compose.common.foundation.layout.width import org.jetbrains.compose.common.foundation.clickable import org.jetbrains.compose.common.ui.draw.clip import jetbrains.compose.common.shapes.CircleShape +import org.jetbrains.compose.common.ui.* +@OptIn(ExperimentalComposeWebWidgetsApi::class) object LayoutSamples { @Composable fun TwoTexts() { @@ -128,4 +125,4 @@ object LayoutSamples { @Composable fun App() { LayoutSamples.TwoTextsInColumn() -} \ No newline at end of file +} diff --git a/web/widgets/src/commonMain/kotlin/Alignment.kt b/web/widgets/src/commonMain/kotlin/Alignment.kt index 0f3c8e6e5c..0f85bd5022 100644 --- a/web/widgets/src/commonMain/kotlin/Alignment.kt +++ b/web/widgets/src/commonMain/kotlin/Alignment.kt @@ -1,5 +1,6 @@ package org.jetbrains.compose.common.ui +@ExperimentalComposeWebWidgetsApi interface Alignment { interface Vertical : Alignment interface Horizontal : Alignment @@ -11,9 +12,9 @@ interface Alignment { val CenterStart = object : Alignment {} val Center = object : Alignment {} val CenterEnd = object : Alignment {} - val BoottomStart = object : Alignment {} - val BoottomCenter = object : Alignment {} - val BoottomEnd = object : Alignment {} + val BottomStart = object : Alignment {} + val BottomCenter = object : Alignment {} + val BottomEnd = object : Alignment {} val Top = object : Alignment.Vertical {} val CenterVertically = object : Alignment.Vertical {} diff --git a/web/widgets/src/commonMain/kotlin/Arrangement.kt b/web/widgets/src/commonMain/kotlin/Arrangement.kt index 23006c8f9b..f2f3bf5970 100644 --- a/web/widgets/src/commonMain/kotlin/Arrangement.kt +++ b/web/widgets/src/commonMain/kotlin/Arrangement.kt @@ -1,7 +1,13 @@ package org.jetbrains.compose.common.foundation.layout +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi + +@ExperimentalComposeWebWidgetsApi object Arrangement { + @ExperimentalComposeWebWidgetsApi interface Horizontal + + @ExperimentalComposeWebWidgetsApi interface Vertical val End = object : Horizontal {} diff --git a/web/widgets/src/commonMain/kotlin/Color.kt b/web/widgets/src/commonMain/kotlin/Color.kt index d38d7903ab..acdc34f6ac 100644 --- a/web/widgets/src/commonMain/kotlin/Color.kt +++ b/web/widgets/src/commonMain/kotlin/Color.kt @@ -1,5 +1,8 @@ package org.jetbrains.compose.common.core.graphics +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi + +@ExperimentalComposeWebWidgetsApi public data class Color(val red: Int, val green: Int, val blue: Int) { companion object { diff --git a/web/widgets/src/commonMain/kotlin/ExperimentalComposeWebWidgetsApi.kt b/web/widgets/src/commonMain/kotlin/ExperimentalComposeWebWidgetsApi.kt new file mode 100644 index 0000000000..050cb26290 --- /dev/null +++ b/web/widgets/src/commonMain/kotlin/ExperimentalComposeWebWidgetsApi.kt @@ -0,0 +1,4 @@ +package org.jetbrains.compose.common.ui + +@RequiresOptIn("This API is experimental and is likely to change in the future.") +annotation class ExperimentalComposeWebWidgetsApi() diff --git a/web/widgets/src/commonMain/kotlin/Modifier.kt b/web/widgets/src/commonMain/kotlin/Modifier.kt index 72a25d16af..8422f51454 100644 --- a/web/widgets/src/commonMain/kotlin/Modifier.kt +++ b/web/widgets/src/commonMain/kotlin/Modifier.kt @@ -3,10 +3,14 @@ package org.jetbrains.compose.common.ui import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.core.graphics.Color +@ExperimentalComposeWebWidgetsApi interface Modifier { open class Element : Modifier companion object : Element() } +@ExperimentalComposeWebWidgetsApi expect fun Modifier.background(color: Color): Modifier -expect fun Modifier.padding(all: Dp): Modifier \ No newline at end of file + +@ExperimentalComposeWebWidgetsApi +expect fun Modifier.padding(all: Dp): Modifier diff --git a/web/widgets/src/commonMain/kotlin/layouts/box.kt b/web/widgets/src/commonMain/kotlin/layouts/box.kt index 2424d291af..fab973ad7a 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/box.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/box.kt @@ -2,6 +2,8 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi @Composable +@ExperimentalComposeWebWidgetsApi internal expect fun BoxActual(modifier: Modifier, content: @Composable () -> Unit) diff --git a/web/widgets/src/commonMain/kotlin/layouts/button.kt b/web/widgets/src/commonMain/kotlin/layouts/button.kt index 6e64a0c8c7..3ac0d0a6d5 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/button.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/button.kt @@ -2,9 +2,11 @@ package org.jetbrains.compose.common.material import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi @Composable -expect fun ButtonActual( +@ExperimentalComposeWebWidgetsApi +internal expect fun ButtonActual( modifier: Modifier, onClick: () -> Unit, content: @Composable () -> Unit diff --git a/web/widgets/src/commonMain/kotlin/layouts/column.kt b/web/widgets/src/commonMain/kotlin/layouts/column.kt index 28c1aef387..fcd19949de 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/column.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/column.kt @@ -2,6 +2,8 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi @Composable +@ExperimentalComposeWebWidgetsApi internal expect fun ColumnActual(modifier: Modifier, content: @Composable () -> Unit) diff --git a/web/widgets/src/commonMain/kotlin/layouts/defaults/BoxDefault.kt b/web/widgets/src/commonMain/kotlin/layouts/defaults/BoxDefault.kt index be8b9750dd..4b50e6c074 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/defaults/BoxDefault.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/defaults/BoxDefault.kt @@ -2,8 +2,10 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi @Composable +@ExperimentalComposeWebWidgetsApi fun Box( modifier: Modifier = Modifier.Companion, content: @Composable () -> Unit diff --git a/web/widgets/src/commonMain/kotlin/layouts/defaults/ButtonDefault.kt b/web/widgets/src/commonMain/kotlin/layouts/defaults/ButtonDefault.kt index 6aded72c67..3362ac5fdb 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/defaults/ButtonDefault.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/defaults/ButtonDefault.kt @@ -2,8 +2,10 @@ package org.jetbrains.compose.common.material import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi @Composable +@ExperimentalComposeWebWidgetsApi fun Button( modifier: Modifier = Modifier.Companion, onClick: () -> Unit, diff --git a/web/widgets/src/commonMain/kotlin/layouts/defaults/ColumnDefault.kt b/web/widgets/src/commonMain/kotlin/layouts/defaults/ColumnDefault.kt index 109a6c68fe..66d3e45176 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/defaults/ColumnDefault.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/defaults/ColumnDefault.kt @@ -2,8 +2,10 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi @Composable +@ExperimentalComposeWebWidgetsApi fun Column( modifier: Modifier = Modifier.Companion, content: @Composable () -> Unit diff --git a/web/widgets/src/commonMain/kotlin/layouts/defaults/ModifierDefault.kt b/web/widgets/src/commonMain/kotlin/layouts/defaults/ModifierDefault.kt index 66889da156..18f31742c8 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/defaults/ModifierDefault.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/defaults/ModifierDefault.kt @@ -2,6 +2,7 @@ package org.jetbrains.compose.common.ui import org.jetbrains.compose.common.ui.unit.Dp +@ExperimentalComposeWebWidgetsApi fun Modifier.size(size: Dp): Modifier { return size(size, size) } diff --git a/web/widgets/src/commonMain/kotlin/layouts/defaults/RowDefault.kt b/web/widgets/src/commonMain/kotlin/layouts/defaults/RowDefault.kt index a3c6d0cd5b..7dc4493de9 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/defaults/RowDefault.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/defaults/RowDefault.kt @@ -3,8 +3,10 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable import org.jetbrains.compose.common.ui.Alignment +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi @Composable +@ExperimentalComposeWebWidgetsApi fun Row( modifier: Modifier = Modifier.Companion, horizontalArrangement: Arrangement.Horizontal = Arrangement.Start, diff --git a/web/widgets/src/commonMain/kotlin/layouts/defaults/SliderDefault.kt b/web/widgets/src/commonMain/kotlin/layouts/defaults/SliderDefault.kt index 02d8192e1e..4f5633de2c 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/defaults/SliderDefault.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/defaults/SliderDefault.kt @@ -1,9 +1,11 @@ package org.jetbrains.compose.common.material import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier @Composable +@ExperimentalComposeWebWidgetsApi fun Slider( value: Float, onValueChange: (Float) -> Unit = {}, diff --git a/web/widgets/src/commonMain/kotlin/layouts/defaults/TextDefault.kt b/web/widgets/src/commonMain/kotlin/layouts/defaults/TextDefault.kt index 23d606d418..37812a04c2 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/defaults/TextDefault.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/defaults/TextDefault.kt @@ -3,9 +3,11 @@ package org.jetbrains.compose.common.material import androidx.compose.runtime.Composable import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.core.graphics.Color +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.unit.TextUnit @Composable +@ExperimentalComposeWebWidgetsApi fun Text( text: String, modifier: Modifier = Modifier.Companion, diff --git a/web/widgets/src/commonMain/kotlin/layouts/row.kt b/web/widgets/src/commonMain/kotlin/layouts/row.kt index 566629095a..574ce08303 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/row.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/row.kt @@ -3,8 +3,10 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable import org.jetbrains.compose.common.ui.Alignment +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi @Composable +@ExperimentalComposeWebWidgetsApi internal expect fun RowActual( modifier: Modifier, horizontalArrangement: Arrangement.Horizontal, diff --git a/web/widgets/src/commonMain/kotlin/layouts/shapes/shapes.kt b/web/widgets/src/commonMain/kotlin/layouts/shapes/shapes.kt index 9cb983c06a..fa63b70f7e 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/shapes/shapes.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/shapes/shapes.kt @@ -1,5 +1,9 @@ package jetbrains.compose.common.shapes +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi + +@ExperimentalComposeWebWidgetsApi interface Shape +@ExperimentalComposeWebWidgetsApi object CircleShape : Shape diff --git a/web/widgets/src/commonMain/kotlin/layouts/slider.kt b/web/widgets/src/commonMain/kotlin/layouts/slider.kt index 83b0e0a8e8..64768e32fb 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/slider.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/slider.kt @@ -1,10 +1,12 @@ package org.jetbrains.compose.common.material import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier @Composable -expect fun SliderActual( +@ExperimentalComposeWebWidgetsApi +internal expect fun SliderActual( value: Float, onValueChange: (Float) -> Unit, valueRange: ClosedFloatingPointRange, diff --git a/web/widgets/src/commonMain/kotlin/layouts/text.kt b/web/widgets/src/commonMain/kotlin/layouts/text.kt index 8a99efd06a..32a415516c 100644 --- a/web/widgets/src/commonMain/kotlin/layouts/text.kt +++ b/web/widgets/src/commonMain/kotlin/layouts/text.kt @@ -3,10 +3,12 @@ package org.jetbrains.compose.common.material import androidx.compose.runtime.Composable import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.core.graphics.Color +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.unit.TextUnit @Composable -expect fun TextActual( +@ExperimentalComposeWebWidgetsApi +internal expect fun TextActual( text: String, modifier: Modifier, color: Color, diff --git a/web/widgets/src/commonMain/kotlin/modifiers/border.kt b/web/widgets/src/commonMain/kotlin/modifiers/border.kt index 19ef2cd9c7..7eecb46352 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/border.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/border.kt @@ -2,6 +2,8 @@ package org.jetbrains.compose.common.foundation import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.core.graphics.Color +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier +@ExperimentalComposeWebWidgetsApi expect fun Modifier.border(size: Dp, color: Color): Modifier diff --git a/web/widgets/src/commonMain/kotlin/modifiers/clickable.kt b/web/widgets/src/commonMain/kotlin/modifiers/clickable.kt index fe6144c8ac..62885a22a2 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/clickable.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/clickable.kt @@ -1,5 +1,7 @@ package org.jetbrains.compose.common.foundation +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier +@ExperimentalComposeWebWidgetsApi expect fun Modifier.clickable(onClick: () -> Unit): Modifier diff --git a/web/widgets/src/commonMain/kotlin/modifiers/clip.kt b/web/widgets/src/commonMain/kotlin/modifiers/clip.kt index ff9ff67a2e..bb692ac68e 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/clip.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/clip.kt @@ -2,5 +2,7 @@ package org.jetbrains.compose.common.ui.draw import org.jetbrains.compose.common.ui.Modifier import jetbrains.compose.common.shapes.Shape +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi expect fun Modifier.clip(shape: Shape): Modifier diff --git a/web/widgets/src/commonMain/kotlin/modifiers/fillMaxHeight.kt b/web/widgets/src/commonMain/kotlin/modifiers/fillMaxHeight.kt index b2181cedd8..3f9d4c8e58 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/fillMaxHeight.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/fillMaxHeight.kt @@ -1,5 +1,7 @@ package org.jetbrains.compose.common.foundation.layout +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier +@ExperimentalComposeWebWidgetsApi expect fun Modifier.fillMaxHeight(fraction: Float): Modifier diff --git a/web/widgets/src/commonMain/kotlin/modifiers/fillMaxWidth.kt b/web/widgets/src/commonMain/kotlin/modifiers/fillMaxWidth.kt index 895492258f..4a245bfcfa 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/fillMaxWidth.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/fillMaxWidth.kt @@ -1,5 +1,7 @@ package org.jetbrains.compose.common.foundation.layout +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier +@ExperimentalComposeWebWidgetsApi expect fun Modifier.fillMaxWidth(): Modifier diff --git a/web/widgets/src/commonMain/kotlin/modifiers/offset.kt b/web/widgets/src/commonMain/kotlin/modifiers/offset.kt index 2a4f4c4c91..c2683093aa 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/offset.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/offset.kt @@ -1,6 +1,8 @@ package org.jetbrains.compose.common.foundation.layout +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.ui.Modifier +@ExperimentalComposeWebWidgetsApi expect fun Modifier.offset(x: Dp, y: Dp): Modifier diff --git a/web/widgets/src/commonMain/kotlin/modifiers/onSizeChanged.kt b/web/widgets/src/commonMain/kotlin/modifiers/onSizeChanged.kt index 74e98bc2c2..3f5656bc0a 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/onSizeChanged.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/onSizeChanged.kt @@ -1,8 +1,10 @@ package org.jetbrains.compose.common.ui.layout +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.ui.unit.IntSize +@ExperimentalComposeWebWidgetsApi expect fun Modifier.onSizeChanged( onSizeChanged: (IntSize) -> Unit ): Modifier diff --git a/web/widgets/src/commonMain/kotlin/modifiers/size.kt b/web/widgets/src/commonMain/kotlin/modifiers/size.kt index 43ee3a9910..2aee8c9cc1 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/size.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/size.kt @@ -2,4 +2,5 @@ package org.jetbrains.compose.common.ui import org.jetbrains.compose.common.ui.unit.Dp +@ExperimentalComposeWebWidgetsApi expect fun Modifier.size(width: Dp, height: Dp): Modifier diff --git a/web/widgets/src/commonMain/kotlin/modifiers/width.kt b/web/widgets/src/commonMain/kotlin/modifiers/width.kt index 8d4f5a1e22..6f038b2aa4 100644 --- a/web/widgets/src/commonMain/kotlin/modifiers/width.kt +++ b/web/widgets/src/commonMain/kotlin/modifiers/width.kt @@ -1,6 +1,8 @@ package org.jetbrains.compose.common.foundation.layout +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.ui.Modifier +@ExperimentalComposeWebWidgetsApi expect fun Modifier.width(size: Dp): Modifier diff --git a/web/widgets/src/commonMain/kotlin/units/Dp.kt b/web/widgets/src/commonMain/kotlin/units/Dp.kt index 86146bccf5..e27e3beb7d 100644 --- a/web/widgets/src/commonMain/kotlin/units/Dp.kt +++ b/web/widgets/src/commonMain/kotlin/units/Dp.kt @@ -1,3 +1,6 @@ package org.jetbrains.compose.common.ui.unit +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi + +@ExperimentalComposeWebWidgetsApi data class Dp(val value: Float) diff --git a/web/widgets/src/commonMain/kotlin/units/IntSize.kt b/web/widgets/src/commonMain/kotlin/units/IntSize.kt index 5099359574..6b5993408c 100644 --- a/web/widgets/src/commonMain/kotlin/units/IntSize.kt +++ b/web/widgets/src/commonMain/kotlin/units/IntSize.kt @@ -1,3 +1,6 @@ package org.jetbrains.compose.common.ui.unit +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi + +@ExperimentalComposeWebWidgetsApi data class IntSize(val width: Int, val height: Int) diff --git a/web/widgets/src/commonMain/kotlin/units/TextUnit.kt b/web/widgets/src/commonMain/kotlin/units/TextUnit.kt index a5610ce4d8..ca5fc8f15b 100644 --- a/web/widgets/src/commonMain/kotlin/units/TextUnit.kt +++ b/web/widgets/src/commonMain/kotlin/units/TextUnit.kt @@ -1,11 +1,15 @@ package org.jetbrains.compose.common.ui.unit +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi + +@ExperimentalComposeWebWidgetsApi enum class TextUnitType { Unspecified, Em, Sp } +@ExperimentalComposeWebWidgetsApi data class TextUnit(val value: Float, val unitType: TextUnitType) { companion object { val Unspecified = TextUnit(Float.NaN, TextUnitType.Unspecified) diff --git a/web/widgets/src/commonMain/kotlin/units/unitConversion.kt b/web/widgets/src/commonMain/kotlin/units/unitConversion.kt index 50a44d06c8..12d4828d82 100644 --- a/web/widgets/src/commonMain/kotlin/units/unitConversion.kt +++ b/web/widgets/src/commonMain/kotlin/units/unitConversion.kt @@ -1,17 +1,24 @@ package org.jetbrains.compose.common.ui.unit +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi + // TODO: this have to be in a separate package otherwise there's an error for in cross-module usage (for JVM target) +@ExperimentalComposeWebWidgetsApi val Int.dp: Dp get() = Dp(this.toFloat()) +@ExperimentalComposeWebWidgetsApi val Int.em: TextUnit get() = TextUnit(toFloat(), TextUnitType.Em) +@ExperimentalComposeWebWidgetsApi val Float.em: TextUnit get() = TextUnit(this, TextUnitType.Em) +@ExperimentalComposeWebWidgetsApi val Int.sp: TextUnit get() = TextUnit(toFloat(), TextUnitType.Sp) +@ExperimentalComposeWebWidgetsApi val Float.sp: TextUnit get() = TextUnit(this, TextUnitType.Sp) diff --git a/web/widgets/src/jsMain/kotlin/Modifier.kt b/web/widgets/src/jsMain/kotlin/Modifier.kt index 37b31fc7b5..bdfc90b359 100644 --- a/web/widgets/src/jsMain/kotlin/Modifier.kt +++ b/web/widgets/src/jsMain/kotlin/Modifier.kt @@ -9,12 +9,14 @@ import org.jetbrains.compose.web.css.Color.RGB import org.jetbrains.compose.common.internal.castOrCreate import org.jetbrains.compose.web.attributes.AttrsBuilder +@ExperimentalComposeWebWidgetsApi actual fun Modifier.background(color: Color): Modifier = castOrCreate().apply { add { backgroundColor(RGB(color.red, color.green, color.blue)) } } +@ExperimentalComposeWebWidgetsApi fun Modifier.asAttributeBuilderApplier( passThroughHandler: (AttrsBuilder<*>.() -> Unit)? = null ): AttrsBuilder<*>.() -> Unit = @@ -32,6 +34,7 @@ fun Modifier.asAttributeBuilderApplier( st } +@ExperimentalComposeWebWidgetsApi actual fun Modifier.padding(all: Dp): Modifier = castOrCreate().apply { // yes, it's not a typo, what Modifier.padding does is actually adding margin add { diff --git a/web/widgets/src/jsMain/kotlin/internal/ActualModifier.kt b/web/widgets/src/jsMain/kotlin/internal/ActualModifier.kt index 4de808efc0..2036486b3e 100644 --- a/web/widgets/src/jsMain/kotlin/internal/ActualModifier.kt +++ b/web/widgets/src/jsMain/kotlin/internal/ActualModifier.kt @@ -1,9 +1,11 @@ package org.jetbrains.compose.common.internal +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.web.css.StyleBuilder import org.jetbrains.compose.web.attributes.AttrsBuilder +@ExperimentalComposeWebWidgetsApi class ActualModifier : Modifier { val styleHandlers = mutableListOf Unit>() val attrHandlers = mutableListOf.() -> Unit>() @@ -17,4 +19,5 @@ class ActualModifier : Modifier { } } +@ExperimentalComposeWebWidgetsApi fun Modifier.castOrCreate(): ActualModifier = (this as? ActualModifier) ?: ActualModifier() diff --git a/web/widgets/src/jsMain/kotlin/layouts/box.kt b/web/widgets/src/jsMain/kotlin/layouts/box.kt index 964f6e0f49..c39e5d958e 100644 --- a/web/widgets/src/jsMain/kotlin/layouts/box.kt +++ b/web/widgets/src/jsMain/kotlin/layouts/box.kt @@ -2,10 +2,12 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.dom.Div import org.jetbrains.compose.common.ui.asAttributeBuilderApplier @Composable +@ExperimentalComposeWebWidgetsApi internal actual fun BoxActual(modifier: Modifier, content: @Composable () -> Unit) { Div( attrs = modifier.asAttributeBuilderApplier() diff --git a/web/widgets/src/jsMain/kotlin/layouts/button.kt b/web/widgets/src/jsMain/kotlin/layouts/button.kt index b4717af029..8a80b02c2b 100644 --- a/web/widgets/src/jsMain/kotlin/layouts/button.kt +++ b/web/widgets/src/jsMain/kotlin/layouts/button.kt @@ -2,9 +2,11 @@ package org.jetbrains.compose.common.material import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.dom.Button @Composable +@ExperimentalComposeWebWidgetsApi actual fun ButtonActual( modifier: Modifier, onClick: () -> Unit, diff --git a/web/widgets/src/jsMain/kotlin/layouts/column.kt b/web/widgets/src/jsMain/kotlin/layouts/column.kt index 2de1eedda1..3a5a2e5a4f 100644 --- a/web/widgets/src/jsMain/kotlin/layouts/column.kt +++ b/web/widgets/src/jsMain/kotlin/layouts/column.kt @@ -2,10 +2,12 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.dom.Div import org.jetbrains.compose.web.ui.Styles @Composable +@ExperimentalComposeWebWidgetsApi internal actual fun ColumnActual(modifier: Modifier, content: @Composable () -> Unit) { Div( attrs = { diff --git a/web/widgets/src/jsMain/kotlin/layouts/row.kt b/web/widgets/src/jsMain/kotlin/layouts/row.kt index 196b11b1a8..e55d5ffab1 100644 --- a/web/widgets/src/jsMain/kotlin/layouts/row.kt +++ b/web/widgets/src/jsMain/kotlin/layouts/row.kt @@ -4,13 +4,16 @@ import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable import org.jetbrains.compose.web.dom.Div import org.jetbrains.compose.common.ui.Alignment +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.ui.Styles +@OptIn(ExperimentalComposeWebWidgetsApi::class) private fun Arrangement.Horizontal.asClassName() = when (this) { Arrangement.End -> Styles.composeWebArrangementHorizontalEnd else -> Styles.composeWebArrangementHorizontalStart } +@OptIn(ExperimentalComposeWebWidgetsApi::class) private fun Alignment.Vertical.asClassName() = when (this) { Alignment.Top -> Styles.composeWebAlignmentVerticalTop Alignment.CenterVertically -> Styles.composeWebAlignmentVerticalCenter @@ -18,6 +21,7 @@ private fun Alignment.Vertical.asClassName() = when (this) { } @Composable +@ExperimentalComposeWebWidgetsApi internal actual fun RowActual( modifier: Modifier, horizontalArrangement: Arrangement.Horizontal, diff --git a/web/widgets/src/jsMain/kotlin/layouts/slider.kt b/web/widgets/src/jsMain/kotlin/layouts/slider.kt index 396628c7fd..a40f998c19 100644 --- a/web/widgets/src/jsMain/kotlin/layouts/slider.kt +++ b/web/widgets/src/jsMain/kotlin/layouts/slider.kt @@ -1,12 +1,14 @@ package org.jetbrains.compose.common.material import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.web.dom.Input import org.jetbrains.compose.web.attributes.InputType import org.jetbrains.compose.web.attributes.value @Composable +@ExperimentalComposeWebWidgetsApi actual fun SliderActual( value: Float, onValueChange: (Float) -> Unit, diff --git a/web/widgets/src/jsMain/kotlin/layouts/text.kt b/web/widgets/src/jsMain/kotlin/layouts/text.kt index 2d3ef666e8..a4a6a38ed4 100644 --- a/web/widgets/src/jsMain/kotlin/layouts/text.kt +++ b/web/widgets/src/jsMain/kotlin/layouts/text.kt @@ -7,6 +7,7 @@ import org.jetbrains.compose.web.ui.Styles import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.ui.asAttributeBuilderApplier import org.jetbrains.compose.common.core.graphics.Color +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.css.color import org.jetbrains.compose.web.css.fontSize import org.jetbrains.compose.web.css.Color.RGB @@ -16,7 +17,8 @@ import org.jetbrains.compose.web.css.em import org.jetbrains.compose.web.css.px @Composable -actual fun TextActual( +@ExperimentalComposeWebWidgetsApi +internal actual fun TextActual( text: String, modifier: Modifier, color: Color, diff --git a/web/widgets/src/jsMain/kotlin/modifiers/border.kt b/web/widgets/src/jsMain/kotlin/modifiers/border.kt index 007d0bb58b..fa4611fb8e 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/border.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/border.kt @@ -4,11 +4,13 @@ import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.core.graphics.Color import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.css.px import org.jetbrains.compose.web.css.LineStyle import org.jetbrains.compose.web.css.border import org.jetbrains.compose.web.css.Color.RGB +@ExperimentalComposeWebWidgetsApi actual fun Modifier.border(size: Dp, color: Color): Modifier = castOrCreate().apply { add { border(size.value.px, LineStyle.Solid, RGB(color.red, color.green, color.blue)) diff --git a/web/widgets/src/jsMain/kotlin/modifiers/clickable.kt b/web/widgets/src/jsMain/kotlin/modifiers/clickable.kt index b415dc958a..aaccf54ff0 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/clickable.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/clickable.kt @@ -2,7 +2,9 @@ package org.jetbrains.compose.common.foundation import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi actual fun Modifier.clickable(onClick: () -> Unit): Modifier = castOrCreate().apply { addAttributeBuilder { onClick { onClick() } diff --git a/web/widgets/src/jsMain/kotlin/modifiers/clip.kt b/web/widgets/src/jsMain/kotlin/modifiers/clip.kt index f101d2ca3d..b0b5db130f 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/clip.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/clip.kt @@ -4,9 +4,11 @@ import org.jetbrains.compose.common.ui.Modifier import jetbrains.compose.common.shapes.Shape import jetbrains.compose.common.shapes.CircleShape import org.jetbrains.compose.common.internal.castOrCreate +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.css.borderRadius import org.jetbrains.compose.web.css.percent +@ExperimentalComposeWebWidgetsApi actual fun Modifier.clip(shape: Shape): Modifier = castOrCreate().apply { when (shape) { CircleShape -> add { diff --git a/web/widgets/src/jsMain/kotlin/modifiers/fillMaxHeight.kt b/web/widgets/src/jsMain/kotlin/modifiers/fillMaxHeight.kt index 1ee772d266..fddfb6aff8 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/fillMaxHeight.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/fillMaxHeight.kt @@ -2,9 +2,11 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.css.height import org.jetbrains.compose.web.css.percent +@ExperimentalComposeWebWidgetsApi actual fun Modifier.fillMaxHeight(fraction: Float): Modifier = castOrCreate().apply { add { height((100 * fraction).percent) diff --git a/web/widgets/src/jsMain/kotlin/modifiers/fillMaxWidth.kt b/web/widgets/src/jsMain/kotlin/modifiers/fillMaxWidth.kt index f9536088ce..2565d7f951 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/fillMaxWidth.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/fillMaxWidth.kt @@ -2,9 +2,11 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.css.width import org.jetbrains.compose.web.css.percent +@ExperimentalComposeWebWidgetsApi actual fun Modifier.fillMaxWidth(): Modifier = castOrCreate().apply { add { width(100.percent) diff --git a/web/widgets/src/jsMain/kotlin/modifiers/offset.kt b/web/widgets/src/jsMain/kotlin/modifiers/offset.kt index 09afff25c2..9140047056 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/offset.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/offset.kt @@ -3,10 +3,12 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.css.marginTop import org.jetbrains.compose.web.css.marginLeft import org.jetbrains.compose.web.css.px +@ExperimentalComposeWebWidgetsApi actual fun Modifier.offset(x: Dp, y: Dp): Modifier = castOrCreate().apply { add { marginLeft(x.value.px) diff --git a/web/widgets/src/jsMain/kotlin/modifiers/onSizeChanged.kt b/web/widgets/src/jsMain/kotlin/modifiers/onSizeChanged.kt index 3803ed0770..1ebd302d2b 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/onSizeChanged.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/onSizeChanged.kt @@ -1,8 +1,10 @@ package org.jetbrains.compose.common.ui.layout +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.ui.unit.IntSize +@ExperimentalComposeWebWidgetsApi actual fun Modifier.onSizeChanged( onSizeChanged: (IntSize) -> Unit ): Modifier { diff --git a/web/widgets/src/jsMain/kotlin/modifiers/size.kt b/web/widgets/src/jsMain/kotlin/modifiers/size.kt index d4ae66c24a..e5979fcb37 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/size.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/size.kt @@ -6,6 +6,7 @@ import org.jetbrains.compose.web.css.height import org.jetbrains.compose.web.css.px import org.jetbrains.compose.common.internal.castOrCreate +@ExperimentalComposeWebWidgetsApi actual fun Modifier.size(width: Dp, height: Dp): Modifier = castOrCreate().apply { add { width(width.value.px) diff --git a/web/widgets/src/jsMain/kotlin/modifiers/width.kt b/web/widgets/src/jsMain/kotlin/modifiers/width.kt index fdb9d815c5..e9343ecbb8 100644 --- a/web/widgets/src/jsMain/kotlin/modifiers/width.kt +++ b/web/widgets/src/jsMain/kotlin/modifiers/width.kt @@ -3,9 +3,11 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.web.css.px import org.jetbrains.compose.web.css.width +@ExperimentalComposeWebWidgetsApi actual fun Modifier.width(size: Dp): Modifier = castOrCreate().apply { add { width(size.value.px) diff --git a/web/widgets/src/jvmMain/kotlin/Alignment.kt b/web/widgets/src/jvmMain/kotlin/Alignment.kt index 69aed3bca9..13e866f95b 100644 --- a/web/widgets/src/jvmMain/kotlin/Alignment.kt +++ b/web/widgets/src/jvmMain/kotlin/Alignment.kt @@ -2,6 +2,7 @@ package org.jetbrains.compose.common.ui import androidx.compose.ui.Alignment as JAlignment +@ExperimentalComposeWebWidgetsApi val Alignment.Vertical.implementation: JAlignment.Vertical get() = when (this) { Alignment.Top -> JAlignment.Top diff --git a/web/widgets/src/jvmMain/kotlin/Arrangement.kt b/web/widgets/src/jvmMain/kotlin/Arrangement.kt index 823be7b5ba..8b9f6281b1 100644 --- a/web/widgets/src/jvmMain/kotlin/Arrangement.kt +++ b/web/widgets/src/jvmMain/kotlin/Arrangement.kt @@ -1,7 +1,9 @@ package org.jetbrains.compose.common.foundation.layout +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import androidx.compose.foundation.layout.Arrangement as JArrangement +@ExperimentalComposeWebWidgetsApi val Arrangement.Horizontal.implementation: JArrangement.Horizontal get() = when (this) { Arrangement.End -> JArrangement.End diff --git a/web/widgets/src/jvmMain/kotlin/Color.kt b/web/widgets/src/jvmMain/kotlin/Color.kt index 064a379c88..36c8454937 100644 --- a/web/widgets/src/jvmMain/kotlin/Color.kt +++ b/web/widgets/src/jvmMain/kotlin/Color.kt @@ -1,6 +1,8 @@ package org.jetbrains.compose.common.core.graphics +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import androidx.compose.ui.graphics.Color as JColor +@ExperimentalComposeWebWidgetsApi val Color.implementation get() = JColor(red, green, blue) diff --git a/web/widgets/src/jvmMain/kotlin/Modifier.kt b/web/widgets/src/jvmMain/kotlin/Modifier.kt index cb5ee2ff6c..7f7a29945b 100644 --- a/web/widgets/src/jvmMain/kotlin/Modifier.kt +++ b/web/widgets/src/jvmMain/kotlin/Modifier.kt @@ -8,13 +8,16 @@ import org.jetbrains.compose.common.core.graphics.implementation import org.jetbrains.compose.common.internal.castOrCreate import androidx.compose.foundation.layout.padding +@ExperimentalComposeWebWidgetsApi actual fun Modifier.background(color: Color): Modifier = castOrCreate().apply { modifier = modifier.background(color.implementation) } +@ExperimentalComposeWebWidgetsApi actual fun Modifier.padding(all: Dp): Modifier = castOrCreate().apply { modifier = modifier.padding(all.implementation) } +@ExperimentalComposeWebWidgetsApi val Modifier.implementation get() = castOrCreate().modifier diff --git a/web/widgets/src/jvmMain/kotlin/internal/ActualModifier.kt b/web/widgets/src/jvmMain/kotlin/internal/ActualModifier.kt index 854a7daf5a..3f7834b540 100644 --- a/web/widgets/src/jvmMain/kotlin/internal/ActualModifier.kt +++ b/web/widgets/src/jvmMain/kotlin/internal/ActualModifier.kt @@ -1,12 +1,15 @@ package org.jetbrains.compose.common.internal +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import androidx.compose.ui.Modifier as JModifier import org.jetbrains.compose.common.ui.Modifier private class ModifierElement : JModifier.Element +@ExperimentalComposeWebWidgetsApi class ActualModifier : Modifier { var modifier: JModifier = ModifierElement() } +@ExperimentalComposeWebWidgetsApi fun Modifier.castOrCreate(): ActualModifier = (this as? ActualModifier) ?: ActualModifier() diff --git a/web/widgets/src/jvmMain/kotlin/layouts/box.kt b/web/widgets/src/jvmMain/kotlin/layouts/box.kt index aba1b9b74c..042118185b 100644 --- a/web/widgets/src/jvmMain/kotlin/layouts/box.kt +++ b/web/widgets/src/jvmMain/kotlin/layouts/box.kt @@ -3,11 +3,13 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.ui.implementation import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import androidx.compose.foundation.layout.Box as JBox @Composable +@ExperimentalComposeWebWidgetsApi internal actual fun BoxActual(modifier: Modifier, content: @Composable () -> Unit) { JBox(modifier.implementation) { content.invoke() } -} \ No newline at end of file +} diff --git a/web/widgets/src/jvmMain/kotlin/layouts/button.kt b/web/widgets/src/jvmMain/kotlin/layouts/button.kt index 9c177d87bb..6bbbd7d42b 100644 --- a/web/widgets/src/jvmMain/kotlin/layouts/button.kt +++ b/web/widgets/src/jvmMain/kotlin/layouts/button.kt @@ -2,11 +2,13 @@ package org.jetbrains.compose.common.material import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.implementation import androidx.compose.material.Button as JButton @Composable -actual fun ButtonActual( +@ExperimentalComposeWebWidgetsApi +internal actual fun ButtonActual( modifier: Modifier, onClick: () -> Unit, content: @Composable () -> Unit diff --git a/web/widgets/src/jvmMain/kotlin/layouts/column.kt b/web/widgets/src/jvmMain/kotlin/layouts/column.kt index 7438ccb4ee..65d3f8fe8c 100644 --- a/web/widgets/src/jvmMain/kotlin/layouts/column.kt +++ b/web/widgets/src/jvmMain/kotlin/layouts/column.kt @@ -2,12 +2,14 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import androidx.compose.foundation.layout.Column as JColumn import org.jetbrains.compose.common.ui.implementation @Composable +@ExperimentalComposeWebWidgetsApi internal actual fun ColumnActual(modifier: Modifier, content: @Composable () -> Unit) { JColumn(modifier = modifier.implementation) { content.invoke() } -} \ No newline at end of file +} diff --git a/web/widgets/src/jvmMain/kotlin/layouts/row.kt b/web/widgets/src/jvmMain/kotlin/layouts/row.kt index 6975fe281f..e9b1763edc 100644 --- a/web/widgets/src/jvmMain/kotlin/layouts/row.kt +++ b/web/widgets/src/jvmMain/kotlin/layouts/row.kt @@ -1,13 +1,11 @@ package org.jetbrains.compose.common.foundation.layout -import org.jetbrains.compose.common.ui.Modifier import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.* import androidx.compose.foundation.layout.Row as JRow -import org.jetbrains.compose.common.ui.implementation -import org.jetbrains.compose.common.ui.implementation -import org.jetbrains.compose.common.ui.Alignment @Composable +@ExperimentalComposeWebWidgetsApi internal actual fun RowActual( modifier: Modifier, horizontalArrangement: Arrangement.Horizontal, @@ -21,4 +19,4 @@ internal actual fun RowActual( ) { content.invoke() } -} \ No newline at end of file +} diff --git a/web/widgets/src/jvmMain/kotlin/layouts/shapes/shapes.kt b/web/widgets/src/jvmMain/kotlin/layouts/shapes/shapes.kt index 1c165edeb1..77e69723ad 100644 --- a/web/widgets/src/jvmMain/kotlin/layouts/shapes/shapes.kt +++ b/web/widgets/src/jvmMain/kotlin/layouts/shapes/shapes.kt @@ -1,8 +1,10 @@ package jetbrains.compose.common.shapes +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import androidx.compose.ui.graphics.Shape as JShape import androidx.compose.foundation.shape.CircleShape as JCircleShape +@ExperimentalComposeWebWidgetsApi val Shape.implementation: JShape get() = when (this) { CircleShape -> JCircleShape diff --git a/web/widgets/src/jvmMain/kotlin/layouts/slider.kt b/web/widgets/src/jvmMain/kotlin/layouts/slider.kt index e8566af74c..52c9355ce2 100644 --- a/web/widgets/src/jvmMain/kotlin/layouts/slider.kt +++ b/web/widgets/src/jvmMain/kotlin/layouts/slider.kt @@ -1,12 +1,14 @@ package org.jetbrains.compose.common.material import androidx.compose.runtime.Composable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.Modifier import androidx.compose.material.Slider as JSlider import org.jetbrains.compose.common.ui.implementation @Composable -actual fun SliderActual( +@ExperimentalComposeWebWidgetsApi +internal actual fun SliderActual( value: Float, onValueChange: (Float) -> Unit, valueRange: ClosedFloatingPointRange, diff --git a/web/widgets/src/jvmMain/kotlin/layouts/text.kt b/web/widgets/src/jvmMain/kotlin/layouts/text.kt index 5fb5ef03a6..fd969d9833 100644 --- a/web/widgets/src/jvmMain/kotlin/layouts/text.kt +++ b/web/widgets/src/jvmMain/kotlin/layouts/text.kt @@ -6,11 +6,13 @@ import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.ui.implementation import org.jetbrains.compose.common.core.graphics.Color import org.jetbrains.compose.common.core.graphics.implementation +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.unit.TextUnit import org.jetbrains.compose.common.ui.unit.implementation @Composable -actual fun TextActual( +@ExperimentalComposeWebWidgetsApi +internal actual fun TextActual( text: String, modifier: Modifier, color: Color, diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/border.kt b/web/widgets/src/jvmMain/kotlin/modifiers/border.kt index cba0b81959..fc05a618da 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/border.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/border.kt @@ -7,7 +7,9 @@ import org.jetbrains.compose.common.internal.castOrCreate import org.jetbrains.compose.common.core.graphics.implementation import org.jetbrains.compose.common.ui.unit.implementation import androidx.compose.foundation.border +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi actual fun Modifier.border(size: Dp, color: Color): Modifier = castOrCreate().apply { modifier = modifier.border(size.implementation, color.implementation) } diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/clickable.kt b/web/widgets/src/jvmMain/kotlin/modifiers/clickable.kt index aa5cc78293..39e88f85fe 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/clickable.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/clickable.kt @@ -3,7 +3,9 @@ package org.jetbrains.compose.common.foundation import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate import androidx.compose.foundation.clickable +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi actual fun Modifier.clickable(onClick: () -> Unit): Modifier = castOrCreate().apply { modifier = modifier.clickable(onClick = onClick) } diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/clip.kt b/web/widgets/src/jvmMain/kotlin/modifiers/clip.kt index cbcad05e65..582781dcd9 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/clip.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/clip.kt @@ -5,7 +5,9 @@ import jetbrains.compose.common.shapes.Shape import jetbrains.compose.common.shapes.implementation import org.jetbrains.compose.common.internal.castOrCreate import androidx.compose.ui.draw.clip +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi actual fun Modifier.clip(shape: Shape): Modifier = castOrCreate().apply { modifier = modifier.clip(shape.implementation) } diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/fillMaxHeight.kt b/web/widgets/src/jvmMain/kotlin/modifiers/fillMaxHeight.kt index e0d3b2c92b..a4309f8b3b 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/fillMaxHeight.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/fillMaxHeight.kt @@ -3,7 +3,9 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate import androidx.compose.foundation.layout.fillMaxHeight +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi actual fun Modifier.fillMaxHeight(fraction: Float): Modifier = castOrCreate().apply { modifier = modifier.fillMaxHeight(fraction) } diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/fillMaxWidth.kt b/web/widgets/src/jvmMain/kotlin/modifiers/fillMaxWidth.kt index 644ee8ef4e..e3936d2759 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/fillMaxWidth.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/fillMaxWidth.kt @@ -3,7 +3,9 @@ package org.jetbrains.compose.common.foundation.layout import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate import androidx.compose.foundation.layout.fillMaxWidth +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi actual fun Modifier.fillMaxWidth(): Modifier = castOrCreate().apply { modifier = modifier.fillMaxWidth() } diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/offset.kt b/web/widgets/src/jvmMain/kotlin/modifiers/offset.kt index f66fff6c39..181603469d 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/offset.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/offset.kt @@ -4,8 +4,10 @@ import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate import androidx.compose.foundation.layout.offset +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.unit.implementation +@ExperimentalComposeWebWidgetsApi actual fun Modifier.offset(x: Dp, y: Dp): Modifier = castOrCreate().apply { modifier = modifier.offset(x.implementation, y.implementation) } diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/onSizeChanged.kt b/web/widgets/src/jvmMain/kotlin/modifiers/onSizeChanged.kt index a2f4b248ba..141562f472 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/onSizeChanged.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/onSizeChanged.kt @@ -4,7 +4,9 @@ import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.ui.unit.IntSize import org.jetbrains.compose.common.internal.castOrCreate import androidx.compose.ui.layout.onSizeChanged +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi actual fun Modifier.onSizeChanged( onSizeChanged: (IntSize) -> Unit ): Modifier = castOrCreate().apply { diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/size.kt b/web/widgets/src/jvmMain/kotlin/modifiers/size.kt index 7bda262a05..8f106b6507 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/size.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/size.kt @@ -3,9 +3,9 @@ package org.jetbrains.compose.common.ui import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.ui.unit.implementation import androidx.compose.foundation.layout.size -import org.jetbrains.compose.common.core.graphics.implementation import org.jetbrains.compose.common.internal.castOrCreate +@ExperimentalComposeWebWidgetsApi actual fun Modifier.size(width: Dp, height: Dp): Modifier = castOrCreate().apply { modifier = modifier.size(width.implementation, height.implementation) } diff --git a/web/widgets/src/jvmMain/kotlin/modifiers/width.kt b/web/widgets/src/jvmMain/kotlin/modifiers/width.kt index a843a08e9c..c14f849625 100644 --- a/web/widgets/src/jvmMain/kotlin/modifiers/width.kt +++ b/web/widgets/src/jvmMain/kotlin/modifiers/width.kt @@ -4,8 +4,10 @@ import org.jetbrains.compose.common.ui.unit.Dp import org.jetbrains.compose.common.ui.Modifier import org.jetbrains.compose.common.internal.castOrCreate import androidx.compose.foundation.layout.width +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import org.jetbrains.compose.common.ui.unit.implementation +@ExperimentalComposeWebWidgetsApi actual fun Modifier.width(size: Dp): Modifier = castOrCreate().apply { modifier = modifier.width(size.implementation) } diff --git a/web/widgets/src/jvmMain/kotlin/units/Dp.kt b/web/widgets/src/jvmMain/kotlin/units/Dp.kt index 5fdfbbc4e2..3e3c08bb26 100644 --- a/web/widgets/src/jvmMain/kotlin/units/Dp.kt +++ b/web/widgets/src/jvmMain/kotlin/units/Dp.kt @@ -1,6 +1,8 @@ package org.jetbrains.compose.common.ui.unit +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi import androidx.compose.ui.unit.Dp as JDp +@ExperimentalComposeWebWidgetsApi val Dp.implementation: JDp - get() = JDp(value) \ No newline at end of file + get() = JDp(value) diff --git a/web/widgets/src/jvmMain/kotlin/units/TextUnit.kt b/web/widgets/src/jvmMain/kotlin/units/TextUnit.kt index d7c4e9695d..032923cb67 100644 --- a/web/widgets/src/jvmMain/kotlin/units/TextUnit.kt +++ b/web/widgets/src/jvmMain/kotlin/units/TextUnit.kt @@ -3,7 +3,9 @@ package org.jetbrains.compose.common.ui.unit import androidx.compose.ui.unit.TextUnit as JTextUnit import androidx.compose.ui.unit.em import androidx.compose.ui.unit.sp +import org.jetbrains.compose.common.ui.ExperimentalComposeWebWidgetsApi +@ExperimentalComposeWebWidgetsApi val TextUnit.implementation: JTextUnit get() = when (unitType) { TextUnitType.Em -> (value).em