diff --git a/animation/animation-core/build.gradle b/animation/animation-core/build.gradle index 5dbf0b3ddca..785ee18d844 100644 --- a/animation/animation-core/build.gradle +++ b/animation/animation-core/build.gradle @@ -69,6 +69,7 @@ if (AndroidXComposePlugin.isMultiplatformEnabled(project)) { desktop() darwin() js() + wasm() } kotlin { @@ -106,8 +107,24 @@ if (AndroidXComposePlugin.isMultiplatformEnabled(project)) { } } jsNativeMain.dependsOn(commonMain) - jsMain.dependsOn(jsNativeMain) nativeMain.dependsOn(jsNativeMain) + jsWasmMain.dependsOn(jsNativeMain) + + jsMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-js")) + } + } + + if (project.kotlinWasmEnabled.toBoolean()) { + wasmMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-wasm")) + } + } + } // TODO(b/214407011): These dependencies leak into instrumented tests as well. If you // need to add Robolectric (which must be kept out of androidAndroidTest), use a top diff --git a/animation/animation-core/src/jsMain/kotlin/androidx/compose/animation/core/ActualAtomicReference.kt b/animation/animation-core/src/jsWasmMain/kotlin/androidx/compose/animation/core/ActualAtomicReference.kt similarity index 100% rename from animation/animation-core/src/jsMain/kotlin/androidx/compose/animation/core/ActualAtomicReference.kt rename to animation/animation-core/src/jsWasmMain/kotlin/androidx/compose/animation/core/ActualAtomicReference.kt diff --git a/animation/animation-graphics/build.gradle b/animation/animation-graphics/build.gradle index 58ad03b93fe..66e24649e8b 100644 --- a/animation/animation-graphics/build.gradle +++ b/animation/animation-graphics/build.gradle @@ -67,6 +67,7 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { desktop() darwin() js() + wasm() } kotlin { @@ -96,6 +97,24 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { implementation(libs.kotlinStdlib) } + jsWasmMain.dependsOn(commonMain) + + jsMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-js")) + } + } + + if (project.kotlinWasmEnabled.toBoolean()) { + wasmMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-wasm")) + } + } + } + // TODO(b/214407011): These dependencies leak into instrumented tests as well. If you // need to add Robolectric (which must be kept out of androidAndroidTest), use a top // level dependencies block instead: diff --git a/animation/animation/build.gradle b/animation/animation/build.gradle index 6e226e40eca..60cfc950890 100644 --- a/animation/animation/build.gradle +++ b/animation/animation/build.gradle @@ -68,6 +68,7 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { desktop() darwin() js() + wasm() } kotlin { @@ -96,8 +97,24 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { implementation(libs.kotlinStdlib) } jsNativeMain.dependsOn(commonMain) - jsMain.dependsOn(jsNativeMain) nativeMain.dependsOn(jsNativeMain) + jsWasmMain.dependsOn(jsNativeMain) + + jsMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-js")) + } + } + + if (project.kotlinWasmEnabled.toBoolean()) { + wasmMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-wasm")) + } + } + } // TODO(b/214407011): These dependencies leak into instrumented tests as well. If you // need to add Robolectric (which must be kept out of androidAndroidTest), use a top diff --git a/animation/animation/src/jsMain/kotlin/androidx/compose/animation/JsActualDefaultDecayAnimationSpec.js.kt b/animation/animation/src/jsWasmMain/kotlin/androidx/compose/animation/JsActualDefaultDecayAnimationSpec.js.kt similarity index 100% rename from animation/animation/src/jsMain/kotlin/androidx/compose/animation/JsActualDefaultDecayAnimationSpec.js.kt rename to animation/animation/src/jsWasmMain/kotlin/androidx/compose/animation/JsActualDefaultDecayAnimationSpec.js.kt diff --git a/animation/animation/src/jsMain/kotlin/androidx/compose/animation/SplineBasedDecayAnimationSpec.js.kt b/animation/animation/src/jsWasmMain/kotlin/androidx/compose/animation/SplineBasedDecayAnimationSpec.js.kt similarity index 100% rename from animation/animation/src/jsMain/kotlin/androidx/compose/animation/SplineBasedDecayAnimationSpec.js.kt rename to animation/animation/src/jsWasmMain/kotlin/androidx/compose/animation/SplineBasedDecayAnimationSpec.js.kt diff --git a/foundation/foundation-layout/build.gradle b/foundation/foundation-layout/build.gradle index 914226390e7..9f74cc1f25b 100644 --- a/foundation/foundation-layout/build.gradle +++ b/foundation/foundation-layout/build.gradle @@ -74,6 +74,7 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { desktop() darwin() js() + wasm() } kotlin { @@ -101,9 +102,26 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { } jsNativeMain.dependsOn(commonMain) - jsMain.dependsOn(jsNativeMain) nativeMain.dependsOn(jsNativeMain) + jsWasmMain.dependsOn(jsNativeMain) + + jsMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-js")) + } + } + + if (project.kotlinWasmEnabled.toBoolean()) { + wasmMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-wasm")) + } + } + } + // TODO(b/214407011): These dependencies leak into instrumented tests as well. If you // need to add Robolectric (which must be kept out of androidAndroidTest), use a top // level dependencies block instead: diff --git a/foundation/foundation/build.gradle b/foundation/foundation/build.gradle index d27c4c6b856..12ad33efcb8 100644 --- a/foundation/foundation/build.gradle +++ b/foundation/foundation/build.gradle @@ -89,6 +89,7 @@ if (AndroidXComposePlugin.isMultiplatformEnabled(project)) { desktop() darwin() js() + wasm() configureDarwinFlags() } @@ -127,8 +128,27 @@ if (AndroidXComposePlugin.isMultiplatformEnabled(project)) { } } jsNativeMain.dependsOn(skikoMain) - jsMain.dependsOn(jsNativeMain) nativeMain.dependsOn(jsNativeMain) + jsWasmMain.dependsOn(jsNativeMain) + + jsMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-js")) + api(libs.skikoCommon) + } + } + + if (project.kotlinWasmEnabled.toBoolean()) { + wasmMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-wasm")) + implementation(libs.create("skikoWasm")) + implementation(libs.create("skikoWasmWasm")) + } + } + } commonTest { dependencies { diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/ActualAtomicReference.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/ActualAtomicReference.kt similarity index 100% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/ActualAtomicReference.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/ActualAtomicReference.kt diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/JsActuals.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/JsActuals.kt similarity index 100% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/JsActuals.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/JsActuals.kt diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/JsOverScroll.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/JsOverScroll.kt similarity index 100% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/JsOverScroll.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/JsOverScroll.kt diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/Scrollbar.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/Scrollbar.js.kt similarity index 99% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/Scrollbar.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/Scrollbar.js.kt index 0128677488e..c764161e725 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/Scrollbar.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/Scrollbar.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2020 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/gestures/JsScrollable.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/gestures/JsScrollable.js.kt similarity index 97% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/gestures/JsScrollable.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/gestures/JsScrollable.js.kt index 98ae96c92b0..acadfa36b23 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/gestures/JsScrollable.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/gestures/JsScrollable.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2020 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,13 +18,11 @@ package androidx.compose.foundation.gestures -import androidx.compose.foundation.fastFold import androidx.compose.runtime.Composable import androidx.compose.ui.geometry.Offset import androidx.compose.ui.input.pointer.PointerEvent import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntSize -import androidx.compose.ui.unit.dp import org.jetbrains.skiko.SkikoPointerEvent import org.jetbrains.skiko.SkikoPointerEventKind diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/lazy/layout/Lazy.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/lazy/layout/Lazy.js.kt similarity index 79% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/lazy/layout/Lazy.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/lazy/layout/Lazy.js.kt index 5c9f428c456..cb7f1e5f7e1 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/lazy/layout/Lazy.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/lazy/layout/Lazy.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2022 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,6 @@ package androidx.compose.foundation.lazy.layout -import androidx.compose.runtime.Composable -import androidx.compose.runtime.State -import androidx.compose.ui.layout.SubcomposeLayoutState - actual fun getDefaultLazyLayoutKey(index: Int): Any = DefaultLazyKey(index) private data class DefaultLazyKey(private val index: Int) diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/ContextMenu.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/ContextMenu.js.kt similarity index 96% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/ContextMenu.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/ContextMenu.js.kt index a857551475e..5f79064969d 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/ContextMenu.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/ContextMenu.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/KeyEventHelpers.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/KeyEventHelpers.js.kt similarity index 94% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/KeyEventHelpers.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/KeyEventHelpers.js.kt index 0a104e39523..ce7ee8b03f6 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/KeyEventHelpers.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/KeyEventHelpers.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/KeyMapping.jsMain.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/KeyMapping.jsMain.kt similarity index 81% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/KeyMapping.jsMain.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/KeyMapping.jsMain.kt index 27060a9c840..a07e8d286f3 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/KeyMapping.jsMain.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/KeyMapping.jsMain.kt @@ -1,5 +1,5 @@ /* - * Copyright 2022 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,4 +16,7 @@ package androidx.compose.foundation.text +import androidx.compose.foundation.text.KeyMapping +import androidx.compose.foundation.text.defaultKeyMapping + internal actual val platformDefaultKeyMapping: KeyMapping = defaultKeyMapping diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/NativeCursorHandle.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/NativeCursorHandle.js.kt similarity index 94% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/NativeCursorHandle.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/NativeCursorHandle.js.kt index ce856acf276..646c53dd878 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/NativeCursorHandle.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/NativeCursorHandle.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextFieldCursor.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextFieldCursor.js.kt similarity index 93% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextFieldCursor.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextFieldCursor.js.kt index 8e6e70ceff3..89a3fb49781 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextFieldCursor.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextFieldCursor.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2022 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextFieldKeyInput.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextFieldKeyInput.js.kt similarity index 94% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextFieldKeyInput.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextFieldKeyInput.js.kt index 9449da34723..5acd3330cf8 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextFieldKeyInput.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextFieldKeyInput.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2022 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextPointerIcon.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextPointerIcon.js.kt similarity index 94% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextPointerIcon.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextPointerIcon.js.kt index 1a456069387..5d390089355 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TextPointerIcon.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TextPointerIcon.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TouchMode.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TouchMode.js.kt similarity index 92% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TouchMode.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TouchMode.js.kt index 091b942d5e8..f7bc041d323 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/TouchMode.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/TouchMode.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/UndoManager.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/UndoManager.js.kt similarity index 93% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/UndoManager.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/UndoManager.js.kt index 6ad1c2450bb..571cbcf9702 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/UndoManager.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/UndoManager.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/DefaultTextSelectionColors.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/DefaultTextSelectionColors.js.kt similarity index 94% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/DefaultTextSelectionColors.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/DefaultTextSelectionColors.js.kt index 5e7dddbd664..2c101af237e 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/DefaultTextSelectionColors.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/DefaultTextSelectionColors.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2022 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/SelectionHandles.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/SelectionHandles.js.kt similarity index 100% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/SelectionHandles.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/SelectionHandles.js.kt diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.js.kt similarity index 85% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.js.kt index f0cec631e7e..bae51b1bc20 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,11 +17,7 @@ package androidx.compose.foundation.text.selection import androidx.compose.ui.Modifier -import androidx.compose.ui.input.key.Key import androidx.compose.ui.input.key.KeyEvent -import androidx.compose.ui.input.key.isCtrlPressed -import androidx.compose.ui.input.key.isMetaPressed -import androidx.compose.ui.input.key.key // this doesn't sounds very sustainable // it would end up being a function for any conceptual keyevent (selectall, cut, copy, paste) diff --git a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.js.kt b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.js.kt similarity index 88% rename from foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.js.kt rename to foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.js.kt index 1d7873d415b..f21da9f9823 100644 --- a/foundation/foundation/src/jsMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.js.kt +++ b/foundation/foundation/src/jsWasmMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,6 @@ package androidx.compose.foundation.text.selection -import androidx.compose.ui.input.pointer.PointerEvent import androidx.compose.ui.Modifier internal actual fun Modifier.textFieldMagnifier(manager: TextFieldSelectionManager): Modifier = diff --git a/material/material-ripple/build.gradle b/material/material-ripple/build.gradle index 39ff3c197cf..74a63681438 100644 --- a/material/material-ripple/build.gradle +++ b/material/material-ripple/build.gradle @@ -59,6 +59,7 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { desktop() darwin() js() + wasm() } kotlin { @@ -95,6 +96,26 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { implementation(libs.junit) implementation(libs.truth) } + + jsWasmMain { + dependsOn(commonMain) + } + + jsMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-js")) + } + } + + if (project.kotlinWasmEnabled.toBoolean()) { + wasmMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-wasm")) + } + } + } } } } diff --git a/material/material-ripple/src/jsMain/kotlin/androidx/compose/material/ripple/Ripple.js.kt b/material/material-ripple/src/jsWasmMain/kotlin/androidx/compose/material/ripple/Ripple.js.kt similarity index 100% rename from material/material-ripple/src/jsMain/kotlin/androidx/compose/material/ripple/Ripple.js.kt rename to material/material-ripple/src/jsWasmMain/kotlin/androidx/compose/material/ripple/Ripple.js.kt diff --git a/material/material/build.gradle b/material/material/build.gradle index afef4119619..5003c92652f 100644 --- a/material/material/build.gradle +++ b/material/material/build.gradle @@ -80,6 +80,7 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { desktop() darwin() js() + wasm() } kotlin { @@ -118,8 +119,24 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { } jsNativeMain.dependsOn(commonMain) - jsMain.dependsOn(jsNativeMain) nativeMain.dependsOn(jsNativeMain) + jsWasmMain.dependsOn(jsNativeMain) + + jsMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-js")) + } + } + + if (project.kotlinWasmEnabled.toBoolean()) { + wasmMain { + dependsOn(jsWasmMain) + dependencies { + implementation(kotlin("stdlib-wasm")) + } + } + } // TODO(b/214407011): These dependencies leak into instrumented tests as well. If you // need to add Robolectric (which must be kept out of androidAndroidTest), use a top diff --git a/material/material/src/jsMain/kotlin/androidx/compose/material/MaterialTheme.js.kt b/material/material/src/jsWasmMain/kotlin/androidx/compose/material/MaterialTheme.js.kt similarity index 96% rename from material/material/src/jsMain/kotlin/androidx/compose/material/MaterialTheme.js.kt rename to material/material/src/jsWasmMain/kotlin/androidx/compose/material/MaterialTheme.js.kt index 33b86eed3da..85aa3df6c40 100644 --- a/material/material/src/jsMain/kotlin/androidx/compose/material/MaterialTheme.js.kt +++ b/material/material/src/jsWasmMain/kotlin/androidx/compose/material/MaterialTheme.js.kt @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/material/material/src/jsMain/kotlin/androidx/compose/material/Strings.js.kt b/material/material/src/jsWasmMain/kotlin/androidx/compose/material/Strings.js.kt similarity index 100% rename from material/material/src/jsMain/kotlin/androidx/compose/material/Strings.js.kt rename to material/material/src/jsWasmMain/kotlin/androidx/compose/material/Strings.js.kt diff --git a/material3/material3/build.gradle b/material3/material3/build.gradle index 602319ed41d..7def4d2e73a 100644 --- a/material3/material3/build.gradle +++ b/material3/material3/build.gradle @@ -82,6 +82,7 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { android() desktop() darwin() + wasm() js() } @@ -126,8 +127,12 @@ if(AndroidXComposePlugin.isMultiplatformEnabled(project)) { jsNativeMain.dependsOn(skikoMain) - jsMain.dependsOn(jsNativeMain) nativeMain.dependsOn(jsNativeMain) + jsWasmMain.dependsOn(jsNativeMain) + jsMain.dependsOn(jsWasmMain) + if (project.kotlinWasmEnabled.toBoolean()) { + wasmMain.dependsOn(jsWasmMain) + } // TODO(b/214407011): These dependencies leak into instrumented tests as well. If you // need to add Robolectric (which must be kept out of androidAndroidTest), use a top