diff --git a/compose/runtime/runtime-saveable/build.gradle b/compose/runtime/runtime-saveable/build.gradle
index 45c128e..1365e00 100644
--- a/compose/runtime/runtime-saveable/build.gradle
+++ b/compose/runtime/runtime-saveable/build.gradle
@@ -40,7 +40,7 @@
     sourceSets {
         commonMain {
             dependencies {
-                implementation(libs.kotlinStdlibCommon)
+                implementation(libs.kotlinStdlib)
                 api(project(":compose:runtime:runtime"))
             }
         }
diff --git a/compose/runtime/runtime-test-utils/build.gradle b/compose/runtime/runtime-test-utils/build.gradle
index 141b480..82a06ac 100644
--- a/compose/runtime/runtime-test-utils/build.gradle
+++ b/compose/runtime/runtime-test-utils/build.gradle
@@ -53,10 +53,14 @@
             }
         }
 
+        commonStubsMain {
+            dependsOn(commonMain)
+        }
         jvmStubsMain {
-            dependsOn(jvmMain)
-            dependencies {
-            }
+            dependsOn(commonStubsMain)
+        }
+        linuxx64StubsMain {
+            dependsOn(commonStubsMain)
         }
     }
 }
diff --git a/compose/runtime/runtime-test-utils/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/mock/SynchronizedObject.linuxx64Stubs.kt b/compose/runtime/runtime-test-utils/src/commonStubsMain/kotlin/androidx/compose/runtime/mock/SynchronizedObject.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime-test-utils/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/mock/SynchronizedObject.linuxx64Stubs.kt
rename to compose/runtime/runtime-test-utils/src/commonStubsMain/kotlin/androidx/compose/runtime/mock/SynchronizedObject.commonStubs.kt
diff --git a/compose/runtime/runtime/build.gradle b/compose/runtime/runtime/build.gradle
index 9618c50..cf49965 100644
--- a/compose/runtime/runtime/build.gradle
+++ b/compose/runtime/runtime/build.gradle
@@ -111,17 +111,20 @@
             dependsOn(commonMain)
         }
 
-        jvmStubsMain {
-            dependsOn(jvmMain)
+        commonStubsMain {
             dependsOn(nonAndroidMain)
         }
 
+        jvmStubsMain {
+            dependsOn(commonStubsMain)
+        }
+
         jvmStubsTest {
             dependsOn(jvmTest)
         }
 
         linuxx64StubsMain {
-            dependsOn(nonAndroidMain)
+            dependsOn(commonStubsMain)
         }
     }
 }
diff --git a/compose/runtime/runtime/src/jvmStubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.jvmStubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/jvmStubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.jvmStubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.commonStubs.kt
diff --git a/compose/runtime/runtime/src/jvmStubsMain/kotlin/androidx/compose/runtime/NotImplemented.jvmStubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/NotImplemented.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/jvmStubsMain/kotlin/androidx/compose/runtime/NotImplemented.jvmStubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/NotImplemented.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/SynchronizedObject.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/SynchronizedObject.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/SynchronizedObject.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/SynchronizedObject.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/TestOnly.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/TestOnly.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/TestOnly.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/TestOnly.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Atomic.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Atomic.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Atomic.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Atomic.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/ComposableLambda.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/ComposableLambda.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/ComposableLambda.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/ComposableLambda.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/JvmDefaultWithCompatibility.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/JvmDefaultWithCompatibility.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Thread.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Thread.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Thread.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Thread.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Utils.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Utils.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Utils.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Utils.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/WeakReference.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/WeakReference.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/WeakReference.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/WeakReference.commonStubs.kt
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.linuxx64Stubs.kt b/compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.commonStubs.kt
similarity index 100%
rename from compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.linuxx64Stubs.kt
rename to compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.commonStubs.kt
diff --git a/compose/runtime/runtime/src/jvmStubsMain/kotlin/androidx/compose/runtime/internal/Utils.jvmStubs.kt b/compose/runtime/runtime/src/jvmStubsMain/kotlin/androidx/compose/runtime/internal/Utils.jvmStubs.kt
deleted file mode 100644
index 74c5291..0000000
--- a/compose/runtime/runtime/src/jvmStubsMain/kotlin/androidx/compose/runtime/internal/Utils.jvmStubs.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.runtime.internal
-
-import androidx.compose.runtime.implementedInJetBrainsFork
-
-internal actual fun logError(message: String, e: Throwable): Unit = implementedInJetBrainsFork()
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.linuxx64Stubs.kt b/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.linuxx64Stubs.kt
deleted file mode 100644
index 2cf85ce..0000000
--- a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.linuxx64Stubs.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.runtime
-
-actual val DefaultMonotonicFrameClock: MonotonicFrameClock
-    get() = implementedInJetBrainsFork()
diff --git a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/NotImplemented.linuxx64Stubs.kt b/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/NotImplemented.linuxx64Stubs.kt
deleted file mode 100644
index c1b2c07..0000000
--- a/compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/NotImplemented.linuxx64Stubs.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.runtime
-
-@Suppress("NOTHING_TO_INLINE")
-internal inline fun implementedInJetBrainsFork(): Nothing =
-    throw NotImplementedError(
-        """
-        Implemented only in JetBrains fork.
-        Please use `org.jetbrains.compose.runtime:runtime` package instead.
-        """
-            .trimIndent()
-    )
diff --git a/compose/ui/ui-text/build.gradle b/compose/ui/ui-text/build.gradle
index 3799ef5..e242cff 100644
--- a/compose/ui/ui-text/build.gradle
+++ b/compose/ui/ui-text/build.gradle
@@ -79,12 +79,16 @@
             }
         }
 
+        commonStubsMain {
+            dependsOn(commonMain)
+        }
+
         jvmStubsMain {
-            dependsOn(jvmMain)
+            dependsOn(commonStubsMain)
         }
 
         linuxx64StubsMain {
-            dependsOn(commonMain)
+            dependsOn(commonStubsMain)
         }
 
         androidInstrumentedTest {
diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/LineBreak.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/LineBreak.kt
index 6bbc8bb..b0615de 100644
--- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/LineBreak.kt
+++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/LineBreak.kt
@@ -21,6 +21,7 @@
 import androidx.compose.ui.text.style.LineBreak.Companion.Heading
 import androidx.compose.ui.text.style.LineBreak.Companion.Paragraph
 import androidx.compose.ui.text.style.LineBreak.Companion.Simple
+import kotlin.jvm.JvmInline
 
 /**
  * When soft wrap is enabled and the width of the text exceeds the width of its container, line
@@ -40,6 +41,7 @@
  *
  * @sample androidx.compose.ui.text.samples.AndroidLineBreakSample
  */
+@JvmInline
 @Immutable
 expect value class LineBreak private constructor(internal val mask: Int) {
     companion object {
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/ActualAtomicReferenceJvm.linuxx64Stubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/ActualAtomicReferenceJvm.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/ActualAtomicReferenceJvm.linuxx64Stubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/ActualAtomicReferenceJvm.commonStubs.kt
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/AnnotatedString.linuxx64Stubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/AnnotatedString.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/AnnotatedString.linuxx64Stubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/AnnotatedString.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/NotImplemented.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/NotImplemented.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/NotImplemented.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/NotImplemented.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/Paragraph.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/Paragraph.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/Paragraph.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/Paragraph.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/Savers.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/Savers.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/Savers.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/Savers.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/TextStyle.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/TextStyle.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/TextStyle.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/TextStyle.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.commonStubs.kt
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.linuxx64Stubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.linuxx64Stubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.commonStubs.kt
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/input/GapBuffer.linuxx64Stubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/input/GapBuffer.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/input/GapBuffer.linuxx64Stubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/input/GapBuffer.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.commonStubs.kt
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/internal/JvmDefaultWithCompatibility.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/internal/JvmDefaultWithCompatibility.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.commonStubs.kt
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/intl/PlatformLocale.linuxx64Stubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/intl/PlatformLocale.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/intl/PlatformLocale.linuxx64Stubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/intl/PlatformLocale.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.commonStubs.kt
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/Synchronization.linuxx64Stubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/Synchronization.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/Synchronization.linuxx64Stubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/Synchronization.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.commonStubs.kt
similarity index 97%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.commonStubs.kt
index 9fac85a..0851b71 100644
--- a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.jvmStubs.kt
+++ b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.commonStubs.kt
@@ -19,9 +19,10 @@
 import androidx.compose.runtime.Immutable
 import androidx.compose.runtime.Stable
 import androidx.compose.ui.text.implementedInJetBrainsFork
+import kotlin.jvm.JvmInline
 
-@Immutable
 @JvmInline
+@Immutable
 actual value class LineBreak private constructor(internal val mask: Int) {
     actual companion object {
         @Stable actual val Simple: LineBreak = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.jvmStubs.kt b/compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.jvmStubs.kt
rename to compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.commonStubs.kt
diff --git a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.jvmStubs.kt b/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.jvmStubs.kt
deleted file mode 100644
index 2aad28e..0000000
--- a/compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.jvmStubs.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package androidx.compose.ui.text.font
-
-import androidx.compose.ui.text.implementedInJetBrainsFork
-
-/*
- * Copyright 2021 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-internal actual fun FontSynthesis.synthesizeTypeface(
-    typeface: Any,
-    font: Font,
-    requestedWeight: FontWeight,
-    requestedStyle: FontStyle
-): Any = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.linuxx64Stubs.kt
deleted file mode 100644
index 97fc3e3..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.linuxx64Stubs.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2021 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text
-
-internal actual fun String.findPrecedingBreak(index: Int): Int = implementedInJetBrainsFork()
-
-internal actual fun String.findFollowingBreak(index: Int): Int = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/NotImplemented.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/NotImplemented.linuxx64Stubs.kt
deleted file mode 100644
index bf9fe98..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/NotImplemented.linuxx64Stubs.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text
-
-@Suppress("NOTHING_TO_INLINE")
-internal inline fun implementedInJetBrainsFork(): Nothing =
-    throw NotImplementedError(
-        """
-        Implemented only in JetBrains fork.
-        Please use `org.jetbrains.compose.ui:ui-text` package instead.
-        """
-            .trimIndent()
-    )
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Paragraph.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Paragraph.linuxx64Stubs.kt
deleted file mode 100644
index 9781139..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Paragraph.linuxx64Stubs.kt
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2022 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text
-
-import androidx.annotation.IntRange
-import androidx.compose.ui.geometry.Offset
-import androidx.compose.ui.geometry.Rect
-import androidx.compose.ui.graphics.BlendMode
-import androidx.compose.ui.graphics.Brush
-import androidx.compose.ui.graphics.Canvas
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.graphics.Path
-import androidx.compose.ui.graphics.Shadow
-import androidx.compose.ui.graphics.drawscope.DrawStyle
-import androidx.compose.ui.text.internal.JvmDefaultWithCompatibility
-import androidx.compose.ui.text.style.ResolvedTextDirection
-import androidx.compose.ui.text.style.TextDecoration
-
-@JvmDefaultWithCompatibility
-actual sealed interface Paragraph {
-    actual val width: Float
-    actual val height: Float
-    actual val minIntrinsicWidth: Float
-    actual val maxIntrinsicWidth: Float
-    actual val firstBaseline: Float
-    actual val lastBaseline: Float
-    actual val didExceedMaxLines: Boolean
-    actual val lineCount: Int
-    actual val placeholderRects: List<Rect?>
-
-    actual fun getPathForRange(start: Int, end: Int): Path
-
-    actual fun getCursorRect(offset: Int): Rect
-
-    actual fun getLineLeft(lineIndex: Int): Float
-
-    actual fun getLineRight(lineIndex: Int): Float
-
-    actual fun getLineTop(lineIndex: Int): Float
-
-    actual fun getLineBaseline(lineIndex: Int): Float
-
-    actual fun getLineBottom(lineIndex: Int): Float
-
-    actual fun getLineHeight(lineIndex: Int): Float
-
-    actual fun getLineWidth(lineIndex: Int): Float
-
-    actual fun getLineStart(lineIndex: Int): Int
-
-    actual fun getLineEnd(lineIndex: Int, visibleEnd: Boolean): Int
-
-    actual fun isLineEllipsized(lineIndex: Int): Boolean
-
-    actual fun getLineForOffset(offset: Int): Int
-
-    actual fun getHorizontalPosition(offset: Int, usePrimaryDirection: Boolean): Float
-
-    actual fun getParagraphDirection(offset: Int): ResolvedTextDirection
-
-    actual fun getBidiRunDirection(offset: Int): ResolvedTextDirection
-
-    actual fun getLineForVerticalPosition(vertical: Float): Int
-
-    actual fun getOffsetForPosition(position: Offset): Int
-
-    actual fun getRangeForRect(
-        rect: Rect,
-        granularity: TextGranularity,
-        inclusionStrategy: TextInclusionStrategy
-    ): TextRange
-
-    actual fun getBoundingBox(offset: Int): Rect
-
-    actual fun fillBoundingBoxes(
-        range: TextRange,
-        array: FloatArray,
-        @IntRange(from = 0) arrayStart: Int
-    )
-
-    actual fun getWordBoundary(offset: Int): TextRange
-
-    actual fun paint(canvas: Canvas, color: Color, shadow: Shadow?, textDecoration: TextDecoration?)
-
-    actual fun paint(
-        canvas: Canvas,
-        color: Color,
-        shadow: Shadow?,
-        textDecoration: TextDecoration?,
-        drawStyle: DrawStyle?,
-        blendMode: BlendMode
-    )
-
-    actual fun paint(
-        canvas: Canvas,
-        brush: Brush,
-        alpha: Float,
-        shadow: Shadow?,
-        textDecoration: TextDecoration?,
-        drawStyle: DrawStyle?,
-        blendMode: BlendMode
-    )
-}
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Savers.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Savers.linuxx64Stubs.kt
deleted file mode 100644
index edec094..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Savers.linuxx64Stubs.kt
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text
-
-import androidx.compose.runtime.saveable.Saver
-import androidx.compose.ui.text.style.LineBreak
-import androidx.compose.ui.text.style.TextMotion
-
-internal actual val PlatformParagraphStyle.Companion.Saver: Saver<PlatformParagraphStyle, Any>
-    get() = PlatformParagraphStyleSaver
-
-private val PlatformParagraphStyleSaver =
-    Saver<PlatformParagraphStyle, Any>(save = {}, restore = { PlatformParagraphStyle() })
-
-internal actual val LineBreak.Companion.Saver: Saver<LineBreak, Any>
-    get() = LineBreakSaver
-
-private val LineBreakSaver =
-    Saver<LineBreak, Any>(
-        save = { it.mask },
-        restore = {
-            val mask = it as Int
-            when (mask) {
-                1 -> LineBreak.Simple
-                2 -> LineBreak.Heading
-                3 -> LineBreak.Paragraph
-                else -> {
-                    LineBreak.Unspecified
-                }
-            }
-        }
-    )
-
-internal actual val TextMotion.Companion.Saver: Saver<TextMotion, Any>
-    get() = TextMotionSaver
-
-private val TextMotionSaver =
-    Saver<TextMotion, Any>(
-        save = { if (it == TextMotion.Static) 0 else 1 },
-        restore = {
-            if (it == 0) {
-                TextMotion.Static
-            } else {
-                TextMotion.Animated
-            }
-        }
-    )
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/TextStyle.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/TextStyle.linuxx64Stubs.kt
deleted file mode 100644
index 55558913..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/TextStyle.linuxx64Stubs.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2022 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text
-
-internal actual fun createPlatformTextStyle(
-    spanStyle: PlatformSpanStyle?,
-    paragraphStyle: PlatformParagraphStyle?
-): PlatformTextStyle = implementedInJetBrainsFork()
-
-actual class PlatformTextStyle {
-    actual val spanStyle: PlatformSpanStyle?
-        get() = implementedInJetBrainsFork()
-
-    actual val paragraphStyle: PlatformParagraphStyle?
-        get() = implementedInJetBrainsFork()
-}
-
-actual class PlatformParagraphStyle {
-    actual companion object {
-        actual val Default: PlatformParagraphStyle = implementedInJetBrainsFork()
-    }
-
-    actual fun merge(other: PlatformParagraphStyle?): PlatformParagraphStyle =
-        implementedInJetBrainsFork()
-}
-
-actual class PlatformSpanStyle {
-    actual companion object {
-        actual val Default: PlatformSpanStyle = implementedInJetBrainsFork()
-    }
-
-    actual fun merge(other: PlatformSpanStyle?): PlatformSpanStyle = implementedInJetBrainsFork()
-}
-
-actual fun lerp(
-    start: PlatformParagraphStyle,
-    stop: PlatformParagraphStyle,
-    fraction: Float
-): PlatformParagraphStyle = implementedInJetBrainsFork()
-
-actual fun lerp(
-    start: PlatformSpanStyle,
-    stop: PlatformSpanStyle,
-    fraction: Float
-): PlatformSpanStyle = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.linuxx64Stubs.kt
deleted file mode 100644
index 66bdcf0..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.linuxx64Stubs.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2022 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text.font
-
-import androidx.compose.ui.text.implementedInJetBrainsFork
-
-internal actual fun createFontFamilyResolver(
-    @Suppress("DEPRECATION") fontResourceLoader: Font.ResourceLoader
-): FontFamily.Resolver = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.linuxx64Stubs.kt
deleted file mode 100644
index 17a0131..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.linuxx64Stubs.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2021 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text.font
-
-import androidx.compose.ui.text.implementedInJetBrainsFork
-
-internal actual class PlatformFontFamilyTypefaceAdapter actual constructor() :
-    FontFamilyTypefaceAdapter {
-
-    actual override fun resolve(
-        typefaceRequest: TypefaceRequest,
-        platformFontLoader: PlatformFontLoader,
-        onAsyncCompletion: (TypefaceResult.Immutable) -> Unit,
-        createDefaultTypeface: (TypefaceRequest) -> Any
-    ): TypefaceResult? = implementedInJetBrainsFork()
-}
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.linuxx64Stubs.kt
deleted file mode 100644
index 2764f82..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.linuxx64Stubs.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text.input
-
-import androidx.compose.runtime.Immutable
-
-/** Used to configure the platform specific IME options. */
-@Immutable actual class PlatformImeOptions
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.linuxx64Stubs.kt
deleted file mode 100644
index 018c860..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.linuxx64Stubs.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text.intl
-
-import androidx.compose.ui.text.implementedInJetBrainsFork
-
-internal actual fun createPlatformLocaleDelegate(): PlatformLocaleDelegate =
-    implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.linuxx64Stubs.kt
deleted file mode 100644
index 2a9df32..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.linuxx64Stubs.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text.platform
-
-import androidx.compose.ui.text.PlatformStringDelegate
-import androidx.compose.ui.text.implementedInJetBrainsFork
-
-internal actual fun ActualStringDelegate(): PlatformStringDelegate = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.linuxx64Stubs.kt
deleted file mode 100644
index 8f9e6b7..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.linuxx64Stubs.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2022 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text.platform
-
-import androidx.compose.ui.graphics.BlendMode
-import androidx.compose.ui.graphics.Brush
-import androidx.compose.ui.graphics.Canvas
-import androidx.compose.ui.graphics.Shadow
-import androidx.compose.ui.graphics.drawscope.DrawStyle
-import androidx.compose.ui.text.MultiParagraph
-import androidx.compose.ui.text.implementedInJetBrainsFork
-import androidx.compose.ui.text.style.TextDecoration
-
-internal actual fun MultiParagraph.drawMultiParagraph(
-    canvas: Canvas,
-    brush: Brush,
-    alpha: Float,
-    shadow: Shadow?,
-    decoration: TextDecoration?,
-    drawStyle: DrawStyle?,
-    blendMode: BlendMode
-): Unit = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.linuxx64Stubs.kt
deleted file mode 100644
index fb9de57..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.linuxx64Stubs.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package androidx.compose.ui.text.platform
-
-import androidx.compose.ui.text.AnnotatedString.Range
-import androidx.compose.ui.text.Paragraph
-import androidx.compose.ui.text.ParagraphIntrinsics
-import androidx.compose.ui.text.Placeholder
-import androidx.compose.ui.text.SpanStyle
-import androidx.compose.ui.text.TextStyle
-import androidx.compose.ui.text.font.Font
-import androidx.compose.ui.text.font.FontFamily
-import androidx.compose.ui.text.implementedInJetBrainsFork
-import androidx.compose.ui.unit.Constraints
-import androidx.compose.ui.unit.Density
-
-internal actual fun ActualParagraph(
-    text: String,
-    style: TextStyle,
-    spanStyles: List<Range<SpanStyle>>,
-    placeholders: List<Range<Placeholder>>,
-    maxLines: Int,
-    ellipsis: Boolean,
-    width: Float,
-    density: Density,
-    @Suppress("DEPRECATION") resourceLoader: Font.ResourceLoader
-): Paragraph = implementedInJetBrainsFork()
-
-internal actual fun ActualParagraph(
-    text: String,
-    style: TextStyle,
-    spanStyles: List<Range<SpanStyle>>,
-    placeholders: List<Range<Placeholder>>,
-    maxLines: Int,
-    ellipsis: Boolean,
-    constraints: Constraints,
-    density: Density,
-    fontFamilyResolver: FontFamily.Resolver
-): Paragraph = implementedInJetBrainsFork()
-
-internal actual fun ActualParagraph(
-    paragraphIntrinsics: ParagraphIntrinsics,
-    maxLines: Int,
-    ellipsis: Boolean,
-    constraints: Constraints
-): Paragraph = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.linuxx64Stubs.kt
deleted file mode 100644
index 8cbb81d..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.linuxx64Stubs.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package androidx.compose.ui.text.platform
-
-import androidx.compose.ui.text.AnnotatedString.Range
-import androidx.compose.ui.text.ParagraphIntrinsics
-import androidx.compose.ui.text.Placeholder
-import androidx.compose.ui.text.SpanStyle
-import androidx.compose.ui.text.TextStyle
-import androidx.compose.ui.text.font.FontFamily
-import androidx.compose.ui.text.implementedInJetBrainsFork
-import androidx.compose.ui.unit.Density
-
-internal actual fun ActualParagraphIntrinsics(
-    text: String,
-    style: TextStyle,
-    spanStyles: List<Range<SpanStyle>>,
-    placeholders: List<Range<Placeholder>>,
-    density: Density,
-    fontFamilyResolver: FontFamily.Resolver
-): ParagraphIntrinsics = implementedInJetBrainsFork()
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.linuxx64Stubs.kt
deleted file mode 100644
index 8a547cd..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.linuxx64Stubs.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2022 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text.style
-
-import androidx.compose.runtime.Immutable
-import androidx.compose.runtime.Stable
-import androidx.compose.ui.text.implementedInJetBrainsFork
-
-@Immutable
-actual value class LineBreak private constructor(internal val mask: Int) {
-    actual companion object {
-        @Stable actual val Simple: LineBreak = implementedInJetBrainsFork()
-
-        @Stable actual val Heading: LineBreak = implementedInJetBrainsFork()
-
-        @Stable actual val Paragraph: LineBreak = implementedInJetBrainsFork()
-
-        @Stable actual val Unspecified: LineBreak = implementedInJetBrainsFork()
-    }
-}
diff --git a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.linuxx64Stubs.kt b/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.linuxx64Stubs.kt
deleted file mode 100644
index 2ef3ee0..0000000
--- a/compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.linuxx64Stubs.kt
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2022 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.text.style
-
-import androidx.compose.runtime.Immutable
-import androidx.compose.ui.text.implementedInJetBrainsFork
-
-@Immutable
-actual class TextMotion private constructor() {
-    actual companion object {
-        actual val Static: TextMotion = implementedInJetBrainsFork()
-
-        actual val Animated: TextMotion = implementedInJetBrainsFork()
-    }
-}
diff --git a/compose/ui/ui-unit/build.gradle b/compose/ui/ui-unit/build.gradle
index 57ef847..7f470db 100644
--- a/compose/ui/ui-unit/build.gradle
+++ b/compose/ui/ui-unit/build.gradle
@@ -70,12 +70,16 @@
             }
         }
 
+        commonStubsMain {
+            dependsOn(commonMain)
+        }
+
         jvmStubsMain {
-            dependsOn(jvmMain)
+            dependsOn(commonStubsMain)
         }
 
         linuxx64StubsMain {
-            dependsOn(commonMain)
+            dependsOn(commonStubsMain)
         }
 
         androidInstrumentedTest {
diff --git a/compose/ui/ui-unit/src/jvmStubsMain/kotlin/androidx/compose/ui/unit/FontScaling.jvmStubs.kt b/compose/ui/ui-unit/src/commonStubsMain/kotlin/androidx/compose/ui/unit/FontScaling.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-unit/src/jvmStubsMain/kotlin/androidx/compose/ui/unit/FontScaling.jvmStubs.kt
rename to compose/ui/ui-unit/src/commonStubsMain/kotlin/androidx/compose/ui/unit/FontScaling.commonStubs.kt
diff --git a/compose/ui/ui-unit/src/linuxx64StubsMain/kotlin/androidx/compose/ui/unit/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt b/compose/ui/ui-unit/src/commonStubsMain/kotlin/androidx/compose/ui/unit/internal/JvmDefaultWithCompatibility.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-unit/src/linuxx64StubsMain/kotlin/androidx/compose/ui/unit/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt
rename to compose/ui/ui-unit/src/commonStubsMain/kotlin/androidx/compose/ui/unit/internal/JvmDefaultWithCompatibility.commonStubs.kt
diff --git a/compose/ui/ui-unit/src/linuxx64StubsMain/kotlin/androidx/compose/ui/unit/FontScaling.linuxx64Stubs.kt b/compose/ui/ui-unit/src/linuxx64StubsMain/kotlin/androidx/compose/ui/unit/FontScaling.linuxx64Stubs.kt
deleted file mode 100644
index 9f1c181..0000000
--- a/compose/ui/ui-unit/src/linuxx64StubsMain/kotlin/androidx/compose/ui/unit/FontScaling.linuxx64Stubs.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.unit
-
-/** Converts [TextUnit] to [Dp] and vice-versa. */
-actual typealias FontScaling = FontScalingLinear
diff --git a/compose/ui/ui-util/build.gradle b/compose/ui/ui-util/build.gradle
index d07e09f..1abb92c 100644
--- a/compose/ui/ui-util/build.gradle
+++ b/compose/ui/ui-util/build.gradle
@@ -69,7 +69,6 @@
         }
 
         jvmStubsMain {
-            dependsOn(jvmMain)
             dependsOn(commonStubsMain)
         }
 
diff --git a/compose/ui/ui-util/src/linuxx64StubsMain/kotlin/androidx/compose/ui/util/InlineClassHelper.linuxx64Stubs.kt b/compose/ui/ui-util/src/commonStubsMain/kotlin/androidx/compose/ui/util/InlineClassHelper.commonStubs.kt
similarity index 100%
rename from compose/ui/ui-util/src/linuxx64StubsMain/kotlin/androidx/compose/ui/util/InlineClassHelper.linuxx64Stubs.kt
rename to compose/ui/ui-util/src/commonStubsMain/kotlin/androidx/compose/ui/util/InlineClassHelper.commonStubs.kt
diff --git a/compose/ui/ui/build.gradle b/compose/ui/ui/build.gradle
index 0d5ceba..79e19d4 100644
--- a/compose/ui/ui/build.gradle
+++ b/compose/ui/ui/build.gradle
@@ -107,12 +107,16 @@
             }
         }
 
+        commonStubsMain {
+            dependsOn(commonMain)
+        }
+
         jvmStubsMain {
-            dependsOn(jvmMain)
+            dependsOn(commonStubsMain)
         }
 
         linuxx64StubsMain {
-            dependsOn(commonMain)
+            dependsOn(commonStubsMain)
         }
 
         androidInstrumentedTest {
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/Actual.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/Actual.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/Actual.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/Actual.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/AtomicReference.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/AtomicReference.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/AtomicReference.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/AtomicReference.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/Modifier.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/Modifier.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/Modifier.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/Modifier.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/NotImplemented.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/NotImplemented.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/NotImplemented.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/NotImplemented.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.commonStubs.kt
similarity index 97%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.commonStubs.kt
index 673ab3a..5db3588 100644
--- a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.jvmStubs.kt
+++ b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.commonStubs.kt
@@ -17,6 +17,7 @@
 package androidx.compose.ui.autofill
 
 import androidx.compose.ui.implementedInJetBrainsFork
+import kotlin.jvm.JvmInline
 
 @JvmInline
 internal actual value class ContentDataType actual constructor(val dataType: Int) {
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/autofill/ContentType.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/autofill/ContentType.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/autofill/ContentType.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/autofill/ContentType.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/key/Key.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/key/Key.commonStubs.kt
similarity index 99%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/key/Key.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/key/Key.commonStubs.kt
index 1cf10ac..68211e2 100644
--- a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/key/Key.jvmStubs.kt
+++ b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/key/Key.commonStubs.kt
@@ -16,6 +16,7 @@
 package androidx.compose.ui.input.key
 
 import androidx.compose.ui.implementedInJetBrainsFork
+import kotlin.jvm.JvmInline
 
 @JvmInline
 actual value class Key(val keyCode: Long) {
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.commonStubs.kt
similarity index 97%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.commonStubs.kt
index 7aff5d3..ec0970a 100644
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.linuxx64Stubs.kt
+++ b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.commonStubs.kt
@@ -23,4 +23,4 @@
 
 internal actual class PointerInputResetException : CancellationException("Pointer input was reset")
 
-internal actual object CancelTimeoutCancellationException : CancellationException()
+internal actual object CancelTimeoutCancellationException : CancellationException("")
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/internal/JvmDefaultWithCompatibility.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/internal/JvmDefaultWithCompatibility.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/node/JvmTreeSet.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/node/JvmTreeSet.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/node/JvmTreeSet.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/node/JvmTreeSet.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/node/WeakReference.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/node/WeakReference.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/node/WeakReference.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/node/WeakReference.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/AtomicInt.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/AtomicInt.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/AtomicInt.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/AtomicInt.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/ClassHelpers.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/ClassHelpers.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/ClassHelpers.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/ClassHelpers.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/DebugUtils.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/DebugUtils.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/DebugUtils.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/DebugUtils.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/Synchronization.linuxx64Stubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/Synchronization.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/Synchronization.linuxx64Stubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/Synchronization.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/Wrapper.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/Wrapper.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/Wrapper.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/Wrapper.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/window/Dialog.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/window/Dialog.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/window/Dialog.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/window/Dialog.commonStubs.kt
diff --git a/compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/window/Popup.jvmStubs.kt b/compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/window/Popup.commonStubs.kt
similarity index 100%
rename from compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/window/Popup.jvmStubs.kt
rename to compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/window/Popup.commonStubs.kt
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/NotImplemented.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/NotImplemented.linuxx64Stubs.kt
deleted file mode 100644
index e435803..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/NotImplemented.linuxx64Stubs.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui
-
-@Suppress("NOTHING_TO_INLINE")
-internal inline fun implementedInJetBrainsFork(): Nothing =
-    throw NotImplementedError(
-        """
-        Implemented only in JetBrains fork.
-        Please use `org.jetbrains.compose.ui:ui` package instead.
-        """
-            .trimIndent()
-    )
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.linuxx64Stubs.kt
deleted file mode 100644
index 6578ef1..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.linuxx64Stubs.kt
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.autofill
-
-import androidx.compose.ui.implementedInJetBrainsFork
-
-internal actual value class ContentDataType actual constructor(val dataType: Int) {
-    internal actual companion object {
-        actual val Text: ContentDataType = implementedInJetBrainsFork()
-        actual val List: ContentDataType = implementedInJetBrainsFork()
-        actual val Date: ContentDataType = implementedInJetBrainsFork()
-        actual val Toggle: ContentDataType = implementedInJetBrainsFork()
-        actual val None: ContentDataType = implementedInJetBrainsFork()
-    }
-}
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentType.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentType.linuxx64Stubs.kt
deleted file mode 100644
index 96d4e44..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentType.linuxx64Stubs.kt
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.autofill
-
-import androidx.compose.ui.implementedInJetBrainsFork
-
-internal actual class ContentType private actual constructor(contentHint: String) {
-    internal actual companion object {
-        internal actual fun from(value: String): ContentType = implementedInJetBrainsFork()
-
-        actual val EmailAddress: ContentType = implementedInJetBrainsFork()
-        actual val Username: ContentType = implementedInJetBrainsFork()
-        actual val Password: ContentType = implementedInJetBrainsFork()
-        actual val NewUsername: ContentType = implementedInJetBrainsFork()
-        actual val NewPassword: ContentType = implementedInJetBrainsFork()
-        actual val PostalAddress: ContentType = implementedInJetBrainsFork()
-        actual val PostalCode: ContentType = implementedInJetBrainsFork()
-        actual val CreditCardNumber: ContentType = implementedInJetBrainsFork()
-        actual val CreditCardSecurityCode: ContentType = implementedInJetBrainsFork()
-        actual val CreditCardExpirationDate: ContentType = implementedInJetBrainsFork()
-        actual val CreditCardExpirationMonth: ContentType = implementedInJetBrainsFork()
-        actual val CreditCardExpirationYear: ContentType = implementedInJetBrainsFork()
-        actual val CreditCardExpirationDay: ContentType = implementedInJetBrainsFork()
-        actual val AddressCountry: ContentType = implementedInJetBrainsFork()
-        actual val AddressRegion: ContentType = implementedInJetBrainsFork()
-        actual val AddressLocality: ContentType = implementedInJetBrainsFork()
-        actual val AddressStreet: ContentType = implementedInJetBrainsFork()
-        actual val AddressAuxiliaryDetails: ContentType = implementedInJetBrainsFork()
-        actual val PostalCodeExtended: ContentType = implementedInJetBrainsFork()
-        actual val PersonFullName: ContentType = implementedInJetBrainsFork()
-        actual val PersonFirstName: ContentType = implementedInJetBrainsFork()
-        actual val PersonLastName: ContentType = implementedInJetBrainsFork()
-        actual val PersonMiddleName: ContentType = implementedInJetBrainsFork()
-        actual val PersonMiddleInitial: ContentType = implementedInJetBrainsFork()
-        actual val PersonNamePrefix: ContentType = implementedInJetBrainsFork()
-        actual val PersonNameSuffix: ContentType = implementedInJetBrainsFork()
-        actual val PhoneNumber: ContentType = implementedInJetBrainsFork()
-        actual val PhoneNumberDevice: ContentType = implementedInJetBrainsFork()
-        actual val PhoneCountryCode: ContentType = implementedInJetBrainsFork()
-        actual val PhoneNumberNational: ContentType = implementedInJetBrainsFork()
-        actual val Gender: ContentType = implementedInJetBrainsFork()
-        actual val BirthDateFull: ContentType = implementedInJetBrainsFork()
-        actual val BirthDateDay: ContentType = implementedInJetBrainsFork()
-        actual val BirthDateMonth: ContentType = implementedInJetBrainsFork()
-        actual val BirthDateYear: ContentType = implementedInJetBrainsFork()
-        actual val SmsOtpCode: ContentType = implementedInJetBrainsFork()
-    }
-}
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.linuxx64Stubs.kt
deleted file mode 100644
index 159832a..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.linuxx64Stubs.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.draganddrop
-
-import androidx.compose.ui.geometry.Offset
-import androidx.compose.ui.implementedInJetBrainsFork
-
-actual class DragAndDropTransferData
-
-actual class DragAndDropEvent
-
-internal actual val DragAndDropEvent.positionInRoot: Offset
-    get() = implementedInJetBrainsFork()
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.linuxx64Stubs.kt
deleted file mode 100644
index fc9fc4c..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.linuxx64Stubs.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2021 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.hapticfeedback
-
-import androidx.compose.ui.implementedInJetBrainsFork
-
-internal actual object PlatformHapticFeedbackType {
-    actual val LongPress: HapticFeedbackType = implementedInJetBrainsFork()
-    actual val TextHandleMove: HapticFeedbackType = implementedInJetBrainsFork()
-}
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/Key.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/Key.linuxx64Stubs.kt
deleted file mode 100644
index b728d29..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/Key.linuxx64Stubs.kt
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package androidx.compose.ui.input.key
-
-import androidx.compose.ui.implementedInJetBrainsFork
-
-actual value class Key(val keyCode: Long) {
-    actual companion object {
-        actual val Unknown: Key = implementedInJetBrainsFork()
-        actual val Home: Key = implementedInJetBrainsFork()
-        actual val Help: Key = implementedInJetBrainsFork()
-        actual val DirectionUp: Key = implementedInJetBrainsFork()
-        actual val DirectionDown: Key = implementedInJetBrainsFork()
-        actual val DirectionLeft: Key = implementedInJetBrainsFork()
-        actual val DirectionRight: Key = implementedInJetBrainsFork()
-        actual val Zero: Key = implementedInJetBrainsFork()
-        actual val One: Key = implementedInJetBrainsFork()
-        actual val Two: Key = implementedInJetBrainsFork()
-        actual val Three: Key = implementedInJetBrainsFork()
-        actual val Four: Key = implementedInJetBrainsFork()
-        actual val Five: Key = implementedInJetBrainsFork()
-        actual val Six: Key = implementedInJetBrainsFork()
-        actual val Seven: Key = implementedInJetBrainsFork()
-        actual val Eight: Key = implementedInJetBrainsFork()
-        actual val Nine: Key = implementedInJetBrainsFork()
-        actual val Plus: Key = implementedInJetBrainsFork()
-        actual val Minus: Key = implementedInJetBrainsFork()
-        actual val Multiply: Key = implementedInJetBrainsFork()
-        actual val Equals: Key = implementedInJetBrainsFork()
-        actual val Pound: Key = implementedInJetBrainsFork()
-        actual val A: Key = implementedInJetBrainsFork()
-        actual val B: Key = implementedInJetBrainsFork()
-        actual val C: Key = implementedInJetBrainsFork()
-        actual val D: Key = implementedInJetBrainsFork()
-        actual val E: Key = implementedInJetBrainsFork()
-        actual val F: Key = implementedInJetBrainsFork()
-        actual val G: Key = implementedInJetBrainsFork()
-        actual val H: Key = implementedInJetBrainsFork()
-        actual val I: Key = implementedInJetBrainsFork()
-        actual val J: Key = implementedInJetBrainsFork()
-        actual val K: Key = implementedInJetBrainsFork()
-        actual val L: Key = implementedInJetBrainsFork()
-        actual val M: Key = implementedInJetBrainsFork()
-        actual val N: Key = implementedInJetBrainsFork()
-        actual val O: Key = implementedInJetBrainsFork()
-        actual val P: Key = implementedInJetBrainsFork()
-        actual val Q: Key = implementedInJetBrainsFork()
-        actual val R: Key = implementedInJetBrainsFork()
-        actual val S: Key = implementedInJetBrainsFork()
-        actual val T: Key = implementedInJetBrainsFork()
-        actual val U: Key = implementedInJetBrainsFork()
-        actual val V: Key = implementedInJetBrainsFork()
-        actual val W: Key = implementedInJetBrainsFork()
-        actual val X: Key = implementedInJetBrainsFork()
-        actual val Y: Key = implementedInJetBrainsFork()
-        actual val Z: Key = implementedInJetBrainsFork()
-        actual val Comma: Key = implementedInJetBrainsFork()
-        actual val Period: Key = implementedInJetBrainsFork()
-        actual val AltLeft: Key = implementedInJetBrainsFork()
-        actual val AltRight: Key = implementedInJetBrainsFork()
-        actual val ShiftLeft: Key = implementedInJetBrainsFork()
-        actual val ShiftRight: Key = implementedInJetBrainsFork()
-        actual val Tab: Key = implementedInJetBrainsFork()
-        actual val Spacebar: Key = implementedInJetBrainsFork()
-        actual val Enter: Key = implementedInJetBrainsFork()
-        actual val Backspace: Key = implementedInJetBrainsFork()
-        actual val Delete: Key = implementedInJetBrainsFork()
-        actual val Escape: Key = implementedInJetBrainsFork()
-        actual val CtrlLeft: Key = implementedInJetBrainsFork()
-        actual val CtrlRight: Key = implementedInJetBrainsFork()
-        actual val CapsLock: Key = implementedInJetBrainsFork()
-        actual val ScrollLock: Key = implementedInJetBrainsFork()
-        actual val MetaLeft: Key = implementedInJetBrainsFork()
-        actual val MetaRight: Key = implementedInJetBrainsFork()
-        actual val PrintScreen: Key = implementedInJetBrainsFork()
-        actual val Insert: Key = implementedInJetBrainsFork()
-        actual val Cut: Key = implementedInJetBrainsFork()
-        actual val Copy: Key = implementedInJetBrainsFork()
-        actual val Paste: Key = implementedInJetBrainsFork()
-        actual val Grave: Key = implementedInJetBrainsFork()
-        actual val LeftBracket: Key = implementedInJetBrainsFork()
-        actual val RightBracket: Key = implementedInJetBrainsFork()
-        actual val Slash: Key = implementedInJetBrainsFork()
-        actual val Backslash: Key = implementedInJetBrainsFork()
-        actual val Semicolon: Key = implementedInJetBrainsFork()
-        actual val Apostrophe: Key = implementedInJetBrainsFork()
-        actual val At: Key = implementedInJetBrainsFork()
-        actual val PageUp: Key = implementedInJetBrainsFork()
-        actual val PageDown: Key = implementedInJetBrainsFork()
-        actual val F1: Key = implementedInJetBrainsFork()
-        actual val F2: Key = implementedInJetBrainsFork()
-        actual val F3: Key = implementedInJetBrainsFork()
-        actual val F4: Key = implementedInJetBrainsFork()
-        actual val F5: Key = implementedInJetBrainsFork()
-        actual val F6: Key = implementedInJetBrainsFork()
-        actual val F7: Key = implementedInJetBrainsFork()
-        actual val F8: Key = implementedInJetBrainsFork()
-        actual val F9: Key = implementedInJetBrainsFork()
-        actual val F10: Key = implementedInJetBrainsFork()
-        actual val F11: Key = implementedInJetBrainsFork()
-        actual val F12: Key = implementedInJetBrainsFork()
-        actual val NumLock: Key = implementedInJetBrainsFork()
-        actual val NumPad0: Key = implementedInJetBrainsFork()
-        actual val NumPad1: Key = implementedInJetBrainsFork()
-        actual val NumPad2: Key = implementedInJetBrainsFork()
-        actual val NumPad3: Key = implementedInJetBrainsFork()
-        actual val NumPad4: Key = implementedInJetBrainsFork()
-        actual val NumPad5: Key = implementedInJetBrainsFork()
-        actual val NumPad6: Key = implementedInJetBrainsFork()
-        actual val NumPad7: Key = implementedInJetBrainsFork()
-        actual val NumPad8: Key = implementedInJetBrainsFork()
-        actual val NumPad9: Key = implementedInJetBrainsFork()
-        actual val NumPadDivide: Key = implementedInJetBrainsFork()
-        actual val NumPadMultiply: Key = implementedInJetBrainsFork()
-        actual val NumPadSubtract: Key = implementedInJetBrainsFork()
-        actual val NumPadAdd: Key = implementedInJetBrainsFork()
-        actual val NumPadDot: Key = implementedInJetBrainsFork()
-        actual val NumPadComma: Key = implementedInJetBrainsFork()
-        actual val NumPadEnter: Key = implementedInJetBrainsFork()
-        actual val NumPadEquals: Key = implementedInJetBrainsFork()
-        actual val NumPadLeftParenthesis: Key = implementedInJetBrainsFork()
-        actual val NumPadRightParenthesis: Key = implementedInJetBrainsFork()
-        actual val MoveHome: Key = implementedInJetBrainsFork()
-        actual val MoveEnd: Key = implementedInJetBrainsFork()
-        actual val SoftLeft: Key = implementedInJetBrainsFork()
-        actual val SoftRight: Key = implementedInJetBrainsFork()
-        actual val Back: Key = implementedInJetBrainsFork()
-        actual val NavigatePrevious: Key = implementedInJetBrainsFork()
-        actual val NavigateNext: Key = implementedInJetBrainsFork()
-        actual val NavigateIn: Key = implementedInJetBrainsFork()
-        actual val NavigateOut: Key = implementedInJetBrainsFork()
-        actual val SystemNavigationUp: Key = implementedInJetBrainsFork()
-        actual val SystemNavigationDown: Key = implementedInJetBrainsFork()
-        actual val SystemNavigationLeft: Key = implementedInJetBrainsFork()
-        actual val SystemNavigationRight: Key = implementedInJetBrainsFork()
-        actual val Call: Key = implementedInJetBrainsFork()
-        actual val EndCall: Key = implementedInJetBrainsFork()
-        actual val DirectionCenter: Key = implementedInJetBrainsFork()
-        actual val DirectionUpLeft: Key = implementedInJetBrainsFork()
-        actual val DirectionDownLeft: Key = implementedInJetBrainsFork()
-        actual val DirectionUpRight: Key = implementedInJetBrainsFork()
-        actual val DirectionDownRight: Key = implementedInJetBrainsFork()
-        actual val VolumeUp: Key = implementedInJetBrainsFork()
-        actual val VolumeDown: Key = implementedInJetBrainsFork()
-        actual val Power: Key = implementedInJetBrainsFork()
-        actual val Camera: Key = implementedInJetBrainsFork()
-        actual val Clear: Key = implementedInJetBrainsFork()
-        actual val Symbol: Key = implementedInJetBrainsFork()
-        actual val Browser: Key = implementedInJetBrainsFork()
-        actual val Envelope: Key = implementedInJetBrainsFork()
-        actual val Function: Key = implementedInJetBrainsFork()
-        actual val Break: Key = implementedInJetBrainsFork()
-        actual val Number: Key = implementedInJetBrainsFork()
-        actual val HeadsetHook: Key = implementedInJetBrainsFork()
-        actual val Focus: Key = implementedInJetBrainsFork()
-        actual val Menu: Key = implementedInJetBrainsFork()
-        actual val Notification: Key = implementedInJetBrainsFork()
-        actual val Search: Key = implementedInJetBrainsFork()
-        actual val PictureSymbols: Key = implementedInJetBrainsFork()
-        actual val SwitchCharset: Key = implementedInJetBrainsFork()
-        actual val ButtonA: Key = implementedInJetBrainsFork()
-        actual val ButtonB: Key = implementedInJetBrainsFork()
-        actual val ButtonC: Key = implementedInJetBrainsFork()
-        actual val ButtonX: Key = implementedInJetBrainsFork()
-        actual val ButtonY: Key = implementedInJetBrainsFork()
-        actual val ButtonZ: Key = implementedInJetBrainsFork()
-        actual val ButtonL1: Key = implementedInJetBrainsFork()
-        actual val ButtonR1: Key = implementedInJetBrainsFork()
-        actual val ButtonL2: Key = implementedInJetBrainsFork()
-        actual val ButtonR2: Key = implementedInJetBrainsFork()
-        actual val ButtonThumbLeft: Key = implementedInJetBrainsFork()
-        actual val ButtonThumbRight: Key = implementedInJetBrainsFork()
-        actual val ButtonStart: Key = implementedInJetBrainsFork()
-        actual val ButtonSelect: Key = implementedInJetBrainsFork()
-        actual val ButtonMode: Key = implementedInJetBrainsFork()
-        actual val Button1: Key = implementedInJetBrainsFork()
-        actual val Button2: Key = implementedInJetBrainsFork()
-        actual val Button3: Key = implementedInJetBrainsFork()
-        actual val Button4: Key = implementedInJetBrainsFork()
-        actual val Button5: Key = implementedInJetBrainsFork()
-        actual val Button6: Key = implementedInJetBrainsFork()
-        actual val Button7: Key = implementedInJetBrainsFork()
-        actual val Button8: Key = implementedInJetBrainsFork()
-        actual val Button9: Key = implementedInJetBrainsFork()
-        actual val Button10: Key = implementedInJetBrainsFork()
-        actual val Button11: Key = implementedInJetBrainsFork()
-        actual val Button12: Key = implementedInJetBrainsFork()
-        actual val Button13: Key = implementedInJetBrainsFork()
-        actual val Button14: Key = implementedInJetBrainsFork()
-        actual val Button15: Key = implementedInJetBrainsFork()
-        actual val Button16: Key = implementedInJetBrainsFork()
-        actual val Forward: Key = implementedInJetBrainsFork()
-        actual val MediaPlay: Key = implementedInJetBrainsFork()
-        actual val MediaPause: Key = implementedInJetBrainsFork()
-        actual val MediaPlayPause: Key = implementedInJetBrainsFork()
-        actual val MediaStop: Key = implementedInJetBrainsFork()
-        actual val MediaRecord: Key = implementedInJetBrainsFork()
-        actual val MediaNext: Key = implementedInJetBrainsFork()
-        actual val MediaPrevious: Key = implementedInJetBrainsFork()
-        actual val MediaRewind: Key = implementedInJetBrainsFork()
-        actual val MediaFastForward: Key = implementedInJetBrainsFork()
-        actual val MediaClose: Key = implementedInJetBrainsFork()
-        actual val MediaAudioTrack: Key = implementedInJetBrainsFork()
-        actual val MediaEject: Key = implementedInJetBrainsFork()
-        actual val MediaTopMenu: Key = implementedInJetBrainsFork()
-        actual val MediaSkipForward: Key = implementedInJetBrainsFork()
-        actual val MediaSkipBackward: Key = implementedInJetBrainsFork()
-        actual val MediaStepForward: Key = implementedInJetBrainsFork()
-        actual val MediaStepBackward: Key = implementedInJetBrainsFork()
-        actual val MicrophoneMute: Key = implementedInJetBrainsFork()
-        actual val VolumeMute: Key = implementedInJetBrainsFork()
-        actual val Info: Key = implementedInJetBrainsFork()
-        actual val ChannelUp: Key = implementedInJetBrainsFork()
-        actual val ChannelDown: Key = implementedInJetBrainsFork()
-        actual val ZoomIn: Key = implementedInJetBrainsFork()
-        actual val ZoomOut: Key = implementedInJetBrainsFork()
-        actual val Tv: Key = implementedInJetBrainsFork()
-        actual val Window: Key = implementedInJetBrainsFork()
-        actual val Guide: Key = implementedInJetBrainsFork()
-        actual val Dvr: Key = implementedInJetBrainsFork()
-        actual val Bookmark: Key = implementedInJetBrainsFork()
-        actual val Captions: Key = implementedInJetBrainsFork()
-        actual val Settings: Key = implementedInJetBrainsFork()
-        actual val TvPower: Key = implementedInJetBrainsFork()
-        actual val TvInput: Key = implementedInJetBrainsFork()
-        actual val SetTopBoxPower: Key = implementedInJetBrainsFork()
-        actual val SetTopBoxInput: Key = implementedInJetBrainsFork()
-        actual val AvReceiverPower: Key = implementedInJetBrainsFork()
-        actual val AvReceiverInput: Key = implementedInJetBrainsFork()
-        actual val ProgramRed: Key = implementedInJetBrainsFork()
-        actual val ProgramGreen: Key = implementedInJetBrainsFork()
-        actual val ProgramYellow: Key = implementedInJetBrainsFork()
-        actual val ProgramBlue: Key = implementedInJetBrainsFork()
-        actual val AppSwitch: Key = implementedInJetBrainsFork()
-        actual val LanguageSwitch: Key = implementedInJetBrainsFork()
-        actual val MannerMode: Key = implementedInJetBrainsFork()
-        actual val Toggle2D3D: Key = implementedInJetBrainsFork()
-        actual val Contacts: Key = implementedInJetBrainsFork()
-        actual val Calendar: Key = implementedInJetBrainsFork()
-        actual val Music: Key = implementedInJetBrainsFork()
-        actual val Calculator: Key = implementedInJetBrainsFork()
-        actual val ZenkakuHankaru: Key = implementedInJetBrainsFork()
-        actual val Eisu: Key = implementedInJetBrainsFork()
-        actual val Muhenkan: Key = implementedInJetBrainsFork()
-        actual val Henkan: Key = implementedInJetBrainsFork()
-        actual val KatakanaHiragana: Key = implementedInJetBrainsFork()
-        actual val Yen: Key = implementedInJetBrainsFork()
-        actual val Ro: Key = implementedInJetBrainsFork()
-        actual val Kana: Key = implementedInJetBrainsFork()
-        actual val Assist: Key = implementedInJetBrainsFork()
-        actual val BrightnessDown: Key = implementedInJetBrainsFork()
-        actual val BrightnessUp: Key = implementedInJetBrainsFork()
-        actual val Sleep: Key = implementedInJetBrainsFork()
-        actual val WakeUp: Key = implementedInJetBrainsFork()
-        actual val SoftSleep: Key = implementedInJetBrainsFork()
-        actual val Pairing: Key = implementedInJetBrainsFork()
-        actual val LastChannel: Key = implementedInJetBrainsFork()
-        actual val TvDataService: Key = implementedInJetBrainsFork()
-        actual val VoiceAssist: Key = implementedInJetBrainsFork()
-        actual val TvRadioService: Key = implementedInJetBrainsFork()
-        actual val TvTeletext: Key = implementedInJetBrainsFork()
-        actual val TvNumberEntry: Key = implementedInJetBrainsFork()
-        actual val TvTerrestrialAnalog: Key = implementedInJetBrainsFork()
-        actual val TvTerrestrialDigital: Key = implementedInJetBrainsFork()
-        actual val TvSatellite: Key = implementedInJetBrainsFork()
-        actual val TvSatelliteBs: Key = implementedInJetBrainsFork()
-        actual val TvSatelliteCs: Key = implementedInJetBrainsFork()
-        actual val TvSatelliteService: Key = implementedInJetBrainsFork()
-        actual val TvNetwork: Key = implementedInJetBrainsFork()
-        actual val TvAntennaCable: Key = implementedInJetBrainsFork()
-        actual val TvInputHdmi1: Key = implementedInJetBrainsFork()
-        actual val TvInputHdmi2: Key = implementedInJetBrainsFork()
-        actual val TvInputHdmi3: Key = implementedInJetBrainsFork()
-        actual val TvInputHdmi4: Key = implementedInJetBrainsFork()
-        actual val TvInputComposite1: Key = implementedInJetBrainsFork()
-        actual val TvInputComposite2: Key = implementedInJetBrainsFork()
-        actual val TvInputComponent1: Key = implementedInJetBrainsFork()
-        actual val TvInputComponent2: Key = implementedInJetBrainsFork()
-        actual val TvInputVga1: Key = implementedInJetBrainsFork()
-        actual val TvAudioDescription: Key = implementedInJetBrainsFork()
-        actual val TvAudioDescriptionMixingVolumeUp: Key = implementedInJetBrainsFork()
-        actual val TvAudioDescriptionMixingVolumeDown: Key = implementedInJetBrainsFork()
-        actual val TvZoomMode: Key = implementedInJetBrainsFork()
-        actual val TvContentsMenu: Key = implementedInJetBrainsFork()
-        actual val TvMediaContextMenu: Key = implementedInJetBrainsFork()
-        actual val TvTimerProgramming: Key = implementedInJetBrainsFork()
-        actual val StemPrimary: Key = implementedInJetBrainsFork()
-        actual val Stem1: Key = implementedInJetBrainsFork()
-        actual val Stem2: Key = implementedInJetBrainsFork()
-        actual val Stem3: Key = implementedInJetBrainsFork()
-        actual val AllApps: Key = implementedInJetBrainsFork()
-        actual val Refresh: Key = implementedInJetBrainsFork()
-        actual val ThumbsUp: Key = implementedInJetBrainsFork()
-        actual val ThumbsDown: Key = implementedInJetBrainsFork()
-        actual val ProfileSwitch: Key = implementedInJetBrainsFork()
-    }
-}
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.linuxx64Stubs.kt
deleted file mode 100644
index 60d7851..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.linuxx64Stubs.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.input.key
-
-import androidx.compose.ui.implementedInJetBrainsFork
-
-actual class NativeKeyEvent
-
-actual val KeyEvent.key: Key
-    get() = implementedInJetBrainsFork()
-
-actual val KeyEvent.utf16CodePoint: Int
-    get() = implementedInJetBrainsFork()
-
-actual val KeyEvent.type: KeyEventType
-    get() = implementedInJetBrainsFork()
-
-actual val KeyEvent.isAltPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val KeyEvent.isCtrlPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val KeyEvent.isMetaPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val KeyEvent.isShiftPressed: Boolean
-    get() = implementedInJetBrainsFork()
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.linuxx64Stubs.kt
deleted file mode 100644
index 36e8bbc..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.linuxx64Stubs.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.input.pointer
-
-import androidx.collection.LongSparseArray
-import androidx.compose.ui.implementedInJetBrainsFork
-
-internal actual class InternalPointerEvent
-actual constructor(
-    actual val changes: LongSparseArray<PointerInputChange>,
-    pointerInputEvent: PointerInputEvent
-) {
-    actual var suppressMovementConsumption: Boolean = implementedInJetBrainsFork()
-
-    actual fun activeHoverEvent(pointerId: PointerId): Boolean = implementedInJetBrainsFork()
-}
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.linuxx64Stubs.kt
deleted file mode 100644
index d0d1970..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.linuxx64Stubs.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.input.pointer
-
-import androidx.compose.ui.implementedInJetBrainsFork
-
-internal actual typealias NativePointerButtons = Int
-
-internal actual typealias NativePointerKeyboardModifiers = Int
-
-internal actual fun EmptyPointerKeyboardModifiers(): PointerKeyboardModifiers =
-    implementedInJetBrainsFork()
-
-actual data class PointerEvent
-internal actual constructor(
-    actual val changes: List<PointerInputChange>,
-    internal val internalPointerEvent: InternalPointerEvent?
-) {
-    actual val buttons: PointerButtons
-        get() = implementedInJetBrainsFork()
-
-    actual val keyboardModifiers: PointerKeyboardModifiers
-        get() = implementedInJetBrainsFork()
-
-    actual var type: PointerEventType = implementedInJetBrainsFork()
-
-    /** @param changes The changes. */
-    actual constructor(changes: List<PointerInputChange>) : this(changes, null) {
-        implementedInJetBrainsFork()
-    }
-}
-
-actual val PointerButtons.isPrimaryPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerButtons.isSecondaryPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerButtons.isTertiaryPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerButtons.isBackPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerButtons.isForwardPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual fun PointerButtons.isPressed(buttonIndex: Int): Boolean = implementedInJetBrainsFork()
-
-actual val PointerButtons.areAnyPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual fun PointerButtons.indexOfFirstPressed(): Int = implementedInJetBrainsFork()
-
-actual fun PointerButtons.indexOfLastPressed(): Int = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isCtrlPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isMetaPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isAltPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isAltGraphPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isSymPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isShiftPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isFunctionPressed: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isCapsLockOn: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isScrollLockOn: Boolean
-    get() = implementedInJetBrainsFork()
-
-actual val PointerKeyboardModifiers.isNumLockOn: Boolean
-    get() = implementedInJetBrainsFork()
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.linuxx64Stubs.kt
deleted file mode 100644
index 5a75a35..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.linuxx64Stubs.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2021 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.input.pointer
-
-import androidx.compose.ui.implementedInJetBrainsFork
-
-internal actual val pointerIconDefault: PointerIcon = implementedInJetBrainsFork()
-internal actual val pointerIconCrosshair: PointerIcon = implementedInJetBrainsFork()
-internal actual val pointerIconText: PointerIcon = implementedInJetBrainsFork()
-internal actual val pointerIconHand: PointerIcon = implementedInJetBrainsFork()
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.linuxx64Stubs.kt
deleted file mode 100644
index 61f79d8..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.linuxx64Stubs.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.input.pointer
-
-internal actual data class PointerInputEvent(
-    actual val uptime: Long,
-    actual val pointers: List<PointerInputEventData>
-)
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.linuxx64Stubs.kt
deleted file mode 100644
index 5f0a650..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.linuxx64Stubs.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.input.rotary
-
-actual class RotaryScrollEvent
-internal constructor(
-    actual val verticalScrollPixels: Float,
-    actual val horizontalScrollPixels: Float,
-    actual val uptimeMillis: Long,
-)
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.linuxx64Stubs.kt
deleted file mode 100644
index beb813d..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.linuxx64Stubs.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2020 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.platform
-
-import androidx.compose.ui.implementedInJetBrainsFork
-
-actual class ClipEntry {
-    actual val clipMetadata: ClipMetadata
-        get() = implementedInJetBrainsFork()
-}
-
-actual class ClipMetadata
-
-actual class NativeClipboard
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.linuxx64Stubs.kt
deleted file mode 100644
index a38f2b0..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.linuxx64Stubs.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.platform
-
-actual interface PlatformTextInputMethodRequest
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.linuxx64Stubs.kt
deleted file mode 100644
index e5b8469..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.linuxx64Stubs.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.platform
-
-actual interface PlatformTextInputSession {
-    actual suspend fun startInputMethod(request: PlatformTextInputMethodRequest): Nothing
-}
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/Wrapper.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/Wrapper.linuxx64Stubs.kt
deleted file mode 100644
index 5150de3..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/Wrapper.linuxx64Stubs.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package androidx.compose.ui.platform
-
-import androidx.compose.runtime.CompositionContext
-import androidx.compose.runtime.ReusableComposition
-import androidx.compose.ui.implementedInJetBrainsFork
-import androidx.compose.ui.node.LayoutNode
-
-internal actual fun createSubcomposition(
-    container: LayoutNode,
-    parent: CompositionContext
-): ReusableComposition = implementedInJetBrainsFork()
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.linuxx64Stubs.kt
deleted file mode 100644
index d06483a..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.linuxx64Stubs.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.viewinterop
-
-actual typealias InteropView = Any
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.linuxx64Stubs.kt
deleted file mode 100644
index f1c2de3..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.linuxx64Stubs.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.viewinterop
-
-import androidx.compose.runtime.ComposeNodeLifecycleCallback
-import androidx.compose.ui.InternalComposeUiApi
-import androidx.compose.ui.implementedInJetBrainsFork
-
-@InternalComposeUiApi
-internal actual class InteropViewFactoryHolder private constructor() :
-    ComposeNodeLifecycleCallback {
-    init {
-        implementedInJetBrainsFork()
-    }
-
-    actual fun getInteropView(): InteropView? = implementedInJetBrainsFork()
-
-    actual override fun onReuse(): Unit = implementedInJetBrainsFork()
-
-    actual override fun onDeactivate(): Unit = implementedInJetBrainsFork()
-
-    actual override fun onRelease(): Unit = implementedInJetBrainsFork()
-}
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Dialog.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Dialog.linuxx64Stubs.kt
deleted file mode 100644
index 4974c54..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Dialog.linuxx64Stubs.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.window
-
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.Immutable
-import androidx.compose.ui.implementedInJetBrainsFork
-
-@Immutable
-actual class DialogProperties
-actual constructor(
-    actual val dismissOnBackPress: Boolean,
-    actual val dismissOnClickOutside: Boolean,
-    actual val usePlatformDefaultWidth: Boolean
-)
-
-@Composable
-actual fun Dialog(
-    onDismissRequest: () -> Unit,
-    properties: DialogProperties,
-    content: @Composable () -> Unit
-): Unit = implementedInJetBrainsFork()
diff --git a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Popup.linuxx64Stubs.kt b/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Popup.linuxx64Stubs.kt
deleted file mode 100644
index 00833b2..0000000
--- a/compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Popup.linuxx64Stubs.kt
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2024 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.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.compose.ui.window
-
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.Immutable
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.implementedInJetBrainsFork
-import androidx.compose.ui.unit.IntOffset
-
-@Immutable
-actual class PopupProperties
-actual constructor(
-    actual val focusable: Boolean,
-    actual val dismissOnBackPress: Boolean,
-    actual val dismissOnClickOutside: Boolean,
-    actual val clippingEnabled: Boolean,
-)
-
-@Composable
-actual fun Popup(
-    alignment: Alignment,
-    offset: IntOffset,
-    onDismissRequest: (() -> Unit)?,
-    properties: PopupProperties,
-    content: @Composable () -> Unit
-): Unit = implementedInJetBrainsFork()
-
-@Composable
-actual fun Popup(
-    popupPositionProvider: PopupPositionProvider,
-    onDismissRequest: (() -> Unit)?,
-    properties: PopupProperties,
-    content: @Composable () -> Unit
-): Unit = implementedInJetBrainsFork()
