Merge "DividerScreenshoTest#darkTheme disabled on api33" into androidx-main
diff --git a/appactions/interaction/interaction-capabilities-communication/src/main/java/androidx/appactions/interaction/capabilities/communication/CreateCall.kt b/appactions/interaction/interaction-capabilities-communication/src/main/java/androidx/appactions/interaction/capabilities/communication/CreateCall.kt
index 5b1fdc6..a58ae85 100644
--- a/appactions/interaction/interaction-capabilities-communication/src/main/java/androidx/appactions/interaction/capabilities/communication/CreateCall.kt
+++ b/appactions/interaction/interaction-capabilities-communication/src/main/java/androidx/appactions/interaction/capabilities/communication/CreateCall.kt
@@ -20,8 +20,8 @@
 import androidx.appactions.builtintypes.experimental.types.Call
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.CapabilityFactory
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.EntityConverter
@@ -38,21 +38,31 @@
 
 private const val CAPABILITY_NAME: String = "actions.intent.CREATE_CALL"
 
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(CreateCall.Properties::class.java)
         .setArguments(CreateCall.Arguments::class.java, CreateCall.Arguments::Builder)
         .setOutput(CreateCall.Output::class.java)
         .bindOptionalParameter(
             "call.callFormat",
-            { property -> Optional.ofNullable(property.callFormat) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[CreateCall.PropertyMapStrings.CALL_FORMAT.key]
+                        as Property<Call.CanonicalValue.CallFormat>
+                )
+            },
             CreateCall.Arguments.Builder::setCallFormat,
             TypeConverters.CALL_FORMAT_PARAM_VALUE_CONVERTER,
             TypeConverters.CALL_FORMAT_ENTITY_CONVERTER
         )
         .bindRepeatedParameter(
             "call.participant",
-            { property -> Optional.ofNullable(property.participant) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[CreateCall.PropertyMapStrings.PARTICIPANT.key]
+                        as Property<Participant>
+                )
+            },
             CreateCall.Arguments.Builder::setParticipantList,
             ParticipantValue.PARAM_VALUE_CONVERTER,
             EntityConverter.of(PARTICIPANT_TYPE_SPEC)
@@ -71,57 +81,26 @@
 
 @CapabilityFactory(name = CAPABILITY_NAME)
 class CreateCall private constructor() {
-    class CapabilityBuilder :
-        Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-            >(ACTION_SPEC) {
-        override fun build(): Capability {
-            super.setProperty(Properties.Builder().build())
-            // TODO(b/268369632): No-op remove empty property builder after Property is removed.
-            super.setProperty(Properties.Builder().build())
-            return super.build()
-        }
+    internal enum class PropertyMapStrings(val key: String) {
+        CALL_FORMAT("call.callFormat"),
+        PARTICIPANT("call.participant"),
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties
-    internal constructor(
-        val callFormat: Property<Call.CanonicalValue.CallFormat>?,
-        val participant: Property<Participant>?
-    ) {
-        override fun toString(): String {
-            return "Property(callFormat=$callFormat, participant=$participant)"
-        }
+    class CapabilityBuilder :
+        Capability.Builder<
+            CapabilityBuilder, Arguments, Output, Confirmation, ExecutionSession
+            >(ACTION_SPEC) {
 
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass != other?.javaClass) return false
+        private var properties = mutableMapOf<String, Property<*>>()
 
-            other as Properties
+        fun setCallFormat(callFormat: Property<Call.CanonicalValue.CallFormat>): CapabilityBuilder =
+            apply {
+                properties[PropertyMapStrings.CALL_FORMAT.key] = callFormat
+            }
 
-            if (callFormat != other.callFormat) return false
-            if (participant != other.participant) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            var result = callFormat.hashCode()
-            result = 31 * result + participant.hashCode()
-            return result
-        }
-
-        class Builder {
-            private var callFormat: Property<Call.CanonicalValue.CallFormat>? = null
-
-            private var participant: Property<Participant>? = null
-
-            fun setCallFormat(callFormat: Property<Call.CanonicalValue.CallFormat>): Builder =
-                apply {
-                    this.callFormat = callFormat
-                }
-
-            fun build(): Properties = Properties(callFormat, participant)
+        override fun build(): Capability {
+            super.setProperty(properties)
+            return super.build()
         }
     }
 
diff --git a/appactions/interaction/interaction-capabilities-communication/src/main/java/androidx/appactions/interaction/capabilities/communication/CreateMessage.kt b/appactions/interaction/interaction-capabilities-communication/src/main/java/androidx/appactions/interaction/capabilities/communication/CreateMessage.kt
index d2b8b20..806e5ac 100644
--- a/appactions/interaction/interaction-capabilities-communication/src/main/java/androidx/appactions/interaction/capabilities/communication/CreateMessage.kt
+++ b/appactions/interaction/interaction-capabilities-communication/src/main/java/androidx/appactions/interaction/capabilities/communication/CreateMessage.kt
@@ -18,11 +18,10 @@
 
 import androidx.appactions.builtintypes.experimental.properties.Recipient
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
-import androidx.appactions.builtintypes.experimental.types.SuccessStatus
 import androidx.appactions.builtintypes.experimental.types.Message
-
-import androidx.appactions.interaction.capabilities.core.Capability
+import androidx.appactions.builtintypes.experimental.types.SuccessStatus
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.CapabilityFactory
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.EntityConverter
@@ -31,8 +30,8 @@
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters.MESSAGE_TYPE_SPEC
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters.RECIPIENT_TYPE_SPEC
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
-import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import androidx.appactions.interaction.proto.ParamValue
 import androidx.appactions.interaction.protobuf.Struct
 import androidx.appactions.interaction.protobuf.Value
@@ -40,21 +39,31 @@
 
 private const val CAPABILITY_NAME: String = "actions.intent.CREATE_MESSAGE"
 
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(CreateMessage.Properties::class.java)
         .setArguments(CreateMessage.Arguments::class.java, CreateMessage.Arguments::Builder)
         .setOutput(CreateMessage.Output::class.java)
         .bindRepeatedParameter(
             "message.recipient",
-            { property -> Optional.ofNullable(property.recipient) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[CreateMessage.PropertyMapStrings.RECIPIENT.key]
+                        as Property<Recipient>
+                )
+            },
             CreateMessage.Arguments.Builder::setRecipientList,
             RecipientValue.PARAM_VALUE_CONVERTER,
             EntityConverter.of(RECIPIENT_TYPE_SPEC)
         )
         .bindOptionalParameter(
             "message.text",
-            { property -> Optional.ofNullable(property.messageText) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[CreateMessage.PropertyMapStrings.MESSAGE_TEXT.key]
+                        as Property<StringValue>
+                )
+            },
             CreateMessage.Arguments.Builder::setMessageText,
             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
             TypeConverters.STRING_VALUE_ENTITY_CONVERTER
@@ -73,59 +82,29 @@
 
 @CapabilityFactory(name = CAPABILITY_NAME)
 class CreateMessage private constructor() {
-    class CapabilityBuilder :
-        Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-            >(ACTION_SPEC) {
-        override fun build(): Capability {
-            super.setProperty(Properties.Builder().build())
-            // TODO(b/268369632): No-op remove empty property builder after Property is removed.
-            super.setProperty(Properties.Builder().build())
-            return super.build()
-        }
+    internal enum class PropertyMapStrings(val key: String) {
+        MESSAGE_TEXT("message.text"),
+        RECIPIENT("message.recipient"),
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties
-    internal constructor(
-        val recipient: Property<Recipient>?,
-        val messageText: Property<StringValue>?
-    ) {
-        override fun toString(): String {
-            return "Property(recipient=$recipient, messageText=$messageText)"
+    class CapabilityBuilder :
+        Capability.Builder<
+            CapabilityBuilder, Arguments, Output, Confirmation, ExecutionSession
+            >(ACTION_SPEC) {
+
+        private var properties = mutableMapOf<String, Property<*>>()
+
+        fun setMessageText(messageText: Property<StringValue>): CapabilityBuilder = apply {
+            properties[PropertyMapStrings.MESSAGE_TEXT.key] = messageText
         }
 
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass != other?.javaClass) return false
-
-            other as Properties
-
-            if (recipient != other.recipient) return false
-            if (messageText != other.messageText) return false
-
-            return true
+        fun setRecipient(recipient: Property<Recipient>): CapabilityBuilder = apply {
+            properties[PropertyMapStrings.RECIPIENT.key] = recipient
         }
 
-        override fun hashCode(): Int {
-            var result = recipient.hashCode()
-            result = 31 * result + messageText.hashCode()
-            return result
-        }
-
-        class Builder {
-            private var recipient: Property<Recipient>? = null
-            private var messageText: Property<StringValue>? = null
-
-            fun setRecipient(recipient: Property<Recipient>): Builder = apply {
-                this.recipient = recipient
-            }
-
-            fun setMessageText(messageText: Property<StringValue>): Builder = apply {
-                this.messageText = messageText
-            }
-
-            fun build(): Properties = Properties(recipient, messageText)
+        override fun build(): Capability {
+            super.setProperty(properties)
+            return super.build()
         }
     }
 
diff --git a/appactions/interaction/interaction-capabilities-core/api/current.txt b/appactions/interaction/interaction-capabilities-core/api/current.txt
index 7622cc1..b2e08cf 100644
--- a/appactions/interaction/interaction-capabilities-core/api/current.txt
+++ b/appactions/interaction/interaction-capabilities-core/api/current.txt
@@ -13,7 +13,7 @@
     property public String id;
   }
 
-  public abstract static class Capability.Builder<BuilderT extends androidx.appactions.interaction.capabilities.core.Capability.Builder<BuilderT, PropertyT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT>, PropertyT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT extends androidx.appactions.interaction.capabilities.core.BaseExecutionSession<ArgumentsT, OutputT>> {
+  public abstract static class Capability.Builder<BuilderT extends androidx.appactions.interaction.capabilities.core.Capability.Builder<BuilderT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT>, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT extends androidx.appactions.interaction.capabilities.core.BaseExecutionSession<ArgumentsT, OutputT>> {
     method public final BuilderT asBuilder();
     method public androidx.appactions.interaction.capabilities.core.Capability build();
     method public final BuilderT setExecutionCallback(androidx.appactions.interaction.capabilities.core.ExecutionCallback<ArgumentsT,OutputT> executionCallback);
diff --git a/appactions/interaction/interaction-capabilities-core/api/public_plus_experimental_current.txt b/appactions/interaction/interaction-capabilities-core/api/public_plus_experimental_current.txt
index 7622cc1..b2e08cf 100644
--- a/appactions/interaction/interaction-capabilities-core/api/public_plus_experimental_current.txt
+++ b/appactions/interaction/interaction-capabilities-core/api/public_plus_experimental_current.txt
@@ -13,7 +13,7 @@
     property public String id;
   }
 
-  public abstract static class Capability.Builder<BuilderT extends androidx.appactions.interaction.capabilities.core.Capability.Builder<BuilderT, PropertyT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT>, PropertyT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT extends androidx.appactions.interaction.capabilities.core.BaseExecutionSession<ArgumentsT, OutputT>> {
+  public abstract static class Capability.Builder<BuilderT extends androidx.appactions.interaction.capabilities.core.Capability.Builder<BuilderT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT>, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT extends androidx.appactions.interaction.capabilities.core.BaseExecutionSession<ArgumentsT, OutputT>> {
     method public final BuilderT asBuilder();
     method public androidx.appactions.interaction.capabilities.core.Capability build();
     method public final BuilderT setExecutionCallback(androidx.appactions.interaction.capabilities.core.ExecutionCallback<ArgumentsT,OutputT> executionCallback);
diff --git a/appactions/interaction/interaction-capabilities-core/api/restricted_current.txt b/appactions/interaction/interaction-capabilities-core/api/restricted_current.txt
index 7622cc1..b2e08cf 100644
--- a/appactions/interaction/interaction-capabilities-core/api/restricted_current.txt
+++ b/appactions/interaction/interaction-capabilities-core/api/restricted_current.txt
@@ -13,7 +13,7 @@
     property public String id;
   }
 
-  public abstract static class Capability.Builder<BuilderT extends androidx.appactions.interaction.capabilities.core.Capability.Builder<BuilderT, PropertyT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT>, PropertyT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT extends androidx.appactions.interaction.capabilities.core.BaseExecutionSession<ArgumentsT, OutputT>> {
+  public abstract static class Capability.Builder<BuilderT extends androidx.appactions.interaction.capabilities.core.Capability.Builder<BuilderT, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT>, ArgumentsT, OutputT, ConfirmationT, ExecutionSessionT extends androidx.appactions.interaction.capabilities.core.BaseExecutionSession<ArgumentsT, OutputT>> {
     method public final BuilderT asBuilder();
     method public androidx.appactions.interaction.capabilities.core.Capability build();
     method public final BuilderT setExecutionCallback(androidx.appactions.interaction.capabilities.core.ExecutionCallback<ArgumentsT,OutputT> executionCallback);
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/Capability.kt b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/Capability.kt
index a043cd2..6fc55f2 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/Capability.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/Capability.kt
@@ -20,9 +20,10 @@
 import androidx.appactions.interaction.capabilities.core.impl.CapabilitySession
 import androidx.appactions.interaction.capabilities.core.impl.SingleTurnCapabilityImpl
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpec
+import androidx.appactions.interaction.capabilities.core.impl.task.EmptyTaskUpdater
 import androidx.appactions.interaction.capabilities.core.impl.task.SessionBridge
 import androidx.appactions.interaction.capabilities.core.impl.task.TaskCapabilityImpl
-import androidx.appactions.interaction.capabilities.core.impl.task.EmptyTaskUpdater
+import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.proto.AppActionsContext.AppAction
 
 /**
@@ -61,27 +62,25 @@
         BuilderT :
         Builder<
             BuilderT,
-            PropertyT,
             ArgumentsT,
             OutputT,
             ConfirmationT,
             ExecutionSessionT
             >,
-        PropertyT,
         ArgumentsT,
         OutputT,
         ConfirmationT,
         ExecutionSessionT : BaseExecutionSession<ArgumentsT, OutputT>
         > private constructor() {
         private var id: String? = null
-        private var property: PropertyT? = null
+        private var property: Map<String, Property<*>>? = null
         private var executionCallback: ExecutionCallback<ArgumentsT, OutputT>? = null
         private var sessionFactory:
-                    (hostProperties: HostProperties?) -> ExecutionSessionT? = { _ -> null }
-        private var actionSpec: ActionSpec<PropertyT, ArgumentsT, OutputT>? = null
+                (hostProperties: HostProperties?) -> ExecutionSessionT? = { _ -> null }
+        private var actionSpec: ActionSpec<ArgumentsT, OutputT>? = null
 
         @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-        constructor(actionSpec: ActionSpec<PropertyT, ArgumentsT, OutputT>) : this() {
+        constructor(actionSpec: ActionSpec<ArgumentsT, OutputT>) : this() {
             this.actionSpec = actionSpec
         }
 
@@ -111,7 +110,7 @@
          * Sets the Property instance for this capability.
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-        fun setProperty(property: PropertyT) = asBuilder().apply {
+        fun setProperty(property: Map<String, Property<*>>) = asBuilder().apply {
             this.property = property
         }
 
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/ErrorStatusInternal.java b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/ErrorStatusInternal.java
index 17b9eeb..d983859 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/ErrorStatusInternal.java
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/ErrorStatusInternal.java
@@ -23,13 +23,16 @@
 public enum ErrorStatusInternal {
     CANCELLED(0),
     TIMEOUT(1),
-    INVALID_REQUEST_TYPE(2),
+    INVALID_REQUEST(2),
     UNCHANGED_DISAMBIG_STATE(3),
     INVALID_RESOLVER(4),
     STRUCT_CONVERSION_FAILURE(5),
+    // TODO(b/276354491): remove SYNC / CONFIRM / TOUCH_EVENT failure codes
     SYNC_REQUEST_FAILURE(6),
     CONFIRMATION_REQUEST_FAILURE(7),
-    TOUCH_EVENT_REQUEST_FAILURE(8);
+    TOUCH_EVENT_REQUEST_FAILURE(8),
+    EXTERNAL_EXCEPTION(9),
+    SESSION_ALREADY_DESTROYED(10);
 
     private final int mCode;
 
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilityImpl.kt b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilityImpl.kt
index 050d370..2a9393e 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilityImpl.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilityImpl.kt
@@ -17,10 +17,11 @@
 package androidx.appactions.interaction.capabilities.core.impl
 
 import androidx.annotation.RestrictTo
-import androidx.appactions.interaction.capabilities.core.ExecutionCallback
 import androidx.appactions.interaction.capabilities.core.Capability
+import androidx.appactions.interaction.capabilities.core.ExecutionCallback
 import androidx.appactions.interaction.capabilities.core.HostProperties
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpec
+import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.proto.AppActionsContext.AppAction
 import androidx.appactions.interaction.proto.TaskInfo
 import kotlinx.coroutines.sync.Mutex
@@ -28,13 +29,12 @@
 /** @suppress */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 internal class SingleTurnCapabilityImpl<
-    PropertyT,
     ArgumentsT,
     OutputT,
     > constructor(
     id: String,
-    val actionSpec: ActionSpec<PropertyT, ArgumentsT, OutputT>,
-    val property: PropertyT,
+    val actionSpec: ActionSpec<ArgumentsT, OutputT>,
+    val property: Map<String, Property<*>>,
     val executionCallback: ExecutionCallback<ArgumentsT, OutputT>,
 ) : Capability(id) {
     private val mutex = Mutex()
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilitySession.kt b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilitySession.kt
index 0f1bccb..32f3753 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilitySession.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilitySession.kt
@@ -21,6 +21,9 @@
 import androidx.appactions.interaction.capabilities.core.ExecutionResult
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpec
 import androidx.appactions.interaction.capabilities.core.impl.utils.invokeExternalSuspendBlock
+import androidx.appactions.interaction.capabilities.core.impl.utils.isCausedBy
+import androidx.appactions.interaction.capabilities.core.impl.utils.toErrorStatusInternal
+import androidx.appactions.interaction.capabilities.core.impl.exceptions.InvalidRequestException
 import androidx.appactions.interaction.proto.AppActionsContext.AppDialogState
 import androidx.appactions.interaction.proto.FulfillmentResponse
 import androidx.appactions.interaction.proto.ParamValue
@@ -42,7 +45,7 @@
     OutputT,
     >(
     override val sessionId: String,
-    private val actionSpec: ActionSpec<*, ArgumentsT, OutputT>,
+    private val actionSpec: ActionSpec<ArgumentsT, OutputT>,
     private val executionCallback: ExecutionCallback<ArgumentsT, OutputT>,
     private val mutex: Mutex,
     private val scope: CoroutineScope = CoroutineScope(Dispatchers.Default),
@@ -81,8 +84,11 @@
                 }
                 callback.onSuccess(convertToFulfillmentResponse(output))
             } catch (t: Throwable) {
-                // TODO(b/276354491) add fine-grained error handling
-                callback.onError(ErrorStatusInternal.CANCELLED)
+                callback.onError(t.toErrorStatusInternal())
+                // if the exception is caused by a bad request, do not crash the app
+                if (!t.isCausedBy(InvalidRequestException::class)) {
+                    throw t
+                }
             } finally {
                 UiHandleRegistry.unregisterUiHandle(uiHandle)
                 mutex.unlock(owner = this@SingleTurnCapabilitySession)
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.java b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/InvalidRequestException.kt
similarity index 61%
copy from appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.java
copy to appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/InvalidRequestException.kt
index be13634..b060fc8 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.java
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/InvalidRequestException.kt
@@ -14,17 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.appactions.interaction.capabilities.core.impl.exceptions;
+package androidx.appactions.interaction.capabilities.core.impl.exceptions
 
-import androidx.annotation.Nullable;
-
-/** Represents exceptions that happen during object conversion to/from Struct proto. */
-public class StructConversionException extends Exception {
-    public StructConversionException(@Nullable String message) {
-        super(message);
-    }
-
-    public StructConversionException(@Nullable String message, @Nullable Throwable cause) {
-        super(message, cause);
-    }
+/** Represents exceptions that happen as a result of some incoming request that is invalid. */
+sealed class InvalidRequestException : Exception {
+    constructor(message: String?) : super(message)
+    constructor(message: String?, cause: Throwable?) : super(message, cause)
 }
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.java b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.kt
similarity index 69%
rename from appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.java
rename to appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.kt
index be13634..450c533 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.java
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/exceptions/StructConversionException.kt
@@ -14,17 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.appactions.interaction.capabilities.core.impl.exceptions;
-
-import androidx.annotation.Nullable;
+package androidx.appactions.interaction.capabilities.core.impl.exceptions
 
 /** Represents exceptions that happen during object conversion to/from Struct proto. */
-public class StructConversionException extends Exception {
-    public StructConversionException(@Nullable String message) {
-        super(message);
-    }
-
-    public StructConversionException(@Nullable String message, @Nullable Throwable cause) {
-        super(message, cause);
-    }
+class StructConversionException : InvalidRequestException {
+    constructor(message: String?) : super(message)
+    constructor(message: String?, cause: Throwable?) : super(message, cause)
 }
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpec.java b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpec.java
index e17f14c..eb8d0ad 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpec.java
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpec.java
@@ -18,6 +18,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.appactions.interaction.capabilities.core.impl.exceptions.StructConversionException;
+import androidx.appactions.interaction.capabilities.core.properties.Property;
 import androidx.appactions.interaction.proto.AppActionsContext.AppAction;
 import androidx.appactions.interaction.proto.FulfillmentResponse.StructuredOutput;
 import androidx.appactions.interaction.proto.ParamValue;
@@ -28,15 +29,15 @@
 /**
  * A specification for an action, describing it from the app's point of view.
  *
- * @param <PropertyT> typed description of action's characteristics.
  * @param <ArgumentsT> typed representation of action's arguments.
- * @param <OutputT>   typed action's execution output.
+ * @param <OutputT>    typed action's execution output.
  */
-public interface ActionSpec<PropertyT, ArgumentsT, OutputT> {
+public interface ActionSpec<ArgumentsT, OutputT> {
 
     /** Converts the property to the {@code AppAction} proto. */
     @NonNull
-    AppAction convertPropertyToProto(PropertyT property);
+    AppAction convertPropertyToProto(@NonNull Map<String,
+            Property<?>> property);
 
     /** Builds this action's arguments from an ArgumentsWrapper instance. */
     @NonNull
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecBuilder.java b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecBuilder.java
index e95f904..df268de 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecBuilder.java
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecBuilder.java
@@ -40,18 +40,13 @@
 
 /**
  * A builder for the {@code ActionSpec}.
- *
- * @param <PropertyT>
- * @param <ArgumentsT>
- * @param <ArgumentsBuilderT>
- * @param <OutputT>
  */
-public final class ActionSpecBuilder<
-        PropertyT, ArgumentsT, ArgumentsBuilderT extends BuilderOf<ArgumentsT>, OutputT> {
+public final class ActionSpecBuilder<ArgumentsT, ArgumentsBuilderT extends BuilderOf<ArgumentsT>,
+        OutputT> {
 
     private final String mCapabilityName;
     private final Supplier<ArgumentsBuilderT> mArgumentBuilderSupplier;
-    private final ArrayList<ParamBinding<PropertyT, ArgumentsT, ArgumentsBuilderT>>
+    private final ArrayList<ParamBinding<ArgumentsT, ArgumentsBuilderT>>
             mParamBindingList = new ArrayList<>();
     private final Map<String, Function<OutputT, List<ParamValue>>> mOutputBindings =
             new HashMap<>();
@@ -67,49 +62,44 @@
      * to Object as a placeholder, which must be replaced by calling setArgument.
      */
     @NonNull
-    public static ActionSpecBuilder<Void, Object, BuilderOf<Object>, Void> ofCapabilityNamed(
+    public static ActionSpecBuilder<Object, BuilderOf<Object>, Void> ofCapabilityNamed(
             @NonNull String capabilityName) {
         return new ActionSpecBuilder<>(capabilityName, () -> Object::new);
     }
 
     /** Sets the property type and returns a new {@code ActionSpecBuilder}. */
-    @NonNull
-    public <NewPropertyT>
-            ActionSpecBuilder<NewPropertyT, ArgumentsT, ArgumentsBuilderT, OutputT> setDescriptor(
-                    @NonNull Class<NewPropertyT> unused) {
-        return new ActionSpecBuilder<>(this.mCapabilityName, this.mArgumentBuilderSupplier);
-    }
 
     /** Sets the argument type and its builder and returns a new {@code ActionSpecBuilder}. */
     @NonNull
     public <NewArgumentsT, NewArgumentsBuilderT extends BuilderOf<NewArgumentsT>>
-            ActionSpecBuilder<PropertyT, NewArgumentsT, NewArgumentsBuilderT, OutputT> setArguments(
-                    @NonNull Class<NewArgumentsT> unused,
-                    @NonNull Supplier<NewArgumentsBuilderT> argumentBuilderSupplier) {
+    ActionSpecBuilder<NewArgumentsT, NewArgumentsBuilderT, OutputT> setArguments(
+            @NonNull Class<NewArgumentsT> unused,
+            @NonNull Supplier<NewArgumentsBuilderT> argumentBuilderSupplier) {
         return new ActionSpecBuilder<>(this.mCapabilityName, argumentBuilderSupplier);
     }
 
     @NonNull
     public <NewOutputT>
-            ActionSpecBuilder<PropertyT, ArgumentsT, ArgumentsBuilderT, NewOutputT> setOutput(
-                    @NonNull Class<NewOutputT> unused) {
+    ActionSpecBuilder<ArgumentsT, ArgumentsBuilderT, NewOutputT> setOutput(
+            @NonNull Class<NewOutputT> unused) {
         return new ActionSpecBuilder<>(this.mCapabilityName, this.mArgumentBuilderSupplier);
     }
 
     /**
      * Binds the parameter name, getter and setter.
      *
-     * @param paramName the name of this action' parameter.
-     * @param paramGetter a getter of the param-specific info from the property.
+     * @param paramName      the name of this action' parameter.
+     * @param paramGetter    a getter of the param-specific info from the property.
      * @param argumentSetter a setter to the argument with the input from {@code ParamValue}.
      * @return the builder itself.
      */
     @NonNull
-    private ActionSpecBuilder<PropertyT, ArgumentsT, ArgumentsBuilderT, OutputT>
-            bindParameterInternal(
-                    @NonNull String paramName,
-                    @NonNull Function<? super PropertyT, Optional<IntentParameter>> paramGetter,
-                    @NonNull ArgumentSetter<ArgumentsBuilderT> argumentSetter) {
+    private ActionSpecBuilder<ArgumentsT, ArgumentsBuilderT, OutputT>
+    bindParameterInternal(
+            @NonNull String paramName,
+            @NonNull Function<Map<String, Property<?>>,
+                    Optional<IntentParameter>> paramGetter,
+            @NonNull ArgumentSetter<ArgumentsBuilderT> argumentSetter) {
         mParamBindingList.add(ParamBinding.create(paramName, paramGetter, argumentSetter));
         return this;
     }
@@ -129,14 +119,15 @@
      */
     @NonNull
     public <T, PossibleValueT>
-            ActionSpecBuilder<PropertyT, ArgumentsT, ArgumentsBuilderT, OutputT> bindParameter(
-                    @NonNull String paramName,
-                    @NonNull
-                            Function<? super PropertyT, Property<PossibleValueT>>
-                                    propertyGetter,
-                    @NonNull BiConsumer<? super ArgumentsBuilderT, T> paramConsumer,
-                    @NonNull ParamValueConverter<T> paramValueConverter,
-                    @NonNull EntityConverter<PossibleValueT> entityConverter) {
+    ActionSpecBuilder<ArgumentsT, ArgumentsBuilderT, OutputT> bindParameter(
+            @NonNull String paramName,
+            @NonNull
+            Function<Map<String, Property<?>>,
+                    Property<PossibleValueT>>
+                    propertyGetter,
+            @NonNull BiConsumer<? super ArgumentsBuilderT, T> paramConsumer,
+            @NonNull ParamValueConverter<T> paramValueConverter,
+            @NonNull EntityConverter<PossibleValueT> entityConverter) {
         return bindOptionalParameter(
                 paramName,
                 property -> Optional.of(propertyGetter.apply(property)),
@@ -163,17 +154,17 @@
      */
     @NonNull
     public <T, PossibleValueT>
-            ActionSpecBuilder<PropertyT, ArgumentsT, ArgumentsBuilderT, OutputT>
-                    bindOptionalParameter(
-                            @NonNull String paramName,
-                            @NonNull
-                                    Function<
-                                                    ? super PropertyT,
-                                                    Optional<Property<PossibleValueT>>>
-                                            optionalPropertyGetter,
-                            @NonNull BiConsumer<? super ArgumentsBuilderT, T> paramConsumer,
-                            @NonNull ParamValueConverter<T> paramValueConverter,
-                            @NonNull EntityConverter<PossibleValueT> entityConverter) {
+    ActionSpecBuilder<ArgumentsT, ArgumentsBuilderT, OutputT>
+    bindOptionalParameter(
+            @NonNull String paramName,
+            @NonNull
+            Function<
+                    Map<String, Property<?>>,
+                    Optional<Property<PossibleValueT>>>
+                    optionalPropertyGetter,
+            @NonNull BiConsumer<? super ArgumentsBuilderT, T> paramConsumer,
+            @NonNull ParamValueConverter<T> paramValueConverter,
+            @NonNull EntityConverter<PossibleValueT> entityConverter) {
         return bindParameterInternal(
                 paramName,
                 property ->
@@ -200,17 +191,17 @@
      */
     @NonNull
     public <T, PossibleValueT>
-            ActionSpecBuilder<PropertyT, ArgumentsT, ArgumentsBuilderT, OutputT>
-                    bindRepeatedParameter(
-                            @NonNull String paramName,
-                            @NonNull
-                                    Function<
-                                                    ? super PropertyT,
-                                                    Optional<Property<PossibleValueT>>>
-                                            optionalPropertyGetter,
-                            @NonNull BiConsumer<? super ArgumentsBuilderT, List<T>> paramConsumer,
-                            @NonNull ParamValueConverter<T> paramValueConverter,
-                            @NonNull EntityConverter<PossibleValueT> entityConverter) {
+    ActionSpecBuilder<ArgumentsT, ArgumentsBuilderT, OutputT>
+    bindRepeatedParameter(
+            @NonNull String paramName,
+            @NonNull
+            Function<
+                    Map<String, Property<?>>,
+                    Optional<Property<PossibleValueT>>>
+                    optionalPropertyGetter,
+            @NonNull BiConsumer<? super ArgumentsBuilderT, List<T>> paramConsumer,
+            @NonNull ParamValueConverter<T> paramValueConverter,
+            @NonNull EntityConverter<PossibleValueT> entityConverter) {
         return bindParameterInternal(
                 paramName,
                 property ->
@@ -227,17 +218,17 @@
     /**
      * Binds an optional output.
      *
-     * @param name the BII output slot name of this parameter.
+     * @param name         the BII output slot name of this parameter.
      * @param outputGetter a getter of the output from the {@code OutputT} instance.
-     * @param converter a converter from an output object to a ParamValue.
+     * @param converter    a converter from an output object to a ParamValue.
      */
     @NonNull
     @SuppressWarnings("JdkCollectors")
     public <T>
-            ActionSpecBuilder<PropertyT, ArgumentsT, ArgumentsBuilderT, OutputT> bindOptionalOutput(
-                    @NonNull String name,
-                    @NonNull Function<OutputT, Optional<T>> outputGetter,
-                    @NonNull Function<T, ParamValue> converter) {
+    ActionSpecBuilder<ArgumentsT, ArgumentsBuilderT, OutputT> bindOptionalOutput(
+            @NonNull String name,
+            @NonNull Function<OutputT, Optional<T>> outputGetter,
+            @NonNull Function<T, ParamValue> converter) {
         mOutputBindings.put(
                 name,
                 output -> {
@@ -254,17 +245,17 @@
     /**
      * Binds a repeated output.
      *
-     * @param name the BII output slot name of this parameter.
+     * @param name         the BII output slot name of this parameter.
      * @param outputGetter a getter of the output from the {@code OutputT} instance.
-     * @param converter a converter from an output object to a ParamValue.
+     * @param converter    a converter from an output object to a ParamValue.
      */
     @NonNull
     @SuppressWarnings("JdkCollectors")
     public <T>
-            ActionSpecBuilder<PropertyT, ArgumentsT, ArgumentsBuilderT, OutputT> bindRepeatedOutput(
-                    @NonNull String name,
-                    @NonNull Function<OutputT, List<T>> outputGetter,
-                    @NonNull Function<T, ParamValue> converter) {
+    ActionSpecBuilder<ArgumentsT, ArgumentsBuilderT, OutputT> bindRepeatedOutput(
+            @NonNull String name,
+            @NonNull Function<OutputT, List<T>> outputGetter,
+            @NonNull Function<T, ParamValue> converter) {
         mOutputBindings.put(
                 name,
                 output ->
@@ -276,7 +267,7 @@
 
     /** Builds an {@code ActionSpec} from this builder. */
     @NonNull
-    public ActionSpec<PropertyT, ArgumentsT, OutputT> build() {
+    public ActionSpec<ArgumentsT, OutputT> build() {
         return new ActionSpecImpl<>(
                 mCapabilityName,
                 mArgumentBuilderSupplier,
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecImpl.java b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecImpl.java
index 47f0a1a..8dfdb19 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecImpl.java
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecImpl.java
@@ -21,6 +21,7 @@
 import androidx.annotation.NonNull;
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf;
 import androidx.appactions.interaction.capabilities.core.impl.exceptions.StructConversionException;
+import androidx.appactions.interaction.capabilities.core.properties.Property;
 import androidx.appactions.interaction.proto.AppActionsContext.AppAction;
 import androidx.appactions.interaction.proto.FulfillmentResponse.StructuredOutput;
 import androidx.appactions.interaction.proto.ParamValue;
@@ -33,18 +34,18 @@
 
 /** The implementation of {@code ActionSpec} interface. */
 final class ActionSpecImpl<
-                PropertyT, ArgumentsT, ArgumentsBuilderT extends BuilderOf<ArgumentsT>, OutputT>
-        implements ActionSpec<PropertyT, ArgumentsT, OutputT> {
+        ArgumentsT, ArgumentsBuilderT extends BuilderOf<ArgumentsT>, OutputT>
+        implements ActionSpec<ArgumentsT, OutputT> {
 
     private final String mCapabilityName;
     private final Supplier<ArgumentsBuilderT> mArgumentBuilderSupplier;
-    private final List<ParamBinding<PropertyT, ArgumentsT, ArgumentsBuilderT>> mParamBindingList;
+    private final List<ParamBinding<ArgumentsT, ArgumentsBuilderT>> mParamBindingList;
     private final Map<String, Function<OutputT, List<ParamValue>>> mOutputBindings;
 
     ActionSpecImpl(
             String capabilityName,
             Supplier<ArgumentsBuilderT> argumentBuilderSupplier,
-            List<ParamBinding<PropertyT, ArgumentsT, ArgumentsBuilderT>> paramBindingList,
+            List<ParamBinding<ArgumentsT, ArgumentsBuilderT>> paramBindingList,
             Map<String, Function<OutputT, List<ParamValue>>> outputBindings) {
         this.mCapabilityName = capabilityName;
         this.mArgumentBuilderSupplier = argumentBuilderSupplier;
@@ -54,7 +55,7 @@
 
     @NonNull
     @Override
-    public AppAction convertPropertyToProto(PropertyT property) {
+    public AppAction convertPropertyToProto(@NonNull Map<String, Property<?>> property) {
         return AppAction.newBuilder()
                 .setName(mCapabilityName)
                 .addAllParams(
@@ -71,7 +72,7 @@
     public ArgumentsT buildArguments(@NonNull Map<String, List<ParamValue>> args)
             throws StructConversionException {
         ArgumentsBuilderT argumentBuilder = mArgumentBuilderSupplier.get();
-        for (ParamBinding<PropertyT, ArgumentsT, ArgumentsBuilderT> binding : mParamBindingList) {
+        for (ParamBinding<ArgumentsT, ArgumentsBuilderT> binding : mParamBindingList) {
             List<ParamValue> paramValues = args.get(binding.name());
             if (paramValues == null) {
                 continue;
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ParamBinding.java b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ParamBinding.java
index f21f6f2..87ce323 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ParamBinding.java
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/spec/ParamBinding.java
@@ -19,31 +19,30 @@
 import androidx.annotation.NonNull;
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf;
 import androidx.appactions.interaction.capabilities.core.impl.exceptions.StructConversionException;
+import androidx.appactions.interaction.capabilities.core.properties.Property;
 import androidx.appactions.interaction.proto.AppActionsContext.IntentParameter;
 import androidx.appactions.interaction.proto.ParamValue;
 
 import com.google.auto.value.AutoValue;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.function.Function;
 
 /**
  * A binding between a parameter and its Property converter / Argument setter.
- *
- * @param <PropertyT>
- * @param <ArgumentsT>
- * @param <ArgumentsBuilderT>
  */
 @AutoValue
 public abstract class ParamBinding<
-        PropertyT, ArgumentsT, ArgumentsBuilderT extends BuilderOf<ArgumentsT>> {
+        ArgumentsT, ArgumentsBuilderT extends BuilderOf<ArgumentsT>> {
 
-    static <PropertyT, ArgumentsT, ArgumentsBuilderT extends BuilderOf<ArgumentsT>>
-            ParamBinding<PropertyT, ArgumentsT, ArgumentsBuilderT> create(
-                    String name,
-                    Function<? super PropertyT, Optional<IntentParameter>> paramGetter,
-                    ArgumentSetter<ArgumentsBuilderT> argumentSetter) {
+    static <ArgumentsT, ArgumentsBuilderT extends BuilderOf<ArgumentsT>>
+    ParamBinding<ArgumentsT, ArgumentsBuilderT> create(
+            String name,
+            Function<Map<String, Property<?>>,
+                    Optional<IntentParameter>> paramGetter,
+            ArgumentSetter<ArgumentsBuilderT> argumentSetter) {
         return new AutoValue_ParamBinding<>(name, paramGetter, argumentSetter);
     }
 
@@ -52,11 +51,13 @@
     public abstract String name();
 
     /**
-     * Converts a {@code PropertyT} to an {@code IntentParameter} proto. The resulting proto is the
+     * Converts a {@code Property Map} to an {@code IntentParameter} proto. The resulting proto is
+     * the
      * format which we send the current params to Assistant (via. app actions context).
      */
     @NonNull
-    public abstract Function<? super PropertyT, Optional<IntentParameter>> paramGetter();
+    public abstract Function<Map<String, Property<?>>,
+            Optional<IntentParameter>> paramGetter();
 
     /**
      * Populates the {@code ArgumentsBuilderT} for this param with the {@code ParamValue} sent from
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskCapabilityImpl.kt b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskCapabilityImpl.kt
index 3f90e23..fc9eeaf 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskCapabilityImpl.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskCapabilityImpl.kt
@@ -21,6 +21,7 @@
 import androidx.appactions.interaction.capabilities.core.HostProperties
 import androidx.appactions.interaction.capabilities.core.impl.CapabilitySession
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpec
+import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.proto.AppActionsContext.AppAction
 import androidx.appactions.interaction.proto.TaskInfo
 import java.util.function.Supplier
@@ -34,7 +35,6 @@
  * @param sessionUpdaterSupplier a Supplier of SessionUpdaterT instances
  */
 internal class TaskCapabilityImpl<
-    PropertyT,
     ArgumentsT,
     OutputT,
     ExecutionSessionT : BaseExecutionSession<ArgumentsT, OutputT>,
@@ -43,8 +43,8 @@
     >
 constructor(
     id: String,
-    private val actionSpec: ActionSpec<PropertyT, ArgumentsT, OutputT>,
-    private val property: PropertyT,
+    private val actionSpec: ActionSpec<ArgumentsT, OutputT>,
+    private val property: Map<String, Property<*>>,
     private val sessionFactory: (hostProperties: HostProperties?) -> ExecutionSessionT?,
     private val sessionBridge: SessionBridge<ExecutionSessionT, ConfirmationT>,
     private val sessionUpdaterSupplier: Supplier<SessionUpdaterT>
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskCapabilitySession.kt b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskCapabilitySession.kt
index 168ab619..1f577f5 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskCapabilitySession.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskCapabilitySession.kt
@@ -39,7 +39,7 @@
     ConfirmationT,
 >(
     override val sessionId: String,
-    actionSpec: ActionSpec<*, ArgumentsT, OutputT>,
+    actionSpec: ActionSpec<ArgumentsT, OutputT>,
     appAction: AppAction,
     taskHandler: TaskHandler<ConfirmationT>,
     externalSession: BaseExecutionSession<ArgumentsT, OutputT>,
@@ -51,7 +51,6 @@
     // single-turn capability does not have status
     override val isActive: Boolean
         get() = when (sessionOrchestrator.status) {
-            TaskOrchestrator.Status.COMPLETED,
             TaskOrchestrator.Status.DESTROYED -> false
             else -> true
         }
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskOrchestrator.kt b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskOrchestrator.kt
index 5e3aaf5..5b51ac3 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskOrchestrator.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/task/TaskOrchestrator.kt
@@ -58,7 +58,7 @@
  */
 internal class TaskOrchestrator<ArgumentsT, OutputT, ConfirmationT>(
     private val sessionId: String,
-    private val actionSpec: ActionSpec<*, ArgumentsT, OutputT>,
+    private val actionSpec: ActionSpec<ArgumentsT, OutputT>,
     private val appAction: AppActionsContext.AppAction,
     private val taskHandler: TaskHandler<ConfirmationT>,
     private val externalSession: BaseExecutionSession<ArgumentsT, OutputT>,
@@ -68,7 +68,6 @@
     internal enum class Status {
         UNINITIATED,
         IN_PROGRESS,
-        COMPLETED,
         DESTROYED,
     }
     /**
@@ -147,7 +146,14 @@
             inProgress = true
         }
         try {
-            if (updateRequest.assistantRequest != null) {
+            if (status == Status.DESTROYED) {
+                if (updateRequest.assistantRequest != null) {
+                    FulfillmentResult(ErrorStatusInternal.SESSION_ALREADY_DESTROYED)
+                        .applyToCallback(updateRequest.assistantRequest.callbackInternal)
+                } else if (updateRequest.touchEventRequest != null && touchEventCallback != null) {
+                    touchEventCallback!!.onError(ErrorStatusInternal.SESSION_ALREADY_DESTROYED)
+                }
+            } else if (updateRequest.assistantRequest != null) {
                 processAssistantUpdateRequest(updateRequest.assistantRequest)
             } else if (updateRequest.touchEventRequest != null) {
                 processTouchEventUpdateRequest(updateRequest.touchEventRequest)
@@ -177,22 +183,22 @@
         val callback = assistantUpdateRequest.callbackInternal
         val fulfillmentResult: FulfillmentResult
         if (argumentsWrapper.requestMetadata == null) {
-            fulfillmentResult = FulfillmentResult(ErrorStatusInternal.INVALID_REQUEST_TYPE)
+            fulfillmentResult = FulfillmentResult(ErrorStatusInternal.INVALID_REQUEST)
         } else {
             fulfillmentResult = when (argumentsWrapper.requestMetadata.requestType()) {
                 FulfillmentRequest.Fulfillment.Type.UNRECOGNIZED,
                 FulfillmentRequest.Fulfillment.Type.UNKNOWN_TYPE,
                 ->
-                    FulfillmentResult(ErrorStatusInternal.INVALID_REQUEST_TYPE)
+                    FulfillmentResult(ErrorStatusInternal.INVALID_REQUEST)
 
                 FulfillmentRequest.Fulfillment.Type.SYNC -> handleSync(argumentsWrapper)
                 FulfillmentRequest.Fulfillment.Type.CONFIRM -> handleConfirm()
-                FulfillmentRequest.Fulfillment.Type.CANCEL,
-                FulfillmentRequest.Fulfillment.Type.TERMINATE,
+                FulfillmentRequest.Fulfillment.Type.CANCEL
                 -> {
                     terminate()
                     FulfillmentResult(FulfillmentResponse.getDefaultInstance())
                 }
+                else -> FulfillmentResult(ErrorStatusInternal.INVALID_REQUEST)
             }
         }
         fulfillmentResult.applyToCallback(callback)
@@ -254,7 +260,6 @@
         }
     }
 
-    // TODO: add cleanup logic if any
     internal fun terminate() {
         externalSession.onDestroy()
         status = Status.DESTROYED
@@ -471,7 +476,7 @@
         val result = invokeExternalSuspendBlock("onExecute") {
             externalSession.onExecute(actionSpec.buildArguments(finalArguments))
         }
-        status = Status.COMPLETED
+        terminate()
         val fulfillmentResponse =
             FulfillmentResponse.newBuilder().setStartDictation(result.shouldStartDictation)
         convertToExecutionOutput(result)?.let { fulfillmentResponse.executionOutput = it }
diff --git a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/utils/CallbackUtils.kt b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/utils/CallbackUtils.kt
index 8cc223d..1811abd 100644
--- a/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/utils/CallbackUtils.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/main/java/androidx/appactions/interaction/capabilities/core/impl/utils/CallbackUtils.kt
@@ -16,11 +16,15 @@
 
 package androidx.appactions.interaction.capabilities.core.impl.utils
 
+import androidx.appactions.interaction.capabilities.core.impl.ErrorStatusInternal
 import androidx.appactions.interaction.capabilities.core.impl.exceptions.ExternalException
+import androidx.appactions.interaction.capabilities.core.impl.exceptions.StructConversionException
+import androidx.appactions.interaction.capabilities.core.impl.exceptions.InvalidRequestException
+import kotlin.reflect.KClass
 
 /** invoke an externally implemented method, wrapping any exceptions with ExternalException.
  */
-fun <T> invokeExternalBlock(description: String, block: () -> T): T {
+internal fun <T> invokeExternalBlock(description: String, block: () -> T): T {
     try {
         return block()
     } catch (t: Throwable) {
@@ -31,10 +35,36 @@
 /** invoke an externally implemented suspend method, wrapping any exceptions with
  * ExternalException.
  */
-suspend fun <T> invokeExternalSuspendBlock(description: String, block: suspend () -> T): T {
+internal suspend fun <T> invokeExternalSuspendBlock(
+    description: String,
+    block: suspend () -> T
+): T {
     try {
         return block()
     } catch (t: Throwable) {
         throw ExternalException("exception occurred during '$description'", t)
     }
+}
+
+/** Determines whether or not this exception is caused by some type, directly or indirectly. */
+internal fun <T : Throwable> Throwable.isCausedBy(clazz: KClass<T>): Boolean {
+    if (clazz.isInstance(this)) {
+        return true
+    }
+    return this.cause?.isCausedBy(clazz) == true
+}
+
+internal fun Throwable.toErrorStatusInternal(): ErrorStatusInternal {
+    return when {
+        this.isCausedBy(
+            ExternalException::class
+        ) -> ErrorStatusInternal.EXTERNAL_EXCEPTION
+        this.isCausedBy(
+            StructConversionException::class
+        ) -> ErrorStatusInternal.STRUCT_CONVERSION_FAILURE
+        this.isCausedBy(
+            InvalidRequestException::class
+        ) -> ErrorStatusInternal.INVALID_REQUEST
+        else -> ErrorStatusInternal.CANCELLED
+    }
 }
\ No newline at end of file
diff --git a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilityTest.kt b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilityTest.kt
index 108565d..a1513d9 100644
--- a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilityTest.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/impl/SingleTurnCapabilityTest.kt
@@ -19,7 +19,6 @@
 import android.util.SizeF
 import androidx.appactions.interaction.capabilities.core.ExecutionCallback
 import androidx.appactions.interaction.capabilities.core.ExecutionCallbackAsync
-import androidx.appactions.interaction.capabilities.core.toExecutionCallback
 import androidx.appactions.interaction.capabilities.core.ExecutionResult
 import androidx.appactions.interaction.capabilities.core.HostProperties
 import androidx.appactions.interaction.capabilities.core.impl.concurrent.Futures
@@ -28,13 +27,13 @@
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
 import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.capabilities.core.properties.StringValue
-import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils
-import androidx.appactions.interaction.capabilities.testing.internal.FakeCallbackInternal
-import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.CB_TIMEOUT
-import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.BLOCKING_TIMEOUT
 import androidx.appactions.interaction.capabilities.core.testing.spec.Arguments
 import androidx.appactions.interaction.capabilities.core.testing.spec.Output
-import androidx.appactions.interaction.capabilities.core.testing.spec.Properties
+import androidx.appactions.interaction.capabilities.core.toExecutionCallback
+import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils
+import androidx.appactions.interaction.capabilities.testing.internal.FakeCallbackInternal
+import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.BLOCKING_TIMEOUT
+import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.CB_TIMEOUT
 import androidx.appactions.interaction.proto.AppActionsContext.AppAction
 import androidx.appactions.interaction.proto.AppActionsContext.IntentParameter
 import androidx.appactions.interaction.proto.FulfillmentResponse
@@ -43,6 +42,7 @@
 import androidx.appactions.interaction.proto.ParamValue
 import androidx.appactions.interaction.proto.TaskInfo
 import com.google.common.truth.Truth.assertThat
+import java.util.Optional
 import kotlinx.coroutines.channels.Channel
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.withTimeoutOrNull
@@ -51,6 +51,7 @@
 import org.junit.runners.JUnit4
 
 @RunWith(JUnit4::class)
+@Suppress("UNCHECKED_CAST")
 class SingleTurnCapabilityTest {
     private val hostProperties =
         HostProperties.Builder().setMaxHostSizeDp(SizeF(300f, 500f)).build()
@@ -62,13 +63,13 @@
         val capability = SingleTurnCapabilityImpl(
             id = "capabilityId",
             actionSpec = ACTION_SPEC,
-            property = Properties.newBuilder()
-                .setRequiredStringField(
-                    Property.Builder<StringValue>().setPossibleValueSupplier(
+            property = mutableMapOf(
+                "requiredEntity" to Property
+                    .Builder<StringValue>()
+                    .setPossibleValueSupplier(
                         mutableEntityList::toList
                     ).build()
-                )
-                .build(),
+            ),
             executionCallback = ExecutionCallback<Arguments, Output> {
                 ExecutionResult.Builder<Output>().build()
             }
@@ -126,17 +127,17 @@
                     )
                     .build()
             }
+        val property = mutableMapOf<String, Property<*>>()
+        property.put(
+            "requiredString",
+            Property.Builder<StringValue>().build()
+        )
+        property.put("optionalString", Property.prohibited<StringValue>())
         val capability =
             SingleTurnCapabilityImpl(
                 id = "capabilityId",
                 actionSpec = ACTION_SPEC,
-                property =
-                Properties.newBuilder()
-                    .setRequiredStringField(
-                        Property.Builder<StringValue>().build()
-                    )
-                    .setOptionalStringField(Property.prohibited())
-                    .build(),
+                property = property,
                 executionCallback = executionCallback
             )
 
@@ -181,20 +182,20 @@
     }
 
     @Test
-    fun oneShotCapability_failure() {
+    fun oneShotCapability_exceptionInExecutionCallback() {
         val executionCallback =
             ExecutionCallback<Arguments, Output> { throw IllegalStateException("") }
+        val property = mutableMapOf<String, Property<*>>()
+        property.put(
+            "requiredString",
+            Property.Builder<StringValue>().build()
+        )
+        property.put("optionalString", Property.prohibited<StringValue>())
         val capability =
             SingleTurnCapabilityImpl(
                 id = "capabilityId",
                 actionSpec = ACTION_SPEC,
-                property =
-                Properties.newBuilder()
-                    .setRequiredStringField(
-                        Property.Builder<StringValue>().build()
-                    )
-                    .setOptionalStringField(Property.prohibited())
-                    .build(),
+                property = property,
                 executionCallback = executionCallback
             )
 
@@ -212,23 +213,23 @@
 
         val response = callbackInternal.receiveResponse()
         assertThat(response.errorStatus).isNotNull()
-        assertThat(response.errorStatus).isEqualTo(ErrorStatusInternal.CANCELLED)
+        assertThat(response.errorStatus).isEqualTo(ErrorStatusInternal.EXTERNAL_EXCEPTION)
     }
 
     @Test
     fun oneShotSession_uiHandle_withExecutionCallback() {
         val executionCallback =
             ExecutionCallback<Arguments, Output> { ExecutionResult.Builder<Output>().build() }
+        val property = mutableMapOf<String, Property<*>>()
+        property.put(
+            "requiredString",
+            Property.Builder<StringValue>().build()
+        )
         val capability =
             SingleTurnCapabilityImpl(
                 id = "capabilityId",
                 actionSpec = ACTION_SPEC,
-                property =
-                Properties.newBuilder()
-                    .setRequiredStringField(
-                        Property.Builder<StringValue>().build()
-                    )
-                    .build(),
+                property = property,
                 executionCallback = executionCallback
             )
         val session = capability.createSession(fakeSessionId, hostProperties)
@@ -241,16 +242,16 @@
             ExecutionCallbackAsync<Arguments, Output> {
                 Futures.immediateFuture(ExecutionResult.Builder<Output>().build())
             }
+        val property = mutableMapOf<String, Property<*>>()
+        property.put(
+            "requiredString",
+            Property.Builder<StringValue>().build()
+        )
         val capability =
             SingleTurnCapabilityImpl(
                 id = "capabilityId",
                 actionSpec = ACTION_SPEC,
-                property =
-                Properties.newBuilder()
-                    .setRequiredStringField(
-                        Property.Builder<StringValue>().build()
-                    )
-                    .build(),
+                property = property,
                 executionCallback = executionCallbackAsync.toExecutionCallback()
             )
         val session = capability.createSession(fakeSessionId, hostProperties)
@@ -266,12 +267,15 @@
             argumentChannel.send(it)
             executionResultChannel.receive()
         }
+        val property = mutableMapOf<String, Property<*>>()
+        property.put(
+            "requiredString",
+            Property.Builder<StringValue>().build()
+        )
         val capability = SingleTurnCapabilityImpl(
             id = "capabilityId",
             actionSpec = ACTION_SPEC,
-            property = Properties.newBuilder().setRequiredStringField(
-                Property.Builder<StringValue>().build()
-            ).build(),
+            property = property,
             executionCallback = executionCallback
         )
         val session1 = capability.createSession("session1", hostProperties)
@@ -322,23 +326,27 @@
     }
 
     companion object {
-        val ACTION_SPEC: ActionSpec<Properties, Arguments, Output> =
+        val ACTION_SPEC: ActionSpec<Arguments, Output> =
             ActionSpecBuilder.ofCapabilityNamed(
                 "actions.intent.TEST"
             )
-                .setDescriptor(Properties::class.java)
                 .setArguments(Arguments::class.java, Arguments::newBuilder)
                 .setOutput(Output::class.java)
                 .bindParameter(
                     "requiredString",
-                    Properties::requiredStringField,
+                    { properties -> properties["requiredEntity"] as Property<StringValue>? },
                     Arguments.Builder::setRequiredStringField,
                     TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                     TypeConverters.STRING_VALUE_ENTITY_CONVERTER
                 )
                 .bindOptionalParameter(
                     "optionalString",
-                    Properties::optionalStringField,
+                    { properties ->
+                        properties["optionalString"]
+                            ?.let { it as Property<StringValue> }
+                            ?.let { Optional.of(it) }
+                            ?: Optional.ofNullable(null)
+                    },
                     Arguments.Builder::setOptionalStringField,
                     TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                     TypeConverters.STRING_VALUE_ENTITY_CONVERTER
diff --git a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecTest.java b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecTest.java
index 364bb86..6b7243a 100644
--- a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecTest.java
+++ b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/impl/spec/ActionSpecTest.java
@@ -38,32 +38,46 @@
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 
-@RunWith(JUnit4.class)
-public final class ActionSpecTest {
 
-    private static final ActionSpec<Properties, Arguments, Output> ACTION_SPEC =
+@RunWith(JUnit4.class)
+@SuppressWarnings("unchecked")
+public final class ActionSpecTest {
+    private static final ActionSpec<Arguments, Output> ACTION_SPEC =
             ActionSpecBuilder.ofCapabilityNamed("actions.intent.TEST")
-                    .setDescriptor(Properties.class)
                     .setArguments(Arguments.class, Arguments::newBuilder)
                     .setOutput(Output.class)
                     .bindParameter(
                             "requiredString",
-                            Properties::requiredStringField,
+                            properties ->
+                            {
+                                return (Property<StringValue>) (properties.get(
+                                        "requiredString"));
+                            },
                             Arguments.Builder::setRequiredStringField,
                             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                             TypeConverters.STRING_VALUE_ENTITY_CONVERTER)
                     .bindOptionalParameter(
                             "optionalString",
-                            Properties::optionalStringField,
+                            properties ->
+                            {
+                                return Optional.ofNullable((Property<StringValue>) (properties.get(
+                                        "optionalString")));
+                            },
                             Arguments.Builder::setOptionalStringField,
                             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                             TypeConverters.STRING_VALUE_ENTITY_CONVERTER)
                     .bindRepeatedParameter(
                             "repeatedString",
-                            Properties::repeatedStringField,
+                            properties ->
+                            {
+                                return Optional.ofNullable((Property<StringValue>) (properties.get(
+                                        "repeatedString")));
+                            },
                             Arguments.Builder::setRepeatedStringField,
                             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                             TypeConverters.STRING_VALUE_ENTITY_CONVERTER)
@@ -96,49 +110,61 @@
                             .setName(theString)
                             .build();
 
-    private static final ActionSpec<GenericEntityProperty, GenericEntityArguments, Output>
+    private static final ActionSpec<GenericEntityArguments, Output>
             GENERIC_TYPES_ACTION_SPEC =
-                    ActionSpecBuilder.ofCapabilityNamed("actions.intent.TEST")
-                            .setDescriptor(GenericEntityProperty.class)
-                            .setArguments(GenericEntityArguments.class,
-                                    GenericEntityArguments::newBuilder)
-                            .setOutput(Output.class)
-                            .bindParameter(
-                                    "requiredEntity",
-                                    GenericEntityProperty::singularField,
-                                    GenericEntityArguments.Builder::setSingularField,
-                                    STRING_PARAM_VALUE_CONVERTER,
-                                    STRING_ENTITY_CONVERTER)
-                            .bindOptionalParameter("optionalEntity",
-                                    GenericEntityProperty::optionalField,
-                                    GenericEntityArguments.Builder::setOptionalField,
-                                    STRING_PARAM_VALUE_CONVERTER,
-                                    STRING_ENTITY_CONVERTER)
-                            .bindRepeatedParameter("repeatedEntities",
-                                    GenericEntityProperty::repeatedField,
-                                    GenericEntityArguments.Builder::setRepeatedField,
-                                    STRING_PARAM_VALUE_CONVERTER,
-                                    STRING_ENTITY_CONVERTER)
-                            .build();
+            ActionSpecBuilder.ofCapabilityNamed("actions.intent.TEST")
+                    .setArguments(GenericEntityArguments.class,
+                            GenericEntityArguments::newBuilder)
+                    .setOutput(Output.class)
+                    .bindParameter(
+                            "requiredEntity",
+                            properties ->
+                            {
+                                return (Property<String>) (properties.get(
+                                        "requiredEntity"));
+                            },
+                            GenericEntityArguments.Builder::setSingularField,
+                            STRING_PARAM_VALUE_CONVERTER,
+                            STRING_ENTITY_CONVERTER)
+                    .bindOptionalParameter("optionalEntity",
+                            properties ->
+                            {
+                                return Optional.of((Property<String>) (properties.get(
+                                        "optionalEntity")));
+                            },
+                            GenericEntityArguments.Builder::setOptionalField,
+                            STRING_PARAM_VALUE_CONVERTER,
+                            STRING_ENTITY_CONVERTER)
+                    .bindRepeatedParameter("repeatedEntities",
+                            properties ->
+                            {
+                                return Optional.of((Property<String>) (properties.get(
+                                        "repeatedEntities")));
+                            },
+                            GenericEntityArguments.Builder::setRepeatedField,
+                            STRING_PARAM_VALUE_CONVERTER,
+                            STRING_ENTITY_CONVERTER)
+                    .build();
 
     @Test
     public void getAppAction_genericParameters() {
-        GenericEntityProperty property =
-                GenericEntityProperty.create(
-                        new Property.Builder<String>()
-                                .setRequired(true)
-                                .setPossibleValues("one")
-                                .build(),
-                        Optional.of(
-                                new Property.Builder<String>()
-                                        .setRequired(true)
-                                        .setPossibleValues("two")
-                                        .build()),
-                        Optional.of(
-                                new Property.Builder<String>()
-                                        .setRequired(true)
-                                        .setPossibleValues("three")
-                                        .build()));
+        Map<String, Property<?>> property = new HashMap<>();
+        property.put("requiredEntity",
+                new Property.Builder<String>()
+                        .setRequired(true)
+                        .setPossibleValues("one")
+                        .build());
+        property.put("optionalEntity",
+                new Property.Builder<String>()
+                        .setRequired(true)
+                        .setPossibleValues("two")
+                        .build()
+        );
+        property.put("repeatedEntities",
+                new Property.Builder<String>()
+                        .setRequired(true)
+                        .setPossibleValues("three")
+                        .build());
 
         assertThat(GENERIC_TYPES_ACTION_SPEC.convertPropertyToProto(property))
                 .isEqualTo(
@@ -176,12 +202,12 @@
 
     @Test
     public void getAppAction_onlyRequiredProperty() {
-        Properties property =
-                Properties.create(
-                        new Property.Builder<StringValue>()
-                                .setPossibleValues(StringValue.of("Donald"))
-                                .setValueMatchRequired(true)
-                                .build());
+        Map<String, Property<?>> property = new HashMap<>();
+        property.put("requiredString",
+                new Property.Builder<StringValue>()
+                        .setPossibleValues(StringValue.of("Donald"))
+                        .setValueMatchRequired(true)
+                        .build());
 
         assertThat(ACTION_SPEC.convertPropertyToProto(property))
                 .isEqualTo(
@@ -201,21 +227,16 @@
 
     @Test
     public void getAppAction_allProperties() {
-        Properties property =
-                Properties.create(
-                        Optional.of(
-                                new Property.Builder<TestEnum>()
-                                        .setPossibleValues(TestEnum.VALUE_1)
-                                        .setRequired(true)
-                                        .build()),
-                        new Property.Builder<StringValue>().build(),
-                        Optional.of(
-                                new Property.Builder<StringValue>()
-                                        .setPossibleValues(StringValue.of("value1"))
-                                        .setValueMatchRequired(true)
-                                        .setRequired(true)
-                                        .build()),
-                        Optional.of(Property.prohibited()));
+        Map<String, Property<?>> property = new HashMap<>();
+        property.put("requiredString",
+                new Property.Builder<StringValue>().build());
+        property.put("optionalString",
+                new Property.Builder<StringValue>()
+                        .setPossibleValues(StringValue.of("value1"))
+                        .setValueMatchRequired(true)
+                        .setRequired(true)
+                        .build());
+        property.put("repeatedString", Property.prohibited());
 
         assertThat(ACTION_SPEC.convertPropertyToProto(property))
                 .isEqualTo(
diff --git a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/task/impl/TaskCapabilityImplTest.kt b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/task/impl/TaskCapabilityImplTest.kt
index 899825b..18c1cab 100644
--- a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/task/impl/TaskCapabilityImplTest.kt
+++ b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/task/impl/TaskCapabilityImplTest.kt
@@ -19,9 +19,11 @@
 import androidx.appactions.builtintypes.experimental.types.ListItem
 import androidx.appactions.interaction.capabilities.core.AppEntityListener
 import androidx.appactions.interaction.capabilities.core.Capability
+import androidx.appactions.interaction.capabilities.core.ConfirmationOutput
 import androidx.appactions.interaction.capabilities.core.EntitySearchResult
 import androidx.appactions.interaction.capabilities.core.ExecutionResult
 import androidx.appactions.interaction.capabilities.core.HostProperties
+import androidx.appactions.interaction.capabilities.core.SearchAction
 import androidx.appactions.interaction.capabilities.core.SessionConfig
 import androidx.appactions.interaction.capabilities.core.ValidationResult
 import androidx.appactions.interaction.capabilities.core.ValueListener
@@ -33,10 +35,11 @@
 import androidx.appactions.interaction.capabilities.core.impl.converters.SearchActionConverter
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters.LIST_ITEM_TYPE_SPEC
+import androidx.appactions.interaction.capabilities.core.impl.converters.TypeSpec
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpec
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
-import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import androidx.appactions.interaction.capabilities.core.testing.spec.Arguments
 import androidx.appactions.interaction.capabilities.core.testing.spec.CapabilityStructFill
 import androidx.appactions.interaction.capabilities.core.testing.spec.CapabilityTwoStrings
@@ -44,9 +47,6 @@
 import androidx.appactions.interaction.capabilities.core.testing.spec.ExecutionSession
 import androidx.appactions.interaction.capabilities.core.testing.spec.Output
 import androidx.appactions.interaction.capabilities.core.testing.spec.TestEnum
-import androidx.appactions.interaction.capabilities.core.testing.spec.Properties
-import androidx.appactions.interaction.capabilities.core.SearchAction
-import androidx.appactions.interaction.capabilities.core.impl.converters.TypeSpec
 import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils.buildRequestArgs
 import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils.buildSearchActionParamValue
 import androidx.appactions.interaction.capabilities.testing.internal.FakeCallbackInternal
@@ -59,6 +59,7 @@
 import androidx.appactions.interaction.proto.DisambiguationData
 import androidx.appactions.interaction.proto.Entity
 import androidx.appactions.interaction.proto.FulfillmentRequest.Fulfillment.Type.CANCEL
+import androidx.appactions.interaction.proto.FulfillmentRequest.Fulfillment.Type
 import androidx.appactions.interaction.proto.FulfillmentRequest.Fulfillment.Type.SYNC
 import androidx.appactions.interaction.proto.FulfillmentRequest.Fulfillment.Type.UNKNOWN_TYPE
 import androidx.appactions.interaction.proto.FulfillmentResponse.StructuredOutput
@@ -69,16 +70,18 @@
 import androidx.concurrent.futures.CallbackToFutureAdapter.Completer
 import com.google.common.truth.Truth.assertThat
 import com.google.common.util.concurrent.ListenableFuture
+import java.util.Optional
+import java.util.concurrent.atomic.AtomicInteger
+import java.util.concurrent.atomic.AtomicReference
+import java.util.function.Supplier
 import kotlinx.coroutines.CompletableDeferred
 import kotlinx.coroutines.runBlocking
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
-import java.util.concurrent.atomic.AtomicInteger
-import java.util.concurrent.atomic.AtomicReference
-import java.util.function.Supplier
 
 @RunWith(JUnit4::class)
+@Suppress("UNCHECKED_CAST")
 class TaskCapabilityImplTest {
     private val capability: Capability =
         createCapability<EmptyTaskUpdater>(
@@ -122,13 +125,13 @@
     fun appAction_computedProperty() {
         val mutableEntityList = mutableListOf<StringValue>()
         val capability = createCapability<EmptyTaskUpdater>(
-            Properties.newBuilder()
-                .setRequiredStringField(
-                    Property.Builder<StringValue>()
-                        .setPossibleValueSupplier(mutableEntityList::toList)
-                        .build()
-                )
-                .build(),
+            mutableMapOf(
+                "required" to Property
+                    .Builder<StringValue>()
+                    .setPossibleValueSupplier(
+                        mutableEntityList::toList
+                    ).build()
+            ),
             sessionFactory =
             {
                 object : ExecutionSession {
@@ -346,26 +349,21 @@
         val callback = FakeCallbackInternal()
         session.execute(buildRequestArgs(UNKNOWN_TYPE), callback)
         assertThat(callback.receiveResponse().errorStatus)
-            .isEqualTo(ErrorStatusInternal.INVALID_REQUEST_TYPE)
+            .isEqualTo(ErrorStatusInternal.INVALID_REQUEST)
     }
 
     @Test
     fun slotFilling_isActive_smokeTest() {
-        val property: CapabilityTwoStrings.Properties =
-            CapabilityTwoStrings.Properties.newBuilder()
-                .setStringSlotA(
-                    Property.Builder<StringValue>()
-                        .setRequired(true)
-                        .build()
-                )
-                .setStringSlotB(
-                    Property.Builder<StringValue>()
-                        .setRequired(true)
-                        .build()
-                )
-                .build()
+        val property = mapOf(
+            "stringSlotA" to Property.Builder<StringValue>()
+                .setRequired(true)
+                .build(),
+            "stringSlotB" to Property.Builder<StringValue>()
+                .setRequired(true)
+                .build(),
+        )
         val sessionFactory:
-            (hostProperties: HostProperties?) -> CapabilityTwoStrings.ExecutionSession =
+                (hostProperties: HostProperties?) -> CapabilityTwoStrings.ExecutionSession =
             { _ ->
                 object : CapabilityTwoStrings.ExecutionSession {
                     override suspend fun onExecute(
@@ -435,7 +433,6 @@
             buildRequestArgs(CANCEL),
             callback3
         )
-        assertThat(callback3.receiveResponse().fulfillmentResponse).isNotNull()
         assertThat(session.isActive).isFalse()
     }
 
@@ -443,25 +440,16 @@
     @kotlin.Throws(Exception::class)
     fun slotFilling_optionalButRejectedParam_onFinishNotInvoked() {
         val onExecuteInvocationCount = AtomicInteger(0)
-        val property: CapabilityTwoStrings.Properties =
-            CapabilityTwoStrings.Properties.newBuilder()
-                .setStringSlotA(
-                    Property.Builder<
-                        StringValue
-                        >()
-                        .setRequired(true)
-                        .build()
-                )
-                .setStringSlotB(
-                    Property.Builder<
-                        StringValue
-                        >()
-                        .setRequired(false)
-                        .build()
-                )
-                .build()
+        val property = mapOf(
+            "stringSlotA" to Property.Builder<StringValue>()
+                .setRequired(true)
+                .build(),
+            "stringSlotB" to Property.Builder<StringValue>()
+                .setRequired(false)
+                .build(),
+        )
         val sessionFactory:
-            (hostProperties: HostProperties?) -> CapabilityTwoStrings.ExecutionSession =
+                (hostProperties: HostProperties?) -> CapabilityTwoStrings.ExecutionSession =
             { _ ->
                 object : CapabilityTwoStrings.ExecutionSession {
                     override suspend fun onExecute(
@@ -535,22 +523,16 @@
     @Test
     @kotlin.Throws(Exception::class)
     fun slotFilling_assistantRemovedParam_clearInSdkState() {
-        val property: Properties =
-            Properties.newBuilder()
-                .setRequiredStringField(
-                    Property.Builder<
-                        StringValue
-                        >()
-                        .setRequired(true)
-                        .build()
-                )
-                .setEnumField(
-                    Property.Builder<TestEnum>()
-                        .setPossibleValues(TestEnum.VALUE_1, TestEnum.VALUE_2)
-                        .setRequired(true)
-                        .build()
-                )
-                .build()
+        val property = mapOf(
+            "required" to
+                Property.Builder<StringValue>()
+                    .setRequired(true)
+                    .build(),
+            "optionalEnum" to Property.Builder<TestEnum>()
+                .setPossibleValues(TestEnum.VALUE_1, TestEnum.VALUE_2)
+                .setRequired(true)
+                .build(),
+        )
         val capability: Capability =
             createCapability(
                 property,
@@ -736,11 +718,16 @@
     @kotlin.Throws(Exception::class)
     @Suppress("DEPRECATION") // TODO(b/269638788) migrate session state to AppDialogState message
     fun identifierOnly_refillsStruct() = runBlocking<Unit> {
-        val property: CapabilityStructFill.Properties =
-            CapabilityStructFill.Properties.newBuilder()
-                .setListItem(Property.Builder<ListItem>().setRequired(true).build())
-                .setAnyString(Property.Builder<StringValue>().setRequired(true).build())
-                .build()
+        val property = mapOf(
+            "listItem" to Property.Builder<
+                ListItem,
+                >()
+                .setRequired(true)
+                .build(),
+            "anyString" to Property.Builder<StringValue>()
+                .setRequired(true)
+                .build(),
+        )
         val item1: ListItem = ListItem.Builder().setName("red apple").setIdentifier("item1").build()
         val item2: ListItem =
             ListItem.Builder().setName("green apple").setIdentifier("item2").build()
@@ -749,7 +736,7 @@
         val onExecuteStringDeferred = CompletableDeferred<String>()
 
         val sessionFactory:
-            (hostProperties: HostProperties?) -> CapabilityStructFill.ExecutionSession =
+                (hostProperties: HostProperties?) -> CapabilityStructFill.ExecutionSession =
             { _ ->
                 object : CapabilityStructFill.ExecutionSession {
                     override suspend fun onExecute(
@@ -788,7 +775,7 @@
                 TaskHandler.Builder<Void>()
                     .registerAppEntityTaskParam(
                         "listItem",
-                        session.getListItemListener(),
+                        session.listItemListener,
                         ParamValueConverter.of(LIST_ITEM_TYPE_SPEC),
                         EntityConverter.of(LIST_ITEM_TYPE_SPEC)::convert,
                         getTrivialSearchActionConverter()
@@ -938,10 +925,10 @@
         assertThat(
             callback.receiveResponse()
                 .fulfillmentResponse!!
-                .getExecutionOutput()
-                .getOutputValuesList()
+                .executionOutput
+                .outputValuesList
         )
-            .containsExactlyElementsIn(expectedOutput.getOutputValuesList())
+            .containsExactlyElementsIn(expectedOutput.outputValuesList)
     }
 
     @Test
@@ -973,6 +960,158 @@
         assertThat(callback.receiveResponse().fulfillmentResponse!!.startDictation).isTrue()
     }
 
+    @Test
+    @kotlin.Throws(Exception::class)
+    fun fulfillmentType_finalSync_stateCleared() {
+        val sessionFactory: (hostProperties: HostProperties?) -> ExecutionSession =
+            { _ ->
+                object : ExecutionSession {
+                    override suspend fun onExecute(arguments: Arguments) =
+                        ExecutionResult.Builder<Output>().build()
+                }
+            }
+        val property = mapOf(
+            "required" to Property.Builder<StringValue>().setRequired(true).build()
+        )
+        val capability: Capability =
+            createCapability(
+                property,
+                sessionFactory = sessionFactory,
+                sessionBridge = SessionBridge { TaskHandler.Builder<Confirmation>().build() },
+                sessionUpdaterSupplier = ::EmptyTaskUpdater,
+            )
+        val session = capability.createSession(fakeSessionId, hostProperties)
+
+        // TURN 1. Not providing all the required slots in the SYNC Request
+        val callback = FakeCallbackInternal()
+        session.execute(
+            buildRequestArgs(SYNC),
+            callback,
+        )
+        assertThat(callback.receiveResponse()).isNotNull()
+        assertThat(getCurrentValues("required", session.state!!)).isEmpty()
+        assertThat(session.isActive).isEqualTo(true)
+
+        // TURN 2. Providing the required slots so that the task completes and the state gets cleared
+        val callback2 = FakeCallbackInternal()
+        session.execute(
+            buildRequestArgs(SYNC,
+                "required",
+                ParamValue.newBuilder().setIdentifier("foo").setStringValue("foo").build()
+            ),
+            callback2,
+        )
+        assertThat(callback2.receiveResponse().fulfillmentResponse).isNotNull()
+        assertThat(session.isActive).isEqualTo(false)
+    }
+
+    @Test
+    @kotlin.Throws(Exception::class)
+    @Suppress("DEPRECATION") // TODO(b/279830425) implement tryExecute (INTENT_CONFIRMED can be used instead)
+    fun fulfillmentType_syncWithConfirmation_stateClearedAfterConfirmation() {
+        val sessionFactory: (hostProperties: HostProperties?) -> ExecutionSession =
+            { _ ->
+                object : ExecutionSession {
+                    override suspend fun onExecute(arguments: Arguments) =
+                        ExecutionResult.Builder<Output>().build()
+                }
+            }
+        var onReadyToConfirm =
+             object : OnReadyToConfirmListenerInternal<Confirmation> {
+                override suspend fun onReadyToConfirm(args: Map<String, List<ParamValue>>):
+                    ConfirmationOutput<Confirmation> {
+                    return ConfirmationOutput.Builder<Confirmation>()
+                            .setConfirmation(Confirmation.builder().setOptionalStringField("bar")
+                                .build())
+                            .build()
+                }
+            }
+        val property = mapOf(
+            "required" to Property.Builder<StringValue>().setRequired(true).build()
+        )
+        val capability: Capability =
+            createCapability(
+                property,
+                sessionFactory = sessionFactory,
+                sessionBridge = SessionBridge {
+                                    TaskHandler.Builder<Confirmation>()
+                                        .setOnReadyToConfirmListenerInternal(onReadyToConfirm)
+                                        .build() },
+                sessionUpdaterSupplier = ::EmptyTaskUpdater,
+            )
+        val session = capability.createSession(fakeSessionId, hostProperties)
+
+        // TURN 1. Providing all the required slots in the SYNC Request
+        val callback = FakeCallbackInternal()
+        session.execute(
+            buildRequestArgs(SYNC,
+                "required",
+                ParamValue.newBuilder().setIdentifier("foo").setStringValue("foo").build()
+            ),
+            callback,
+        )
+        assertThat(callback.receiveResponse()).isNotNull()
+        assertThat(session.isActive).isEqualTo(true)
+
+        // Sending the confirmation request. After the confirm request, the session should not be
+        // active
+        val callback2 = FakeCallbackInternal()
+        session.execute(
+            buildRequestArgs(Type.CONFIRM),
+            callback2
+        )
+
+        assertThat(callback2.receiveResponse().fulfillmentResponse).isNotNull()
+        assertThat(session.isActive).isEqualTo(false)
+    }
+
+    @Test
+    fun fulfillmentRequest_whenStatusDestroyed_errorReported() {
+        val sessionFactory: (hostProperties: HostProperties?) -> ExecutionSession =
+            { _ ->
+                object : ExecutionSession {
+                    override suspend fun onExecute(arguments: Arguments) =
+                        ExecutionResult.Builder<Output>().build()
+                }
+            }
+        val property = mapOf(
+            "required" to Property.Builder<StringValue>().setRequired(true).build()
+        )
+        val capability: Capability =
+            createCapability(
+                property,
+                sessionFactory = sessionFactory,
+                sessionBridge = SessionBridge { TaskHandler.Builder<Confirmation>().build() },
+                sessionUpdaterSupplier = ::EmptyTaskUpdater,
+            )
+        val session = capability.createSession(fakeSessionId, hostProperties)
+
+        // TURN 1. Providing the required slots so that the task completes and the state gets cleared
+        val callback = FakeCallbackInternal()
+        session.execute(
+            buildRequestArgs(SYNC,
+                "required",
+                ParamValue.newBuilder().setIdentifier("foo").setStringValue("foo").build()
+            ),
+            callback,
+        )
+        assertThat(callback.receiveResponse().fulfillmentResponse).isNotNull()
+        assertThat(session.isActive).isEqualTo(false)
+
+        // TURN 2. Trying to sync after the session is destroyed
+        val callback2 = FakeCallbackInternal()
+        session.execute(
+            buildRequestArgs(SYNC,
+                "required",
+                ParamValue.newBuilder().setIdentifier("foo").setStringValue("foo").build()
+            ),
+            callback2,
+        )
+        assertThat(session.isActive).isEqualTo(false)
+        assertThat(callback2.receiveResponse().errorStatus)
+            .isEqualTo(ErrorStatusInternal.SESSION_ALREADY_DESTROYED)
+    }
+
     /**
      * an implementation of Capability.Builder using Argument. Output, etc. defined under
      * testing/spec
@@ -980,7 +1119,6 @@
     class CapabilityBuilder :
         Capability.Builder<
             CapabilityBuilder,
-            Properties,
             Arguments,
             Output,
             Confirmation,
@@ -994,10 +1132,6 @@
         override val sessionBridge: SessionBridge<ExecutionSession, Confirmation> = SessionBridge {
             TaskHandler.Builder<Confirmation>().build()
         }
-
-        public override fun setExecutionSessionFactory(
-            sessionFactory: (hostProperties: HostProperties?) -> ExecutionSession,
-        ): CapabilityBuilder = super.setExecutionSessionFactory(sessionFactory)
     }
 
     companion object {
@@ -1054,37 +1188,55 @@
                     return ParamValue.newBuilder().build()
                 }
             }
-        private val ACTION_SPEC: ActionSpec<Properties, Arguments, Output> =
+        private val ACTION_SPEC: ActionSpec<Arguments, Output> =
             ActionSpecBuilder.ofCapabilityNamed(
                 CAPABILITY_NAME
             )
-                .setDescriptor(Properties::class.java)
                 .setArguments(Arguments::class.java, Arguments::newBuilder)
                 .setOutput(Output::class.java)
                 .bindParameter(
                     "required",
-                    Properties::requiredStringField,
+                    { properties ->
+                        properties["required"]
+                            as
+                            Property<StringValue>?
+                    },
                     Arguments.Builder::setRequiredStringField,
                     TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                     TypeConverters.STRING_VALUE_ENTITY_CONVERTER
                 )
                 .bindOptionalParameter(
                     "optional",
-                    Properties::optionalStringField,
+                    { properties ->
+                        properties["optional"]
+                            ?.let { it as Property<StringValue> }
+                            ?.let { Optional.of(it) }
+                            ?: Optional.ofNullable(null)
+                    },
                     Arguments.Builder::setOptionalStringField,
                     TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                     TypeConverters.STRING_VALUE_ENTITY_CONVERTER
                 )
                 .bindOptionalParameter(
                     "optionalEnum",
-                    Properties::enumField,
+                    { properties ->
+                        properties["optionalEnum"]
+                            ?.let { it as Property<TestEnum> }
+                            ?.let { Optional.of(it) }
+                            ?: Optional.ofNullable(null)
+                    },
                     Arguments.Builder::setEnumField,
                     ENUM_CONVERTER,
                     { Entity.newBuilder().setIdentifier(it.toString()).build() }
                 )
                 .bindRepeatedParameter(
                     "repeated",
-                    Properties::repeatedStringField,
+                    { properties ->
+                        properties["repeated"]
+                            ?.let { it as Property<StringValue> }
+                            ?.let { Optional.of(it) }
+                            ?: Optional.ofNullable(null)
+                    },
                     Arguments.Builder::setRepeatedStringField,
                     TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                     TypeConverters.STRING_VALUE_ENTITY_CONVERTER
@@ -1101,26 +1253,23 @@
                 )
                 .build()
 
-        private val SINGLE_REQUIRED_FIELD_PROPERTY: Properties =
-            Properties.newBuilder()
-                .setRequiredStringField(
-                    Property.Builder<StringValue>()
-                        .setRequired(true)
-                        .build()
-                )
+        private val SINGLE_REQUIRED_FIELD_PROPERTY = mapOf(
+            "required" to Property.Builder<StringValue>()
+                .setRequired(true)
                 .build()
+        )
 
         private fun getCurrentValues(
             argName: String,
             appDialogState: AppDialogState
         ): List<CurrentValue> {
             return appDialogState
-                .getParamsList()
+                .paramsList
                 .stream()
-                .filter { dialogParam -> dialogParam.getName().equals(argName) }
+                .filter { dialogParam -> dialogParam.name.equals(argName) }
                 .findFirst()
                 .orElse(DialogParameter.getDefaultInstance())
-                .getCurrentValueList()
+                .currentValueList
         }
 
         /**
@@ -1128,12 +1277,11 @@
          * etc., defined under ../../testing/spec
          */
         private fun <SessionUpdaterT : AbstractTaskUpdater> createCapability(
-            property: Properties,
+            property: Map<String, Property<*>>,
             sessionFactory: (hostProperties: HostProperties?) -> ExecutionSession,
             sessionBridge: SessionBridge<ExecutionSession, Confirmation>,
             sessionUpdaterSupplier: Supplier<SessionUpdaterT>
         ): TaskCapabilityImpl<
-            Properties,
             Arguments,
             Output,
             ExecutionSession,
diff --git a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/testing/spec/CapabilityStructFill.java b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/testing/spec/CapabilityStructFill.java
index a2317c7..586145d 100644
--- a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/testing/spec/CapabilityStructFill.java
+++ b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/testing/spec/CapabilityStructFill.java
@@ -36,22 +36,30 @@
 import java.util.Optional;
 
 /** Used to test the filling behavior of structured entities (e.g. ListItem) */
+@SuppressWarnings("unchecked")
 public final class CapabilityStructFill {
 
     private static final String CAPABILITY_NAME = "actions.intent.TEST";
-    public static final ActionSpec<Properties, Arguments, Void> ACTION_SPEC =
+    public static final ActionSpec<Arguments, Void> ACTION_SPEC =
             ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-                    .setDescriptor(Properties.class)
                     .setArguments(Arguments.class, Arguments::newBuilder)
                     .bindOptionalParameter(
                             "listItem",
-                            Properties::listItem,
+                            properties ->
+                            {
+                                return Optional.ofNullable((Property<ListItem>) (properties.get(
+                                        "listItem")));
+                            },
                             Arguments.Builder::setListItem,
                             ParamValueConverter.Companion.of(LIST_ITEM_TYPE_SPEC),
                             EntityConverter.Companion.of(LIST_ITEM_TYPE_SPEC)::convert)
                     .bindOptionalParameter(
                             "string",
-                            Properties::anyString,
+                            properties ->
+                            {
+                                return Optional.ofNullable((Property<StringValue>) (properties.get(
+                                        "anyString")));
+                            },
                             Arguments.Builder::setAnyString,
                             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                             TypeConverters.STRING_VALUE_ENTITY_CONVERTER)
diff --git a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/testing/spec/CapabilityTwoStrings.java b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/testing/spec/CapabilityTwoStrings.java
index 9595d9c..76cf08d 100644
--- a/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/testing/spec/CapabilityTwoStrings.java
+++ b/appactions/interaction/interaction-capabilities-core/src/test/java/androidx/appactions/interaction/capabilities/core/testing/spec/CapabilityTwoStrings.java
@@ -29,22 +29,29 @@
 
 import java.util.Optional;
 
+@SuppressWarnings("unchecked")
 public final class CapabilityTwoStrings {
-
     private static final String CAPABILITY_NAME = "actions.intent.TEST";
-    public static final ActionSpec<Properties, Arguments, Void> ACTION_SPEC =
+    public static final ActionSpec<Arguments, Void> ACTION_SPEC =
             ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-                    .setDescriptor(Properties.class)
                     .setArguments(Arguments.class, Arguments::newBuilder)
                     .bindOptionalParameter(
                             "stringSlotA",
-                            Properties::stringSlotA,
+                            properties -> {
+                                return Optional.ofNullable(
+                                        (Property<StringValue>) properties.get("stringSlotA")
+                                );
+                            },
                             Arguments.Builder::setStringSlotA,
                             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                             TypeConverters.STRING_VALUE_ENTITY_CONVERTER)
                     .bindOptionalParameter(
                             "stringSlotB",
-                            Properties::stringSlotB,
+                            properties -> {
+                                return Optional.ofNullable(
+                                        (Property<StringValue>) properties.get("stringSlotB")
+                                );
+                            },
                             Arguments.Builder::setStringSlotB,
                             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
                             TypeConverters.STRING_VALUE_ENTITY_CONVERTER)
diff --git a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/GetExerciseObservation.kt b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/GetExerciseObservation.kt
index 66f19fa..d530c21 100644
--- a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/GetExerciseObservation.kt
+++ b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/GetExerciseObservation.kt
@@ -16,8 +16,8 @@
 
 package androidx.appactions.interaction.capabilities.fitness.fitness
 
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.CapabilityFactory
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
@@ -30,24 +30,34 @@
 private const val CAPABILITY_NAME = "actions.intent.START_EXERCISE"
 
 // TODO(b/273602015): Update to use Name property from builtintype library.
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(GetExerciseObservation.Properties::class.java)
         .setArguments(
             GetExerciseObservation.Arguments::class.java,
             GetExerciseObservation.Arguments::Builder
         )
         .setOutput(GetExerciseObservation.Output::class.java)
         .bindOptionalParameter(
-            "healthObservation.startTime",
-            { property -> Optional.ofNullable(property.startTime) },
+            "exerciseObservation.startTime",
+            { properties ->
+                Optional.ofNullable(
+                    properties[GetExerciseObservation.PropertyMapStrings.START_TIME.key]
+                        as Property<LocalTime>
+                )
+            },
             GetExerciseObservation.Arguments.Builder::setStartTime,
             TypeConverters.LOCAL_TIME_PARAM_VALUE_CONVERTER,
             TypeConverters.LOCAL_TIME_ENTITY_CONVERTER
         )
         .bindOptionalParameter(
-            "healthObservation.endTime",
-            { property -> Optional.ofNullable(property.endTime) },
+            "exerciseObservation.endTime",
+            { properties ->
+                Optional.ofNullable(
+                    properties[GetExerciseObservation.PropertyMapStrings.END_TIME.key]
+                        as Property<LocalTime>
+                )
+            },
             GetExerciseObservation.Arguments.Builder::setEndTime,
             TypeConverters.LOCAL_TIME_PARAM_VALUE_CONVERTER,
             TypeConverters.LOCAL_TIME_ENTITY_CONVERTER
@@ -56,64 +66,26 @@
 
 @CapabilityFactory(name = CAPABILITY_NAME)
 class GetExerciseObservation private constructor() {
-    class CapabilityBuilder :
-        Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-            >(ACTION_SPEC) {
-        private var propertyBuilder: Properties.Builder = Properties.Builder()
-        fun setStartTimeProperty(startTime: Property<LocalTime>): CapabilityBuilder = apply {
-            propertyBuilder.setEndTime(startTime)
-        }
-
-        fun setEndTimeProperty(endTime: Property<LocalTime>): CapabilityBuilder = apply {
-            propertyBuilder.setEndTime(endTime)
-        }
-
-        override fun build(): Capability {
-            // TODO(b/268369632): Clean this up after Property is removed
-            super.setProperty(propertyBuilder.build())
-            return super.build()
-        }
+    internal enum class PropertyMapStrings(val key: String) {
+        START_TIME("exerciseObservation.startTime"),
+        END_TIME("exerciseObservation.endTime"),
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(
-        val startTime: Property<LocalTime>?,
-        val endTime: Property<LocalTime>?
-    ) {
-        override fun toString(): String {
-            return "Property(startTime=$startTime, endTime=$endTime)"
-        }
+    class CapabilityBuilder :
+        Capability.Builder<
+            CapabilityBuilder, Arguments, Output, Confirmation, ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
 
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass !== other?.javaClass) return false
+        fun setStartTime(startTime: Property<LocalTime>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.START_TIME.key] = startTime }
 
-            other as Properties
+        fun setEndTime(endTime: Property<LocalTime>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.END_TIME.key] = endTime }
 
-            if (startTime != other.startTime) return false
-            if (endTime != other.endTime) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            var result = startTime.hashCode()
-            result += 31 * endTime.hashCode()
-            return result
-        }
-
-        class Builder {
-            private var startTime: Property<LocalTime>? = null
-            private var endTime: Property<LocalTime>? = null
-
-            fun setStartTime(startTime: Property<LocalTime>): Builder =
-                apply { this.startTime = startTime }
-
-            fun setEndTime(endTime: Property<LocalTime>): Builder =
-                apply { this.endTime = endTime }
-
-            fun build(): Properties = Properties(startTime, endTime)
+        override fun build(): Capability {
+            super.setProperty(properties)
+            return super.build()
         }
     }
 
diff --git a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/GetHealthObservation.kt b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/GetHealthObservation.kt
index df9e344..c7482e1 100644
--- a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/GetHealthObservation.kt
+++ b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/GetHealthObservation.kt
@@ -16,8 +16,8 @@
 
 package androidx.appactions.interaction.capabilities.fitness.fitness
 
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.CapabilityFactory
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
@@ -30,24 +30,34 @@
 private const val CAPABILITY_NAME = "actions.intent.START_EXERCISE"
 
 // TODO(b/273602015): Update to use Name property from builtintype library.
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(GetHealthObservation.Properties::class.java)
         .setArguments(
             GetHealthObservation.Arguments::class.java,
             GetHealthObservation.Arguments::Builder
         )
         .setOutput(GetHealthObservation.Output::class.java)
         .bindOptionalParameter(
-            "exerciseObservation.startTime",
-            { property -> Optional.ofNullable(property.startTime) },
+            "healthObservation.startTime",
+            { properties ->
+                Optional.ofNullable(
+                    properties[GetHealthObservation.PropertyMapStrings.START_TIME.key]
+                        as Property<LocalTime>
+                )
+            },
             GetHealthObservation.Arguments.Builder::setStartTime,
             TypeConverters.LOCAL_TIME_PARAM_VALUE_CONVERTER,
             TypeConverters.LOCAL_TIME_ENTITY_CONVERTER
         )
         .bindOptionalParameter(
-            "exerciseObservation.endTime",
-            { property -> Optional.ofNullable(property.endTime) },
+            "healthObservation.endTime",
+            { properties ->
+                Optional.ofNullable(
+                    properties[GetHealthObservation.PropertyMapStrings.END_TIME.key]
+                        as Property<LocalTime>
+                )
+            },
             GetHealthObservation.Arguments.Builder::setEndTime,
             TypeConverters.LOCAL_TIME_PARAM_VALUE_CONVERTER,
             TypeConverters.LOCAL_TIME_ENTITY_CONVERTER
@@ -56,64 +66,30 @@
 
 @CapabilityFactory(name = CAPABILITY_NAME)
 class GetHealthObservation private constructor() {
-    class CapabilityBuilder :
-        Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-            >(ACTION_SPEC) {
-        private var propertyBuilder: Properties.Builder = Properties.Builder()
-        fun setStartTimeProperty(startTime: Property<LocalTime>): CapabilityBuilder = apply {
-            propertyBuilder.setEndTime(startTime)
-        }
-
-        fun setEndTimeProperty(endTime: Property<LocalTime>): CapabilityBuilder = apply {
-            propertyBuilder.setEndTime(endTime)
-        }
-
-        override fun build(): Capability {
-            // TODO(b/268369632): Clean this up after Property is removed
-            super.setProperty(propertyBuilder.build())
-            return super.build()
-        }
+    internal enum class PropertyMapStrings(val key: String) {
+        START_TIME("healthObservation.startTime"),
+        END_TIME("healthObservation.endTime"),
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(
-        val startTime: Property<LocalTime>?,
-        val endTime: Property<LocalTime>?
-    ) {
-        override fun toString(): String {
-            return "Property(startTime=$startTime, endTime=$endTime)"
-        }
+    class CapabilityBuilder :
+        Capability.Builder<
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
 
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass !== other?.javaClass) return false
+        fun setStartTime(startTime: Property<LocalTime>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.START_TIME.key] = startTime }
 
-            other as Properties
+        fun setEndTime(endTime: Property<LocalTime>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.END_TIME.key] = endTime }
 
-            if (startTime != other.startTime) return false
-            if (endTime != other.endTime) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            var result = startTime.hashCode()
-            result += 31 * endTime.hashCode()
-            return result
-        }
-
-        class Builder {
-            private var startTime: Property<LocalTime>? = null
-            private var endTime: Property<LocalTime>? = null
-
-            fun setStartTime(startTime: Property<LocalTime>): Builder =
-                apply { this.startTime = startTime }
-
-            fun setEndTime(endTime: Property<LocalTime>): Builder =
-                apply { this.endTime = endTime }
-
-            fun build(): Properties = Properties(startTime, endTime)
+        override fun build(): Capability {
+            super.setProperty(properties)
+            return super.build()
         }
     }
 
diff --git a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/PauseExercise.kt b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/PauseExercise.kt
index 332207f..f04ceee 100644
--- a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/PauseExercise.kt
+++ b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/PauseExercise.kt
@@ -16,28 +16,33 @@
 
 package androidx.appactions.interaction.capabilities.fitness.fitness
 
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.CapabilityFactory
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
-import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import java.util.Optional
 
 /** PauseExercise.kt in interaction-capabilities-fitness */
 private const val CAPABILITY_NAME = "actions.intent.PAUSE_EXERCISE"
 
 // TODO(b/273602015): Update to use Name property from builtintype library.
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(PauseExercise.Properties::class.java)
         .setArguments(PauseExercise.Arguments::class.java, PauseExercise.Arguments::Builder)
         .setOutput(PauseExercise.Output::class.java)
         .bindOptionalParameter(
             "exercise.name",
-            { property -> Optional.ofNullable(property.name) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[PauseExercise.PropertyMapStrings.NAME.key]
+                        as Property<StringValue>
+                )
+            },
             PauseExercise.Arguments.Builder::setName,
             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
             TypeConverters.STRING_VALUE_ENTITY_CONVERTER
@@ -46,53 +51,25 @@
 
 @CapabilityFactory(name = CAPABILITY_NAME)
 class PauseExercise private constructor() {
-    class CapabilityBuilder :
-        Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-            >(ACTION_SPEC) {
-        private var propertyBuilder: Properties.Builder = Properties.Builder()
-        fun setNameProperty(name: Property<StringValue>): CapabilityBuilder =
-            apply {
-                propertyBuilder.setName(name)
-            }
-
-        override fun build(): Capability {
-            // TODO(b/268369632): Clean this up after Property is removed
-            super.setProperty(propertyBuilder.build())
-            return super.build()
-        }
+    internal enum class PropertyMapStrings(val key: String) {
+        NAME("exercise.name"),
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(
-        val name: Property<StringValue>?,
-    ) {
-        override fun toString(): String {
-            return "Property(name=$name)"
-        }
+    class CapabilityBuilder :
+        Capability.Builder<
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
+        fun setName(name: Property<StringValue>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.NAME.key] = name }
 
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass !== other?.javaClass) return false
-
-            other as Properties
-
-            if (name != other.name) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            return name.hashCode()
-        }
-
-        class Builder {
-            private var name: Property<StringValue>? = null
-
-            fun setName(name: Property<StringValue>): Builder =
-                apply { this.name = name }
-
-            fun build(): Properties = Properties(name)
+        override fun build(): Capability {
+            super.setProperty(properties)
+            return super.build()
         }
     }
 
diff --git a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/ResumeExercise.kt b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/ResumeExercise.kt
index 491e804..1881a7c 100644
--- a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/ResumeExercise.kt
+++ b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/ResumeExercise.kt
@@ -16,28 +16,33 @@
 
 package androidx.appactions.interaction.capabilities.fitness.fitness
 
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.CapabilityFactory
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
-import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import java.util.Optional
 
 /** ResumeExercise.kt in interaction-capabilities-fitness */
 private const val CAPABILITY_NAME = "actions.intent.RESUME_EXERCISE"
 
 // TODO(b/273602015): Update to use Name property from builtintype library.
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(ResumeExercise.Properties::class.java)
         .setArguments(ResumeExercise.Arguments::class.java, ResumeExercise.Arguments::Builder)
         .setOutput(ResumeExercise.Output::class.java)
         .bindOptionalParameter(
             "exercise.name",
-            { property -> Optional.ofNullable(property.name) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[ResumeExercise.PropertyMapStrings.NAME.key]
+                        as Property<StringValue>
+                )
+            },
             ResumeExercise.Arguments.Builder::setName,
             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
             TypeConverters.STRING_VALUE_ENTITY_CONVERTER
@@ -46,53 +51,25 @@
 
 @CapabilityFactory(name = CAPABILITY_NAME)
 class ResumeExercise private constructor() {
-    class CapabilityBuilder :
-        Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-            >(ACTION_SPEC) {
-        private var propertyBuilder: Properties.Builder = Properties.Builder()
-        fun setNameProperty(name: Property<StringValue>): CapabilityBuilder =
-            apply {
-                propertyBuilder.setName(name)
-            }
-
-        override fun build(): Capability {
-            // TODO(b/268369632): Clean this up after Property is removed
-            super.setProperty(propertyBuilder.build())
-            return super.build()
-        }
+    internal enum class PropertyMapStrings(val key: String) {
+        NAME("exercise.name"),
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(
-        val name: Property<StringValue>?,
-    ) {
-        override fun toString(): String {
-            return "Property(name=$name)"
-        }
+    class CapabilityBuilder :
+        Capability.Builder<
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
+        fun setName(name: Property<StringValue>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.NAME.key] = name }
 
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass !== other?.javaClass) return false
-
-            other as Properties
-
-            if (name != other.name) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            return name.hashCode()
-        }
-
-        class Builder {
-            private var name: Property<StringValue>? = null
-
-            fun setName(name: Property<StringValue>): Builder =
-                apply { this.name = name }
-
-            fun build(): Properties = Properties(name)
+        override fun build(): Capability {
+            super.setProperty(properties)
+            return super.build()
         }
     }
 
diff --git a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/StartExercise.kt b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/StartExercise.kt
index 04524b4..0847d33 100644
--- a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/StartExercise.kt
+++ b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/StartExercise.kt
@@ -16,14 +16,14 @@
 
 package androidx.appactions.interaction.capabilities.fitness.fitness
 
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.CapabilityFactory
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
-import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import java.time.Duration
 import java.util.Optional
 
@@ -31,21 +31,31 @@
 private const val CAPABILITY_NAME = "actions.intent.START_EXERCISE"
 
 // TODO(b/273602015): Update to use Name property from builtintype library.
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(StartExercise.Properties::class.java)
         .setArguments(StartExercise.Arguments::class.java, StartExercise.Arguments::Builder)
         .setOutput(StartExercise.Output::class.java)
         .bindOptionalParameter(
             "exercise.duration",
-            { property -> Optional.ofNullable(property.duration) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[StartExercise.PropertyMapStrings.DURATION.key]
+                        as Property<Duration>
+                )
+            },
             StartExercise.Arguments.Builder::setDuration,
             TypeConverters.DURATION_PARAM_VALUE_CONVERTER,
             TypeConverters.DURATION_ENTITY_CONVERTER
         )
         .bindOptionalParameter(
             "exercise.name",
-            { property -> Optional.ofNullable(property.name) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[StartExercise.PropertyMapStrings.NAME.key]
+                        as Property<StringValue>
+                )
+            },
             StartExercise.Arguments.Builder::setName,
             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
             TypeConverters.STRING_VALUE_ENTITY_CONVERTER
@@ -54,65 +64,30 @@
 
 @CapabilityFactory(name = CAPABILITY_NAME)
 class StartExercise private constructor() {
-    class CapabilityBuilder :
-        Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-            >(ACTION_SPEC) {
-        fun setDurationProperty(duration: Property<Duration>): CapabilityBuilder =
-            apply {
-                Properties.Builder().setDuration(duration).build()
-            }
-
-        fun setNameProperty(name: Property<StringValue>): CapabilityBuilder =
-            apply {
-                Properties.Builder().setName(name).build()
-            }
-
-        override fun build(): Capability {
-            // TODO(b/268369632): No-op remove empty property builder after Property od removed
-            super.setProperty(Properties.Builder().build())
-            return super.build()
-        }
+    internal enum class PropertyMapStrings(val key: String) {
+        NAME("exercise.name"),
+        DURATION("exercise.duration"),
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(
-        val duration: Property<Duration>?,
-        val name: Property<StringValue>?
-    ) {
-        override fun toString(): String {
-            return "Property(duration=$duration, name=$name)"
-        }
+    class CapabilityBuilder :
+        Capability.Builder<
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
 
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass !== other?.javaClass) return false
+        fun setName(name: Property<StringValue>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.NAME.key] = name }
 
-            other as Properties
+        fun setDuration(duration: Property<Duration>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.DURATION.key] = duration }
 
-            if (duration != other.duration) return false
-            if (name != other.name) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            var result = duration.hashCode()
-            result += 31 * name.hashCode()
-            return result
-        }
-
-        class Builder {
-            private var duration: Property<Duration>? = null
-            private var name: Property<StringValue>? = null
-
-            fun setDuration(duration: Property<Duration>): Builder =
-                apply { this.duration = duration }
-
-            fun setName(name: Property<StringValue>): Builder =
-                apply { this.name = name }
-
-            fun build(): Properties = Properties(duration, name)
+        override fun build(): Capability {
+            super.setProperty(properties)
+            return super.build()
         }
     }
 
diff --git a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/StopExercise.kt b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/StopExercise.kt
index 09690c52..18efde0 100644
--- a/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/StopExercise.kt
+++ b/appactions/interaction/interaction-capabilities-fitness/src/main/java/androidx/appactions/interaction/capabilities/fitness/fitness/StopExercise.kt
@@ -16,8 +16,8 @@
 
 package androidx.appactions.interaction.capabilities.fitness.fitness
 
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.CapabilityFactory
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
@@ -30,14 +30,19 @@
 private const val CAPABILITY_NAME = "actions.intent.PAUSE_EXERCISE"
 
 // TODO(b/273602015): Update to use Name property from builtintype library.
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(StopExercise.Properties::class.java)
         .setArguments(StopExercise.Arguments::class.java, StopExercise.Arguments::Builder)
         .setOutput(StopExercise.Output::class.java)
         .bindOptionalParameter(
             "exercise.name",
-            { property -> Optional.ofNullable(property.name) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[StopExercise.PropertyMapStrings.NAME.key]
+                        as Property<StringValue>
+                )
+            },
             StopExercise.Arguments.Builder::setName,
             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
             TypeConverters.STRING_VALUE_ENTITY_CONVERTER
@@ -46,53 +51,26 @@
 
 @CapabilityFactory(name = CAPABILITY_NAME)
 class StopExercise private constructor() {
-    class CapabilityBuilder :
-        Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-            >(ACTION_SPEC) {
-        private var propertyBuilder: Properties.Builder = Properties.Builder()
-        fun setNameProperty(name: Property<StringValue>): CapabilityBuilder =
-            apply {
-                propertyBuilder.setName(name)
-            }
-
-        override fun build(): Capability {
-            // TODO(b/268369632): Clean this up after Property is removed
-            super.setProperty(propertyBuilder.build())
-            return super.build()
-        }
+    internal enum class PropertyMapStrings(val key: String) {
+        NAME("exercise.name"),
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(
-        val name: Property<StringValue>?,
-    ) {
-        override fun toString(): String {
-            return "Property(name=$name)"
-        }
+    class CapabilityBuilder :
+        Capability.Builder<
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
 
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass !== other?.javaClass) return false
+        fun setName(name: Property<StringValue>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.NAME.key] = name }
 
-            other as Properties
-
-            if (name != other.name) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            return name.hashCode()
-        }
-
-        class Builder {
-            private var name: Property<StringValue>? = null
-
-            fun setName(name: Property<StringValue>): Builder =
-                apply { this.name = name }
-
-            fun build(): Properties = Properties(name)
+        override fun build(): Capability {
+            super.setProperty(properties)
+            return super.build()
         }
     }
 
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/PauseTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/PauseTimer.kt
index 14c0fed..528a497 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/PauseTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/PauseTimer.kt
@@ -18,8 +18,8 @@
 
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
@@ -32,14 +32,19 @@
 /** PauseTimer.kt in interaction-capabilities-productivity */
 private const val CAPABILITY_NAME = "actions.intent.PAUSE_TIMER"
 
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(PauseTimer.Properties::class.java)
         .setArguments(PauseTimer.Arguments::class.java, PauseTimer.Arguments::Builder)
         .setOutput(PauseTimer.Output::class.java)
         .bindRepeatedParameter(
             "timer",
-            { property -> Optional.ofNullable(property.timerList) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[PauseTimer.PropertyMapStrings.TIMER_LIST.key]
+                        as Property<TimerValue>
+                )
+            },
             PauseTimer.Arguments.Builder::setTimerList,
             TimerValue.PARAM_VALUE_CONVERTER,
             TimerValue.ENTITY_CONVERTER
@@ -53,57 +58,29 @@
 
 // TODO(b/267806701): Add capability factory annotation once the testing library is fully migrated.
 class PauseTimer private constructor() {
+    internal enum class PropertyMapStrings(val key: String) {
+        TIMER_LIST("timer.timerList"),
+    }
 
     class CapabilityBuilder :
         Capability.Builder<
             CapabilityBuilder,
-            Properties,
             Arguments,
             Output,
             Confirmation,
-            ExecutionSession,
-        >(ACTION_SPEC) {
+            ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
+
+        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.TIMER_LIST.key] = timerList }
+
         override fun build(): Capability {
-            super.setProperty(Properties.Builder().build())
+            super.setProperty(properties)
             return super.build()
         }
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties
-    internal constructor(
-        val timerList: Property<TimerValue>?,
-    ) {
-        override fun toString(): String {
-            return "Property(timerList=$timerList}"
-        }
-
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass != other?.javaClass) return false
-
-            other as Properties
-
-            if (timerList != other.timerList) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            return timerList.hashCode()
-        }
-
-        class Builder {
-            private var timerList: Property<TimerValue>? = null
-
-            fun setTimerList(timerList: Property<TimerValue>): Builder = apply {
-                this.timerList = timerList
-            }
-
-            fun build(): Properties = Properties(timerList)
-        }
-    }
-
     class Arguments
     internal constructor(
         val timerList: List<TimerValue>?,
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResetTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResetTimer.kt
index d05acf9..94d203b 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResetTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResetTimer.kt
@@ -18,8 +18,8 @@
 
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
@@ -32,14 +32,19 @@
 /** ResetTimer.kt in interaction-capabilities-productivity */
 private const val CAPABILITY_NAME = "actions.intent.RESET_TIMER"
 
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(ResetTimer.Properties::class.java)
         .setArguments(ResetTimer.Arguments::class.java, ResetTimer.Arguments::Builder)
         .setOutput(ResetTimer.Output::class.java)
         .bindRepeatedParameter(
             "timer",
-            { property -> Optional.ofNullable(property.timerList) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[ResetTimer.PropertyMapStrings.TIMER_LIST.key]
+                        as Property<TimerValue>
+                )
+            },
             ResetTimer.Arguments.Builder::setTimerList,
             TimerValue.PARAM_VALUE_CONVERTER,
             TimerValue.ENTITY_CONVERTER
@@ -53,49 +58,29 @@
 
 // TODO(b/267806701): Add capability factory annotation once the testing library is fully migrated.
 class ResetTimer private constructor() {
+    internal enum class PropertyMapStrings(val key: String) {
+        TIMER_LIST("timer.timerList"),
+    }
 
     class CapabilityBuilder :
         Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-        >(ACTION_SPEC) {
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
+
+        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.TIMER_LIST.key] = timerList }
+
         override fun build(): Capability {
-            super.setProperty(Properties.Builder().build())
+            super.setProperty(properties)
             return super.build()
         }
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(val timerList: Property<TimerValue>?) {
-        override fun toString(): String {
-            return "Property(timerList=$timerList}"
-        }
-
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass != other?.javaClass) return false
-
-            other as Properties
-
-            if (timerList != other.timerList) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            return timerList.hashCode()
-        }
-
-        class Builder {
-            private var timerList: Property<TimerValue>? = null
-
-            fun setTimerList(timerList: Property<TimerValue>): Builder = apply {
-                this.timerList = timerList
-            }
-
-            fun build(): Properties = Properties(timerList)
-        }
-    }
-
     class Arguments internal constructor(val timerList: List<TimerValue>?) {
         override fun toString(): String {
             return "Arguments(timerList=$timerList)"
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimer.kt
index accb730..d967e45 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimer.kt
@@ -18,8 +18,8 @@
 
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
@@ -32,14 +32,19 @@
 /** ResumeTimer.kt in interaction-capabilities-productivity */
 private const val CAPABILITY_NAME = "actions.intent.RESUME_TIMER"
 
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(ResumeTimer.Properties::class.java)
         .setArguments(ResumeTimer.Arguments::class.java, ResumeTimer.Arguments::Builder)
         .setOutput(ResumeTimer.Output::class.java)
         .bindRepeatedParameter(
             "timer",
-            { property -> Optional.ofNullable(property.timerList) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[ResumeTimer.PropertyMapStrings.TIMER_LIST.key]
+                        as Property<TimerValue>
+                )
+            },
             ResumeTimer.Arguments.Builder::setTimerList,
             TimerValue.PARAM_VALUE_CONVERTER,
             TimerValue.ENTITY_CONVERTER
@@ -53,49 +58,29 @@
 
 // TODO(b/267806701): Add capability factory annotation once the testing library is fully migrated.
 class ResumeTimer private constructor() {
+    internal enum class PropertyMapStrings(val key: String) {
+        TIMER_LIST("timer.timerList"),
+    }
 
     class CapabilityBuilder :
         Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
-        >(ACTION_SPEC) {
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
+            >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
+
+        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.TIMER_LIST.key] = timerList }
+
         override fun build(): Capability {
-            super.setProperty(Properties.Builder().build())
+            super.setProperty(properties)
             return super.build()
         }
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(val timerList: Property<TimerValue>?) {
-        override fun toString(): String {
-            return "Property(timerList=$timerList}"
-        }
-
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass != other?.javaClass) return false
-
-            other as Properties
-
-            if (timerList != other.timerList) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            return timerList.hashCode()
-        }
-
-        class Builder {
-            private var timerList: Property<TimerValue>? = null
-
-            fun setTimerList(timerList: Property<TimerValue>): Builder = apply {
-                this.timerList = timerList
-            }
-
-            fun build(): Properties = Properties(timerList)
-        }
-    }
-
     class Arguments internal constructor(val timerList: List<TimerValue>?) {
         override fun toString(): String {
             return "Arguments(timerList=$timerList)"
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StartTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StartTimer.kt
index 25ca3cc..fcd211c 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StartTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StartTimer.kt
@@ -18,17 +18,17 @@
 
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.HostProperties
 import androidx.appactions.interaction.capabilities.core.ValueListener
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
-import androidx.appactions.interaction.capabilities.core.properties.StringValue
-import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.capabilities.core.impl.task.SessionBridge
 import androidx.appactions.interaction.capabilities.core.impl.task.TaskHandler
+import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import androidx.appactions.interaction.proto.ParamValue
 import androidx.appactions.interaction.protobuf.Struct
 import androidx.appactions.interaction.protobuf.Value
@@ -38,28 +38,43 @@
 /** StartTimer.kt in interaction-capabilities-productivity */
 private const val CAPABILITY_NAME = "actions.intent.START_TIMER"
 
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(StartTimer.Properties::class.java)
         .setArguments(StartTimer.Arguments::class.java, StartTimer.Arguments::Builder)
         .setOutput(StartTimer.Output::class.java)
         .bindOptionalParameter(
             "timer.identifier",
-            { property -> Optional.ofNullable(property.identifier) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[StartTimer.PropertyMapStrings.IDENTIFIER.key]
+                        as Property<StringValue>
+                )
+            },
             StartTimer.Arguments.Builder::setIdentifier,
             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
             TypeConverters.STRING_VALUE_ENTITY_CONVERTER,
         )
         .bindOptionalParameter(
             "timer.name",
-            { property -> Optional.ofNullable(property.name) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[StartTimer.PropertyMapStrings.NAME.key]
+                        as Property<StringValue>
+                )
+            },
             StartTimer.Arguments.Builder::setName,
             TypeConverters.STRING_PARAM_VALUE_CONVERTER,
             TypeConverters.STRING_VALUE_ENTITY_CONVERTER,
         )
         .bindOptionalParameter(
             "timer.duration",
-            { property -> Optional.ofNullable(property.duration) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[StartTimer.PropertyMapStrings.DURATION.key]
+                        as Property<Duration>
+                )
+            },
             StartTimer.Arguments.Builder::setDuration,
             TypeConverters.DURATION_PARAM_VALUE_CONVERTER,
             TypeConverters.DURATION_ENTITY_CONVERTER,
@@ -93,20 +108,47 @@
 
 // TODO(b/267806701): Add capability factory annotation once the testing library is fully migrated.
 class StartTimer private constructor() {
+    internal enum class PropertyMapStrings(val key: String) {
+        TIMER_LIST("timer.timerList"),
+        IDENTIFIER("timer.identifier"),
+        NAME("timer.name"),
+        DURATION("timer.duration"),
+    }
 
     class CapabilityBuilder :
         Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession,
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
             >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
 
         override val sessionBridge: SessionBridge<ExecutionSession, Confirmation> = SESSION_BRIDGE
 
-        public override fun setExecutionSessionFactory(
+        override fun setExecutionSessionFactory(
             sessionFactory: (hostProperties: HostProperties?) -> ExecutionSession,
         ): CapabilityBuilder = super.setExecutionSessionFactory(sessionFactory)
 
+        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder = apply {
+            properties[PropertyMapStrings.TIMER_LIST.key] = timerList
+        }
+
+        fun setIdentifier(identifier: Property<StringValue>): CapabilityBuilder = apply {
+            properties[PropertyMapStrings.IDENTIFIER.key] = identifier
+        }
+
+        fun setName(name: Property<StringValue>): CapabilityBuilder = apply {
+            properties[PropertyMapStrings.NAME.key] = name
+        }
+
+        fun setDuration(duration: Property<Duration>): CapabilityBuilder = apply {
+            properties[PropertyMapStrings.DURATION.key] = duration
+        }
+
         override fun build(): Capability {
-            super.setProperty(Properties.Builder().build())
+            super.setProperty(properties)
             return super.build()
         }
     }
@@ -118,56 +160,6 @@
             get() = null
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties
-    internal constructor(
-        val identifier: Property<StringValue>?,
-        val name: Property<StringValue>?,
-        val duration: Property<Duration>?,
-    ) {
-        override fun toString(): String {
-            return "Property(identifier=$identifier,name=$name,duration=$duration}"
-        }
-
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass != other?.javaClass) return false
-
-            other as Properties
-
-            if (identifier != other.identifier) return false
-            if (name != other.name) return false
-            if (duration != other.duration) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            var result = identifier.hashCode()
-            result += 31 * name.hashCode()
-            result += 31 * duration.hashCode()
-            return result
-        }
-
-        class Builder {
-            private var identifier: Property<StringValue>? = null
-            private var name: Property<StringValue>? = null
-            private var duration: Property<Duration>? = null
-
-            fun setIdentifier(identifier: Property<StringValue>): Builder = apply {
-                this.identifier = identifier
-            }
-
-            fun setName(name: Property<StringValue>): Builder = apply { this.name = name }
-
-            fun setDuration(duration: Property<Duration>): Builder = apply {
-                this.duration = duration
-            }
-
-            fun build(): Properties = Properties(identifier, name, duration)
-        }
-    }
-
     class Arguments internal constructor(
         val identifier: String?,
         val name: String?,
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StopTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StopTimer.kt
index fa589e7..93f5b75 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StopTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StopTimer.kt
@@ -18,8 +18,8 @@
 
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
@@ -32,14 +32,19 @@
 /** StopTimer.kt in interaction-capabilities-productivity */
 private const val CAPABILITY_NAME = "actions.intent.STOP_TIMER"
 
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(StopTimer.Properties::class.java)
         .setArguments(StopTimer.Arguments::class.java, StopTimer.Arguments::Builder)
         .setOutput(StopTimer.Output::class.java)
         .bindRepeatedParameter(
             "timer",
-            { property -> Optional.ofNullable(property.timerList) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[StopTimer.PropertyMapStrings.TIMER_LIST.key]
+                        as Property<TimerValue>
+                )
+            },
             StopTimer.Arguments.Builder::setTimerList,
             TimerValue.PARAM_VALUE_CONVERTER,
             TimerValue.ENTITY_CONVERTER
@@ -53,49 +58,29 @@
 
 // TODO(b/267806701): Add capability factory annotation once the testing library is fully migrated.
 class StopTimer private constructor() {
+    internal enum class PropertyMapStrings(val key: String) {
+        TIMER_LIST("timer.timerList"),
+    }
 
     class CapabilityBuilder :
         Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
+            CapabilityBuilder,
+            Arguments,
+            Output,
+            Confirmation,
+            ExecutionSession
             >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
+
+        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.TIMER_LIST.key] = timerList }
+
         override fun build(): Capability {
-            super.setProperty(Properties.Builder().build())
+            super.setProperty(properties)
             return super.build()
         }
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(val timerList: Property<TimerValue>?) {
-        override fun toString(): String {
-            return "Property(timerList=$timerList}"
-        }
-
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass != other?.javaClass) return false
-
-            other as Properties
-
-            if (timerList != other.timerList) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            return timerList.hashCode()
-        }
-
-        class Builder {
-            private var timerList: Property<TimerValue>? = null
-
-            fun setTimerList(timerList: Property<TimerValue>): Builder = apply {
-                this.timerList = timerList
-            }
-
-            fun build(): Properties = Properties(timerList)
-        }
-    }
-
     class Arguments internal constructor(val timerList: List<TimerValue>?) {
         override fun toString(): String {
             return "Arguments(timerList=$timerList)"
diff --git a/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StartEmergencySharing.kt b/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StartEmergencySharing.kt
index a0829de..11e0682 100644
--- a/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StartEmergencySharing.kt
+++ b/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StartEmergencySharing.kt
@@ -17,13 +17,14 @@
 package androidx.appactions.interaction.capabilities.safety
 
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
-import androidx.appactions.builtintypes.experimental.types.SuccessStatus
 import androidx.appactions.builtintypes.experimental.types.NoInternetConnection
-import androidx.appactions.interaction.capabilities.core.Capability
+import androidx.appactions.builtintypes.experimental.types.SuccessStatus
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
+import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.capabilities.safety.executionstatus.EmergencySharingInProgress
 import androidx.appactions.interaction.capabilities.safety.executionstatus.SafetyAccountNotLoggedIn
 import androidx.appactions.interaction.capabilities.safety.executionstatus.SafetyFeatureNotOnboarded
@@ -37,7 +38,6 @@
 
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(StartEmergencySharing.Properties::class.java)
         .setArguments(
             StartEmergencySharing.Arguments::class.java,
             StartEmergencySharing.Arguments::Builder
@@ -55,17 +55,16 @@
     // TODO(b/267805819): Update to include the SessionFactory once Session API is ready.
     class CapabilityBuilder :
         Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession,
+            CapabilityBuilder, Arguments, Output, Confirmation, ExecutionSession,
             >(ACTION_SPEC) {
+
+        private var properties = mutableMapOf<String, Property<*>>()
         override fun build(): Capability {
-            super.setProperty(Properties())
+            super.setProperty(properties)
             return super.build()
         }
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor()
-
     class Arguments internal constructor() {
         class Builder : BuilderOf<Arguments> {
             override fun build(): Arguments = Arguments()
diff --git a/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StartSafetyCheck.kt b/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StartSafetyCheck.kt
index cd5b319..9bb6f01 100644
--- a/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StartSafetyCheck.kt
+++ b/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StartSafetyCheck.kt
@@ -21,8 +21,8 @@
 import androidx.appactions.builtintypes.experimental.types.NoInternetConnection
 import androidx.appactions.builtintypes.experimental.types.SafetyCheck
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.ParamValueConverter
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
@@ -42,21 +42,31 @@
 /** StartSafetyCheck.kt in interaction-capabilities-safety */
 private const val CAPABILITY_NAME = "actions.intent.START_SAFETY_CHECK"
 
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(StartSafetyCheck.Properties::class.java)
         .setArguments(StartSafetyCheck.Arguments::class.java, StartSafetyCheck.Arguments::Builder)
         .setOutput(StartSafetyCheck.Output::class.java)
         .bindOptionalParameter(
             "safetyCheck.duration",
-            { property -> Optional.ofNullable(property.duration) },
+            { properties ->
+                Optional.ofNullable(
+                    properties[StartSafetyCheck.PropertyMapStrings.DURATION.key]
+                        as Property<Duration>
+                )
+            },
             StartSafetyCheck.Arguments.Builder::setDuration,
             TypeConverters.DURATION_PARAM_VALUE_CONVERTER,
             TypeConverters.DURATION_ENTITY_CONVERTER
         )
         .bindOptionalParameter(
             "safetyCheck.checkInTime",
-            { property -> Optional.ofNullable(property.checkInTime) },
+            { property ->
+                Optional.ofNullable(
+                    property[StartSafetyCheck.PropertyMapStrings.CHECK_IN_TIME.key]
+                        as Property<ZonedDateTime>
+                )
+            },
             StartSafetyCheck.Arguments.Builder::setCheckInTime,
             TypeConverters.ZONED_DATETIME_PARAM_VALUE_CONVERTER,
             TypeConverters.ZONED_DATETIME_ENTITY_CONVERTER
@@ -75,60 +85,30 @@
 
 // TODO(b/267806701): Add capability factory annotation once the testing library is fully migrated.
 class StartSafetyCheck private constructor() {
+    internal enum class PropertyMapStrings(val key: String) {
+        DURATION("safetycheck.duration"),
+        CHECK_IN_TIME("safetycheck.checkInTime"),
+    }
+
     // TODO(b/267805819): Update to include the SessionFactory once Session API is ready.
     class CapabilityBuilder :
         Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
+            CapabilityBuilder, Arguments, Output, Confirmation, ExecutionSession
             >(ACTION_SPEC) {
+        private var properties = mutableMapOf<String, Property<*>>()
+
+        fun setDuration(duration: Property<Duration>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.DURATION.key] = duration }
+
+        fun setCheckInTime(checkInTime: Property<ZonedDateTime>): CapabilityBuilder =
+            apply { properties[PropertyMapStrings.CHECK_IN_TIME.key] = checkInTime }
+
         override fun build(): Capability {
-            // TODO(b/268369632): No-op remove empty property builder after Property od removed
-            super.setProperty(Properties.Builder().build())
+            super.setProperty(properties)
             return super.build()
         }
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor(
-        val duration: Property<Duration>?,
-        val checkInTime: Property<ZonedDateTime>?
-    ) {
-        override fun toString(): String {
-            return "Property(duration=$duration, checkInTime=$checkInTime)"
-        }
-
-        override fun equals(other: Any?): Boolean {
-            if (this === other) return true
-            if (javaClass != other?.javaClass) return false
-
-            other as Properties
-
-            if (duration != other.duration) return false
-            if (checkInTime != other.checkInTime) return false
-
-            return true
-        }
-
-        override fun hashCode(): Int {
-            var result = duration.hashCode()
-            result = 31 * result + checkInTime.hashCode()
-            return result
-        }
-
-        class Builder {
-            private var duration: Property<Duration>? = null
-
-            private var checkInTime: Property<ZonedDateTime>? = null
-
-            fun setDuration(duration: Property<Duration>): Builder =
-                apply { this.duration = duration }
-
-            fun setCheckInTime(checkInTime: Property<ZonedDateTime>): Builder =
-                apply { this.checkInTime = checkInTime }
-
-            fun build(): Properties = Properties(duration, checkInTime)
-        }
-    }
-
     class Arguments internal constructor(
         val duration: Duration?,
         val checkInTime: ZonedDateTime?
diff --git a/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StopEmergencySharing.kt b/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StopEmergencySharing.kt
index afc9f18..731aff5 100644
--- a/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StopEmergencySharing.kt
+++ b/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StopEmergencySharing.kt
@@ -20,11 +20,12 @@
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
 import androidx.appactions.builtintypes.experimental.types.NoInternetConnection
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
+import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.capabilities.safety.executionstatus.SafetyAccountNotLoggedIn
 import androidx.appactions.interaction.capabilities.safety.executionstatus.SafetyFeatureNotOnboarded
 import androidx.appactions.interaction.proto.ParamValue
@@ -37,7 +38,6 @@
 
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(StopEmergencySharing.Properties::class.java)
         .setArguments(
             StopEmergencySharing.Arguments::class.java,
             StopEmergencySharing.Arguments::Builder
@@ -55,17 +55,17 @@
     // TODO(b/267805819): Update to include the SessionFactory once Session API is ready.
     class CapabilityBuilder :
         Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession,
+            CapabilityBuilder, Arguments, Output, Confirmation, ExecutionSession,
             >(ACTION_SPEC) {
+
+        private var properties = mutableMapOf<String, Property<*>>()
+
         override fun build(): Capability {
-            super.setProperty(Properties())
+            super.setProperty(properties)
             return super.build()
         }
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor()
-
     class Arguments internal constructor() {
         class Builder : BuilderOf<Arguments> {
             override fun build(): Arguments = Arguments()
diff --git a/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StopSafetyCheck.kt b/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StopSafetyCheck.kt
index 3e5156b..3d3ffed 100644
--- a/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StopSafetyCheck.kt
+++ b/appactions/interaction/interaction-capabilities-safety/src/main/java/androidx/appactions/interaction/capabilities/safety/StopSafetyCheck.kt
@@ -20,11 +20,12 @@
 import androidx.appactions.builtintypes.experimental.types.GenericErrorStatus
 import androidx.appactions.builtintypes.experimental.types.NoInternetConnection
 import androidx.appactions.builtintypes.experimental.types.SuccessStatus
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
+import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.capabilities.safety.executionstatus.SafetyAccountNotLoggedIn
 import androidx.appactions.interaction.capabilities.safety.executionstatus.SafetyFeatureNotOnboarded
 import androidx.appactions.interaction.proto.ParamValue
@@ -37,7 +38,6 @@
 
 private val ACTION_SPEC =
     ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-        .setDescriptor(StopSafetyCheck.Properties::class.java)
         .setArguments(StopSafetyCheck.Arguments::class.java, StopSafetyCheck.Arguments::Builder)
         .setOutput(StopSafetyCheck.Output::class.java)
         .bindOptionalOutput(
@@ -52,17 +52,16 @@
     // TODO(b/267805819): Update to include the SessionFactory once Session API is ready.
     class CapabilityBuilder :
         Capability.Builder<
-            CapabilityBuilder, Properties, Arguments, Output, Confirmation, ExecutionSession
+            CapabilityBuilder, Arguments, Output, Confirmation, ExecutionSession
             >(ACTION_SPEC) {
+
+        private var properties = mutableMapOf<String, Property<*>>()
         override fun build(): Capability {
-            super.setProperty(Properties())
+            super.setProperty(properties)
             return super.build()
         }
     }
 
-    // TODO(b/268369632): Remove Property from public capability APIs.
-    class Properties internal constructor()
-
     class Arguments internal constructor() {
         class Builder : BuilderOf<Arguments> {
             override fun build(): Arguments = Arguments()
diff --git a/appactions/interaction/interaction-service/src/test/java/androidx/appactions/interaction/service/testing/internal/FakeCapability.kt b/appactions/interaction/interaction-service/src/test/java/androidx/appactions/interaction/service/testing/internal/FakeCapability.kt
index 3d03fc9..9708c4a 100644
--- a/appactions/interaction/interaction-service/src/test/java/androidx/appactions/interaction/service/testing/internal/FakeCapability.kt
+++ b/appactions/interaction/interaction-service/src/test/java/androidx/appactions/interaction/service/testing/internal/FakeCapability.kt
@@ -16,26 +16,25 @@
 
 package androidx.appactions.interaction.service.testing.internal
 
-import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.BaseExecutionSession
-import androidx.appactions.interaction.capabilities.core.HostProperties
+import androidx.appactions.interaction.capabilities.core.Capability
 import androidx.appactions.interaction.capabilities.core.ValueListener
 import androidx.appactions.interaction.capabilities.core.impl.BuilderOf
 import androidx.appactions.interaction.capabilities.core.impl.converters.TypeConverters
 import androidx.appactions.interaction.capabilities.core.impl.spec.ActionSpecBuilder
-import androidx.appactions.interaction.capabilities.core.properties.StringValue
-import androidx.appactions.interaction.capabilities.core.properties.Property
 import androidx.appactions.interaction.capabilities.core.impl.task.SessionBridge
 import androidx.appactions.interaction.capabilities.core.impl.task.TaskHandler
+import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.core.properties.StringValue
 import java.util.Optional
 
 private const val CAPABILITY_NAME = "actions.intent.FAKE_CAPABILITY"
+@Suppress("UNCHECKED_CAST")
 private val ACTION_SPEC = ActionSpecBuilder.ofCapabilityNamed(CAPABILITY_NAME)
-    .setDescriptor(FakeCapability.Properties::class.java)
     .setArguments(FakeCapability.Arguments::class.java, FakeCapability.Arguments::Builder)
     .setOutput(FakeCapability.Output::class.java).bindOptionalParameter(
         "fieldOne",
-        { property -> Optional.ofNullable(property.fieldOne) },
+        { property -> Optional.ofNullable(property["fieldOne"] as Property<StringValue>) },
         FakeCapability.Arguments.Builder::setFieldOne,
         TypeConverters.STRING_PARAM_VALUE_CONVERTER,
         TypeConverters.STRING_VALUE_ENTITY_CONVERTER,
@@ -69,7 +68,6 @@
 
     class CapabilityBuilder : Capability.Builder<
         CapabilityBuilder,
-        Properties,
         Arguments,
         Output,
         Confirmation,
@@ -94,12 +92,14 @@
             this.fieldOne = fieldOne
         }
 
-        public override fun setExecutionSessionFactory(
-            sessionFactory: (hostProperties: HostProperties?) -> ExecutionSession,
-        ) = super.setExecutionSessionFactory(sessionFactory)
-
         override fun build(): Capability {
-            super.setProperty(Properties(fieldOne))
+            super.setProperty(
+                mutableMapOf(
+                    "fieldOne" to (
+                        fieldOne ?: Property.Builder<StringValue>().build()
+                        )
+                )
+            )
             return super.build()
         }
     }
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessorTest.kt b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessorTest.kt
index 288929c..5a0fb78 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessorTest.kt
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessorTest.kt
@@ -180,6 +180,10 @@
                 cameraProvider.shutdown()[10, TimeUnit.SECONDS]
             }
         }
+
+        if (::basicExtenderSessionProcessor.isInitialized) {
+            basicExtenderSessionProcessor.deInitSession()
+        }
     }
 
     @Test
diff --git a/camera/camera-video/src/androidTest/java/androidx/camera/video/RecorderTest.kt b/camera/camera-video/src/androidTest/java/androidx/camera/video/RecorderTest.kt
index 6bbe1fe..8366234 100644
--- a/camera/camera-video/src/androidTest/java/androidx/camera/video/RecorderTest.kt
+++ b/camera/camera-video/src/androidTest/java/androidx/camera/video/RecorderTest.kt
@@ -847,29 +847,6 @@
     }
 
     @Test
-    fun mute_defaultToNotMuted() {
-        // Arrange.
-        val recorder = createRecorder()
-        val recording = createRecordingProcess(recorder = recorder)
-        val recording2 = createRecordingProcess(recorder = recorder)
-
-        // Act.
-        recording.startAndVerify()
-        recording.mute(true)
-        recording.stopAndVerify()
-
-        recording2.startAndVerify()
-        recording2.verifyStatus(5) { statusList ->
-            // Assert.
-            statusList.forEach {
-                assertThat(it.recordingStats.audioStats.audioState)
-                    .isEqualTo(AudioStats.AUDIO_STATE_ACTIVE)
-            }
-        }
-        recording2.stopAndVerify()
-    }
-
-    @Test
     fun optionsOverridesDefaults() {
         val qualitySelector = QualitySelector.from(Quality.HIGHEST)
         val recorder = createRecorder(qualitySelector = qualitySelector)
diff --git a/camera/camera-video/src/androidTest/java/androidx/camera/video/VideoRecordingTest.kt b/camera/camera-video/src/androidTest/java/androidx/camera/video/VideoRecordingTest.kt
index 2a79dbd..7e62cf4 100644
--- a/camera/camera-video/src/androidTest/java/androidx/camera/video/VideoRecordingTest.kt
+++ b/camera/camera-video/src/androidTest/java/androidx/camera/video/VideoRecordingTest.kt
@@ -846,6 +846,73 @@
         file2.delete()
     }
 
+    @Test
+    fun mute_defaultToNotMuted() {
+        assumeTrue("Audio stream is not available", audioStreamAvailable)
+
+        // Arrange.
+        val recorder = Recorder.Builder().build()
+        val videoCaptureLocal = VideoCapture.withOutput(recorder)
+        instrumentation.runOnMainSync {
+            cameraProvider.bindToLifecycle(
+                lifecycleOwner,
+                cameraSelector,
+                preview,
+                videoCaptureLocal
+            )
+        }
+        val file1 = File.createTempFile("CameraX", ".tmp").apply { deleteOnExit() }
+
+        recorder.prepareRecording(context, FileOutputOptions.Builder(file1).build())
+            .withAudioEnabled()
+            .start(CameraXExecutors.directExecutor(), mockVideoRecordEventConsumer).use {
+                mockVideoRecordEventConsumer.verifyRecordingStartSuccessfully()
+                // Keep the first recording muted.
+                it.mute(true)
+            }
+
+        mockVideoRecordEventConsumer.verifyAcceptCall(
+            VideoRecordEvent.Finalize::class.java,
+            false,
+            GENERAL_TIMEOUT
+        )
+        file1.delete()
+
+        mockVideoRecordEventConsumer.clearAcceptCalls()
+
+        val file2 = File.createTempFile("CameraX", ".tmp").apply { deleteOnExit() }
+
+        // Act.
+        recorder.prepareRecording(context, FileOutputOptions.Builder(file2).build())
+            .withAudioEnabled()
+            .start(CameraXExecutors.directExecutor(), mockVideoRecordEventConsumer).use {
+                mockVideoRecordEventConsumer.verifyRecordingStartSuccessfully()
+                val captor = ArgumentCaptorCameraX<VideoRecordEvent> { argument ->
+                    VideoRecordEvent::class.java.isInstance(
+                        argument
+                    )
+                }
+                mockVideoRecordEventConsumer.verifyAcceptCall(
+                    VideoRecordEvent::class.java,
+                    false,
+                    CallTimesAtLeast(1),
+                    captor
+                )
+                assertThat(captor.value).isInstanceOf(VideoRecordEvent.Status::class.java)
+                val status = captor.value as VideoRecordEvent.Status
+                // Assert: The second recording should not be muted.
+                assertThat(status.recordingStats.audioStats.audioState)
+                    .isEqualTo(AudioStats.AUDIO_STATE_ACTIVE)
+            }
+
+        mockVideoRecordEventConsumer.verifyAcceptCall(
+            VideoRecordEvent.Finalize::class.java,
+            false,
+            GENERAL_TIMEOUT
+        )
+        file2.delete()
+    }
+
     private fun performRecording(
         videoCapture: VideoCapture<Recorder>,
         file: File,
diff --git a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/SharedByteBufferTest.kt b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/SharedByteBufferTest.kt
index af3ed21..58e7d60 100644
--- a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/SharedByteBufferTest.kt
+++ b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/SharedByteBufferTest.kt
@@ -16,6 +16,7 @@
 
 package androidx.camera.video.internal
 
+import android.os.Build
 import androidx.camera.core.impl.utils.executor.CameraXExecutors
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
@@ -35,6 +36,7 @@
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.withContext
 import kotlinx.coroutines.withTimeout
+import org.junit.Assume.assumeFalse
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -289,6 +291,11 @@
     @Test
     @LargeTest
     fun finalizeClosesUnclosedInstances() = runBlocking {
+        assumeFalse(
+            "Ignore devices that get flaky result. See b/278842333",
+            isModel("moto c") || isModel("rne-l23")
+        )
+
         val buf = ByteBuffer.allocate(0)
         val closeActionDeferred = CompletableDeferred<Unit>()
         val origBuf = SharedByteBuffer.newSharedInstance(buf, CameraXExecutors.directExecutor()) {
@@ -327,4 +334,6 @@
             phantomReferences.forEach { it.clear() }
         }
     }
+
+    private fun isModel(model: String) = model.equals(Build.MODEL, true)
 }
\ No newline at end of file
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/BasicUITest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/BasicUITest.kt
index 26d932d..2fb1a60 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/BasicUITest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/BasicUITest.kt
@@ -19,6 +19,7 @@
 import android.Manifest
 import android.content.Context
 import android.content.Intent
+import android.os.Build
 import androidx.camera.camera2.Camera2Config
 import androidx.camera.camera2.pipe.integration.CameraPipeConfig
 import androidx.camera.lifecycle.ProcessCameraProvider
@@ -38,7 +39,7 @@
 import java.util.concurrent.TimeUnit
 import leakcanary.DetectLeaksAfterTestSuccess
 import org.junit.After
-import org.junit.Assume
+import org.junit.Assume.assumeFalse
 import org.junit.Assume.assumeTrue
 import org.junit.Before
 import org.junit.Rule
@@ -94,7 +95,12 @@
 
     @Before
     fun setUp() {
-        Assume.assumeTrue(CameraUtil.deviceHasCamera())
+        assumeTrue(CameraUtil.deviceHasCamera())
+        assumeFalse(
+            "See b/152082918, Wembley Api30 has a libjpeg issue which causes" +
+                " the test failure.",
+            Build.MODEL.equals("wembley", ignoreCase = true) && Build.VERSION.SDK_INT <= 30
+        )
         CoreAppTestUtil.assumeCompatibleDevice()
         // Use the natural orientation throughout these tests to ensure the activity isn't
         // recreated unexpectedly. This will also freeze the sensors until
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/FocusMeteringDeviceTest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/FocusMeteringDeviceTest.kt
index 056a07e..8aceeb4 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/FocusMeteringDeviceTest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/FocusMeteringDeviceTest.kt
@@ -44,7 +44,6 @@
 import java.util.concurrent.ExecutionException
 import java.util.concurrent.TimeUnit
 import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.delay
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.withContext
 import org.hamcrest.CoreMatchers.equalTo
@@ -140,11 +139,6 @@
                 cameraProvider.shutdown()[10, TimeUnit.SECONDS]
             }
         }
-
-        if (selectorName == "front" && implName == CameraPipeConfig::class.simpleName) {
-            // TODO(b/264332446): Replace this delay with some API like closeAll() once available
-            delay(5000)
-        }
     }
 
     @Test
@@ -381,8 +375,8 @@
             )
             cameraCharacteristics?.run {
                 (if (flags.hasFlag(FLAG_AF)) (get(CONTROL_MAX_REGIONS_AF)!! > 0) else false) ||
-                (if (flags.hasFlag(FLAG_AE)) (get(CONTROL_MAX_REGIONS_AE)!! > 0) else false) ||
-                (if (flags.hasFlag(FLAG_AWB)) (get(CONTROL_MAX_REGIONS_AWB)!! > 0) else false)
+                    (if (flags.hasFlag(FLAG_AE)) (get(CONTROL_MAX_REGIONS_AE)!! > 0) else false) ||
+                    (if (flags.hasFlag(FLAG_AWB)) (get(CONTROL_MAX_REGIONS_AWB)!! > 0) else false)
             } ?: false
         } catch (e: Exception) {
             false
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ZoomControlDeviceTest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ZoomControlDeviceTest.kt
index 1b89972..7ed59c5 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ZoomControlDeviceTest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ZoomControlDeviceTest.kt
@@ -56,7 +56,6 @@
 import kotlinx.atomicfu.atomic
 import kotlinx.coroutines.CompletableDeferred
 import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.delay
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.withContext
 import kotlinx.coroutines.withTimeout
@@ -134,11 +133,6 @@
                 cameraProvider.shutdown()[10, TimeUnit.SECONDS]
             }
         }
-
-        if (selectorName == "front" && implName == CameraPipeConfig::class.simpleName) {
-            // TODO(b/264332446): Replace this delay with some API like closeAll() once available
-            delay(5000)
-        }
     }
 
     @Test
@@ -186,7 +180,8 @@
          */
         try {
             cameraControl.setZoomRatio(maxZoomRatio + 1.0f)[5, TimeUnit.SECONDS]
-        } catch (_: ExecutionException) {}
+        } catch (_: ExecutionException) {
+        }
 
         assertThat(cameraInfo.zoomState.value?.zoomRatio).isEqualTo(2.0f)
     }
@@ -213,7 +208,8 @@
          */
         try {
             cameraControl.setZoomRatio(minZoomRatio - 1.0f)[5, TimeUnit.SECONDS]
-        } catch (_: ExecutionException) {}
+        } catch (_: ExecutionException) {
+        }
 
         assertThat(cameraInfo.zoomState.value?.zoomRatio).isEqualTo(2.0f)
     }
@@ -425,7 +421,8 @@
          */
         try {
             cameraControl.setLinearZoom(1.1f)[5, TimeUnit.SECONDS]
-        } catch (_: ExecutionException) {}
+        } catch (_: ExecutionException) {
+        }
 
         assertThat(cameraInfo.zoomState.value?.linearZoom).isEqualTo(0.5f)
     }
@@ -448,7 +445,8 @@
          */
         try {
             cameraControl.setLinearZoom(-0.1f)[5, TimeUnit.SECONDS]
-        } catch (_: ExecutionException) {}
+        } catch (_: ExecutionException) {
+        }
 
         assertThat(cameraInfo.zoomState.value?.linearZoom).isEqualTo(0.5f)
     }
@@ -761,8 +759,10 @@
         private val failureException =
             TimeoutException("Test doesn't complete after waiting for $captureCount frames.")
 
-        @Volatile private var startReceiving = false
-        @Volatile private var _verifyBlock: (
+        @Volatile
+        private var startReceiving = false
+        @Volatile
+        private var _verifyBlock: (
             captureRequest: CaptureRequest,
             captureResult: TotalCaptureResult
         ) -> Boolean = { _, _ -> false }
diff --git a/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/rotations/ImageCaptureLockedOrientationTest.kt b/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/rotations/ImageCaptureLockedOrientationTest.kt
index 7165a2e..b8d8429 100644
--- a/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/rotations/ImageCaptureLockedOrientationTest.kt
+++ b/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/rotations/ImageCaptureLockedOrientationTest.kt
@@ -16,9 +16,11 @@
 
 package androidx.camera.integration.uiwidgets.rotations
 
+import android.os.Build
 import androidx.test.core.app.ActivityScenario
 import androidx.test.filters.LargeTest
 import org.junit.After
+import org.junit.Assume
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -54,6 +56,11 @@
 
     @Before
     fun before() {
+        Assume.assumeFalse(
+            "See b/152082918, Wembley Api30 has a libjpeg issue which causes" +
+                " the test failure.",
+            Build.MODEL.equals("wembley", ignoreCase = true) && Build.VERSION.SDK_INT <= 30
+        )
         setUp(lensFacing)
     }
 
diff --git a/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/rotations/ImageCaptureUnlockedOrientationTest.kt b/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/rotations/ImageCaptureUnlockedOrientationTest.kt
index a0204db..aaedb05 100644
--- a/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/rotations/ImageCaptureUnlockedOrientationTest.kt
+++ b/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/rotations/ImageCaptureUnlockedOrientationTest.kt
@@ -17,6 +17,7 @@
 package androidx.camera.integration.uiwidgets.rotations
 
 import android.app.Instrumentation
+import android.os.Build
 import androidx.camera.core.CameraSelector
 import androidx.camera.integration.uiwidgets.rotations.CameraActivity.Companion.IMAGE_CAPTURE_MODE_FILE
 import androidx.camera.integration.uiwidgets.rotations.CameraActivity.Companion.IMAGE_CAPTURE_MODE_IN_MEMORY
@@ -25,6 +26,7 @@
 import androidx.test.filters.LargeTest
 import androidx.test.platform.app.InstrumentationRegistry
 import org.junit.After
+import org.junit.Assume.assumeFalse
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -87,6 +89,9 @@
 
     @Before
     fun before() {
+        assumeFalse("See b/152082918, Wembley Api30 has a libjpeg issue which causes" +
+            " the test failure.",
+            Build.MODEL.equals("wembley", ignoreCase = true) && Build.VERSION.SDK_INT <= 30)
         setUp(lensFacing)
     }
 
diff --git a/car/app/app-samples/showcase/common/src/main/res/values-mk/strings.xml b/car/app/app-samples/showcase/common/src/main/res/values-mk/strings.xml
index 97ec824..c37b862 100644
--- a/car/app/app-samples/showcase/common/src/main/res/values-mk/strings.xml
+++ b/car/app/app-samples/showcase/common/src/main/res/values-mk/strings.xml
@@ -94,7 +94,7 @@
     <string name="no_energy_profile_permission" msgid="4662285713731308888">"Нема дозвола за енергетски профил."</string>
     <string name="fuel_types" msgid="6811375173343218212">"Типови гориво"</string>
     <string name="unavailable" msgid="3636401138255192934">"Недостапно"</string>
-    <string name="ev_connector_types" msgid="735458637011996125">"Типови конектори за ЕВ"</string>
+    <string name="ev_connector_types" msgid="735458637011996125">"Типови конектори за EV"</string>
     <string name="example_title" msgid="530257630320010494">"Пример %d"</string>
     <string name="example_1_text" msgid="8456567953748293512">"Текстов има црвена боја"</string>
     <string name="example_2_text" msgid="718820705318661440">"Текстов има зелена боја"</string>
@@ -181,7 +181,7 @@
     <string name="no_energy_level_permission" msgid="1684773185095107825">"Нема дозвола за EnergyLevel."</string>
     <string name="no_speed_permission" msgid="5812532480922675390">"Нема дозвола за брзина."</string>
     <string name="no_mileage_permission" msgid="4074779840599589847">"Нема дозвола за километража."</string>
-    <string name="no_ev_status_permission" msgid="933075402821938973">"Нема дозвола за статусот на ЕВ."</string>
+    <string name="no_ev_status_permission" msgid="933075402821938973">"Нема дозвола за статусот на EV."</string>
     <string name="no_accelerometer_permission" msgid="896914448469117234">"Нема дозвола за акцелерометар."</string>
     <string name="no_gyroscope_permission" msgid="665293140266771569">"Нема дозвола за жироскоп."</string>
     <string name="no_compass_permission" msgid="5162304489577567125">"Нема дозвола за компас."</string>
@@ -190,7 +190,7 @@
     <string name="fetch_energy_level" msgid="1773415471137542832">"Се презема ниво на енергија."</string>
     <string name="fetch_speed" msgid="7333830984597189627">"Се презема брзина."</string>
     <string name="fetch_mileage" msgid="7490131687788025123">"Се презема километража."</string>
-    <string name="fetch_ev_status" msgid="2798910410830567052">"Се презема статус на ЕВ."</string>
+    <string name="fetch_ev_status" msgid="2798910410830567052">"Се презема статус на EV."</string>
     <string name="fetch_accelerometer" msgid="697750041126810911">"Се презема акцелерометар."</string>
     <string name="fetch_gyroscope" msgid="7153155318827188539">"Се презема жироскоп."</string>
     <string name="fetch_compass" msgid="7316188117590056717">"Се презема компас."</string>
@@ -204,8 +204,8 @@
     <string name="raw_speed" msgid="7295910214088983967">"Брзина на RAW"</string>
     <string name="unit" msgid="7697521583928135171">"Единица"</string>
     <string name="odometer" msgid="3925174645651546591">"Броило"</string>
-    <string name="ev_connected" msgid="2277845607662494696">"Поврзана е порта за полнење ЕВ"</string>
-    <string name="ev_open" msgid="4916704450914519643">"Отворена е порта за полнење ЕВ"</string>
+    <string name="ev_connected" msgid="2277845607662494696">"Поврзана е порта за полнење EV"</string>
+    <string name="ev_open" msgid="4916704450914519643">"Отворена е порта за полнење EV"</string>
     <string name="accelerometer" msgid="2084026313768299185">"Акцелерометар"</string>
     <string name="gyroscope" msgid="3428075828014504651">"Жироскоп"</string>
     <string name="compass" msgid="7037367764762441245">"Компас"</string>
diff --git a/car/app/app-samples/showcase/common/src/main/res/values-sq/strings.xml b/car/app/app-samples/showcase/common/src/main/res/values-sq/strings.xml
index e83b300..b52261b 100644
--- a/car/app/app-samples/showcase/common/src/main/res/values-sq/strings.xml
+++ b/car/app/app-samples/showcase/common/src/main/res/values-sq/strings.xml
@@ -119,7 +119,7 @@
     <string name="loading_demo_row_title" msgid="8933049915126088142">"Ngarkimi përfundoi!"</string>
     <string name="pop_to_root" msgid="2078277386355064198">"Hidhu te rrënja"</string>
     <string name="pop_to_marker" msgid="5007078308762725207">"Hidhu te shënuesi i demonstrimeve të ndryshme"</string>
-    <string name="push_stack" msgid="2433062141810168976">"Shty më tej te stiva"</string>
+    <string name="push_stack" msgid="2433062141810168976">"Shtyj më tej te stiva"</string>
     <string name="pop_to_prefix" msgid="4288884615669751608">"Hidhu te"</string>
     <string name="pop_to_title" msgid="3924696281273379455">"Hidhu te demonstrimi"</string>
     <string name="package_not_found_error_msg" msgid="7525619456883627939">"Paketa nuk u gjet."</string>
diff --git a/compose/compiler/OWNERS b/compose/compiler/OWNERS
index fc11d9b..e48b97d 100644
--- a/compose/compiler/OWNERS
+++ b/compose/compiler/OWNERS
@@ -2,4 +2,5 @@
 jsproch@google.com
 chuckj@google.com
 lelandr@google.com
+anbailey@google.com
 per-file settings.gradle = dustinlam@google.com, rahulrav@google.com
diff --git a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableTypeRemapper.kt b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableTypeRemapper.kt
index 016b6e8..83a8184 100644
--- a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableTypeRemapper.kt
+++ b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableTypeRemapper.kt
@@ -22,23 +22,16 @@
 import org.jetbrains.kotlin.backend.common.extensions.IrPluginContextImpl
 import org.jetbrains.kotlin.backend.common.peek
 import org.jetbrains.kotlin.backend.common.pop
-import org.jetbrains.kotlin.ir.IrElement
-import org.jetbrains.kotlin.ir.IrStatement
 import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
 import org.jetbrains.kotlin.ir.builders.declarations.addValueParameter
-import org.jetbrains.kotlin.ir.declarations.IrClass
 import org.jetbrains.kotlin.ir.declarations.IrConstructor
 import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
-import org.jetbrains.kotlin.ir.declarations.IrField
 import org.jetbrains.kotlin.ir.declarations.IrFile
 import org.jetbrains.kotlin.ir.declarations.IrFunction
-import org.jetbrains.kotlin.ir.declarations.IrLocalDelegatedProperty
-import org.jetbrains.kotlin.ir.declarations.IrMetadataSourceOwner
 import org.jetbrains.kotlin.ir.declarations.IrProperty
 import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
 import org.jetbrains.kotlin.ir.declarations.IrTypeParametersContainer
 import org.jetbrains.kotlin.ir.declarations.copyAttributes
-import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
 import org.jetbrains.kotlin.ir.expressions.IrCall
 import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
 import org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression
@@ -58,7 +51,6 @@
 import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
 import org.jetbrains.kotlin.ir.types.isClassWithFqName
 import org.jetbrains.kotlin.ir.types.typeOrNull
-import org.jetbrains.kotlin.ir.util.DeepCopyIrTreeWithSymbols
 import org.jetbrains.kotlin.ir.util.DeepCopySymbolRemapper
 import org.jetbrains.kotlin.ir.util.SymbolRemapper
 import org.jetbrains.kotlin.ir.util.SymbolRenamer
@@ -74,28 +66,12 @@
 import org.jetbrains.kotlin.name.FqName
 import org.jetbrains.kotlin.types.Variance
 
-class DeepCopyIrTreeWithSymbolsPreservingMetadata(
+internal class DeepCopyIrTreeWithRemappedComposableTypes(
     private val context: IrPluginContext,
     private val symbolRemapper: DeepCopySymbolRemapper,
     typeRemapper: TypeRemapper,
     symbolRenamer: SymbolRenamer = SymbolRenamer.DEFAULT
-) : DeepCopyIrTreeWithSymbols(symbolRemapper, typeRemapper, symbolRenamer) {
-
-    override fun visitClass(declaration: IrClass): IrClass {
-        return super.visitClass(declaration).also { it.copyMetadataFrom(declaration) }
-    }
-
-    override fun visitFunction(declaration: IrFunction): IrStatement {
-        return super.visitFunction(declaration).also {
-            it.copyMetadataFrom(declaration)
-        }
-    }
-
-    override fun visitConstructor(declaration: IrConstructor): IrConstructor {
-        return super.visitConstructor(declaration).also {
-            it.copyMetadataFrom(declaration)
-        }
-    }
+) : DeepCopyPreservingMetadata(symbolRemapper, typeRemapper, symbolRenamer) {
 
     override fun visitSimpleFunction(declaration: IrSimpleFunction): IrSimpleFunction {
         if (declaration.symbol.isRemappedAndBound()) {
@@ -106,30 +82,17 @@
         }
         return super.visitSimpleFunction(declaration).also {
             it.correspondingPropertySymbol = declaration.correspondingPropertySymbol
-            it.copyMetadataFrom(declaration)
         }
     }
-
-    override fun visitField(declaration: IrField): IrField {
-        return super.visitField(declaration).also {
-            it.metadata = declaration.metadata
-        }
-    }
-
     override fun visitProperty(declaration: IrProperty): IrProperty {
         return super.visitProperty(declaration).also {
-            it.copyMetadataFrom(declaration)
             it.copyAttributes(declaration)
         }
     }
 
     override fun visitFile(declaration: IrFile): IrFile {
         includeFileNameInExceptionTrace(declaration) {
-            return super.visitFile(declaration).also {
-                if (it is IrFileImpl) {
-                    it.metadata = declaration.metadata
-                }
-            }
+            return super.visitFile(declaration)
         }
     }
 
@@ -188,13 +151,6 @@
         return super.visitConstructorCall(expression)
     }
 
-    override fun visitLocalDelegatedProperty(
-        declaration: IrLocalDelegatedProperty
-    ): IrLocalDelegatedProperty =
-        super.visitLocalDelegatedProperty(declaration).apply {
-            metadata = declaration.metadata
-        }
-
     private fun IrFunction.needsComposableRemapping(): Boolean {
         if (
             needsComposableRemapping(dispatchReceiverParameter?.type) ||
@@ -390,14 +346,6 @@
             extensionReceiver = original.extensionReceiver?.transform()
         }
 
-    private fun IrElement.copyMetadataFrom(owner: IrMetadataSourceOwner) {
-        if (this is IrMetadataSourceOwner) {
-            metadata = owner.metadata
-        } else {
-            throw IllegalArgumentException("Cannot copy metadata to $this")
-        }
-    }
-
     private fun IrType.isComposable(): Boolean {
         return annotations.hasAnnotation(ComposeFqNames.Composable)
     }
diff --git a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposerParamTransformer.kt b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposerParamTransformer.kt
index 5b7efce..7bb80ae 100644
--- a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposerParamTransformer.kt
+++ b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposerParamTransformer.kt
@@ -120,7 +120,7 @@
         // for each declaration, we create a deepCopy transformer It is important here that we
         // use the "preserving metadata" variant since we are using this copy to *replace* the
         // originals, or else the module we would produce wouldn't have any metadata in it.
-        val transformer = DeepCopyIrTreeWithSymbolsPreservingMetadata(
+        val transformer = DeepCopyIrTreeWithRemappedComposableTypes(
             context,
             symbolRemapper,
             typeRemapper
diff --git a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/DeepCopyPreservingMetadata.kt b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/DeepCopyPreservingMetadata.kt
new file mode 100644
index 0000000..3ef6491
--- /dev/null
+++ b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/DeepCopyPreservingMetadata.kt
@@ -0,0 +1,72 @@
+/*
+ * 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.compiler.plugins.kotlin.lower
+
+import org.jetbrains.kotlin.ir.declarations.IrClass
+import org.jetbrains.kotlin.ir.declarations.IrConstructor
+import org.jetbrains.kotlin.ir.declarations.IrField
+import org.jetbrains.kotlin.ir.declarations.IrFile
+import org.jetbrains.kotlin.ir.declarations.IrLocalDelegatedProperty
+import org.jetbrains.kotlin.ir.declarations.IrProperty
+import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
+import org.jetbrains.kotlin.ir.util.DeepCopyIrTreeWithSymbols
+import org.jetbrains.kotlin.ir.util.SymbolRemapper
+import org.jetbrains.kotlin.ir.util.SymbolRenamer
+import org.jetbrains.kotlin.ir.util.TypeRemapper
+
+internal open class DeepCopyPreservingMetadata(
+    symbolRemapper: SymbolRemapper,
+    typeRemapper: TypeRemapper,
+    symbolRenamer: SymbolRenamer
+) : DeepCopyIrTreeWithSymbols(symbolRemapper, typeRemapper, symbolRenamer) {
+    override fun visitFile(declaration: IrFile): IrFile =
+        super.visitFile(declaration).apply {
+            metadata = declaration.metadata
+        }
+
+    override fun visitClass(declaration: IrClass): IrClass =
+        super.visitClass(declaration).apply {
+            metadata = declaration.metadata
+        }
+
+    override fun visitConstructor(declaration: IrConstructor): IrConstructor =
+        super.visitConstructor(declaration).apply {
+            metadata = declaration.metadata
+        }
+
+    override fun visitSimpleFunction(declaration: IrSimpleFunction): IrSimpleFunction =
+        super.visitSimpleFunction(declaration).apply {
+            metadata = declaration.metadata
+        }
+
+    override fun visitProperty(declaration: IrProperty): IrProperty =
+        super.visitProperty(declaration).apply {
+            metadata = declaration.metadata
+        }
+
+    override fun visitField(declaration: IrField): IrField =
+        super.visitField(declaration).apply {
+            metadata = declaration.metadata
+        }
+
+    override fun visitLocalDelegatedProperty(
+        declaration: IrLocalDelegatedProperty
+    ): IrLocalDelegatedProperty =
+        super.visitLocalDelegatedProperty(declaration).apply {
+            metadata = declaration.metadata
+        }
+}
\ No newline at end of file
diff --git a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/decoys/DecoyTransformBase.kt b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/decoys/DecoyTransformBase.kt
index 6143aff..632e6b00 100644
--- a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/decoys/DecoyTransformBase.kt
+++ b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/decoys/DecoyTransformBase.kt
@@ -16,6 +16,7 @@
 
 package androidx.compose.compiler.plugins.kotlin.lower.decoys
 
+import androidx.compose.compiler.plugins.kotlin.lower.DeepCopyPreservingMetadata
 import androidx.compose.compiler.plugins.kotlin.lower.hasAnnotationSafe
 import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
 import org.jetbrains.kotlin.backend.common.extensions.IrPluginContextImpl
@@ -24,16 +25,9 @@
 import org.jetbrains.kotlin.ir.IrElement
 import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
 import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
-import org.jetbrains.kotlin.ir.declarations.IrClass
-import org.jetbrains.kotlin.ir.declarations.IrConstructor
 import org.jetbrains.kotlin.ir.declarations.IrDeclaration
 import org.jetbrains.kotlin.ir.declarations.IrDeclarationContainer
-import org.jetbrains.kotlin.ir.declarations.IrField
-import org.jetbrains.kotlin.ir.declarations.IrFile
 import org.jetbrains.kotlin.ir.declarations.IrFunction
-import org.jetbrains.kotlin.ir.declarations.IrLocalDelegatedProperty
-import org.jetbrains.kotlin.ir.declarations.IrProperty
-import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
 import org.jetbrains.kotlin.ir.expressions.IrConst
 import org.jetbrains.kotlin.ir.expressions.IrExpression
 import org.jetbrains.kotlin.ir.expressions.IrVararg
@@ -47,10 +41,8 @@
 import org.jetbrains.kotlin.ir.types.IrType
 import org.jetbrains.kotlin.ir.types.IrTypeArgument
 import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
-import org.jetbrains.kotlin.ir.util.DeepCopyIrTreeWithSymbols
 import org.jetbrains.kotlin.ir.util.DeepCopyTypeRemapper
 import org.jetbrains.kotlin.ir.util.IdSignature
-import org.jetbrains.kotlin.ir.util.SymbolRemapper
 import org.jetbrains.kotlin.ir.util.SymbolRenamer
 import org.jetbrains.kotlin.ir.util.TypeRemapper
 import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
@@ -217,7 +209,7 @@
                 return typeRemapper.remapType(type.remapTypeParameters(source, target))
             }
         }
-        val deepCopy = DeepCopySavingMetadata(
+        val deepCopy = DeepCopyPreservingMetadata(
             symbolRemapper,
             typeParamRemapper,
             SymbolRenamer.DEFAULT
@@ -226,46 +218,3 @@
         deepCopy
     }
 }
-
-internal class DeepCopySavingMetadata(
-    symbolRemapper: SymbolRemapper,
-    typeRemapper: TypeRemapper,
-    symbolRenamer: SymbolRenamer
-) : DeepCopyIrTreeWithSymbols(symbolRemapper, typeRemapper, symbolRenamer) {
-    override fun visitFile(declaration: IrFile): IrFile =
-        super.visitFile(declaration).apply {
-            metadata = declaration.metadata
-        }
-
-    override fun visitClass(declaration: IrClass): IrClass =
-        super.visitClass(declaration).apply {
-            metadata = declaration.metadata
-        }
-
-    override fun visitConstructor(declaration: IrConstructor): IrConstructor =
-        super.visitConstructor(declaration).apply {
-            metadata = declaration.metadata
-        }
-
-    override fun visitSimpleFunction(declaration: IrSimpleFunction): IrSimpleFunction =
-        super.visitSimpleFunction(declaration).apply {
-            metadata = declaration.metadata
-        }
-
-    override fun visitProperty(declaration: IrProperty): IrProperty =
-        super.visitProperty(declaration).apply {
-            metadata = declaration.metadata
-        }
-
-    override fun visitField(declaration: IrField): IrField =
-        super.visitField(declaration).apply {
-            metadata = declaration.metadata
-        }
-
-    override fun visitLocalDelegatedProperty(
-        declaration: IrLocalDelegatedProperty
-    ): IrLocalDelegatedProperty =
-        super.visitLocalDelegatedProperty(declaration).apply {
-            metadata = declaration.metadata
-        }
-}
\ No newline at end of file
diff --git a/compose/foundation/foundation-layout/api/current.txt b/compose/foundation/foundation-layout/api/current.txt
index 4339957..c8e0c04 100644
--- a/compose/foundation/foundation-layout/api/current.txt
+++ b/compose/foundation/foundation-layout/api/current.txt
@@ -111,12 +111,6 @@
     method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, float weight, optional boolean fill);
   }
 
-  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope {
-  }
-
-  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope {
-  }
-
   public final class IntrinsicKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
diff --git a/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt b/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt
index 3e7c323..3d72dbe 100644
--- a/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt
+++ b/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt
@@ -114,7 +114,7 @@
   @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalLayoutApi {
   }
 
-  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope {
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope {
   }
 
   public final class FlowLayoutKt {
@@ -122,7 +122,7 @@
     method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static inline void FlowRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional int maxItemsInEachRow, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.FlowRowScope,kotlin.Unit> content);
   }
 
-  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope {
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope {
   }
 
   public final class IntrinsicKt {
diff --git a/compose/foundation/foundation-layout/api/restricted_current.txt b/compose/foundation/foundation-layout/api/restricted_current.txt
index 2b75f19..03cdfb3 100644
--- a/compose/foundation/foundation-layout/api/restricted_current.txt
+++ b/compose/foundation/foundation-layout/api/restricted_current.txt
@@ -114,17 +114,11 @@
     method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, float weight, optional boolean fill);
   }
 
-  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope {
-  }
-
   public final class FlowLayoutKt {
     method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy columnMeasurementHelper(androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, int maxItemsInMainAxis);
     method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy rowMeasurementHelper(androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, int maxItemsInMainAxis);
   }
 
-  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope {
-  }
-
   public final class IntrinsicKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/FlowLayout.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/FlowLayout.kt
index 5d58064..cdec1d5 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/FlowLayout.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/FlowLayout.kt
@@ -126,7 +126,7 @@
  */
 @LayoutScopeMarker
 @Immutable
-@JvmDefaultWithCompatibility
+@ExperimentalLayoutApi
 interface FlowRowScope : RowScope
 
 /**
@@ -134,11 +134,13 @@
  */
 @LayoutScopeMarker
 @Immutable
-@JvmDefaultWithCompatibility
+@ExperimentalLayoutApi
 interface FlowColumnScope : ColumnScope
 
+@OptIn(ExperimentalLayoutApi::class)
 internal object FlowRowScopeInstance : RowScope by RowScopeInstance, FlowRowScope
 
+@OptIn(ExperimentalLayoutApi::class)
 internal object FlowColumnScopeInstance : ColumnScope by ColumnScopeInstance, FlowColumnScope
 
 private fun getVerticalArrangement(verticalArrangement: Arrangement.Vertical):
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Size.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Size.kt
index 78210e2..b0a80c7 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Size.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Size.kt
@@ -38,7 +38,6 @@
 import androidx.compose.ui.unit.constrain
 import androidx.compose.ui.unit.constrainHeight
 import androidx.compose.ui.unit.constrainWidth
-import androidx.compose.ui.unit.dp
 import kotlin.math.roundToInt
 
 /**
@@ -768,12 +767,12 @@
     private val Density.targetConstraints: Constraints
         get() {
             val maxWidth = if (maxWidth != Dp.Unspecified) {
-                maxWidth.coerceAtLeast(0.dp).roundToPx()
+                maxWidth.roundToPx().coerceAtLeast(0)
             } else {
                 Constraints.Infinity
             }
             val maxHeight = if (maxHeight != Dp.Unspecified) {
-                maxHeight.coerceAtLeast(0.dp).roundToPx()
+                maxHeight.roundToPx().coerceAtLeast(0)
             } else {
                 Constraints.Infinity
             }
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Background.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Background.kt
index 910e79f..748d6b1 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Background.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Background.kt
@@ -89,7 +89,7 @@
 )
 
 private class BackgroundElement(
-    private val color: Color? = null,
+    private val color: Color = Color.Unspecified,
     private val brush: Brush? = null,
     private val alpha: Float,
     private val shape: Shape,
@@ -116,7 +116,7 @@
     }
 
     override fun hashCode(): Int {
-        var result = color?.hashCode() ?: 0
+        var result = color.hashCode()
         result = 31 * result + (brush?.hashCode() ?: 0)
         result = 31 * result + alpha.hashCode()
         result = 31 * result + shape.hashCode()
@@ -133,7 +133,7 @@
 }
 
 private class BackgroundNode(
-    var color: Color?,
+    var color: Color,
     var brush: Brush?,
     var alpha: Float,
     var shape: Shape,
@@ -155,7 +155,7 @@
     }
 
     private fun ContentDrawScope.drawRect() {
-        color?.let { drawRect(color = it) }
+        if (color != Color.Unspecified) drawRect(color = color)
         brush?.let { drawRect(brush = it, alpha = alpha) }
     }
 
@@ -166,7 +166,7 @@
             } else {
                 shape.createOutline(size, layoutDirection, this)
             }
-        color?.let { drawOutline(outline, color = it) }
+        if (color != Color.Unspecified) drawOutline(outline, color = color)
         brush?.let { drawOutline(outline, brush = it, alpha = alpha) }
         lastOutline = outline
         lastSize = size
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt
index 5ef5aa7..86fda0b 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt
@@ -46,7 +46,7 @@
 import androidx.compose.ui.platform.debugInspectorInfo
 import androidx.compose.ui.platform.inspectable
 import androidx.compose.ui.semantics.Role
-import androidx.compose.ui.semantics.SemanticsConfiguration
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.semantics.disabled
 import androidx.compose.ui.semantics.onClick
 import androidx.compose.ui.semantics.onLongClick
@@ -645,7 +645,7 @@
     private var onClickLabel: String?,
     private var role: Role?,
     private var onClick: () -> Unit
-) : DelegatingNode(), SemanticsModifierNode, PointerInputModifierNode, KeyInputModifierNode {
+) : DelegatingNode(), PointerInputModifierNode, KeyInputModifierNode {
     abstract val clickablePointerInputNode: AbstractClickablePointerInputNode
     abstract val clickableSemanticsNode: ClickableSemanticsNode
 
@@ -695,9 +695,6 @@
         interactionData.currentKeyPressInteractions.clear()
     }
 
-    override val semanticsConfiguration: SemanticsConfiguration
-        get() = clickableSemanticsNode.semanticsConfiguration
-
     override fun onPointerEvent(
         pointerEvent: PointerEvent,
         pass: PointerEventPass,
@@ -812,26 +809,26 @@
         this.onLongClick = onLongClick
     }
 
-    override val semanticsConfiguration
-        get() = SemanticsConfiguration().apply {
-            isMergingSemanticsOfDescendants = true
-            if (this@ClickableSemanticsNode.role != null) {
-                role = this@ClickableSemanticsNode.role!!
-            }
-            onClick(
-                action = { onClick(); true },
-                label = onClickLabel
-            )
-            if (onLongClick != null) {
-                onLongClick(
-                    action = { onLongClick?.invoke(); true },
-                    label = onLongClickLabel
-                )
-            }
-            if (!enabled) {
-                disabled()
-            }
+    override val shouldMergeDescendantSemantics: Boolean
+        get() = true
+    override fun SemanticsPropertyReceiver.applySemantics() {
+        if (this@ClickableSemanticsNode.role != null) {
+            role = this@ClickableSemanticsNode.role!!
         }
+        onClick(
+            action = { onClick(); true },
+            label = onClickLabel
+        )
+        if (onLongClick != null) {
+            onLongClick(
+                action = { onLongClick?.invoke(); true },
+                label = onLongClickLabel
+            )
+        }
+        if (!enabled) {
+            disabled()
+        }
+    }
 }
 
 private sealed class AbstractClickablePointerInputNode(
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Focusable.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Focusable.kt
index 55ea39a..de22bba 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Focusable.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Focusable.kt
@@ -51,6 +51,7 @@
 import androidx.compose.ui.platform.debugInspectorInfo
 import androidx.compose.ui.platform.inspectable
 import androidx.compose.ui.semantics.SemanticsConfiguration
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.semantics.focused
 import androidx.compose.ui.semantics.requestFocus
 import kotlinx.coroutines.launch
@@ -246,9 +247,9 @@
     }
 
     // TODO(levima) Remove this once delegation can propagate this events on its own
-    override val semanticsConfiguration: SemanticsConfiguration
-        get() = focusableSemanticsNode.semanticsConfiguration
-
+    override fun SemanticsPropertyReceiver.applySemantics() {
+        with(focusableSemanticsNode) { applySemantics() }
+    }
     // TODO(levima) Remove this once delegation can propagate this events on its own
     override fun onGloballyPositioned(coordinates: LayoutCoordinates) {
         focusedBoundsNode.onGloballyPositioned(coordinates)
@@ -362,11 +363,10 @@
         this.isFocused = focused
     }
 
-    override val semanticsConfiguration: SemanticsConfiguration
-        get() = semanticsConfigurationCache.apply {
-            focused = isFocused
-            requestFocus {
-                this@FocusableSemanticsNode.requestFocus()
-            }
+    override fun SemanticsPropertyReceiver.applySemantics() {
+        focused = isFocused
+        requestFocus {
+            this@FocusableSemanticsNode.requestFocus()
         }
+    }
 }
\ No newline at end of file
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt
index cb376a7..23c078e 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt
@@ -181,7 +181,8 @@
  */
 @Deprecated(
     "Please use the overload without pageCount. pageCount should be provided " +
-        "through PagerState.", ReplaceWith(
+        "through PagerState.",
+    ReplaceWith(
         """HorizontalPager(
             modifier = modifier,
             state = state,
@@ -202,8 +203,9 @@
             "androidx.compose.foundation.layout.PaddingValues",
             "androidx.compose.foundation.pager.PageSize",
             "androidx.compose.foundation.pager.PagerDefaults"
-        )
-    )
+        ),
+    ),
+    level = DeprecationLevel.ERROR
 )
 @Composable
 @ExperimentalFoundationApi
@@ -387,7 +389,8 @@
             "androidx.compose.foundation.pager.PageSize",
             "androidx.compose.foundation.pager.PagerDefaults"
         )
-    )
+    ),
+    level = DeprecationLevel.ERROR
 )
 @Composable
 @ExperimentalFoundationApi
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerState.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerState.kt
index 23e45b8..1e9132b 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerState.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerState.kt
@@ -103,7 +103,7 @@
             ){
                 // provide pageCount
             }"""
-    )
+    ), level = DeprecationLevel.ERROR
 )
 @ExperimentalFoundationApi
 @Composable
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/SelectableTextAnnotatedStringNode.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/SelectableTextAnnotatedStringNode.kt
index f8831fe..3616033 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/SelectableTextAnnotatedStringNode.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/SelectableTextAnnotatedStringNode.kt
@@ -30,9 +30,7 @@
 import androidx.compose.ui.node.DrawModifierNode
 import androidx.compose.ui.node.GlobalPositionAwareModifierNode
 import androidx.compose.ui.node.LayoutModifierNode
-import androidx.compose.ui.node.SemanticsModifierNode
 import androidx.compose.ui.node.invalidateMeasurement
-import androidx.compose.ui.semantics.SemanticsConfiguration
 import androidx.compose.ui.text.AnnotatedString
 import androidx.compose.ui.text.Placeholder
 import androidx.compose.ui.text.TextLayoutResult
@@ -59,8 +57,7 @@
     onPlaceholderLayout: ((List<Rect?>) -> Unit)? = null,
     private val selectionController: SelectionController? = null,
     overrideColor: ColorProducer? = null
-) : DelegatingNode(), LayoutModifierNode, DrawModifierNode, GlobalPositionAwareModifierNode,
-    SemanticsModifierNode {
+) : DelegatingNode(), LayoutModifierNode, DrawModifierNode, GlobalPositionAwareModifierNode {
 
     private val delegate = delegate(
         TextAnnotatedStringNode(
@@ -96,9 +93,6 @@
         constraints: Constraints
     ): MeasureResult = delegate.measureNonExtension(this, measurable, constraints)
 
-    override val semanticsConfiguration: SemanticsConfiguration
-        get() = delegate.semanticsConfiguration
-
     override fun IntrinsicMeasureScope.minIntrinsicWidth(
         measurable: IntrinsicMeasurable,
         height: Int
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/TextAnnotatedStringNode.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/TextAnnotatedStringNode.kt
index 93b37e5..54b93c4 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/TextAnnotatedStringNode.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/TextAnnotatedStringNode.kt
@@ -43,7 +43,7 @@
 import androidx.compose.ui.node.invalidateLayer
 import androidx.compose.ui.node.invalidateMeasurement
 import androidx.compose.ui.node.invalidateSemantics
-import androidx.compose.ui.semantics.SemanticsConfiguration
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.semantics.getTextLayoutResult
 import androidx.compose.ui.semantics.text
 import androidx.compose.ui.text.AnnotatedString
@@ -207,7 +207,6 @@
         callbacksChanged: Boolean
     ) {
         if (textChanged) {
-            _semanticsConfiguration = null
             invalidateSemantics()
         }
 
@@ -230,11 +229,9 @@
         }
     }
 
-    private var _semanticsConfiguration: SemanticsConfiguration? = null
-
     private var semanticsTextLayoutResult: ((MutableList<TextLayoutResult>) -> Boolean)? = null
 
-    private fun generateSemantics(text: AnnotatedString): SemanticsConfiguration {
+    override fun SemanticsPropertyReceiver.applySemantics() {
         var localSemanticsTextLayoutResult = semanticsTextLayoutResult
         if (localSemanticsTextLayoutResult == null) {
             localSemanticsTextLayoutResult = { textLayoutResult ->
@@ -245,24 +242,10 @@
             }
             semanticsTextLayoutResult = localSemanticsTextLayoutResult
         }
-        return SemanticsConfiguration().also {
-            it.isMergingSemanticsOfDescendants = false
-            it.isClearingSemantics = false
-            it.text = text
-            it.getTextLayoutResult(action = localSemanticsTextLayoutResult)
-        }
+        text = this@TextAnnotatedStringNode.text
+        getTextLayoutResult(action = localSemanticsTextLayoutResult)
     }
 
-    override val semanticsConfiguration: SemanticsConfiguration
-        get() {
-            var localSemantics = _semanticsConfiguration
-            if (localSemantics == null) {
-                localSemantics = generateSemantics(text)
-                _semanticsConfiguration = localSemantics
-            }
-            return localSemantics
-        }
-
     fun measureNonExtension(
         measureScope: MeasureScope,
         measurable: Measurable,
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/TextStringSimpleNode.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/TextStringSimpleNode.kt
index 09d2c75..fccf555 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/TextStringSimpleNode.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/TextStringSimpleNode.kt
@@ -43,7 +43,7 @@
 import androidx.compose.ui.node.invalidateLayer
 import androidx.compose.ui.node.invalidateMeasurement
 import androidx.compose.ui.node.invalidateSemantics
-import androidx.compose.ui.semantics.SemanticsConfiguration
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.semantics.getTextLayoutResult
 import androidx.compose.ui.semantics.text
 import androidx.compose.ui.text.AnnotatedString
@@ -168,7 +168,6 @@
         layoutChanged: Boolean
     ) {
         if (textChanged) {
-            _semanticsConfiguration = null
             invalidateSemantics()
         }
 
@@ -190,11 +189,9 @@
         }
     }
 
-    private var _semanticsConfiguration: SemanticsConfiguration? = null
-
     private var semanticsTextLayoutResult: ((MutableList<TextLayoutResult>) -> Boolean)? = null
 
-    private fun generateSemantics(text: String): SemanticsConfiguration {
+    override fun SemanticsPropertyReceiver.applySemantics() {
         var localSemanticsTextLayoutResult = semanticsTextLayoutResult
         if (localSemanticsTextLayoutResult == null) {
             localSemanticsTextLayoutResult = { textLayoutResult ->
@@ -206,24 +203,10 @@
             }
             semanticsTextLayoutResult = localSemanticsTextLayoutResult
         }
-        return SemanticsConfiguration().also {
-            it.isMergingSemanticsOfDescendants = false
-            it.isClearingSemantics = false
-            it.text = AnnotatedString(text)
-            it.getTextLayoutResult(action = localSemanticsTextLayoutResult)
-        }
+        this.text = AnnotatedString(this@TextStringSimpleNode.text)
+        getTextLayoutResult(action = localSemanticsTextLayoutResult)
     }
 
-    override val semanticsConfiguration: SemanticsConfiguration
-        get() {
-            var localSemantics = _semanticsConfiguration
-            if (localSemantics == null) {
-                localSemantics = generateSemantics(text)
-                _semanticsConfiguration = localSemantics
-            }
-            return localSemantics
-        }
-
     /**
      * Text layout happens here
      */
diff --git a/compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/AlertDialogTest.kt b/compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/AlertDialogTest.kt
index e961cd7..147f199 100644
--- a/compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/AlertDialogTest.kt
+++ b/compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/AlertDialogTest.kt
@@ -28,9 +28,13 @@
 import androidx.compose.ui.layout.onSizeChanged
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalDensity
+import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.semantics.semantics
 import androidx.compose.ui.test.captureToImage
+import androidx.compose.ui.test.getUnclippedBoundsInRoot
 import androidx.compose.ui.test.isDialog
 import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithTag
 import androidx.compose.ui.unit.dp
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.FlakyTest
@@ -117,4 +121,45 @@
             assertThat(dialogWidth).isLessThan(screenWidth)
         }
     }
+
+    @Test
+    fun alertDialog_positioningActionsWithLongText() {
+        rule.setMaterialContent {
+            AlertDialog(
+                onDismissRequest = {},
+                title = { Text(text = "Title") },
+                text = { Text("Text") },
+                confirmButton = {
+                    TextButton(
+                        onClick = { /* doSomething() */ },
+                        Modifier
+                            .testTag(ConfirmButtonTestTag)
+                            .semantics(mergeDescendants = true) {}
+                    ) {
+                        Text("Confirm with a long text")
+                    }
+                },
+                dismissButton = {
+                    TextButton(
+                        onClick = { /* doSomething() */ },
+                        Modifier
+                            .testTag(DismissButtonTestTag)
+                            .semantics(mergeDescendants = true) {}
+                    ) {
+                        Text("Dismiss with a long text")
+                    }
+                }
+            )
+        }
+
+        val confirmBtBounds = rule.onNodeWithTag(ConfirmButtonTestTag).getUnclippedBoundsInRoot()
+        val dismissBtBounds = rule.onNodeWithTag(DismissButtonTestTag).getUnclippedBoundsInRoot()
+
+        assert(dismissBtBounds.top > confirmBtBounds.bottom) {
+            "dismiss action should appear below the confirm action"
+        }
+    }
 }
+
+private const val ConfirmButtonTestTag = "confirmButton"
+private const val DismissButtonTestTag = "dismissButton"
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt
index 0c41e95..a469837 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt
@@ -214,7 +214,8 @@
             if (sequences.isNotEmpty()) {
                 crossAxisSpace += crossAxisSpacing.roundToPx()
             }
-            sequences += currentSequence.toList()
+            // Ensures that confirming actions appear above dismissive actions.
+            sequences.add(0, currentSequence.toList())
             crossAxisSizes += currentCrossAxisSize
             crossAxisPositions += crossAxisSpace
 
diff --git a/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/AlertDialogTest.kt b/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/AlertDialogTest.kt
index 83b1f2b..d3ed41d 100644
--- a/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/AlertDialogTest.kt
+++ b/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/AlertDialogTest.kt
@@ -418,6 +418,44 @@
     }
 
     @Test
+    fun alertDialog_positioningActionsWithLongText() {
+        rule.setMaterialContent(lightColorScheme()) {
+            AlertDialog(
+                onDismissRequest = {},
+                title = { Text(text = "Title") },
+                text = { Text("Text") },
+                confirmButton = {
+                    TextButton(
+                        onClick = { /* doSomething() */ },
+                        Modifier
+                            .testTag(ConfirmButtonTestTag)
+                            .semantics(mergeDescendants = true) {}
+                    ) {
+                        Text("Confirm with a long text")
+                    }
+                },
+                dismissButton = {
+                    TextButton(
+                        onClick = { /* doSomething() */ },
+                        Modifier
+                            .testTag(DismissButtonTestTag)
+                            .semantics(mergeDescendants = true) {}
+                    ) {
+                        Text("Dismiss with a long text")
+                    }
+                }
+            )
+        }
+
+        val confirmBtBounds = rule.onNodeWithTag(ConfirmButtonTestTag).getUnclippedBoundsInRoot()
+        val dismissBtBounds = rule.onNodeWithTag(DismissButtonTestTag).getUnclippedBoundsInRoot()
+
+        assert(dismissBtBounds.top > confirmBtBounds.bottom) {
+            "dismiss action should appear below the confirm action"
+        }
+    }
+
+    @Test
     fun alertDialog_positioningWithLazyColumnText() {
         rule.setMaterialContent(lightColorScheme()) {
             AlertDialog(
diff --git a/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/NavigationBarScreenshotTest.kt b/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/NavigationBarScreenshotTest.kt
index 3693245..3c05d96 100644
--- a/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/NavigationBarScreenshotTest.kt
+++ b/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/NavigationBarScreenshotTest.kt
@@ -21,6 +21,7 @@
 import androidx.compose.foundation.interaction.MutableInteractionSource
 import androidx.compose.foundation.interaction.PressInteraction
 import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.height
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.Favorite
 import androidx.compose.runtime.Composable
@@ -33,6 +34,7 @@
 import androidx.compose.ui.test.captureToImage
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.compose.ui.test.onNodeWithTag
+import androidx.compose.ui.unit.dp
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
 import androidx.test.filters.SdkSuppress
@@ -112,6 +114,25 @@
     }
 
     @Test
+    fun lightTheme_customHeight() {
+        val interactionSource = MutableInteractionSource()
+
+        var scope: CoroutineScope? = null
+
+        composeTestRule.setMaterialContent(lightColorScheme()) {
+            scope = rememberCoroutineScope()
+            DefaultNavigationBar(interactionSource, Modifier.height(64.dp))
+        }
+
+        assertNavigationBarMatches(
+            scope = scope!!,
+            interactionSource = interactionSource,
+            interaction = null,
+            goldenIdentifier = "navigationBar_lightTheme_customHeight"
+        )
+    }
+
+    @Test
     fun darkTheme_defaultColors() {
         val interactionSource = MutableInteractionSource()
 
@@ -211,14 +232,16 @@
  *
  * @param interactionSource the [MutableInteractionSource] for the first [NavigationBarItem], to
  * control its visual state.
+ * @param modifier the [Modifier] applied to the navigation bar
  * @param setUnselectedItemsAsDisabled when true, marks unselected items as disabled
  */
 @Composable
 private fun DefaultNavigationBar(
     interactionSource: MutableInteractionSource,
+    modifier: Modifier = Modifier,
     setUnselectedItemsAsDisabled: Boolean = false,
 ) {
-    Box(Modifier.semantics(mergeDescendants = true) {}.testTag(Tag)) {
+    Box(modifier.semantics(mergeDescendants = true) {}.testTag(Tag)) {
         NavigationBar {
             NavigationBarItem(
                 icon = { Icon(Icons.Filled.Favorite, null) },
diff --git a/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/NavigationBarTest.kt b/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/NavigationBarTest.kt
index e9a0168..2f6c21f 100644
--- a/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/NavigationBarTest.kt
+++ b/compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/NavigationBarTest.kt
@@ -19,6 +19,7 @@
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.WindowInsets
 import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.height
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.Favorite
 import androidx.compose.material3.tokens.NavigationBarTokens
@@ -266,42 +267,43 @@
     @Test
     fun navigationBarItemContent_withLabel_sizeAndPosition() {
         rule.setMaterialContent(lightColorScheme()) {
-            Box {
-                NavigationBar {
-                    NavigationBarItem(
-                        modifier = Modifier.testTag("item"),
-                        icon = {
-                            Icon(Icons.Filled.Favorite, null, Modifier.testTag("icon"))
-                        },
-                        label = {
-                            Text("ItemText")
-                        },
-                        selected = true,
-                        onClick = {}
-                    )
-                }
+            NavigationBar {
+                NavigationBarItem(
+                    modifier = Modifier.testTag("item"),
+                    icon = {
+                        Icon(Icons.Filled.Favorite, null, Modifier.testTag("icon"))
+                    },
+                    label = {
+                        Text("ItemText")
+                    },
+                    selected = true,
+                    onClick = {}
+                )
             }
         }
 
         val itemBounds = rule.onNodeWithTag("item").getUnclippedBoundsInRoot()
         val iconBounds = rule.onNodeWithTag("icon", useUnmergedTree = true)
             .getUnclippedBoundsInRoot()
-        val textBounds = rule.onNodeWithText("ItemText", useUnmergedTree = true)
-            .getUnclippedBoundsInRoot()
 
-        // Distance from the bottom of the item to the text bottom, and from the top of the icon to
-        // the top of the item
-        val verticalPadding = NavigationBarItemVerticalPadding
-
-        val itemBottom = itemBounds.height + itemBounds.top
-        // Text bottom should be `verticalPadding` from the bottom of the item
-        textBounds.bottom.assertIsEqualTo(itemBottom - verticalPadding)
+        // Distance from the top of the item to the top of the icon for the default height
+        val verticalPadding = 16.dp
 
         rule.onNodeWithTag("icon", useUnmergedTree = true)
-            // The icon should be centered in the item
+            // The icon should be horizontally centered in the item
             .assertLeftPositionInRootIsEqualTo((itemBounds.width - iconBounds.width) / 2)
             // The top of the icon is `verticalPadding` below the top of the item
             .assertTopPositionInRootIsEqualTo(itemBounds.top + verticalPadding)
+
+        val iconBottom = iconBounds.top + iconBounds.height
+        // Text should be `IndicatorVerticalPadding + NavigationBarIndicatorToLabelPadding` from the
+        // bottom of the icon
+        rule.onNodeWithText("ItemText", useUnmergedTree = true)
+            .getUnclippedBoundsInRoot()
+            .top
+            .assertIsEqualTo(
+                iconBottom + IndicatorVerticalPadding + NavigationBarIndicatorToLabelPadding
+            )
     }
 
     @Test
@@ -367,6 +369,49 @@
     }
 
     @Test
+    fun navigationBarItemContent_customHeight_withLabel_sizeAndPosition() {
+        val defaultHeight = NavigationBarTokens.ContainerHeight
+        val customHeight = 64.dp
+
+        rule.setMaterialContent(lightColorScheme()) {
+            NavigationBar(Modifier.height(customHeight)) {
+                NavigationBarItem(
+                    modifier = Modifier.testTag("item"),
+                    icon = {
+                        Icon(Icons.Filled.Favorite, null, Modifier.testTag("icon"))
+                    },
+                    label = { Text("Label") },
+                    selected = true,
+                    onClick = {}
+                )
+            }
+        }
+
+        // Vertical padding is removed symmetrically from top and bottom for smaller heights
+        val verticalPadding = 16.dp - (defaultHeight - customHeight) / 2
+
+        val itemBounds = rule.onNodeWithTag("item").getUnclippedBoundsInRoot()
+        val iconBounds = rule.onNodeWithTag("icon", useUnmergedTree = true)
+            .getUnclippedBoundsInRoot()
+
+        rule.onNodeWithTag("icon", useUnmergedTree = true)
+            // The icon should be horizontally centered in the item
+            .assertLeftPositionInRootIsEqualTo((itemBounds.width - iconBounds.width) / 2)
+            // The top of the icon is `verticalPadding` below the top of the item
+            .assertTopPositionInRootIsEqualTo(itemBounds.top + verticalPadding)
+
+        val iconBottom = iconBounds.top + iconBounds.height
+        // Text should be `IndicatorVerticalPadding + NavigationBarIndicatorToLabelPadding` from the
+        // bottom of the item
+        rule.onNodeWithText("Label", useUnmergedTree = true)
+            .getUnclippedBoundsInRoot()
+            .top
+            .assertIsEqualTo(
+                iconBottom + IndicatorVerticalPadding + NavigationBarIndicatorToLabelPadding
+            )
+    }
+
+    @Test
     fun navigationBar_selectNewItem() {
         rule.setMaterialContent(lightColorScheme()) {
             var selectedItem by remember { mutableStateOf(0) }
diff --git a/compose/material3/material3/src/androidMain/res/values-af/strings.xml b/compose/material3/material3/src/androidMain/res/values-af/strings.xml
deleted file mode 100644
index 50ba928..0000000
--- a/compose/material3/material3/src/androidMain/res/values-af/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialoog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Maak toe"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Soek"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Voorstelle hieronder"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Kies datum"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Geselekteerde datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Skakel oor na kies van ’n jaar"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Swiep om ’n jaar te kies of tik om terug te skakel om ’n dag te kies"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Verander na volgende maand"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Verander na vorige maand"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Gaan na jaar %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Huidige keuse: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Geen"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Vandag"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Jaarkieser sigbaar"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Kies datum"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Datum wat ingevoer is"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Datum wat ingevoer is: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Geen"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datum word nie toegelaat nie: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datum pas nie by die verwagte patroon nie: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datum val buite die omvang van die verwagte jaartal %1$s-%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Skakel oor na kalenderinvoermodus"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Skakel oor na teksinvoermodus"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Rollees om later jare te wys"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Rollees om vroeër jare te wys"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Kies datums"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Begindatum"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Einddatum"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Rollees om die volgende maand te wys"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Rollees om die vorige maand te wys"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Binne reikwydte"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Voer datums in"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Ongeldige datumreeksinvoer"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Sleephandvatsel"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Vou onderste blad in"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Maak onderste blad toe"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Vou onderste blad uit"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Nutswenk"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Wys nutswenk"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"nm."</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"vm."</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Kies vm. of nm."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Kies uur"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Kies minute"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d uur"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d uur"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minute"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuut"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Uur"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"vir minute"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"vir uur"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-am/strings.xml b/compose/material3/material3/src/androidMain/res/values-am/strings.xml
deleted file mode 100644
index 7c545ef..0000000
--- a/compose/material3/material3/src/androidMain/res/values-am/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"መገናኛ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"አሰናብት"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ፍለጋ"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"የአስተያየት ጥቆማዎች ከታች"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"ቀን ይምረጡ"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"የተመረጠው ቀን"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ወደ ዓመት መምረጥ ቀይር"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ዓመት ለመምረጥ ያንሸራትቱ ወይም ወደ ቀንን መምረጥ መልሶ ለመቀየር መታ ያድርጉ"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"ወደ የሚቀጥለው ወር ቀይር"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"ወደ ቀዳሚው ወር ቀይር"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"ወደ ዓመት %1$s ያስሱ"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"የአሁን ምርጫ፦ %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ምንም"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ዛሬ"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"ዓመት መራጭ ይታያል"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"ቀን ይምረጡ"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"የገባው ቀን"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"ቀን"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"የገባው ቀን፦ %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ምንም"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"ቀን አልተፈቀደም፦ %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"ቀኑ ከተጠበቀው ስርዓተ ጥለት ጋር አይዛመድም፦ %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"ቀን ከተጠበቀው የዓመት ክልል ውጪ ነው %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"ወደ የቀን መቁጠሪያ ግቤት ሁነታ ቀይር"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ወደ የጽሁፍ ግቤት ሁነታ ቀይር"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"ከዚህ በኋላ ያሉ ዓመታትን ለማሳየት ይሸብልሉ"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"ቀደም ያሉ ዓመታትን ለማሳየት ይሸብልሉ"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"ቀናትን ይምረጡ"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"የመጀመሪያ ቀን"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"የማብቂያ ቀን"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"ቀጣዩን ወር ለማሳየት ይሸብልሉ"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"ቀዳሚውን ወር ለማሳየት ይሸብልሉ"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"በክልል ውስጥ"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"ቀናትን ያስገቡ"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"ልክ ያልሆነ የቀን ክልል ግቤት"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"መያዣ ይጎትቱ"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"የግርጌ ሉህን ይሰብስቡ"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"የግርጌ ሉህን ይሰብስቡ"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"የግርጌ ሉህ ይዘርጉ"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"የመሣሪያ ጥቆማ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"መሣሪያ ጥቆማን አሳይ"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"ከሰዓት"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"ጠዋት"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"ጠዋት ወይም ከሰዓትን ይምረጡ"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"ሰዓት ምረጥ"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"ደቂቃዎች ምረጥ"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d ሰዓት"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ሰዓታት"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d ደቂቃዎች"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"ደቂቃ"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ሰዓት"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"ለደቂቃዎች"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ለሰዓት"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ar/strings.xml b/compose/material3/material3/src/androidMain/res/values-ar/strings.xml
deleted file mode 100644
index 3707858..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ar/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"مربّع حوار"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"إغلاق"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"بحث"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"إليك الاقتراحات:"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"اختيار تاريخ"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"التاريخ المحدَّد"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"التبديل لاختيار سنة"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"مرِّر سريعًا لتحديد عام، أو انقر للرجوع إلى تحديد يوم."</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"التغيير إلى الشهر التالي"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"التغيير إلى الشهر السابق"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"‏الانتقال إلى عام %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"‏التحديد الحالي: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"بدون تاريخ"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"اليوم"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"أداة اختيار الأعوام مرئية"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"اختيار تاريخ"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"التاريخ الذي تم إدخاله"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"التاريخ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"‏التاريخ الذي تم إدخاله: ‎%1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"بدون تاريخ"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"‏التاريخ غير مسموح به: ‎%1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"‏لا يتوافق التاريخ مع النمط المتوقَّع: ‎%1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"‏التاريخ خارج نطاق الأعوام المتوقَّع: ‎%1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"التبديل إلى وضع \"الإدخال في التقويم\""</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"التبديل إلى وضع \"إدخال النص\""</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"انتقِل للأسفل/للأعلى لإظهار السنوات التالية."</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"انتقِل للأسفل/للأعلى لإظهار السنوات السابقة."</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"اختيار التواريخ"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"تاريخ البدء"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"تاريخ الانتهاء"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"انتقِل للأسفل/للأعلى لإظهار الشهر التالي."</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"انتقِل للأسفل/للأعلى لإظهار الشهر السابق."</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"في النطاق"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"إدخال التواريخ"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"إدخال نطاق زمني غير صالح"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"مقبض السحب"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"تصغير البطاقة السفلية"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"إغلاق البطاقة السفلية"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"توسيع البطاقة السفلية"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"تلميح"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"إظهار التلميح"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"م"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"ص"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"يُرجى اختيار ص (صباحًا) أو م (مساءً)."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"اختيار الساعة"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"اختيار الدقائق"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"‏الساعة %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"‏%1$d ساعة"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"‏%1$d دقيقة"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"دقيقة"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ساعة"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"لمدة دقائق"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"لمدة ساعة"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-as/strings.xml b/compose/material3/material3/src/androidMain/res/values-as/strings.xml
deleted file mode 100644
index 8427a67..0000000
--- a/compose/material3/material3/src/androidMain/res/values-as/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ডায়ল’গ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"অগ্ৰাহ্য কৰক"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"সন্ধান কৰক"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"তলত পৰামৰ্শ দেখুওৱা হৈছে"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"তাৰিখ বাছনি কৰক"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"বাছনি কৰা তাৰিখ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"বছৰ বাছনি কৰাৰ ছুইচ"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"এটা বছৰ বাছনি কৰিবলৈ ছোৱাইপ কৰক অথবা এটা দিন বাছনি কৰাৰ সুবিধাটোলৈ উভতি যাবলৈ টিপক"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"পৰৱৰ্তী মাহলৈ সলনি কৰক"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"পূৰ্বৱৰ্তী মাহলৈ সলনি কৰক"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"বৰ্ষ %1$sলৈ নেভিগে’ট কৰক"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"বৰ্তমানৰ বাছনি: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"একো নাই"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"আজি"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"বছৰ বাছনিকৰ্তা দৃশ্যমান"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"তাৰিখ বাছনি কৰক"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"দিয়া তাৰিখ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"তাৰিখ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"দিয়া তাৰিখ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"একো নাই"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"অনুমোদিত নোহোৱা তাৰিখ: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"তাৰিখটো এই প্ৰত্যাশিত আৰ্হিটোৰ সৈতে মিলা নাই: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"তাৰিখটো প্ৰত্যাশিত বছৰৰ পৰিসৰ %1$s - %2$sৰ বাহিৰৰ"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"কেলেণ্ডাৰ ইনপুট ম’ডলৈ সলনি কৰক"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"পাঠ ইনপুট ম’ডলৈ সলনি কৰক"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"পাছৰ বছৰবোৰ দেখুৱাবলৈ স্ক্ৰ’ল কৰক"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"আগৰ বছৰবোৰ দেখুৱাবলৈ স্ক্ৰ’ল কৰক"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"তাৰিখ বাছনি কৰক"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"আৰম্ভণিৰ তাৰিখ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"সমাপ্তিৰ তাৰিখ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"পৰৱৰ্তী মাহটো দেখুৱাবলৈ স্ক্ৰ’ল কৰক"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"পূৰ্বৱৰ্তী মাহটো দেখুৱাবলৈ স্ক্ৰ’ল কৰক"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"পৰিসৰৰ ভিতৰত আছে"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"তাৰিখ দিয়ক"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"অমান্য তাৰিখৰ পৰিসৰৰ ইনপুট"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ড্ৰেগ হেণ্ডেল"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"তলৰ শ্বীটখন সংকোচন কৰক"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"তলৰ শ্বীটখন অগ্ৰাহ্য কৰক"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"তলৰ শ্বীটখন বিস্তাৰ কৰক"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"টুলটিপ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"টুলটিপ দেখুৱাওক"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"পৰাহ্ন"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"পুৱা"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"পূৰ্বাহ্ন অথবা অপৰাহ্ন বাছনি কৰক"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"ঘণ্টা বাছনি কৰক"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"মিনিট বাছনি কৰক"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d বাজিছে"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%d ঘণ্টা"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%d মিনিট"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"মিনিট"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ঘণ্টা"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"মিনিটৰ বাবে"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ঘণ্টাৰ বাবে"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-az/strings.xml b/compose/material3/material3/src/androidMain/res/values-az/strings.xml
deleted file mode 100644
index c6d0f72..0000000
--- a/compose/material3/material3/src/androidMain/res/values-az/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialoq"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Qapadın"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Axtarış"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Təkliflər aşağıdadır"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Tarix seçin"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Seçilmiş tarix"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"İl seçiminə keçin"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"İl seçmək üçün sürüşdürün və ya gün seçiminə qayıtmaq üçün toxunun"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Növbəti aya dəyişin"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Əvvəlki aya dəyişin"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Bu ilə keçin: %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Cari seçim: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Heç biri"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Bu gün"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"İl seçicisi görünür"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Tarix seçin"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Daxil edilmiş tarix"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Tarix"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Daxil edilmiş tarix: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Heç biri"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Tarixə icazə verilmir: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Tarix gözlənilən modelə uyğun gəlmir: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Tarix gözlənilən il aralığından kənardır: %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Təqvim daxiletmə rejiminə keçin"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Mətn daxiletmə rejiminə keçin"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Sonrakı illəri göstərmək üçün sürüşdürün"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Əvvəlki illəri göstərmək üçün sürüşdürün"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Tarixləri seçin"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Başlama tarixi"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Bitmə tarixi"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Növbəti ayı göstərmək üçün sürüşdürün"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Əvvəlki ayı göstərmək üçün sürüşdürün"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Bu aralıqda"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Tarixləri daxil edin"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Yanlış tarix aralığı daxiletməsi"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Dəstəyi çəkin"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Aşağıdakı vərəqi yığcamlaşdırın"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Aşağıdakı vərəqi rədd edin"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Aşağıdakı vərəqi genişləndirin"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Alət izahı"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"İpucu göstərin"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Gündüz və ya axşam seçin"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Saatı seçin"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Dəqiqə seçin"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Saat: %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d saat"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d dəqiqə"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Dəqiqə"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Saat"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"dəqiqəlik"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"saatlıq"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-b+sr+Latn/strings.xml b/compose/material3/material3/src/androidMain/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index bfca44cb..0000000
--- a/compose/material3/material3/src/androidMain/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dijalog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Odbacite"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Pretraga"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Predlozi su u nastavku"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Izaberite datum"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Izabrani datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Pređite na izbor godine"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Prevucite da biste izabrali godinu ili dodirnite da biste se vratili na izbor dana"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Pređite na sledeći mesec"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Pređite na prethodni mesec"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Idite na godinu: %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Aktuelni izbor: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ništa"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Danas"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Vidljiv birač godina"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Izaberite datum"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Uneti datum"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Uneti datum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ništa"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datum nije dozvoljen: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datum ne odgovara očekivanom šablonu: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datum je izvan očekivanog opsega godina %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Pređite na režim unosa u Kalendaru"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Pređite na režim unosa teksta"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Pomerajte da bi se prikazale kasnije godine"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Pomerajte da bi se prikazale ranije godine"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Izaberite datume"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Datum početka"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Datum završetka"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Pomerajte da bi se prikazao sledeći mesec"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Pomerajte da bi se prikazao prethodni mesec"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"U dometu"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Unesite datume"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Unos opsega datuma je nevažeći"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Identifikator za prevlačenje"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Skupi donju tabelu"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Odbaci donju tabelu"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Proširi donju tabelu"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Objašnjenje"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Prikaži objašnjenje"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"po"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"pr"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Izaberite pre podne ili po podne"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Izaberite sat"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Izaberite minute"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d č"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d č"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d min"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minut"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Sat"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"za minute"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"za sate"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-be/strings.xml b/compose/material3/material3/src/androidMain/res/values-be/strings.xml
deleted file mode 100644
index cbb9ad2..0000000
--- a/compose/material3/material3/src/androidMain/res/values-be/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Дыялогавае акно"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Закрыць"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Пошук"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Прапановы ўнізе"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Выберыце дату"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Выбраная дата"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Перайсці да выбару года"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Правядзіце пальцам, каб выбраць год, або націсніце, каб вярнуцца да выбару даты"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Перайсці да наступнага месяца"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Перайсці да папярэдняга месяца"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Перайсці ў год %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Бягучы выбар: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Не выбрана"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Сёння"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Бачны інструмент выбару года"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Выберыце дату"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Уведзеная дата"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Дата"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Уведзеная дата: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Без абмежаванняў"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Дата забаронена: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Дата не адпавядае ўзору: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Дата выходзіць за дазволены дыяпазон гадоў %1$s-%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Пераключыцца ў рэжым уводу \"Каляндар\""</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Пераключыцца ў рэжым уводу \"Тэкст\""</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Прагартайце экран, каб праглядзець пазнейшыя гады"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Прагартайце экран, каб праглядзець ранейшыя гады"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Выберыце даты"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Дата пачатку"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Дата заканчэння"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Прагартайце экран, каб праглядзець наступны месяц"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Прагартайце экран, каб праглядзець мінулы месяц"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"У зоне дасягальнасці"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Увядзіце даты"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Уведзены няправільны дыяпазон дат"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Маркер перацягвання"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Згарнуць ніжні аркуш"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Закрыць ніжні аркуш"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Разгарнуць ніжні аркуш"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Падказка"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Паказваць усплывальную падказку"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"пасля паўдня"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"да паўдня"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Выберыце AM (да паўдня) або PM (пасля паўдня)"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Выберыце гадзіны"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Выберыце хвіліны"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d гадз"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d гадз"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d хв"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Хвіліны"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Гадзіны"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"хвіліны"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"гадзіны"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-bg/strings.xml b/compose/material3/material3/src/androidMain/res/values-bg/strings.xml
deleted file mode 100644
index 557d55a..0000000
--- a/compose/material3/material3/src/androidMain/res/values-bg/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Диалогов прозорец"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Отхвърляне"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Търсене"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Предложенията са по-долу"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Избиране на дата"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Избрана дата"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Превключване към избиране на година"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Прекарайте пръст, за да изберете година, или докоснете, за да се върнете към избора на ден"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Преминаване към следващия месец"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Преминаване към предишния месец"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Навигиране до %1$s година"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Текущ избор: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Без"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Днес"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Инструментът за избор на година е видим"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Избиране на дата"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Въведена дата"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Дата"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Въведена дата: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Няма"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Датата не е разрешена: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Датата не е в очаквания формат: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Датата е извън очаквания годишен диапазон: %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Превключване към режим за въвеждане в календар"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Превключване към режим за въвеждане на текст"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Превъртете, за да видите следващите години"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Превъртете, за да видите миналите години"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Избиране на дати"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Начална дата"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Крайна дата"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Превъртете, за да видите следващия месец"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Превъртете, за да видите предишния месец"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"В диапазона"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Въведете дати"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Въведен е невалиден период от време"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Манипулатор за преместване с плъзгане"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Свиване на долния лист"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Отхвърляне на долния лист"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Разгъване на долния лист"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Подсказка"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Показване на подсказка"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Изберете AM или PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Избиране на час"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Избиране на минути"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d часа"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d часа"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d минути"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Минута"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Час"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"за минутите"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"за часа"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-bn/strings.xml b/compose/material3/material3/src/androidMain/res/values-bn/strings.xml
deleted file mode 100644
index 78f48ce..0000000
--- a/compose/material3/material3/src/androidMain/res/values-bn/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ডায়ালগ বক্স"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"বাতিল করুন"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"সার্চ করুন"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"নিচে দেওয়া সাজেশন"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"তারিখ বেছে নিন"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"বেছে নেওয়া তারিখ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"কোনও একটি বছর বেছে নিতে পাল্টে নিন"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"একটি বছর বেছে নিতে সোয়াইপ করুন অথবা কোনও একটি দিন বাছতে ফিরে গিয়ে সুইচে ট্যাপ করুন"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"আগামী মাসে পরিবর্তন করুন"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"আগের মাসে পরিবর্তন করুন"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"নেভিগেট করে %1$s বছরে যান"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"বর্তমানে বেছে নেওয়া হয়েছে: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"কোনওটিই নয়"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"আজ"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"বছর বেছে নেওয়ার তালিকা দেখা যাচ্ছে"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"তারিখ বেছে নিন"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"উল্লেখ করা তারিখ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"তারিখ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"উল্লেখ করা তারিখ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"কোনওটিই নয়"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"এই তারিখ লেখা যাবে না: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"প্রত্যাশিত প্যাটার্নের সাথে তারিখ মিলছে না: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"প্রত্যাশিত বছরের রেঞ্জের বাইরের তারিখ %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"\'ক্যালেন্ডার ইনপুট\' মোডে বদল করুন"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"\'টেক্সট ইনপুট\' মোডে বদল করুন"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"পরের বছর দেখতে স্ক্রল করুন"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"আগের বছর দেখতে স্ক্রল করুন"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"তারিখ বেছে নিন"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"শুরু হওয়ার তারিখ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"শেষ হওয়ার তারিখ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"পরের মাস দেখতে স্ক্রল করুন"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"আগের মাস দেখতে স্ক্রল করুন"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"সীমার মধ্যে"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"তারিখ লিখুন"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"তারিখের ব্যাপ্তি সম্পর্কিত ইনপুট ভুল দেওয়া আছে"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"টেনে আনার হ্যান্ডেল"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"স্ক্রিনের নিচে অ্যাটাচ করা শিট আড়াল করুন"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"স্ক্রিনের নিচে অ্যাটাচ করা শিট বাতিল করুন"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"স্ক্রিনের নিচে অ্যাটাচ করা শিট বড় করুন"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"টুলটিপ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"টুলটিপ দেখান"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM বা PM বেছে নিন"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"ঘণ্টা বেছে নিন"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"মিনিট বেছে নিন"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d টা"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ঘণ্টা"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d মিনিট"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"মিনিট"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ঘণ্টা"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"এত মিনিটের জন্য"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"এত ঘণ্টার জন্য"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-bs/strings.xml b/compose/material3/material3/src/androidMain/res/values-bs/strings.xml
deleted file mode 100644
index 74b0671..0000000
--- a/compose/material3/material3/src/androidMain/res/values-bs/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dijaloški okvir"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Odbacivanje"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Pretraživanje"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Prijedlozi su u nastavku"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Odabir datuma"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Odabrani datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Prebaci na odabir godine"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Prevucite da odaberete godinu ili dodirnite da se vratite na odabir dana"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Promijeni na sljedeći mjesec"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Promijeni na prethodni mjesec"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Odlazak na %1$s. godinu"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Trenutni odabir: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ništa"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Danas"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Birač godine je vidljiv"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Odaberite datum"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Unesen je datum"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Unesen je datum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ništa"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datum nije dozvoljen: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datumi se ne podudaraju s očekivanim obrascem: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datum je izvan očekivanog raspona %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Prebacivanje na način rada unosa kalendara"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Prebacivanje na način rada unosa teksta"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Kliznite da se prikažu kasnije godine"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Kliznite da se prikažu ranije godine"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Odaberite datume"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Datum početka"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Datum završetka"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Kliznite da se prikaže sljedeći mjesec"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Kliznite da se prikaže prethodni mjesec"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"U dometu"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Unesite datume"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Nevažeći unos raspona datuma"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Ručica za prevlačenje"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Sužavanje donje tabele"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Odbacivanje donje tabele"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Proširivanje donje tabele"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Skočni opis"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Prikaži skočni opis"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"poslijepodne"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"prij."</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Odaberite prijepodne ili poslijepodne"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Odaberite sate"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Odaberite minute"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d h"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d h"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d min"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuta"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Sat"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"za minute"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"za sat"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ca/strings.xml b/compose/material3/material3/src/androidMain/res/values-ca/strings.xml
deleted file mode 100644
index fde4338..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ca/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Diàleg"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Ignora"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Cerca"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggeriments a continuació"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Selecciona la data"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Data seleccionada"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Canvia a la selecció de l\'any"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Llisca per seleccionar un any o toca per tornar a seleccionar un dia"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Canvia al mes següent"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Canvia al mes anterior"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navega fins a l\'any %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Selecció actual: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Cap"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Avui"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Selector d\'any visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Selecciona la data"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Data introduïda"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Data introduïda: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Cap"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data no permesa: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"La data no coincideix amb el patró esperat: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"La data no es troba dins de l\'interval d\'anys esperat: %1$s-%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Canvia al mode d\'introducció de dades del calendari"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Canvia al mode d\'introducció de text"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Desplaça\'t per mostrar els darrers anys"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Desplaça\'t per mostrar els anys anteriors"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Selecciona les dates"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data d\'inici"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data de finalització"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Desplaça\'t per mostrar el mes següent"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Desplaça\'t per mostrar el mes anterior"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dins de l\'interval"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Introdueix les dates"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"S\'ha introduït un interval de dades no vàlid"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Ansa per arrossegar"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Replega el full inferior"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Ignora el full inferior"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Desplega el full inferior"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Descripció emergent"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Mostra la descripció emergent"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Selecciona AM o PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Selecciona l\'hora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Selecciona els minuts"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d en punt"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d hores"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minuts"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minut"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"per als minuts"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"per a l\'hora"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-cs/strings.xml b/compose/material3/material3/src/androidMain/res/values-cs/strings.xml
deleted file mode 100644
index b0effce..0000000
--- a/compose/material3/material3/src/androidMain/res/values-cs/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogové okno"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Zavřít"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Hledat"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Návrh je níže"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Vybrat datum"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Vybrané datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Přepnout na výběr roku"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Přejetím prstem vyberte rok nebo se klepnutím vraťte k výběru dne"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Přejít na další měsíc"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Přejít na předchozí měsíc"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Přejít na rok %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Aktuální výběr: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Žádné"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Dnes"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Je vidět výběr roku"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Vybrat datum"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Zadané datum"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Zadané datum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Žádné"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Nepovolené datum: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datum neodpovídá očekávanému vzoru: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datum mimo očekávaný rozsah roků %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Přepnout na režim zadávání do kalendáře"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Přepnout na režim zadávání textu"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Posunutím zobrazíte pozdější roky"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Posunutím zobrazíte předchozí roky"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Vyberte data"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Datum zahájení"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Datum ukončení"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Posunutím zobrazíte další měsíc"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Posunutím zobrazíte předchozí měsíc"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"V rozsahu"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Zadejte data"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Neplatné období"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Úchyt pro přetažení"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Sbalit spodní tabulku"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Zavřít spodní tabulku"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Rozbalit spodní tabulku"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Popisek"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Zobrazit popisek"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Vyberte AM nebo PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Vybrat hodinu"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Vyberte minuty"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d hodin"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d hodin"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minut"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuta"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hodina"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"pro minuty"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"pro hodinu"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-da/strings.xml b/compose/material3/material3/src/androidMain/res/values-da/strings.xml
deleted file mode 100644
index 2790036..0000000
--- a/compose/material3/material3/src/androidMain/res/values-da/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogboks"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Afvis"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Søg"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Forslag nedenfor"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Vælg dato"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Valgt dato"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Skift til valg af år"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Stryg for at vælge et år, eller tryk for at skifte tilbage til datovælgeren"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Skift til næste måned"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Skift til forrige måned"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Naviger til år %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Aktuelt valg: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ingen"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"I dag"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Årsvælgeren er synlig"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Vælg dato"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Angivet dato"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Dato"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Angivet dato: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ingen"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datoen er ikke tilladt: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datoen svarer ikke til det forventede format: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datoen er uden for det forventede årsinterval: %1$s-%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Skift til input-tilstand for kalender"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Skift til input-tilstand for tekst"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Rul for at vise senere år"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Rul for at vise tidligere år"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Vælg datoer"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Startdato"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Slutdato"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Rul for at vise næste måned"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Rul for at vise forrige måned"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Inden for de valgte dage"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Angiv datoer"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Ugyldig angivelse af datainterval"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Håndtag"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Skjul felt i bunden"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Luk felt i bunden"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Udvid felt i bunden"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Værktøjstip"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Se værktøjstip"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Vælg AM eller PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Vælg time"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Vælg minutter"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"kl. %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d timer"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutter"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minut"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Time"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"for minutter"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"for time"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-de/strings.xml b/compose/material3/material3/src/androidMain/res/values-de/strings.xml
deleted file mode 100644
index bc43c82..0000000
--- a/compose/material3/material3/src/androidMain/res/values-de/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogfeld"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Schließen"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Suchen"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Vorschläge unten"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Datum auswählen"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Ausgewähltes Datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Zur Jahresauswahl wechseln"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Wischen, um ein Jahr auszuwählen, oder tippen, um zur Tagesauswahl zurückzukehren"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Zum nächsten Monat wechseln"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Zum vorherigen Monat wechseln"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Zum Jahr %1$s wechseln"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Aktuelle Auswahl: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Keine"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Heute"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Jahresauswahl sichtbar"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Datum auswählen"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Eingabedatum:"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Eingabedatum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Kein Datum"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Unzulässiges Datum: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datum entspricht nicht dem erwarteten Format: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datum liegt außerhalb des erwarteten Jahresbereichs (%1$s–%2$s)"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"In den Kalendereingabemodus wechseln"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"In den Texteingabemodus wechseln"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Zum Ansehen nachfolgender Jahre scrollen"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Zum Ansehen vorheriger Jahre scrollen"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Daten auswählen"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Startdatum"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Enddatum"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Zum Ansehen des nächsten Monats scrollen"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Zum Ansehen des vorherigen Monats scrollen"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Im Zeitraum"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Daten eingeben"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Angegebener Zeitraum ungültig"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Ziehpunkt"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Ansicht am unteren Rand minimieren"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Ansicht am unteren Rand schließen"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Ansicht am unteren Rand maximieren"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Kurzinfo"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Kurzinfo anzeigen"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM oder PM auswählen"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Stunde auswählen"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Minuten auswählen"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d Uhr"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d Stunden"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d Minuten"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minute"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Stunde"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"für Minuten"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"für Stunde"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-el/strings.xml b/compose/material3/material3/src/androidMain/res/values-el/strings.xml
deleted file mode 100644
index 544c36a..0000000
--- a/compose/material3/material3/src/androidMain/res/values-el/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Παράθυρο διαλόγου"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Παράβλεψη"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Αναζήτηση"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Προτάσεις παρακάτω"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Επιλογή ημερομηνίας"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Επιλεγμένη ημερομηνία"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Εναλλαγή σε επιλογή έτους"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Σύρετε για να επιλέξετε ένα έτος ή πατήστε για να επιστρέψετε στην επιλογή ημέρας."</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Αλλαγή στον επόμενο μήνα"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Αλλαγή στον προηγούμενο μήνα"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Μετάβαση στο έτος %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Τρέχουσα επιλογή: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Καμία"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Σήμερα"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Το εργαλείο επιλογής έτους είναι ορατό"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Επιλογή ημερομηνίας"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Εισαγωγή ημερομηνίας"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Ημερομηνία"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Εισαγωγή ημερομηνίας: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Καμία"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Η ημερομηνία δεν επιτρέπεται: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Η ημερομηνία δεν αντιστοιχεί στο αναμενόμενο μοτίβο: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Η ημερομηνία είναι εκτός του αναμενόμενου εύρους ετών %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Εναλλαγή στη λειτουργία εισαγωγής ημερολογίου"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Εναλλαγή στη λειτουργία εισαγωγής κειμένου"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Κάντε κύλιση για εμφάνιση επόμενων ετών"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Κάντε κύλιση για εμφάνιση προηγούμενων ετών"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Επιλογή ημερομηνιών"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Ημερομηνία έναρξης"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Ημερομηνία λήξης"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Κάντε κύλιση για εμφάνιση του επόμενου μήνα"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Κάντε κύλιση για εμφάνιση του προηγούμενου μήνα"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Εντός εύρους"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Εισαγωγή ημερομηνιών"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Μη έγκυρη εισαγωγή εύρους ημερομηνιών"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Λαβή μεταφοράς"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Σύμπτυξη φύλλου κάτω μέρους"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Παράβλεψη φύλλου κάτω μέρους"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Ανάπτυξη φύλλου κάτω μέρους"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Επεξήγηση εργαλείου"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Προβολή επεξήγησης"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"ΜΜ"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"ΠΜ"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Επιλέξτε π.μ. ή μ.μ."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Επιλογή ώρας"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Επιλογή λεπτών"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d η ώρα"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"Ώρα %1$d"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d λεπτά"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Λεπτό"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Ώρα"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"για λεπτά"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"για ώρα"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rAU/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rAU/strings.xml
deleted file mode 100644
index d0dfceb..0000000
--- a/compose/material3/material3/src/androidMain/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogue"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Dismiss"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Search"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggestions below"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Select date"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Selected date"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Switch to selecting a year"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Swipe to select a year, or tap to switch back to selecting a day"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Change to next month"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Change to previous month"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navigate to year %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Current selection: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"None"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Today"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Year picker visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Select date"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Entered date"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Date"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Entered date: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"None"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Date not allowed: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Date does not match expected pattern: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Date out of expected year range %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Switch to calendar input mode"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Switch to text input mode"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Scroll to show later years"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Scroll to show earlier years"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Select dates"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Start date"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"End date"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Scroll to show the next month"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Scroll to show the previous month"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"In range"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Enter dates"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Invalid date range input"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Drag handle"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Collapse bottom sheet"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Dismiss bottom sheet"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Expand bottom sheet"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Tooltip"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Show tooltip"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Select a.m. or p.m."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Select hour"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Select minutes"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d o\'clock"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d hours"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutes"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minute"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hour"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"for minutes"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"for hour"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rCA/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rCA/strings.xml
index 09aad5d..e1286b7 100644
--- a/compose/material3/material3/src/androidMain/res/values-en-rCA/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-en-rCA/strings.xml
@@ -17,57 +17,112 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Dismiss"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Search"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggestions below"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Select date"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Selected date"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Switch to selecting a year"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Swipe to select a year, or tap to switch back to selecting a day"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Change to next month"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Change to previous month"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navigate to year %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Current selection: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"None"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Today"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Year picker visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Select date"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Entered date"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Date"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Entered date: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"None"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Date not allowed: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Date does not match expected pattern: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Date out of expected year range %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Switch to calendar input mode"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Switch to text input mode"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Scroll to show later years"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Scroll to show earlier years"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Select dates"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Start date"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"End date"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Scroll to show the next month"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Scroll to show the previous month"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"In range"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Enter dates"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Invalid date range input"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Drag handle"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Collapse bottom sheet"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Dismiss bottom sheet"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Expand bottom sheet"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Tooltip"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Show tooltip"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Select AM or PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Select hour"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Select minutes"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d o\'clock"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d hours"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutes"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minute"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hour"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"for minutes"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"for hour"</string>
+    <!-- no translation found for m3c_dialog (7617233117134790350) -->
+    <skip />
+    <string name="m3c_dropdown_menu_expanded" msgid="2360841780724299882">"Expanded"</string>
+    <string name="m3c_dropdown_menu_collapsed" msgid="3177828188723359358">"Collapsed"</string>
+    <!-- no translation found for m3c_snackbar_dismiss (6152755701819882931) -->
+    <skip />
+    <!-- no translation found for m3c_search_bar_search (6152806324422087846) -->
+    <skip />
+    <!-- no translation found for m3c_suggestions_available (7655536806087401899) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_title (7430790972741451689) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_headline (7605002211875882969) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_year_selection (791651718641787594) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_day_selection (395627960681594326) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_next_month (7142101321095356500) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_previous_month (228438865139394590) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_navigate_to_year_description (8436650776581492840) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_headline_description (3664277305226978227) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_no_selection_description (5811000998184572395) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_today_description (3199387177749801575) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_year_picker_pane_title (2068382232816991922) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_title (7306227249789210568) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_headline (8166741421776570875) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_label (2895559812010326913) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_headline_description (229313757840775812) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_no_input_description (1237013946323089826) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_invalid_not_allowed (2521768508935305279) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_invalid_for_pattern (6116910750161463197) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_invalid_year_range (7052898923934555305) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_calendar_mode (1804346892470238807) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_input_mode (2219746470065162704) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_scroll_to_later_years (5727367015496556177) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_scroll_to_earlier_years (7813882352367152251) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_title (3134165431120340385) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_start_headline (4665981448952749820) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_end_headline (4947636797751277713) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_scroll_to_next_month (602077859540990149) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_scroll_to_previous_month (4592174524846109496) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_day_in_range (2138321128465719402) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_input_title (3148384720560189467) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_input_invalid_range_input (3190049423327661366) -->
+    <skip />
+    <!-- no translation found for m3c_bottom_sheet_drag_handle_description (8403354765404029791) -->
+    <skip />
+    <!-- no translation found for m3c_bottom_sheet_collapse_description (2988463736136100848) -->
+    <skip />
+    <!-- no translation found for m3c_bottom_sheet_dismiss_description (1555567894577437024) -->
+    <skip />
+    <!-- no translation found for m3c_bottom_sheet_expand_description (6670819569745899763) -->
+    <skip />
+    <!-- no translation found for m3c_tooltip_pane_description (5460405025248574620) -->
+    <skip />
+    <!-- no translation found for m3c_tooltip_long_press_label (1805687647081129904) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_pm (6616362054113087709) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_am (2786685010796619560) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_period_toggle_description (5865171949528594571) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour_selection (8876759303332837035) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_minute_selection (4699133535056739733) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour_suffix (3458167507790628988) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour_24h_suffix (9179527532316922345) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_minute_suffix (5064177921781937179) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_minute (4313071914266462005) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour (2349193472625211372) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_minute_text_field (7661234488295443182) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour_text_field (6973808109666874069) -->
+    <skip />
 </resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rGB/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rGB/strings.xml
deleted file mode 100644
index d0dfceb..0000000
--- a/compose/material3/material3/src/androidMain/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogue"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Dismiss"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Search"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggestions below"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Select date"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Selected date"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Switch to selecting a year"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Swipe to select a year, or tap to switch back to selecting a day"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Change to next month"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Change to previous month"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navigate to year %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Current selection: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"None"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Today"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Year picker visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Select date"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Entered date"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Date"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Entered date: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"None"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Date not allowed: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Date does not match expected pattern: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Date out of expected year range %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Switch to calendar input mode"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Switch to text input mode"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Scroll to show later years"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Scroll to show earlier years"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Select dates"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Start date"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"End date"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Scroll to show the next month"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Scroll to show the previous month"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"In range"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Enter dates"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Invalid date range input"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Drag handle"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Collapse bottom sheet"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Dismiss bottom sheet"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Expand bottom sheet"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Tooltip"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Show tooltip"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Select a.m. or p.m."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Select hour"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Select minutes"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d o\'clock"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d hours"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutes"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minute"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hour"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"for minutes"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"for hour"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rIN/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rIN/strings.xml
deleted file mode 100644
index d0dfceb..0000000
--- a/compose/material3/material3/src/androidMain/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogue"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Dismiss"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Search"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggestions below"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Select date"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Selected date"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Switch to selecting a year"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Swipe to select a year, or tap to switch back to selecting a day"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Change to next month"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Change to previous month"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navigate to year %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Current selection: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"None"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Today"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Year picker visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Select date"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Entered date"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Date"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Entered date: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"None"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Date not allowed: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Date does not match expected pattern: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Date out of expected year range %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Switch to calendar input mode"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Switch to text input mode"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Scroll to show later years"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Scroll to show earlier years"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Select dates"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Start date"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"End date"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Scroll to show the next month"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Scroll to show the previous month"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"In range"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Enter dates"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Invalid date range input"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Drag handle"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Collapse bottom sheet"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Dismiss bottom sheet"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Expand bottom sheet"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Tooltip"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Show tooltip"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Select a.m. or p.m."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Select hour"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Select minutes"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d o\'clock"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d hours"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutes"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minute"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hour"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"for minutes"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"for hour"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rXC/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rXC/strings.xml
index 4691fe5..af84efe 100644
--- a/compose/material3/material3/src/androidMain/res/values-en-rXC/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-en-rXC/strings.xml
@@ -17,57 +17,112 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎Dialog‎‏‎‎‏‎"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‏‏‎‏‎Dismiss‎‏‎‎‏‎"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎Search‎‏‎‎‏‎"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎Suggestions below‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‎‎‎‎‎Select date‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎Selected date‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‎‏‎Switch to selecting a year‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‎Swipe to select a year, or tap to switch back to selecting a day‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎Change to next month‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎Change to previous month‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‎‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎Navigate to year %1$s‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎Current selection: %1$s‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‏‏‎‎‏‎‏‏‎None‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‎‎‎‏‏‎‎‏‎Today‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‎‎‎Year picker visible‎‏‎‎‏‎"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‎Select date‎‏‎‎‏‎"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎Entered date‎‏‎‎‏‎"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‎‎Date‎‏‎‎‏‎"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎Entered date: %1$s‎‏‎‎‏‎"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‏‎‎‎‎‎‎‏‎‎‎None‎‏‎‎‏‎"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‏‏‎Date not allowed: %1$s‎‏‎‎‏‎"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎Date does not match expected pattern: %1$s‎‏‎‎‏‎"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎Date out of expected year range %1$s - %2$s‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‏‎Switch to calendar input mode‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‏‏‎‎‏‎‎‎‏‏‎‏‏‎‎Switch to text input mode‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎Scroll to show later years‎‏‎‎‏‎"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‏‎Scroll to show earlier years‎‏‎‎‏‎"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‏‎‏‏‏‎‎‏‏‎‎‏‎Select dates‎‏‎‎‏‎"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‎Start date‎‏‎‎‏‎"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‎End date‎‏‎‎‏‎"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‏‏‎‎Scroll to show the next month‎‏‎‎‏‎"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎‎‏‎‎‎‎‏‏‎‎‏‏‏‎‎‎Scroll to show the previous month‎‏‎‎‏‎"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎In range‎‏‎‎‏‎"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎Enter dates‎‏‎‎‏‎"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‎‎‎‏‎Invalid date range input‎‏‎‎‏‎"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎Drag handle‎‏‎‎‏‎"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎Collapse bottom sheet‎‏‎‎‏‎"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‎‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎Dismiss bottom sheet‎‏‎‎‏‎"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‏‎Expand bottom sheet‎‏‎‎‏‎"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‎‏‎Tooltip‎‏‎‎‏‎"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎Show tooltip‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎PM‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‎AM‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‎‎‎‎‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎Select AM or PM‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‎‎‎Select hour‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‎Select minutes‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎%1$d o\'clock‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎%1$d hours‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎%1$d minutes‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‏‎‎‏‎Minute‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎Hour‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‏‎‏‎‏‎for minutes‎‏‎‎‏‎"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎for hour‎‏‎‎‏‎"</string>
+    <!-- no translation found for m3c_dialog (7617233117134790350) -->
+    <skip />
+    <string name="m3c_dropdown_menu_expanded" msgid="2360841780724299882">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‎Expanded‎‏‎‎‏‎"</string>
+    <string name="m3c_dropdown_menu_collapsed" msgid="3177828188723359358">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎Collapsed‎‏‎‎‏‎"</string>
+    <!-- no translation found for m3c_snackbar_dismiss (6152755701819882931) -->
+    <skip />
+    <!-- no translation found for m3c_search_bar_search (6152806324422087846) -->
+    <skip />
+    <!-- no translation found for m3c_suggestions_available (7655536806087401899) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_title (7430790972741451689) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_headline (7605002211875882969) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_year_selection (791651718641787594) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_day_selection (395627960681594326) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_next_month (7142101321095356500) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_previous_month (228438865139394590) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_navigate_to_year_description (8436650776581492840) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_headline_description (3664277305226978227) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_no_selection_description (5811000998184572395) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_today_description (3199387177749801575) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_year_picker_pane_title (2068382232816991922) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_title (7306227249789210568) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_headline (8166741421776570875) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_label (2895559812010326913) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_headline_description (229313757840775812) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_no_input_description (1237013946323089826) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_invalid_not_allowed (2521768508935305279) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_invalid_for_pattern (6116910750161463197) -->
+    <skip />
+    <!-- no translation found for m3c_date_input_invalid_year_range (7052898923934555305) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_calendar_mode (1804346892470238807) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_switch_to_input_mode (2219746470065162704) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_scroll_to_later_years (5727367015496556177) -->
+    <skip />
+    <!-- no translation found for m3c_date_picker_scroll_to_earlier_years (7813882352367152251) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_title (3134165431120340385) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_start_headline (4665981448952749820) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_end_headline (4947636797751277713) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_scroll_to_next_month (602077859540990149) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_scroll_to_previous_month (4592174524846109496) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_picker_day_in_range (2138321128465719402) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_input_title (3148384720560189467) -->
+    <skip />
+    <!-- no translation found for m3c_date_range_input_invalid_range_input (3190049423327661366) -->
+    <skip />
+    <!-- no translation found for m3c_bottom_sheet_drag_handle_description (8403354765404029791) -->
+    <skip />
+    <!-- no translation found for m3c_bottom_sheet_collapse_description (2988463736136100848) -->
+    <skip />
+    <!-- no translation found for m3c_bottom_sheet_dismiss_description (1555567894577437024) -->
+    <skip />
+    <!-- no translation found for m3c_bottom_sheet_expand_description (6670819569745899763) -->
+    <skip />
+    <!-- no translation found for m3c_tooltip_pane_description (5460405025248574620) -->
+    <skip />
+    <!-- no translation found for m3c_tooltip_long_press_label (1805687647081129904) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_pm (6616362054113087709) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_am (2786685010796619560) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_period_toggle_description (5865171949528594571) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour_selection (8876759303332837035) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_minute_selection (4699133535056739733) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour_suffix (3458167507790628988) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour_24h_suffix (9179527532316922345) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_minute_suffix (5064177921781937179) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_minute (4313071914266462005) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour (2349193472625211372) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_minute_text_field (7661234488295443182) -->
+    <skip />
+    <!-- no translation found for m3c_time_picker_hour_text_field (6973808109666874069) -->
+    <skip />
 </resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-es-rUS/strings.xml b/compose/material3/material3/src/androidMain/res/values-es-rUS/strings.xml
deleted file mode 100644
index e738f3e..0000000
--- a/compose/material3/material3/src/androidMain/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Diálogo"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Descartar"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Buscar"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Sugerencias a continuación"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Seleccionar fecha"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Fecha seleccionada"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Cambiar a seleccionar un año"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Desliza el dedo para elegir un año o presiona para volver a seleccionar un día"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Cambiar al mes siguiente"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Cambiar al mes anterior"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navegar al año %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Selección actual: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Nada"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hoy"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Selector de año visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Seleccionar fecha"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Fecha ingresada"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Fecha"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Fecha ingresada: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ninguna"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Fecha no permitida: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"La fecha no coincide con el patrón esperado: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"La fecha está fuera del rango de años esperado: %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Cambiar al modo de entrada de calendario"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Cambiar al modo de entrada de texto"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Desplázate para ver los últimos años"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Desplázate para ver los primeros años"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Seleccionar fechas"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Fecha de inicio"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Fecha de finalización"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Desplázate para ver el próximo mes"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Desplázate para ver el mes anterior"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"En el rango"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Ingresar fechas"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Se introdujo un período no válido"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Controlador de arrastre"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Contraer la hoja inferior"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Descartar la hoja inferior"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Expandir la hoja inferior"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Información"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Mostrar información"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"p.m."</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"a.m."</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Selecciona a.m. o p.m."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Seleccionar hora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Seleccionar los minutos"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d en punto"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d horas"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutos"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuto"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"por minutos"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"por hora"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-es/strings.xml b/compose/material3/material3/src/androidMain/res/values-es/strings.xml
deleted file mode 100644
index 99589f9..0000000
--- a/compose/material3/material3/src/androidMain/res/values-es/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Cuadro de diálogo"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Cerrar"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Buscar"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Sugerencias a continuación"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Seleccionar fecha"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Fecha seleccionada"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Cambiar para seleccionar un año"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Desliza el dedo para seleccionar un año o toca para volver a seleccionar un día"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Cambiar al mes siguiente"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Cambiar al mes anterior"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Ir al año %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Selección: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ninguno"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hoy"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Selector de año visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Seleccionar fecha"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Fecha introducida"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Fecha"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Fecha introducida: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ninguna"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Fecha no permitida: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"La fecha no coincide con el patrón esperado: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Fecha fuera del intervalo de años previsto: %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Cambiar al modo de introducción de calendario"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Cambiar al modo de escritura"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Desplázate para ver los últimos años"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Desplázate para ver los años anteriores"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Seleccionar fechas"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Fecha de inicio"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Fecha de finalización"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Desplázate para ver el mes siguiente"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Desplázate para ver el mes anterior"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dentro del intervalo"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Introducir fechas"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"El intervalo de fechas no es válido"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Controlador de arrastre"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Contrae la hoja inferior"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Cierra la hoja inferior"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Despliega la hoja inferior"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Descripción emergente"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Mostrar descripción emergente"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Selecciona AM o PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Seleccionar hora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Seleccionar minutos"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d en punto"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d horas"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutos"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minutos"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"por minutos"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"por hora"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-et/strings.xml b/compose/material3/material3/src/androidMain/res/values-et/strings.xml
deleted file mode 100644
index 6e2d1c3..0000000
--- a/compose/material3/material3/src/androidMain/res/values-et/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialoog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Loobu"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Otsing"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Soovitused on allpool"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Valige kuupäev"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Valitud kuupäev"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Lülitu aasta valimisele"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Pühkige aasta valimiseks või puudutage, et minna tagasi päeva valimise juurde"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Vaheta järgmisele kuule"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Vaheta eelmisele kuule"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Liigu aasta %1$s juurde"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Praegune valik: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Pole"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Täna"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Aasta valija on nähtav"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Valige kuupäev"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Sisestatud kuupäev"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Kuupäev"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Sisestatud kuupäev: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Puudub"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Kuupäev pole lubatud: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Kuupäev ei ühti eeldatud mustriga: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Kuupäev on väljaspool eeldatud aastavahemikku %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Lülitu kalendrisisestusrežiimile"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Lülitu tekstisisestusrežiimile"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Hilisemate aastate kuvamiseks kerige"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Varasemate aastate kuvamiseks kerige"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Valige kuupäevad"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Alguskuupäev"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Lõppkuupäev"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Järgmise kuu kuvamiseks kerige"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Eelmise kuu kuvamiseks kerige"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Vahemikus"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Sisestage kuupäevad"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Sisestati sobimatu kuupäevavahemik"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Lohistamispide"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Alumise lehe ahendamine"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Alumisest lehest loobumine"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Alumise lehe laiendamine"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Kohtspikker"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Kuva kohtspikker"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Valige AM või PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Tunni valimine"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Minutite valimine"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d.00"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d tundi"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutit"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minutid"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Tunnid"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"minutite jaoks"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"tundide jaoks"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-eu/strings.xml b/compose/material3/material3/src/androidMain/res/values-eu/strings.xml
deleted file mode 100644
index 6cbc678..0000000
--- a/compose/material3/material3/src/androidMain/res/values-eu/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Leihoa"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Baztertu"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Bilaketa"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Iradokizunak daude behean"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Hautatu data bat"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Hautatutako data"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Joan urte-hautatzailera"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Pasatu hatza urte bat hautatzeko. Bestela, sakatu hau eguna hautatzeko pantailara itzultzeko."</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Aldatu hurrengo hilabetera"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Aldatu aurreko hilabetera"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Joan %1$s urtera"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Oraingo hautapena: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Bat ere ez"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Gaur"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Urte-hautatzailea ikusgai dago"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Hautatu data bat"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Idatzitako data"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Idatzitako data: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Bat ere ez"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Ez da onartzen data: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Data ez dator bat espero den ereduarekin: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Espero den urte tartetik (%1$s-%2$s) kanpo dago data"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Aldatu egutegiaren idazketa-metodora"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Aldatu testua idazteko modura"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Egin gora/behera etorkizuneko urteak erakusteko"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Egin gora/behera iraganeko urteak erakusteko"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Hautatu datak"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Hasiera-data"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Amaiera-data"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Egin gora/behera hurrengo hilabetea erakusteko"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Egin gora/behera aurreko hilabetea erakusteko"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Tartean"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Idatzi datak"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Idatzitako data tarteak ez du balio"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Arrastatzeko kontrol-puntua"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Tolestu pantailaren behealdean ainguratutako orria"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Baztertu pantailaren behealdean ainguratutako orria"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Zabaldu pantailaren behealdean ainguratutako orria"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Aholkua"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Erakutsi aholkua"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Hautatu AM edo PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Hautatu ordua"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Hautatu minutuak"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutu"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minutuak"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Orduak"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"minutuetarako"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ordurako"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-fa/strings.xml b/compose/material3/material3/src/androidMain/res/values-fa/strings.xml
deleted file mode 100644
index cde14a3..0000000
--- a/compose/material3/material3/src/androidMain/res/values-fa/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"کادر گفتگو"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"بستن"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"جستجو"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"پیشنهادهای زیر"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"انتخاب تاریخ"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"تاریخ انتخابی"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"رفتن به انتخاب سال"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"برای انتخاب سال، تند بکشید یا برای برگشتن به انتخاب روز، ضربه بزنید"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"تغییر به ماه بعدی"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"تغییر به ماه قبلی"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"‏پیمایش به سال %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"‏انتخاب فعلی: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"هیچ‌کدام"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"امروز"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"انتخابگر سال نمایان است"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"انتخاب تاریخ"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"تاریخ واردشده"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"تاریخ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"‏تاریخ واردشده: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"هیچ‌کدام"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"‏تاریخ مجاز نیست: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"‏تاریخ با الگوی موردانتظار مطابقت ندارد: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"‏تاریخ خارج از بازه زمانی %1$s تا %2$s است"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"رفتن به روش ورودی تقویم"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"رفتن به حالت ورودی نوشتاری"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"برای نمایش سال‌های بعد پیمایش کنید"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"برای نمایش سال‌های قبل پیمایش کنید"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"تاریخ‌ها را انتخاب کنید"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"تاریخ شروع"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"تاریخ پایان"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"برای نمایش ماه بعد پیمایش کنید"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"برای نمایش ماه قبل پیمایش کنید"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"در محدوده"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"تاریخ‌ها را وارد کنید"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"محدوده تاریخ واردشده نامعتبر است"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"دستگیره کشاندن"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"جمع کردن برگه زیرین"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"رد کردن برگه زیرین"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ازهم باز کردن برگه زیرین"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"نکته‌ابزار"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"نمایش نکته‌ابزار"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"ب.ظ."</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"ق.ظ."</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"انتخاب ق.ظ. یا ب.ظ."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"انتخاب ساعت"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"انتخاب دقیقه"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"‏ساعت %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"‏%1$d ساعت"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"‏%1$d دقیقه"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"دقیقه"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ساعت"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"برای دقیقه"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"برای ساعت"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-fi/strings.xml b/compose/material3/material3/src/androidMain/res/values-fi/strings.xml
deleted file mode 100644
index 5424f78..0000000
--- a/compose/material3/material3/src/androidMain/res/values-fi/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Valintaikkuna"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Hylkää"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Hae"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Ehdotuksia alla"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Valitse päivämäärä"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Valittu päivämäärä"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Vaihda vuoden valintaan"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Valitse vuosi pyyhkäisemällä tai palaa päivän valintaan napauttamalla"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Vaihda seuraavaan kuukauteen"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Vaihda edelliseen kuukauteen"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Siirry vuoteen %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Nykyinen valinta: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"–"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Tänään"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Vuosivalitsin näkyvillä"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Valitse päivämäärä"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Lisätty päivämäärä"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Päivämäärä"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Lisätty päivämäärä: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"–"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Päivämäärä ei sallittu: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Päivämäärä ei vastaa odotettua mallia: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Päivämäärä ei sisälly odotettuun vuosiaikaväliin: %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Vaihda syöttötavaksi kalenteri"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Vaihda tekstinsyöttötilaan"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Vieritä nähdäksesi myöhemmät vuodet"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Vieritä nähdäksesi aiemmat vuodet"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Valitse päivämäärät"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Alkamispäivä"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Päättymispäivä"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Vieritä nähdäksesi seuraavan kuukauden"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Vieritä nähdäksesi edellisen kuukauden"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Valitulla välillä"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Lisää päivämäärät"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Virheellinen ajanjakso"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Vetokahva"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Tiivistä alapaneeli"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Hylkää alapaneeli"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Laajenna alapaneeli"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Vihjeteksti"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Näytä vihjeteksti"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"IP"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AP"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Valitse AP tai IP"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Valitse tunti"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Valitse minuutit"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Kello %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d h"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minuuttia"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuutti"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Tunti"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"minuuttien ajan"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"tunnin ajan"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-fr-rCA/strings.xml b/compose/material3/material3/src/androidMain/res/values-fr-rCA/strings.xml
deleted file mode 100644
index fbeef28..0000000
--- a/compose/material3/material3/src/androidMain/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogue"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Fermer"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Recherche"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggestions ci-dessous"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Sélectionnez une date"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Date sélectionnée"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Passer à la sélection d\'une année"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Balayez l\'écran pour sélectionner une année, ou touchez pour revenir en arrière et sélectionner un jour"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Passer au mois suivant"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Passer au mois précédent"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Naviguez jusqu\'à l\'année %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Sélection actuelle : %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Aucune"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Aujourd\'hui"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Sélecteur d\'année visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Sélectionnez une date"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Date entrée"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Date"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Date entrée : %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Aucune"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Date non autorisée : %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"La date ne correspond pas au schéma prévu : %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Date non comprise dans la fourchette prévue des années %1$s à %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Passer au mode d\'entrée de l\'Agenda"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Passer au mode d\'entrée de texte"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Faites défiler pour afficher les années suivantes"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Faites défiler pour afficher les années précédentes"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Sélectionner les dates"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Date de début"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Date de fin"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Faites défiler pour afficher le mois suivant"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Faites défiler pour afficher le mois précédent"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"À portée"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Entrer les dates"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Entrée de période incorrecte"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Poignée de déplacement"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Réduire la zone de contenu dans le bas de l\'écran"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Fermer la zone de contenu dans le bas de l\'écran"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Développer la zone de contenu dans le bas de l\'écran"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Infobulle"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Afficher une infobulle"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Sélectionner AM ou PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Sélectionner l\'heure"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Sélectionner les minutes"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d h"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d h"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutes"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minute"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Heure"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"pour les minutes"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"pour l\'heure"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-fr/strings.xml b/compose/material3/material3/src/androidMain/res/values-fr/strings.xml
deleted file mode 100644
index a4d1152..0000000
--- a/compose/material3/material3/src/androidMain/res/values-fr/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Boîte de dialogue"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Ignorer"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Rechercher"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggestions ci-dessous"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Sélectionner une date"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Date sélectionnée"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Passer à la sélection d\'une année"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Balayez l\'écran pour sélectionner une année ou appuyez pour revenir à la sélection d\'un jour"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Passer au mois suivant"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Passer au mois précédent"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Accéder à l\'année %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Sélection actuelle : %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Aucune"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Aujourd\'hui"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Sélecteur d\'année visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Sélectionner une date"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Date saisie"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Date"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Date saisie : %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Aucune"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Date non autorisée : %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"La date ne correspond pas au format attendu : %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Date hors de la plage d\'années attendue : %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Passer au mode de saisie Agenda"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Passer au mode de saisie Texte"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Faites défiler pour afficher les années suivantes"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Faites défiler pour afficher les années précédentes"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Sélectionner des dates"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Date de début"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Date de fin"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Faites défiler pour afficher le mois suivant"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Faites défiler pour afficher le mois précédent"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dans la plage"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Saisir des dates"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Plage de dates non valide"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Poignée de déplacement"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Réduire la bottom sheet"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Fermer la bottom sheet"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Développer la bottom sheet"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Info-bulle"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Afficher l\'info-bulle"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Sélectionner le format AM ou PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Sélectionner une heure"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Sélectionner des minutes"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d heures"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d heures"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutes"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minute"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Heure"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"en minutes"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"en heures"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-gl/strings.xml b/compose/material3/material3/src/androidMain/res/values-gl/strings.xml
deleted file mode 100644
index 62a9952..0000000
--- a/compose/material3/material3/src/androidMain/res/values-gl/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Cadro de diálogo"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Pechar"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Busca"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Hai suxestións abaixo"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Selecciona a data"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Data seleccionada"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Cambiar a seleccionar un ano"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Pasa o dedo para seleccionar un ano ou toca a pantalla para volver á selección do día"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Cambiar ao mes seguinte"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Cambiar ao mes anterior"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Ir ao ano %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Selección actual: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ningunha"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hoxe"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Selector de ano visible"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Seleccionar data"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Data inserida"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Data inserida: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ningunha"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data non permitida: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"A data non coincide co padrón esperado: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"A data está fóra do intervalo de anos esperado (%1$s - %2$s)"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Cambiar ao modo de entrada de calendario"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Cambiar ao modo de introdución de texto"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Desprázate para mostrar anos posteriores"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Desprázate para mostrar anos anteriores"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Selecciona as datas"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data de inicio"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data de finalización"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Desprázate para mostrar o mes seguinte"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Desprázate para mostrar o mes anterior"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dentro do intervalo"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Indica as datas"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Indicouse un intervalo de datas que non é válido"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Controlador de arrastre"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Contraer panel inferior"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Pechar panel inferior"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Despregar panel inferior"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Cadro de información"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Mostrar cadro de información"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"pm"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"am"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Seleccionar a. m. ou p. m."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Seleccionar hora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Seleccionar minutos"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d en pto."</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d horas"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutos"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuto"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"por minuto"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"por hora"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-gu/strings.xml b/compose/material3/material3/src/androidMain/res/values-gu/strings.xml
deleted file mode 100644
index cc9f98f..0000000
--- a/compose/material3/material3/src/androidMain/res/values-gu/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"સંવાદ બૉક્સ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"છોડી દો"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"શોધો"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"સૂચનો નીચે છે"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"તારીખ પસંદ કરો"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"પસંદ કરેલી તારીખ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"વર્ષ પસંદ કરવાના વિકલ્પ પર સ્વિચ કરો"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"વર્ષ પસંદ કરવા માટે સ્વાઇપ કરો અથવા દિવસની પસંદગી પર પાછા સ્વિચ કરવા માટે ટૅપ કરો"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"બદલીને આગલો મહિનો પસંદ કરો"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"બદલીને પાછલો મહિનો પસંદ કરો"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"વર્ષ %1$s પર નૅવિગેટ કરો"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"હાલની પસંદગી: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"એકપણ નહીં"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"આજે"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"વર્ષ માટેનું પિકર દૃશ્યમાન છે"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"તારીખ પસંદ કરો"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"દાખલ કરેલી તારીખ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"તારીખ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"દાખલ કરેલી તારીખ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"એકપણ નહીં"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"આ તારીખની મંજૂરી નથી: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"તારીખ અપેક્ષિત પૅટર્ન સાથે મેળ ખાતી નથી: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"અપેક્ષિત વર્ષની શ્રેણી %1$s - %2$sની બહારની તારીખ"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"કૅલેન્ડર ઇનપુટ મોડ પર સ્વિચ કરો"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ટેક્સ્ટ ઇનપુટ મોડ પર સ્વિચ કરો"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"પછીના વર્ષો બતાવવા માટે સ્ક્રોલ કરો"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"અગાઉના વર્ષો બતાવવા માટે સ્ક્રોલ કરો"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"તારીખો પસંદ કરો"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"પ્રારંભ તારીખ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"સમાપ્તિ તારીખ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"આગલો મહિનો બતાવવા માટે સ્ક્રોલ કરો"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"પાછલો મહિનો બતાવવા માટે સ્ક્રોલ કરો"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"રેન્જમાં છે"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"તારીખો દાખલ કરો"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"તારીખની શ્રેણીનું અમાન્ય ઇનપુટ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ઑબ્જેક્ટ ખેંચવાનું હૅન્ડલ"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"બોટમ શીટ નાની કરો"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"બોટમ શીટ છોડી દો"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"બોટમ શીટ મોટી કરો"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"ટૂલટિપ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"ટૂલટિપ બતાવો"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM કે PM પસંદ કરો"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"કલાક પસંદ કરો"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"મિનિટ પસંદ કરો"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d વાગ્યે"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d કલાકે"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d મિનિટ"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"મિનિટ"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"કલાક"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"મિનિટ માટે"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"કલાક માટે"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-hi/strings.xml b/compose/material3/material3/src/androidMain/res/values-hi/strings.xml
deleted file mode 100644
index 8bf1fa4..0000000
--- a/compose/material3/material3/src/androidMain/res/values-hi/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"डायलॉग"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"खारिज करें"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"खोजें"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"सुझाव यहां मौजूद हैं"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"तारीख चुनें"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"चुनी गई तारीख"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"साल चुनने के लिए स्विच करें"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"साल चुनने के लिए स्वाइप करें या दिन चुनने पर वापस स्विच करने लिए टैप करें"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"अगले महीने पर जाएं"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"पिछले महीने पर जाएं"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"साल %1$s पर जाएं"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"फ़िलहाल, यह चुना गया है: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"कोई नहीं"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"आज"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"साल चुनने का विकल्प दिख रहा है"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"तारीख चुनें"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"डाली गई तारीख"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"तारीख"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"डाली गई तारीख: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"कोई नहीं"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"यह तारीख सही नहीं है: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"तारीख सही फ़ॉर्मैट में नहीं डाली गई है: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"तारीख को साल के सही फ़ॉर्मैट में नहीं डाला गया है %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"कैलेंडर इनपुट मोड पर स्विच करें"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"टेक्स्ट इनपुट मोड पर स्विच करें"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"बाद वाले सालों की तारीख देखने के लिए स्क्रोल करें"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"पिछले सालों की तारीख देखने के लिए स्क्रोल करें"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"तारीखें चुनें"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"शुरू होने की तारीख"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"खत्म होने की तारीख"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"अगले महीने की तारीख देखने के लिए स्क्रोल करें"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"पिछले महीने की तारीख देखने के लिए स्क्रोल करें"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"रेंज में"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"तारीखें डालें"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"तारीख की दी गई सीमा गलत है"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"खींचकर छोड़ने वाला हैंडल"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"बॉटम शीट को छोटा करें"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"बॉटम शीट को खारिज करें"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"बॉटम शीट को बड़ा करें"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"टूलटिप"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"टूलटिप देखें"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM या PM चुनें"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"घंटा चुनें"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"मिनट चुनें"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d बजे"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d घंटे"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d मिनट"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"मिनट"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"घंटा"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"मिनट के लिए"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"घंटे के लिए"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-hr/strings.xml b/compose/material3/material3/src/androidMain/res/values-hr/strings.xml
deleted file mode 100644
index 9c40743..0000000
--- a/compose/material3/material3/src/androidMain/res/values-hr/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dijaloški okvir"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Odbaci"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Pretraživanje"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Prijedlozi su u nastavku"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Odaberite datum"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Odabrani datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Prijelaz na odabir godine"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Pomaknite se za odabir godine ili dodirnite za povratak na odabir dana"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Pomicanje na sljedeći mjesec"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Pomicanje na prethodni mjesec"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Prelazak u godinu %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Trenutačni odabir: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ništa"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Danas"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Vidljiv je alat za odabir godine"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Odaberite datum"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Datum unosa"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Datum unosa: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ništa"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datum nije dopušten: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datum se ne podudara s očekivanim uzorkom: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datum je izvan očekivanog raspona godine %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Prijelaz na način unosa u Kalendaru"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Prijelaz na način unosa teksta"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Pomaknite se za prikaz kasnijih godina"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Pomaknite se za prikaz ranijih godina"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Odabir datuma"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Datum početka"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Datum završetka"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Pomaknite se za prikaz sljedećeg mjeseca"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Pomaknite se za prikaz prethodnog mjeseca"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"U dometu"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Unos datuma"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Unos datumskog raspona nije važeći"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Marker za povlačenje"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Sažimanje donje tablice"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Odbacivanje donje tablice"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Proširivanje donje tablice"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Opis"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Prikaži opis"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"Poslijepodne"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"Prijepodne"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Odaberite prijepodne ili poslijepodne"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Odabir sata"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Odabir minuta"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d h"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d h"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d min"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuta"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Sat"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"minutama"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"na jedan sat"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-hu/strings.xml b/compose/material3/material3/src/androidMain/res/values-hu/strings.xml
deleted file mode 100644
index f0cc3f5..0000000
--- a/compose/material3/material3/src/androidMain/res/values-hu/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Párbeszédablak"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Elvetés"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Keresés"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Javaslatok alább"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Dátum kiválasztása"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Kiválasztott dátum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Váltson a kívánt év kiválasztásához"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Csúsztatással kiválaszthatja a kívánt évet, vagy koppintással visszaválthat a nap kiválasztásához."</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Váltás a következő hónapra"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Váltás az előző hónapra"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navigálás a következő évhez: %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Jelenleg kiválasztva: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Nincs"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Ma"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Látható az évválasztó"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Dátum kiválasztása"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Megadott dátum"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Dátum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Megadott dátum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Nincs"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Nem engedélyezett dátum: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"A dátum nem felel meg a várt formátumnak: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"A dátum a várt időtartományon (%1$s – %2$s) kívül esik"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Váltás naptárbeviteli módra"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Váltás szövegbeviteli módra"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Görgessen a későbbi évek megjelenítéséhez"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Görgessen a korábbi évek megjelenítéséhez"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Válassza ki a kívánt dátumokat"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Kezdő dátum"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Befejezés dátuma"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Görgessen a következő hónap megjelenítéséhez"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Görgessen az előző hónap megjelenítéséhez"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Hatókörön belül"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Dátumok megadása"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Érvénytelen a megadott dátum"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Fogópont"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Az alsó lap összecsukása"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Az alsó lap elvetése"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Az alsó lap kibontása"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Elemleírás"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Elemleírás megjelenítése"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"du."</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"de."</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Válassza ki, hogy délelőtt vagy délután"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Óra kiválasztása"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Perc kiválasztása"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d óra"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d óra"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d perc"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Perc"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Óra"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"percre"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"órára"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-hy/strings.xml b/compose/material3/material3/src/androidMain/res/values-hy/strings.xml
deleted file mode 100644
index ec88ab0..0000000
--- a/compose/material3/material3/src/androidMain/res/values-hy/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Երկխոսության պատուհան"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Փակել"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Որոնում"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Առաջարկները հասանելի են ստորև"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Ընտրեք ամսաթիվը"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Ընտրված ամսաթիվ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Անցնել տարվա ընտրությանը"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Սահեցրեք՝ տարեթիվ ընտրելու համար, կամ հպեք՝ օրվա ընտրությանը վերադառնալու համար"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Անցնել հաջորդ ամսվան"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Անցնել նախորդ ամսվան"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Անցնել %1$s թվական"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Ընթացիկ ընտրությունը՝ %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ոչ մեկը"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Այսօր"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Տարեթվի ցուցադրվող ընտրիչ"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Ընտրեք ամսաթիվը"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Մուտքագրված ամսաթիվ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Ամսաթիվ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Մուտքագրված ամսաթիվ՝ %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ընտրված տարրեր չկան"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Ամսաթիվը թույլատրված չէ՝ %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Ամսաթիվը չի համընկնում թույլատրելի ձևաչափի հետ՝ %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Ամսաթիվը տարեթվերի թույլատրելի միջակայքից (%1$s – %2$s) դուրս է"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Անցնել օրացույցի մուտքագրման ռեժիմ"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Անցնել տեքստի մուտքագրման ռեժիմին"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Ոլորեք՝ վերջին տարիները ցուցադրելու համար"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Ոլորեք՝ նախորդ տարիները ցուցադրելու համար"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Ընտրեք ամսաթվեր"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Սկզբի ամսաթիվ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Ավարտի ամսաթիվ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Ոլորեք՝ հաջորդ ամիսը ցուցադրելու համար"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Ոլորեք՝ նախորդ ամիսը ցուցադրելու համար"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Միջակայքում"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Մուտքագրեք ամսաթվերը"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Մուտքագրված ամսաթվերի միջակայքն անվավեր է"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Տեղափոխման նշիչ"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Ծալել ներքևի էկրանը"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Փակել ներքևի էկրանը"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Ծավալել ներքևի էկրանը"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Հուշակ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Ցուցադրել հուշում"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Ընտրել AM կամ PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Ընտրել ժամը"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Ընտրել րոպեն"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ժամ"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d րոպե"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Րոպե"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Ժամ"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"րոպեներ"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ժամեր"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-in/strings.xml b/compose/material3/material3/src/androidMain/res/values-in/strings.xml
deleted file mode 100644
index 22625d0..0000000
--- a/compose/material3/material3/src/androidMain/res/values-in/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Tutup"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Telusuri"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Saran di bawah"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Pilih tanggal"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Tanggal yang dipilih"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Beralih ke memilih tahun"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Geser untuk memilih tahun, atau ketuk untuk beralih kembali ke pemilihan tanggal"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Ubah ke bulan berikutnya"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Ubah ke bulan sebelumnya"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Pilih tahun %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Pilihan saat ini: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Tidak ada"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hari ini"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Pemilih tahun terlihat"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Pilih tanggal"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Tanggal yang dimasukkan"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Tanggal"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Tanggal yang dimasukkan: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Tidak ada"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Tanggal tidak diizinkan: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Tanggal tidak cocok dengan pola yang diharapkan: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Tanggal di luar rentang tahun yang diharapkan %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Beralih ke mode input kalender"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Beralih ke mode input teks"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Scroll untuk menampilkan tahun berikutnya"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Scroll untuk menampilkan tahun sebelumnya"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Pilih tanggal"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Tanggal mulai"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Tanggal akhir"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Scroll untuk menampilkan bulan berikutnya"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Scroll untuk menampilkan bulan sebelumnya"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dalam rentang"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Masukkan tanggal"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Input rentang tanggal tidak valid"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Handel geser"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Menciutkan sheet bawah"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Menutup sheet bawah"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Meluaskan sheet bawah"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Tooltip"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Tampilkan tooltip"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Pilih AM atau PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Pilih jam"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Pilih menit"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Pukul %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d jam"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d menit"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Menit"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Jam"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"untuk menit"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"untuk jam"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-is/strings.xml b/compose/material3/material3/src/androidMain/res/values-is/strings.xml
deleted file mode 100644
index 0e78deb..0000000
--- a/compose/material3/material3/src/androidMain/res/values-is/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Gluggi"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Hunsa"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Leit"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Tillögur hér fyrir neðan"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Velja dagsetningu"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Valin dagsetning"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Skipta yfir í val á ári"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Strjúktu til að velja ár eða ýttu til að skipta aftur yfir í að velja dag"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Breyta í næsta mánuð"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Breyta í fyrri mánuð"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Fletta til ársins %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Núverandi val: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ekkert"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Í dag"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Ársval birt"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Velja dagsetningu"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Skráð dagsetning"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Dagsetning"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Skráð dagsetning: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ekkert"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Dagsetning er ekki leyfileg: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Dagsetning passar ekki við áætlað mynstur: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Dagsetning er utan áætlaðra ára: %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Skipta yfir í innfærsluaðferð fyrir dagatal"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Skipta yfir í textainnslátt"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Flettu til að sjá síðari ár"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Flettu til að sjá fyrri ár"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Veldu dagsetningar"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Upphafsdagur"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Lokadagur"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Flettu til að sjá næsta mánuð"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Flettu til að sjá fyrri mánuð"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Innan tímabils"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Sláðu inn dagsetningar"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Ógilt tímabil fært inn"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Dragkló"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Minnka blað neðst"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Hunsa blað neðst"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Stækka blað neðst"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Ábending"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Sýna ábendingu"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"eh"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"fh"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Velja f.h. eða e.h."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Velja klst."</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Velja mínútur"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Kl. %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d klst."</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d mínútur"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Mínúta"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Klukkustund"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"fyrir mínútur"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"fyrir klukkustund"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-it/strings.xml b/compose/material3/material3/src/androidMain/res/values-it/strings.xml
deleted file mode 100644
index ab99079..0000000
--- a/compose/material3/material3/src/androidMain/res/values-it/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Finestra di dialogo"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Chiudi"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Cerca"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggerimenti sotto"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Seleziona data"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Data selezionata"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Passa alla selezione di un anno"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Scorri per selezionare un anno o tocca per tornare alla selezione di un giorno"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Passa al mese successivo"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Passa al mese precedente"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Vai all\'anno %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Selezione attuale: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Nessuna selezione"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Oggi"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Selettore dell\'anno visibile"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Seleziona data"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Data inserita"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Data inserita: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Nessuna"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data non consentita: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"La data non corrisponde al pattern previsto: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"La data non rientra nell\'intervallo di anni previsto (%1$s-%2$s)"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Passa alla modalità di immissione Calendario"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Passa alla modalità di immissione Testo"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Scorri per visualizzare gli anni successivi"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Scorri per visualizzare gli anni precedenti"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Seleziona date"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data di inizio"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data di fine"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Scorri per visualizzare il mese successivo"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Scorri per visualizzare il mese precedente"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Nell\'intervallo"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Inserisci date"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Intervallo di date inserito non valido"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Punto di trascinamento"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Comprimi il riquadro inferiore"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Chiudi il riquadro inferiore"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Espandi il riquadro inferiore"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Descrizione comando"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Mostra descrizione comando"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Seleziona AM o PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Seleziona ora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Seleziona i minuti"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ore"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minuti"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuto"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Ora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"per minuti"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"per ora"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-iw/strings.xml b/compose/material3/material3/src/androidMain/res/values-iw/strings.xml
deleted file mode 100644
index 77b22bd..0000000
--- a/compose/material3/material3/src/androidMain/res/values-iw/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"תיבת דו-שיח"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"סגירה"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"חיפוש"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"הצעות מופיעות למטה"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"בחירת תאריך"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"התאריך הנבחר"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"החלפה לבחירה של שנה"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"יש להחליק כדי לבחור שנה, או להקיש כדי לחזור לבחירת היום"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"מעבר לחודש הבא"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"מעבר לחודש הקודם"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"‏ניווט לשנת %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"‏הבחירה הנוכחית: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ללא"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"היום"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"בורר השנה גלוי"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"בחירת תאריך"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"התאריך שהוזן"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"תאריך"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"‏התאריך שהוזן: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ללא"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"‏תאריך לא מורשה: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"‏התאריך לא תואם לקו ביטול הנעילה הצפוי: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"‏התאריך נמצא מחוץ לטווח השנים הצפוי %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"מעבר לשיטת קלט של יומן"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"מעבר לשיטת קלט של טקסט"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"צריך לגלול כדי להציג את השנים המאוחרות"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"צריך לגלול כדי להציג את השנים הקודמות"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"בחירת תאריכים"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"תאריך התחלה"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"תאריך סיום"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"צריך לגלול כדי להציג את החודש הבא"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"צריך לגלול כדי להציג את החודש הקודם"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"בטווח"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"הזנת תאריכים"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"קלט טווח תאריכים לא חוקי"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"נקודת אחיזה לגרירה"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"כיווץ הגיליון התחתון"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"סגירת הגיליון התחתון"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"הרחבת הגיליון התחתון"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"הסבר קצר"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"הצגת הסבר קצר"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"‏צריך לבחור ב-AM או ב-PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"בחירת שעה"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"בחירת דקות"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"‏%1$d שעות"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"‏%1$d דקות"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"דקות"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"שעות"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"דקות"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"שעות"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ja/strings.xml b/compose/material3/material3/src/androidMain/res/values-ja/strings.xml
deleted file mode 100644
index 416719f..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ja/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ダイアログ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"閉じる"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"検索"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"検索候補は次のとおりです"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"日付を選択します"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"選択した日付"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"年の選択に移行"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"スワイプして年を選択するか、タップして日付の選択に戻ります"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"翌月に変更"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"前月に変更"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"年に移動 %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"現在の選択: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"なし"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"今日"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"年の選択ツールの表示"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"日付を選択"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"入力された日付"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"日付"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"入力された日付: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"なし"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"許可されていない日付です: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"想定されるパターンと日付が一致しません: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"想定される年の範囲(%1$s~%2$s)から日付が外れています"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"カレンダー入力モードに切り替え"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"テキスト入力モードに切り替え"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"これより後の年を表示するにはスクロールしてください"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"これより前の年を表示するにはスクロールしてください"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"日付の選択"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"開始日"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"終了日"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"次の月を表示するにはスクロールしてください"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"前の月を表示するにはスクロールしてください"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"範囲内"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"日付の入力"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"入力された期間は無効です"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ドラッグ ハンドル"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"ボトムシートを折りたたみます"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ボトムシートを閉じます"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ボトムシートを開きます"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"ツールチップ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"ツールチップを表示します"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"午前または午後を選択"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"時刻を選択"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"分を選択"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d 時"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d 時間"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d 分"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"分"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"時間"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"(分単位)"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"(時間単位)"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ka/strings.xml b/compose/material3/material3/src/androidMain/res/values-ka/strings.xml
deleted file mode 100644
index 205cfa5..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ka/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"დიალოგი"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"დახურვა"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ძიება"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"შემოთავაზებები იხილეთ ქვემოთ"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"აირჩიეთ თარიღი"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"არჩეული თარიღი"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"წლის არჩევაზე გადასვლა"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"გადაფურცლეთ წლის ასარჩევად, ან შეხებით აირჩიეთ ისევ დღის არჩევაზე გადართვა"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"შემდეგ თვეზე გადასვლა"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"წინა თვეზე გადასვლა"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s-ზე გადასვლა"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"ამჟამინდელი არჩევანი: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"არცერთი"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"დღეს"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"არჩეული წელი ხილულია"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"აირჩიეთ თარიღი"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"შეყვანილი სახელი"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"თარიღი"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"შეყვანილი თარიღი: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"არცერთი"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"თარიღი დაუშვებელია: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"თარიღი არ ემთხვევა მოსალოდნელ ნიმუშს: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"თარიღი არ არის წლების მოსალოდნელ დიაპაზონში %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"კალენდარში შეყვანის რეჟიმზე გადართვა"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ტექსტის შეყვანის რეჟიმზე გადართვა"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"გადააადგილეთ შემდგომი წლების საჩვენებლად"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"გადააადგილეთ წინა წლების საჩვენებლად"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"თარიღების არჩევა"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"დაწყების თარიღი"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"დასრულების თარიღი"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"გადააადგილეთ შემდეგი თვის საჩვენებლად"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"გადააადგილეთ წინა თვის საჩვენებლად"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"არეალშია"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"თარიღების შეყვანა"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"შეყვანილია თარიღების არასწორი დიაპაზონი"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"სახელური ჩავლებისთვის"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"ქვედა ფურცლის ჩაკეცვა"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ქვედა ფურცლის უარყოფა"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ქვედა ფურცლის გაშლა"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"მინიშნება"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"მინიშნების ჩვენება"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"აირჩიეთ AM ან PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"აირჩიეთ საათი"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"აირჩიეთ წუთები"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d სთ"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d საათი"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d წთ"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"წუთი"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"საათი"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"რამდენიმე წუთით"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ერთი საათით"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-kk/strings.xml b/compose/material3/material3/src/androidMain/res/values-kk/strings.xml
deleted file mode 100644
index 11ed19f..0000000
--- a/compose/material3/material3/src/androidMain/res/values-kk/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Диалогтік терезе"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Жабу"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Іздеу"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Төмендегі ұсыныстар"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Күн таңдау"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Таңдалған күн"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Жыл таңдауға өту"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Жыл таңдау үшін сырғытыңыз. Күн таңдауға ауысу үшін түртіңіз."</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Келесі айға өзгерту"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Алдыңғы айға өзгерту"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Мына жылға өту: %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Қазіргі таңдау: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ешқандай"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Бүгін"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Көрсетілген жыл таңдағышы"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Күнді таңдаңыз"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Деректер енгізілді"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Күні"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Деректер енгізілді: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Жоқ"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Деректер рұқсат етілмейді: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Деректер болжалды өрнекке сай келмейді: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Күтілетін жыл аралығы: %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Күнтізбенің енгізу режиміне ауысу"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Мәтін енгізу режиміне ауысу"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Кейінгі жылдарды көрсету үшін айналдырыңыз."</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Алдыңғы жылдарды көрсету үшін айналдырыңыз."</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Күндер таңдау"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Басталу күні"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Аяқталу күні"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Келесі айды көрсету үшін айналдырыңыз."</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Алдыңғы айды көрсету үшін айналдырыңыз."</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Күндер аралығында"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Күндерді енгізіңіз"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Жарамсыз күндер аралығы енгізілген."</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Сүйрейтін тетік"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Төменгі парақшаны жию"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Төменгі парақшаны жабу"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Төменгі парақшаны жаю"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Қалқыма көмек"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Қалқыма көмекті көрсету"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"түстен кейін"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"түске дейін"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"\"AM\" немесе \"PM\" форматын таңдау"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Сағатты таңдау"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Минут таңдау"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d сағат"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d сағат"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d минут"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Mинут"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Сағат"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"минут"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"сағат"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-km/strings.xml b/compose/material3/material3/src/androidMain/res/values-km/strings.xml
deleted file mode 100644
index fc671fa..0000000
--- a/compose/material3/material3/src/androidMain/res/values-km/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ប្រអប់"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"ច្រានចោល"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ស្វែងរក"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"ការណែនាំខាងក្រោម"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"ជ្រើសរើស​កាលបរិច្ឆេទ"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"កាលបរិច្ឆេទដែលបាន​ជ្រើសរើស"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ប្ដូរទៅ​ការជ្រើសរើសឆ្នាំ"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"អូសដើម្បីជ្រើសរើសឆ្នាំ ឬចុចដើម្បីប្ដូរត្រឡប់ទៅការជ្រើសរើសថ្ងៃវិញ"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"ប្ដូរ​ទៅ​ខែបន្ទាប់"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"ប្ដូរ​ទៅ​ខែមុន"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"រុករកទៅកាន់ឆ្នាំ %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"ការជ្រើសរើសបច្ចុប្បន្ន៖ %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"គ្មាន"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ថ្ងៃនេះ"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"អាចមើលឃើញផ្ទាំងជ្រើសរើសឆ្នាំ"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"ជ្រើសរើស​កាលបរិច្ឆេទ"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"កាលបរិច្ឆេទដែលបានបញ្ចូល"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"កាលបរិច្ឆេទ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"កាលបរិច្ឆេទដែលបានបញ្ចូល៖ %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"គ្មាន"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"កាលបរិច្ឆេទដែលមិនបានអនុញ្ញាត៖ %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"កាលបរិច្ឆេទមិនត្រូវគ្នានឹងលំនាំដែលរំពឹងទុកទេ៖ %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"កាលបរិច្ឆេទដែលស្ថិតនៅក្រៅចន្លោះឆ្នាំដែលរំពឹងទុក %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"ប្ដូរទៅ​មុខងារបញ្ចូល​ប្រតិទិន"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ប្ដូរទៅ​មុខងារបញ្ចូល​អក្សរ"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"រំកិលដើម្បី​បង្ហាញឆ្នាំក្រោយៗ"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"រំកិលដើម្បី​បង្ហាញឆ្នាំមុនៗ"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"ជ្រើសរើស​កាល​បរិច្ឆេទ"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"កាលបរិច្ឆេទ​ចាប់ផ្ដើម"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"កាលបរិច្ឆេទ​បញ្ចប់"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"រំកិលដើម្បីបង្ហាញខែក្រោយ"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"រំកិលដើម្បីបង្ហាញខែមុន"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"ក្នុងចន្លោះ"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"បញ្ចូល​កាលបរិច្ឆេទ"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"ការបញ្ចូលចន្លោះកាលបរិច្ឆេទមិនត្រឹមត្រូវ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ដង​អូស"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"បង្រួម​សន្លឹកខាងក្រោម"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ច្រានចោល​សន្លឹកខាងក្រោម"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ពង្រីក​សន្លឹកខាងក្រោម"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"កំណត់​ពន្យល់"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"បង្ហាញ​កំណត់​ពន្យល់"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"ជ្រើសរើស AM ឬ PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"ជ្រើសរើសម៉ោង"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"ជ្រើស​នាទី"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"ម៉ោង %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ម៉ោង"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d នាទី"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"នាទី​"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ម៉ោង"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"រយៈពេលប៉ុន្មាននាទី"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"រយៈពេលប៉ុន្មានម៉ោង"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-kn/strings.xml b/compose/material3/material3/src/androidMain/res/values-kn/strings.xml
deleted file mode 100644
index aead7fc..0000000
--- a/compose/material3/material3/src/androidMain/res/values-kn/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ಡೈಲಾಗ್"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"ವಜಾಗೊಳಿಸಿ"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ಹುಡುಕಿ"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"ಸಲಹೆಗಳನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ವರ್ಷವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಬದಲಿಸಿ"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ಒಂದು ವರ್ಷವನ್ನು ಆಯ್ಕೆಮಾಡಲು ಸ್ವೈಪ್ ಮಾಡಿ ಅಥವಾ ಒಂದು ದಿನವನ್ನು ಆಯ್ಕೆಮಾಡಲು ಹಿಂತಿರುಗಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"ಮುಂದಿನ ತಿಂಗಳಿಗೆ ಬದಲಿಸಿ"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"ಹಿಂದಿನ ತಿಂಗಳಿಗೆ ಬದಲಿಸಿ"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s ವರ್ಷಕ್ಕೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"ಪ್ರಸ್ತುತ ಆಯ್ಕೆ: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ಯಾವುದೂ ಅಲ್ಲ"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ಇಂದು"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"ವರ್ಷದ ಪಿಕರ್ ಗೋಚರಿಸುತ್ತದೆ"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"ನಮೂದಿಸಿದ ದಿನಾಂಕ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"ದಿನಾಂಕ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"ನಮೂದಿಸಿದ ದಿನಾಂಕ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ಯಾವುದೂ ಅಲ್ಲ"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"ದಿನಾಂಕವನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"ನಿರೀಕ್ಷಿಸಿದ ಪ್ಯಾಟರ್ನ್‌ನೊಂದಿಗೆ ದಿನಾಂಕ ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"ದಿನಾಂಕವು ನಿರೀಕ್ಷಿಸಿದ ವರ್ಷದ ವ್ಯಾಪ್ತಿಯನ್ನು ಮೀರಿದೆ %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"ಕ್ಯಾಲೆಂಡರ್ ಇನ್‌ಪುಟ್ ಮೋಡ್‌ಗೆ ಬದಲಿಸಿ"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ಪಠ್ಯ ಇನ್‌ಪುಟ್ ಮೋಡ್‌ಗೆ ಬದಲಿಸಿ"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"ನಂತರದ ವರ್ಷಗಳನ್ನು ತೋರಿಸಲು ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"ಹಿಂದಿನ ವರ್ಷಗಳನ್ನು ತೋರಿಸಲು ಸ್ಕ್ರಾಲ್‌ ಮಾಡಿ"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"ದಿನಾಂಕಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"ಆರಂಭ ದಿನಾಂಕ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"ಅಂತಿಮ ದಿನಾಂಕ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"ಮುಂದಿನ ತಿಂಗಳನ್ನು ತೋರಿಸಲು ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"ಹಿಂದಿನ ತಿಂಗಳನ್ನು ತೋರಿಸಲು ಸ್ಕ್ರಾಲ್‌ ಮಾಡಿ"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"ವ್ಯಾಪ್ತಿಯಲ್ಲಿದೆ"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"ದಿನಾಂಕಗಳನ್ನು ನಮೂದಿಸಿ"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"ದಿನಾಂಕ ವ್ಯಾಪ್ತಿಯ ಇನ್‌ಪುಟ್ ಅಮಾನ್ಯವಾಗಿದೆ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ಹ್ಯಾಂಡಲ್ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"ಕೆಳಭಾಗದ ಶೀಟ್ ಅನ್ನು ಕುಗ್ಗಿಸಿ"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ಕೆಳಭಾಗದ ಶೀಟ್ ಅನ್ನು ವಜಾಗೊಳಿಸಿ"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ಕೆಳಭಾಗದ ಶೀಟ್ ಅನ್ನು ವಿಸ್ತರಿಸಿ"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"ಟೂಲ್‌ಟಿಪ್"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"ಟೂಲ್‌ಟಿಪ್ ಅನ್ನು ತೋರಿಸಿ"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM ಅಥವಾ PM ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"ಸಮಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"ನಿಮಿಷಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d ಓ ಕ್ಲಾಕ್"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ಗಂಟೆ"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d ನಿಮಿಷಗಳು"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"ನಿಮಿಷ"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ಗಂಟೆ"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"ನಿಮಿಷಗಳವರೆಗೆ"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ಗಂಟೆಯವರೆಗೆ"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ko/strings.xml b/compose/material3/material3/src/androidMain/res/values-ko/strings.xml
deleted file mode 100644
index bbe57a2..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ko/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"대화상자"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"닫기"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"검색"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"아래의 추천 검색어"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"날짜 선택"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"선택한 날짜"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"연도 선택으로 전환"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"스와이프하여 연도를 선택하거나 탭하여 날짜 선택으로 돌아가세요."</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"다음 달로 변경"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"이전 달로 변경"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s년으로 이동"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"현재 선택사항: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"없음"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"오늘"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"연도 선택 도구 표시"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"날짜 선택"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"입력한 날짜"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"날짜"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"입력한 날짜: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"없음"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"데이터 허용 안 됨: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"데이터가 예상 패턴과 일치하지 않음: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"데이터가 예상 연도 범위(%1$s~%2$s)를 벗어남"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"캘린더 입력 모드로 전환"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"텍스트 입력 모드로 전환"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"스크롤하여 이후 연도 보기"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"스크롤하여 이전 연도 보기"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"날짜 선택"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"시작일"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"종료일"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"스크롤하여 다음 달 보기"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"스크롤하여 이전 달 보기"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"범위 내"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"날짜 입력"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"잘못된 기간 입력"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"드래그 핸들"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"하단 시트 접기"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"하단 시트 닫기"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"하단 시트 펼치기"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"도움말"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"도움말 표시"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"오후"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"오전"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"오전 또는 오후를 선택하세요."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"시간 선택"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"분 선택"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d시 정각"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d시간"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d분"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"분"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"시간"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"기간(분)"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"기간(시간)"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ky/strings.xml b/compose/material3/material3/src/androidMain/res/values-ky/strings.xml
deleted file mode 100644
index 81f00bb..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ky/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Диалог"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Жабуу"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Издөө"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Сунуштар төмөндө келтирилди"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Күндү тандоо"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Тандалган күн"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Жыл тандоого которулуу"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Жылды тандоо үчүн экранды сүрүңүз же күндү тандоого кайтуу үчүн таптап коюңуз"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Кийинки айга өзгөртүү"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Мурунку айга өзгөртүү"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s-жылга өтүү"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Учурда %1$s тандалды"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Жок"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Бүгүн"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Көрсөтүлгөн жыл тандагыч"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Күндү тандоо"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Киргизилген күн"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Күнү"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Киргизилген күн: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Жок"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Күндүн мындай форматын колдонууга болбойт: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Күндүн форматы үлгүгө дал келген жок: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Күн %1$s — %2$s деп белгиленген жылдар диапазонуна кирбей калды"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Жылнаамага киргизүү режимине которулуу"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Текст киргизүү режимине которулуу"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Кийинки жылдарды көрүү үчүн сыдырыңыз"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Мурунку жылдарды көрүү үчүн сыдырыңыз"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Күндөрдү тандоо"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Башталуу күнү"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Аяктоо күнү"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Кийинки айды көрүү үчүн сыдырыңыз"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Мурунку айды көрүү үчүн сыдырыңыз"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Төмөнкү убакыт аралыгындагы күн"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Күндөрдү киргизүү"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Даталар диапазону туура эмес тандалды"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Тизменин керектүү жерине сүйрөп баруу"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Ылдыйкы экранды жыйыштыруу"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Ылдыйкы экранды жабуу"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Ылдыйкы экранды жайып көрсөтүү"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Калкып чыгуучу кеңеш"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Калкып чыгуучу кеңешти көрсөтүү"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"түштөн кийин"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"түшкө чейин"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Түшкө чейинки же түштөн кийинки убакытты тандоо"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Саат тандоо"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Мүнөттөрдү тандоо"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d саат"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d саат"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d мүнөт"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Мүнөт"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Саат"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"мүнөткө"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"саатка"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-lo/strings.xml b/compose/material3/material3/src/androidMain/res/values-lo/strings.xml
deleted file mode 100644
index f350116..0000000
--- a/compose/material3/material3/src/androidMain/res/values-lo/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ກ່ອງໂຕ້ຕອບ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"ປິດໄວ້"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ຊອກຫາ"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"ການແນະນຳຢູ່ຂ້າງລຸ່ມ"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"ເລືອກວັນທີ"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"ວັນທີທີ່ເລືອກໄວ້"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ປ່ຽນໄປເລືອກປີ"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ປັດເພື່ອເລືອກປີ ຫຼື ແຕະເພື່ອສະຫຼັບກັບໄປຫາການເລືອກວັນ"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"ປ່ຽນເປັນເດືອນຕໍ່ໄປ"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"ປ່ຽນເປັນເດືອນຜ່ານມາ"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"ນຳທາງໄປຫາປີ %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"ການເລືອກປັດຈຸບັນ: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ບໍ່ມີ"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ມື້ນີ້"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"ສະແດງຕົວເລືອກປີ"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"ເລືອກວັນທີ"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"ປ້ອນວັນທີແລ້ວ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"ວັນທີ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"ປ້ອນວັນທີແລ້ວ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ບໍ່ມີ"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"ວັນທີທີ່ບໍ່ອະນຸຍາດ: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"ວັນທີບໍ່ກົງກັບຮູບແບບທີ່ຄາດໄວ້: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"ວັນທີຢູ່ນອກໄລຍະປີທີ່ຄາດໄວ້ %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"ສະຫຼັບໄປໃຊ້ໂໝດປ້ອນຂໍ້ມູນປະຕິທິນ"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ສະຫຼັບໄປໃຊ້ໂໝດປ້ອນຂໍ້ຄວາມ"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"ເລື່ອນເພື່ອສະແດງປີຫຼັງຈາກນີ້"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"ເລື່ອນເພື່ອສະແດງປີກ່ອນໜ້ານີ້"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"ເລືອກວັນທີ"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"ວັນທີເລີ່ມຕົ້ນ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"ວັນທີສິ້ນສຸດ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"ເລື່ອນເພື່ອສະແດງເດືອນຕໍ່ໄປ"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"ເລື່ອນເພື່ອສະແດງເດືອນກ່ອນໜ້າ"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"ຢູ່ໃນໄລຍະ"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"ໃສ່ວັນທີ"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"ອິນພຸດໄລຍະວັນທີບໍ່ຖືກຕ້ອງ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ບ່ອນຈັບລາກ"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"ຫຍໍ້ຊີດລຸ່ມສຸດລົງ"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ປິດຊີດລຸ່ມສຸດໄວ້"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ຂະຫຍາຍຊີດລຸ່ມສຸດ"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"ຄຳແນະນຳ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"ສະແດງຄຳແນະນຳ"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"ຫຼັງທ່ຽງ"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"ກ່ອນທ່ຽງ"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"ເລືອກກ່ອນທ່ຽງ ຫຼື ຫຼັງທ່ຽງ"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"ເລືອກຊົ່ວໂມງ"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"ເລືອກນາທີ"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d ໂມງ"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ຊົ່ວໂມງ"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d ນາທີ"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"ນາທີ"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ຊົ່ວໂມງ"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"ສຳລັບນາທີ"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ສຳລັບຊົ່ວໂມງ"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-lt/strings.xml b/compose/material3/material3/src/androidMain/res/values-lt/strings.xml
deleted file mode 100644
index edfbf46a..0000000
--- a/compose/material3/material3/src/androidMain/res/values-lt/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogo langas"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Atsisakyti"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Paieška"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Pasiūlymai pateikti toliau"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Pasirinkite datą"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Pasirinkta data"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Perjungti į metų pasirinkimą"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Perbraukite, kad pasirinktumėte metus, arba palieskite, kad grįžtumėte ir vėl pasirinktumėte dieną"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Pakeisti į kitą mėnesį"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Pakeisti į ankstesnį mėnesį"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Eiti į %1$s m."</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Dabartinis pasirinkimas: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Nėra"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Šiandien"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Rodomas metų parinkiklis"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Pasirinkite datą"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Įvesta data"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Įvesta data: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Nėra"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data neleidžiama: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Data neatitinka numatyto šablono: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Data nepatenka į numatytų metų diapazoną: %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Perjungti į kalendoriaus įvesties režimą"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Perjungti į teksto įvesties režimą"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Slinkite, kol bus rodomi vėlesni metai"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Slinkite, kol bus rodomi ankstesni metai"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Pasirinkite datas"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Pradžios data"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Pabaigos data"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Slinkite, kol bus rodomas kitas mėnuo"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Slinkite, kol bus rodomas ankstesnis mėnuo"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Diapazone"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Įvesti datas"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Netinkama dienų sekos įvestis"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Vilkimo rankenėlė"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Sutraukti apatinį lapą"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Atsisakyti apatinio lapo"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Išskleisti apatinį lapą"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Patarimas"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Rodyti patarimą"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"popiet"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"priešpiet"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Pasirinkite „priešpiet“ arba „popiet“"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Pasirinkite valandą"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Pasirinkite minutes"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d val."</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d val."</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%d min."</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minutė"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Valanda"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"minutės"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"valandos"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-lv/strings.xml b/compose/material3/material3/src/androidMain/res/values-lv/strings.xml
deleted file mode 100644
index edb7117..0000000
--- a/compose/material3/material3/src/androidMain/res/values-lv/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialoglodziņš"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Noraidīt"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Meklēšana"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Tālāk ir sniegti ieteikumi"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Atlasīt datumu"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Atlasītais datums"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Pāriet uz gada atlasi"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Velciet, lai atlasītu gadu, vai pieskarieties, lai pārietu atpakaļ pie dienas atlases"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Mainīt uz nākamo mēnesi"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Mainīt uz iepriekšējo mēnesi"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Pāriet uz %1$s. gadu"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Pašreizējā atlase: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Nav"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Šodien"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Redzams gada atlasītājs"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Atlasīt datumu"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Ievadītais datums"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datums"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Ievadītais datums: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Nav"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datums nav atļauts: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datums neatbilst paredzētajam formātam: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datums nav paredzētajā gadu diapazonā (%1$s.–%2$s. g.)"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Pārslēgties uz kalendāra ievades režīmu"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Pārslēgties uz teksta ievades režīmu"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Lai rādītu nākamos gadus, ritiniet"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Lai rādītu iepriekšējos gadus, ritiniet"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Atlasiet datumus"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Sākuma datums"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Beigu datums"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Lai rādītu nākamo mēnesi, ritiniet"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Lai rādītu iepriekšējo mēnesi, ritiniet"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Atlasītajā diapazonā"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Ievadiet datumus"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Ievadīts nederīgs datumu diapazons."</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Vilkšanas turis"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Sakļaut ekrāna apakšdaļas lapu"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Noraidīt ekrāna apakšdaļas lapu"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Izvērst ekrāna apakšdaļas lapu"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Rīka padoms"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Rādīt rīka padomu"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Atlasīt “AM” (priekšpusdienā) vai “PM” (pēcpusdienā)"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Atlasīt stundu"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Atlasīt minūtes"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"Minūtes: %1$d"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minūtes"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Stundas"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"(minūtes)"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"(stundas)"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-mk/strings.xml b/compose/material3/material3/src/androidMain/res/values-mk/strings.xml
deleted file mode 100644
index 5729b09..0000000
--- a/compose/material3/material3/src/androidMain/res/values-mk/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Дијалог"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Отфрли"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Пребарување"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Предлозите се наведени подолу"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Изберете датум"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Избран датум"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Префрли на бирање година"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Повлечете за да изберете година или допрете за да се вратите на бирање ден"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Промени на следниот месец"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Промени на претходниот месец"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Одете на годината %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Тековен избор: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Нема"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Денес"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Избирачот на година е видлив"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Изберете датум"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Внесен датум"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Датум"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Внесен датум: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Нема"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Датумот не е дозволен: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Не се совпаѓа со очекуваната шема: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Датумот не е во очекуваниот опсег на години %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Префрли на режим за внесување во календарот"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Префрли на режим за внесување текст"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Лизгајте за да ги прикажете подоцнежните години"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Лизгајте за да ги прикажете претходните години"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Изберете датуми"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Датум на започнување"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Датум на завршување"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Лизгајте за да го прикажете следниот месец"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Лизгајте за да го прикажете претходниот месец"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Во опсег"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Внесете датуми"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Внесовте неважечки временски период"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Рачка за влечење"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Собери го долниот лист"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Отфрли го долниот лист"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Прошири го долниот лист"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Совет за алатка"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Прикажи совет за алатка"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"попладне"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"претпладне"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Изберете претпладне или попладне"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Изберете час"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Изберете минути"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d часот"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d часот"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d минути"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Минута"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Час"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"за минути"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"за час"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ml/strings.xml b/compose/material3/material3/src/androidMain/res/values-ml/strings.xml
deleted file mode 100644
index 2cf84ce..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ml/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ഡയലോഗ്"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"ഡിസ്‌മിസ് ചെയ്യുക"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"തിരയുക"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"നിദ്ദേശങ്ങൾ ചുവടെയുണ്ട്"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"തീയതി തിരഞ്ഞെടുക്കുക"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"തിരഞ്ഞെടുത്ത തീയതി"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"വർഷം തിരഞ്ഞെടുക്കുന്നതിലേക്ക് മാറുക"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"വർഷം തിരഞ്ഞെടുക്കാൻ സ്വൈപ്പ് ചെയ്യുക അല്ലെങ്കിൽ ദിവസം തിരഞ്ഞെടുക്കുന്നതിലേക്ക് തിരികെ പോകാൻ ടാപ്പ് ചെയ്യുക"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"അടുത്ത മാസത്തിലേക്ക് മാറ്റുക"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"മുമ്പത്തെ മാസത്തിലേക്ക് മാറ്റുക"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s എന്ന വർഷത്തിലേക്ക് പോകുക"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"നിലവിലെ തിരഞ്ഞെടുപ്പ്: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ഒന്നുമില്ല"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ഇന്ന്"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"വർഷ പിക്കർ ദൃശ്യമാണ്"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"തീയതി തിരഞ്ഞെടുക്കുക"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"നൽകിയ തീയതി"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"തീയതി"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"നൽകിയ തീയതി: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ഒന്നുമില്ല"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"തീയതി അനുവദനീയമല്ല: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"പ്രതീക്ഷിച്ച പാറ്റേണുമായി തീയതി പൊരുത്തപ്പെടുന്നില്ല: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"പ്രതീക്ഷിക്കുന്ന കാലയളവിലെ വർഷമല്ല നൽകിയ തീയതിയുടേത് %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"കലണ്ടർ ഇൻപുട്ട് മോഡിലേക്ക് മാറുക"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ടെക്‌സ്‌റ്റ് ഇൻപുട്ട് മോഡിലേക്ക് മാറുക"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"പിന്നീടുള്ള വർഷങ്ങൾ കാണിക്കാൻ സ്ക്രോൾ ചെയ്യുക"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"മുൻ വർഷങ്ങൾ കാണിക്കാൻ സ്ക്രോൾ ചെയ്യുക"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"തീയതികൾ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"ആരംഭിക്കുന്ന തീയതി"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"അവസാനിക്കുന്ന തീയതി"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"\'അടുത്ത മാസം\' കാണിക്കാൻ സ്ക്രോൾ ചെയ്യുക"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"മുമ്പത്തെ മാസം കാണിക്കാൻ സ്ക്രോൾ ചെയ്യുക"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"പരിധിയിൽ"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"തീയതികൾ നൽകുക"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"തീയതി ശ്രേണി ഇൻപുട്ട് അസാധുവാണ്"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"വലിച്ചിടുന്നതിനുള്ള ഹാൻഡിൽ"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"ബോട്ടം ഷീറ്റ് ചുരുക്കുക"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ബോട്ടം ഷീറ്റ് ഡിസ്മിസ് ചെയ്യുക"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ബോട്ടം ഷീറ്റ് വികസിപ്പിക്കുക"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"ടൂൾടിപ്പ്"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"ടൂൾടിപ്പ് കാണിക്കുക"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM അല്ലെങ്കിൽ PM തിരഞ്ഞെടുക്കുക"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"മണിക്കൂർ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"മിനിറ്റ് തിരഞ്ഞെടുക്കുക"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d മണി"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d മ."</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d മിനിറ്റ്"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"മിനിറ്റ്"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"മണിക്കൂർ"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"മിനിറ്റ് നേരത്തേക്ക്"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"മണിക്കൂർ നേരത്തേക്ക്"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-mn/strings.xml b/compose/material3/material3/src/androidMain/res/values-mn/strings.xml
deleted file mode 100644
index b1e4a85..0000000
--- a/compose/material3/material3/src/androidMain/res/values-mn/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Харилцах цонх"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Үл хэрэгсэх"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Хайх"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Доорх зөвлөмжүүд"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Огноо сонгох"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Сонгосон огноо"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Жил сонгох руу сэлгэх"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Он сонгохын тулд шудрах эсвэл өдөр сонгох руу буцааж сэлгэхийн тулд товшино уу"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Дараагийн сар луу өөрчлөх"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Өмнөх сар луу өөрчлөх"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s он руу шилжих"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Одоогийн сонголт: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Байхгүй"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Өнөөдөр"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Он сонгогч харагдаж байна"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Огноо сонгох"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Оруулсан огноо"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Огноо"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Оруулсан огноо: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Байхгүй"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Зөвшөөрөөгүй огноо: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Огноо нь тооцоолсон хээтэй таарахгүй байна: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Тооцоолсон оны %1$s - %2$s мужаас гарсан огноо"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Календарийн орох горим руу сэлгэх"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Текст оруулах горим руу сэлгэх"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Дараагийн жилүүдийг харуулахын тулд гүйлгэнэ үү"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Өмнөх жилүүдийг харуулахын тулд гүйлгэнэ үү"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Огноо сонгох"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Эхлэх огноо"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Дуусах огноо"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Дараагийн сарыг харуулахын тулд гүйлгэнэ үү"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Өмнөх сарыг харуулахын тулд гүйлгэнэ үү"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Хүрээнд байгаа"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Огноо оруулах"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Хугацааны интервалын оролт буруу байна"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Чирэх бариул"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Доод хүснэгтийг хураах"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Доод хүснэгтийг хаах"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Доод хүснэгтийг дэлгэх"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Зөвлөмж"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Зөвлөмж харуулах"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"ҮХ"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"ҮӨ"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"ҮӨ эсвэл ҮХ эсэхийг сонгоно уу"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Цаг сонгох"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Минут сонгоно уу"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d цаг"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d цаг"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d минут"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Минут"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Цаг"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"минутын турш"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"цагийн турш"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-mr/strings.xml b/compose/material3/material3/src/androidMain/res/values-mr/strings.xml
deleted file mode 100644
index 508bca8..0000000
--- a/compose/material3/material3/src/androidMain/res/values-mr/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"डायलॉग"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"डिसमिस करा"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"शोधा"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"सूचना खाली आहेत"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"तारीख निवडा"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"निवडलेली तारीख"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"वर्ष निवडणे वर स्विच करा"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"वर्ष निवडण्यासाठी स्‍वाइप करा, किंवा दिवस निवडण्यावर परत स्विच करण्यासाठी टॅप करा"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"पुढील महिन्यावर बदला"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"मागील महिन्यावर बदला"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s वर्षावर नेव्हिगेट करा"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"सद्य निवड: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"काहीही नाही"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"आज"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"वर्ष पिकर दृश्यमान आहे"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"तारीख निवडा"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"एंटर केलेली तारीख"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"तारीख"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"एंटर केली तारीख: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"काहीही नाही"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"अशा तारखेला अनुमती नाही: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"तारीख ही अपेक्षित पॅटर्नशी जुळत नाही: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"तारीख ही %1$s - %2$s या अपेक्षित रेंजच्या बाहेरची आहे"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"कॅलेंडर इनपुट मोडवर स्विच करा"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"टेक्स्ट इनपुट मोडवर स्विच करा"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"नंतरची वर्ष दाखवण्यासाठी स्क्रोल करा"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"पूर्वीची वर्ष दाखवण्यासाठी स्क्रोल करा"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"तारखा निवडा"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"सुरू होण्याची तारीख"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"संपण्याची तारीख"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"पुढील महिना दाखवण्यासाठी स्क्रोल करा"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"मागील महिना दाखवण्यासाठी स्क्रोल करा"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"रेंजमध्ये"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"तारखा एंटर करा"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"तारीख रेंजचे इनपुट चुकीचे आहे"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ड्रॅग हॅंडल"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"तळाशी असलेली शीट कोलॅप्स करा"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"तळाशी असलेली शीट डिसमिस करा"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"तळाशी असलेली शीट विस्तारीत करा"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"टूलटिप"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"टूलटिप दाखवा"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM किंवा PM निवडा"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"तास निवडा"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"मिनिटे निवडा"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d वाजता"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d तास"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d मिनिटे"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"मिनिट"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"तास"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"मिनिटांसाठी"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"तासासाठी"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ms/strings.xml b/compose/material3/material3/src/androidMain/res/values-ms/strings.xml
deleted file mode 100644
index 3a3a214..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ms/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Ketepikan"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Carian"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Cadangan di bawah"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Pilih tarikh"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Tarikh dipilih"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Beralih kepada pemilihan tahun"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Leret untuk memilih tahun atau ketik untuk bertukar kembali kepada pemilihan hari"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Tukar kepada bulan seterusnya"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Tukar kepada bulan sebelumnya"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navigasi ke tahun %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Pilihan semasa: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Tiada"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hari ini"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Pemilih tahun kelihatan"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Pilih tarikh"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Tarikh yang dimasukkan"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Tarikh"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Tarikh yang dimasukkan: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Tiada"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Tarikh yang tidak dibenarkan: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Tarikh tidak sepadan dengan corak yang dijangkakan: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Tarikh di luar julat tahun yang dijangkakan %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Beralih kepada mod input kalendar"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Beralih kepada mod input teks"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Tatal untuk menunjukkan tahun kemudian"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Tatal untuk menunjukkan tahun terdahulu"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Pilih tarikh"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Tarikh mula"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Tarikh tamat"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Tatal untuk menunjukkan bulan seterusnya"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Tatal untuk menunjukkan bulan sebelumnya"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dalam liputan"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Masukkan tarikh"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Input julat tarikh tidak sah"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Pemegang seret"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Kuncupkan helaian bawah"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Ketepikan helaian bawah"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Kembangkan helaian bawah"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Tip alat"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Tunjukkan tip alat"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"P/M"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"PG"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Pilih PG atau PTG/MLM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Pilih jam"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Pilih minit"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Pukul %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d jam"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minit"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minit"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Jam"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"selama # minit"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"selama # jam"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-my/strings.xml b/compose/material3/material3/src/androidMain/res/values-my/strings.xml
deleted file mode 100644
index 49c9da8..0000000
--- a/compose/material3/material3/src/androidMain/res/values-my/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ဒိုင်ယာလော့"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"ပယ်ရန်"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ရှာဖွေရန်"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"အကြံပြုချက်များ အောက်တွင်ရှိသည်"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"ရက်စွဲရွေးရန်"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"ရွေးထားသည့် ရက်စွဲ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"နှစ်ရွေးခြင်းသို့ ပြောင်းရန်"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ခုနှစ်ရွေးချယ်ရန် ပွတ်ဆွဲပါ (သို့) ရက်ရွေးချယ်ခြင်းသို့ ပြန်ရန် တို့ပါ"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"နောက်လသို့ ပြောင်းရန်"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"ယခင်လသို့ ပြောင်းရန်"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s ခုနှစ်သို့ သွားရန်"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"လက်ရှိ ရွေးချယ်မှု- %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"မရှိ"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ယနေ့"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"ခုနှစ်ရွေးချယ်ရေးစနစ်ကို မြင်ရသည်"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"ရက်စွဲရွေးရန်"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"ထည့်ထားသော ရက်စွဲ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"ရက်စွဲ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"ထည့်ထားသော ရက်စွဲ- %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"မရှိ"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"ရက်စွဲကို ခွင့်ပြုမထားပါ- %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"ရက်စွဲသည် မျှော်မှန်းထားသော ပုံစံနှင့် မကိုက်ညီပါ- %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"ရက်စွဲသည် မျှော်မှန်းထားသော နှစ်အပိုင်းအခြား %1$s - %2$s တွင် မပါဝင်ပါ"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"ပြက္ခဒိန် လက်ကွက်ထည့်သွင်းနည်းသို့ ပြောင်းရန်"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"စာရိုက်နည်းသို့ ပြောင်းရန်"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"နောက်ပိုင်းနှစ်များ ပြရန် လှိမ့်ပါ"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"ယခင်နှစ်များ ပြရန် လှိမ့်ပါ"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"ရက်စွဲများရွေးပါ"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"စတင်ရက်"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"ပြီးဆုံးရက်"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"လာမည့်လကို ပြရန် လှိမ့်ပါ"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"ယခင်လကို ပြရန် လှိမ့်ပါ"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"အပိုင်းအခြားအတွင်း"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"ရက်စွဲများထည့်ပါ"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"ဒေတာအပိုင်းအခြား ထည့်သွင်းမှု မမှန်ပါ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ဖိဆွဲအထိန်း"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"အောက်ခြေအပိုဆောင်း စာမျက်နှာကို ချုံ့သည်"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"အောက်ခြေအပိုဆောင်း စာမျက်နှာကို ပယ်သည်"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"အောက်ခြေအပိုဆောင်း စာမျက်နှာကို ချဲ့သည်"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"အကြံပြုချက်ပြ ပေါ့အပ် ဝင်းဒိုး"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"အကြံပြုချက်ပြ ပေါ့အပ်ဝင်းဒိုး ပြရန်"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM (သို့) PM ရွေးရန်"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"နာရီ ရွေးရန်"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"မိနစ် ရွေးရန်"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d နာရီ"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d နာရီ"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d မိနစ်"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"မိနစ်"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"နာရီ"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"မိနစ်ကြာ"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"နာရီကြာ"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-nb/strings.xml b/compose/material3/material3/src/androidMain/res/values-nb/strings.xml
deleted file mode 100644
index 943ea73..0000000
--- a/compose/material3/material3/src/androidMain/res/values-nb/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogboks"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Lukk"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Søk"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Du finner forslag nedenfor"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Velg dato"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Valgt dato"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Bytt til å velge et år"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Sveip for å velge år, eller trykk for å bytte tilbake til valg av dag"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Endre til neste måned"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Endre til forrige måned"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Gå til år %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Valgt: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ingen"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"I dag"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Årsvelgeren er synlig"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Velg dato"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Angitt dato"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Dato"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Angitt dato: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ingen"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datoen er ikke tillatt: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datoen matcher ikke det forventede mønsteret: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datoen er utenfor det forventede årsintervallet %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Bytt til kalendermodus for inndata"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Bytt til tekstmodus for inndata"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Rull for å vise senere år"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Rull for å vise tidligere år"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Velg datoer"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Startdato"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Sluttdato"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Rull for å vise den neste måneden"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Rull for å vise den forrige måneden"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Innen rekkevidde"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Legg inn datoer"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"En ugyldig dataperiode er skrevet inn"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Håndtak"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Skjul feltet nederst"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Lukk feltet nederst"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Vis feltet nederst"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Verktøytips"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Vis verktøytips"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Velg AM eller PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Velg time"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Velg minutter"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d timer"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutter"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minutt"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Time"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"for minutter"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"for timer"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ne/strings.xml b/compose/material3/material3/src/androidMain/res/values-ne/strings.xml
deleted file mode 100644
index 5a4fec4..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ne/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"डायलग"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"हटाउनुहोस्"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"खोज्नुहोस्"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"सुझावहरू तल दिइएका छन्"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"मिति चयन गर्नुहोस्"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"चयन गरिएको मिति"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"साल चयन गर्ने फिल्डमा जानुहोस्"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"कुनै साल छनौट गर्न स्वाइप गर्नुहोस् वा दिन चयन गर्न ट्याप गर्नुहोस्"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"हाल चयन गरिएको महिना परिवर्तन गरी आगामी महिना बनाउनुहोस्"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"हाल चयन गरिएको महिना परिवर्तन गरी अघिल्लो महिना बनाउनुहोस्"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"साल %1$s मा जानुहोस्"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"हालको छनौट: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"कुनै पनि होइन"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"आज"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"साल पिकर देखिएको छ"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"मिति चयन गर्नुहोस्"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"हालिएको मिति"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"मिति"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"हालिएको मिति: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"कुनै पनि होइन"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"यो मिति हाल्न पाइँदैन: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"हालिएको मितिको ढाँचा अपेक्षित ढाँचासँग मिलेन: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"हालिएको मिति सालको अपेक्षित दायरा (%1$s - %2$s) भित्र पर्दैन"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"पात्रोको इनपुट मोड प्रयोग गर्नुहोस्"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"टेक्स्ट इनपुट मोड प्रयोग गर्नुहोस्"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"आगामी सालहरूको जानकारी हेर्न स्क्रोल गर्नुहोस्"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"विगतका सालहरूको जानकारी हेर्न स्क्रोल गर्नुहोस्"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"मितिहरू चयन गर्नुहोस्"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"सुरु हुने मिति"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"समापन हुने मिति"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"अर्को महिनाको जानकारी हेर्न स्क्रोल गर्नुहोस्"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"गत महिनाको जानकारी हेर्न स्क्रोल गर्नुहोस्"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"चयन गरिएका मितिभित्र पर्ने"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"मितिहरू हाल्नुहोस्"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"मितिको अवैध दायरा तोकियो"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ड्र्याग ह्यान्डल"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"पुछारको पाना कोल्याप्स गर्नुहोस्"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"पुछारको पाना हटाउनुहोस्"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"पुछारको पाना एक्स्पान्ड गर्नुहोस्"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"टुलटिप"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"टुलटिप देखाइयोस्"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"पूर्वाह्न वा अपराह्न चयन गर्नुहोस्"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"घण्टा चयन गर्नुहोस्"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"मिनेट चयन गर्नुहोस्"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d बजे"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d घण्टा"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d मिनेट"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"मिनेट"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"घण्टा"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"मिनेटका लागि"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"घण्टाका लागि"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-nl/strings.xml b/compose/material3/material3/src/androidMain/res/values-nl/strings.xml
deleted file mode 100644
index 1cb58a4..0000000
--- a/compose/material3/material3/src/androidMain/res/values-nl/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialoogvenster"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Sluiten"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Zoeken"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Suggesties hieronder"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Datum selecteren"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Geselecteerde datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Schakelaar om een jaar te selecteren"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Swipe om een jaar te selecteren of tik om terug te gaan en een dag te selecteren"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Naar volgende maand gaan"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Naar vorige maand gaan"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Ga naar jaar %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Huidige selectie: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Geen"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Vandaag"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Jaarselectie zichtbaar"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Datum selecteren"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Opgegeven datum"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Opgegeven datum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Geen"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datum niet toegestaan: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"De datum komt niet overeen met het verwachte patroon: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datum buiten het verwachte jaarbereik %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Overschakelen naar agenda-invoermodus"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Overschakelen naar tekstinvoermodus"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Scroll om latere jaren te tonen"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Scroll om eerdere jaren te tonen"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Datums selecteren"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Startdatum"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Einddatum"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Scroll om de volgende maand te tonen"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Scroll om de vorige maand te tonen"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Binnen bereik"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Datums opgeven"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Ongeldige invoer voor periode"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Handgreep voor slepen"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Blad onderaan samenvouwen"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Blad onderaan sluiten"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Blad onderaan uitvouwen"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Tooltip"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Tooltip tonen"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM of PM selecteren"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Uur selecteren"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Minuten selecteren"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d uur"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d uur"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minuten"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuut"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Uur"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"voor minuten"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"voor uur"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-or/strings.xml b/compose/material3/material3/src/androidMain/res/values-or/strings.xml
deleted file mode 100644
index 2d8e870c..0000000
--- a/compose/material3/material3/src/androidMain/res/values-or/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ଡାଏଲଗ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"ଖାରଜ କରନ୍ତୁ"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ସର୍ଚ୍ଚ କରନ୍ତୁ"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"ପରାମର୍ଶ ତଳେ ଦିଆଯାଇଛି"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"ତାରିଖ ଚୟନ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"ଚୟନିତ ତାରିଖ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ବର୍ଷ ଚୟନ କରିବାକୁ ସ୍ୱିଚ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ଏକ ବର୍ଷ ଚୟନ କରିବା ପାଇଁ ସ୍ୱାଇପ କରନ୍ତୁ କିମ୍ବା ଏକ ଦିନ ଚୟନ କରିବା ପାଇଁ ପୁଣି ସ୍ୱିଚ କରିବାକୁ ଟାପ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"ପରବର୍ତ୍ତୀ ମାସକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"ପୂର୍ବବର୍ତ୍ତୀ ମାସକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s ବର୍ଷକୁ ନାଭିଗେଟ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"ବର୍ତ୍ତମାନର ଚୟନ: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"କିଛି ନାହିଁ"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ଆଜି"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"ବର୍ଷ ପିକର ଦେଖାଯାଉଛି"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"ତାରିଖ ଚୟନ କରନ୍ତୁ"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"ଲେଖାଯାଇଥିବା ତାରିଖ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"ତାରିଖ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"ଲେଖାଯାଇଥିବା ତାରିଖ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"କିଛି ନାହିଁ"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"ତାରିଖକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"ଆଶା କରାଯାଉଥିବା ପାଟର୍ନ ସହ ତାରିଖ ମେଳ ହେଉନାହିଁ: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"ତାରିଖଟି ଆଶା କରାଯାଉଥିବା ବର୍ଷ ରେଞ୍ଜ %1$s - %2$sରୁ ବାହାରେ ଅଛି"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"କେଲେଣ୍ଡର ଇନପୁଟ ମୋଡକୁ ସ୍ୱିଚ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ଟେକ୍ସଟ ଇନପୁଟ ମୋଡକୁ ସ୍ୱିଚ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"ପର ବର୍ଷଗୁଡ଼ିକ ଦେଖାଇବା ପାଇଁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"ପୂର୍ବ ବର୍ଷଗୁଡ଼ିକ ଦେଖାଇବା ପାଇଁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"ତାରିଖଗୁଡ଼ିକ ଚୟନ କରନ୍ତୁ"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"ଆରମ୍ଭ ତାରିଖ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"ଶେଷ ତାରିଖ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"ପରବର୍ତ୍ତୀ ମାସ ଦେଖାଇବା ପାଇଁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"ପୂର୍ବବର୍ତ୍ତୀ ମାସ ଦେଖାଇବା ପାଇଁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"ରେଞ୍ଜରେ ଅଛି"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"ତାରିଖଗୁଡ଼ିକ ଲେଖନ୍ତୁ"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"ଅବୈଧ ତାରିଖ ରେଞ୍ଜ ଇନପୁଟ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ଡ୍ରାଗ ହେଣ୍ଡେଲ"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"ବଟମ ସିଟକୁ ସଙ୍କୁଚିତ କରନ୍ତୁ"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ବଟମ ସିଟକୁ ଖାରଜ କରନ୍ତୁ"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ବଟମ ସିଟକୁ ବିସ୍ତାର କରନ୍ତୁ"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"ଟୁଲଟିପ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"ଟୁଲଟିପ ଦେଖାନ୍ତୁ"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM କିମ୍ବା PM ଚୟନ କରନ୍ତୁ"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"ଘଣ୍ଟା ଚୟନ କରନ୍ତୁ"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"ମିନିଟ ଚୟନ କରନ୍ତୁ"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$dଟା"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ଘଣ୍ଟା"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d ମିନିଟ"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"ମିନିଟ"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ଘଣ୍ଟା"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"ମିନିଟ ପାଇଁ"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ଘଣ୍ଟା ପାଇଁ"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-pa/strings.xml b/compose/material3/material3/src/androidMain/res/values-pa/strings.xml
deleted file mode 100644
index fe98acf..0000000
--- a/compose/material3/material3/src/androidMain/res/values-pa/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ਵਿੰਡੋ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"ਖਾਰਜ ਕਰੋ"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ਖੋਜੋ"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"ਸੁਝਾਅ ਹੇਠਾਂ ਹਨ"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"ਤਾਰੀਖ ਚੁਣੋ"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"ਚੁਣੀ ਗਈ ਤਾਰੀਖ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ਸਾਲ ਚੁਣਨ ਲਈ ਸਵਿੱਚ ਕਰੋ"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ਕੋਈ ਸਾਲ ਚੁਣਨ ਲਈ ਸਵਾਈਪ ਕਰੋ ਜਾਂ ਕੋਈ ਦਿਨ ਚੁਣਨ ਲਈ ਵਾਪਸ ਜਾਣ ਵਾਸਤੇ ਟੈਪ ਕਰੋ"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"ਅਗਲੇ ਮਹੀਨੇ \'ਤੇ ਜਾਓ"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"ਪਿਛਲੇ ਮਹੀਨੇ \'ਤੇ ਜਾਓ"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"ਸਾਲ %1$s \'ਤੇ ਜਾਓ"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"ਮੌਜੂਦਾ ਚੋਣ: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ਕੋਈ ਨਹੀਂ"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ਅੱਜ"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"ਸਾਲ ਚੋਣਕਾਰ ਦਿਖਣਯੋਗ ਹੈ"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"ਤਾਰੀਖ ਚੁਣੋ"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"ਦਾਖਲ ਕੀਤੀ ਗਈ ਤਾਰੀਖ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"ਤਾਰੀਖ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"ਦਾਖਲ ਕੀਤੀ ਗਈ ਤਾਰੀਖ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ਕੋਈ ਨਹੀਂ"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"ਇਸ ਤਾਰੀਖ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"ਤਾਰੀਖ ਸੰਭਾਵਿਤ ਪੈਟਰਨ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀ: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"ਤਾਰੀਖ ਸੰਭਾਵਿਤ ਸਾਲ ਦੀ ਰੇਂਜ ਤੋਂ ਬਾਹਰ ਹੈ %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"ਕੈਲੰਡਰ ਇਨਪੁੱਟ ਮੋਡ \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ਲਿਖਤ ਇਨਪੁੱਟ ਮੋਡ \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"ਬਾਅਦ ਵਾਲੇ ਸਾਲਾਂ ਨੂੰ ਦਿਖਾਉਣ ਲਈ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"ਪਹਿਲਾਂ ਵਾਲੇ ਸਾਲਾਂ ਨੂੰ ਦਿਖਾਉਣ ਲਈ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"ਤਾਰੀਖਾਂ ਚੁਣੋ"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"ਸ਼ੁੁਰੂਆਤੀ ਤਾਰੀਖ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"ਸਮਾਪਤੀ ਤਾਰੀਖ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"ਅਗਲਾ ਮਹੀਨਾ ਦਿਖਾਉਣ ਲਈ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"ਪਿਛਲਾ ਮਹੀਨਾ ਦਿਖਾਉਣ ਲਈ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"ਰੇਂਜ ਵਿੱਚ"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"ਤਾਰੀਖਾਂ ਦਾਖਲ ਕਰੋ"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"ਇਨਪੁੱਟ ਕੀਤੀ ਗਈ ਤਾਰੀਖ ਦੀ ਰੇਂਜ ਅਵੈਧ ਹੈ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ਘਸੀਟਣ ਵਾਲਾ ਹੈਂਡਲ"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"ਹੇਠਲੀ ਸ਼ੀਟ ਨੂੰ ਸਮੇਟੋ"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ਹੇਠਲੀ ਸ਼ੀਟ ਨੂੰ ਖਾਰਜ ਕਰੋ"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ਹੇਠਲੀ ਸ਼ੀਟ ਦਾ ਵਿਸਤਾਰ ਕਰੋ"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"ਟੂਲ-ਟਿੱਪ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"ਟੂਲ-ਟਿੱਪ ਦਿਖਾਓ"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM ਜਾਂ PM ਚੁਣੋ"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"ਘੰਟਾ ਚੁਣੋ"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"ਮਿੰਟ ਚੁਣੋ"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d ਵਜੇ"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ਘੰਟੇ"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d ਮਿੰਟ"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"ਮਿੰਟ"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ਘੰਟੇ"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"ਮਿੰਟਾਂ ਲਈ"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ਘੰਟੇ ਲਈ"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-pl/strings.xml b/compose/material3/material3/src/androidMain/res/values-pl/strings.xml
deleted file mode 100644
index 4307562..0000000
--- a/compose/material3/material3/src/androidMain/res/values-pl/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Zamknij"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Wyszukiwanie"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Propozycje znajdziesz poniżej"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Wybierz datę"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Wybrana data"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Przełącz na wybór roku"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Przesuń, aby wybrać rok, lub wróć do poprzedniej sekcji i wybierz dzień"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Zmień na następny miesiąc"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Zmień na poprzedni miesiąc"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Przejdź do roku %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Obecnie wybrane: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Brak"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Dzisiaj"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Widoczny selektor roku"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Wybierz datę"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Wprowadzono datę"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Wprowadzono datę: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Brak"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data niedozwolona: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Data nie pasuje do oczekiwanego wzorca: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Data poza oczekiwanym zakresem lat %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Włącz tryb wprowadzania danych kalendarzowych"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Włącz tryb wprowadzania tekstu"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Przewiń, aby wyświetlić późniejsze lata"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Przewiń, aby wyświetlić wcześniejsze lata"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Wybierz daty"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data początkowa"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data końcowa"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Przewiń, aby wyświetlić kolejny miesiąc"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Przewiń, aby wyświetlić poprzedni miesiąc"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"W zasięgu"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Wprowadź daty"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Nieprawidłowy zakres dat"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Uchwyt do przeciągania"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Zwiń planszę dolną"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Zamknij planszę dolną"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Rozwiń planszę dolną"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Etykietka"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Pokaż etykietkę"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Wybierz AM lub PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Wybierz godzinę"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Wybierz minuty"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d godziny"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minut"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuta"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Godzina"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"na minuty"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"na godzinę"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-pt-rBR/strings.xml b/compose/material3/material3/src/androidMain/res/values-pt-rBR/strings.xml
deleted file mode 100644
index 12a5094..0000000
--- a/compose/material3/material3/src/androidMain/res/values-pt-rBR/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Caixa de diálogo"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Dispensar"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Pesquisa"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Sugestões abaixo"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Selecionar data"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Data selecionada"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Trocar para a seleção de ano"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Deslize para selecionar um ano ou toque para voltar à seleção de dia"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Mudar para o próximo mês"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Mudar para o mês anterior"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navegar para o ano de %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Seleção atual: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Nenhuma"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hoje"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Seletor de dia visível"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Selecionar data"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Data inserida"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Data inserida: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Nenhuma"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data não permitida: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"A data não está no padrão esperado: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"A data está fora do intervalo de anos esperado %1$s a %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Alternar para o modo de entrada da agenda"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Alternar para o modo de entrada de texto"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Role a tela para mostrar anos posteriores"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Role a tela para mostrar anos anteriores"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Selecionar datas"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data de início"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data de término"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Role a tela para mostrar o mês posterior"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Role a tela para mostrar o mês anterior"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dentro do alcance"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Informar datas"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Período inválido"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Alça de arrastar"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Fechar página inferior"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Dispensar página inferior"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Abrir página inferior"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Dica"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Mostrar dica"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Selecione AM ou PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Selecione a hora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Selecione os minutos"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$dh"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d horas"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutos"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuto"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"por minutos"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"por hora"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-pt-rPT/strings.xml b/compose/material3/material3/src/androidMain/res/values-pt-rPT/strings.xml
deleted file mode 100644
index 9bb9a3a..0000000
--- a/compose/material3/material3/src/androidMain/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Caixa de diálogo"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Ignorar"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Pesquisar"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Sugestões abaixo"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Selecionar data"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Data selecionada"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Mude para a seleção do ano"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Deslize rapidamente para selecionar um ano ou toque para mudar novamente para a seleção do dia"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Mudar para o mês seguinte"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Mudar para o mês anterior"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navegar para o ano %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Seleção atual: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Nenhuma"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hoje"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Selecionador de ano visível"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Selecionar data"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Data introduzida"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Data introduzida: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Nenhuma"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data não permitida: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"A data não corresponde ao padrão esperado: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Data fora do intervalo de anos esperado: %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Mudar para o método de introdução de calendário"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Mudar para o método de introdução de texto"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Desloque a página para mostrar anos posteriores"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Desloque a página para mostrar anos anteriores"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Selecione as datas"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data de início"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data de fim"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Desloque a página para mostrar o mês seguinte"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Desloque a página para mostrar o mês anterior"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dentro do alcance"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Introduza as datas"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Entrada do intervalo de datas inválida"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Indicador para arrastar"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Reduza a secção inferior"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Ignore a secção inferior"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Expanda a secção inferior"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Sugestão"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Mostrar sugestão"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Selecione AM ou PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Selecione a hora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Selecione os minutos"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d h"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d horas"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutos"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuto"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"para minutos"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"para hora"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-pt/strings.xml b/compose/material3/material3/src/androidMain/res/values-pt/strings.xml
deleted file mode 100644
index 12a5094..0000000
--- a/compose/material3/material3/src/androidMain/res/values-pt/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Caixa de diálogo"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Dispensar"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Pesquisa"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Sugestões abaixo"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Selecionar data"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Data selecionada"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Trocar para a seleção de ano"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Deslize para selecionar um ano ou toque para voltar à seleção de dia"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Mudar para o próximo mês"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Mudar para o mês anterior"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navegar para o ano de %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Seleção atual: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Nenhuma"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hoje"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Seletor de dia visível"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Selecionar data"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Data inserida"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Data inserida: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Nenhuma"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data não permitida: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"A data não está no padrão esperado: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"A data está fora do intervalo de anos esperado %1$s a %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Alternar para o modo de entrada da agenda"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Alternar para o modo de entrada de texto"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Role a tela para mostrar anos posteriores"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Role a tela para mostrar anos anteriores"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Selecionar datas"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data de início"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data de término"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Role a tela para mostrar o mês posterior"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Role a tela para mostrar o mês anterior"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Dentro do alcance"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Informar datas"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Período inválido"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Alça de arrastar"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Fechar página inferior"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Dispensar página inferior"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Abrir página inferior"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Dica"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Mostrar dica"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Selecione AM ou PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Selecione a hora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Selecione os minutos"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$dh"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d horas"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minutos"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuto"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"por minutos"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"por hora"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ro/strings.xml b/compose/material3/material3/src/androidMain/res/values-ro/strings.xml
deleted file mode 100644
index 4b56db4..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ro/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Respinge"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Caută"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Sugestii mai jos"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Selectează data"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Data selectată"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Comută la selectarea anului"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Glisează pentru a selecta un an sau atinge pentru a reveni la selectarea zilei"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Treci la luna următoare"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Treci la luna anterioară"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navighează la anul %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Opțiunea selectată: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Fără"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Azi"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Selectorul de an este vizibil"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Selectează data"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Data introdusă"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Dată"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Data introdusă: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Fără"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data nu este permisă: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Data nu corespunde modelului așteptat: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Data este în afara intervalului de ani %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Comută la modul de introducere în calendar"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Comută la modul de introducere a textului"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Derulează pentru a afișa ani ulteriori"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Derulează pentru a afișa ani anteriori"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Selectează datele"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data de începere"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data de încheiere"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Derulează pentru a afișa luna următoare"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Derulează pentru a afișa luna anterioară"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"În interval"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Introdu datele"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Intervalul de date introdus nu este valid"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Ghidaj de tragere"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Restrânge foaia din partea de jos"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Închide foaia din partea de jos"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Extinde foaia din partea de jos"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Balon explicativ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Afișează balonul explicativ"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"p.m."</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"a.m."</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Selectează a.m. sau p.m."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Selectează ora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Selectează minutele"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Ora %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ore"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minute"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minut"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Oră"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"timp de câteva minute"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"timp de o oră"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ru/strings.xml b/compose/material3/material3/src/androidMain/res/values-ru/strings.xml
deleted file mode 100644
index f513d6e..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ru/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Диалоговое окно"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Закрыть"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Строка поиска"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Подсказки показаны ниже"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Выбор даты"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Выбранная дата"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Перейти к выбору года"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Проведите по экрану, чтобы выбрать год, или нажмите, чтобы вернуться к выбору дня."</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Перейти к следующему месяцу"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Перейти к предыдущему месяцу"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Переход к %1$s году"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Текущий выбор: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Не выбрано"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Сегодня"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Отображаемый выбор года"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Выберите дату"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Введенная дата"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Дата"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Введенная дата: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Нет"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Недопустимая дата: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Дата не соответствует допустимому шаблону: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Дата не входит в допустимый диапазон: %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Перейти в режим выбора даты"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Перейти в режим ввода текста"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Прокрутите до более поздних лет"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Прокрутите до более ранних лет"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Выберите даты"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Дата начала"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Дата окончания"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Прокрутите до следующего месяца"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Прокрутите до предыдущего месяца"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"День в диапазоне дат"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Введите даты"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Указан недопустимый диапазон дат."</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Маркер перемещения"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Свернуть нижний экран"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Закрыть нижний экран"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Развернуть нижний экран"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Подсказка"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Показать подсказку"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Выбрать AM (до полудня) или PM (после полудня)"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Выбрать час"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Выбрать минуты"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d ч."</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ч."</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d мин."</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Минуты"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Часы"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"минуты"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"часы"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-si/strings.xml b/compose/material3/material3/src/androidMain/res/values-si/strings.xml
deleted file mode 100644
index 3a2f668..0000000
--- a/compose/material3/material3/src/androidMain/res/values-si/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"සංවාදය"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"අස් කරන්න"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"සෙවීම"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"පහත යෝජනා"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"දිනය තෝරන්න"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"තේරූ දිනය"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"වසරක් තේරීමට මාරු වන්න"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"වසරක් තේරීමට ස්වයිප් කරන්න, නැතහොත් දිනක් තේරීමට ආපසු මාරු වීමට තට්ටු කරන්න"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"ලබන මාසයට වෙනස් කරන්න"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"කලින් මාසයට වෙනස් කරන්න"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s වසර වෙත සංචලන කරන්න"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"වත්මන් තේරීම: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"කිසිවක් නැත"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"අද"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"වසර තෝරකය දෘශ්‍යමානයි"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"දිනය තෝරන්න"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"ඇතුළු කළ දිනය"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"දිනය"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"එක් කරන්න: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"කිසිවක් නැත"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"දිනය ඉඩ නොදෙයි: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"දිනය අපේක්ෂිත රටාවට නොගැළපෙයි: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"දිනය අපේක්ෂිත වසර පරාසයෙන් පිටත වේ %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"දින දර්ශන ආදාන ප්‍රකාරයට මාරු වන්න"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"පෙළ ආදාන ප්‍රකාරයට මාරු වන්න"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"පසු වසර පෙන්වීමට අනුචලන කරන්න"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"පෙර වසර පෙන්වීමට අනුචලන කරන්න"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"දින තෝරන්න"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"ආරම්භක දිනය"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"අවසාන දිනය"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"ඊළඟ මාසය පෙන්වීමට අනුචලන කරන්න"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"පෙර මාසය පෙන්වීමට අනුචලන කරන්න"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"පරාසය තුළ"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"දින ඇතුළු කරන්න"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"අවලංගු දින පරාස ආදානය"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"ඇදීම් හැඬලය"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"පහළම පත්‍රය හකුළන්න"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"පහළම පත්‍රය අස් කරන්න"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"පහළම පත්‍රය දිග හරින්න"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"මෙවලම් ඉඟිය"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"මෙවලම් ඉඟිය පෙන්වන්න"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"ප.ව."</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"පෙ.ව."</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"පෙ.ව. හෝ ප.ව. තෝරන්න"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"පැය තෝරන්න"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"මිනිත්තු තෝරන්න"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$dට"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"පැය %1$d"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"මිනිත්තු %1$d"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"විනාඩි"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"පැය"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"මිනිත්තු ගණනක් සඳහා"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"පැයක් සඳහා"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-sk/strings.xml b/compose/material3/material3/src/androidMain/res/values-sk/strings.xml
deleted file mode 100644
index bfbc5eb..0000000
--- a/compose/material3/material3/src/androidMain/res/values-sk/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialógové okno"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Zavrieť"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Vyhľadávanie"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Návrhy sú nižšie"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Vybrať dátum"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Vybraný dátum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Prepnúť na výber roka"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Potiahnutím vyberte rok alebo klepnutím prepnite späť na výber dňa"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Zmeniť na nasledujúci mesiac"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Zmeniť na predchádzajúci mesiac"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Prechod na rok %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Aktuálny výber: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Žiadne"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Dnes"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Výber roka je viditeľný"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Vybrať dátum"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Zadaný dátum"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Dátum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Zadaný dátum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Žiadny"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Nepovolený dátum: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Dátum nezodpovedá očakávanému vzoru: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Dátum sa nenachádza v očakávanom rozsahu rokov: %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Prepnúť na kalendárový režim vstupu"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Prepnúť na textový režim vstupu"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Posunutím si zobrazte neskoršie roky"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Posunutím si zobrazte skoršie roky"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Vyberte dátumy"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Dátum začatia"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Dátum ukončenia"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Posunutím si zobrazte nasledujúci mesiac"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Posunutím si zobrazte predchádzajúci mesiac"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"V rozsahu"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Zadajte dátumy"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Neplatný vstup obdobia"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Presúvadlo"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Zbaliť dolný hárok"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Zavrieť dolný hárok"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Rozbaliť dolný hárok"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Popis"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Zobraziť opis"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Vyberte AM alebo PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Vybrať hodinu"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Vybrať minúty"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d h"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d h"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d min"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minúty"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Hodina"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"minúty"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"hodina"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-sl/strings.xml b/compose/material3/material3/src/androidMain/res/values-sl/strings.xml
deleted file mode 100644
index ec1c583..0000000
--- a/compose/material3/material3/src/androidMain/res/values-sl/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Pogovorno okno"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Opusti"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Iskanje"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Predlogi so spodaj"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Izbira datuma"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Izbrani datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Preklopi na izbiro leta"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Povlecite, da izberete leto, ali se dotaknite, da preklopite nazaj na izbiranje dneva."</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Spremeni na naslednji mesec"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Spremeni na prejšnji mesec"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Pomik na leto %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Trenutna izbira: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Brez"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Danes"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Izbirnik leta je viden"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Izbira datuma"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Vneseni datum"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Vneseni datum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Brez"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Oblika datuma ni dovoljena: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datum se ne ujema s pričakovanim vzorcem: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datum je zunaj pričakovanega razpona let %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Preklop na način vnosa v koledar"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Preklop na način vnosa besedila"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Pomaknite se za prikaz poznejših let."</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Pomaknite se za prikaz zgodnejših let."</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Izberite datume"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Začetni datum"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Končni datum"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Pomaknite se za prikaz naslednjega meseca."</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Pomaknite se za prikaz prejšnjega meseca."</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Znotraj obdobja"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Vnesite datume"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Neveljaven vnos obdobja."</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Ročica za vlečenje"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Strnitev razdelka na dnu zaslona"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Opustitev razdelka na dnu zaslona"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Razširitev razdelka na dnu zaslona"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Opis orodja"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Pokaži opis orodja"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"pop."</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"dop."</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Izberite dopoldanski ali popoldanski čas."</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Izbira ure"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Izbira minut"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d min"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minute"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Ura"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"za minute"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"za uro"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-sq/strings.xml b/compose/material3/material3/src/androidMain/res/values-sq/strings.xml
deleted file mode 100644
index 61f61fe..0000000
--- a/compose/material3/material3/src/androidMain/res/values-sq/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogu"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Hiq"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Kërko"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Sugjerimet më poshtë"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Zgjidh datën"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Data e zgjedhur"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Kalo te zgjedhja e një viti"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Rrëshqit shpejt për të zgjedhur një vit ose trokit për të kaluar sërish te zgjedhja e ditës"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Ndrysho te muaji i ardhshëm"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Ndrysho te muaji i kaluar"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navigo në vitin %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Zgjedhja aktuale: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Asnjë"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Sot"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Zgjedhësi i vitit i dukshëm"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Zgjidh datën"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Data e futur"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Data"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Data e futur: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Asnjë"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Data nuk lejohet: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Data nuk përputhet me motivin e pritur: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Data jashtë diapazonit të pritur të vitit %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Kalo te modaliteti i \"Hyrjes së kalendarit\""</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Kalo te modaliteti i \"Hyrjes së tekstit\""</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Lëviz për të shfaqur vitet e ardhshme"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Lëviz për të shfaqur vitet e mëparshme"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Zgjidh datat"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Data e fillimit"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Data e mbarimit"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Lëviz për të shfaqur muajin e ardhshëm"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Lëviz për të shfaqur muajin e mëparshëm"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Brenda rrezes"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Fut datat"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Hyrje e pavlefshme e diapazonit të datave"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Doreza e zvarritjes"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Palos fletën e poshtme"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Hiq fletën e poshtme"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Zgjero fletën e poshtme"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Këshilla për veglën"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Shfaq këshillat për veglën"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"MD"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"PD"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Zgjidh paradite ose pasdite"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Zgjidh orën"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Përzgjidh minutat"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"ora %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d orë"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minuta"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuta"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Ora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"për minuta"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"për orë"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-sr/strings.xml b/compose/material3/material3/src/androidMain/res/values-sr/strings.xml
deleted file mode 100644
index 76529ef..0000000
--- a/compose/material3/material3/src/androidMain/res/values-sr/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Дијалог"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Одбаците"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Претрага"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Предлози су у наставку"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Изаберите датум"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Изабрани датум"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Пређите на избор године"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Превуците да бисте изабрали годину или додирните да бисте се вратили на избор дана"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Пређите на следећи месец"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Пређите на претходни месец"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Идите на годину: %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Актуелни избор: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Ништа"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Данас"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Видљив бирач година"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Изаберите датум"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Унети датум"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Датум"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Унети датум: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Ништа"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Датум није дозвољен: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Датум не одговара очекиваном шаблону: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Датум је изван очекиваног опсега година %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Пређите на режим уноса у Календару"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Пређите на режим уноса текста"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Померајте да би се приказале касније године"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Померајте да би се приказале раније године"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Изаберите датуме"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Датум почетка"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Датум завршетка"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Померајте да би се приказао следећи месец"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Померајте да би се приказао претходни месец"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"У домету"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Унесите датуме"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Унос опсега датума је неважећи"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Идентификатор за превлачење"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Скупи доњу табелу"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Одбаци доњу табелу"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Прошири доњу табелу"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Објашњење"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Прикажи објашњење"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"по"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"пр"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Изаберите пре подне или по подне"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Изаберите сат"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Изаберите минуте"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d ч"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ч"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d мин"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Минут"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Сат"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"за минуте"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"за сате"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-sv/strings.xml b/compose/material3/material3/src/androidMain/res/values-sv/strings.xml
deleted file mode 100644
index b265fa2..0000000
--- a/compose/material3/material3/src/androidMain/res/values-sv/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialogruta"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Stäng"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Sök"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Se förslag nedan"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Välj datum"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Valt datum"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Byt till att välja år"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Svep för att välja ett år eller tryck för att återgå till att välja en dag"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Ändra till nästa månad"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Ändra till föregående månad"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Navigera till %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Aktuellt val: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Inget"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"I dag"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Årväljaren är synlig"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Välj datum"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Angivet datum"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Datum"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Angivet datum: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Inget"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Datumet är inte tillåtet: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Datumet matchar inte det förväntade formatet: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Datumet faller utanför det förväntade årsintervallet %1$s–%2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Byt till kalender som inmatningsläge"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Byt till text som inmatningsläge"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Scrolla för att visa senare år"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Scrolla för att visa föregående år"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Välj datum"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Startdatum"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Slutdatum"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Scrolla för att visa nästa månad"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Scrolla för att visa föregående månad"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Inom intervall"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Ange datum"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Ett ogiltigt datumintervall har angetts"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Handtag"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Komprimera arket på nedre delen av skärmen"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Stäng arket på nedre delen av skärmen"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Utöka arket på nedre delen av skärmen"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Beskrivning"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Visa beskrivning"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"EM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"FM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Välj mellan FM och EM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Ange timme"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Välj minuter"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Klockan %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d timmar"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d minuter"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minut"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Timme"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"för minuter"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"för timmar"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-sw/strings.xml b/compose/material3/material3/src/androidMain/res/values-sw/strings.xml
deleted file mode 100644
index 4a415f9..0000000
--- a/compose/material3/material3/src/androidMain/res/values-sw/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Mazungumzo"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Ondoa"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Tafuta"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Mapendekezo yaliyo hapa chini"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Chagua tarehe"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Tarehe uliyochagua"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Nenda kwenye sehemu ya kuchagua mwaka"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Telezesha ili uchague mwaka au gusa ili urejee kwenye kuchagua siku"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Nenda kwenye mwezi unaofuata"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Rudi kwenye mwezi uliotangulia"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Nenda kwenye mwaka %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Iliyochaguliwa sasa: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Hamna"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Leo"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Kiteua mwaka kinaonekana"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Chagua tarehe"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Tarehe iliyowekwa"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Tarehe"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Tarehe iliyowekwa: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Hamna"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Tarehe isiyoruhusiwa: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Tarehe hailingani na mchoro uliotarajiwa: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Tarehe nje ya kipindi cha mwaka kilichotarajiwa %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Badilisha mipangilio ya kuingiza data ya kalenda"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Badilisha kwenda mipangilio ya kuingiza data ya maandishi"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Sogeza ili kuonyesha miaka ya baadaye"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Sogeza ili kuonyesha miaka iliyopita"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Chagua tarehe"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Tarehe ya kuanza"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Tarehe ya mwisho"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Sogeza ili kuonyesha mwezi ujao"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Sogeza ili kuonyesha mwezi uliopita"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Ipo karibu"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Weka tarehe"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Kipindi kilichowekwa si sahihi"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Aikoni ya buruta"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Kunja safu ya chini"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Ondoa safu ya chini"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Panua safu ya chini"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Kidirisha cha vidokezo"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Onyesha kidirisha cha vidokezo"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"Mchana"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"Asubuhi"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Chagua Asubuhi au Mchana"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Chagua saa"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Chagua dakika"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Saa %1$d kamili"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"Saa %1$d"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"Dakika %1$d"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Dakika"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Saa"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"kwa dakika"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"kwa saa moja"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ta/strings.xml b/compose/material3/material3/src/androidMain/res/values-ta/strings.xml
deleted file mode 100644
index ab4f28f..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ta/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"உரையாடல்"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"மூடும்"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"தேடலாம்"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"பரிந்துரைகள் கீழே கிடைக்கும்"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"தேதியைத் தேர்ந்தெடுக்கவும்"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"தேர்ந்தெடுக்கப்பட்ட தேதி"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ஆண்டைத் தேர்ந்தெடுக்கும் விருப்பத்திற்கு மாற்று"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ஆண்டைத் தேர்வுசெய்ய ஸ்வைப் செய்யுங்கள் அல்லது தேதியைத் தேர்வுசெய்யும் பக்கத்திற்கு மீண்டும் செல்ல தட்டுங்கள்"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"அடுத்த மாதத்திற்கு மாற்று"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"முந்தைய மாதத்திற்கு மாற்று"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$sக்குச் செல்லும்"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"தற்போது %1$s தேர்வுசெய்யப்பட்டுள்ளது"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ஏதுமில்லை"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"இன்று"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"ஆண்டைத் தேர்வுசெய்யும் பக்கம் காட்டப்படுகிறது"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"தேதியைத் தேர்வுசெய்யுங்கள்"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"உள்ளிட்ட தேதி"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"தேதி"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"உள்ளிட்ட தேதி: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ஏதுமில்லை"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"இந்தத் தேதி அனுமதிக்கப்படவில்லை: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"எதிர்பார்க்கப்படும் பேட்டர்னுடன் தேதி பொருந்தவில்லை: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"இந்தத் தேதி %1$s - %2$s ஆண்டு வரம்பிற்குள் இல்லை"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"கேலெண்டர் உள்ளீட்டு முறைக்கு மாற்று"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"எழுத்து உள்ளீட்டு முறைக்கு மாற்று"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"பிந்தைய ஆண்டுகளைப் பார்க்க ஸ்க்ரோல் செய்யுங்கள்"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"முந்தைய ஆண்டுகளைப் பார்க்க ஸ்க்ரோல் செய்யுங்கள்"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"தேதிகளைத் தேர்ந்தெடுங்கள்"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"தொடக்கத் தேதி"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"முடிவுத் தேதி"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"அடுத்த மாதத்தைப் பார்க்க ஸ்க்ரோல் செய்யுங்கள்"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"முந்தைய மாதத்தைப் பார்க்க ஸ்க்ரோல் செய்யுங்கள்"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"வரம்பிற்குள் உள்ளது"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"தேதிகளை உள்ளிடுங்கள்"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"தவறான தேதி வரம்பை உள்ளிட்டுள்ளீர்கள்"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"இழுப்பதற்கான ஹேண்டில்"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"கீழ்ப்புறச் சீட்டைச் சுருக்கும்"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"கீழ்ப்புறச் சீட்டை நிராகரிக்கும்"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"கீழ்ப்புறச் சீட்டை விரிவாக்கும்"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"உதவிக்குறிப்பு"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"உதவிக்குறிப்பைக் காட்டு"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM/PM என்பதைத் தேர்ந்தெடுக்கலாம்"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"மணிநேரத்தைத் தேர்ந்தெடுக்கலாம்"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"நிமிடங்களைத் தேர்ந்தெடுக்கலாம்"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d மணி"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d மணிநேரம்"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d நிமிடங்கள்"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"நிமிடம்"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"மணிநேரம்"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"நிமிடங்களுக்கு"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"மணிநேரத்திற்கு"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-te/strings.xml b/compose/material3/material3/src/androidMain/res/values-te/strings.xml
deleted file mode 100644
index a80032e..0000000
--- a/compose/material3/material3/src/androidMain/res/values-te/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"డైలాగ్"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"విస్మరించండి"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"సెర్చ్ చేయండి"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"సూచనలు దిగువున ఉన్నాయి"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"తేదీని ఎంచుకోండి"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"ఎంచుకున్న తేదీ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ఒక సంవత్సరాన్ని ఎంచుకునే ఆప్షన్‌కు మారండి"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"సంవత్సరాన్ని ఎంచుకోవడానికి స్వైప్ చేయండి, లేదా రోజును ఎంచుకునేందుకు తిరిగి మారడానికి ట్యాప్ చేయండి"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"వచ్చే నెలకు మార్చండి"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"మునుపటి నెలకు మార్చండి"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s సంవత్సరానికి వెళ్లండి"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"ప్రస్తుత ఎంపిక: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ఏదీ లేదు"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"ఈ రోజు"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"సంవత్సరం పికర్ కనిపిస్తుంది"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"తేదీ ఎంచుకోండి"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"ఎంటర్ చేసిన తేదీ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"తేదీ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"ఎంటర్ చేసిన తేదీ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ఏదీ లేదు"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"చెల్లని తేదీ: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"తేదీ ఉండాల్సిన ఫార్మాట్‌తో మ్యాచ్ కాలేదు: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"ఉండాల్సిన సంవత్సరాల పరిధి %1$s - %2$s‌లో తేదీ లేదు"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"క్యాలెండర్ ఇన్‌పుట్ మోడ్‌కు స్విచ్ అవ్వండి"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"టెక్స్ట్ ఇన్‌పుట్ మోడ్‌కు స్విచ్ అవ్వండి"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"తదుపరి సంవత్సరాల డేటాను చూడటానికి స్క్రోల్ చేయండి"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"మునుపటి సంవత్సరాల డేటాను చూడటానికి స్క్రోల్ చేయండి"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"తేదీలను ఎంచుకోండి"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"ప్రారంభ తేదీ"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"ముగింపు తేదీ"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"వచ్చే నెల డేటాను చూడటానికి స్క్రోల్ చేయండి"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"మునుపటి నెల డేటాను చూడటానికి స్క్రోల్ చేయండి"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"పరిధిలో ఉంది"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"తేదీలను ఎంటర్ చేయండి"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"తేదీల పరిధి ఇన్‌పుట్ చెల్లదు"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"లాగే హ్యాండిల్"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"దిగువున ఉన్న షీట్‌ను కుదిస్తుంది"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"దిగువున ఉన్న షీట్‌ను విస్మరిస్తుంది"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"దిగువున ఉన్న షీట్‌ను విస్తరిస్తుంది"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"టూల్‌టిప్"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"టూల్‌టిప్‌ను చూపించు"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"AM లేదా PMను ఎంచుకోండి"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"గంటను ఎంచుకోండి"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"నిమిషాలను ఎంచుకోండి"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d గంటలు"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d గంటలు"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d నిమిషాలు"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"నిమిషం"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"గంట"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"నిమిషాలకు"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ఒక గంట పాటు"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-th/strings.xml b/compose/material3/material3/src/androidMain/res/values-th/strings.xml
deleted file mode 100644
index 26177c8..0000000
--- a/compose/material3/material3/src/androidMain/res/values-th/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"กล่องโต้ตอบ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"ปิด"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"ค้นหา"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"มีคำแนะนำที่ด้านล่าง"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"เลือกวันที่"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"วันที่ที่เลือก"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"เปลี่ยนไปที่การเลือกปี"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ปัดเพื่อเลือกปีหรือแตะเพื่อเปลี่ยนกลับไปยังการเลือกวัน"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"เปลี่ยนไปที่เดือนถัดไป"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"เปลี่ยนไปที่เดือนก่อนหน้า"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"ไปยังปี %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"การเลือกปัจจุบัน: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"ไม่มี"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"วันนี้"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"แสดงตัวเลือกปี"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"เลือกวันที่"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"วันที่ป้อน"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"วันที่"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"วันที่ป้อน: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"ไม่มี"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"ไม่อนุญาตให้ใช้วันที่นี้: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"วันที่ไม่ตรงกับรูปแบบที่คาดไว้: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"วันที่อยู่นอกเหนือจากช่วงปีที่คาดไว้ %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"สลับไปใช้โหมดป้อนข้อมูลปฏิทิน"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"สลับไปใช้โหมดการป้อนข้อความ"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"เลื่อนเพื่อแสดงปีหลังจากนี้"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"เลื่อนเพื่อแสดงปีก่อนหน้านี้"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"เลือกวันที่"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"วันที่เริ่มต้น"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"วันที่สิ้นสุด"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"เลื่อนเพื่อแสดงเดือนถัดไป"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"เลื่อนเพื่อแสดงเดือนก่อนหน้า"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"อยู่ในช่วงวันที่ที่เลือก"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"ป้อนวันที่"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"การป้อนข้อมูลช่วงวันที่ไม่ถูกต้อง"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"แฮนเดิลการลาก"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"ยุบ Bottom Sheet"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"ปิด Bottom Sheet"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"ขยาย Bottom Sheet"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"เคล็ดลับเครื่องมือ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"แสดงเคล็ดลับเครื่องมือ"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"เลือก AM หรือ PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"เลือกชั่วโมง"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"เลือกนาที"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d นาฬิกา"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d ชั่วโมง"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d นาที"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"นาที"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"ชั่วโมง"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"สำหรับนาที"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"สำหรับชั่วโมง"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-tl/strings.xml b/compose/material3/material3/src/androidMain/res/values-tl/strings.xml
deleted file mode 100644
index 3fa5a78..0000000
--- a/compose/material3/material3/src/androidMain/res/values-tl/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Dialog"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"I-dismiss"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Maghanap"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Mga suhestyon sa ibaba"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Pumili ng petsa"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Piniling petsa"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Lumipat sa pagpili ng taon"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Mag-swipe para pumili ng taon, o mag-tap para bumalik sa pagpili ng araw"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Lumipat sa susunod na buwan"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Lumipat sa nakaraang buwan"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Mag-navigate papunta sa taong %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Kasalukuyang napili: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Wala"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Ngayon"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Nakikita ang picker ng taon"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Pumili ng petsa"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Inilagay na petsa"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Petsa"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Inilagay na petsa: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Wala"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Hindi pinapayagan ang petsa: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Hindi tumutugma ang petsa sa inaasahang pattern: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Wala ang petsa sa inaasahang hanay ng taon na %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Lumipat sa pamamaraan ng pag-input ng kalendaryo"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Lumipat sa pamamaraan ng pag-input ng text"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Mag-scroll para makita ang mga mas kamakailang taon"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Mag-scroll para ipakita ang mga mas naunang taon"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Pumili ng mga petsa"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Petsa ng pagsisimula"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Petsa ng pagtatapos"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Mag-scroll para ipakita ang susunod na buwan"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Mag-scroll para ipakita ang nakaraang buwan"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"May signal"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Maglagay ng mga petsa"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Invalid ang input na hanay ng petsa"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Handle sa pag-drag"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"I-collapse ang bottom sheet"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"I-dismiss ang bottom sheet"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Palawakin ang bottom sheet"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Tooltip"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Ipakita ang tooltip"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Piliin ang AM o PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Pumili ng oras"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Pumili ng mga minuto"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d o\'clock"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d oras"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d (na) minuto"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Minuto"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Oras"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"nang ilang minuto"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"nang ilang oras"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-tr/strings.xml b/compose/material3/material3/src/androidMain/res/values-tr/strings.xml
deleted file mode 100644
index 2f1342f..0000000
--- a/compose/material3/material3/src/androidMain/res/values-tr/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"İletişim kutusu"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Kapat"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Arama"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Önerileri aşağıda bulabilirsiniz"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Tarih seç"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Seçilen tarih"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Yıl seçimine geç"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Kaydırarak bir yıl seçin veya gün seçme bölümüne geri dönmek için dokunun"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Sonraki aya değiştir"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Önceki aya değiştir"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s yılına gidin"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Geçerli seçim: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Yok"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Bugün"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Yıl seçici görünür durumda"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Tarih seç"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Girilen tarih"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Tarih"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Girilen tarih: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Yok"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Tarihe izin verilmiyor: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Tarih, istenen biçimle eşleşmiyor: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Tarih, istenen %1$s - %2$s yıl aralığının dışında"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Takvim giriş moduna geç"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Metin giriş moduna geç"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Sonraki yılları göstermek için kaydırın"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Önceki yılları göstermek için kaydırın"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Tarihleri seçin"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Başlangıç tarihi"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Bitiş tarihi"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Sonraki ayı göstermek için kaydırın"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Önceki ayı göstermek için kaydırın"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Aralıkta"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Tarihleri girin"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Geçersiz tarih aralığı girişi"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Sürükleme tutamacı"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Alt sayfayı daralt"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Alt sayfayı kapat"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Alt sayfayı genişlet"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"İpucu"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Araç ipucunu göster"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"ÖS"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"ÖÖ veya ÖS\'yi seçin"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Saat seçin"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Dakikayı seçin"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"Saat %1$d"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d saat"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d dakika"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Dakika"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Saat"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"dakika"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"saat"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-uk/strings.xml b/compose/material3/material3/src/androidMain/res/values-uk/strings.xml
deleted file mode 100644
index 91aa33f..0000000
--- a/compose/material3/material3/src/androidMain/res/values-uk/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Вікно"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Закрити"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Пошук"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Підказки внизу"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Вибрати дату"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Вибрана дата"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Перейти до вибору року"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Проведіть пальцем по екрану, щоб вибрати рік, або торкніться, щоб повернутися до вибору дня"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Перейти до наступного місяця"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Перейти до попереднього місяця"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Перейти до %1$s року"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Поточний вибір: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Немає"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Сьогодні"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Показувати засіб вибору року"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Виберіть дату"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Введена дата"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Дата"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Введена дата: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Немає"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Недопустима дата: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Дата не відповідає очікуваному шаблону: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Дата за межами очікуваного діапазону років %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Перейти в режим введення в календарі"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Перейти в режим введення тексту"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Прокрутіть, щоб відобразити пізніші роки"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Прокрутіть, щоб відобразити попередні роки"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Виберіть дати"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Дата початку"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Дата завершення"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Прокрутіть, щоб відобразити наступний місяць"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Прокрутіть, щоб відобразити попередній місяць"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"У діапазоні"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Введіть дати"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Указано недійсний діапазон дат"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Маркер переміщення"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Згорнути нижній екран"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Закрити нижній екран"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Розгорнути нижній екран"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Спливаюча підказка"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Показати підказку"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"ПП"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"ДП"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Виберіть ДП чи ПП"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Вибрати годину"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Вибрати хвилини"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d год"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d год"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d хв"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Хвилина"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Година"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"для хвилин"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"для годин"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-ur/strings.xml b/compose/material3/material3/src/androidMain/res/values-ur/strings.xml
deleted file mode 100644
index af45027d..0000000
--- a/compose/material3/material3/src/androidMain/res/values-ur/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"ڈائلاگ"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"برخاست کریں"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"تلاش کریں"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"تلاش کی تجاویز نیچے دستیاب ہیں"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"تاریخ منتخب کریں"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"منتخب کردہ تاریخ"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"ایک سال کا انتخاب کرنے کے لیے سوئچ کریں"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"ایک سال منتخب کرنے کے لیے سوائپ کریں یا ایک دن منتخب کرنے کی خاطر دوبارہ سوئچ کرنے کے لیے تھپتھپائیں"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"اگلے ماہ میں تبدیل کریں"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"گزشتہ ماہ میں منتقل کریں"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"‏سال ‎%1$s پر نیویگیٹ کریں"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"‏موجودہ انتخاب: ‎%1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"کوئی نہیں"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"آج"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"سال کا منتخب کنندہ مرئی ہے"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"تاریخ منتخب کریں"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"درج کردہ تاریخ"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"تاریخ"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"‏درج کردہ تاریخ: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"کوئی نہیں"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"‏تاریخ کی اجازت نہیں ہے: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"‏تاریخ متوقع پیٹرن سے مماثل نہیں ہے: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"‏متوقع سال کی حد %1$s‏ - %2$s سے باہر کی تاریخ"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"کیلنڈر اندراج کے طرز پر سوئچ کریں"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"ٹیکسٹ اندراج کے طرز پر سوئچ کریں"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"بعد کے سالوں کا ڈیٹا دکھانے کے لیے اسکرول کریں"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"پچھلے سالوں کا ڈیٹا دکھانے کے لیے اسکرول کریں"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"تواریخ منتخب کریں"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"تاریخ آغاز"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"تاریخ اختتام"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"اگلے مہینے کا ڈیٹا دکھانے کے لیے اسکرول کریں"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"پچھلے مہینے کا ڈیٹا دکھانے کے لیے اسکرول کریں"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"رینج میں ہے"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"تواریخ درج کریں"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"تاریخ کی حد کا غلط ان پٹ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"گھسیٹنے کا ہینڈل"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"نیچے کی شیٹ کو سکیڑیں"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"نیچے کی شیٹ کو برخاست کریں"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"نیچے کی شیٹ کو پھیلائیں"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"ٹول ٹپ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"ٹول ٹپ دکھائیں"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"بعد از دوپہر"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"قبل‌از دوپہر"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"قبل از دوپہر یا بعد از دوپہر منتخب کریں"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"گھنٹہ منتخب کریں"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"منٹس منتخب کریں"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"‏‎%1$d بجے"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"‏‎%1$d گھنٹے"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"‏%1$d منٹس"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"منٹ"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"گھنٹہ"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"منٹ کے لیے"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"گھنٹے کے لیے"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-uz/strings.xml b/compose/material3/material3/src/androidMain/res/values-uz/strings.xml
deleted file mode 100644
index b7b6517..0000000
--- a/compose/material3/material3/src/androidMain/res/values-uz/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Muloqot oynasi"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Yopish"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Qidiruv"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Takliflar quyida"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Sanani tanlang"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Tanlangan sana"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Tanlangan yilga oʻtish"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Yilni tanlash uchun suring yoki kunni tanlashga qaytish uchun tegining"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Keyingi oyga oʻzgartirish"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Avvalgi oyga oʻzgartirish"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"%1$s-yilga oʻtish"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Joriy tanlov: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Hech biri"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Bugun"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Yil tanlagich ochiq"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Sanani tanlang"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Kiritilgan sana"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Sana"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Kiritilgan sana: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Yoʻq"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Sana xato: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Sana mavjud namunaga mos kelmaydi: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Sana kutilgan yil oraligʻida emas: %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Taqvim kiritish rejimiga oʻtish"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Matn kiritish rejimiga oʻtish"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Keyingi yillarga varaqlang"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Avvalgi yillarga varaqlang"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Sanalarni tanlang"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Boshlanish sanasi"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Tugash sanasi"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Keyingi oyna varaqlang"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Avvalgi oyga varaqlang"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Xizmat doirasida"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Sanalarni kiriting"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Kiritilgan muddat yaroqsiz"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Surish dastagi"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Quyi ekranni yigʻish"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Quyi ekranni yopish"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Quyi ekranni yoyish"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Maslahat oynasi"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Maslahat oynasini koʻrsatish"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"TK"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"TO"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Tushdan oldin yoki keyinligini tanlang"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Soatni tanlang"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Daqiqani tanlang"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d soat"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d soat"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d daqiqa"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Daqiqa"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Soat"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"bir daqiqa"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"bir soat"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-vi/strings.xml b/compose/material3/material3/src/androidMain/res/values-vi/strings.xml
deleted file mode 100644
index 659de9d..0000000
--- a/compose/material3/material3/src/androidMain/res/values-vi/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Hộp thoại"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Đóng"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Tìm kiếm"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Các đề xuất ở bên dưới"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Chọn ngày"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Ngày đã chọn"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Chuyển sang chọn năm"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Vuốt để chọn một năm hoặc nhấn để chuyển lại về chọn một ngày"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Chuyển sang tháng tiếp theo"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Chuyển về tháng trước"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Chuyển đến năm %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Lựa chọn hiện tại: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Không có"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Hôm nay"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Bộ chọn năm hiển thị"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Chọn ngày"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Ngày đã nhập"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Ngày"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Ngày đã nhập: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Không có"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Ngày không được phép: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Ngày không khớp với định dạng dự kiến: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Ngày không thuộc phạm vi năm dự kiến %1$s – %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Chuyển sang chế độ nhập lịch"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Chuyển sang chế độ nhập văn bản"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Cuộn để hiện những năm sau"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Cuộn để hiện những năm trước"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Chọn ngày"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Ngày bắt đầu"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Ngày kết thúc"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Cuộn để hiện tháng sau"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Cuộn để hiện tháng trước"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Trong khoảng"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Nhập ngày"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Phạm vi ngày đã nhập không hợp lệ"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Nút kéo"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Thu gọn bảng dưới cùng"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Bỏ qua bảng dưới cùng"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Mở rộng bảng dưới cùng"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Chú giải công cụ"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Hiển thị chú giải công cụ"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"CH"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"SA"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Chọn SA hoặc CH"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Chọn giờ"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Chọn phút"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d giờ"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d giờ"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d phút"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Phút"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Giờ"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"về số phút"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"về số giờ"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-zh-rCN/strings.xml b/compose/material3/material3/src/androidMain/res/values-zh-rCN/strings.xml
deleted file mode 100644
index 5cf5d1a..0000000
--- a/compose/material3/material3/src/androidMain/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"对话框"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"关闭"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"搜索"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"以下是搜索建议"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"选择日期"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"选定的日期"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"切换以选择年份"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"滑动可选择年份,点按可切换回选择日期"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"转到下个月"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"转到上个月"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"切换到年份:%1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"当前的选择:%1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"无"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"今天"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"年份选择器可见"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"选择日期"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"输入日期"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"日期"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"输入日期:%1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"无"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"不允许的日期:%1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"日期不符合预期格式:%1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"日期超出预期年份范围 %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"切换到日历输入模式"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"切换到文本字段输入模式"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"滚动显示之后的年份"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"滚动显示之前的年份"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"选择日期"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"开始日期"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"结束日期"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"滚动显示下个月"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"滚动显示上个月"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"在范围内"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"输入日期"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"输入的日期范围无效"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"拖动手柄"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"收起底部动作条"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"关闭底部动作条"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"展开底部动作条"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"提示"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"显示提示"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"下午"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"上午"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"选择上午或下午"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"选择小时"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"选择分钟"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d 点"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d 小时"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d 分钟"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"分"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"时"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"表示分钟"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"表示小时"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-zh-rHK/strings.xml b/compose/material3/material3/src/androidMain/res/values-zh-rHK/strings.xml
deleted file mode 100644
index 4f00ddb..0000000
--- a/compose/material3/material3/src/androidMain/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"對話框"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"閂"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"搵"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"建議如下"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"選取日期"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"所選日期"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"切換為選取年份"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"滑動可選取年分,或可輕按返回選取日期"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"變更至下個月"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"變更至上個月"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"前往 %1$s 年"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"目前選項:%1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"無"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"今天"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"顯示年分挑選器"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"選取日期"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"已輸入的日期"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"日期"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"已輸入的日期:%1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"無"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"不允許的日期:%1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"日期格式不符:%1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"日期超出預期的年份範圍:%1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"切換至日曆輸入模式"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"切換至文字輸入模式"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"碌去顯示新啲嘅年份"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"碌去顯示舊啲嘅年份"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"選取日期"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"開始日期"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"結束日期"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"碌去顯示下一個月"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"碌去顯示上一個月"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"在指定日期範圍內"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"輸入日期"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"輸入的日期範圍無效"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"拖曳控點"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"收合底部功能表"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"關閉底部功能表"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"展開底部功能表"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"提示"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"顯示提示"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"下午"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"上午"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"選取上午或下午"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"選取小時"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"選取分鐘"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d 點"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d 點"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d 分鐘"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"分鐘"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"小時"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"分鐘"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"小時"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-zh-rTW/strings.xml b/compose/material3/material3/src/androidMain/res/values-zh-rTW/strings.xml
deleted file mode 100644
index d586f0e..0000000
--- a/compose/material3/material3/src/androidMain/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"對話方塊"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"關閉"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"搜尋"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"建議如下"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"選取日期"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"所選日期"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"改為選取年份"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"滑動可選取年分,也可輕觸返回選取日期"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"改成下個月"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"改成上個月"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"前往 %1$s 年"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"目前選項:%1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"無"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"今天"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"顯示年份挑選器"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"選取日期"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"輸入的日期"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"日期"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"輸入的日期:%1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"無"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"不允許的日期:%1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"日期格式不符:%1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"日期超出預期的年份範圍:%1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"切換至日曆輸入模式"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"切換至文字輸入模式"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"捲動即可顯示之後的年分"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"捲動即可顯示先前的年分"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"選取日期"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"開始日期"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"結束日期"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"捲動即可顯示下一個月"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"捲動即可顯示上一個月"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"在指定日期範圍內"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"輸入日期"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"輸入的日期範圍無效"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"拖曳控點"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"收合底部功能表"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"關閉底部功能表"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"展開底部功能表"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"工具提示"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"顯示工具提示"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"下午"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"上午"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"選取上午或下午"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"選取小時"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"選取分鐘"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d 點"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"%1$d 時"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"%1$d 分鐘"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"分鐘"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"小時"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"分鐘"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"小時"</string>
-</resources>
diff --git a/compose/material3/material3/src/androidMain/res/values-zu/strings.xml b/compose/material3/material3/src/androidMain/res/values-zu/strings.xml
deleted file mode 100644
index 0d31e2a..0000000
--- a/compose/material3/material3/src/androidMain/res/values-zu/strings.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  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.
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="m3c_dialog" msgid="4057925834421392736">"Ibhokisi"</string>
-    <string name="m3c_snackbar_dismiss" msgid="3962933905051144957">"Chitha"</string>
-    <string name="m3c_search_bar_search" msgid="6420018528474762666">"Sesha"</string>
-    <string name="m3c_suggestions_available" msgid="7189888345201419934">"Iziphakamiso ngezansi"</string>
-    <string name="m3c_date_picker_title" msgid="9208721003668059792">"Khetha usuku"</string>
-    <string name="m3c_date_picker_headline" msgid="2846784065735639969">"Khetha usuku"</string>
-    <string name="m3c_date_picker_switch_to_year_selection" msgid="3412370019845183965">"Shintshela ekukhetheni unyaka"</string>
-    <string name="m3c_date_picker_switch_to_day_selection" msgid="145089358343568971">"Swayipha ukuze ukhethe unyaka, noma thepha ukuze ubuyele ekukhetheni usuku"</string>
-    <string name="m3c_date_picker_switch_to_next_month" msgid="8313783187901412102">"Shintshela kunyanga elandelayo"</string>
-    <string name="m3c_date_picker_switch_to_previous_month" msgid="7596294429748914881">"Shintshela kunyanga edlule"</string>
-    <string name="m3c_date_picker_navigate_to_year_description" msgid="5152441868029453612">"Funa kunyaka %1$s"</string>
-    <string name="m3c_date_picker_headline_description" msgid="4627306862713137085">"Ukukhetha kwamanje: %1$s"</string>
-    <string name="m3c_date_picker_no_selection_description" msgid="5724377114289981899">"Lutho"</string>
-    <string name="m3c_date_picker_today_description" msgid="4775802721403526937">"Namuhla"</string>
-    <string name="m3c_date_picker_year_picker_pane_title" msgid="8140324713311804736">"Isikhethi sonyaka siyabonakala"</string>
-    <string name="m3c_date_input_title" msgid="3010396677286327048">"Khetha usuku"</string>
-    <string name="m3c_date_input_headline" msgid="3499643850558715142">"Usuku olufakiwe"</string>
-    <string name="m3c_date_input_label" msgid="5194825853981987218">"Usuku"</string>
-    <string name="m3c_date_input_headline_description" msgid="8562356184193964298">"Usuku olufakiwe: %1$s"</string>
-    <string name="m3c_date_input_no_input_description" msgid="5722931102250207748">"Lutho"</string>
-    <string name="m3c_date_input_invalid_not_allowed" msgid="6114792992433444995">"Usuku aluvunyelwe: %1$s"</string>
-    <string name="m3c_date_input_invalid_for_pattern" msgid="5281836720766682161">"Usuku alufani nephethini elindelekile: %1$s"</string>
-    <string name="m3c_date_input_invalid_year_range" msgid="8434112129235255568">"Usuku lungaphandle kwebanga lonyaka elilindelekile %1$s - %2$s"</string>
-    <string name="m3c_date_picker_switch_to_calendar_mode" msgid="9029369254443419167">"Shintshela kwimodi yokufaka yekhalenda"</string>
-    <string name="m3c_date_picker_switch_to_input_mode" msgid="1496750567914156598">"Shintshela kwimodi yokufaka yombhalo"</string>
-    <string name="m3c_date_picker_scroll_to_later_years" msgid="3226341140390493774">"Skrola ukuze ubonise iminyaka yakamuva"</string>
-    <string name="m3c_date_picker_scroll_to_earlier_years" msgid="8911933542023210271">"Skrola ukuze ubonise iminyaka yangaphambilini"</string>
-    <string name="m3c_date_range_picker_title" msgid="690080476639943577">"Khetha izinsuku"</string>
-    <string name="m3c_date_range_picker_start_headline" msgid="5759491386723090559">"Usuku lokuqala"</string>
-    <string name="m3c_date_range_picker_end_headline" msgid="4766270708882012148">"Usuku lokuphela"</string>
-    <string name="m3c_date_range_picker_scroll_to_next_month" msgid="51495506931835470">"Skrola ukuze ubonise inyanga elandelayo"</string>
-    <string name="m3c_date_range_picker_scroll_to_previous_month" msgid="4371570854614540700">"Skrola ukuze ubonise inyanga edlule"</string>
-    <string name="m3c_date_range_picker_day_in_range" msgid="9048690781645835833">"Kubanga"</string>
-    <string name="m3c_date_range_input_title" msgid="2366412111888449406">"Faka izinsuku"</string>
-    <string name="m3c_date_range_input_invalid_range_input" msgid="1891592555781755601">"Okokufaka kwebanga losuku okungavumelekile"</string>
-    <string name="m3c_bottom_sheet_drag_handle_description" msgid="7772321844937772780">"Hudula isibambi"</string>
-    <string name="m3c_bottom_sheet_collapse_description" msgid="6128938260108474660">"Goqa ishidi eliphansi"</string>
-    <string name="m3c_bottom_sheet_dismiss_description" msgid="1918297411568599192">"Chitha ishidi eliphansi"</string>
-    <string name="m3c_bottom_sheet_expand_description" msgid="4324434199045499117">"Nweba ishidi eliphansi"</string>
-    <string name="m3c_tooltip_pane_description" msgid="8191239805703103845">"Ithulithiphu"</string>
-    <string name="m3c_tooltip_long_press_label" msgid="2732804537909054941">"Bonisa ithulithiphu"</string>
-    <string name="m3c_time_picker_pm" msgid="2232702812657998674">"PM"</string>
-    <string name="m3c_time_picker_am" msgid="5096144640014509074">"AM"</string>
-    <string name="m3c_time_picker_period_toggle_description" msgid="7352665290700284516">"Khetha u-AM noma u-PM"</string>
-    <string name="m3c_time_picker_hour_selection" msgid="6081676287789101196">"Khetha ihora"</string>
-    <string name="m3c_time_picker_minute_selection" msgid="8494777394375441602">"Khetha imizuzu"</string>
-    <string name="m3c_time_picker_hour_suffix" msgid="6952032626122080528">"%1$d o\'clock"</string>
-    <string name="m3c_time_picker_hour_24h_suffix" msgid="4149641012513526783">"Amahora angu-%1$d"</string>
-    <string name="m3c_time_picker_minute_suffix" msgid="3206486707779478173">"Imizuzu engu-%1$d"</string>
-    <string name="m3c_time_picker_minute" msgid="6116528647594005945">"Umzuzu"</string>
-    <string name="m3c_time_picker_hour" msgid="7241191970823415723">"Ihora"</string>
-    <string name="m3c_time_picker_minute_text_field" msgid="994099543833979061">"ngemizuzu"</string>
-    <string name="m3c_time_picker_hour_text_field" msgid="5298761125390275834">"ngehora"</string>
-</resources>
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt
index 21cd441..62a0006 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt
@@ -149,7 +149,8 @@
             if (sequences.isNotEmpty()) {
                 crossAxisSpace += crossAxisSpacing.roundToPx()
             }
-            sequences += currentSequence.toList()
+            // Ensures that confirming actions appear above dismissive actions.
+            sequences.add(0, currentSequence.toList())
             crossAxisSizes += currentCrossAxisSize
             crossAxisPositions += crossAxisSpace
 
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt
index 2746436..5f1bf66 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt
@@ -535,8 +535,8 @@
  * [animationProgress].
  *
  * When [alwaysShowLabel] is true, the positions do not move. The [iconPlaceable] will be placed
- * near the top of the item and the [labelPlaceable] will be placed near the bottom, according to
- * the spec.
+ * near the top of the item and the [labelPlaceable] will be placed beneath it with padding,
+ * according to the spec.
  *
  * When [animationProgress] is 1 (representing the selected state), the positions will be the same
  * as above.
@@ -573,11 +573,13 @@
 ): MeasureResult {
     val height = constraints.maxHeight
 
-    // Label should be `ItemVerticalPadding` from the bottom
-    val labelY = height - labelPlaceable.height - NavigationBarItemVerticalPadding.roundToPx()
+    val contentTotalHeight = iconPlaceable.height + IndicatorVerticalPadding.roundToPx() +
+        NavigationBarIndicatorToLabelPadding.roundToPx() + labelPlaceable.height
+    val contentVerticalPadding = ((height - contentTotalHeight) / 2)
+        .coerceAtLeast(IndicatorVerticalPadding.roundToPx())
 
-    // Icon (when selected) should be `ItemVerticalPadding` from the top
-    val selectedIconY = NavigationBarItemVerticalPadding.roundToPx()
+    // Icon (when selected) should be `contentVerticalPadding` from top
+    val selectedIconY = contentVerticalPadding
     val unselectedIconY =
         if (alwaysShowLabel) selectedIconY else (height - iconPlaceable.height) / 2
 
@@ -588,6 +590,10 @@
     // animationProgress.
     val offset = (iconDistance * (1 - animationProgress)).roundToInt()
 
+    // Label should be fixed padding below icon
+    val labelY = selectedIconY + iconPlaceable.height + IndicatorVerticalPadding.roundToPx() +
+        NavigationBarIndicatorToLabelPadding.roundToPx()
+
     val containerWidth = constraints.maxWidth
 
     val labelX = (containerWidth - labelPlaceable.width) / 2
@@ -626,12 +632,13 @@
 internal val NavigationBarItemHorizontalPadding: Dp = 8.dp
 
 /*@VisibleForTesting*/
-internal val NavigationBarItemVerticalPadding: Dp = 16.dp
+internal val NavigationBarIndicatorToLabelPadding: Dp = 4.dp
 
 private val IndicatorHorizontalPadding: Dp =
     (NavigationBarTokens.ActiveIndicatorWidth - NavigationBarTokens.IconSize) / 2
 
-private val IndicatorVerticalPadding: Dp =
+/*@VisibleForTesting*/
+internal val IndicatorVerticalPadding: Dp =
     (NavigationBarTokens.ActiveIndicatorHeight - NavigationBarTokens.IconSize) / 2
 
 private val IndicatorVerticalOffset: Dp = 12.dp
\ No newline at end of file
diff --git a/compose/runtime/OWNERS b/compose/runtime/OWNERS
index 8983dbc..a9c5fa6 100644
--- a/compose/runtime/OWNERS
+++ b/compose/runtime/OWNERS
@@ -2,6 +2,7 @@
 jsproch@google.com
 chuckj@google.com
 lelandr@google.com
+anbailey@google.com
 
 # Per-file for Playground infra
 per-file settings.gradle = yboyar@google.com, dustinlam@google.com, rahulrav@google.com
diff --git a/compose/ui/ui-graphics/api/current.txt b/compose/ui/ui-graphics/api/current.txt
index 2042050..ae86521 100644
--- a/compose/ui/ui-graphics/api/current.txt
+++ b/compose/ui/ui-graphics/api/current.txt
@@ -634,6 +634,7 @@
     method public void reset();
     method public default void rewind();
     method public void setFillType(int);
+    method public default void transform(float[] matrix);
     method public void translate(long offset);
     property public abstract int fillType;
     property public abstract boolean isConvex;
diff --git a/compose/ui/ui-graphics/api/public_plus_experimental_current.txt b/compose/ui/ui-graphics/api/public_plus_experimental_current.txt
index cb69cd3..d6fde28 100644
--- a/compose/ui/ui-graphics/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui-graphics/api/public_plus_experimental_current.txt
@@ -637,6 +637,7 @@
     method public void reset();
     method public default void rewind();
     method public void setFillType(int);
+    method public default void transform(float[] matrix);
     method public void translate(long offset);
     property public abstract int fillType;
     property public abstract boolean isConvex;
diff --git a/compose/ui/ui-graphics/api/restricted_current.txt b/compose/ui/ui-graphics/api/restricted_current.txt
index 032a956b..17269b9 100644
--- a/compose/ui/ui-graphics/api/restricted_current.txt
+++ b/compose/ui/ui-graphics/api/restricted_current.txt
@@ -669,6 +669,7 @@
     method public void reset();
     method public default void rewind();
     method public void setFillType(int);
+    method public default void transform(float[] matrix);
     method public void translate(long offset);
     property public abstract int fillType;
     property public abstract boolean isConvex;
diff --git a/compose/ui/ui-graphics/samples/src/main/java/androidx/compose/ui/graphics/samples/BrushSamples.kt b/compose/ui/ui-graphics/samples/src/main/java/androidx/compose/ui/graphics/samples/BrushSamples.kt
index 4784e83..b825b33 100644
--- a/compose/ui/ui-graphics/samples/src/main/java/androidx/compose/ui/graphics/samples/BrushSamples.kt
+++ b/compose/ui/ui-graphics/samples/src/main/java/androidx/compose/ui/graphics/samples/BrushSamples.kt
@@ -26,8 +26,10 @@
 import androidx.compose.foundation.layout.wrapContentSize
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.graphics.Brush
 import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.TileMode
 import androidx.compose.ui.unit.dp
 
 @Sampled
@@ -57,4 +59,108 @@
         val sweep = Brush.sweepGradient(listOf(Color.Cyan, Color.Magenta))
         Box(modifier = Modifier.size(120.dp).background(sweep))
     }
+}
+
+@Sampled
+fun LinearGradientColorStopSample() {
+    Brush.linearGradient(
+        0.0f to Color.Red,
+        0.3f to Color.Green,
+        1.0f to Color.Blue,
+        start = Offset(0.0f, 50.0f),
+        end = Offset(0.0f, 100.0f)
+    )
+}
+
+@Sampled
+fun LinearGradientSample() {
+    Brush.linearGradient(
+        listOf(Color.Red, Color.Green, Color.Blue),
+        start = Offset(0.0f, 50.0f),
+        end = Offset(0.0f, 100.0f)
+    )
+}
+
+@Sampled
+fun HorizontalGradientSample() {
+    Brush.horizontalGradient(
+        listOf(Color.Red, Color.Green, Color.Blue),
+        startX = 10.0f,
+        endX = 20.0f
+    )
+}
+
+@Sampled
+fun HorizontalGradientColorStopSample() {
+    Brush.horizontalGradient(
+        0.0f to Color.Red,
+        0.3f to Color.Green,
+        1.0f to Color.Blue,
+        startX = 0.0f,
+        endX = 100.0f
+    )
+}
+
+@Sampled
+fun VerticalGradientColorStopSample() {
+    Brush.verticalGradient(
+        0.1f to Color.Red,
+        0.3f to Color.Green,
+        0.5f to Color.Blue,
+        startY = 0.0f,
+        endY = 100.0f
+    )
+}
+
+@Sampled
+fun VerticalGradientSample() {
+    Brush.verticalGradient(
+        listOf(Color.Red, Color.Green, Color.Blue),
+        startY = 0.0f,
+        endY = 100.0f
+    )
+}
+
+@Sampled
+fun RadialBrushColorStopSample() {
+    val side1 = 100
+    val side2 = 200
+    Brush.radialGradient(
+        0.0f to Color.Red,
+        0.3f to Color.Green,
+        1.0f to Color.Blue,
+        center = Offset(side1 / 2.0f, side2 / 2.0f),
+        radius = side1 / 2.0f,
+        tileMode = TileMode.Repeated
+    )
+}
+
+@Sampled
+fun RadialBrushSample() {
+    val side1 = 100
+    val side2 = 200
+    Brush.radialGradient(
+        listOf(Color.Red, Color.Green, Color.Blue),
+        center = Offset(side1 / 2.0f, side2 / 2.0f),
+        radius = side1 / 2.0f,
+        tileMode = TileMode.Repeated
+    )
+}
+
+@Sampled
+fun SweepGradientColorStopSample() {
+    Brush.sweepGradient(
+        0.0f to Color.Red,
+        0.3f to Color.Green,
+        1.0f to Color.Blue,
+        center = Offset(0.0f, 100.0f)
+    )
+}
+
+@Sampled
+fun SweepGradientSample() {
+    Brush.sweepGradient(
+        listOf(Color.Red, Color.Green, Color.Blue),
+        center = Offset(10.0f, 20.0f)
+    )
 }
\ No newline at end of file
diff --git a/compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/PathTest.kt b/compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/PathTest.kt
index 6975ef7..def70c3 100644
--- a/compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/PathTest.kt
+++ b/compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/PathTest.kt
@@ -97,6 +97,37 @@
         assertEquals(0, androidPath.resetCount)
     }
 
+    @Test
+    fun testPathTransform() {
+        val width = 100
+        val height = 100
+        val image = ImageBitmap(width, height)
+        val canvas = Canvas(image)
+
+        val path = Path().apply {
+            addRect(Rect(0f, 0f, 50f, 50f))
+            transform(
+                Matrix().apply { translate(50f, 50f) }
+            )
+        }
+
+        val paint = Paint().apply { color = Color.Black }
+        canvas.drawRect(0f, 0f, width.toFloat(), height.toFloat(), paint)
+        paint.color = Color.Red
+        canvas.drawPath(path, paint)
+
+        image.toPixelMap().apply {
+            assertEquals(Color.Black, this[width / 2 - 3, height / 2 - 3])
+            assertEquals(Color.Black, this[width / 2, height / 2 - 3])
+            assertEquals(Color.Black, this[width / 2 - 3, height / 2])
+
+            assertEquals(Color.Red, this[width / 2 + 2, height / 2 + 2])
+            assertEquals(Color.Red, this[width - 2, height / 2 + 2])
+            assertEquals(Color.Red, this[width - 2, height - 2])
+            assertEquals(Color.Red, this[width / 2 + 2, height - 2])
+        }
+    }
+
     class TestAndroidPath : android.graphics.Path() {
 
         var resetCount = 0
diff --git a/compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/ShaderTest.kt b/compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/ShaderTest.kt
index 786ed1f..a1c9071 100644
--- a/compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/ShaderTest.kt
+++ b/compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/ShaderTest.kt
@@ -28,6 +28,8 @@
 import org.junit.Test
 import org.junit.runner.RunWith
 import kotlin.math.roundToInt
+import org.junit.Assert.assertNotNull
+import org.junit.Assert.assertNull
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
@@ -197,6 +199,53 @@
         )
     }
 
+    @Test
+    fun testInvalidWidthBrush() {
+        // Verify that attempts to create a RadialGradient with a width of 0 do not throw
+        // IllegalArgumentExceptions for an invalid radius
+        val brush = Brush.radialGradient(listOf(Color.Red, Color.Blue))
+        val paint = Paint()
+        brush.applyTo(Size(0f, 10f), paint, 1.0f)
+    }
+
+    @Test
+    fun testInvalidHeightBrush() {
+        val brush = Brush.radialGradient(listOf(Color.Red, Color.Blue))
+        val paint = Paint()
+        // Verify that attempts to create a RadialGradient with a height of 0 do not throw
+        // IllegalArgumentExceptions for an invalid radius
+        brush.applyTo(Size(10f, 0f), paint, 1.0f)
+    }
+
+    @Test
+    fun testValidToInvalidWidthBrush() {
+        // Verify that attempts to create a RadialGradient with a non-zero width/height that
+        // is later attempted to be recreated with a zero width remove the shader from the Paint
+        val brush = Brush.radialGradient(listOf(Color.Red, Color.Blue))
+        val paint = Paint()
+        brush.applyTo(Size(10f, 10f), paint, 1.0f)
+
+        assertNotNull(paint.shader)
+
+        brush.applyTo(Size(0f, 10f), paint, 1.0f)
+        assertNull(paint.shader)
+    }
+
+    @Test
+    fun testValidToInvalidHeightBrush() {
+        // Verify that attempts to create a RadialGradient with a non-zero width/height that
+        // is later attempted to be recreated with a zero height remove the shader from the Paint
+        val brush = Brush.radialGradient(listOf(Color.Red, Color.Blue))
+        val paint = Paint()
+
+        brush.applyTo(Size(10f, 10f), paint, 1.0f)
+
+        assertNotNull(paint.shader)
+
+        brush.applyTo(Size(10f, 0f), paint, 1.0f)
+        assertNull(paint.shader)
+    }
+
     private fun ImageBitmap.drawInto(
         block: DrawScope.() -> Unit
     ) = CanvasDrawScope().draw(
diff --git a/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidCanvas.android.kt b/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidCanvas.android.kt
index 1293ae9..8f2debb 100644
--- a/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidCanvas.android.kt
+++ b/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidCanvas.android.kt
@@ -335,7 +335,9 @@
      */
     private fun drawLines(points: List<Offset>, paint: Paint, stepBy: Int) {
         if (points.size >= 2) {
-            for (i in 0 until points.size - 1 step stepBy) {
+            val frameworkPaint = paint.asFrameworkPaint()
+            var i = 0
+            while (i < points.size - 1) {
                 val p1 = points[i]
                 val p2 = points[i + 1]
                 internalCanvas.drawLine(
@@ -343,8 +345,9 @@
                     p1.y,
                     p2.x,
                     p2.y,
-                    paint.asFrameworkPaint()
+                    frameworkPaint
                 )
+                i += stepBy
             }
         }
     }
@@ -365,10 +368,13 @@
 
     private fun drawRawPoints(points: FloatArray, paint: Paint, stepBy: Int) {
         if (points.size % 2 == 0) {
-            for (i in 0 until points.size - 1 step stepBy) {
+            val frameworkPaint = paint.asFrameworkPaint()
+            var i = 0
+            while (i < points.size - 1) {
                 val x = points[i]
                 val y = points[i + 1]
-                internalCanvas.drawPoint(x, y, paint.asFrameworkPaint())
+                internalCanvas.drawPoint(x, y, frameworkPaint)
+                i += stepBy
             }
         }
     }
@@ -390,18 +396,15 @@
         // Float array is treated as alternative set of x and y coordinates
         // x1, y1, x2, y2, x3, y3, ... etc.
         if (points.size >= 4 && points.size % 2 == 0) {
-            for (i in 0 until points.size - 3 step stepBy * 2) {
+            val frameworkPaint = paint.asFrameworkPaint()
+            var i = 0
+            while (i < points.size - 3) {
                 val x1 = points[i]
                 val y1 = points[i + 1]
                 val x2 = points[i + 2]
                 val y2 = points[i + 3]
-                internalCanvas.drawLine(
-                    x1,
-                    y1,
-                    x2,
-                    y2,
-                    paint.asFrameworkPaint()
-                )
+                internalCanvas.drawLine(x1, y1, x2, y2, frameworkPaint)
+                i += stepBy * 2
             }
         }
     }
diff --git a/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidPath.android.kt b/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidPath.android.kt
index 18705bc..f4272bb 100644
--- a/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidPath.android.kt
+++ b/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidPath.android.kt
@@ -190,6 +190,11 @@
         internalPath.transform(mMatrix)
     }
 
+    override fun transform(matrix: Matrix) {
+        mMatrix.setFrom(matrix)
+        internalPath.transform(mMatrix)
+    }
+
     override fun getBounds(): Rect {
         internalPath.computeBounds(rectF, true)
         return Rect(
diff --git a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Brush.kt b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Brush.kt
index bda9615..5f7a1d0 100644
--- a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Brush.kt
+++ b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Brush.kt
@@ -57,7 +57,8 @@
          * )
          * ```
          *
-         * @see androidx.compose.ui.graphics.samples.GradientBrushSample
+         * @sample androidx.compose.ui.graphics.samples.LinearGradientColorStopSample
+         * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colorStops Colors and their offset in the gradient area
          * @param start Starting position of the linear gradient. This can be set to
@@ -88,11 +89,12 @@
          * ```
          *  Brush.linearGradient(
          *      listOf(Color.Red, Color.Green, Color.Blue),
-         *      start = Offset(0.0f, 50.0f)
+         *      start = Offset(0.0f, 50.0f),
          *      end = Offset(0.0f, 100.0f)
          * )
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.LinearGradientSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colors Colors to be rendered as part of the gradient
@@ -129,6 +131,7 @@
          * )
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.HorizontalGradientSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colors colors Colors to be rendered as part of the gradient
@@ -163,6 +166,7 @@
          * )
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.HorizontalGradientColorStopSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colorStops Colors and offsets to determine how the colors are dispersed throughout
@@ -197,9 +201,9 @@
          *      startY = 0.0f,
          *      endY = 100.0f
          * )
-         *
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.VerticalGradientSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colors colors Colors to be rendered as part of the gradient
@@ -234,6 +238,7 @@
          * )
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.VerticalGradientColorStopSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colorStops Colors and offsets to determine how the colors are dispersed throughout
@@ -273,6 +278,7 @@
          * )
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.RadialBrushColorStopSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colorStops Colors and offsets to determine how the colors are dispersed throughout
@@ -305,13 +311,13 @@
          * ```
          * Brush.radialGradient(
          *      listOf(Color.Red, Color.Green, Color.Blue),
-         *      centerX = side1 / 2.0f,
-         *      centerY = side2 / 2.0f,
+         *      center = Offset(side1 / 2.0f, side2 / 2.0f),
          *      radius = side1 / 2.0f,
          *      tileMode = TileMode.Repeated
          * )
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.RadialBrushSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colors Colors to be rendered as part of the gradient
@@ -353,6 +359,7 @@
          * )
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.SweepGradientColorStopSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colorStops Colors and offsets to determine how the colors are dispersed throughout
@@ -384,6 +391,7 @@
          * )
          * ```
          *
+         * @sample androidx.compose.ui.graphics.samples.SweepGradientSample
          * @sample androidx.compose.ui.graphics.samples.GradientBrushSample
          *
          * @param colors List of colors to fill the sweep gradient
@@ -645,8 +653,14 @@
     final override fun applyTo(size: Size, p: Paint, alpha: Float) {
         var shader = internalShader
         if (shader == null || createdSize != size) {
-            shader = createShader(size).also { internalShader = it }
-            createdSize = size
+            if (size.isEmpty()) {
+                shader = null
+                internalShader = null
+                createdSize = Size.Unspecified
+            } else {
+                shader = createShader(size).also { internalShader = it }
+                createdSize = size
+            }
         }
         if (p.color != Color.Black) p.color = Color.Black
         if (p.shader != shader) p.shader = shader
diff --git a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Path.kt b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Path.kt
index b12273e..e54eef0 100644
--- a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Path.kt
+++ b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Path.kt
@@ -233,6 +233,13 @@
     fun translate(offset: Offset)
 
     /**
+     * Transform the points in this path by the provided matrix
+     */
+    fun transform(matrix: Matrix) {
+        // NO-OP to ensure runtime + compile time compatibility
+    }
+
+    /**
      * Compute the bounds of the control points of the path, and write the
      * answer into bounds. If the path contains 0 or 1 points, the bounds is
      * set to (0,0,0,0)
diff --git a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/PathParser.kt b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/PathParser.kt
index 42cf68f..b4e0ed9 100644
--- a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/PathParser.kt
+++ b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/PathParser.kt
@@ -139,7 +139,7 @@
         return this
     }
 
-    fun toNodes(): List<PathNode> = nodes
+    fun toNodes() = nodes
 
     fun toPath(target: Path = Path()) = nodes.toPath(target)
 
@@ -156,7 +156,7 @@
  * created [Path].
  */
 fun List<PathNode>.toPath(target: Path = Path()): Path {
-    // Rewind unsets the filltype so reset it here
+    // Rewind unsets the fill type so reset it here
     val fillType = target.fillType
     target.rewind()
     target.fillType = fillType
diff --git a/compose/ui/ui-graphics/src/commonTest/kotlin/androidx/compose/ui/graphics/vector/PathParserTest.kt b/compose/ui/ui-graphics/src/commonTest/kotlin/androidx/compose/ui/graphics/vector/PathParserTest.kt
index 92b808d..31ff184 100644
--- a/compose/ui/ui-graphics/src/commonTest/kotlin/androidx/compose/ui/graphics/vector/PathParserTest.kt
+++ b/compose/ui/ui-graphics/src/commonTest/kotlin/androidx/compose/ui/graphics/vector/PathParserTest.kt
@@ -19,6 +19,7 @@
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.geometry.Rect
 import androidx.compose.ui.geometry.RoundRect
+import androidx.compose.ui.graphics.Matrix
 import androidx.compose.ui.graphics.Path
 import androidx.compose.ui.graphics.PathFillType
 import androidx.compose.ui.graphics.PathOperation
@@ -187,6 +188,10 @@
             // NO-OP
         }
 
+        override fun transform(matrix: Matrix) {
+            // NO-OP
+        }
+
         override fun getBounds(): Rect = Rect.Zero
 
         override fun op(path1: Path, path2: Path, operation: PathOperation): Boolean = false
diff --git a/compose/ui/ui-graphics/src/desktopTest/kotlin/androidx/compose/ui/graphics/DesktopPathTest.kt b/compose/ui/ui-graphics/src/desktopTest/kotlin/androidx/compose/ui/graphics/DesktopPathTest.kt
index 332b62b..4dc92b9 100644
--- a/compose/ui/ui-graphics/src/desktopTest/kotlin/androidx/compose/ui/graphics/DesktopPathTest.kt
+++ b/compose/ui/ui-graphics/src/desktopTest/kotlin/androidx/compose/ui/graphics/DesktopPathTest.kt
@@ -225,4 +225,35 @@
 
         assertTrue(path.isEmpty)
     }
+
+    @Test
+    fun testTransform() {
+        val width = 100
+        val height = 100
+        val image = ImageBitmap(width, height)
+        val canvas = Canvas(image)
+
+        val path = Path().apply {
+            addRect(Rect(0f, 0f, 50f, 50f))
+            transform(
+                Matrix().apply { translate(50f, 50f) }
+            )
+        }
+
+        val paint = Paint().apply { color = Color.Black }
+        canvas.drawRect(0f, 0f, width.toFloat(), height.toFloat(), paint)
+        paint.color = Color.Red
+        canvas.drawPath(path, paint)
+
+        image.toPixelMap().apply {
+            assertEquals(Color.Black, this[width / 2 - 3, height / 2 - 3])
+            assertEquals(Color.Black, this[width / 2, height / 2 - 3])
+            assertEquals(Color.Black, this[width / 2 - 3, height / 2])
+
+            assertEquals(Color.Red, this[width / 2 + 2, height / 2 + 2])
+            assertEquals(Color.Red, this[width - 2, height / 2 + 2])
+            assertEquals(Color.Red, this[width - 2, height - 2])
+            assertEquals(Color.Red, this[width / 2 + 2, height - 2])
+        }
+    }
 }
diff --git a/compose/ui/ui-graphics/src/skikoMain/kotlin/androidx/compose/ui/graphics/SkiaBackedPath.skiko.kt b/compose/ui/ui-graphics/src/skikoMain/kotlin/androidx/compose/ui/graphics/SkiaBackedPath.skiko.kt
index 403e36e..0285785 100644
--- a/compose/ui/ui-graphics/src/skikoMain/kotlin/androidx/compose/ui/graphics/SkiaBackedPath.skiko.kt
+++ b/compose/ui/ui-graphics/src/skikoMain/kotlin/androidx/compose/ui/graphics/SkiaBackedPath.skiko.kt
@@ -172,6 +172,10 @@
         internalPath.transform(Matrix33.makeTranslate(offset.x, offset.y))
     }
 
+    override fun transform(matrix: Matrix) {
+        internalPath.transform(Matrix33.makeTranslate(0f, 0f).apply { setFrom(matrix) })
+    }
+
     override fun getBounds(): Rect {
         val bounds = internalPath.bounds
         return Rect(
@@ -209,4 +213,63 @@
     override val isConvex: Boolean get() = internalPath.isConvex
 
     override val isEmpty: Boolean get() = internalPath.isEmpty
+
+    fun Matrix33.setFrom(matrix: Matrix) {
+        require(
+            matrix[0, 2] == 0f &&
+                matrix[1, 2] == 0f &&
+                matrix[2, 2] == 1f &&
+                matrix[3, 2] == 0f &&
+                matrix[2, 0] == 0f &&
+                matrix[2, 1] == 0f &&
+                matrix[2, 3] == 0f
+        ) {
+            "Matrix33 does not support arbitrary transforms"
+        }
+
+        // We'll reuse the array used in Matrix to avoid allocation by temporarily
+        // setting it to the 3x3 matrix used by android.graphics.Matrix
+        // Store the values of the 4 x 4 matrix into temporary variables
+        // to be reset after the 3 x 3 matrix is configured
+        val scaleX = matrix.values[Matrix.ScaleX] // 0
+        val skewY = matrix.values[Matrix.SkewY] // 1
+        val v2 = matrix.values[2] // 2
+        val persp0 = matrix.values[Matrix.Perspective0] // 3
+        val skewX = matrix.values[Matrix.SkewX] // 4
+        val scaleY = matrix.values[Matrix.ScaleY] // 5
+        val v6 = matrix.values[6] // 6
+        val persp1 = matrix.values[Matrix.Perspective1] // 7
+        val v8 = matrix.values[8] // 8
+
+        val translateX = matrix.values[Matrix.TranslateX]
+        val translateY = matrix.values[Matrix.TranslateY]
+        val persp2 = matrix.values[Matrix.Perspective2]
+
+        val v = matrix.values
+
+        v[0] = scaleX // MSCALE_X = 0
+        v[1] = skewX // MSKEW_X = 1
+        v[2] = translateX // MTRANS_X = 2
+        v[3] = skewY // MSKEW_Y = 3
+        v[4] = scaleY // MSCALE_Y = 4
+        v[5] = translateY // MTRANS_Y
+        v[6] = persp0 // MPERSP_0 = 6
+        v[7] = persp1 // MPERSP_1 = 7
+        v[8] = persp2 // MPERSP_2 = 8
+
+        for (i in 0..8) {
+            mat[i] = v[i]
+        }
+
+        // Reset the values back after the android.graphics.Matrix is configured
+        v[Matrix.ScaleX] = scaleX // 0
+        v[Matrix.SkewY] = skewY // 1
+        v[2] = v2 // 2
+        v[Matrix.Perspective0] = persp0 // 3
+        v[Matrix.SkewX] = skewX // 4
+        v[Matrix.ScaleY] = scaleY // 5
+        v[6] = v6 // 6
+        v[Matrix.Perspective1] = persp1 // 7
+        v[8] = v8 // 8
+    }
 }
\ No newline at end of file
diff --git a/compose/ui/ui-test/src/androidAndroidTest/kotlin/androidx/compose/ui/test/PrintToStringTest.kt b/compose/ui/ui-test/src/androidAndroidTest/kotlin/androidx/compose/ui/test/PrintToStringTest.kt
index f818fcc..5d24c91 100644
--- a/compose/ui/ui-test/src/androidAndroidTest/kotlin/androidx/compose/ui/test/PrintToStringTest.kt
+++ b/compose/ui/ui-test/src/androidAndroidTest/kotlin/androidx/compose/ui/test/PrintToStringTest.kt
@@ -129,10 +129,10 @@
                     |-Node #X at (l=X, t=X, r=X, b=X)px, Tag: 'box'
                     | [Disabled]
                     |  |-Node #X at (l=X, t=X, r=X, b=X)px
-                    |    Role = 'Button'
                     |    Focused = 'false'
+                    |    Role = 'Button'
                     |    Text = '[Button]'
-                    |    Actions = [RequestFocus, OnClick, GetTextLayoutResult]
+                    |    Actions = [OnClick, RequestFocus, GetTextLayoutResult]
                     |    MergeDescendants = 'true'
                     |-Node #X at (l=X, t=X, r=X, b=X)px
                       Text = '[Hello]'
diff --git a/compose/ui/ui-text/src/androidAndroidTest/kotlin/androidx/compose/ui/text/AndroidParagraphTest.kt b/compose/ui/ui-text/src/androidAndroidTest/kotlin/androidx/compose/ui/text/AndroidParagraphTest.kt
index 386b478..1aef72f 100644
--- a/compose/ui/ui-text/src/androidAndroidTest/kotlin/androidx/compose/ui/text/AndroidParagraphTest.kt
+++ b/compose/ui/ui-text/src/androidAndroidTest/kotlin/androidx/compose/ui/text/AndroidParagraphTest.kt
@@ -1348,7 +1348,7 @@
         val paragraph = simpleParagraph(
             text = "",
             style = TextStyle(brush = brush),
-            width = 0.0f
+            width = 1.0f
         )
 
         assertThat(paragraph.textPaint.shader).isNotNull()
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/clock/Utils.kt b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/clock/Utils.kt
index ae1f769..0ecdc83 100644
--- a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/clock/Utils.kt
+++ b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/clock/Utils.kt
@@ -117,8 +117,10 @@
         )
         values[endTimeMs] = this.getValueFromNanos(millisToNanos(endTimeMs))
 
-        for (millis in startTimeMs..endTimeMs step stepMs) {
+        var millis = startTimeMs
+        while (millis <= endTimeMs) {
             values[millis] = this.getValueFromNanos(millisToNanos(millis))
+            millis += stepMs
         }
         values
     }
@@ -145,8 +147,10 @@
         )
         values[endTimeMs] = this.animation.getValueFromNanos(millisToNanos(endTimeMs))
 
-        for (millis in startTimeMs..endTimeMs step stepMs) {
+        var millis = startTimeMs
+        while (millis <= endTimeMs) {
             values[millis] = this.animation.getValueFromNanos(millisToNanos(millis))
+            millis += stepMs
         }
         values
     }
diff --git a/compose/ui/ui/api/current.txt b/compose/ui/ui/api/current.txt
index 7222c00..eeeb983 100644
--- a/compose/ui/ui/api/current.txt
+++ b/compose/ui/ui/api/current.txt
@@ -2379,8 +2379,11 @@
   }
 
   public interface SemanticsModifierNode extends androidx.compose.ui.node.DelegatableNode {
-    method public androidx.compose.ui.semantics.SemanticsConfiguration getSemanticsConfiguration();
-    property public abstract androidx.compose.ui.semantics.SemanticsConfiguration semanticsConfiguration;
+    method public void applySemantics(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
+    method public default boolean getShouldClearDescendantSemantics();
+    method public default boolean getShouldMergeDescendantSemantics();
+    property public default boolean shouldClearDescendantSemantics;
+    property public default boolean shouldMergeDescendantSemantics;
   }
 
   public final class SemanticsModifierNodeKt {
diff --git a/compose/ui/ui/api/public_plus_experimental_current.txt b/compose/ui/ui/api/public_plus_experimental_current.txt
index bb73f64..2a98886 100644
--- a/compose/ui/ui/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui/api/public_plus_experimental_current.txt
@@ -2604,8 +2604,11 @@
   }
 
   public interface SemanticsModifierNode extends androidx.compose.ui.node.DelegatableNode {
-    method public androidx.compose.ui.semantics.SemanticsConfiguration getSemanticsConfiguration();
-    property public abstract androidx.compose.ui.semantics.SemanticsConfiguration semanticsConfiguration;
+    method public void applySemantics(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
+    method public default boolean getShouldClearDescendantSemantics();
+    method public default boolean getShouldMergeDescendantSemantics();
+    property public default boolean shouldClearDescendantSemantics;
+    property public default boolean shouldMergeDescendantSemantics;
   }
 
   public final class SemanticsModifierNodeKt {
diff --git a/compose/ui/ui/api/restricted_current.txt b/compose/ui/ui/api/restricted_current.txt
index 24148fc..c17196f 100644
--- a/compose/ui/ui/api/restricted_current.txt
+++ b/compose/ui/ui/api/restricted_current.txt
@@ -2427,8 +2427,11 @@
   }
 
   public interface SemanticsModifierNode extends androidx.compose.ui.node.DelegatableNode {
-    method public androidx.compose.ui.semantics.SemanticsConfiguration getSemanticsConfiguration();
-    property public abstract androidx.compose.ui.semantics.SemanticsConfiguration semanticsConfiguration;
+    method public void applySemantics(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
+    method public default boolean getShouldClearDescendantSemantics();
+    method public default boolean getShouldMergeDescendantSemantics();
+    property public default boolean shouldClearDescendantSemantics;
+    property public default boolean shouldMergeDescendantSemantics;
   }
 
   public final class SemanticsModifierNodeKt {
diff --git a/compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/ModifierSamples.kt b/compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/ModifierSamples.kt
index a61a41e..020c4b9 100644
--- a/compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/ModifierSamples.kt
+++ b/compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/ModifierSamples.kt
@@ -51,7 +51,7 @@
 import androidx.compose.ui.node.SemanticsModifierNode
 import androidx.compose.ui.node.requireLayoutDirection
 import androidx.compose.ui.platform.InspectorInfo
-import androidx.compose.ui.semantics.SemanticsConfiguration
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.semantics.heading
 import androidx.compose.ui.semantics.onClick
 import androidx.compose.ui.unit.IntSize
@@ -155,13 +155,12 @@
             gesture.onCancelPointerInput()
         }
 
-        override val semanticsConfiguration: SemanticsConfiguration = SemanticsConfiguration()
-            .apply {
-                onClick {
-                    gesture.onTap()
-                    true
-                }
+        override fun SemanticsPropertyReceiver.applySemantics() {
+            onClick {
+                gesture.onTap()
+                true
             }
+        }
     }
 }
 
@@ -184,13 +183,12 @@
     }
 
     class TapSemanticsNode(var onTap: () -> Unit) : SemanticsModifierNode, Modifier.Node() {
-        override val semanticsConfiguration: SemanticsConfiguration = SemanticsConfiguration()
-            .apply {
-                onClick {
-                    onTap()
-                    true
-                }
+        override fun SemanticsPropertyReceiver.applySemantics() {
+            onClick {
+                onTap()
+                true
             }
+        }
     }
     class TapGestureWithClickSemantics(onTap: () -> Unit) : DelegatingNode() {
         var onTap: () -> Unit
@@ -250,13 +248,12 @@
     }
 
     class TapSemanticsNode(var onTap: () -> Unit) : SemanticsModifierNode, Modifier.Node() {
-        override val semanticsConfiguration: SemanticsConfiguration = SemanticsConfiguration()
-            .apply {
-                onClick {
-                    onTap()
-                    true
-                }
+        override fun SemanticsPropertyReceiver.applySemantics() {
+            onClick {
+                onTap()
+                true
             }
+        }
     }
     class TapGestureWithClickSemantics(onTap: () -> Unit) : DelegatingNode() {
         var onTap: () -> Unit
@@ -340,10 +337,9 @@
 @Composable
 fun SemanticsModifierNodeSample() {
     class HeadingNode : SemanticsModifierNode, Modifier.Node() {
-        override val semanticsConfiguration: SemanticsConfiguration = SemanticsConfiguration()
-            .apply {
-                heading()
-            }
+        override fun SemanticsPropertyReceiver.applySemantics() {
+            heading()
+        }
     }
 
     val HeadingElement = object : ModifierNodeElement<HeadingNode>() {
diff --git a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidComposeViewAccessibilityDelegateCompatTest.kt b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidComposeViewAccessibilityDelegateCompatTest.kt
index 4e95ffd..337f866 100644
--- a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidComposeViewAccessibilityDelegateCompatTest.kt
+++ b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidComposeViewAccessibilityDelegateCompatTest.kt
@@ -29,15 +29,44 @@
 import androidx.compose.runtime.setValue
 import androidx.compose.runtime.snapshots.Snapshot
 import androidx.compose.runtime.structuralEqualityPolicy
+import androidx.compose.ui.autofill.Autofill
+import androidx.compose.ui.autofill.AutofillTree
+import androidx.compose.ui.focus.FocusDirection
+import androidx.compose.ui.focus.FocusOwner
+import androidx.compose.ui.geometry.MutableRect
 import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.graphics.Canvas
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.CompositingStrategy
+import androidx.compose.ui.graphics.Matrix
+import androidx.compose.ui.graphics.RenderEffect
+import androidx.compose.ui.graphics.Shape
+import androidx.compose.ui.graphics.TransformOrigin
 import androidx.compose.ui.graphics.toAndroidRect
+import androidx.compose.ui.hapticfeedback.HapticFeedback
+import androidx.compose.ui.input.InputModeManager
+import androidx.compose.ui.input.key.KeyEvent
+import androidx.compose.ui.input.pointer.PointerIconService
+import androidx.compose.ui.modifier.ModifierLocalManager
+import androidx.compose.ui.node.InternalCoreApi
 import androidx.compose.ui.node.LayoutNode
+import androidx.compose.ui.node.LayoutNodeDrawScope
+import androidx.compose.ui.node.OwnedLayer
+import androidx.compose.ui.node.Owner
+import androidx.compose.ui.node.OwnerSnapshotObserver
+import androidx.compose.ui.node.RootForTest
+import androidx.compose.ui.platform.AccessibilityManager
 import androidx.compose.ui.platform.AndroidComposeView
 import androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat
 import androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.SemanticsNodeCopy
+import androidx.compose.ui.platform.ClipboardManager
 import androidx.compose.ui.platform.LocalClipboardManager
 import androidx.compose.ui.platform.SemanticsNodeWithAdjustedBounds
+import androidx.compose.ui.platform.TextToolbar
+import androidx.compose.ui.platform.ViewConfiguration
+import androidx.compose.ui.platform.WindowInfo
 import androidx.compose.ui.platform.getAllUncoveredSemanticsNodesToMap
+import androidx.compose.ui.platform.invertTo
 import androidx.compose.ui.semantics.CustomAccessibilityAction
 import androidx.compose.ui.semantics.EmptySemanticsElement
 import androidx.compose.ui.semantics.LiveRegionMode
@@ -78,11 +107,23 @@
 import androidx.compose.ui.semantics.text
 import androidx.compose.ui.semantics.textSelectionRange
 import androidx.compose.ui.semantics.verticalScrollAxisRange
+import androidx.compose.ui.test.InternalTestApi
 import androidx.compose.ui.test.TestActivity
 import androidx.compose.ui.test.junit4.createAndroidComposeRule
 import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.ExperimentalTextApi
 import androidx.compose.ui.text.TextRange
+import androidx.compose.ui.text.font.Font
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.input.PlatformTextInputPluginRegistry
+import androidx.compose.ui.text.input.TextInputService
+import androidx.compose.ui.unit.Constraints
+import androidx.compose.ui.unit.Density
+import androidx.compose.ui.unit.IntOffset
 import androidx.compose.ui.unit.IntRect
+import androidx.compose.ui.unit.IntSize
+import androidx.compose.ui.unit.LayoutDirection
+import androidx.compose.ui.unit.toOffset
 import androidx.core.view.ViewCompat
 import androidx.core.view.ViewStructureCompat
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
@@ -106,6 +147,7 @@
 import org.mockito.kotlin.verify
 import org.mockito.kotlin.whenever
 import java.util.concurrent.Executors
+import kotlin.coroutines.CoroutineContext
 import kotlinx.coroutines.asCoroutineDispatcher
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
@@ -1593,6 +1635,7 @@
         accessibilityDelegate.sendSemanticsPropertyChangeEvents(mapOf(nodeId to newTextNode))
     }
 
+    @OptIn(InternalTestApi::class)
     private fun createSemanticsNodeWithProperties(
         id: Int,
         mergeDescendants: Boolean,
@@ -1602,6 +1645,7 @@
         layoutNode.modifier = Modifier.semantics(mergeDescendants) {
             properties()
         }
+        layoutNode.attach(MockOwner())
         return SemanticsNode(layoutNode, true)
     }
 
@@ -1615,6 +1659,7 @@
         layoutNode.modifier = Modifier.semantics {
             properties()
         }
+        layoutNode.attach(MockOwner())
         return SemanticsNode(layoutNode, true)
     }
 
@@ -1641,3 +1686,228 @@
         return false
     }
 }
+
+internal class MockOwner(
+    private val position: IntOffset = IntOffset.Zero,
+    override val root: LayoutNode = LayoutNode(),
+    override val coroutineContext: CoroutineContext =
+        Executors.newFixedThreadPool(3).asCoroutineDispatcher()
+) : Owner {
+    val onRequestMeasureParams = mutableListOf<LayoutNode>()
+    val onAttachParams = mutableListOf<LayoutNode>()
+    val onDetachParams = mutableListOf<LayoutNode>()
+    var layoutChangeCount = 0
+
+    override val rootForTest: RootForTest
+        get() = TODO("Not yet implemented")
+    override val hapticFeedBack: HapticFeedback
+        get() = TODO("Not yet implemented")
+    override val inputModeManager: InputModeManager
+        get() = TODO("Not yet implemented")
+    override val clipboardManager: ClipboardManager
+        get() = TODO("Not yet implemented")
+    override val accessibilityManager: AccessibilityManager
+        get() = TODO("Not yet implemented")
+    override val textToolbar: TextToolbar
+        get() = TODO("Not yet implemented")
+
+    @OptIn(ExperimentalComposeUiApi::class)
+    override val autofillTree: AutofillTree
+        get() = TODO("Not yet implemented")
+
+    @OptIn(ExperimentalComposeUiApi::class)
+    override val autofill: Autofill?
+        get() = TODO("Not yet implemented")
+    override val density: Density
+        get() = Density(1f)
+    override val textInputService: TextInputService
+        get() = TODO("Not yet implemented")
+    @OptIn(ExperimentalTextApi::class)
+    override val platformTextInputPluginRegistry: PlatformTextInputPluginRegistry
+        get() = TODO("Not yet implemented")
+    override val pointerIconService: PointerIconService
+        get() = TODO("Not yet implemented")
+    override val focusOwner: FocusOwner
+        get() = TODO("Not yet implemented")
+    override val windowInfo: WindowInfo
+        get() = TODO("Not yet implemented")
+
+    @Deprecated(
+        "fontLoader is deprecated, use fontFamilyResolver",
+        replaceWith = ReplaceWith("fontFamilyResolver")
+    )
+    @Suppress("DEPRECATION")
+    override val fontLoader: Font.ResourceLoader
+        get() = TODO("Not yet implemented")
+    override val fontFamilyResolver: FontFamily.Resolver
+        get() = TODO("Not yet implemented")
+    override val layoutDirection: LayoutDirection
+        get() = LayoutDirection.Ltr
+    @InternalCoreApi
+    override var showLayoutBounds: Boolean = false
+    override val snapshotObserver = OwnerSnapshotObserver { it.invoke() }
+    override val modifierLocalManager: ModifierLocalManager = ModifierLocalManager(this)
+
+    override fun onRequestMeasure(
+        layoutNode: LayoutNode,
+        affectsLookahead: Boolean,
+        forceRequest: Boolean,
+        scheduleMeasureAndLayout: Boolean
+    ) {
+        onRequestMeasureParams += layoutNode
+        if (affectsLookahead) {
+            layoutNode.markLookaheadMeasurePending()
+        }
+        layoutNode.markMeasurePending()
+    }
+
+    override fun onRequestRelayout(
+        layoutNode: LayoutNode,
+        affectsLookahead: Boolean,
+        forceRequest: Boolean
+    ) {
+        if (affectsLookahead) {
+            layoutNode.markLookaheadLayoutPending()
+        }
+        layoutNode.markLayoutPending()
+    }
+
+    override fun requestOnPositionedCallback(layoutNode: LayoutNode) {
+    }
+
+    override fun onAttach(node: LayoutNode) {
+        onAttachParams += node
+    }
+
+    override fun onDetach(node: LayoutNode) {
+        onDetachParams += node
+    }
+
+    override fun calculatePositionInWindow(localPosition: Offset): Offset =
+        localPosition + position.toOffset()
+
+    override fun calculateLocalPosition(positionInWindow: Offset): Offset =
+        positionInWindow - position.toOffset()
+
+    override fun requestFocus(): Boolean = false
+
+    override fun measureAndLayout(sendPointerUpdate: Boolean) {
+    }
+
+    override fun measureAndLayout(layoutNode: LayoutNode, constraints: Constraints) {
+    }
+
+    override fun forceMeasureTheSubtree(layoutNode: LayoutNode, affectsLookahead: Boolean) {
+    }
+
+    override fun registerOnEndApplyChangesListener(listener: () -> Unit) {
+        listener()
+    }
+
+    override fun onEndApplyChanges() {
+    }
+
+    override fun registerOnLayoutCompletedListener(listener: Owner.OnLayoutCompletedListener) {
+        TODO("Not yet implemented")
+    }
+
+    val invalidatedLayers = mutableListOf<OwnedLayer>()
+
+    override fun createLayer(
+        drawBlock: (Canvas) -> Unit,
+        invalidateParentLayer: () -> Unit
+    ): OwnedLayer {
+        val transform = Matrix()
+        val inverseTransform = Matrix()
+        return object : OwnedLayer {
+            override fun updateLayerProperties(
+                scaleX: Float,
+                scaleY: Float,
+                alpha: Float,
+                translationX: Float,
+                translationY: Float,
+                shadowElevation: Float,
+                rotationX: Float,
+                rotationY: Float,
+                rotationZ: Float,
+                cameraDistance: Float,
+                transformOrigin: TransformOrigin,
+                shape: Shape,
+                clip: Boolean,
+                renderEffect: RenderEffect?,
+                ambientShadowColor: Color,
+                spotShadowColor: Color,
+                compositingStrategy: CompositingStrategy,
+                layoutDirection: LayoutDirection,
+                density: Density
+            ) {
+                transform.reset()
+                // This is not expected to be 100% accurate
+                transform.scale(scaleX, scaleY)
+                transform.rotateZ(rotationZ)
+                transform.translate(translationX, translationY)
+                transform.invertTo(inverseTransform)
+            }
+
+            override fun isInLayer(position: Offset) = true
+
+            override fun move(position: IntOffset) {
+            }
+
+            override fun resize(size: IntSize) {
+            }
+
+            override fun drawLayer(canvas: Canvas) {
+                drawBlock(canvas)
+            }
+
+            override fun updateDisplayList() {
+            }
+
+            override fun invalidate() {
+                invalidatedLayers.add(this)
+            }
+
+            override fun destroy() {
+            }
+
+            override fun mapBounds(rect: MutableRect, inverse: Boolean) {
+            }
+
+            override fun reuseLayer(
+                drawBlock: (Canvas) -> Unit,
+                invalidateParentLayer: () -> Unit
+            ) {
+            }
+
+            override fun transform(matrix: Matrix) {
+                matrix.timesAssign(transform)
+            }
+
+            override fun inverseTransform(matrix: Matrix) {
+                matrix.timesAssign(inverseTransform)
+            }
+
+            override fun mapOffset(point: Offset, inverse: Boolean) = point
+        }
+    }
+
+    var semanticsChanged: Boolean = false
+    override fun onSemanticsChange() {
+        semanticsChanged = true
+    }
+
+    override fun onLayoutChange(layoutNode: LayoutNode) {
+        layoutChangeCount++
+    }
+
+    override fun getFocusDirection(keyEvent: KeyEvent): FocusDirection? {
+        TODO("Not yet implemented")
+    }
+
+    override var measureIteration: Long = 0
+    override val viewConfiguration: ViewConfiguration
+        get() = TODO("Not yet implemented")
+
+    override val sharedDrawScope = LayoutNodeDrawScope()
+}
diff --git a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilterCoroutineJobTest.kt b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilterCoroutineJobTest.kt
new file mode 100644
index 0000000..ddf5536
--- /dev/null
+++ b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilterCoroutineJobTest.kt
@@ -0,0 +1,110 @@
+/*
+ * 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.pointer
+
+import androidx.compose.foundation.gestures.awaitEachGesture
+import androidx.compose.foundation.gestures.awaitFirstDown
+import androidx.compose.foundation.gestures.waitForUpOrCancellation
+import androidx.compose.foundation.layout.Box
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.test.ExperimentalTestApi
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.unit.IntSize
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.LargeTest
+import java.util.concurrent.CountDownLatch
+import java.util.concurrent.TimeUnit
+import kotlin.test.assertEquals
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
+import org.junit.Assert.assertTrue
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+@OptIn(ExperimentalCoroutinesApi::class)
+class SuspendingPointerInputFilterCoroutineJobTest {
+    @OptIn(ExperimentalTestApi::class)
+    @get:Rule
+    val rule = createComposeRule(Dispatchers.Main)
+
+    @Test
+    @LargeTest
+    fun isPointerInputJobStillActive_cancelPointerEvent_assertsTrue() {
+        val latch = CountDownLatch(1)
+
+        var repeatActualNumber = 0
+        val repeatExpectedNumber = 4
+
+        // To create Pointer Events:
+        val emitter = PointerInputChangeEmitter()
+        val change = emitter.nextChange(Offset(5f, 5f))
+
+        // Used to manually trigger a PointerEvent created from our PointerInputChange.
+        val suspendingPointerInputModifierNode = SuspendingPointerInputModifierNode {
+            coroutineScope {
+                awaitEachGesture {
+                    // First down event (triggered)
+                    awaitFirstDown()
+                    // Up event won't ever come since we never trigger the event, times out as
+                    // a cancellation
+                    waitForUpOrCancellation()
+
+                    // By running this code after down/up, we are making sure the block of code
+                    // for handling pointer input events is still active despite the cancel pointer
+                    // input being called later.
+                    launch(start = CoroutineStart.UNDISPATCHED) {
+                        repeat(repeatExpectedNumber) {
+                            repeatActualNumber++
+                            delay(100)
+                        }
+                        latch.countDown()
+                    }
+                }
+            }
+        }
+
+        rule.setContent {
+            Box(
+                modifier = elementFor(
+                    key1 = Unit,
+                    instance = suspendingPointerInputModifierNode as Modifier.Node
+                )
+            )
+        }
+
+        rule.runOnIdle {
+            suspendingPointerInputModifierNode.onPointerEvent(
+                change.toPointerEvent(),
+                PointerEventPass.Main,
+                IntSize(10, 10)
+            )
+        }
+
+        suspendingPointerInputModifierNode.onCancelPointerInput()
+
+        val resultOfLatch = latch.await(3000, TimeUnit.MILLISECONDS)
+        assertTrue("Waiting for coroutine's tasks to finish", resultOfLatch)
+        assertEquals(repeatExpectedNumber, repeatActualNumber)
+    }
+}
diff --git a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilterTest.kt b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilterTest.kt
index 1d3593d..c521919 100644
--- a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilterTest.kt
+++ b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilterTest.kt
@@ -24,10 +24,7 @@
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.node.DelegatingNode
-import androidx.compose.ui.node.ModifierNodeElement
-import androidx.compose.ui.platform.InspectorInfo
 import androidx.compose.ui.platform.ValueElement
-import androidx.compose.ui.platform.debugInspectorInfo
 import androidx.compose.ui.platform.isDebugInspectorInfoEnabled
 import androidx.compose.ui.platform.testTag
 import androidx.compose.ui.semantics.elementFor
@@ -273,7 +270,7 @@
                 )
             }
 
-            // Triggers cancel event
+            // Manually cancels the current pointer input event.
             suspendingPointerInputModifierNode.onCancelPointerInput()
         }
 
@@ -305,15 +302,16 @@
         var currentEventAtEnd: PointerEvent? = null
         val results = Channel<PointerEvent>(Channel.UNLIMITED)
 
-        // Used to manually trigger a PointerEvent(s) created from our PointerInputChange(s).
+        // Used to manually trigger/test PointerEvents and other functionality.
         val suspendingPointerInputModifierNode = SuspendingPointerInputModifierNode {
             awaitPointerEventScope {
                 try {
                     // NOTE: This will never trigger 3 times. There are only two events
-                    // triggered followed by a onCancelPointerInput() call which doesn't trigger
-                    // an event because the previous event has down (press) set to false, so we
-                    // will always get an exception thrown with the last repeat's timeout
-                    // (we expect this).
+                    // triggered (a down [press] event followed by an event with down [press] set to
+                    // false). The resetPointerInputHandler() is called after that, but it won't
+                    // trigger a cancel event if the previous event has the down [press] set to
+                    // false. In this case, it does, so there are only ever two events, so the
+                    // withTimeout() will trigger the timeout (expected).
                     repeat(3) {
                         withTimeout(200) {
                             results.trySend(awaitPointerEvent())
@@ -334,7 +332,6 @@
                 )
             )
         }
-
         val bounds = IntSize(50, 50)
         val emitter1 = PointerInputChangeEmitter(0)
         val emitter2 = PointerInputChangeEmitter(1)
@@ -378,9 +375,9 @@
                 )
             }
 
-            // Manually triggers cancel event.
-            // Note: This will not trigger an event in the customPointerInput block because the
-            // previous events don't have any pressed pointers.
+            // Manually cancels the current pointer input event.
+            // Note: This will not trigger an event in the customPointerInput block because of the
+            // reasons listed above (previous event has down (press) set to false).
             suspendingPointerInputModifierNode.onCancelPointerInput()
         }
 
@@ -411,35 +408,48 @@
 
     @Test
     @MediumTest
-    fun testCancelledHandlerBlock() {
+    fun testCancelPointerInput() {
+        val firstEventCheckpointInfo =
+            Pair(3, "First pointer event triggered to create Job.")
+        val cancelEventCheckpointInfo =
+            Pair(5, "Cancel pointer event triggered (shouldn't cancel Job).")
+        val invalidEventCheckpointNumber =
+            Pair(-1, "Should never execute.")
+
         val counter = TestCounter()
 
-        // Used to manually trigger a PointerEvent(s) created from our PointerInputChange(s).
+        // Used to manually trigger/test PointerEvents and other functionality.
         val suspendingPointerInputModifierNode = SuspendingPointerInputModifierNode {
             try {
                 awaitPointerEventScope {
                     try {
-                        counter.expect(3, "about to call awaitPointerEvent")
+                        counter.expect(2, "Before awaitPointerEvent() call.")
 
-                        // With only one event triggered, this will stay stuck in the repeat
-                        // block until the Job is cancelled via
-                        // SuspendPointerInputModifierNode.resetHandling()
-                        repeat(2) {
+                        // With only two events triggered (press and cancel), this will stay stuck
+                        // in the repeat block until it is torn down, that is, until the
+                        // test is over.
+                        repeat(3) { repeatCount ->
                             awaitPointerEvent()
-                            counter.expect(
-                                4,
-                                "One and only pointer event triggered to create Job."
-                            )
+                            val checkpointInfo = when (repeatCount) {
+                                0 -> { firstEventCheckpointInfo }
+                                1 -> { cancelEventCheckpointInfo }
+                                else -> {
+                                    fail("Should never be three events.")
+                                    invalidEventCheckpointNumber
+                                }
+                            }
+                            counter.expect(checkpointInfo.first, checkpointInfo.second)
                         }
-
-                        fail("awaitPointerEvent returned; should have thrown for cancel")
+                        fail("awaitPointerEvent() run 3+ times in repeat() block, should only " +
+                            "have run twice (one event, one cancel).")
                     } finally {
-                        counter.expect(6, "inner finally block running")
+                        counter.expect(7, "Inner finally block runs after " +
+                            "teardown.")
                     }
                 }
             } finally {
-                counter.expect(7, "outer finally block running; inner " +
-                    "finally should have run")
+                counter.expect(8, "Outer finally block runs; inner finally " +
+                    "block should have already run.")
             }
         }
 
@@ -457,16 +467,13 @@
         val singleEventBounds = IntSize(20, 20)
 
         rule.runOnIdle {
+            // Because the pointer input handler is triggered lazily in
+            // SuspendPointerInputModifierNode, it will not be triggered until the first event
+            // comes in, so this will be the first counter checkpoint.
             counter.expect(
                 1,
-                "Job to handle pointer input not created yet; awaitPointerEvent should " +
-                    "be suspended"
-            )
-
-            counter.expect(
-                2,
-                "Trigger pointer input event to create Job for handing handle pointer" +
-                    " input (done lazily in SuspendPointerInputModifierNode)."
+                "Trigger pointer input handler through first pointer input event " +
+                    "(handler triggered lazily)."
             )
 
             suspendingPointerInputModifierNode.onPointerEvent(
@@ -475,12 +482,96 @@
                 singleEventBounds
             )
 
-            counter.expect(5, "before cancelling handler; awaitPointerEvent " +
+            counter.expect(4, "Before onCancelPointerInput() handler; awaitPointerEvent " +
                 "should be suspended")
 
-            // Cancels Job that manages pointer input events in SuspendPointerInputModifierNode.
+            // Manually cancels the current pointer input event.
+            suspendingPointerInputModifierNode.onCancelPointerInput()
+            counter.expect(6, "After onCancelPointerInput(), end of test, " +
+                " start teardown.")
+        }
+    }
+
+    @Test
+    @MediumTest
+    fun testResetHandlerBlock() {
+        val counter = TestCounter()
+
+        // Used to manually trigger/test PointerEvents and other functionality.
+        val suspendingPointerInputModifierNode = SuspendingPointerInputModifierNode {
+            try {
+                awaitPointerEventScope {
+                    try {
+                        counter.expect(2, "Before awaitPointerEvent() call.")
+
+                        // With only one event triggered (press) to kick start the handler, this
+                        // will stay stuck in the repeat block until it is torn down, that is,
+                        // until the test is over.
+                        repeat(2) { repeatCount ->
+                            awaitPointerEvent()
+                            when (repeatCount) {
+                                0 -> {
+                                    counter.expect(
+                                        3,
+                                        "First/only pointer event triggered."
+                                    )
+                                }
+                                else -> {
+                                    fail("Should never be two or more events.")
+                                    counter.expect(-1, "Should never execute.")
+                                }
+                            }
+                        }
+                        fail("awaitPointerEvent repeated twice; should have only happened once " +
+                            "and stayed suspended in repeat() waiting for a second event (that " +
+                            "should never arrive).")
+                    } finally {
+                        fail("inner finally shouldn't call during teardown since coroutine job " +
+                            "was cancelled with resetPointerInputHandler().")
+                    }
+                }
+            } finally {
+                counter.expect(5, "outer finally block runs after " +
+                    "resetPointerInputHandler().")
+            }
+        }
+
+        rule.setContent {
+            Box(
+                modifier = elementFor(
+                    key1 = Unit,
+                    instance = suspendingPointerInputModifierNode as Modifier.Node
+                )
+            )
+        }
+
+        val emitter = PointerInputChangeEmitter()
+        val singleEvent = emitter.nextChange(Offset(5f, 5f))
+        val singleEventBounds = IntSize(20, 20)
+
+        rule.runOnIdle {
+            // Because the pointer input handler is triggered lazily in
+            // SuspendPointerInputModifierNode, it will not be triggered until the first event
+            // comes in, so this will be the first counter checkpoint.
+            counter.expect(
+                1,
+                "Trigger pointer input handler through first pointer input event " +
+                    "(handler triggered lazily)."
+            )
+
+            suspendingPointerInputModifierNode.onPointerEvent(
+                singleEvent.toPointerEvent(),
+                PointerEventPass.Main,
+                singleEventBounds
+            )
+
+            counter.expect(4, "before resetPointerInputHandler(), handler should" +
+                "be suspended waiting for a second event (that never comes).")
+
+            // Cancels the pointer input handler in SuspendPointerInputModifierNode (and thus the
+            // Coroutine Job associated with it).
             suspendingPointerInputModifierNode.resetPointerInputHandler()
-            counter.expect(8, "after cancelling; finally blocks should have run")
+            counter.expect(6, "after resetPointerInputHandler(), end of test.")
         }
     }
 
@@ -774,72 +865,3 @@
         assertThat(events).hasSize(2)
     }
 }
-
-private fun PointerInputChange.toPointerEvent() = PointerEvent(listOf(this))
-
-private val PointerEvent.firstChange get() = changes.first()
-
-private class PointerInputChangeEmitter(id: Int = 0) {
-    val pointerId = PointerId(id.toLong())
-    var previousTime = 0L
-    var previousPosition = Offset.Zero
-    var previousPressed = false
-
-    fun nextChange(
-        position: Offset = Offset.Zero,
-        down: Boolean = true,
-        time: Long = 0
-    ): PointerInputChange {
-        return PointerInputChange(
-            id = pointerId,
-            time,
-            position,
-            down,
-            previousTime,
-            previousPosition,
-            previousPressed,
-            isInitiallyConsumed = false
-        ).also {
-            previousTime = time
-            previousPosition = position
-            previousPressed = down
-        }
-    }
-}
-
-private class TestCounter {
-    private var count = 0
-
-    fun expect(checkpoint: Int, message: String = "(no message)") {
-        val expected = count + 1
-        if (checkpoint != expected) {
-            fail("out of order event $checkpoint, expected $expected, $message")
-        }
-        count = expected
-    }
-}
-
-private fun elementFor(
-    key1: Any? = null,
-    instance: Modifier.Node
-) = object : ModifierNodeElement<Modifier.Node>() {
-    override fun InspectorInfo.inspectableProperties() {
-        debugInspectorInfo {
-            name = "pointerInput"
-            properties["key1"] = key1
-            properties["instance"] = instance
-        }
-    }
-
-    override fun create() = instance
-    override fun update(node: Modifier.Node) {}
-    override fun equals(other: Any?): Boolean {
-        if (this === other) return true
-        if (other !is SuspendPointerInputElement) return false
-        if (key1 != other.key1) return false
-        return true
-    }
-    override fun hashCode(): Int {
-        return key1?.hashCode() ?: 0
-    }
-}
diff --git a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/TestUtils.kt b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/TestUtils.kt
index af27c0d..fb92e8f 100644
--- a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/TestUtils.kt
+++ b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/TestUtils.kt
@@ -28,13 +28,17 @@
 import androidx.compose.ui.composed
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.layout.LayoutCoordinates
+import androidx.compose.ui.node.ModifierNodeElement
 import androidx.compose.ui.node.NodeCoordinator
 import androidx.compose.ui.node.PointerInputModifierNode
+import androidx.compose.ui.platform.InspectorInfo
+import androidx.compose.ui.platform.debugInspectorInfo
 import androidx.compose.ui.unit.IntSize
 import com.google.common.truth.FailureMetadata
 import com.google.common.truth.Subject
 import com.google.common.truth.Subject.Factory
 import com.google.common.truth.Truth
+import org.junit.Assert
 
 @OptIn(ExperimentalComposeUiApi::class)
 internal fun PointerInputEventData(
@@ -555,3 +559,73 @@
     type = this.type,
     scrollDelta = this.scrollDelta
 )
+
+// SuspendingPointerInputFilter test utilities
+internal fun PointerInputChange.toPointerEvent() = PointerEvent(listOf(this))
+
+internal val PointerEvent.firstChange get() = changes.first()
+
+internal class PointerInputChangeEmitter(id: Int = 0) {
+    val pointerId = PointerId(id.toLong())
+    var previousTime = 0L
+    var previousPosition = Offset.Zero
+    var previousPressed = false
+
+    fun nextChange(
+        position: Offset = Offset.Zero,
+        down: Boolean = true,
+        time: Long = 0
+    ): PointerInputChange {
+        return PointerInputChange(
+            id = pointerId,
+            time,
+            position,
+            down,
+            previousTime,
+            previousPosition,
+            previousPressed,
+            isInitiallyConsumed = false
+        ).also {
+            previousTime = time
+            previousPosition = position
+            previousPressed = down
+        }
+    }
+}
+
+internal class TestCounter {
+    private var count = 0
+
+    fun expect(checkpoint: Int, message: String = "(no message)") {
+        val expected = count + 1
+        if (checkpoint != expected) {
+            Assert.fail("out of order event $checkpoint, expected $expected, $message")
+        }
+        count = expected
+    }
+}
+
+internal fun elementFor(
+    key1: Any? = null,
+    instance: Modifier.Node
+) = object : ModifierNodeElement<Modifier.Node>() {
+    override fun InspectorInfo.inspectableProperties() {
+        debugInspectorInfo {
+            name = "pointerInput"
+            properties["key1"] = key1
+            properties["instance"] = instance
+        }
+    }
+
+    override fun create() = instance
+    override fun update(node: Modifier.Node) {}
+    override fun equals(other: Any?): Boolean {
+        if (this === other) return true
+        if (other !is SuspendPointerInputElement) return false
+        if (key1 != other.key1) return false
+        return true
+    }
+    override fun hashCode(): Int {
+        return key1?.hashCode() ?: 0
+    }
+}
diff --git a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/semantics/SemanticsTests.kt b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/semantics/SemanticsTests.kt
index 5731018..2c1d8dd 100644
--- a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/semantics/SemanticsTests.kt
+++ b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/semantics/SemanticsTests.kt
@@ -106,22 +106,6 @@
     }
 
     @Test
-    fun valueSemanticsAreEqual() {
-        assertEquals(
-            Modifier.semantics {
-                text = AnnotatedString("text")
-                contentDescription = "foo"
-                popup()
-            },
-            Modifier.semantics {
-                text = AnnotatedString("text")
-                contentDescription = "foo"
-                popup()
-            }
-        )
-    }
-
-    @Test
     fun isTraversalGroupProperty() {
         rule.setContent {
             Surface(
@@ -1083,10 +1067,9 @@
     properties: SemanticsPropertyReceiver.() -> Unit
 ): CoreSemanticsModifierNode {
     return CoreSemanticsModifierNode(
-        SemanticsConfiguration().apply {
-            isMergingSemanticsOfDescendants = mergeDescendants
-            properties()
-        }
+        mergeDescendants = mergeDescendants,
+        isClearingSemantics = false,
+        properties = properties,
     )
 }
 
diff --git a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt
index 497be6e..da63070 100644
--- a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt
+++ b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt
@@ -911,13 +911,20 @@
         }
     }
 
-    private fun convertMeasureSpec(measureSpec: Int): Pair<Int, Int> {
+    @Suppress("NOTHING_TO_INLINE")
+    private inline operator fun ULong.component1() = (this shr 32).toInt()
+    @Suppress("NOTHING_TO_INLINE")
+    private inline operator fun ULong.component2() = (this and 0xFFFFFFFFUL).toInt()
+
+    private fun pack(a: Int, b: Int) = (a.toULong() shl 32 or b.toULong())
+
+    private fun convertMeasureSpec(measureSpec: Int): ULong {
         val mode = MeasureSpec.getMode(measureSpec)
         val size = MeasureSpec.getSize(measureSpec)
         return when (mode) {
-            MeasureSpec.EXACTLY -> size to size
-            MeasureSpec.UNSPECIFIED -> 0 to Constraints.Infinity
-            MeasureSpec.AT_MOST -> 0 to size
+            MeasureSpec.EXACTLY -> pack(size, size)
+            MeasureSpec.UNSPECIFIED -> pack(0, Constraints.Infinity)
+            MeasureSpec.AT_MOST -> pack(0, size)
             else -> throw IllegalStateException()
         }
     }
diff --git a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt
index ad8183c..3baff06 100644
--- a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt
+++ b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt
@@ -74,7 +74,6 @@
 import androidx.compose.ui.semantics.SemanticsOwner
 import androidx.compose.ui.semantics.SemanticsProperties
 import androidx.compose.ui.semantics.SemanticsPropertiesAndroid
-import androidx.compose.ui.semantics.collapsedSemantics
 import androidx.compose.ui.semantics.getOrNull
 import androidx.compose.ui.state.ToggleableState
 import androidx.compose.ui.text.AnnotatedString
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/Vector.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/Vector.kt
index 562f991..0e155ef 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/Vector.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/Vector.kt
@@ -19,7 +19,6 @@
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.setValue
-import androidx.compose.ui.geometry.Size
 import androidx.compose.ui.geometry.Size.Companion.Unspecified
 import androidx.compose.ui.graphics.BlendMode
 import androidx.compose.ui.graphics.Brush
@@ -49,12 +48,6 @@
 
 val EmptyPath = emptyList<PathNode>()
 
-inline fun PathData(block: PathBuilder.() -> Unit): List<PathNode> =
-    with(PathBuilder()) {
-        block()
-        getNodes()
-    }
-
 const val DefaultPathName = ""
 const val DefaultStrokeLineWidth = 0.0f
 const val DefaultStrokeLineMiter = 4.0f
@@ -68,15 +61,18 @@
 val DefaultTintColor = Color.Transparent
 val DefaultFillType = PathFillType.NonZero
 
-fun addPathNodes(pathStr: String?): List<PathNode> =
-    if (pathStr == null) {
-        EmptyPath
-    } else {
-        PathParser().parsePathString(pathStr).toNodes()
-    }
+inline fun PathData(block: PathBuilder.() -> Unit) = with(PathBuilder()) {
+    block()
+    getNodes()
+}
+
+fun addPathNodes(pathStr: String?) = if (pathStr == null) {
+    EmptyPath
+} else {
+    PathParser().parsePathString(pathStr).toNodes()
+}
 
 sealed class VNode {
-
     /**
      * Callback invoked whenever the node in the vector tree is modified in a way that would
      * change the output of the Vector
@@ -91,7 +87,6 @@
 }
 
 internal class VectorComponent : VNode() {
-
     val root = GroupComponent().apply {
         pivotX = 0.0f
         pivotY = 0.0f
@@ -111,7 +106,7 @@
         invalidateCallback.invoke()
     }
 
-    private var isDirty: Boolean = true
+    private var isDirty = true
 
     private val cacheDrawScope = DrawCache()
 
@@ -119,7 +114,7 @@
 
     internal var intrinsicColorFilter: ColorFilter? by mutableStateOf(null)
 
-    var viewportWidth: Float = 0f
+    var viewportWidth = 0f
         set(value) {
             if (field != value) {
                 field = value
@@ -127,7 +122,7 @@
             }
         }
 
-    var viewportHeight: Float = 0f
+    var viewportHeight = 0f
         set(value) {
             if (field != value) {
                 field = value
@@ -135,7 +130,7 @@
             }
         }
 
-    private var previousDrawSize: Size = Unspecified
+    private var previousDrawSize = Unspecified
 
     /**
      * Cached lambda used to avoid allocating the lambda on each draw invocation
@@ -178,8 +173,7 @@
 }
 
 internal class PathComponent : VNode() {
-
-    var name: String = DefaultPathName
+    var name = DefaultPathName
         set(value) {
             field = value
             invalidate()
@@ -191,33 +185,33 @@
             invalidate()
         }
 
-    var fillAlpha: Float = 1.0f
+    var fillAlpha = 1.0f
         set(value) {
             field = value
             invalidate()
         }
 
-    var pathData: List<PathNode> = EmptyPath
+    var pathData = EmptyPath
         set(value) {
             field = value
             isPathDirty = true
             invalidate()
         }
 
-    var pathFillType: PathFillType = DefaultFillType
+    var pathFillType = DefaultFillType
         set(value) {
             field = value
             renderPath.fillType = value
             invalidate()
         }
 
-    var strokeAlpha: Float = 1.0f
+    var strokeAlpha = 1.0f
         set(value) {
             field = value
             invalidate()
         }
 
-    var strokeLineWidth: Float = DefaultStrokeLineWidth
+    var strokeLineWidth = DefaultStrokeLineWidth
         set(value) {
             field = value
             invalidate()
@@ -229,28 +223,28 @@
             invalidate()
         }
 
-    var strokeLineCap: StrokeCap = DefaultStrokeLineCap
+    var strokeLineCap = DefaultStrokeLineCap
         set(value) {
             field = value
             isStrokeDirty = true
             invalidate()
         }
 
-    var strokeLineJoin: StrokeJoin = DefaultStrokeLineJoin
+    var strokeLineJoin = DefaultStrokeLineJoin
         set(value) {
             field = value
             isStrokeDirty = true
             invalidate()
         }
 
-    var strokeLineMiter: Float = DefaultStrokeLineMiter
+    var strokeLineMiter = DefaultStrokeLineMiter
         set(value) {
             field = value
             isStrokeDirty = true
             invalidate()
         }
 
-    var trimPathStart: Float = DefaultTrimPathStart
+    var trimPathStart = DefaultTrimPathStart
         set(value) {
             if (field != value) {
                 field = value
@@ -259,7 +253,7 @@
             }
         }
 
-    var trimPathEnd: Float = DefaultTrimPathEnd
+    var trimPathEnd = DefaultTrimPathEnd
         set(value) {
             if (field != value) {
                 field = value
@@ -268,7 +262,7 @@
             }
         }
 
-    var trimPathOffset: Float = DefaultTrimPathOffset
+    var trimPathOffset = DefaultTrimPathOffset
         set(value) {
             if (field != value) {
                 field = value
@@ -279,13 +273,12 @@
 
     private var isPathDirty = true
     private var isStrokeDirty = true
-    private var isTrimPathDirty = true
+    private var isTrimPathDirty = false
 
     private var strokeStyle: Stroke? = null
 
     private val path = Path()
-
-    private val renderPath = Path()
+    private var renderPath = path
 
     private val pathMeasure: PathMeasure by lazy(LazyThreadSafetyMode.NONE) { PathMeasure() }
 
@@ -296,14 +289,18 @@
     }
 
     private fun updateRenderPath() {
-        // Rewind unsets the filltype so reset it here
-        val fillType = renderPath.fillType
-        renderPath.rewind()
-        renderPath.fillType = fillType
-
         if (trimPathStart == DefaultTrimPathStart && trimPathEnd == DefaultTrimPathEnd) {
-            renderPath.addPath(path)
+            renderPath = path
         } else {
+            if (renderPath == path) {
+                renderPath = Path()
+            } else {
+                // Rewind unsets the fill type so reset it here
+                val fillType = renderPath.fillType
+                renderPath.rewind()
+                renderPath.fillType = fillType
+            }
+
             pathMeasure.setPath(path, false)
             val length = pathMeasure.length
             val start = ((trimPathStart + trimPathOffset) % 1f) * length
@@ -339,18 +336,15 @@
         }
     }
 
-    override fun toString(): String {
-        return path.toString()
-    }
+    override fun toString() = path.toString()
 }
 
 internal class GroupComponent : VNode() {
-
     private var groupMatrix: Matrix? = null
 
     private val children = mutableListOf<VNode>()
 
-    var clipPathData: List<PathNode> = EmptyPath
+    var clipPathData = EmptyPath
         set(value) {
             field = value
             isClipPathDirty = true
@@ -387,61 +381,64 @@
 
     // If the name changes we should re-draw as individual nodes could
     // be modified based off of this name parameter.
-    var name: String = DefaultGroupName
+    var name = DefaultGroupName
         set(value) {
             field = value
             invalidate()
         }
 
-    var rotation: Float = DefaultRotation
+    var rotation = DefaultRotation
         set(value) {
             field = value
             isMatrixDirty = true
             invalidate()
         }
 
-    var pivotX: Float = DefaultPivotX
+    var pivotX = DefaultPivotX
         set(value) {
             field = value
             isMatrixDirty = true
             invalidate()
         }
 
-    var pivotY: Float = DefaultPivotY
+    var pivotY = DefaultPivotY
         set(value) {
             field = value
             isMatrixDirty = true
             invalidate()
         }
 
-    var scaleX: Float = DefaultScaleX
+    var scaleX = DefaultScaleX
         set(value) {
             field = value
             isMatrixDirty = true
             invalidate()
         }
 
-    var scaleY: Float = DefaultScaleY
+    var scaleY = DefaultScaleY
         set(value) {
             field = value
             isMatrixDirty = true
             invalidate()
         }
 
-    var translationX: Float = DefaultTranslationX
+    var translationX = DefaultTranslationX
         set(value) {
             field = value
             isMatrixDirty = true
             invalidate()
         }
 
-    var translationY: Float = DefaultTranslationY
+    var translationY = DefaultTranslationY
         set(value) {
             field = value
             isMatrixDirty = true
             invalidate()
         }
 
+    val numChildren: Int
+        get() = children.size
+
     private var isMatrixDirty = true
 
     private fun updateMatrix() {
@@ -528,9 +525,6 @@
         }
     }
 
-    val numChildren: Int
-        get() = children.size
-
     override fun toString(): String {
         val sb = StringBuilder().append("VGroup: ").append(name)
         children.fastForEach { node ->
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/HitPathTracker.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/HitPathTracker.kt
index 9a7ddac..abd9b6a 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/HitPathTracker.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/HitPathTracker.kt
@@ -376,12 +376,21 @@
 
         @OptIn(ExperimentalComposeUiApi::class)
         for ((key, change) in changes) {
-            // Filter for changes that are associated with pointer ids that are relevant to this
-            // node
-            if (key in pointerIds) {
+            val keyValue = key.value
+
+            // Using for (key in pointerIds) causes key to be boxed and create allocations
+            var keyInPointerIds = false
+            for (i in 0..pointerIds.lastIndex) {
+                if (pointerIds[i].value == keyValue) {
+                    keyInPointerIds = true
+                    break
+                }
+            }
+
+            if (keyInPointerIds) {
                 // And translate their position relative to the parent coordinates, to give us a
                 // change local to the PointerInputFilter's coordinates
-                val historical = mutableListOf<HistoricalChange>()
+                val historical = ArrayList<HistoricalChange>(change.historical.size)
                 change.historical.fastForEach {
                     historical.add(
                         HistoricalChange(
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt
index a3d34a1..96c06cc 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt
@@ -602,9 +602,6 @@
         dispatchPointerEvent(cancelEvent, PointerEventPass.Final)
 
         lastPointerEvent = null
-
-        // Cancels existing coroutine (Job) handling events.
-        resetPointerInputHandler()
     }
 
     override suspend fun <R> awaitPointerEventScope(
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/BackwardsCompatNode.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/BackwardsCompatNode.kt
index 88b94ea..533ae5f 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/BackwardsCompatNode.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/BackwardsCompatNode.kt
@@ -59,6 +59,7 @@
 import androidx.compose.ui.modifier.modifierLocalMapOf
 import androidx.compose.ui.semantics.SemanticsConfiguration
 import androidx.compose.ui.semantics.SemanticsModifier
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.IntSize
@@ -352,8 +353,11 @@
         }
     }
 
-    override val semanticsConfiguration: SemanticsConfiguration
-        get() = (element as SemanticsModifier).semanticsConfiguration
+    override fun SemanticsPropertyReceiver.applySemantics() {
+        val config = (element as SemanticsModifier).semanticsConfiguration
+        val toMergeInto = (this as SemanticsConfiguration)
+        toMergeInto.collapsePeer(config)
+    }
 
     override fun onPointerEvent(
         pointerEvent: PointerEvent,
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
index e42df1f..aa215e9 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
@@ -52,6 +52,7 @@
 import androidx.compose.ui.platform.LocalViewConfiguration
 import androidx.compose.ui.platform.ViewConfiguration
 import androidx.compose.ui.platform.simpleIdentityToString
+import androidx.compose.ui.semantics.SemanticsConfiguration
 import androidx.compose.ui.semantics.generateSemanticsId
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Density
@@ -65,6 +66,8 @@
  */
 private const val DebugChanges = false
 
+private val DefaultDensity = Density(1f)
+
 /**
  * An element in the layout hierarchy, built with compose UI.
  */
@@ -392,6 +395,37 @@
         invalidateMeasurements()
     }
 
+    private var _collapsedSemantics: SemanticsConfiguration? = null
+    internal fun invalidateSemantics() {
+        _collapsedSemantics = null
+        // TODO(lmr): this ends up scheduling work that diffs the entire tree, but we should
+        //  eventually move to marking just this node as invalidated since we are invalidating
+        //  on a per-node level. This should preserve current behavior for now.
+        requireOwner().onSemanticsChange()
+    }
+    internal val collapsedSemantics: SemanticsConfiguration?
+        get() {
+            if (!nodes.has(Nodes.Semantics) || _collapsedSemantics != null) {
+                return _collapsedSemantics
+            }
+
+            var config = SemanticsConfiguration()
+            requireOwner().snapshotObserver.observeSemanticsReads(this) {
+                nodes.tailToHead(Nodes.Semantics) {
+                    if (it.shouldClearDescendantSemantics) {
+                        config = SemanticsConfiguration()
+                        config.isClearingSemantics = true
+                    }
+                    if (it.shouldMergeDescendantSemantics) {
+                        config.isMergingSemanticsOfDescendants = true
+                    }
+                    with(config) { with(it) { applySemantics() } }
+                }
+            }
+            _collapsedSemantics = config
+            return config
+        }
+
     /**
      * Set the [Owner] of this LayoutNode. This LayoutNode must not already be attached.
      * [owner] must match its [parent].[owner].
@@ -419,7 +453,7 @@
         this.owner = owner
         this.depth = (parent?.depth ?: -1) + 1
         if (nodes.has(Nodes.Semantics)) {
-            owner.onSemanticsChange()
+            invalidateSemantics()
         }
         owner.onAttach(this)
 
@@ -469,7 +503,7 @@
         onDetach?.invoke(owner)
 
         if (nodes.has(Nodes.Semantics)) {
-            owner.onSemanticsChange()
+            invalidateSemantics()
         }
         nodes.detach()
         owner.onDetach(this)
@@ -595,7 +629,7 @@
     /**
      * The screen density to be used by this layout.
      */
-    override var density: Density = Density(1f)
+    override var density: Density = DefaultDensity
         set(value) {
             if (field != value) {
                 field = value
@@ -1139,10 +1173,8 @@
     fun invalidateSubtree(isRootOfInvalidation: Boolean = true) {
         if (isRootOfInvalidation) {
             parent?.invalidateLayer()
-            // Invalidate semantics. We can do this once because there isn't a node-by-node
-            // invalidation mechanism.
-            requireOwner().onSemanticsChange()
         }
+        invalidateSemantics()
         requestRemeasure()
         nodes.headToTail(Nodes.Layout) {
             it.requireCoordinator(Nodes.Layout).layer?.invalidate()
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeChain.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeChain.kt
index 2b2847f..9043a07 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeChain.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeChain.kt
@@ -743,7 +743,8 @@
 private fun Modifier.fillVector(
     result: MutableVector<Modifier.Element>
 ): MutableVector<Modifier.Element> {
-    val stack = MutableVector<Modifier>(result.size).also { it.add(this) }
+    val capacity = result.size.coerceAtLeast(16)
+    val stack = MutableVector<Modifier>(capacity).also { it.add(this) }
     while (stack.isNotEmpty()) {
         when (val next = stack.removeAt(stack.size - 1)) {
             is CombinedModifier -> {
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeCoordinator.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeCoordinator.kt
index b0abc9f..6519bf8 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeCoordinator.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeCoordinator.kt
@@ -39,7 +39,6 @@
 import androidx.compose.ui.layout.Placeable
 import androidx.compose.ui.layout.findRootCoordinates
 import androidx.compose.ui.layout.positionInRoot
-import androidx.compose.ui.semantics.collapsedSemantics
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.IntOffset
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OwnerSnapshotObserver.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OwnerSnapshotObserver.kt
index 22391a4..689bc64 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OwnerSnapshotObserver.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OwnerSnapshotObserver.kt
@@ -39,6 +39,12 @@
         }
     }
 
+    private val onCommitAffectingSemantics: (LayoutNode) -> Unit = { layoutNode ->
+        if (layoutNode.isValidOwnerScope) {
+            layoutNode.invalidateSemantics()
+        }
+    }
+
     private val onCommitAffectingLayout: (LayoutNode) -> Unit = { layoutNode ->
         if (layoutNode.isValidOwnerScope) {
             layoutNode.requestRelayout()
@@ -108,6 +114,13 @@
         }
     }
 
+    internal fun observeSemanticsReads(
+        node: LayoutNode,
+        block: () -> Unit
+    ) {
+        observeReads(node, onCommitAffectingSemantics, block)
+    }
+
     /**
      * Observe snapshot reads for any target, allowing consumers to determine how to respond
      * to state changes.
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/SemanticsModifierNode.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/SemanticsModifierNode.kt
index 8c80e15..1cc3317 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/SemanticsModifierNode.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/SemanticsModifierNode.kt
@@ -21,6 +21,10 @@
 import androidx.compose.ui.layout.boundsInRoot
 import androidx.compose.ui.semantics.SemanticsActions
 import androidx.compose.ui.semantics.SemanticsConfiguration
+import androidx.compose.ui.semantics.SemanticsNode
+import androidx.compose.ui.semantics.SemanticsOwner
+import androidx.compose.ui.semantics.SemanticsPropertyKey
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.semantics.getOrNull
 
 /**
@@ -32,31 +36,64 @@
  */
 interface SemanticsModifierNode : DelegatableNode {
     /**
-     * The SemanticsConfiguration holds substantive data, especially a list of key/value pairs
-     * such as (label -> "buttonName").
+     * Clears the semantics of all the descendant nodes and sets new semantics.
+     *
+     * In the merged semantics tree, this clears the semantic information provided
+     * by the node's descendants (but not those of the layout node itself, if any)
+     * In the unmerged tree, the semantics node is marked with
+     * "[SemanticsConfiguration.isClearingSemantics]", but nothing is actually cleared.
+     *
+     * Compose's default semantics provide baseline usability for screen-readers, but this can be
+     * used to provide a more polished screen-reader experience: for example, clearing the
+     * semantics of a group of tiny buttons, and setting equivalent actions on the card
+     * containing them.
      */
-    val semanticsConfiguration: SemanticsConfiguration
+    @get:Suppress("GetterSetterNames")
+    val shouldClearDescendantSemantics: Boolean
+        get() = false
+
+    /**
+     * Whether the semantic information provided by this node and
+     * its descendants should be treated as one logical entity.
+     * Most commonly set on screen-reader-focusable items such as buttons or form fields.
+     * In the merged semantics tree, all descendant nodes (except those themselves marked
+     * [shouldMergeDescendantSemantics]) will disappear from the tree, and their properties
+     * will get merged into the parent's configuration (using a merging algorithm that varies based
+     * on the type of property -- for example, text properties will get concatenated, separated
+     * by commas). In the unmerged semantics tree, the node is simply marked with
+     * [SemanticsConfiguration.isMergingSemanticsOfDescendants].
+     */
+    @get:Suppress("GetterSetterNames")
+    val shouldMergeDescendantSemantics: Boolean
+        get() = false
+
+    /**
+     * Add semantics key/value pairs to the layout node, for use in testing, accessibility, etc.
+     *
+     * The [SemanticsPropertyReceiver] provides "key = value"-style setters for any
+     * [SemanticsPropertyKey]. Additionally, chaining multiple semantics modifiers is
+     * also a supported style.
+     *
+     * The resulting semantics produce two [SemanticsNode] trees:
+     *
+     * The "unmerged tree" rooted at [SemanticsOwner.unmergedRootSemanticsNode] has one
+     * [SemanticsNode] per layout node which has any [SemanticsModifierNode] on it.  This
+     * [SemanticsNode] contains all the properties set in all the [SemanticsModifierNode]s on
+     * that node.
+     *
+     * The "merged tree" rooted at [SemanticsOwner.rootSemanticsNode] has equal-or-fewer nodes: it
+     * simplifies the structure based on [shouldMergeDescendantSemantics] and
+     * [shouldClearDescendantSemantics].  For most purposes (especially accessibility, or the
+     * testing of accessibility), the merged semantics tree should be used.
+     */
+    fun SemanticsPropertyReceiver.applySemantics()
 }
 
-fun SemanticsModifierNode.invalidateSemantics() = requireOwner().onSemanticsChange()
-
-internal val SemanticsModifierNode.useMinimumTouchTarget: Boolean
-    get() = semanticsConfiguration.getOrNull(SemanticsActions.OnClick) != null
+fun SemanticsModifierNode.invalidateSemantics() = requireLayoutNode().invalidateSemantics()
 
 internal val SemanticsConfiguration.useMinimumTouchTarget: Boolean
     get() = getOrNull(SemanticsActions.OnClick) != null
 
-internal fun SemanticsModifierNode.touchBoundsInRoot(): Rect {
-    if (!node.isAttached) {
-        return Rect.Zero
-    }
-    if (!useMinimumTouchTarget) {
-        return requireCoordinator(Nodes.Semantics).boundsInRoot()
-    }
-
-    return requireCoordinator(Nodes.Semantics).touchBoundsInRoot()
-}
-
 internal fun Modifier.Node.touchBoundsInRoot(useMinimumTouchTarget: Boolean): Rect {
     if (!node.isAttached) {
         return Rect.Zero
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsConfiguration.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsConfiguration.kt
index 0ca7a3d..922af3f 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsConfiguration.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsConfiguration.kt
@@ -59,7 +59,15 @@
     }
 
     override fun <T> set(key: SemanticsPropertyKey<T>, value: T) {
-        props[key] = value
+        if (value is AccessibilityAction<*> && contains(key)) {
+            val prev = props[key] as AccessibilityAction<*>
+            props[key] = AccessibilityAction(
+                value.label ?: prev.label,
+                value.action ?: prev.action
+            )
+        } else {
+            props[key] = value
+        }
     }
 
     operator fun <T> contains(key: SemanticsPropertyKey<T>): Boolean {
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsModifier.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsModifier.kt
index 723d099..688113e 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsModifier.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsModifier.kt
@@ -47,16 +47,10 @@
 }
 
 internal object EmptySemanticsElement :
-    ModifierNodeElement<CoreSemanticsModifierNode>() {
+    ModifierNodeElement<EmptySemanticsModifier>() {
+    override fun create() = EmptySemanticsModifier()
 
-    private val semanticsConfiguration = SemanticsConfiguration().apply {
-        isMergingSemanticsOfDescendants = false
-        isClearingSemantics = false
-    }
-
-    override fun create() = CoreSemanticsModifierNode(semanticsConfiguration)
-
-    override fun update(node: CoreSemanticsModifierNode) {}
+    override fun update(node: EmptySemanticsModifier) {}
 
     override fun InspectorInfo.inspectableProperties() {
         // Nothing to inspect.
@@ -67,8 +61,22 @@
 }
 
 internal class CoreSemanticsModifierNode(
-    override var semanticsConfiguration: SemanticsConfiguration
-) : Modifier.Node(), SemanticsModifierNode
+    var mergeDescendants: Boolean,
+    var isClearingSemantics: Boolean,
+    var properties: SemanticsPropertyReceiver.() -> Unit
+) : Modifier.Node(), SemanticsModifierNode {
+    override val shouldClearDescendantSemantics: Boolean
+        get() = isClearingSemantics
+    override val shouldMergeDescendantSemantics: Boolean
+        get() = mergeDescendants
+    override fun SemanticsPropertyReceiver.applySemantics() {
+        properties()
+    }
+}
+
+internal class EmptySemanticsModifier : Modifier.Node(), SemanticsModifierNode {
+    override fun SemanticsPropertyReceiver.applySemantics() {}
+}
 
 /**
  * Add semantics key/value pairs to the layout node, for use in testing, accessibility, etc.
@@ -110,30 +118,33 @@
 
 // Implement SemanticsModifier to allow tooling to inspect the semantics configuration
 internal data class AppendedSemanticsElement(
-    override val semanticsConfiguration: SemanticsConfiguration
+    val mergeDescendants: Boolean,
+    val properties: (SemanticsPropertyReceiver.() -> Unit)
 ) : ModifierNodeElement<CoreSemanticsModifierNode>(), SemanticsModifier {
 
-    constructor(
-        mergeDescendants: Boolean,
-        properties: (SemanticsPropertyReceiver.() -> Unit)
-    ) : this(
-        SemanticsConfiguration().apply {
+    // This should only ever be called by layout inspector
+    override val semanticsConfiguration: SemanticsConfiguration
+        get() = SemanticsConfiguration().apply {
             isMergingSemanticsOfDescendants = mergeDescendants
             properties()
         }
-    )
 
     override fun create(): CoreSemanticsModifierNode {
-        return CoreSemanticsModifierNode(semanticsConfiguration)
+        return CoreSemanticsModifierNode(
+            mergeDescendants = mergeDescendants,
+            isClearingSemantics = false,
+            properties = properties
+        )
     }
 
     override fun update(node: CoreSemanticsModifierNode) {
-        node.semanticsConfiguration = semanticsConfiguration
+        node.mergeDescendants = mergeDescendants
+        node.properties = properties
     }
 
     override fun InspectorInfo.inspectableProperties() {
         name = "semantics"
-        properties["mergeDescendants"] = semanticsConfiguration.isMergingSemanticsOfDescendants
+        properties["mergeDescendants"] = mergeDescendants
         addSemanticsPropertiesFrom(semanticsConfiguration)
     }
 }
@@ -159,24 +170,27 @@
 
 // Implement SemanticsModifier to allow tooling to inspect the semantics configuration
 internal data class ClearAndSetSemanticsElement(
-    override val semanticsConfiguration: SemanticsConfiguration
+    val properties: SemanticsPropertyReceiver.() -> Unit
 ) : ModifierNodeElement<CoreSemanticsModifierNode>(), SemanticsModifier {
 
-    init {
-        semanticsConfiguration.isMergingSemanticsOfDescendants = false
-        semanticsConfiguration.isClearingSemantics = true
-    }
-
-    constructor(properties: (SemanticsPropertyReceiver.() -> Unit)) : this(
-        SemanticsConfiguration().apply(properties)
-    )
+    // This should only ever be called by layout inspector
+    override val semanticsConfiguration: SemanticsConfiguration
+        get() = SemanticsConfiguration().apply {
+            isMergingSemanticsOfDescendants = false
+            isClearingSemantics = true
+            properties()
+        }
 
     override fun create(): CoreSemanticsModifierNode {
-        return CoreSemanticsModifierNode(semanticsConfiguration)
+        return CoreSemanticsModifierNode(
+            mergeDescendants = false,
+            isClearingSemantics = true,
+            properties = properties
+        )
     }
 
     override fun update(node: CoreSemanticsModifierNode) {
-        node.semanticsConfiguration = semanticsConfiguration
+        node.properties = properties
     }
 
     override fun InspectorInfo.inspectableProperties() {
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsNode.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsNode.kt
index 41cdc4f..bb78b7e 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsNode.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsNode.kt
@@ -402,7 +402,9 @@
         }
         val fakeNode = SemanticsNode(
             outerSemanticsNode = object : SemanticsModifierNode, Modifier.Node() {
-                override val semanticsConfiguration = configuration
+                override fun SemanticsPropertyReceiver.applySemantics() {
+                    properties()
+                }
             },
             mergingEnabled = false,
             layoutNode = LayoutNode(
@@ -427,25 +429,9 @@
     }
 }
 
-internal val LayoutNode.collapsedSemantics: SemanticsConfiguration?
-    get() {
-        var result: SemanticsConfiguration? = null
-        nodes.tailToHead(Nodes.Semantics) {
-            val current = result
-            if (current == null || it.semanticsConfiguration.isClearingSemantics) {
-                result = it.semanticsConfiguration
-            } else {
-                result = it.semanticsConfiguration.copy().also {
-                    it.collapsePeer(current)
-                }
-            }
-        }
-        return result
-    }
-
 internal val LayoutNode.outerMergingSemantics: SemanticsModifierNode?
     get() = nodes.firstFromHead(Nodes.Semantics) {
-        it.semanticsConfiguration.isMergingSemanticsOfDescendants
+        it.shouldMergeDescendantSemantics
     }
 
 /**
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsOwner.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsOwner.kt
index a5d43a5..7a39405 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsOwner.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsOwner.kt
@@ -18,6 +18,7 @@
 
 import androidx.compose.ui.ExperimentalComposeUiApi
 import androidx.compose.ui.node.LayoutNode
+import androidx.compose.ui.node.Nodes
 import androidx.compose.ui.util.fastForEach
 
 /**
@@ -37,7 +38,16 @@
 
     val unmergedRootSemanticsNode: SemanticsNode
         get() {
-            return SemanticsNode(rootNode, mergingEnabled = false)
+            return SemanticsNode(
+                outerSemanticsNode = rootNode.nodes.head(Nodes.Semantics)!!.node,
+                layoutNode = rootNode,
+                mergingEnabled = false,
+                // Forcing an empty SemanticsConfiguration here since the root node will always
+                // have an empty config, but if we don't pass this in explicitly here it will try
+                // to call `rootNode.collapsedSemantics` which will fail because the LayoutNode
+                // is not yet attached when this getter is first called.
+                unmergedConfig = SemanticsConfiguration()
+            )
         }
 }
 
diff --git a/compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/DelegatingNodeTest.kt b/compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/DelegatingNodeTest.kt
index 2fc9795..698d042 100644
--- a/compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/DelegatingNodeTest.kt
+++ b/compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/DelegatingNodeTest.kt
@@ -21,7 +21,7 @@
 import androidx.compose.ui.layout.Measurable
 import androidx.compose.ui.layout.MeasureResult
 import androidx.compose.ui.layout.MeasureScope
-import androidx.compose.ui.semantics.SemanticsConfiguration
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.unit.Constraints
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -830,8 +830,7 @@
 }
 
 class SemanticsMod(val id: String = "") : SemanticsModifierNode, Modifier.Node() {
-    override val semanticsConfiguration: SemanticsConfiguration
-        get() = SemanticsConfiguration()
+    override fun SemanticsPropertyReceiver.applySemantics() { }
     override fun toString(): String {
         return "SemanticsMod($id)"
     }
diff --git a/compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/LayoutNodeTest.kt b/compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/LayoutNodeTest.kt
index 586d600..df004df 100644
--- a/compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/LayoutNodeTest.kt
+++ b/compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/LayoutNodeTest.kt
@@ -61,6 +61,7 @@
 import androidx.compose.ui.platform.invertTo
 import androidx.compose.ui.semantics.SemanticsConfiguration
 import androidx.compose.ui.semantics.SemanticsModifier
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
 import androidx.compose.ui.text.ExperimentalTextApi
 import androidx.compose.ui.text.font.Font
 import androidx.compose.ui.text.font.FontFamily
@@ -1382,12 +1383,11 @@
 
     @Test
     fun hitTestSemantics_pointerInMinimumTouchTarget_closestHit() {
-        val semanticsConfiguration = SemanticsConfiguration()
         val semanticsNode1 = object : SemanticsModifierNode, Modifier.Node() {
-            override val semanticsConfiguration: SemanticsConfiguration = semanticsConfiguration
+            override fun SemanticsPropertyReceiver.applySemantics() { }
         }
         val semanticsNode2 = object : SemanticsModifierNode, Modifier.Node() {
-            override val semanticsConfiguration: SemanticsConfiguration = semanticsConfiguration
+            override fun SemanticsPropertyReceiver.applySemantics() { }
         }
         data class TestSemanticsElement(
             private val node: Modifier.Node
diff --git a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionDragHandler.kt b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionDragHandler.kt
index 3328406..40561ea 100644
--- a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionDragHandler.kt
+++ b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionDragHandler.kt
@@ -24,6 +24,7 @@
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.input.pointer.pointerInput
 import androidx.compose.ui.input.pointer.util.VelocityTracker
+import androidx.compose.ui.input.pointer.util.addPointerInputChange
 import androidx.compose.ui.platform.debugInspectorInfo
 import androidx.compose.ui.unit.Velocity
 import kotlinx.coroutines.channels.Channel
@@ -104,7 +105,7 @@
                 )
             }
         ) { change, dragAmount ->
-            velocityTracker.addPosition(change.uptimeMillis, change.position)
+            velocityTracker.addPointerInputChange(change)
             // As dragging is done, pass the dragAmount to update the MotionLayout progress.
             dragChannel.trySend(MotionDragState.onDrag(dragAmount))
         }
diff --git a/constraintlayout/constraintlayout-core/src/main/java/androidx/constraintlayout/core/motion/utils/StopLogicEngine.java b/constraintlayout/constraintlayout-core/src/main/java/androidx/constraintlayout/core/motion/utils/StopLogicEngine.java
index 0982b43..40f75d0 100644
--- a/constraintlayout/constraintlayout-core/src/main/java/androidx/constraintlayout/core/motion/utils/StopLogicEngine.java
+++ b/constraintlayout/constraintlayout-core/src/main/java/androidx/constraintlayout/core/motion/utils/StopLogicEngine.java
@@ -34,6 +34,7 @@
     private boolean mBackwards = false;
     private float mStartPosition;
     private float mLastPosition;
+    private float mLastTime;
     @SuppressWarnings("unused")
     private boolean mDone = false;
     private static final float EPSILON = 0.00001f;
@@ -106,14 +107,14 @@
             return mStage2Velocity + (mStage3Velocity - mStage2Velocity) * x / mStage2Duration;
         }
         if (mNumberOfStages == 2) {
-            return mStage2EndPosition;
+            return 0;
         }
         x -= mStage2Duration;
         if (x < mStage3Duration) {
 
             return mStage3Velocity - mStage3Velocity * x / mStage3Duration;
         }
-        return mStage3EndPosition;
+        return 0;
     }
 
     private float calcY(float time) {
@@ -162,13 +163,14 @@
     @Override
     public float getInterpolation(float v) {
         float y = calcY(v);
-        mLastPosition = v;
+        mLastPosition = y;
+        mLastTime = v;
         return mBackwards ? mStartPosition - y : mStartPosition + y;
     }
 
     @Override
     public float getVelocity() {
-        return mBackwards ? -getVelocity(mLastPosition) : getVelocity(mLastPosition);
+        return mBackwards ? -getVelocity(mLastTime) : getVelocity(mLastTime);
     }
 
     @Override
diff --git a/constraintlayout/constraintlayout-core/src/test/java/androidx/constraintlayout/core/motion/MotionBasicTest.java b/constraintlayout/constraintlayout-core/src/test/java/androidx/constraintlayout/core/motion/MotionBasicTest.java
index b9dd2fd..857999a 100644
--- a/constraintlayout/constraintlayout-core/src/test/java/androidx/constraintlayout/core/motion/MotionBasicTest.java
+++ b/constraintlayout/constraintlayout-core/src/test/java/androidx/constraintlayout/core/motion/MotionBasicTest.java
@@ -16,6 +16,7 @@
 package androidx.constraintlayout.core.motion;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import androidx.constraintlayout.core.motion.utils.CurveFit;
 import androidx.constraintlayout.core.motion.utils.Easing;
@@ -214,6 +215,7 @@
             float pos = breakLogic.getInterpolation(time);
             ret[i] = pos;
         }
+        assertTrue(breakLogic.isStopped());
         return ret;
     }
 
diff --git a/constraintlayout/constraintlayout-core/src/test/java/androidx/constraintlayout/core/motion/StopLogicTest.java b/constraintlayout/constraintlayout-core/src/test/java/androidx/constraintlayout/core/motion/StopLogicTest.java
index 760085c..92f6313 100644
--- a/constraintlayout/constraintlayout-core/src/test/java/androidx/constraintlayout/core/motion/StopLogicTest.java
+++ b/constraintlayout/constraintlayout-core/src/test/java/androidx/constraintlayout/core/motion/StopLogicTest.java
@@ -40,6 +40,7 @@
         float damping = 50f;
         float stopThreshold = 0f;
         int springBoundary = 0;
+        boolean expectStopped = false; // Doesn't make it to 1.0f in the given time
         stop.springConfig(position,
                 destination,
                 currentVelocity,
@@ -65,7 +66,7 @@
                 + "|                                             *************  |\n"
                 + "|                                                           *| 0.885\n"
                 + "0.0                                                      0.885\n";
-        assertEquals(expect, verify(stop, position, maxTime));
+        assertEquals(expect, verify(stop, position, maxTime, expectStopped));
     }
 
     @Test
@@ -78,6 +79,7 @@
         float maxTime = 0.9f;
         float maxAcceleration = 3.2f;
         float maxVelocity = 3.2f;
+        boolean expectStopped = true;
         stop.config(position, destination, currentVelocity, maxTime, maxAcceleration, maxVelocity);
         System.out.println(stop.debug("check1", 0));
         String expect = ""
@@ -97,7 +99,7 @@
                 + "|          *************************                         |\n"
                 + "|                                   *********************** *| 1.0\n"
                 + "0.0                                                      0.885\n";
-        assertEquals(expect, verify(stop, position, maxTime));
+        assertEquals(expect, verify(stop, position, maxTime, expectStopped));
     }
 
     @Test
@@ -110,6 +112,7 @@
         float maxTime = 0.9f;
         float maxAcceleration = 3.2f;
         float maxVelocity = 3.2f;
+        boolean expectStopped = true;
         stop.config(position, destination, currentVelocity, maxTime, maxAcceleration, maxVelocity);
         System.out.println(stop.debug("check1", 0));
         String expect = ""
@@ -129,7 +132,7 @@
                 + "|              **************                                |\n"
                 + "|                            ****************************** *| 1.0\n"
                 + "0.0                                                      0.885\n";
-        assertEquals(expect, verify(stop, position, maxTime));
+        assertEquals(expect, verify(stop, position, maxTime, expectStopped));
     }
 
     @Test
@@ -141,6 +144,7 @@
         float maxTime = 0.9f;
         float maxAcceleration = 3.2f;
         float maxVelocity = 3.2f;
+        boolean expectStopped = true;
         stop.config(position, destination, currentVelocity, maxTime, maxAcceleration, maxVelocity);
         System.out.println(stop.debug("check1", 0));
         String expect = ""
@@ -160,7 +164,7 @@
                 + "|  ******                                                    |\n"
                 + "|        ************************************************** *| 1.0\n"
                 + "0.0                                                      0.885\n";
-        assertEquals(expect, verify(stop, position, maxTime));
+        assertEquals(expect, verify(stop, position, maxTime, expectStopped));
     }
 
     @Test
@@ -172,6 +176,7 @@
         float maxTime = 0.9f;
         float maxAcceleration = 3.2f;
         float maxVelocity = 1.2f;
+        boolean expectStopped = false; // Doesn't make it to 1f in the given time
         stop.config(position, destination, currentVelocity, maxTime, maxAcceleration, maxVelocity);
         System.out.println(stop.debug("check1", 0));
         String expect = ""
@@ -191,7 +196,7 @@
                 + "|                                               ***********  |\n"
                 + "|                                                           *| 0.997\n"
                 + "0.0                                                      0.885\n";
-        assertEquals(expect, verify(stop, position, maxTime));
+        assertEquals(expect, verify(stop, position, maxTime, expectStopped));
     }
 
     @Test
@@ -203,6 +208,7 @@
         float maxTime = 0.9f;
         float maxAcceleration = 3.2f;
         float maxVelocity = 3.2f;
+        boolean expectStopped = true;
         stop.config(position, destination, currentVelocity, maxTime, maxAcceleration, maxVelocity);
         System.out.println(stop.debug("check1", 0));
         String expect = ""
@@ -222,7 +228,7 @@
                 + "|                                            **************  |\n"
                 + "|                                                           *| 1.0\n"
                 + "0.0                                                      0.885\n";
-        assertEquals(expect, verify(stop, position, maxTime));
+        assertEquals(expect, verify(stop, position, maxTime, expectStopped));
     }
 
     @Test
@@ -234,6 +240,7 @@
         float maxTime = 0.9f;
         float maxAcceleration = 5.2f;
         float maxVelocity = 1.2f;
+        boolean expectStopped = true;
         stop.config(position, destination, currentVelocity, maxTime, maxAcceleration, maxVelocity);
         System.out.println(stop.debug("check1", 0));
         String expect = ""
@@ -253,10 +260,13 @@
                 + "|                                          **********        |\n"
                 + "|                                                    ****** *| 1.0\n"
                 + "0.0                                                      0.885\n";
-        assertEquals(expect, verify(stop, position, maxTime));
+        assertEquals(expect, verify(stop, position, maxTime, expectStopped));
     }
 
-    private static String verify(StopEngine stop, float position, float maxTime) {
+    private static String verify(StopEngine stop,
+            float position,
+            float maxTime,
+            boolean expectStopped) {
         float p = stop.getInterpolation(0);
         assertEquals(p, position, 0.0001);
         int count = 60;
@@ -272,6 +282,7 @@
         }
         String ret = textDraw(count, count / 4, x, y, false);
         System.out.println(ret);
+        assertEquals(expectStopped, stop.isStopped());
         return ret;
     }
 
diff --git a/core/core/src/main/java/androidx/core/view/SoftwareKeyboardControllerCompat.java b/core/core/src/main/java/androidx/core/view/SoftwareKeyboardControllerCompat.java
index a43c2af..5ccc392 100644
--- a/core/core/src/main/java/androidx/core/view/SoftwareKeyboardControllerCompat.java
+++ b/core/core/src/main/java/androidx/core/view/SoftwareKeyboardControllerCompat.java
@@ -207,24 +207,23 @@
                 insetsController = mView.getWindowInsetsController();
             }
             if (insetsController != null) {
-                if (SDK_INT <= 33) {
-                    final AtomicBoolean isImeInsetsControllable = new AtomicBoolean(false);
-                    final WindowInsetsController.OnControllableInsetsChangedListener listener =
-                            (windowInsetsController, typeMask) -> isImeInsetsControllable.set(
-                                    (typeMask & WindowInsetsCompat.Type.IME) != 0);
-                    // Register the OnControllableInsetsChangedListener would synchronously
-                    // callback current controllable insets. Adding the listener here to check if
-                    // ime inset is controllable.
-                    insetsController.addOnControllableInsetsChangedListener(listener);
-                    if (!isImeInsetsControllable.get()) {
-                        final InputMethodManager imm = (InputMethodManager) mView.getContext()
-                                .getSystemService(Context.INPUT_METHOD_SERVICE);
-                        // This is a backport when the app is in multi-windowing mode, it cannot
-                        // control the ime insets. Use the InputMethodManager instead.
-                        imm.hideSoftInputFromWindow(mView.getWindowToken(), 0);
-                    }
-                    insetsController.removeOnControllableInsetsChangedListener(listener);
+                final AtomicBoolean isImeInsetsControllable = new AtomicBoolean(false);
+                final WindowInsetsController.OnControllableInsetsChangedListener listener =
+                        (windowInsetsController, typeMask) -> isImeInsetsControllable.set(
+                                (typeMask & WindowInsetsCompat.Type.IME) != 0);
+                // Register the OnControllableInsetsChangedListener would synchronously
+                // callback current controllable insets. Adding the listener here to check if
+                // ime inset is controllable.
+                insetsController.addOnControllableInsetsChangedListener(listener);
+                if (!isImeInsetsControllable.get()) {
+                    final InputMethodManager imm = (InputMethodManager) mView.getContext()
+                            .getSystemService(Context.INPUT_METHOD_SERVICE);
+                    // This is a backport when the app is in multi-windowing mode, it cannot
+                    // control the ime insets. Use the InputMethodManager instead.
+                    // TODO(b/280532442): Fix this in the platform side.
+                    imm.hideSoftInputFromWindow(mView.getWindowToken(), 0);
                 }
+                insetsController.removeOnControllableInsetsChangedListener(listener);
                 insetsController.hide(WindowInsets.Type.ime());
             } else {
                 // Couldn't find an insets controller, fallback to old implementation
diff --git a/fragment/CHANGELOG.md b/fragment/CHANGELOG.md
index 55e45de..0ea055d 100644
--- a/fragment/CHANGELOG.md
+++ b/fragment/CHANGELOG.md
@@ -6,6 +6,17 @@
 # `Removed`: for now removed feature
 # `Fixed`: for any bug fixes
 # `Security`: in case of vulnerabilities
+#
+# Possible headings:
+# API Changes
+# Bug Fixes
+# Dependency Updates
+# Behavior Change
+# External Contributions
 
 # Unreleased
 
+### Dependency Updates
+
+* Changed dependency of Activity library from version 1.5.1 to version 1.7.1.
+
diff --git a/fragment/fragment-ktx/build.gradle b/fragment/fragment-ktx/build.gradle
index 3eb971a..7327886 100644
--- a/fragment/fragment-ktx/build.gradle
+++ b/fragment/fragment-ktx/build.gradle
@@ -25,7 +25,7 @@
 
 dependencies {
     api(project(":fragment:fragment"))
-    api("androidx.activity:activity-ktx:1.5.1") {
+    api("androidx.activity:activity-ktx:1.7.1") {
         because "Mirror fragment dependency graph for -ktx artifacts"
     }
     api("androidx.core:core-ktx:1.2.0") {
diff --git a/fragment/fragment/build.gradle b/fragment/fragment/build.gradle
index 248f510..91b6c0f 100644
--- a/fragment/fragment/build.gradle
+++ b/fragment/fragment/build.gradle
@@ -29,7 +29,7 @@
     api("androidx.collection:collection:1.1.0")
     api("androidx.viewpager:viewpager:1.0.0")
     api("androidx.loader:loader:1.0.0")
-    api("androidx.activity:activity:1.5.1")
+    api("androidx.activity:activity:1.7.1")
     api("androidx.lifecycle:lifecycle-runtime:2.6.1")
     api("androidx.lifecycle:lifecycle-livedata-core:2.6.1")
     api("androidx.lifecycle:lifecycle-viewmodel:2.6.1")
diff --git a/fragment/integration-tests/testapp/build.gradle b/fragment/integration-tests/testapp/build.gradle
index 17004dc..79ee5ac 100644
--- a/fragment/integration-tests/testapp/build.gradle
+++ b/fragment/integration-tests/testapp/build.gradle
@@ -25,7 +25,8 @@
         main {
             res.srcDirs = ["src/main/res",
                            "src/main/res/layouts/doubleTransitionBug",
-                           "src/main/res/layouts/kittenFragmentTransitions"
+                           "src/main/res/layouts/kittenFragmentTransitions",
+                           "src/main/res/layouts/basicAnimators",
             ]
         }
     }
diff --git a/fragment/integration-tests/testapp/src/main/AndroidManifest.xml b/fragment/integration-tests/testapp/src/main/AndroidManifest.xml
index 19d7b02..331b806 100644
--- a/fragment/integration-tests/testapp/src/main/AndroidManifest.xml
+++ b/fragment/integration-tests/testapp/src/main/AndroidManifest.xml
@@ -21,6 +21,7 @@
         android:allowBackup="true"
         android:label="@string/app_name"
         android:supportsRtl="true"
+        android:enableOnBackInvokedCallback="true"
         tools:ignore="AllowBackup,GoogleAppIndexingWarning,MissingApplicationIcon">
         <activity
             android:name=".MainFragmentActivity"
@@ -32,12 +33,6 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
-        <activity
-            android:name=".doubleTransitionBug.DoubleTransitionBugActivity"
-            android:exported="false" />
-        <activity
-            android:name=".kittenfragmenttransitions.KittenTransitionMainActivity"
-            android:exported="false" />
     </application>
 
 </manifest>
diff --git a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/AnimationTestsFragment.kt b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/AnimatorTestsFragment.kt
similarity index 61%
rename from fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/AnimationTestsFragment.kt
rename to fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/AnimatorTestsFragment.kt
index 9c66c18..efddd99 100644
--- a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/AnimationTestsFragment.kt
+++ b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/AnimatorTestsFragment.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2023 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,13 @@
 
 package androidx.fragment.testapp
 
+import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
+import androidx.fragment.testapp.basicAnimators.BasicFragmentAnimatorFragment
 
-class AnimationTestsFragment : Fragment(R.layout.animation_fragment)
+class AnimatorTestsFragment : Fragment(R.layout.animation_fragment) {
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        addButton("Basic Fragment Animators", BasicFragmentAnimatorFragment())
+    }
+}
diff --git a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/TestTypeSelectFragment.kt b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/TestTypeSelectFragment.kt
index e7a7a5b..9f5c5f2 100644
--- a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/TestTypeSelectFragment.kt
+++ b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/TestTypeSelectFragment.kt
@@ -28,25 +28,25 @@
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
 
-        addButton("Fragment Animation Test", AnimationTestsFragment())
+        addButton("Fragment Animator Test", AnimatorTestsFragment())
         addButton("Fragment Transition Test", TransitionTestsFragment())
     }
+}
 
-    private fun Fragment.addButton(text: String, fragment: Fragment) {
-        (requireView() as LinearLayout).addView(
-            Button(context).apply {
-                this.text = text
+internal fun Fragment.addButton(text: String, fragment: Fragment) {
+    (requireView() as LinearLayout).addView(
+        Button(context).apply {
+            this.text = text
 
-                setOnClickListener {
-                    parentFragmentManager.commit {
-                        replace(R.id.fragment_container, fragment)
-                        addToBackStack(null)
-                    }
-                }
-                layoutParams = LinearLayout.LayoutParams(-1, 0).apply {
-                    weight = 1f
+            setOnClickListener {
+                parentFragmentManager.commit {
+                    replace(R.id.fragment_container, fragment)
+                    addToBackStack(null)
                 }
             }
-        )
-    }
+            layoutParams = LinearLayout.LayoutParams(-1, 0).apply {
+                weight = 1f
+            }
+        }
+    )
 }
diff --git a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/TransitionTestsFragment.kt b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/TransitionTestsFragment.kt
index 5c898b3..5c65086 100644
--- a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/TransitionTestsFragment.kt
+++ b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/TransitionTestsFragment.kt
@@ -23,14 +23,14 @@
 import android.widget.LinearLayout
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentActivity
-import androidx.fragment.testapp.doubleTransitionBug.DoubleTransitionBugActivity
-import androidx.fragment.testapp.kittenfragmenttransitions.KittenTransitionMainActivity
+import androidx.fragment.testapp.doubleTransitionBug.DoubleTransitionBugFragment
+import androidx.fragment.testapp.kittenfragmenttransitions.KittenTransitionMainFragment
 
 class TransitionTestsFragment : Fragment(R.layout.transition_fragment) {
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
 
-        addButton("Double Transition Bug", DoubleTransitionBugActivity::class.java)
-        addButton("Kitten Transition", KittenTransitionMainActivity::class.java)
+        addButton("Double Transition Bug", DoubleTransitionBugFragment())
+        addButton("Kitten Transition", KittenTransitionMainFragment())
     }
 }
 
diff --git a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/basicAnimators/BasicFragmentAnimatorFragment.kt b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/basicAnimators/BasicFragmentAnimatorFragment.kt
new file mode 100644
index 0000000..10cfa82
--- /dev/null
+++ b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/basicAnimators/BasicFragmentAnimatorFragment.kt
@@ -0,0 +1,95 @@
+/*
+ * 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.fragment.testapp.basicAnimators
+
+import android.graphics.Color
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Button
+import androidx.annotation.ColorInt
+import androidx.core.os.bundleOf
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.commit
+import androidx.fragment.testapp.R
+
+class BasicFragmentAnimatorFragment : Fragment(R.layout.basic_animators_main) {
+    private var count = 0
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        if (savedInstanceState == null) {
+            parentFragmentManager.beginTransaction()
+                .setPrimaryNavigationFragment(this)
+                .commit()
+            childFragmentManager.commit {
+                add(R.id.content, Fragment(R.layout.basic_animator_fragment))
+            }
+        }
+
+        return super.onCreateView(inflater, container, savedInstanceState)
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+
+        view.findViewById<Button>(R.id.next_button).setOnClickListener {
+            switchFragment()
+        }
+    }
+
+    private fun switchFragment() {
+        val fragment = MainFragment()
+        fragment.arguments = bundleOf("myarg" to when (count % 6) {
+            1 -> { Color.GREEN }
+            2 -> { Color.RED }
+            3 -> { Color.YELLOW }
+            4 -> { Color.GRAY }
+            5 -> { Color.MAGENTA }
+            else -> {
+                Color.BLUE
+            }
+        })
+
+        count++
+
+        childFragmentManager.beginTransaction()
+            .setCustomAnimations(
+                androidx.fragment.R.animator.fragment_close_enter,
+                androidx.fragment.R.animator.fragment_close_exit,
+                androidx.fragment.R.animator.fragment_close_enter,
+                androidx.fragment.R.animator.fragment_close_exit,
+            )
+            .setReorderingAllowed(true)
+            .replace(R.id.content, fragment)
+            .addToBackStack(null)
+            .commit()
+    }
+
+    class MainFragment : Fragment(R.layout.basic_animator_fragment) {
+        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+            super.onViewCreated(view, savedInstanceState)
+            @ColorInt val myarg = arguments?.getInt("myarg") ?: Color.RED
+
+            view.setBackgroundColor(myarg)
+        }
+    }
+}
\ No newline at end of file
diff --git a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/doubleTransitionBug/DoubleTransitionBugActivity.kt b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/doubleTransitionBug/DoubleTransitionBugFragment.kt
similarity index 78%
rename from fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/doubleTransitionBug/DoubleTransitionBugActivity.kt
rename to fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/doubleTransitionBug/DoubleTransitionBugFragment.kt
index 969f8e7..a239452 100644
--- a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/doubleTransitionBug/DoubleTransitionBugActivity.kt
+++ b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/doubleTransitionBug/DoubleTransitionBugFragment.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2023 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,28 +20,29 @@
 import android.view.Gravity
 import android.widget.Button
 import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
 import androidx.fragment.app.commit
 import androidx.fragment.testapp.R
 import androidx.transition.Fade
 import androidx.transition.Slide
 
-class DoubleTransitionBugActivity : FragmentActivity(R.layout.double_transition_bug_activity_main) {
+class DoubleTransitionBugFragment : Fragment(R.layout.double_transition_bug_activity_main) {
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
 
         if (savedInstanceState == null) {
-            supportFragmentManager.commit {
+            childFragmentManager.commit {
                 add(R.id.content, Fragment(R.layout.double_transition_bug_fragment_second))
             }
         }
 
-        findViewById<Button>(R.id.important_button).setOnClickListener { switchFragment() }
+        requireActivity().findViewById<Button>(R.id.important_button).setOnClickListener {
+            switchFragment()
+        }
     }
 
     private fun switchFragment() {
-        val currentFragment = supportFragmentManager.findFragmentById(R.id.content)
+        val currentFragment = childFragmentManager.findFragmentById(R.id.content)
 
         currentFragment!!.exitTransition = Fade()
 
@@ -51,7 +52,7 @@
         val first = Fragment(R.layout.double_transition_bug_fragment_first)
         first.enterTransition = Fade().setDuration(5000)
 
-        supportFragmentManager.beginTransaction()
+        childFragmentManager.beginTransaction()
             .setReorderingAllowed(true)
             .add(R.id.content, first)
             .add(R.id.content, second)
diff --git a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/kittenfragmenttransitions/KittenTransitionMainActivity.kt b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/kittenfragmenttransitions/KittenTransitionMainFragment.kt
similarity index 79%
rename from fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/kittenfragmenttransitions/KittenTransitionMainActivity.kt
rename to fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/kittenfragmenttransitions/KittenTransitionMainFragment.kt
index bd99b1f..13dc5a3 100644
--- a/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/kittenfragmenttransitions/KittenTransitionMainActivity.kt
+++ b/fragment/integration-tests/testapp/src/main/java/androidx/fragment/testapp/kittenfragmenttransitions/KittenTransitionMainFragment.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2023 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,10 +15,10 @@
  */
 package androidx.fragment.testapp.kittenfragmenttransitions
 
-import androidx.fragment.app.FragmentActivity
+import androidx.fragment.app.Fragment
 import androidx.fragment.testapp.R
 
 /**
  * Main activity that holds our fragments
  */
-class KittenTransitionMainActivity : FragmentActivity(R.layout.kitten_activity_main)
+class KittenTransitionMainFragment : Fragment(R.layout.kitten_activity_main)
diff --git a/fragment/integration-tests/testapp/src/main/res/layouts/basicAnimators/layout/basic_animator_fragment.xml b/fragment/integration-tests/testapp/src/main/res/layouts/basicAnimators/layout/basic_animator_fragment.xml
new file mode 100644
index 0000000..fca3ed7
--- /dev/null
+++ b/fragment/integration-tests/testapp/src/main/res/layouts/basicAnimators/layout/basic_animator_fragment.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <FrameLayout
+        android:id="@+id/content"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/fragment/integration-tests/testapp/src/main/res/layouts/basicAnimators/layout/basic_animators_main.xml b/fragment/integration-tests/testapp/src/main/res/layouts/basicAnimators/layout/basic_animators_main.xml
new file mode 100644
index 0000000..a136643
--- /dev/null
+++ b/fragment/integration-tests/testapp/src/main/res/layouts/basicAnimators/layout/basic_animators_main.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <FrameLayout
+        android:id="@+id/content"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+    <Button
+        android:id="@+id/next_button"
+        android:layout_gravity="center"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Next" />
+
+</FrameLayout>
diff --git a/graphics/graphics-core/src/androidTest/java/androidx/graphics/lowlatency/SingleBufferedCanvasRendererV29Test.kt b/graphics/graphics-core/src/androidTest/java/androidx/graphics/lowlatency/SingleBufferedCanvasRendererV29Test.kt
index 5ecc43e..60cf00d 100644
--- a/graphics/graphics-core/src/androidTest/java/androidx/graphics/lowlatency/SingleBufferedCanvasRendererV29Test.kt
+++ b/graphics/graphics-core/src/androidTest/java/androidx/graphics/lowlatency/SingleBufferedCanvasRendererV29Test.kt
@@ -41,7 +41,6 @@
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertTrue
-import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -229,7 +228,11 @@
                     bufferReadyLatch.countDown()
                     drawCancelledRequestLatch?.countDown()
                 }
-            })
+            }).apply {
+                // See: b/236394768 Workaround for ANGLE issue where FBOs with HardwareBuffer
+                // attachments are not executed until a glReadPixels call is made
+                forceFlush.set(true)
+            }
         try {
             renderer.render(Color.RED)
             assertTrue(initialDrawLatch.await(3000, TimeUnit.MILLISECONDS))
@@ -280,7 +283,11 @@
                 ) {
                     // NO-OP
                 }
-            })
+            }).apply {
+                // See: b/236394768 Workaround for ANGLE issue where FBOs with HardwareBuffer
+                // attachments are not executed until a glReadPixels call is made
+                forceFlush.set(true)
+            }
         try {
             val latch = CountDownLatch(1)
             renderer.release(true) {
@@ -330,7 +337,11 @@
                     syncFenceCompat?.awaitForever()
                     drawLatch?.countDown()
                 }
-            })
+            }).apply {
+                // See: b/236394768 Workaround for ANGLE issue where FBOs with HardwareBuffer
+                // attachments are not executed until a glReadPixels call is made
+                forceFlush.set(true)
+            }
         try {
             renderer.isVisible = false
             drawLatch = CountDownLatch(1)
@@ -353,7 +364,6 @@
         }
     }
 
-    @Ignore("b/274099885")
     @SdkSuppress(minSdkVersion = Build.VERSION_CODES.Q)
     @Test
     fun testBatchedRenders() {
@@ -378,7 +388,11 @@
                 ) {
                     // NO-OP
                 }
-            })
+            }).apply {
+                // See: b/236394768 Workaround for ANGLE issue where FBOs with HardwareBuffer
+                // attachments are not executed until a glReadPixels call is made
+                forceFlush.set(true)
+            }
         try {
             renderer.render(Color.RED)
             renderer.render(Color.BLUE)
@@ -431,7 +445,11 @@
                     buffer = hardwareBuffer
                     renderLatch.countDown()
                 }
-            })
+            }).apply {
+                // See: b/236394768 Workaround for ANGLE issue where FBOs with HardwareBuffer
+                // attachments are not executed until a glReadPixels call is made
+                forceFlush.set(true)
+            }
         try {
             renderer.render(0)
             assertTrue(renderLatch.await(3000, TimeUnit.MILLISECONDS))
diff --git a/graphics/graphics-core/src/androidTest/java/androidx/graphics/opengl/GLRendererTest.kt b/graphics/graphics-core/src/androidTest/java/androidx/graphics/opengl/GLRendererTest.kt
index a03d42d..43f1de6 100644
--- a/graphics/graphics-core/src/androidTest/java/androidx/graphics/opengl/GLRendererTest.kt
+++ b/graphics/graphics-core/src/androidTest/java/androidx/graphics/opengl/GLRendererTest.kt
@@ -987,6 +987,8 @@
                     width.toFloat(),
                     height.toFloat()
                 )
+                // See: b/236394768 Workaround for ANGLE issue where FBOs with HardwareBuffer
+                GLES20.glFinish()
                 supportsFence = eglManager.supportsNativeAndroidFence()
                 quadRenderer.release()
                 surface.release()
@@ -1125,6 +1127,8 @@
                     width.toFloat(),
                     height.toFloat()
                 )
+                // See: b/236394768 Workaround for ANGLE issue where FBOs with HardwareBuffer
+                GLES20.glFinish()
                 supportsFence = eglManager.supportsNativeAndroidFence()
                 quadRenderer.release()
                 deleteTexture(texId)
diff --git a/navigation/CHANGELOG.md b/navigation/CHANGELOG.md
index 0f9c1e1..5c13fd8 100644
--- a/navigation/CHANGELOG.md
+++ b/navigation/CHANGELOG.md
@@ -6,6 +6,17 @@
 # `Removed`: for now removed feature
 # `Fixed`: for any bug fixes
 # `Security`: in case of vulnerabilities
+#
+# Possible headings:
+# API Changes
+# Bug Fixes
+# Dependency Updates
+# Behavior Change
+# External Contributions
 
 # Unreleased
 
+### Dependency Updates
+
+* Changed dependency of Activity library from version 1.6.1 to version 1.7.1.
+
diff --git a/navigation/navigation-runtime/build.gradle b/navigation/navigation-runtime/build.gradle
index f3c6511..c7ebc80 100644
--- a/navigation/navigation-runtime/build.gradle
+++ b/navigation/navigation-runtime/build.gradle
@@ -25,7 +25,7 @@
 
 dependencies {
     api(project(":navigation:navigation-common"))
-    api("androidx.activity:activity-ktx:1.6.1")
+    api("androidx.activity:activity-ktx:1.7.1")
     api("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1")
     api("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
     api("androidx.annotation:annotation-experimental:1.1.0")
diff --git a/paging/paging-common/src/main/kotlin/androidx/paging/PagingData.kt b/paging/paging-common/src/main/kotlin/androidx/paging/PagingData.kt
index c14bb57..8ff3d51 100644
--- a/paging/paging-common/src/main/kotlin/androidx/paging/PagingData.kt
+++ b/paging/paging-common/src/main/kotlin/androidx/paging/PagingData.kt
@@ -115,6 +115,15 @@
             ),
             uiReceiver = NOOP_UI_RECEIVER,
             hintReceiver = NOOP_HINT_RECEIVER,
+            cachedPageEvent = {
+                PageEvent.Insert.Refresh(
+                    pages = listOf(TransformablePage(0, data)),
+                    placeholdersBefore = 0,
+                    placeholdersAfter = 0,
+                    sourceLoadStates = LoadStates.IDLE,
+                    mediatorLoadStates = null
+                )
+            }
         )
 
         /**
@@ -143,6 +152,15 @@
             ),
             uiReceiver = NOOP_UI_RECEIVER,
             hintReceiver = NOOP_HINT_RECEIVER,
+            cachedPageEvent = {
+                PageEvent.Insert.Refresh(
+                    pages = listOf(TransformablePage(0, data)),
+                    placeholdersBefore = 0,
+                    placeholdersAfter = 0,
+                    sourceLoadStates = sourceLoadStates,
+                    mediatorLoadStates = mediatorLoadStates
+                )
+            }
         )
     }
 
diff --git a/paging/paging-compose/build.gradle b/paging/paging-compose/build.gradle
index 918280d..d31e914 100644
--- a/paging/paging-compose/build.gradle
+++ b/paging/paging-compose/build.gradle
@@ -32,6 +32,7 @@
     api("androidx.compose.runtime:runtime:1.2.1")
 
     androidTestImplementation(projectOrArtifact(":compose:ui:ui-test-junit4"))
+    androidTestImplementation projectOrArtifact(":compose:ui:ui-tooling")
     androidTestImplementation(project(":compose:test-utils"))
     androidTestImplementation(projectOrArtifact(":internal-testutils-paging"))
     androidTestImplementation(libs.testRunner)
diff --git a/paging/paging-compose/samples/build.gradle b/paging/paging-compose/samples/build.gradle
index 243f2c3..6fd15b4 100644
--- a/paging/paging-compose/samples/build.gradle
+++ b/paging/paging-compose/samples/build.gradle
@@ -29,6 +29,7 @@
     compileOnly(projectOrArtifact(":annotation:annotation-sampled"))
     implementation(projectOrArtifact(":compose:foundation:foundation"))
     implementation(projectOrArtifact(":compose:material:material"))
+    implementation projectOrArtifact(":compose:ui:ui-tooling")
     implementation(project(":paging:paging-compose"))
 }
 
diff --git a/paging/paging-compose/samples/src/main/java/androidx/paging/compose/samples/PagingPreviewSample.kt b/paging/paging-compose/samples/src/main/java/androidx/paging/compose/samples/PagingPreviewSample.kt
new file mode 100644
index 0000000..c05f075
--- /dev/null
+++ b/paging/paging-compose/samples/src/main/java/androidx/paging/compose/samples/PagingPreviewSample.kt
@@ -0,0 +1,70 @@
+/*
+ * 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.paging.compose.samples
+
+import androidx.annotation.Sampled
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.sp
+import androidx.paging.PagingData
+import androidx.paging.compose.collectAsLazyPagingItems
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+
+@Sampled
+@Preview
+@Composable
+fun PagingPreview() {
+    /**
+     * The composable that displays data from LazyPagingItems.
+     *
+     * This composable is inlined only for the purposes of this sample. In production code,
+     * this function should be its own top-level function.
+     */
+    @Composable
+    fun DisplayPaging(flow: Flow<PagingData<String>>) {
+        // Flow of real data i.e. flow from a ViewModel, or flow of fake data i.e. from a Preview.
+        val lazyPagingItems = flow.collectAsLazyPagingItems()
+        LazyColumn(modifier = Modifier
+            .fillMaxSize()
+            .background(Color.Red)) {
+            items(count = lazyPagingItems.itemCount) { index ->
+                val item = lazyPagingItems[index]
+                Text(text = "$item", fontSize = 35.sp, color = Color.Black)
+            }
+        }
+    }
+
+    /**
+     * The preview function should be responsible for creating the fake data and passing it to the
+     * function that displays it.
+     */
+    // create list of fake data for preview
+    val fakeData = List(10) { "preview item $it" }
+    // create pagingData from a list of fake data
+    val pagingData = PagingData.from(fakeData)
+    // pass pagingData containing fake data to a MutableStateFlow
+    val fakeDataFlow = MutableStateFlow(pagingData)
+    // pass flow to composable
+    DisplayPaging(flow = fakeDataFlow)
+}
\ No newline at end of file
diff --git a/paging/paging-compose/src/androidTest/java/androidx/paging/compose/LazyPagingItemsPreviewTest.kt b/paging/paging-compose/src/androidTest/java/androidx/paging/compose/LazyPagingItemsPreviewTest.kt
new file mode 100644
index 0000000..7cfba6e
--- /dev/null
+++ b/paging/paging-compose/src/androidTest/java/androidx/paging/compose/LazyPagingItemsPreviewTest.kt
@@ -0,0 +1,104 @@
+/*
+ * 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.paging.compose
+
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.CompositionLocalProvider
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalInspectionMode
+import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createAndroidComposeRule
+import androidx.compose.ui.test.onNodeWithTag
+import androidx.compose.ui.tooling.PreviewActivity
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.paging.PagingData
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.test.StandardTestDispatcher
+import org.junit.Rule
+import org.junit.Test
+
+class LazyPagingItemsPreviewTest {
+
+    @get:Rule
+    val composeTestRule = createAndroidComposeRule<PreviewActivity>()
+
+    @Test
+    fun pagingPreviewTest() {
+        composeTestRule.setContent {
+            PagingPreview()
+        }
+        for (i in 0..9) {
+            composeTestRule.onNodeWithTag("$i")
+                .assertIsDisplayed()
+        }
+    }
+
+    @Test
+    fun emptyPreview() {
+        composeTestRule.setContent {
+            EmptyPreview()
+        }
+        composeTestRule.onNodeWithTag("0")
+            .assertDoesNotExist()
+    }
+}
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@Preview
+@Composable
+fun PagingPreview() {
+    val data = List(50) { it }
+    val flow = MutableStateFlow(PagingData.from(data))
+    CompositionLocalProvider(
+        LocalInspectionMode provides true,
+    ) {
+        // Use StandardTestDispatcher so we don't start collecting on PagingData
+        val lazyPagingItems = flow.collectAsLazyPagingItems(StandardTestDispatcher())
+        LazyColumn(Modifier.height(500.dp)) {
+            items(count = lazyPagingItems.itemCount) { index ->
+                val item = lazyPagingItems[index]
+                Spacer(Modifier.height(50.dp).fillParentMaxWidth().testTag("$item"))
+            }
+        }
+    }
+}
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@Preview
+@Composable
+fun EmptyPreview() {
+    val data = emptyList<Int>()
+    val flow = MutableStateFlow(PagingData.from(data))
+    CompositionLocalProvider(
+        LocalInspectionMode provides true,
+    ) {
+        // Use StandardTestDispatcher so we don't start collecting on PagingData
+        val lazyPagingItems = flow.collectAsLazyPagingItems(StandardTestDispatcher())
+        LazyColumn(Modifier.height(500.dp)) {
+            items(count = lazyPagingItems.itemCount) { index ->
+                val item = lazyPagingItems[index]
+                Spacer(Modifier.height(50.dp).fillParentMaxWidth().testTag("$item"))
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/paging/paging-compose/src/main/java/androidx/paging/compose/LazyPagingItems.kt b/paging/paging-compose/src/main/java/androidx/paging/compose/LazyPagingItems.kt
index 81a6901..0c0082d 100644
--- a/paging/paging-compose/src/main/java/androidx/paging/compose/LazyPagingItems.kt
+++ b/paging/paging-compose/src/main/java/androidx/paging/compose/LazyPagingItems.kt
@@ -52,6 +52,11 @@
  * This instance can be used for Lazy foundations such as [LazyListScope.items] to display data
  * received from the [Flow] of [PagingData].
  *
+ * Previewing [LazyPagingItems] is supported on a list of mock data. See sample for how to preview
+ * mock data.
+ *
+ * @sample androidx.paging.compose.samples.PagingPreview
+ *
  * @param T the type of value used by [PagingData].
  */
 public class LazyPagingItems<T : Any> internal constructor(
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeExt.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeExt.kt
index 470c9af..213eeb9 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeExt.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeExt.kt
@@ -22,10 +22,10 @@
 import com.google.devtools.ksp.symbol.KSDeclaration
 import com.google.devtools.ksp.symbol.KSNode
 import com.google.devtools.ksp.symbol.KSType
+import com.google.devtools.ksp.symbol.KSTypeAlias
 import com.google.devtools.ksp.symbol.KSTypeArgument
 import com.google.devtools.ksp.symbol.KSTypeParameter
 import com.google.devtools.ksp.symbol.KSTypeReference
-import com.google.devtools.ksp.symbol.Modifier
 
 /**
  * Root package comes as <root> instead of "" so we work around it here.
@@ -47,10 +47,12 @@
 }
 
 internal fun KSTypeReference.isTypeParameterReference(): Boolean {
-    return this.resolve().declaration is KSTypeParameter
+    return this.resolve().isTypeParameter()
 }
 
-fun KSType.isInline() = declaration.modifiers.contains(Modifier.INLINE)
+internal fun KSType.isTypeParameter(): Boolean {
+    return declaration is KSTypeParameter
+}
 
 internal fun KSType.withNullability(nullability: XNullability) = when (nullability) {
     XNullability.NULLABLE -> makeNullable()
@@ -59,14 +61,15 @@
 }
 
 private fun KSAnnotated.hasAnnotation(qName: String) =
-    annotations.any { it.hasQualifiedName(qName) }
+    annotations.any { it.hasQualifiedNameOrAlias(qName) }
 
-private fun KSAnnotation.hasQualifiedName(qName: String): Boolean {
-    return annotationType.resolve().hasQualifiedName(qName)
+private fun KSAnnotation.hasQualifiedNameOrAlias(qName: String): Boolean {
+    return annotationType.resolve().hasQualifiedNameOrAlias(qName)
 }
 
-private fun KSType.hasQualifiedName(qName: String): Boolean {
-    return declaration.qualifiedName?.asString() == qName
+private fun KSType.hasQualifiedNameOrAlias(qName: String): Boolean {
+    return declaration.qualifiedName?.asString() == qName ||
+        (declaration as? KSTypeAlias)?.type?.resolve()?.hasQualifiedNameOrAlias(qName) ?: false
 }
 
 internal fun KSAnnotated.hasJvmWildcardAnnotation() =
@@ -75,20 +78,55 @@
 internal fun KSAnnotated.hasSuppressJvmWildcardAnnotation() =
     hasAnnotation(JvmSuppressWildcards::class.java.canonicalName!!)
 
-private fun KSType.hasAnnotation(qName: String) = annotations.any { it.hasQualifiedName(qName) }
-
-internal fun KSType.hasJvmWildcardAnnotation() =
-    hasAnnotation(JvmWildcard::class.java.canonicalName!!)
+// TODO(bcorso): There's a bug in KSP where, after using KSType#asMemberOf() or KSType#replace(),
+//  the annotations are removed from the resulting type. However, it turns out that the annotation
+//  information is still available in the underlying KotlinType, so we use reflection to get them.
+//  See https://github.com/google/ksp/issues/1376.
+private fun KSType.hasAnnotation(qName: String): Boolean {
+    fun String.toFqName(): Any {
+        return Class.forName("org.jetbrains.kotlin.name.FqName")
+            .getConstructor(String::class.java)
+            .newInstance(this)
+    }
+    fun hasAnnotationViaReflection(qName: String): Boolean {
+        val ksType = if (
+            // Note: Technically, we could just make KSTypeWrapper internal and cast to get the
+            // delegate, but since we need to use reflection anyway, just get it via reflection.
+            this.javaClass.canonicalName == "androidx.room.compiler.processing.ksp.KSTypeWrapper") {
+            this.javaClass.methods.find { it.name == "getDelegate" }?.invoke(this)
+        } else {
+            this
+        }
+        val kotlinType =
+            ksType?.javaClass?.methods?.find { it.name == "getKotlinType" }?.invoke(ksType)
+        val kotlinAnnotations =
+            kotlinType?.javaClass
+                ?.methods
+                ?.find { it.name == "getAnnotations" }
+                ?.invoke(kotlinType)
+        return kotlinAnnotations?.javaClass
+            ?.methods
+            ?.find { it.name == "hasAnnotation" }
+            ?.invoke(kotlinAnnotations, qName.toFqName()) == true
+    }
+    return if (annotations.toList().isEmpty()) {
+        // If there are no annotations but KSType#toString() shows annotations, check the underlying
+        // KotlinType for annotations using reflection.
+        toString().startsWith("[") && hasAnnotationViaReflection(qName)
+    } else {
+        annotations.any { it.annotationType.resolve().hasQualifiedNameOrAlias(qName) }
+    }
+}
 
 internal fun KSType.hasSuppressJvmWildcardAnnotation() =
     hasAnnotation(JvmSuppressWildcards::class.java.canonicalName!!)
 
  internal fun KSNode.hasSuppressWildcardsAnnotationInHierarchy(): Boolean {
-     (this as? KSAnnotated)?.let {
-         if (hasSuppressJvmWildcardAnnotation()) {
-             return true
-         }
-     }
-     val parent = parent ?: return false
-     return parent.hasSuppressWildcardsAnnotationInHierarchy()
- }
\ No newline at end of file
+    (this as? KSAnnotated)?.let {
+        if (hasSuppressJvmWildcardAnnotation()) {
+            return true
+        }
+    }
+    val parent = parent ?: return false
+    return parent.hasSuppressWildcardsAnnotationInHierarchy()
+}
\ No newline at end of file
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolver.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolver.kt
index bdade61..d797d50 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolver.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolver.kt
@@ -25,6 +25,7 @@
 import com.google.devtools.ksp.symbol.KSTypeAlias
 import com.google.devtools.ksp.symbol.KSTypeArgument
 import com.google.devtools.ksp.symbol.KSTypeParameter
+import com.google.devtools.ksp.symbol.KSTypeReference
 import com.google.devtools.ksp.symbol.Modifier
 import com.google.devtools.ksp.symbol.Variance
 
@@ -59,21 +60,57 @@
             return type
         }
 
-        val resolvedType = if (hasTypeVariables(scope.declarationType())) {
+        // First, replace any type aliases in the type with their actual types
+        return type.replaceTypeAliases()
+            // Next, resolve wildcards based on the scope of the type
+            .resolveWildcards(scope)
+            // Next, apply any additional variance changes based on the @JvmSuppressWildcards or
+            // @JvmWildcard annotations on the resolved type.
+            .applyJvmWildcardAnnotations()
+            // Finally, unwrap any delegate types. (Note: as part of resolving wildcards, we wrap
+            // types/type arguments in delegates to avoid loosing annotation information. However,
+            // those delegates may cause issues later if KSP tries to cast the type/argument to a
+            // particular implementation, so we unwrap them here.
+            .removeWrappers()
+    }
+
+    private fun KSType.replaceTypeAliases(typeStack: ReferenceStack = ReferenceStack()): KSType {
+        if (isError || typeStack.queue.contains(this)) {
+            return this
+        }
+        if (declaration is KSTypeAlias) {
+            return (declaration as KSTypeAlias).type.resolve().replaceTypeAliases(typeStack)
+        }
+        return typeStack.withReference(this) {
+            createWrapper(arguments.map { it.replaceTypeAliases(typeStack) })
+        }
+    }
+
+    private fun KSTypeArgument.replaceTypeAliases(typeStack: ReferenceStack): KSTypeArgument {
+        val type = type?.resolve()
+        if (
+            type == null ||
+            type.isError ||
+            variance == Variance.STAR ||
+            typeStack.queue.contains(type)
+        ) {
+            return this
+        }
+        return createWrapper(type.replaceTypeAliases(typeStack), variance)
+    }
+
+    private fun KSType.resolveWildcards(scope: KSTypeVarianceResolverScope): KSType {
+        return if (hasTypeVariables(scope.declarationType())) {
             // If the associated declared type contains type variables that were resolved, e.g.
             // using "asMemberOf", then it has special rules about how to resolve the types.
             getJavaWildcardWithTypeVariables(
-                type = type,
+                type = this,
                 declarationType = getJavaWildcard(scope.declarationType(), scope),
                 scope = scope,
             )
         } else {
-            getJavaWildcard(type, scope)
+            getJavaWildcard(this, scope)
         }
-
-        // As a final pass, we apply variance from any @JvmSuppressWildcards or @JvmWildcard
-        // annotations on the resolved type.
-        return applyJvmWildcardAnnotations(resolvedType)
     }
 
     private fun hasTypeVariables(
@@ -99,15 +136,6 @@
         if (type.isError || typeStack.queue.contains(type)) {
             return type
         }
-        if (type.declaration is KSTypeAlias) {
-            return getJavaWildcard(
-                type = (type.declaration as KSTypeAlias).type.resolve(),
-                scope = scope,
-                typeStack = typeStack,
-                typeArgStack = typeArgStack,
-                typeParamStack = typeParamStack,
-            )
-        }
         return typeStack.withReference(type) {
             val resolvedTypeArgs =
                 type.arguments.indices.map { i ->
@@ -120,7 +148,7 @@
                         typeParamStack = typeParamStack,
                     )
                 }
-            type.replace(resolvedTypeArgs)
+            type.createWrapper(resolvedTypeArgs)
         }
     }
 
@@ -158,10 +186,10 @@
                 if (typeParamStack.indices.none { i ->
                         (typeParamStack[i].variance == Variance.CONTRAVARIANT ||
                             typeArgStack[i].variance == Variance.CONTRAVARIANT) &&
-                        // The declaration and use site variance is ignored when using @JvmWildcard
-                        // explicitly on a type.
-                        !typeArgStack[i].hasJvmWildcardAnnotation()
-                }) {
+                            // The declaration and use site variance is ignored when using @JvmWildcard
+                            // explicitly on a type.
+                            !typeArgStack[i].hasJvmWildcardAnnotation()
+                    }) {
                     return false
                 }
             } else {
@@ -217,7 +245,7 @@
         } else {
             typeArg.variance
         }
-        return createTypeArgument(resolvedType, resolvedVariance)
+        return typeArg.createWrapper(resolvedType, resolvedVariance)
     }
 
     private fun getJavaWildcardWithTypeVariables(
@@ -252,7 +280,7 @@
                         )
                     }
                 }
-            type.replace(resolvedTypeArgs)
+            type.createWrapper(resolvedTypeArgs)
         }
     }
 
@@ -293,7 +321,7 @@
         } else {
             typeArg.variance
         }
-        return createTypeArgument(resolvedType, resolvedVariance)
+        return typeArg.createWrapper(resolvedType, resolvedVariance)
     }
 
     private fun getJavaWildcardWithTypeVariablesForOuterType(
@@ -322,26 +350,27 @@
         } else {
             typeArg.variance
         }
-        return createTypeArgument(resolvedType, resolvedVariance)
+        return typeArg.createWrapper(resolvedType, resolvedVariance)
     }
 
-    private fun applyJvmWildcardAnnotations(
-        type: KSType,
+    private fun KSType.applyJvmWildcardAnnotations(
         typeStack: ReferenceStack = ReferenceStack(),
+        typeArgStack: List<KSTypeArgument> = emptyList(),
     ): KSType {
-        if (type.isError || typeStack.queue.contains(type)) {
-            return type
+        if (isError || typeStack.queue.contains(this)) {
+            return this
         }
-        return typeStack.withReference(type) {
+        return typeStack.withReference(this) {
             val resolvedTypeArgs =
-                type.arguments.indices.map { i ->
+                arguments.indices.map { i ->
                     applyJvmWildcardAnnotations(
-                        typeArg = type.arguments[i],
-                        typeParameter = type.declaration.typeParameters[i],
+                        typeArg = arguments[i],
+                        typeParameter = declaration.typeParameters[i],
+                        typeArgStack = typeArgStack,
                         typeStack = typeStack,
                     )
                 }
-            type.replace(resolvedTypeArgs)
+            createWrapper(resolvedTypeArgs)
         }
     }
 
@@ -349,6 +378,7 @@
         typeArg: KSTypeArgument,
         typeParameter: KSTypeParameter,
         typeStack: ReferenceStack,
+        typeArgStack: List<KSTypeArgument>,
     ): KSTypeArgument {
         val type = typeArg.type?.resolve()
         if (
@@ -359,28 +389,107 @@
         ) {
             return typeArg
         }
-        val resolvedType = applyJvmWildcardAnnotations(
-            type = type,
-            typeStack = typeStack,
-        )
+        val resolvedType = type.applyJvmWildcardAnnotations(typeStack, typeArgStack + typeArg)
         val resolvedVariance = when {
             typeParameter.variance == Variance.INVARIANT &&
                 typeArg.variance != Variance.INVARIANT -> typeArg.variance
             typeArg.hasJvmWildcardAnnotation() -> typeParameter.variance
-                typeStack.queue.any { it.hasSuppressJvmWildcardAnnotation() } ||
+            // We only need to check the first type in the stack for @JvmSuppressWildcards.
+            // Any other @JvmSuppressWildcards usages will be placed on the type arguments rather
+            // than the types, so no need to check the rest of the types.
+            typeStack.queue.first().hasSuppressJvmWildcardAnnotation() ||
                 typeArg.hasSuppressWildcardsAnnotationInHierarchy() ||
+                typeArgStack.any { it.hasSuppressJvmWildcardAnnotation() } ||
                 typeParameter.hasSuppressWildcardsAnnotationInHierarchy() -> Variance.INVARIANT
             else -> typeArg.variance
         }
-        return createTypeArgument(resolvedType, resolvedVariance)
+        return typeArg.createWrapper(resolvedType, resolvedVariance)
     }
 
-    private fun KSType.isTypeParameter(): Boolean {
-        return createTypeReference().isTypeParameterReference()
+    private fun KSTypeArgument.createWrapper(
+        newType: KSType,
+        newVariance: Variance
+    ): KSTypeArgument {
+        return KSTypeArgumentWrapper(
+            delegate = (this as? KSTypeArgumentWrapper)?.delegate ?: this,
+            type = newType.createTypeReference(),
+            variance = newVariance
+        )
     }
 
-    private fun createTypeArgument(type: KSType, variance: Variance): KSTypeArgument {
-        return resolver.getTypeArgument(type.createTypeReference(), variance)
+    private fun KSType.createWrapper(newArguments: List<KSTypeArgument>): KSType {
+        return KSTypeWrapper(
+            delegate = (this as? KSTypeWrapper)?.delegate ?: this,
+            arguments = newArguments
+        )
+    }
+
+    private fun KSType.removeWrappers(typeStack: ReferenceStack = ReferenceStack()): KSType {
+        if (isError || typeStack.queue.contains(this)) {
+            return this
+        }
+        return typeStack.withReference(this) {
+            val delegateType = (this as? KSTypeWrapper)?.delegate ?: this
+            delegateType.replace(arguments.map { it.removeWrappers(typeStack) })
+        }
+    }
+
+    private fun KSTypeArgument.removeWrappers(
+        typeStack: ReferenceStack = ReferenceStack()
+    ): KSTypeArgument {
+        val type = type?.resolve()
+        if (
+            type == null ||
+            type.isError ||
+            variance == Variance.STAR ||
+            typeStack.queue.contains(type)
+        ) {
+            return this
+        }
+        return resolver.getTypeArgument(
+            type.removeWrappers(typeStack).createTypeReference(),
+            variance
+        )
+    }
+}
+
+/**
+ * A wrapper for creating a new [KSType] that allows arguments of type [KSTypeArgumentWrapper].
+ *
+ * Note: This wrapper acts similar to [KSType#replace(KSTypeArgument)]. However, we can't call
+ * [KSType#replace(KSTypeArgument)] directly when using [KSTypeArgumentWrapper] or we'll get an
+ * [IllegalStateException] since KSP tries to cast to its own implementation of [KSTypeArgument].
+ */
+private class KSTypeWrapper(
+    val delegate: KSType,
+    override val arguments: List<KSTypeArgument>
+) : KSType by delegate {
+    override fun toString() = if (arguments.isNotEmpty()) {
+        "${delegate.toString().substringBefore("<")}<${arguments.joinToString(",")}>"
+    } else {
+        delegate.toString()
+    }
+}
+
+/**
+ * A wrapper for creating a new [KSTypeArgument] that delegates to the original argument for
+ * annotations.
+ *
+ * Note: This wrapper acts similar to [Resolver#getTypeArgument(KSTypeReference, Variance)].
+ * However, we can't call [Resolver#getTypeArgument(KSTypeReference, Variance)] directly because
+ * we'll lose information about annotations (e.g. `@JvmSuppressWildcards`) that were on the original
+ * type argument.
+ */
+private class KSTypeArgumentWrapper(
+    val delegate: KSTypeArgument,
+    override val type: KSTypeReference,
+    override val variance: Variance,
+) : KSTypeArgument by delegate {
+    override fun toString() = when (variance) {
+        Variance.INVARIANT -> "${type.resolve()}"
+        Variance.CONTRAVARIANT -> "in ${type.resolve()}"
+        Variance.COVARIANT -> "out ${type.resolve()}"
+        Variance.STAR -> "*"
     }
 }
 
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolverScope.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolverScope.kt
index f39ab11..19f546a 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolverScope.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolverScope.kt
@@ -27,7 +27,7 @@
  * Provides KSType resolution scope for a type.
  */
 internal sealed class KSTypeVarianceResolverScope(
-    private val annotated: KSAnnotated,
+    val annotated: KSAnnotated,
     private val container: KSDeclaration?,
     private val asMemberOf: KspType?
 ) {
@@ -36,8 +36,15 @@
      * parameter is in kotlin or the containing class, which inherited the method, is in kotlin.
      */
     val needsWildcardResolution: Boolean by lazy {
+        fun nodeForSuppressionCheck(): KSAnnotated? = when (this) {
+            // For property setter and getter methods skip to the enclosing class to check for
+            // suppression annotations to match KAPT.
+            is PropertySetterParameterType,
+            is PropertyGetterMethodReturnType -> annotated.parent?.parent as? KSAnnotated
+            else -> annotated
+        }
         (annotated.isInKotlinCode() || container?.isInKotlinCode() == true) &&
-            !annotated.hasSuppressWildcardsAnnotationInHierarchy()
+            nodeForSuppressionCheck()?.hasSuppressWildcardsAnnotationInHierarchy() != true
     }
 
     private fun KSAnnotated.isInKotlinCode(): Boolean {
diff --git a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/ksp/KspTypeNamesGoldenTest.kt b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/ksp/KspTypeNamesGoldenTest.kt
index 2bd5ed4..be3f4bf 100644
--- a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/ksp/KspTypeNamesGoldenTest.kt
+++ b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/ksp/KspTypeNamesGoldenTest.kt
@@ -159,6 +159,11 @@
                 class MyGenericIn<in T>
                 class MyGenericOut<out T>
                 class MyGenericMultipleParameters<T1: MyGeneric<*>, T2: MyGeneric<T1>>
+                interface MyInterface
+                typealias MyInterfaceAlias = MyInterface
+                typealias MyGenericAlias = MyGenericIn<MyGenericOut<MyGenericOut<MyType>>>
+                typealias JSW = JvmSuppressWildcards
+                typealias JW = JvmWildcard
                 typealias MyLambdaTypeAlias = (@JvmWildcard MyType) -> @JvmWildcard MyType
                 enum class MyEnum {
                     VAL1,
@@ -341,6 +346,14 @@
                     sealedListChild: List<GrandParentSealed.Parent2.Child1>,
                     jvmWildcard: List<@JvmWildcard String>,
                     suppressJvmWildcard: List<@JvmSuppressWildcards Number>,
+                    suppressJvmWildcardsGeneric1: @JvmSuppressWildcards List<MyGenericOut<MyGenericIn<MyGeneric<MyType>>>>,
+                    suppressJvmWildcardsGeneric2: List<@JvmSuppressWildcards MyGenericOut<MyGenericIn<MyGeneric<MyType>>>>,
+                    suppressJvmWildcardsGeneric3: List<MyGenericOut<@JvmSuppressWildcards MyGenericIn<MyGeneric<MyType>>>>,
+                    suppressJvmWildcardsGeneric4: List<MyGenericOut<MyGenericIn<@JvmSuppressWildcards MyGeneric<MyType>>>>,
+                    interfaceAlias: List<MyInterfaceAlias>,
+                    genericAlias: List<MyGenericAlias>,
+                    jvmWildcardTypeAlias: List<@JW String>,
+                    suppressJvmWildcardTypeAlias: List<@JSW Number>,
                 ) {
                     var propWithFinalType: String = ""
                     var propWithOpenType: Number = 3
@@ -353,6 +366,16 @@
                     var propSealedListChild: List<GrandParentSealed.Parent2.Child1> = TODO()
                     @JvmSuppressWildcards
                     var propWithOpenTypeButSuppressAnnotation: Number = 3
+                    var genericVar: List<MyGenericIn<MyGenericOut<MyGenericOut<MyType>>>> = TODO()
+                    @JvmSuppressWildcards var suppressJvmWildcardsGenericVar1: List<MyGenericIn<MyGenericOut<MyGenericOut<MyType>>>> = TODO()
+                    var suppressJvmWildcardsGenericVar2: @JvmSuppressWildcards List<MyGenericIn<MyGenericOut<MyGenericOut<MyType>>>> = TODO()
+                    var suppressJvmWildcardsGenericVar3: List<@JvmSuppressWildcards MyGenericIn<MyGenericOut<MyGenericOut<MyType>>>> = TODO()
+                    var suppressJvmWildcardsGenericVar4: List<MyGenericIn<@JvmSuppressWildcards MyGenericOut<MyGenericOut<MyType>>>> = TODO()
+                    var suppressJvmWildcardsGenericVar5: List<MyGenericIn<MyGenericOut<@JvmSuppressWildcards MyGenericOut<MyType>>>> = TODO()
+                    var interfaceAlias: List<MyInterfaceAlias> = TODO()
+                    var genericAlias: List<MyGenericAlias> = TODO()
+                    var jvmWildcardTypeAlias: List<@JW String> = TODO()
+                    var suppressJvmWildcardTypeAlias: List<@JSW Number> = TODO()
                     fun list(list: List<*>): List<*> { TODO() }
                     fun listTypeArg(list: List<R>): List<R> { TODO() }
                     fun listTypeArgNumber(list: List<Number>): List<Number> { TODO() }
@@ -393,6 +416,43 @@
                     fun suspendExplicitJvmSuppressWildcard_OnType2(
                         list: @JvmSuppressWildcards List<Number>
                     ): @JvmSuppressWildcards List<Number> { TODO() }
+                    fun interfaceAlias(
+                        param: List<MyInterfaceAlias>
+                    ): List<MyInterfaceAlias> = TODO()
+                    fun explicitJvmSuppressWildcardsOnAlias(
+                        param: List<@JvmSuppressWildcards MyInterfaceAlias>,
+                    ): List<@JvmSuppressWildcards MyInterfaceAlias> = TODO()
+                    fun genericAlias(param: List<MyGenericAlias>): List<MyGenericAlias> = TODO()
+                    fun explicitJvmSuppressWildcardsOnGenericAlias(
+                        param: List<@JvmSuppressWildcards MyGenericAlias>,
+                    ): List<@JvmSuppressWildcards MyGenericAlias> = TODO()
+                    fun explicitOutOnInvariant_onType1_WithExplicitJvmSuppressWildcardAlias(
+                        list: @JSW MyGeneric<out MyGeneric<MyType>>
+                    ): @JSW MyGeneric<out MyGeneric<MyType>> { TODO() }
+                    fun explicitOutOnInvariant_onType2_WithExplicitJvmSuppressWildcardAlias(
+                        list: @JSW MyGeneric<MyGeneric<out MyType>>
+                    ): @JSW MyGeneric<MyGeneric<out MyType>> { TODO() }
+                    fun explicitOutOnVariant_onType1(
+                        list: List<out List<Number>>
+                    ): List<out List<Number>> { TODO() }
+                    fun explicitOutOnVariant_onType2(
+                        list: List<List<out Number>>
+                    ): List<List<out Number>> { TODO() }
+                    fun explicitOutOnVariant_onType1_WithExplicitJvmSuppressWildcardAlias(
+                        list: @JSW List<out List<Number>>
+                    ): @JSW List<out List<Number>> { TODO() }
+                    fun explicitOutOnVariant_onType2_WithExplicitJvmSuppressWildcardAlias(
+                        list: @JSW List<List<out Number>>
+                    ): @JSW List<List<out Number>> { TODO() }
+                    fun explicitJvmWildcardTypeAlias(
+                        list: List<@JW String>
+                    ): List<@JW String> { TODO() }
+                    fun explicitJvmSuppressWildcardTypeAlias_OnType(
+                        list: List<@JSW Number>
+                    ): List<@JSW Number> { TODO() }
+                    fun explicitJvmSuppressWildcardTypeAlias_OnType2(
+                        list: @JSW List<Number>
+                    ): @JSW List<Number> { TODO() }
                 }
                 """.trimIndent()
             ), listOf(className)
diff --git a/slice/slice-view/src/main/res/values-da/strings.xml b/slice/slice-view/src/main/res/values-da/strings.xml
index 1491d22..379bfdb 100644
--- a/slice/slice-view/src/main/res/values-da/strings.xml
+++ b/slice/slice-view/src/main/res/values-da/strings.xml
@@ -30,8 +30,8 @@
       <item quantity="other">For <xliff:g id="ID_2">%d</xliff:g> år siden</item>
     </plurals>
     <plurals name="abc_slice_duration_days" formatted="false" msgid="8356547162075064530">
-      <item quantity="one">For <xliff:g id="ID_2">%d</xliff:g> dag siden</item>
-      <item quantity="other">For <xliff:g id="ID_2">%d</xliff:g> dage siden</item>
+      <item quantity="one"><xliff:g id="ID_2">%d</xliff:g> dag siden</item>
+      <item quantity="other"><xliff:g id="ID_2">%d</xliff:g> dage siden</item>
     </plurals>
     <string name="abc_slice_error" msgid="1794214973158263497">"Der kunne ikke oprettes forbindelse"</string>
 </resources>
diff --git a/tv/integration-tests/playground/src/main/java/androidx/tv/integration/playground/FeaturedCarousel.kt b/tv/integration-tests/playground/src/main/java/androidx/tv/integration/playground/FeaturedCarousel.kt
index 6f6d535..855ac02 100644
--- a/tv/integration-tests/playground/src/main/java/androidx/tv/integration/playground/FeaturedCarousel.kt
+++ b/tv/integration-tests/playground/src/main/java/androidx/tv/integration/playground/FeaturedCarousel.kt
@@ -16,6 +16,13 @@
 
 package androidx.tv.integration.playground
 
+import androidx.compose.animation.ExperimentalAnimationApi
+import androidx.compose.animation.core.tween
+import androidx.compose.animation.fadeIn
+import androidx.compose.animation.fadeOut
+import androidx.compose.animation.slideInVertically
+import androidx.compose.animation.slideOutHorizontally
+import androidx.compose.animation.togetherWith
 import androidx.compose.foundation.background
 import androidx.compose.foundation.border
 import androidx.compose.foundation.focusable
@@ -88,7 +95,7 @@
     }
 }
 
-@OptIn(ExperimentalTvMaterial3Api::class)
+@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalAnimationApi::class)
 @Composable
 internal fun FeaturedCarousel(modifier: Modifier = Modifier) {
     val backgrounds = listOf(
@@ -117,33 +124,31 @@
                     .align(Alignment.BottomEnd)
                     .padding(16.dp),
             )
-        }
+        },
+        contentTransformStartToEnd =
+            fadeIn(tween(1000)).togetherWith(fadeOut(tween(1000))),
+        contentTransformEndToStart =
+            fadeIn(tween(1000)).togetherWith(fadeOut(tween(1000)))
     ) { itemIndex ->
-        CarouselItem(
-            modifier = Modifier.semantics {
-                contentDescription = "Featured Content"
-            },
-            background = {
-                Box(
-                    modifier = Modifier
-                        .background(backgrounds[itemIndex])
-                        .fillMaxSize()
-                )
-            },
+        Box(
+            modifier = Modifier
+                .background(backgrounds[itemIndex])
+                .fillMaxSize()
+                .semantics { contentDescription = "Featured Content" }
         ) {
-            Box(
+            Column(
                 modifier = Modifier
-                    .fillMaxSize()
-                    .padding(20.dp),
-                contentAlignment = Alignment.BottomStart
+                    .padding(start = 50.dp, top = 100.dp)
+                    .animateEnterExit(
+                        enter = slideInVertically(animationSpec = tween(1000)),
+                        exit = slideOutHorizontally(animationSpec = tween(1000))
+                    )
             ) {
-                Column {
-                    Text(text = "This is sample text content.", color = Color.Yellow)
-                    Text(text = "Sample description.", color = Color.Yellow)
-                    Row {
-                        OverlayButton(text = "Play")
-                        OverlayButton(text = "Add to Watchlist")
-                    }
+                Text(text = "This is sample text content.", color = Color.Yellow)
+                Text(text = "Sample description of slide ${itemIndex + 1}.", color = Color.Yellow)
+                Row {
+                    OverlayButton(text = "Play")
+                    OverlayButton(text = "Add to Watchlist")
                 }
             }
         }
diff --git a/tv/integration-tests/presentation/README.md b/tv/integration-tests/presentation/README.md
index eb86b24..9c46867 100644
--- a/tv/integration-tests/presentation/README.md
+++ b/tv/integration-tests/presentation/README.md
@@ -3,12 +3,11 @@
 ## Setup
 
 * Uncomment the `coil` and `gson` libraries dependency additions from the `build.gradle` file.
+* Uncomment the function content and imports from
+  `presentation/src/main/java/androidx/tv/integration/presentation/ExternalLibs.kt` file
 * Create the `data.json` file in `presentation/src/main/assets` directory and add the content from
   this link: go/compose-tv-presentation-app-data
 
 > If you are not a Googler and want to use this app for
 > testing, you will have to create the `data.json` file by following the schema mentioned in the
 `Data.kt` file
-
-* Uncomment the function content and imports from
-  `presentation/src/main/java/androidx/tv/integration/presentation/ExternalLibs.kt` file
diff --git a/tv/integration-tests/presentation/src/main/java/androidx/tv/integration/presentation/FeaturedCarousel.kt b/tv/integration-tests/presentation/src/main/java/androidx/tv/integration/presentation/FeaturedCarousel.kt
index 33e5b16..94df400 100644
--- a/tv/integration-tests/presentation/src/main/java/androidx/tv/integration/presentation/FeaturedCarousel.kt
+++ b/tv/integration-tests/presentation/src/main/java/androidx/tv/integration/presentation/FeaturedCarousel.kt
@@ -16,6 +16,15 @@
 
 package androidx.tv.integration.presentation
 
+import androidx.compose.animation.AnimatedContentScope
+import androidx.compose.animation.ExperimentalAnimationApi
+import androidx.compose.animation.core.tween
+import androidx.compose.animation.fadeIn
+import androidx.compose.animation.fadeOut
+import androidx.compose.animation.slideInHorizontally
+import androidx.compose.animation.slideOutHorizontally
+import androidx.compose.animation.togetherWith
+import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.height
@@ -32,7 +41,6 @@
 import androidx.compose.ui.unit.sp
 import androidx.tv.material3.Carousel
 import androidx.tv.material3.CarouselDefaults
-import androidx.tv.material3.CarouselScope
 import androidx.tv.material3.CarouselState
 import androidx.tv.material3.ExperimentalTvMaterial3Api
 import androidx.tv.material3.Text
@@ -60,7 +68,11 @@
                     .align(Alignment.BottomEnd)
                     .padding(end = 58.dp, bottom = 16.dp),
             )
-        }
+        },
+        contentTransformEndToStart =
+            fadeIn(tween(1000)).togetherWith(fadeOut(tween(1000))),
+        contentTransformStartToEnd =
+            fadeIn(tween(1000)).togetherWith(fadeOut(tween(1000)))
     ) { itemIndex ->
         val movie = movies[itemIndex]
 
@@ -80,22 +92,23 @@
     }
 }
 
-@OptIn(ExperimentalTvMaterial3Api::class)
+@OptIn(ExperimentalAnimationApi::class)
 @Composable
-private fun CarouselScope.CarouselSlide(
+private fun AnimatedContentScope.CarouselSlide(
     title: String,
     description: String,
     background: @Composable () -> Unit,
     actions: @Composable () -> Unit
 ) {
-    CarouselItem(
-        background = {
-            background()
-        },
-        modifier = Modifier
-    ) {
+    Box {
+        background()
         Column(
-            modifier = Modifier.padding(start = 58.dp, top = 150.dp)
+            modifier = Modifier
+                .padding(start = 58.dp, top = 150.dp)
+                .animateEnterExit(
+                    enter = slideInHorizontally(animationSpec = tween(1000)) { it / 2 },
+                    exit = slideOutHorizontally(animationSpec = tween(1000))
+                )
         ) {
             Text(
                 text = title,
diff --git a/tv/samples/src/main/java/androidx/tv/samples/CarouselSamples.kt b/tv/samples/src/main/java/androidx/tv/samples/CarouselSamples.kt
index aba7109..b356829 100644
--- a/tv/samples/src/main/java/androidx/tv/samples/CarouselSamples.kt
+++ b/tv/samples/src/main/java/androidx/tv/samples/CarouselSamples.kt
@@ -17,6 +17,13 @@
 package androidx.tv.samples
 
 import androidx.annotation.Sampled
+import androidx.compose.animation.ExperimentalAnimationApi
+import androidx.compose.animation.core.tween
+import androidx.compose.animation.fadeIn
+import androidx.compose.animation.fadeOut
+import androidx.compose.animation.slideInHorizontally
+import androidx.compose.animation.slideOutHorizontally
+import androidx.compose.animation.togetherWith
 import androidx.compose.foundation.background
 import androidx.compose.foundation.border
 import androidx.compose.foundation.layout.Box
@@ -44,7 +51,7 @@
 import androidx.tv.material3.CarouselState
 import androidx.tv.material3.ExperimentalTvMaterial3Api
 
-@OptIn(ExperimentalTvMaterial3Api::class)
+@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalAnimationApi::class)
 @Sampled
 @Composable
 fun SimpleCarousel() {
@@ -59,16 +66,16 @@
         modifier = Modifier
             .height(300.dp)
             .fillMaxWidth(),
+        contentTransformEndToStart =
+        fadeIn(tween(1000)).togetherWith(fadeOut(tween(1000))),
+        contentTransformStartToEnd =
+        fadeIn(tween(1000)).togetherWith(fadeOut(tween(1000)))
     ) { itemIndex ->
-        CarouselItem(
-            background = {
-                Box(
-                    modifier = Modifier
-                        .background(backgrounds[itemIndex])
-                        .border(2.dp, Color.White.copy(alpha = 0.5f))
-                        .fillMaxSize()
-                )
-            }
+        Box(
+            modifier = Modifier
+                .background(backgrounds[itemIndex])
+                .border(2.dp, Color.White.copy(alpha = 0.5f))
+                .fillMaxSize()
         ) {
             var isFocused by remember { mutableStateOf(false) }
 
@@ -82,6 +89,13 @@
                         color = if (isFocused) Color.Red else Color.Transparent,
                         shape = RoundedCornerShape(50)
                     )
+                    // Duration of animation here should be less than or equal to carousel's
+                    // contentTransform duration to ensure the item below does not disappear
+                    // abruptly.
+                    .animateEnterExit(
+                        enter = slideInHorizontally(animationSpec = tween(1000)) { it / 2 },
+                        exit = slideOutHorizontally(animationSpec = tween(1000))
+                    )
                     .padding(vertical = 2.dp, horizontal = 5.dp)
             ) {
                 Text(text = "Play")
@@ -90,7 +104,7 @@
     }
 }
 
-@OptIn(ExperimentalTvMaterial3Api::class)
+@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalAnimationApi::class)
 @Sampled
 @Composable
 fun CarouselIndicatorWithRectangleShape() {
@@ -127,24 +141,30 @@
                     )
                 }
             )
-        }
+        },
+        contentTransformEndToStart =
+        fadeIn(tween(1000)).togetherWith(fadeOut(tween(1000))),
+        contentTransformStartToEnd =
+        fadeIn(tween(1000)).togetherWith(fadeOut(tween(1000)))
     ) { itemIndex ->
-        CarouselItem(
-            background = {
-                Box(
-                    modifier = Modifier
-                        .background(backgrounds[itemIndex])
-                        .border(2.dp, Color.White.copy(alpha = 0.5f))
-                        .fillMaxSize()
-                )
-            }
+        Box(
+            modifier = Modifier
+                .background(backgrounds[itemIndex])
+                .border(2.dp, Color.White.copy(alpha = 0.5f))
+                .fillMaxSize()
         ) {
             var isFocused by remember { mutableStateOf(false) }
-
             Button(
                 onClick = { },
                 modifier = Modifier
                     .onFocusChanged { isFocused = it.isFocused }
+                    // Duration of animation here should be less than or equal to carousel's
+                    // contentTransform duration to ensure the item below does not disappear
+                    // abruptly.
+                    .animateEnterExit(
+                        enter = slideInHorizontally(animationSpec = tween(1000)) { it / 2 },
+                        exit = slideOutHorizontally(animationSpec = tween(1000))
+                    )
                     .padding(40.dp)
                     .border(
                         width = 2.dp,
diff --git a/tv/tv-material/api/public_plus_experimental_current.txt b/tv/tv-material/api/public_plus_experimental_current.txt
index 12488a4..093044e 100644
--- a/tv/tv-material/api/public_plus_experimental_current.txt
+++ b/tv/tv-material/api/public_plus_experimental_current.txt
@@ -114,24 +114,8 @@
     field public static final long TimeToDisplayItemMillis = 5000L; // 0x1388L
   }
 
-  @androidx.tv.material3.ExperimentalTvMaterial3Api public final class CarouselItemDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransformEndToStart();
-    method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransformLeftToRight();
-    method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransformRightToLeft();
-    method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransformStartToEnd();
-    property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransformEndToStart;
-    property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransformLeftToRight;
-    property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransformRightToLeft;
-    property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransformStartToEnd;
-    field public static final androidx.tv.material3.CarouselItemDefaults INSTANCE;
-  }
-
   public final class CarouselKt {
-    method @androidx.compose.runtime.Composable @androidx.tv.material3.ExperimentalTvMaterial3Api public static void Carousel(int itemCount, optional androidx.compose.ui.Modifier modifier, optional androidx.tv.material3.CarouselState carouselState, optional long autoScrollDurationMillis, optional androidx.compose.animation.ContentTransform contentTransformStartToEnd, optional androidx.compose.animation.ContentTransform contentTransformEndToStart, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> carouselIndicator, kotlin.jvm.functions.Function2<? super androidx.tv.material3.CarouselScope,? super java.lang.Integer,kotlin.Unit> content);
-  }
-
-  @androidx.tv.material3.ExperimentalTvMaterial3Api public final class CarouselScope {
-    method @androidx.compose.runtime.Composable @androidx.tv.material3.ExperimentalTvMaterial3Api public void CarouselItem(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> background, optional androidx.compose.animation.ContentTransform contentTransformStartToEnd, optional androidx.compose.animation.ContentTransform contentTransformEndToStart, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @androidx.tv.material3.ExperimentalTvMaterial3Api public static void Carousel(int itemCount, optional androidx.compose.ui.Modifier modifier, optional androidx.tv.material3.CarouselState carouselState, optional long autoScrollDurationMillis, optional androidx.compose.animation.ContentTransform contentTransformStartToEnd, optional androidx.compose.animation.ContentTransform contentTransformEndToStart, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> carouselIndicator, kotlin.jvm.functions.Function2<? super androidx.compose.animation.AnimatedContentScope,? super java.lang.Integer,kotlin.Unit> content);
   }
 
   @androidx.compose.runtime.Stable @androidx.tv.material3.ExperimentalTvMaterial3Api public final class CarouselState {
diff --git a/tv/tv-material/src/androidTest/java/androidx/tv/material3/CarouselScopeTest.kt b/tv/tv-material/src/androidTest/java/androidx/tv/material3/CarouselScopeTest.kt
deleted file mode 100644
index 2f80311..0000000
--- a/tv/tv-material/src/androidTest/java/androidx/tv/material3/CarouselScopeTest.kt
+++ /dev/null
@@ -1,121 +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.tv.material3
-
-import androidx.compose.foundation.background
-import androidx.compose.foundation.border
-import androidx.compose.foundation.focusable
-import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.text.BasicText
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableStateOf
-import androidx.compose.runtime.remember
-import androidx.compose.runtime.setValue
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.focus.onFocusChanged
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.input.key.NativeKeyEvent
-import androidx.compose.ui.platform.testTag
-import androidx.compose.ui.semantics.SemanticsActions
-import androidx.compose.ui.test.assertIsFocused
-import androidx.compose.ui.test.junit4.createComposeRule
-import androidx.compose.ui.test.onNodeWithTag
-import androidx.compose.ui.test.performSemanticsAction
-import androidx.compose.ui.unit.dp
-import androidx.test.platform.app.InstrumentationRegistry
-import org.junit.Rule
-import org.junit.Test
-
-const val sampleButtonTag = "sample-button"
-
-class CarouselScopeTest {
-    @get:Rule
-    val rule = createComposeRule()
-
-    @OptIn(ExperimentalTvMaterial3Api::class)
-    @Test
-    fun carouselItem_parentContainerGainsFocused_onBackPress() {
-        val containerBoxTag = "container-box"
-        val carouselItemTag = "carousel-item"
-
-        rule.setContent {
-            val carouselState = remember { CarouselState() }
-            var isContainerBoxFocused by remember { mutableStateOf(false) }
-            Box(
-                modifier = Modifier
-                    .testTag(containerBoxTag)
-                    .fillMaxSize()
-                    .onFocusChanged { isContainerBoxFocused = it.isFocused }
-                    .border(10.dp, if (isContainerBoxFocused) Color.Green else Color.Transparent)
-                    .focusable()
-            ) {
-                CarouselScope(carouselState = carouselState)
-                    .CarouselItem(
-                        modifier = Modifier
-                            .testTag(carouselItemTag),
-                        background = {
-                            Box(
-                                modifier = Modifier
-                                    .size(300.dp)
-                                    .background(Color.Cyan))
-                        },
-                        content = { SampleButton() },
-                    )
-            }
-        }
-
-        // Request focus for Carousel Item on start
-        rule.onNodeWithTag(carouselItemTag)
-            .performSemanticsAction(SemanticsActions.RequestFocus)
-        rule.waitForIdle()
-
-        // Check if overlay button in carousel item is focused
-        rule.onNodeWithTag(sampleButtonTag, useUnmergedTree = true)
-            .assertIsFocused()
-
-        // Trigger back press
-        performKeyPress(NativeKeyEvent.KEYCODE_BACK)
-        rule.waitForIdle()
-
-        // Check if carousel item loses focus and parent container gains focus
-        rule.onNodeWithTag(containerBoxTag).assertIsFocused()
-    }
-
-    private fun performKeyPress(keyCode: Int, count: Int = 1) {
-        repeat(count) {
-            InstrumentationRegistry.getInstrumentation().sendKeyDownUpSync(keyCode)
-        }
-    }
-}
-
-@Composable
-private fun SampleButton(text: String = sampleButtonTag) {
-    var isFocused by remember { mutableStateOf(false) }
-    BasicText(
-        text = text,
-        modifier = Modifier
-            .testTag(text)
-            .size(100.dp, 20.dp)
-            .background(Color.Yellow)
-            .onFocusChanged { isFocused = it.isFocused }
-            .border(2.dp, if (isFocused) Color.Green else Color.Transparent)
-            .focusable()
-    )
-}
diff --git a/tv/tv-material/src/androidTest/java/androidx/tv/material3/CarouselTest.kt b/tv/tv-material/src/androidTest/java/androidx/tv/material3/CarouselTest.kt
index 1c863ef..b6c31ca8 100644
--- a/tv/tv-material/src/androidTest/java/androidx/tv/material3/CarouselTest.kt
+++ b/tv/tv-material/src/androidTest/java/androidx/tv/material3/CarouselTest.kt
@@ -18,8 +18,10 @@
 
 import android.os.SystemClock
 import android.view.KeyEvent
-import androidx.compose.animation.ContentTransform
+import androidx.compose.animation.AnimatedContentScope
 import androidx.compose.animation.ExperimentalAnimationApi
+import androidx.compose.animation.slideInHorizontally
+import androidx.compose.animation.slideOutHorizontally
 import androidx.compose.foundation.background
 import androidx.compose.foundation.border
 import androidx.compose.foundation.focusable
@@ -75,7 +77,7 @@
 private const val delayBetweenItems = 2500L
 private const val animationTime = 900L
 
-@OptIn(ExperimentalTvMaterial3Api::class)
+@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalAnimationApi::class)
 class CarouselTest {
     @get:Rule
     val rule = createComposeRule()
@@ -433,7 +435,13 @@
                         autoScrollDurationMillis = delayBetweenItems
                     ) {
                         SampleCarouselItem(index = it) {
-                            Box {
+                            Box(
+                                modifier = Modifier
+                                    .animateEnterExit(
+                                        enter = slideInHorizontally(),
+                                        exit = slideOutHorizontally()
+                                    )
+                            ) {
                                 Column(modifier = Modifier.align(Alignment.BottomStart)) {
                                     BasicText(text = "carousel-frame")
                                     Row {
@@ -829,7 +837,7 @@
     carouselState: CarouselState = remember { CarouselState() },
     itemCount: Int = 3,
     timeToDisplayItemMillis: Long = delayBetweenItems,
-    content: @Composable CarouselScope.(index: Int) -> Unit
+    content: @Composable AnimatedContentScope.(index: Int) -> Unit
 ) {
     Carousel(
         modifier = Modifier
@@ -856,24 +864,16 @@
 
 @OptIn(ExperimentalTvMaterial3Api::class, ExperimentalAnimationApi::class)
 @Composable
-private fun CarouselScope.SampleCarouselItem(
+private fun AnimatedContentScope.SampleCarouselItem(
     index: Int,
     modifier: Modifier = Modifier,
-    contentTransformStartToEnd: ContentTransform =
-        CarouselItemDefaults.contentTransformStartToEnd,
-    content: (@Composable () -> Unit) = { SampleButton("Play $index") },
+    content: (@Composable AnimatedContentScope.() -> Unit) = { SampleButton("Play $index") },
 ) {
-    CarouselItem(
-        modifier = modifier,
-        contentTransformStartToEnd = contentTransformStartToEnd,
-        background = {
-            Box(
-                modifier = Modifier
-                    .fillMaxSize()
-                    .background(Color.Red)
-                    .border(2.dp, Color.Blue)
-            )
-        }
+    Box(
+        modifier = modifier
+            .fillMaxSize()
+            .background(Color.Red)
+            .border(2.dp, Color.Blue)
     ) {
         content()
     }
diff --git a/tv/tv-material/src/main/java/androidx/tv/material3/Carousel.kt b/tv/tv-material/src/main/java/androidx/tv/material3/Carousel.kt
index c8b28a0..001aed4 100644
--- a/tv/tv-material/src/main/java/androidx/tv/material3/Carousel.kt
+++ b/tv/tv-material/src/main/java/androidx/tv/material3/Carousel.kt
@@ -17,6 +17,7 @@
 package androidx.tv.material3
 
 import androidx.compose.animation.AnimatedContent
+import androidx.compose.animation.AnimatedContentScope
 import androidx.compose.animation.AnimatedVisibilityScope
 import androidx.compose.animation.ContentTransform
 import androidx.compose.animation.ExperimentalAnimationApi
@@ -113,7 +114,7 @@
                 .padding(16.dp),
         )
     },
-    content: @Composable CarouselScope.(index: Int) -> Unit
+    content: @Composable AnimatedContentScope.(index: Int) -> Unit
 ) {
     CarouselStateUpdater(carouselState, itemCount)
     var focusState: FocusState? by remember { mutableStateOf(null) }
@@ -176,8 +177,7 @@
             // IndexOutOfBoundsException. Guarding against this by checking against itemCount
             // before invoking.
             if (itemCount > 0) {
-                CarouselScope(carouselState = carouselState)
-                    .content(if (activeItemIndex < itemCount) activeItemIndex else 0)
+                content(if (activeItemIndex < itemCount) activeItemIndex else 0)
             }
         }
         this.carouselIndicator()
diff --git a/tv/tv-material/src/main/java/androidx/tv/material3/CarouselItem.kt b/tv/tv-material/src/main/java/androidx/tv/material3/CarouselItem.kt
deleted file mode 100644
index d0b896a..0000000
--- a/tv/tv-material/src/main/java/androidx/tv/material3/CarouselItem.kt
+++ /dev/null
@@ -1,189 +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.tv.material3
-
-import android.content.Context
-import android.view.accessibility.AccessibilityManager
-import androidx.compose.animation.AnimatedVisibility
-import androidx.compose.animation.ContentTransform
-import androidx.compose.animation.ExperimentalAnimationApi
-import androidx.compose.animation.slideInHorizontally
-import androidx.compose.animation.slideOutHorizontally
-import androidx.compose.animation.togetherWith
-import androidx.compose.foundation.clickable
-import androidx.compose.foundation.focusable
-import androidx.compose.foundation.layout.Box
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.DisposableEffect
-import androidx.compose.runtime.LaunchedEffect
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableStateOf
-import androidx.compose.runtime.remember
-import androidx.compose.runtime.setValue
-import androidx.compose.ui.ExperimentalComposeUiApi
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.focus.FocusDirection
-import androidx.compose.ui.focus.FocusState
-import androidx.compose.ui.focus.onFocusChanged
-import androidx.compose.ui.input.key.onKeyEvent
-import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.platform.LocalFocusManager
-import androidx.compose.ui.platform.LocalLayoutDirection
-import androidx.compose.ui.semantics.CollectionItemInfo
-import androidx.compose.ui.semantics.collectionItemInfo
-import androidx.compose.ui.semantics.isContainer
-import androidx.compose.ui.semantics.semantics
-import androidx.compose.ui.unit.LayoutDirection
-import androidx.tv.material3.KeyEventPropagation.ContinuePropagation
-
-/**
- * This composable is intended for use in Carousel.
- * A composable that has
- * - a [background] layer that is rendered as soon as the composable is visible.
- * - a [content] layer that is rendered on top of the [background]
- *
- * @param background composable defining the background of the item
- * @param itemIndex current active item index of the carousel
- * @param modifier modifier applied to the CarouselItem
- * @param contentTransform content transform to be applied to the content of the item when
- * scrolling
- * @param content composable defining the content displayed on top of the background
- */
-@Suppress("IllegalExperimentalApiUsage")
-@OptIn(ExperimentalAnimationApi::class, ExperimentalComposeUiApi::class)
-@ExperimentalTvMaterial3Api
-@Composable
-internal fun CarouselItem(
-    itemIndex: Int,
-    modifier: Modifier = Modifier,
-    background: @Composable () -> Unit = {},
-    contentTransform: ContentTransform =
-        CarouselItemDefaults.contentTransformStartToEnd,
-    content: @Composable () -> Unit,
-) {
-    val context = LocalContext.current
-    val accessibilityManager = remember {
-        context.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager
-    }
-    var containerBoxFocusState: FocusState? by remember { mutableStateOf(null) }
-    val focusManager = LocalFocusManager.current
-    var exitFocus by remember { mutableStateOf(false) }
-
-    var isVisible by remember { mutableStateOf(false) }
-
-    DisposableEffect(itemIndex) {
-        isVisible = true
-        onDispose { isVisible = false }
-    }
-
-    // This box holds the focus until the overlay animation completes
-    Box(
-        modifier = modifier
-            .semantics(mergeDescendants = true) {
-                @Suppress("DEPRECATION")
-                isContainer = true
-                collectionItemInfo =
-                    CollectionItemInfo(
-                        rowIndex = 0,
-                        rowSpan = 1,
-                        columnIndex = itemIndex,
-                        columnSpan = 1
-                    )
-            }
-            .onKeyEvent {
-                exitFocus = it.isBackPress() && it.isTypeKeyDown()
-                ContinuePropagation
-            }
-            .onFocusChanged {
-                containerBoxFocusState = it
-                if (it.isFocused && exitFocus) {
-                    focusManager.moveFocus(FocusDirection.Exit)
-                    exitFocus = false
-                }
-            }
-            .then(
-                if (accessibilityManager.isEnabled)
-                    Modifier.clickable {
-                        focusManager.moveFocus(FocusDirection.Enter)
-                    }
-                else
-                    Modifier.focusable()
-            )
-    ) {
-        background()
-
-        AnimatedVisibility(
-            visible = isVisible,
-            enter = contentTransform.targetContentEnter,
-            exit = contentTransform.initialContentExit,
-        ) {
-            LaunchedEffect(transition.isRunning, containerBoxFocusState?.isFocused) {
-                if (!transition.isRunning &&
-                    containerBoxFocusState?.isFocused == true &&
-                    !accessibilityManager.isEnabled
-                ) {
-                    focusManager.moveFocus(FocusDirection.Enter)
-                }
-            }
-            content.invoke()
-        }
-    }
-}
-
-@ExperimentalTvMaterial3Api
-object CarouselItemDefaults {
-    /**
-     * Transform the content from right to left
-     */
-    // Keeping this as public so that users can access it directly without the isLTR helper
-    val contentTransformRightToLeft: ContentTransform
-        @Composable get() =
-            slideInHorizontally { it * 4 }
-                .togetherWith(slideOutHorizontally { it * 4 })
-
-    /**
-     * Transform the content from left to right
-     */
-    // Keeping this as public so that users can access it directly without the isLTR helper
-    val contentTransformLeftToRight: ContentTransform
-        @Composable get() =
-            slideInHorizontally()
-                .togetherWith(slideOutHorizontally())
-
-    /**
-     * Content transform applied when moving forward taking isLTR into account
-     */
-    val contentTransformStartToEnd
-        @Composable get() =
-            if (isLtr())
-                contentTransformRightToLeft
-            else
-                contentTransformLeftToRight
-
-    /**
-     * Content transform applied when moving backward taking isLTR into account
-     */
-    val contentTransformEndToStart
-        @Composable get() =
-            if (isLtr())
-                contentTransformLeftToRight
-            else
-                contentTransformRightToLeft
-}
-
-@Composable
-private fun isLtr() = LocalLayoutDirection.current == LayoutDirection.Ltr
diff --git a/tv/tv-material/src/main/java/androidx/tv/material3/CarouselScope.kt b/tv/tv-material/src/main/java/androidx/tv/material3/CarouselScope.kt
deleted file mode 100644
index 665ceb9..0000000
--- a/tv/tv-material/src/main/java/androidx/tv/material3/CarouselScope.kt
+++ /dev/null
@@ -1,66 +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.tv.material3
-
-import androidx.compose.animation.ContentTransform
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Modifier
-
-/**
- * CarouselScope provides a [CarouselScope.CarouselItem] function which you can use to
- * provide the carousel item's animation, background and the inner content.
- */
-@ExperimentalTvMaterial3Api
-class CarouselScope @OptIn(ExperimentalTvMaterial3Api::class)
-internal constructor(private val carouselState: CarouselState) {
-    /**
-     * [CarouselScope.CarouselItem] can be used to define a item's animation, background, and
-     * content. Using this is optional and you can choose to define your own CarouselItem from
-     * scratch
-     *
-     * @param modifier modifier applied to the CarouselItem
-     * @param background composable defining the background of the item
-     * @param contentTransformStartToEnd content transform to be applied to the content of the item
-     * when scrolling forward in the carousel
-     * @param contentTransformEndToStart content transform to be applied to the content of the item
-     * when scrolling backward in the carousel
-     * @param content composable defining the content displayed on top of the background
-     */
-    @Composable
-    @ExperimentalTvMaterial3Api
-    fun CarouselItem(
-        modifier: Modifier = Modifier,
-        background: @Composable () -> Unit = {},
-        contentTransformStartToEnd: ContentTransform =
-            CarouselItemDefaults.contentTransformStartToEnd,
-        contentTransformEndToStart: ContentTransform =
-            CarouselItemDefaults.contentTransformEndToStart,
-        content: @Composable () -> Unit
-    ) {
-        CarouselItem(
-            background = background,
-            itemIndex = carouselState.activeItemIndex,
-            contentTransform =
-            if (carouselState.isMovingBackward)
-                contentTransformEndToStart
-            else
-                contentTransformStartToEnd,
-            modifier = modifier,
-            content = content,
-        )
-    }
-}
diff --git a/wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt b/wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
index f541247..1a5e97a 100644
--- a/wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
+++ b/wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
@@ -16,6 +16,7 @@
 
 package androidx.wear.compose.navigation
 
+import android.util.Log
 import androidx.activity.compose.LocalOnBackPressedDispatcherOwner
 import androidx.compose.foundation.layout.Box
 import androidx.compose.runtime.Composable
@@ -171,9 +172,23 @@
     // no WearNavigator.Destinations were added to the navigation backstack (be sure to build
     // the NavGraph using androidx.wear.compose.navigation.composable) or because the last entry
     // was popped prior to navigating (instead, use navigate with popUpTo).
-    val current = if (backStack.isNotEmpty()) backStack.last() else throw IllegalArgumentException(
-        "The WearNavigator backstack is empty, there is no navigation destination to display."
-    )
+    // If the activity is using FLAG_ACTIVITY_NEW_TASK then it also needs to set
+    // FLAG_ACTIVITY_CLEAR_TASK, otherwise the activity will be created twice,
+    // the first of these with an empty backstack.
+    val current = backStack.lastOrNull()
+
+    if (current == null) {
+        val warningText =
+            "Current backstack entry is empty. Please ensure: \n" +
+                "1. The current WearNavigator navigation backstack is not empty (e.g. by using " +
+                "androidx.wear.compose.navigation.composable to build your nav graph). \n" +
+                "2. The last entry is not popped prior to navigation " +
+                "(instead, use navigate with popUpTo). \n" +
+                "3. If the activity uses FLAG_ACTIVITY_NEW_TASK you should also set " +
+                "FLAG_ACTIVITY_CLEAR_TASK to maintain the backstack consistency."
+
+        Log.w(TAG, warningText)
+    }
 
     val swipeState = state.swipeToDismissBoxState
     LaunchedEffect(swipeState.currentValue) {
@@ -200,7 +215,7 @@
         modifier = Modifier,
         hasBackground = previous != null,
         backgroundKey = previous?.id ?: SwipeToDismissKeys.Background,
-        contentKey = current.id,
+        contentKey = current?.id ?: SwipeToDismissKeys.Content,
         content = { isBackground ->
             BoxedStackEntryContent(if (isBackground) previous else current, stateHolder, modifier)
         }
@@ -279,3 +294,5 @@
         }
     }
 }
+
+private const val TAG = "SwipeDismissableNavHost"
\ No newline at end of file
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/BoolNodes.java b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/BoolNodes.java
index afe4be6..c95560c 100644
--- a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/BoolNodes.java
+++ b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/BoolNodes.java
@@ -35,8 +35,7 @@
         private final DynamicTypeValueReceiverWithPreUpdate<Boolean> mDownstream;
 
         FixedBoolNode(
-                FixedBool protoNode,
-                DynamicTypeValueReceiverWithPreUpdate<Boolean> downstream) {
+                FixedBool protoNode, DynamicTypeValueReceiverWithPreUpdate<Boolean> downstream) {
             mValue = protoNode.getValue();
             mDownstream = downstream;
         }
@@ -171,6 +170,10 @@
                                 return a && b;
                             case LOGICAL_OP_TYPE_OR:
                                 return a || b;
+                            case LOGICAL_OP_TYPE_EQUAL:
+                                return a.equals(b);
+                            case LOGICAL_OP_TYPE_NOT_EQUAL:
+                                return !a.equals(b);
                             default:
                                 Log.e(TAG, "Unknown operation type in LogicalBoolOp");
                                 return false;
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/BoundDynamicTypeImpl.java b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/BoundDynamicTypeImpl.java
index 3ed31ac..bbae3dc 100644
--- a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/BoundDynamicTypeImpl.java
+++ b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/BoundDynamicTypeImpl.java
@@ -16,6 +16,11 @@
 
 package androidx.wear.protolayout.expression.pipeline;
 
+import android.os.Handler;
+import android.os.Looper;
+
+import androidx.annotation.UiThread;
+
 import java.util.List;
 
 /**
@@ -76,6 +81,15 @@
 
     @Override
     public void close() {
+        if (Looper.getMainLooper().isCurrentThread()) {
+            closeInternal();
+        } else {
+            new Handler(Looper.getMainLooper()).post(this::closeInternal);
+        }
+    }
+
+    @UiThread
+    private void closeInternal() {
         mNodes.stream()
                 .filter(n -> n instanceof DynamicDataSourceNode)
                 .forEach(n -> ((DynamicDataSourceNode<?>) n).destroy());
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/TimeGatewayImpl.java b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/TimeGatewayImpl.java
index f9f699d..18bae95 100644
--- a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/TimeGatewayImpl.java
+++ b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/TimeGatewayImpl.java
@@ -138,6 +138,7 @@
     }
 
     @Override
+    @UiThread
     public void close() {
         setUpdatesEnabled(false);
         registeredCallbacks.clear();
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/BoolNodesTest.java b/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/BoolNodesTest.java
new file mode 100644
index 0000000..e5f987c
--- /dev/null
+++ b/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/BoolNodesTest.java
@@ -0,0 +1,165 @@
+/*
+ * 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.wear.protolayout.expression.pipeline;
+
+import static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.LOGICAL_OP_TYPE_AND;
+import static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.LOGICAL_OP_TYPE_EQUAL;
+import static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.LOGICAL_OP_TYPE_NOT_EQUAL;
+import static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.LOGICAL_OP_TYPE_OR;
+import static com.google.common.truth.Truth.assertThat;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.wear.protolayout.expression.pipeline.BoolNodes.FixedBoolNode;
+import androidx.wear.protolayout.expression.pipeline.BoolNodes.StateBoolNode;
+import androidx.wear.protolayout.expression.proto.DynamicProto;
+import androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp;
+import androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource;
+import androidx.wear.protolayout.expression.proto.FixedProto.FixedBool;
+import androidx.wear.protolayout.expression.proto.StateEntryProto.StateEntryValue;
+import com.google.common.collect.ImmutableMap;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class BoolNodesTest {
+  @Test
+  public void fixedBoolNodeTest() {
+    List<Boolean> results = new ArrayList<>();
+
+    FixedBool protoNode = FixedBool.newBuilder().setValue(false).build();
+    FixedBoolNode node = new FixedBoolNode(protoNode, new AddToListCallback<>(results));
+
+    node.preInit();
+    node.init();
+
+    assertThat(results).containsExactly(false);
+  }
+
+  @Test
+  public void stateBoolNodeTest() {
+    List<Boolean> results = new ArrayList<>();
+    StateStore oss =
+        new StateStore(
+            ImmutableMap.of(
+                "foo",
+                StateEntryValue.newBuilder()
+                    .setBoolVal(FixedBool.newBuilder().setValue(true))
+                    .build()));
+
+    StateBoolSource protoNode = StateBoolSource.newBuilder().setSourceKey("foo").build();
+    StateBoolNode node = new StateBoolNode(oss, protoNode, new AddToListCallback<>(results));
+
+    node.preInit();
+    node.init();
+
+    assertThat(results).containsExactly(true);
+  }
+
+  @Test
+  public void stateBoolUpdatesWithStateChanges() {
+    List<Boolean> results = new ArrayList<>();
+    StateStore oss =
+        new StateStore(
+            ImmutableMap.of(
+                "foo",
+                StateEntryValue.newBuilder()
+                    .setBoolVal(FixedBool.newBuilder().setValue(true))
+                    .build()));
+
+    StateBoolSource protoNode = StateBoolSource.newBuilder().setSourceKey("foo").build();
+    StateBoolNode node = new StateBoolNode(oss, protoNode, new AddToListCallback<>(results));
+
+    node.preInit();
+    node.init();
+
+    results.clear();
+
+    oss.setStateEntryValuesProto(
+        ImmutableMap.of(
+            "foo",
+            StateEntryValue.newBuilder()
+                .setBoolVal(FixedBool.newBuilder().setValue(false))
+                .build()));
+
+    assertThat(results).containsExactly(false);
+  }
+
+  @Test
+  public void stateBoolNoUpdatesAfterDestroy() {
+    List<Boolean> results = new ArrayList<>();
+    StateStore oss =
+        new StateStore(
+            ImmutableMap.of(
+                "foo",
+                StateEntryValue.newBuilder()
+                    .setBoolVal(FixedBool.newBuilder().setValue(false))
+                    .build()));
+
+    StateBoolSource protoNode = StateBoolSource.newBuilder().setSourceKey("foo").build();
+    StateBoolNode node = new StateBoolNode(oss, protoNode, new AddToListCallback<>(results));
+
+    node.preInit();
+    node.init();
+    assertThat(results).containsExactly(false);
+
+    results.clear();
+    node.destroy();
+    oss.setStateEntryValuesProto(
+        ImmutableMap.of(
+            "foo",
+            StateEntryValue.newBuilder()
+                .setBoolVal(FixedBool.newBuilder().setValue(true))
+                .build()));
+    assertThat(results).isEmpty();
+  }
+
+  @Test
+  public void logicalBoolOpTest() {
+    assertThat(evaluateLogicalOperation(LOGICAL_OP_TYPE_AND, true, true)).isTrue();
+    assertThat(evaluateLogicalOperation(LOGICAL_OP_TYPE_AND, true, false)).isFalse();
+
+    assertThat(evaluateLogicalOperation(LOGICAL_OP_TYPE_OR, true, false)).isTrue();
+    assertThat(evaluateLogicalOperation(LOGICAL_OP_TYPE_OR, false, false)).isFalse();
+
+    assertThat(evaluateLogicalOperation(LOGICAL_OP_TYPE_EQUAL, true, true)).isTrue();
+    assertThat(evaluateLogicalOperation(LOGICAL_OP_TYPE_EQUAL, true, false)).isFalse();
+
+    assertThat(evaluateLogicalOperation(LOGICAL_OP_TYPE_NOT_EQUAL, true, false)).isTrue();
+    assertThat(evaluateLogicalOperation(LOGICAL_OP_TYPE_NOT_EQUAL, false, false)).isFalse();
+  }
+
+  private static boolean evaluateLogicalOperation(
+      DynamicProto.LogicalOpType logicalOpType, boolean lhs, boolean rhs) {
+    List<Boolean> results = new ArrayList<>();
+
+    LogicalBoolOp protoNode = LogicalBoolOp.newBuilder().setOperationType(logicalOpType).build();
+    BoolNodes.LogicalBoolOp node =
+        new BoolNodes.LogicalBoolOp(protoNode, new AddToListCallback<>(results));
+
+    FixedBool lhsProtoNode = FixedBool.newBuilder().setValue(lhs).build();
+    FixedBoolNode lhsNode = new FixedBoolNode(lhsProtoNode, node.getLhsIncomingCallback());
+    lhsNode.init();
+
+    FixedBool rhsProtoNode = FixedBool.newBuilder().setValue(rhs).build();
+    FixedBoolNode rhsNode = new FixedBoolNode(rhsProtoNode, node.getRhsIncomingCallback());
+    rhsNode.init();
+
+    return results.get(0);
+  }
+}
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/ParametrizedDynamicTypeEvaluatorTest.java b/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/ParametrizedDynamicTypeEvaluatorTest.java
index 7632f30..2f62ea9 100644
--- a/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/ParametrizedDynamicTypeEvaluatorTest.java
+++ b/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/ParametrizedDynamicTypeEvaluatorTest.java
@@ -132,6 +132,10 @@
             test(DynamicFloat.constant(0.6f).gte(0.4f), true),
             test(DynamicFloat.constant(0.1234568f).gte(0.1234562f), true),
             test(DynamicBool.constant(true), true),
+            test(DynamicBool.constant(true).eq(DynamicBool.constant(true)), true),
+            test(DynamicBool.constant(true).eq(DynamicBool.constant(false)), false),
+            test(DynamicBool.constant(true).ne(DynamicBool.constant(true)), false),
+            test(DynamicBool.constant(true).ne(DynamicBool.constant(false)), true),
             test(DynamicBool.constant(true).negate(), false),
             test(DynamicBool.constant(false).negate(), true),
             test(DynamicBool.constant(true).and(DynamicBool.constant(true)), true),
diff --git a/wear/protolayout/protolayout-expression/api/current.txt b/wear/protolayout/protolayout-expression/api/current.txt
index 973a583..b4f26d0 100644
--- a/wear/protolayout/protolayout-expression/api/current.txt
+++ b/wear/protolayout/protolayout-expression/api/current.txt
@@ -97,8 +97,10 @@
   public static interface DynamicBuilders.DynamicBool extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool and(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool constant(boolean);
+    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool eq(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool fromByteArray(byte[]);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool fromState(String);
+    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool ne(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool negate();
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool or(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public default byte[] toDynamicBoolByteArray();
diff --git a/wear/protolayout/protolayout-expression/api/public_plus_experimental_current.txt b/wear/protolayout/protolayout-expression/api/public_plus_experimental_current.txt
index 0864423..adf05da 100644
--- a/wear/protolayout/protolayout-expression/api/public_plus_experimental_current.txt
+++ b/wear/protolayout/protolayout-expression/api/public_plus_experimental_current.txt
@@ -97,8 +97,10 @@
   public static interface DynamicBuilders.DynamicBool extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool and(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool constant(boolean);
+    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool eq(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool fromByteArray(byte[]);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool fromState(String);
+    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool ne(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool negate();
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool or(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public default byte[] toDynamicBoolByteArray();
diff --git a/wear/protolayout/protolayout-expression/api/restricted_current.txt b/wear/protolayout/protolayout-expression/api/restricted_current.txt
index 973a583..b4f26d0 100644
--- a/wear/protolayout/protolayout-expression/api/restricted_current.txt
+++ b/wear/protolayout/protolayout-expression/api/restricted_current.txt
@@ -97,8 +97,10 @@
   public static interface DynamicBuilders.DynamicBool extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool and(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool constant(boolean);
+    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool eq(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool fromByteArray(byte[]);
     method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool fromState(String);
+    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool ne(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool negate();
     method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool or(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
     method public default byte[] toDynamicBoolByteArray();
diff --git a/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java b/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java
index debe91bc..9374277 100644
--- a/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java
+++ b/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java
@@ -265,7 +265,13 @@
      * @since 1.2
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
-    @IntDef({LOGICAL_OP_TYPE_UNDEFINED, LOGICAL_OP_TYPE_AND, LOGICAL_OP_TYPE_OR})
+    @IntDef({
+        LOGICAL_OP_TYPE_UNDEFINED,
+        LOGICAL_OP_TYPE_AND,
+        LOGICAL_OP_TYPE_OR,
+        LOGICAL_OP_TYPE_EQUAL,
+        LOGICAL_OP_TYPE_NOT_EQUAL
+    })
     @Retention(RetentionPolicy.SOURCE)
     @interface LogicalOpType {}
 
@@ -291,6 +297,20 @@
     static final int LOGICAL_OP_TYPE_OR = 2;
 
     /**
+     * Equal check.
+     *
+     * @since 1.2
+     */
+    static final int LOGICAL_OP_TYPE_EQUAL = 3;
+
+    /**
+     * Not Equal check.
+     *
+     * @since 1.2
+     */
+    static final int LOGICAL_OP_TYPE_NOT_EQUAL = 4;
+
+    /**
      * The duration part to retrieve using {@link GetDurationPartOp}.
      *
      * @since 1.2
@@ -2334,8 +2354,8 @@
 
                 /**
                  * Sets minimum number of integer digits for the formatter. Defaults to one if not
-                 * specified. If minIntegerDigits is zero and the -1 < input < 1, the Integer
-                 * part will not appear.
+                 * specified. If minIntegerDigits is zero and the -1 < input < 1, the Integer part
+                 * will not appear.
                  */
                 @NonNull
                 public Builder setMinIntegerDigits(@IntRange(from = 0) int minIntegerDigits) {
@@ -2643,7 +2663,6 @@
             return fromProto(proto, null);
         }
 
-
         @NonNull
         DynamicProto.StateStringSource toProto() {
             return mImpl;
@@ -4780,8 +4799,8 @@
 
                 /**
                  * Sets minimum number of integer digits for the formatter. Defaults to one if not
-                 * specified. If minIntegerDigits is zero and the -1 < input < 1, the Integer
-                 * part will not appear.
+                 * specified. If minIntegerDigits is zero and the -1 < input < 1, the Integer part
+                 * will not appear.
                  */
                 @NonNull
                 public Builder setMinIntegerDigits(@IntRange(from = 0) int minIntegerDigits) {
@@ -5607,6 +5626,32 @@
                     .build();
         }
 
+        /**
+         * Returns a {@link DynamicBool} that is true if the value of this {@link DynamicBool} and
+         * {@code other} are equal, otherwise it's false.
+         */
+        @NonNull
+        default DynamicBool eq(@NonNull DynamicBool other) {
+            return new LogicalBoolOp.Builder()
+                    .setInputLhs(this)
+                    .setInputRhs(other)
+                    .setOperationType(DynamicBuilders.LOGICAL_OP_TYPE_EQUAL)
+                    .build();
+        }
+
+        /**
+         * Returns a {@link DynamicBool} that is true if the value of this {@link DynamicBool} and
+         * {@code other} are not equal, otherwise it's false.
+         */
+        @NonNull
+        default DynamicBool ne(@NonNull DynamicBool other) {
+            return new LogicalBoolOp.Builder()
+                    .setInputLhs(this)
+                    .setInputRhs(other)
+                    .setOperationType(DynamicBuilders.LOGICAL_OP_TYPE_NOT_EQUAL)
+                    .build();
+        }
+
         /** Get the fingerprint for this object or null if unknown. */
         @RestrictTo(Scope.LIBRARY_GROUP)
         @Nullable
@@ -5622,7 +5667,6 @@
         }
     }
 
-
     /** Creates a new wrapper instance from the proto. */
     @RestrictTo(Scope.LIBRARY_GROUP)
     @NonNull
@@ -6366,7 +6410,6 @@
         }
     }
 
-
     /** Creates a new wrapper instance from the proto. */
     @RestrictTo(Scope.LIBRARY_GROUP)
     @NonNull
diff --git a/wear/protolayout/protolayout-expression/src/test/java/androidx/wear/protolayout/expression/DynamicBoolTest.java b/wear/protolayout/protolayout-expression/src/test/java/androidx/wear/protolayout/expression/DynamicBoolTest.java
index b9bf7e3..beb1207 100644
--- a/wear/protolayout/protolayout-expression/src/test/java/androidx/wear/protolayout/expression/DynamicBoolTest.java
+++ b/wear/protolayout/protolayout-expression/src/test/java/androidx/wear/protolayout/expression/DynamicBoolTest.java
@@ -17,107 +17,143 @@
 package androidx.wear.protolayout.expression;
 
 import static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.LOGICAL_OP_TYPE_AND;
+import static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.LOGICAL_OP_TYPE_EQUAL;
+import static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.LOGICAL_OP_TYPE_NOT_EQUAL;
 import static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.LOGICAL_OP_TYPE_OR;
+
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assert.assertThrows;
 
 import androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 
 @RunWith(RobolectricTestRunner.class)
 public final class DynamicBoolTest {
-  private static final String STATE_KEY = "state-key";
+    private static final String STATE_KEY = "state-key";
 
-  @Test
-  public void constantBool() {
-    DynamicBool falseBool = DynamicBool.constant(false);
-    DynamicBool trueBool = DynamicBool.constant(true);
+    @Test
+    public void constantBool() {
+        DynamicBool falseBool = DynamicBool.constant(false);
+        DynamicBool trueBool = DynamicBool.constant(true);
 
-    assertThat(falseBool.toDynamicBoolProto().getFixed().getValue()).isFalse();
-    assertThat(trueBool.toDynamicBoolProto().getFixed().getValue()).isTrue();
-  }
+        assertThat(falseBool.toDynamicBoolProto().getFixed().getValue()).isFalse();
+        assertThat(trueBool.toDynamicBoolProto().getFixed().getValue()).isTrue();
+    }
 
-  @Test
-  public void constantToString() {
-    assertThat(DynamicBool.constant(true).toString()).isEqualTo("FixedBool{value=true}");
-  }
+    @Test
+    public void constantToString() {
+        assertThat(DynamicBool.constant(true).toString()).isEqualTo("FixedBool{value=true}");
+    }
 
-  @Test
-  public void stateEntryValueBool() {
-    DynamicBool stateBool = DynamicBool.fromState(STATE_KEY);
+    @Test
+    public void stateEntryValueBool() {
+        DynamicBool stateBool = DynamicBool.fromState(STATE_KEY);
 
-    assertThat(stateBool.toDynamicBoolProto().getStateSource().getSourceKey()).isEqualTo(STATE_KEY);
-  }
+        assertThat(stateBool.toDynamicBoolProto().getStateSource().getSourceKey())
+                .isEqualTo(STATE_KEY);
+    }
 
-  @Test
-  public void stateToString() {
-    assertThat(DynamicBool.fromState("key").toString()).isEqualTo("StateBoolSource{sourceKey=key}");
-  }
+    @Test
+    public void stateToString() {
+        assertThat(DynamicBool.fromState("key").toString())
+                .isEqualTo("StateBoolSource{sourceKey=key}");
+    }
 
-  @Test
-  public void andOpBool() {
-    DynamicBool firstBool = DynamicBool.constant(false);
-    DynamicBool secondBool = DynamicBool.constant(true);
+    @Test
+    public void andOpBool() {
+        DynamicBool firstBool = DynamicBool.constant(false);
+        DynamicBool secondBool = DynamicBool.constant(true);
 
-    DynamicBool result = firstBool.and(secondBool);
-    assertThat(result.toDynamicBoolProto().getLogicalOp().getOperationType())
-        .isEqualTo(LOGICAL_OP_TYPE_AND);
-    assertThat(result.toDynamicBoolProto().getLogicalOp().getInputLhs())
-        .isEqualTo(firstBool.toDynamicBoolProto());
-    assertThat(result.toDynamicBoolProto().getLogicalOp().getInputRhs())
-        .isEqualTo(secondBool.toDynamicBoolProto());
-  }
+        DynamicBool result = firstBool.and(secondBool);
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getOperationType())
+                .isEqualTo(LOGICAL_OP_TYPE_AND);
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getInputLhs())
+                .isEqualTo(firstBool.toDynamicBoolProto());
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getInputRhs())
+                .isEqualTo(secondBool.toDynamicBoolProto());
+    }
 
-  @Test
-  public void orOpBool() {
-    DynamicBool firstBool = DynamicBool.constant(false);
-    DynamicBool secondBool = DynamicBool.constant(true);
+    @Test
+    public void orOpBool() {
+        DynamicBool firstBool = DynamicBool.constant(false);
+        DynamicBool secondBool = DynamicBool.constant(true);
 
-    DynamicBool result = firstBool.or(secondBool);
-    assertThat(result.toDynamicBoolProto().getLogicalOp().getOperationType())
-        .isEqualTo(LOGICAL_OP_TYPE_OR);
-    assertThat(result.toDynamicBoolProto().getLogicalOp().getInputLhs())
-        .isEqualTo(firstBool.toDynamicBoolProto());
-    assertThat(result.toDynamicBoolProto().getLogicalOp().getInputRhs())
-        .isEqualTo(secondBool.toDynamicBoolProto());
-  }
+        DynamicBool result = firstBool.or(secondBool);
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getOperationType())
+                .isEqualTo(LOGICAL_OP_TYPE_OR);
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getInputLhs())
+                .isEqualTo(firstBool.toDynamicBoolProto());
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getInputRhs())
+                .isEqualTo(secondBool.toDynamicBoolProto());
+    }
 
-  @Test
-  public void logicalOpToString() {
-    assertThat(DynamicBool.constant(true).and(DynamicBool.constant(false)).toString())
-        .isEqualTo(
-            "LogicalBoolOp{"
-                + "inputLhs=FixedBool{value=true}, "
-                + "inputRhs=FixedBool{value=false}, "
-                + "operationType=1}");
-  }
+    @Test
+    public void boolComparison_equalOp() {
+        DynamicBool firstBool = DynamicBool.constant(false);
+        DynamicBool secondBool = DynamicBool.constant(true);
 
-  @Test
-  public void negateOpBool() {
-    DynamicBool firstBool = DynamicBool.constant(true);
+        DynamicBool result = firstBool.eq(secondBool);
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getOperationType())
+                .isEqualTo(LOGICAL_OP_TYPE_EQUAL);
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getInputLhs())
+                .isEqualTo(firstBool.toDynamicBoolProto());
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getInputRhs())
+                .isEqualTo(secondBool.toDynamicBoolProto());
+    }
 
-    assertThat(firstBool.negate().toDynamicBoolProto().getNotOp().getInput())
-        .isEqualTo(firstBool.toDynamicBoolProto());
-  }
+    @Test
+    public void boolComparison_notEqualOp() {
+        DynamicBool firstBool = DynamicBool.constant(false);
+        DynamicBool secondBool = DynamicBool.constant(true);
 
-  @Test
-  public void logicalToString() {
-    assertThat(DynamicBool.constant(true).negate().toString())
-        .isEqualTo("NotBoolOp{input=FixedBool{value=true}}");
-  }
+        DynamicBool result = firstBool.ne(secondBool);
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getOperationType())
+                .isEqualTo(LOGICAL_OP_TYPE_NOT_EQUAL);
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getInputLhs())
+                .isEqualTo(firstBool.toDynamicBoolProto());
+        assertThat(result.toDynamicBoolProto().getLogicalOp().getInputRhs())
+                .isEqualTo(secondBool.toDynamicBoolProto());
+    }
 
-  @Test
-  public void validProto() {
-    DynamicBool from = DynamicBool.constant(true);
-    DynamicBool to = DynamicBool.fromByteArray(from.toDynamicBoolByteArray());
+    @Test
+    public void logicalOpToString() {
+        assertThat(DynamicBool.constant(true).and(DynamicBool.constant(false)).toString())
+                .isEqualTo(
+                        "LogicalBoolOp{"
+                                + "inputLhs=FixedBool{value=true}, "
+                                + "inputRhs=FixedBool{value=false}, "
+                                + "operationType=1}");
+    }
 
-    assertThat(to.toDynamicBoolProto().getFixed().getValue()).isTrue();
-  }
+    @Test
+    public void negateOpBool() {
+        DynamicBool firstBool = DynamicBool.constant(true);
 
-  @Test
-  public void invalidProto() {
-    assertThrows(IllegalArgumentException.class, () -> DynamicBool.fromByteArray(new byte[] {1}));
-  }
+        assertThat(firstBool.negate().toDynamicBoolProto().getNotOp().getInput())
+                .isEqualTo(firstBool.toDynamicBoolProto());
+    }
+
+    @Test
+    public void logicalToString() {
+        assertThat(DynamicBool.constant(true).negate().toString())
+                .isEqualTo("NotBoolOp{input=FixedBool{value=true}}");
+    }
+
+    @Test
+    public void validProto() {
+        DynamicBool from = DynamicBool.constant(true);
+        DynamicBool to = DynamicBool.fromByteArray(from.toDynamicBoolByteArray());
+
+        assertThat(to.toDynamicBoolProto().getFixed().getValue()).isTrue();
+    }
+
+    @Test
+    public void invalidProto() {
+        assertThrows(
+                IllegalArgumentException.class, () -> DynamicBool.fromByteArray(new byte[] {1}));
+    }
 }
diff --git a/wear/protolayout/protolayout-proto/src/main/proto/dynamic.proto b/wear/protolayout/protolayout-proto/src/main/proto/dynamic.proto
index b12923b..b0729ce 100644
--- a/wear/protolayout/protolayout-proto/src/main/proto/dynamic.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/dynamic.proto
@@ -446,6 +446,12 @@
 
   // Logical OR.
   LOGICAL_OP_TYPE_OR = 2;
+
+  // Equal check
+  LOGICAL_OP_TYPE_EQUAL = 3;
+
+  // Not Equal check.
+  LOGICAL_OP_TYPE_NOT_EQUAL = 4;
 }
 
 // A logical boolean operator, implementing "boolean result = LHS <op> RHS",
diff --git a/wear/protolayout/protolayout-proto/src/main/proto/trigger.proto b/wear/protolayout/protolayout-proto/src/main/proto/trigger.proto
index f9cc1c5..24e5132 100644
--- a/wear/protolayout/protolayout-proto/src/main/proto/trigger.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/trigger.proto
@@ -23,7 +23,7 @@
 // condition is true initially, that will fire the trigger on load.
 message OnConditionMetTrigger {
   // Dynamic boolean used as trigger.
-  androidx.wear.protolayout.expression.proto.DynamicBool trigger = 1;
+  androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;
 }
 
 // The triggers that can be fired.
diff --git a/wear/protolayout/protolayout-renderer/src/main/java/androidx/wear/protolayout/renderer/inflater/ProtoLayoutInflater.java b/wear/protolayout/protolayout-renderer/src/main/java/androidx/wear/protolayout/renderer/inflater/ProtoLayoutInflater.java
index a50e95d..cc1b1a1 100644
--- a/wear/protolayout/protolayout-renderer/src/main/java/androidx/wear/protolayout/renderer/inflater/ProtoLayoutInflater.java
+++ b/wear/protolayout/protolayout-renderer/src/main/java/androidx/wear/protolayout/renderer/inflater/ProtoLayoutInflater.java
@@ -2446,7 +2446,7 @@
                         pipelineMaker
                                 .get()
                                 .addResolvedAnimatedImageWithBoolTrigger(
-                                        avd, trigger, posId, conditionTrigger.getTrigger());
+                                        avd, trigger, posId, conditionTrigger.getCondition());
                     } else {
                         // Use default trigger if it's not set.
                         if (trigger == null
diff --git a/wear/protolayout/protolayout-renderer/src/test/java/androidx/wear/protolayout/renderer/dynamicdata/ProtoLayoutDynamicDataPipelineTest.java b/wear/protolayout/protolayout-renderer/src/test/java/androidx/wear/protolayout/renderer/dynamicdata/ProtoLayoutDynamicDataPipelineTest.java
index f8c0a3d..9b7d7ac 100644
--- a/wear/protolayout/protolayout-renderer/src/test/java/androidx/wear/protolayout/renderer/dynamicdata/ProtoLayoutDynamicDataPipelineTest.java
+++ b/wear/protolayout/protolayout-renderer/src/test/java/androidx/wear/protolayout/renderer/dynamicdata/ProtoLayoutDynamicDataPipelineTest.java
@@ -1041,7 +1041,7 @@
     private static Trigger conditionTrigger(DynamicBool dynamicBool) {
         return Trigger.newBuilder()
                 .setOnConditionMetTrigger(
-                        OnConditionMetTrigger.newBuilder().setTrigger(dynamicBool).build())
+                        OnConditionMetTrigger.newBuilder().setCondition(dynamicBool).build())
                 .build();
     }
 
diff --git a/wear/protolayout/protolayout/api/current.txt b/wear/protolayout/protolayout/api/current.txt
index d70955a..506910e9 100644
--- a/wear/protolayout/protolayout/api/current.txt
+++ b/wear/protolayout/protolayout/api/current.txt
@@ -1043,26 +1043,8 @@
   }
 
   public final class TriggerBuilders {
-    method public static androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger createOnConditionMetTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public static androidx.wear.protolayout.TriggerBuilders.OnLoadTrigger createOnLoadTrigger();
-  }
-
-  public static final class TriggerBuilders.OnConditionMetTrigger implements androidx.wear.protolayout.TriggerBuilders.Trigger {
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool? getTrigger();
-  }
-
-  public static final class TriggerBuilders.OnConditionMetTrigger.Builder {
-    ctor public TriggerBuilders.OnConditionMetTrigger.Builder();
-    method public androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger build();
-    method public androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger.Builder setTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-  }
-
-  public static final class TriggerBuilders.OnLoadTrigger implements androidx.wear.protolayout.TriggerBuilders.Trigger {
-  }
-
-  public static final class TriggerBuilders.OnLoadTrigger.Builder {
-    ctor public TriggerBuilders.OnLoadTrigger.Builder();
-    method public androidx.wear.protolayout.TriggerBuilders.OnLoadTrigger build();
+    method public static androidx.wear.protolayout.TriggerBuilders.Trigger createOnConditionMetTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
+    method public static androidx.wear.protolayout.TriggerBuilders.Trigger createOnLoadTrigger();
   }
 
   public static interface TriggerBuilders.Trigger {
diff --git a/wear/protolayout/protolayout/api/public_plus_experimental_current.txt b/wear/protolayout/protolayout/api/public_plus_experimental_current.txt
index 9660d46..ce4acaa 100644
--- a/wear/protolayout/protolayout/api/public_plus_experimental_current.txt
+++ b/wear/protolayout/protolayout/api/public_plus_experimental_current.txt
@@ -1261,26 +1261,8 @@
   }
 
   public final class TriggerBuilders {
-    method public static androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger createOnConditionMetTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public static androidx.wear.protolayout.TriggerBuilders.OnLoadTrigger createOnLoadTrigger();
-  }
-
-  public static final class TriggerBuilders.OnConditionMetTrigger implements androidx.wear.protolayout.TriggerBuilders.Trigger {
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool? getTrigger();
-  }
-
-  public static final class TriggerBuilders.OnConditionMetTrigger.Builder {
-    ctor public TriggerBuilders.OnConditionMetTrigger.Builder();
-    method public androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger build();
-    method public androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger.Builder setTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-  }
-
-  public static final class TriggerBuilders.OnLoadTrigger implements androidx.wear.protolayout.TriggerBuilders.Trigger {
-  }
-
-  public static final class TriggerBuilders.OnLoadTrigger.Builder {
-    ctor public TriggerBuilders.OnLoadTrigger.Builder();
-    method public androidx.wear.protolayout.TriggerBuilders.OnLoadTrigger build();
+    method public static androidx.wear.protolayout.TriggerBuilders.Trigger createOnConditionMetTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
+    method public static androidx.wear.protolayout.TriggerBuilders.Trigger createOnLoadTrigger();
   }
 
   public static interface TriggerBuilders.Trigger {
diff --git a/wear/protolayout/protolayout/api/restricted_current.txt b/wear/protolayout/protolayout/api/restricted_current.txt
index d70955a..506910e9 100644
--- a/wear/protolayout/protolayout/api/restricted_current.txt
+++ b/wear/protolayout/protolayout/api/restricted_current.txt
@@ -1043,26 +1043,8 @@
   }
 
   public final class TriggerBuilders {
-    method public static androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger createOnConditionMetTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public static androidx.wear.protolayout.TriggerBuilders.OnLoadTrigger createOnLoadTrigger();
-  }
-
-  public static final class TriggerBuilders.OnConditionMetTrigger implements androidx.wear.protolayout.TriggerBuilders.Trigger {
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool? getTrigger();
-  }
-
-  public static final class TriggerBuilders.OnConditionMetTrigger.Builder {
-    ctor public TriggerBuilders.OnConditionMetTrigger.Builder();
-    method public androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger build();
-    method public androidx.wear.protolayout.TriggerBuilders.OnConditionMetTrigger.Builder setTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-  }
-
-  public static final class TriggerBuilders.OnLoadTrigger implements androidx.wear.protolayout.TriggerBuilders.Trigger {
-  }
-
-  public static final class TriggerBuilders.OnLoadTrigger.Builder {
-    ctor public TriggerBuilders.OnLoadTrigger.Builder();
-    method public androidx.wear.protolayout.TriggerBuilders.OnLoadTrigger build();
+    method public static androidx.wear.protolayout.TriggerBuilders.Trigger createOnConditionMetTrigger(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
+    method public static androidx.wear.protolayout.TriggerBuilders.Trigger createOnLoadTrigger();
   }
 
   public static interface TriggerBuilders.Trigger {
diff --git a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/TriggerBuilders.java b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/TriggerBuilders.java
index 4f544da..f5cb3c8 100644
--- a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/TriggerBuilders.java
+++ b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/TriggerBuilders.java
@@ -31,17 +31,20 @@
 public final class TriggerBuilders {
   private TriggerBuilders() {}
 
-  /** Shortcut for building an {@link OnLoadTrigger}. */
+  /** Creates a {@link Trigger} that fires immediately when the layout is loaded / reloaded.. */
   @NonNull
-  public static OnLoadTrigger createOnLoadTrigger() {
+  public static Trigger createOnLoadTrigger() {
     return new OnLoadTrigger.Builder().build();
   }
 
-  /** Shortcut for building an {@link OnConditionMetTrigger}. */
+  /**
+   * Creates a {@link Trigger} that fires *every time* the condition switches from false to true.
+   * If the condition is true initially, that will fire the trigger on load.
+   */
   @NonNull
-  public static OnConditionMetTrigger createOnConditionMetTrigger(
+  public static Trigger createOnConditionMetTrigger(
           @NonNull DynamicBool dynamicBool) {
-    return new OnConditionMetTrigger.Builder().setTrigger(dynamicBool).build();
+    return new OnConditionMetTrigger.Builder().setCondition(dynamicBool).build();
   }
 
   /**
@@ -49,7 +52,7 @@
    *
    * @since 1.2
    */
-  public static final class OnLoadTrigger implements Trigger {
+  static final class OnLoadTrigger implements Trigger {
     private final TriggerProto.OnLoadTrigger mImpl;
     @Nullable private final Fingerprint mFingerprint;
 
@@ -104,7 +107,7 @@
    *
    * @since 1.2
    */
-  public static final class OnConditionMetTrigger implements Trigger {
+  static final class OnConditionMetTrigger implements Trigger {
     private final TriggerProto.OnConditionMetTrigger mImpl;
     @Nullable private final Fingerprint mFingerprint;
 
@@ -119,9 +122,9 @@
      * @since 1.2
      */
     @Nullable
-    public DynamicBool getTrigger() {
-      if (mImpl.hasTrigger()) {
-        return DynamicBuilders.dynamicBoolFromProto(mImpl.getTrigger());
+    public DynamicBool getCondition() {
+      if (mImpl.hasCondition()) {
+        return DynamicBuilders.dynamicBoolFromProto(mImpl.getCondition());
       } else {
         return null;
       }
@@ -165,8 +168,8 @@
        * @since 1.2
        */
       @NonNull
-      public Builder setTrigger(@NonNull DynamicBool dynamicBool) {
-        mImpl.setTrigger(dynamicBool.toDynamicBoolProto());
+      public Builder setCondition(@NonNull DynamicBool dynamicBool) {
+        mImpl.setCondition(dynamicBool.toDynamicBoolProto());
         mFingerprint.recordPropertyUpdate(
             1, checkNotNull(dynamicBool.getFingerprint()).aggregateValueAsInt());
         return this;
diff --git a/wear/protolayout/protolayout/src/test/java/androidx/wear/protolayout/TriggerBuildersTest.java b/wear/protolayout/protolayout/src/test/java/androidx/wear/protolayout/TriggerBuildersTest.java
index cf36e4f..6230a66 100644
--- a/wear/protolayout/protolayout/src/test/java/androidx/wear/protolayout/TriggerBuildersTest.java
+++ b/wear/protolayout/protolayout/src/test/java/androidx/wear/protolayout/TriggerBuildersTest.java
@@ -29,7 +29,7 @@
 
     @Test
     public void onLoadTrigger() {
-        TriggerBuilders.OnLoadTrigger onLoadTrigger = TriggerBuilders.createOnLoadTrigger();
+        TriggerBuilders.Trigger onLoadTrigger = TriggerBuilders.createOnLoadTrigger();
 
         assertThat(onLoadTrigger.toTriggerProto().hasOnLoadTrigger()).isTrue();
     }
@@ -39,12 +39,12 @@
     public void onConditionTrigger() {
         DynamicBuilders.DynamicBool condition = DynamicBuilders.DynamicBool.fromState("state");
 
-        TriggerBuilders.OnConditionMetTrigger onConditionMetTrigger =
+        TriggerBuilders.Trigger onConditionMetTrigger =
                 TriggerBuilders.createOnConditionMetTrigger(
                 condition);
 
         assertThat(
-                onConditionMetTrigger.toTriggerProto().getOnConditionMetTrigger().getTrigger())
+                onConditionMetTrigger.toTriggerProto().getOnConditionMetTrigger().getCondition())
                 .isEqualTo(condition.toDynamicBoolProto());
     }
 }
diff --git a/wear/watchface/watchface-complications-data/src/main/java/android/support/wearable/complications/ComplicationData.kt b/wear/watchface/watchface-complications-data/src/main/java/android/support/wearable/complications/ComplicationData.kt
index 8887171d..949c589 100644
--- a/wear/watchface/watchface-complications-data/src/main/java/android/support/wearable/complications/ComplicationData.kt
+++ b/wear/watchface/watchface-complications-data/src/main/java/android/support/wearable/complications/ComplicationData.kt
@@ -1836,13 +1836,13 @@
          *
          * Returns this Builder to allow chaining.
          */
-        fun setListEntryCollection(timelineEntries: Collection<ComplicationData>?) = apply {
-            if (timelineEntries == null) {
+        fun setListEntryCollection(listEntries: Collection<ComplicationData>?) = apply {
+            if (listEntries == null) {
                 fields.remove(EXP_FIELD_LIST_ENTRIES)
             } else {
                 fields.putParcelableArray(
                     EXP_FIELD_LIST_ENTRIES,
-                    timelineEntries
+                    listEntries
                         .map { data ->
                             data.fields.putInt(EXP_FIELD_LIST_ENTRY_TYPE, data.type)
                             data.fields
diff --git a/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/ComplicationDataExpressionEvaluator.kt b/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/ComplicationDataExpressionEvaluator.kt
index 94db677..ddf43de 100644
--- a/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/ComplicationDataExpressionEvaluator.kt
+++ b/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/ComplicationDataExpressionEvaluator.kt
@@ -18,7 +18,7 @@
 
 import android.icu.util.ULocale
 import android.support.wearable.complications.ComplicationData as WireComplicationData
-import android.support.wearable.complications.ComplicationData
+import android.support.wearable.complications.ComplicationData.Companion.TYPE_NO_DATA
 import android.support.wearable.complications.ComplicationText as WireComplicationText
 import androidx.annotation.MainThread
 import androidx.annotation.RestrictTo
@@ -41,17 +41,19 @@
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.emitAll
+import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.mapNotNull
+import kotlinx.coroutines.flow.merge
 import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.flow.updateAndGet
 import kotlinx.coroutines.invoke
 import kotlinx.coroutines.launch
 
 /**
  * Evaluates a [WireComplicationData] with
  * [androidx.wear.protolayout.expression.DynamicBuilders.DynamicType] within its fields.
- *
- * Due to [WireComplicationData]'s shallow copy strategy the input is modified in-place.
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
 class ComplicationDataExpressionEvaluator(
@@ -65,27 +67,101 @@
      *
      * The expression is evaluated _separately_ on each flow collection.
      */
-    fun evaluate(unevaluatedData: WireComplicationData) =
-        flow<WireComplicationData> {
-            val state: MutableStateFlow<State> = unevaluatedData.buildState()
-            state.value.use {
-                val evaluatedData: Flow<WireComplicationData> =
-                    state
-                        .mapNotNull {
-                            when {
-                                // Emitting INVALID_DATA if there's an invalid receiver.
-                                it.invalidReceivers.isNotEmpty() -> INVALID_DATA
-                                // Emitting the data if all pending receivers are done and all
-                                // pre-updates are satisfied.
-                                it.pendingReceivers.isEmpty() -> it.data
-                                // Skipping states that are not ready for be emitted.
-                                else -> null
-                            }
-                        }
-                        .distinctUntilChanged()
-                emitAll(evaluatedData)
+    fun evaluate(unevaluatedData: WireComplicationData): Flow<WireComplicationData> =
+        evaluateTopLevelFields(unevaluatedData)
+            // Combining with fields that are made of WireComplicationData.
+            .combineWithDataList(unevaluatedData.timelineEntries) { entries ->
+                // Timeline entries are set on the built WireComplicationData.
+                WireComplicationData.Builder(
+                    this@combineWithDataList.build().apply { setTimelineEntryCollection(entries) }
+                )
             }
+            .combineWithDataList(unevaluatedData.listEntries) { setListEntryCollection(it) }
+            // Must be last, as it overwrites INVALID_DATA.
+            .combineWithEvaluatedPlaceholder(unevaluatedData.placeholder)
+            .distinctUntilChanged()
+
+    /** Evaluates "local" fields, excluding fields of type WireComplicationData. */
+    private fun evaluateTopLevelFields(
+        unevaluatedData: WireComplicationData
+    ): Flow<WireComplicationData> = flow {
+        val state: MutableStateFlow<State> = unevaluatedData.buildState()
+        state.value.use {
+            val evaluatedData: Flow<WireComplicationData> =
+                state.mapNotNull {
+                    when {
+                        // Emitting INVALID_DATA if there's an invalid receiver.
+                        it.invalidReceivers.isNotEmpty() -> INVALID_DATA
+                        // Emitting the data if all pending receivers are done and all
+                        // pre-updates are satisfied.
+                        it.pendingReceivers.isEmpty() -> it.data
+                        // Skipping states that are not ready for be emitted.
+                        else -> null
+                    }
+                }
+            emitAll(evaluatedData)
         }
+    }
+
+    /**
+     * Combines the receiver with the evaluated version of the provided list.
+     *
+     * If the receiver [Flow] emits [INVALID_DATA] or the input list is null or empty, this does not
+     * mutate the flow and does not wait for the entries to finish evaluating.
+     *
+     * If even one [WireComplicationData] within the provided list is evaluated to [INVALID_DATA],
+     * the output [Flow] becomes [INVALID_DATA] (the receiver [Flow] is ignored).
+     */
+    private fun Flow<WireComplicationData>.combineWithDataList(
+        unevaluatedEntries: List<WireComplicationData>?,
+        setter:
+            WireComplicationData.Builder.(
+                List<WireComplicationData>
+            ) -> WireComplicationData.Builder,
+    ): Flow<WireComplicationData> {
+        if (unevaluatedEntries.isNullOrEmpty()) return this
+        val evaluatedEntriesFlow: Flow<List<WireComplicationData>> =
+            combine(unevaluatedEntries.map { evaluate(it) })
+
+        return this.combine(evaluatedEntriesFlow).map {
+            (data: WireComplicationData, evaluatedEntries: List<WireComplicationData>?) ->
+            // Not mutating if invalid.
+            if (data === INVALID_DATA) return@map data
+            // An entry is invalid, emitting invalid.
+            if (evaluatedEntries.any { it === INVALID_DATA }) return@map INVALID_DATA
+            // All is well, mutating the input.
+            return@map WireComplicationData.Builder(data).setter(evaluatedEntries).build()
+        }
+    }
+
+    /**
+     * Same as [combineWithDataList], but sets the evaluated placeholder ONLY when the receiver
+     * [Flow] emits [TYPE_NO_DATA], or [keepExpression] is true, otherwise clears it and does not
+     * wait for the placeholder to finish evaluating.
+     *
+     * If the placeholder is not required (per the above paragraph), this doesn't wait for it.
+     */
+    private fun Flow<WireComplicationData>.combineWithEvaluatedPlaceholder(
+        unevaluatedPlaceholder: WireComplicationData?
+    ): Flow<WireComplicationData> {
+        if (unevaluatedPlaceholder == null) return this
+        val evaluatedPlaceholderFlow: Flow<WireComplicationData> = evaluate(unevaluatedPlaceholder)
+
+        return this.combine(evaluatedPlaceholderFlow).map {
+            (data: WireComplicationData, evaluatedPlaceholder: WireComplicationData?) ->
+            if (!keepExpression && data.type != TYPE_NO_DATA) {
+                // Clearing the placeholder when data is not TYPE_NO_DATA (it was meant as an
+                // expression fallback).
+                return@map WireComplicationData.Builder(data).setPlaceholder(null).build()
+            }
+            // Placeholder required but invalid, emitting invalid.
+            if (evaluatedPlaceholder === INVALID_DATA) return@map INVALID_DATA
+            // All is well, mutating the input.
+            return@map WireComplicationData.Builder(data)
+                .setPlaceholder(evaluatedPlaceholder)
+                .build()
+        }
+    }
 
     private suspend fun WireComplicationData.buildState() =
         MutableStateFlow(State(this)).apply {
@@ -177,7 +253,7 @@
      * [ComplicationEvaluationResultReceiver] that are evaluating it.
      */
     private inner class State(
-        val data: ComplicationData,
+        val data: WireComplicationData,
         val pendingReceivers: Set<ComplicationEvaluationResultReceiver<out Any>> = setOf(),
         val invalidReceivers: Set<ComplicationEvaluationResultReceiver<out Any>> = setOf(),
         val completeReceivers: Set<ComplicationEvaluationResultReceiver<out Any>> = setOf(),
@@ -317,3 +393,35 @@
         runnable.run()
     }
 }
+
+/** Replacement of [kotlinx.coroutines.flow.combine], which doesn't seem to work. */
+internal fun <T> combine(flows: List<Flow<T>>): Flow<List<T>> = flow {
+    data class ValueExists(val value: T?, val exists: Boolean)
+    val latest = MutableStateFlow(List(flows.size) { ValueExists(null, false) })
+    @Suppress("UNCHECKED_CAST") // Flow<List<T?>> -> Flow<List<T>> safe after filtering exists.
+    emitAll(
+        flows
+            .mapIndexed { i, flow -> flow.map { i to it } } // List<Flow<Int, T>> (indexed flows)
+            .merge() // Flow<Int, T>
+            .map { (i, value) ->
+                // Updating latest and returning the current latest.
+                latest.updateAndGet {
+                    val newLatest = it.toMutableList()
+                    newLatest[i] = ValueExists(value, true)
+                    newLatest
+                }
+            } // Flow<List<ValueExists>>
+            // Filtering emissions until we have all values.
+            .filter { values -> values.all { it.exists } }
+            // Flow<List<T>> + defensive copy.
+            .map { values -> values.map { it.value } } as Flow<List<T>>
+    )
+}
+
+/**
+ * Another replacement of [kotlinx.coroutines.flow.combine] which is similar to
+ * `combine(List<Flow<T>>)` but allows different types for each flow.
+ */
+@Suppress("UNCHECKED_CAST")
+internal fun <T1, T2> Flow<T1>.combine(other: Flow<T2>): Flow<Pair<T1, T2>> =
+    combine(listOf(this as Flow<*>, other as Flow<*>)).map { (a, b) -> (a as T1) to (b as T2) }
diff --git a/wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/ComplicationDataExpressionEvaluatorTest.kt b/wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/ComplicationDataExpressionEvaluatorTest.kt
index c913c25..3a22917 100644
--- a/wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/ComplicationDataExpressionEvaluatorTest.kt
+++ b/wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/ComplicationDataExpressionEvaluatorTest.kt
@@ -17,6 +17,8 @@
 package androidx.wear.watchface.complications.data
 
 import android.support.wearable.complications.ComplicationData as WireComplicationData
+import android.support.wearable.complications.ComplicationData.Companion.TYPE_NO_DATA
+import android.support.wearable.complications.ComplicationData.Companion.TYPE_SHORT_TEXT
 import android.support.wearable.complications.ComplicationText as WireComplicationText
 import android.util.Log
 import androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat
@@ -58,10 +60,7 @@
 
     @Test
     fun evaluate_noExpression_returnsUnevaluated() = runBlocking {
-        val data =
-            WireComplicationData.Builder(WireComplicationData.TYPE_NO_DATA)
-                .setRangedValue(10f)
-                .build()
+        val data = WireComplicationData.Builder(TYPE_NO_DATA).setRangedValue(10f).build()
 
         val evaluator = ComplicationDataExpressionEvaluator()
 
@@ -81,7 +80,7 @@
     ) {
         SET_IMMEDIATELY_WHEN_ALL_DATA_AVAILABLE(
             expressed =
-                WireComplicationData.Builder(WireComplicationData.TYPE_NO_DATA)
+                WireComplicationData.Builder(TYPE_NO_DATA)
                     .setRangedValueExpression(DynamicFloat.constant(1f))
                     .setLongText(WireComplicationText(DynamicString.constant("Long Text")))
                     .setLongTitle(WireComplicationText(DynamicString.constant("Long Title")))
@@ -90,23 +89,29 @@
                     .setContentDescription(
                         WireComplicationText(DynamicString.constant("Description"))
                     )
-                    .build(),
+                    .setPlaceholder(constantData("Placeholder"))
+                    .setListEntryCollection(listOf(constantData("List")))
+                    .build()
+                    .also { it.setTimelineEntryCollection(listOf(constantData("Timeline"))) },
             states = listOf(),
             evaluated =
                 listOf(
-                    WireComplicationData.Builder(WireComplicationData.TYPE_NO_DATA)
+                    WireComplicationData.Builder(TYPE_NO_DATA)
                         .setRangedValue(1f)
                         .setLongText(WireComplicationText("Long Text"))
                         .setLongTitle(WireComplicationText("Long Title"))
                         .setShortText(WireComplicationText("Short Text"))
                         .setShortTitle(WireComplicationText("Short Title"))
                         .setContentDescription(WireComplicationText("Description"))
+                        .setPlaceholder(evaluatedData("Placeholder"))
+                        .setListEntryCollection(listOf(evaluatedData("List")))
                         .build()
+                        .also { it.setTimelineEntryCollection(listOf(evaluatedData("Timeline"))) },
                 ),
         ),
         SET_ONLY_AFTER_ALL_FIELDS_EVALUATED(
             expressed =
-                WireComplicationData.Builder(WireComplicationData.TYPE_NO_DATA)
+                WireComplicationData.Builder(TYPE_NO_DATA)
                     .setRangedValueExpression(DynamicFloat.fromState("ranged_value"))
                     .setLongText(WireComplicationText(DynamicString.fromState("long_text")))
                     .setLongTitle(WireComplicationText(DynamicString.fromState("long_title")))
@@ -115,7 +120,10 @@
                     .setContentDescription(
                         WireComplicationText(DynamicString.fromState("description"))
                     )
-                    .build(),
+                    .setPlaceholder(stateData("placeholder"))
+                    .setListEntryCollection(listOf(stateData("list")))
+                    .build()
+                    .also { it.setTimelineEntryCollection(listOf(stateData("timeline"))) },
             states =
                 aggregate(
                     // Each map piles on top of the previous ones.
@@ -124,25 +132,38 @@
                     mapOf("long_title" to StateEntryValue.fromString("Long Title")),
                     mapOf("short_text" to StateEntryValue.fromString("Short Text")),
                     mapOf("short_title" to StateEntryValue.fromString("Short Title")),
-                    // Only the last one will trigger an evaluated data.
                     mapOf("description" to StateEntryValue.fromString("Description")),
+                    mapOf("placeholder" to StateEntryValue.fromString("Placeholder")),
+                    mapOf("list" to StateEntryValue.fromString("List")),
+                    mapOf("timeline" to StateEntryValue.fromString("Timeline")),
+                    // Only the last one will trigger an evaluated data.
                 ),
             evaluated =
                 listOf(
-                    INVALID_DATA, // Before state is available.
-                    WireComplicationData.Builder(WireComplicationData.TYPE_NO_DATA)
+                    // Before any state is available.
+                    INVALID_DATA,
+                    // INVALID_DATA with placeholder, after it's available (and others aren't).
+                    WireComplicationData.Builder(INVALID_DATA)
+                        .setPlaceholder(evaluatedData("Placeholder"))
+                        .build(),
+                    // Evaluated data with after everything is available.
+                    WireComplicationData.Builder(TYPE_NO_DATA)
                         .setRangedValue(1f)
                         .setLongText(WireComplicationText("Long Text"))
                         .setLongTitle(WireComplicationText("Long Title"))
                         .setShortText(WireComplicationText("Short Text"))
                         .setShortTitle(WireComplicationText("Short Title"))
                         .setContentDescription(WireComplicationText("Description"))
+                        // Not trimmed for TYPE_NO_DATA.
+                        .setPlaceholder(evaluatedData("Placeholder"))
+                        .setListEntryCollection(listOf(evaluatedData("List")))
                         .build()
+                        .also { it.setTimelineEntryCollection(listOf(evaluatedData("Timeline"))) },
                 ),
         ),
         SET_TO_EVALUATED_IF_ALL_FIELDS_VALID(
             expressed =
-                WireComplicationData.Builder(WireComplicationData.TYPE_SHORT_TEXT)
+                WireComplicationData.Builder(TYPE_SHORT_TEXT)
                     .setShortTitle(WireComplicationText(DynamicString.fromState("valid")))
                     .setShortText(WireComplicationText(DynamicString.fromState("valid")))
                     .build(),
@@ -153,7 +174,7 @@
             evaluated =
                 listOf(
                     INVALID_DATA, // Before state is available.
-                    WireComplicationData.Builder(WireComplicationData.TYPE_SHORT_TEXT)
+                    WireComplicationData.Builder(TYPE_SHORT_TEXT)
                         .setShortTitle(WireComplicationText("Valid"))
                         .setShortText(WireComplicationText("Valid"))
                         .build(),
@@ -161,7 +182,7 @@
         ),
         SET_TO_NO_DATA_IF_FIRST_STATE_IS_INVALID(
             expressed =
-                WireComplicationData.Builder(WireComplicationData.TYPE_SHORT_TEXT)
+                WireComplicationData.Builder(TYPE_SHORT_TEXT)
                     .setShortTitle(WireComplicationText(DynamicString.fromState("valid")))
                     .setShortText(WireComplicationText(DynamicString.fromState("invalid")))
                     .build(),
@@ -177,7 +198,7 @@
         ),
         SET_TO_NO_DATA_IF_LAST_STATE_IS_INVALID(
             expressed =
-                WireComplicationData.Builder(WireComplicationData.TYPE_SHORT_TEXT)
+                WireComplicationData.Builder(TYPE_SHORT_TEXT)
                     .setShortTitle(WireComplicationText(DynamicString.fromState("valid")))
                     .setShortText(WireComplicationText(DynamicString.fromState("invalid")))
                     .build(),
@@ -192,13 +213,43 @@
             evaluated =
                 listOf(
                     INVALID_DATA, // Before state is available.
-                    WireComplicationData.Builder(WireComplicationData.TYPE_SHORT_TEXT)
+                    WireComplicationData.Builder(TYPE_SHORT_TEXT)
                         .setShortTitle(WireComplicationText("Valid"))
                         .setShortText(WireComplicationText("Valid"))
                         .build(),
                     INVALID_DATA, // After it was invalidated.
                 ),
         ),
+        SET_TO_EVALUATED_WITHOUT_PLACEHOLDER_IF_NOT_NO_DATA(
+            expressed =
+                WireComplicationData.Builder(TYPE_SHORT_TEXT)
+                    .setShortText(WireComplicationText("Text"))
+                    .setPlaceholder(evaluatedData("Placeholder"))
+                    .build(),
+            states = listOf(),
+            evaluated =
+                listOf(
+                    // No placeholder.
+                    WireComplicationData.Builder(TYPE_SHORT_TEXT)
+                        .setShortText(WireComplicationText("Text"))
+                        .build(),
+                )
+        ),
+        SET_TO_EVALUATED_WITHOUT_PLACEHOLDER_EVEN_IF_PLACEHOLDER_INVALID_IF_NOT_NO_DATA(
+            expressed =
+            WireComplicationData.Builder(TYPE_SHORT_TEXT)
+                .setShortText(WireComplicationText("Text"))
+                .setPlaceholder(stateData("placeholder"))
+                .build(),
+            states = listOf(), // placeholder state not set.
+            evaluated =
+            listOf(
+                // No placeholder.
+                WireComplicationData.Builder(TYPE_SHORT_TEXT)
+                    .setShortText(WireComplicationText("Text"))
+                    .build(),
+            )
+        ),
     }
 
     @Test
@@ -231,7 +282,7 @@
     @Test
     fun evaluate_cancelled_cleansUp() = runBlocking {
         val expressed =
-            WireComplicationData.Builder(WireComplicationData.TYPE_NO_DATA)
+            WireComplicationData.Builder(TYPE_NO_DATA)
                 .setRangedValueExpression(
                     // Uses TimeGateway, which needs cleaning up.
                     DynamicInstant.withSecondsPrecision(Instant.EPOCH)
@@ -262,19 +313,22 @@
     @Test
     fun evaluate_keepExpression_doesNotTrimUnevaluatedExpression() = runBlocking {
         val expressed =
-            WireComplicationData.Builder(WireComplicationData.TYPE_NO_DATA)
+            WireComplicationData.Builder(TYPE_NO_DATA)
                 .setRangedValueExpression(DynamicFloat.constant(1f))
                 .setLongText(WireComplicationText(DynamicString.constant("Long Text")))
                 .setLongTitle(WireComplicationText(DynamicString.constant("Long Title")))
                 .setShortText(WireComplicationText(DynamicString.constant("Short Text")))
                 .setShortTitle(WireComplicationText(DynamicString.constant("Short Title")))
                 .setContentDescription(WireComplicationText(DynamicString.constant("Description")))
+                .setPlaceholder(constantData("Placeholder"))
+                .setListEntryCollection(listOf(constantData("List")))
                 .build()
+                .also { it.setTimelineEntryCollection(listOf(constantData("Timeline"))) }
         val evaluator = ComplicationDataExpressionEvaluator(keepExpression = true)
 
         assertThat(evaluator.evaluate(expressed).firstOrNull())
             .isEqualTo(
-                WireComplicationData.Builder(WireComplicationData.TYPE_NO_DATA)
+                WireComplicationData.Builder(TYPE_NO_DATA)
                     .setRangedValue(1f)
                     .setRangedValueExpression(DynamicFloat.constant(1f))
                     .setLongText(
@@ -292,6 +346,29 @@
                     .setContentDescription(
                         WireComplicationText("Description", DynamicString.constant("Description"))
                     )
+                    .setPlaceholder(evaluatedWithConstantData("Placeholder"))
+                    .setListEntryCollection(listOf(evaluatedWithConstantData("List")))
+                    .build()
+                    .also {
+                        it.setTimelineEntryCollection(listOf(evaluatedWithConstantData("Timeline")))
+                    },
+            )
+    }
+
+    @Test
+    fun evaluate_keepExpressionNotNoData_doesNotTrimPlaceholder() = runBlocking {
+        val expressed =
+            WireComplicationData.Builder(TYPE_SHORT_TEXT)
+                .setShortText(WireComplicationText("Text"))
+                .setPlaceholder(evaluatedData("Placeholder"))
+                .build()
+        val evaluator = ComplicationDataExpressionEvaluator(keepExpression = true)
+
+        assertThat(evaluator.evaluate(expressed).firstOrNull())
+            .isEqualTo(
+                WireComplicationData.Builder(TYPE_SHORT_TEXT)
+                    .setShortText(WireComplicationText("Text"))
+                    .setPlaceholder(evaluatedData("Placeholder"))
                     .build()
             )
     }
@@ -300,5 +377,25 @@
         /** Converts `[{a: A}, {b: B}, {c: C}]` to `[{a: A}, {a: A, b: B}, {a: A, b: B, c: C}]`. */
         fun <K, V> aggregate(vararg maps: Map<K, V>): List<Map<K, V>> =
             maps.fold(listOf()) { acc, map -> acc + ((acc.lastOrNull() ?: mapOf()) + map) }
+
+        fun constantData(value: String) =
+            WireComplicationData.Builder(TYPE_NO_DATA)
+                .setLongText(WireComplicationText(DynamicString.constant(value)))
+                .build()
+
+        fun stateData(value: String) =
+            WireComplicationData.Builder(TYPE_NO_DATA)
+                .setLongText(WireComplicationText(DynamicString.fromState(value)))
+                .build()
+
+        fun evaluatedData(value: String) =
+            WireComplicationData.Builder(TYPE_NO_DATA)
+                .setLongText(WireComplicationText(value))
+                .build()
+
+        fun evaluatedWithConstantData(value: String) =
+            WireComplicationData.Builder(TYPE_NO_DATA)
+                .setLongText(WireComplicationText(value, DynamicString.constant(value)))
+                .build()
     }
 }
diff --git a/wear/watchface/watchface-editor/src/androidTest/java/androidx/wear/watchface/editor/EditorSessionTest.kt b/wear/watchface/watchface-editor/src/androidTest/java/androidx/wear/watchface/editor/EditorSessionTest.kt
index 14e7b1a..f99c2d7 100644
--- a/wear/watchface/watchface-editor/src/androidTest/java/androidx/wear/watchface/editor/EditorSessionTest.kt
+++ b/wear/watchface/watchface-editor/src/androidTest/java/androidx/wear/watchface/editor/EditorSessionTest.kt
@@ -1835,7 +1835,6 @@
         EditorService.globalEditorService.unregisterObserver(observerId)
     }
 
-    @SdkSuppress(maxSdkVersion = 32) // b/275361339
     @Test
     @Suppress("Deprecation") // userStyleSettings
     public fun commit_headless() {
@@ -1887,7 +1886,6 @@
         EditorService.globalEditorService.unregisterObserver(observerId)
     }
 
-    @SdkSuppress(maxSdkVersion = 32) // b/275361339
     @SuppressLint("NewApi")
     @Suppress("Deprecation") // userStyleSettings
     @Test
diff --git a/wear/watchface/watchface/src/androidTest/java/androidx/wear/watchface/WatchFaceServiceAndroidTest.kt b/wear/watchface/watchface/src/androidTest/java/androidx/wear/watchface/WatchFaceServiceAndroidTest.kt
index eafefe5..8c7e17e 100644
--- a/wear/watchface/watchface/src/androidTest/java/androidx/wear/watchface/WatchFaceServiceAndroidTest.kt
+++ b/wear/watchface/watchface/src/androidTest/java/androidx/wear/watchface/WatchFaceServiceAndroidTest.kt
@@ -21,7 +21,6 @@
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
-import androidx.test.filters.SdkSuppress
 import androidx.wear.watchface.control.InteractiveInstanceManager
 import androidx.wear.watchface.style.UserStyleSchema
 import androidx.wear.watchface.style.UserStyleSetting
@@ -39,7 +38,6 @@
         InteractiveInstanceManager.setParameterlessEngine(null)
     }
 
-    @SdkSuppress(maxSdkVersion = 32) // b/275361339
     @Test
     fun measuresWatchFaceIconsFromCustomContext() {
         val context: Context = ApplicationProvider.getApplicationContext()
diff --git a/window/window-testing/api/current.txt b/window/window-testing/api/current.txt
index 0c67563..28a4315 100644
--- a/window/window-testing/api/current.txt
+++ b/window/window-testing/api/current.txt
@@ -1,4 +1,38 @@
 // Signature format: 4.0
+package androidx.window.testing.embedding {
+
+  public final class ActivityEmbeddingRule implements org.junit.rules.TestRule {
+    ctor public ActivityEmbeddingRule();
+    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
+    method public void overrideIsActivityEmbedded(android.app.Activity activity, boolean isActivityEmbedded);
+    method public void overrideSplitInfo(android.app.Activity activity, java.util.List<androidx.window.embedding.SplitInfo> splitInfoList);
+    method public void overrideSplitSupportStatus(androidx.window.embedding.SplitController.SplitSupportStatus status);
+  }
+
+  public final class TestActivityStack {
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess, optional boolean isEmpty);
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess);
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack();
+  }
+
+  public final class TestSplitAttributesCalculatorParams {
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied, optional String? splitRuleTag);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics);
+  }
+
+  public final class TestSplitInfo {
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack, optional androidx.window.embedding.SplitAttributes splitAttributes);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo();
+  }
+
+}
+
 package androidx.window.testing.layout {
 
   public final class DisplayFeatureTesting {
diff --git a/window/window-testing/api/public_plus_experimental_current.txt b/window/window-testing/api/public_plus_experimental_current.txt
index bd1d758..28a4315 100644
--- a/window/window-testing/api/public_plus_experimental_current.txt
+++ b/window/window-testing/api/public_plus_experimental_current.txt
@@ -1,8 +1,8 @@
 // Signature format: 4.0
 package androidx.window.testing.embedding {
 
-  @androidx.window.core.ExperimentalWindowApi public final class ActivityEmbeddingTestRule implements org.junit.rules.TestRule {
-    ctor public ActivityEmbeddingTestRule();
+  public final class ActivityEmbeddingRule implements org.junit.rules.TestRule {
+    ctor public ActivityEmbeddingRule();
     method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
     method public void overrideIsActivityEmbedded(android.app.Activity activity, boolean isActivityEmbedded);
     method public void overrideSplitInfo(android.app.Activity activity, java.util.List<androidx.window.embedding.SplitInfo> splitInfoList);
@@ -10,25 +10,25 @@
   }
 
   public final class TestActivityStack {
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess, optional boolean isEmpty);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.ActivityStack createTestActivityStack();
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess, optional boolean isEmpty);
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess);
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack();
   }
 
   public final class TestSplitAttributesCalculatorParams {
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied, optional String? splitRuleTag);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied, optional String? splitRuleTag);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics);
   }
 
   public final class TestSplitInfo {
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack, optional androidx.window.embedding.SplitAttributes splitAttributes);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack);
-    method @androidx.window.core.ExperimentalWindowApi public static androidx.window.embedding.SplitInfo createTestSplitInfo();
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack, optional androidx.window.embedding.SplitAttributes splitAttributes);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo();
   }
 
 }
diff --git a/window/window-testing/api/restricted_current.txt b/window/window-testing/api/restricted_current.txt
index 0c67563..28a4315 100644
--- a/window/window-testing/api/restricted_current.txt
+++ b/window/window-testing/api/restricted_current.txt
@@ -1,4 +1,38 @@
 // Signature format: 4.0
+package androidx.window.testing.embedding {
+
+  public final class ActivityEmbeddingRule implements org.junit.rules.TestRule {
+    ctor public ActivityEmbeddingRule();
+    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
+    method public void overrideIsActivityEmbedded(android.app.Activity activity, boolean isActivityEmbedded);
+    method public void overrideSplitInfo(android.app.Activity activity, java.util.List<androidx.window.embedding.SplitInfo> splitInfoList);
+    method public void overrideSplitSupportStatus(androidx.window.embedding.SplitController.SplitSupportStatus status);
+  }
+
+  public final class TestActivityStack {
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess, optional boolean isEmpty);
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess);
+    method public static androidx.window.embedding.ActivityStack createTestActivityStack();
+  }
+
+  public final class TestSplitAttributesCalculatorParams {
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied, optional String? splitRuleTag);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration);
+    method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics);
+  }
+
+  public final class TestSplitInfo {
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack, optional androidx.window.embedding.SplitAttributes splitAttributes);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack);
+    method public static androidx.window.embedding.SplitInfo createTestSplitInfo();
+  }
+
+}
+
 package androidx.window.testing.layout {
 
   public final class DisplayFeatureTesting {
diff --git a/window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityEmbeddingTestRule.kt b/window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityEmbeddingRule.kt
similarity index 96%
rename from window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityEmbeddingTestRule.kt
rename to window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityEmbeddingRule.kt
index 70d10c41..cd9fe23 100644
--- a/window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityEmbeddingTestRule.kt
+++ b/window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityEmbeddingRule.kt
@@ -17,7 +17,6 @@
 package androidx.window.testing.embedding
 
 import android.app.Activity
-import androidx.window.core.ExperimentalWindowApi
 import androidx.window.embedding.ActivityEmbeddingController
 import androidx.window.embedding.EmbeddingBackend
 import androidx.window.embedding.RuleController
@@ -33,8 +32,7 @@
  * [RuleController] with a more simple one that will support testing independent of the current
  * platform.
  */
-@ExperimentalWindowApi
-class ActivityEmbeddingTestRule : TestRule {
+class ActivityEmbeddingRule : TestRule {
 
     private val stubEmbeddingBackend = StubEmbeddingBackend()
     private val decorator = StubEmbeddingBackendDecorator(stubEmbeddingBackend)
diff --git a/window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityStackTesting.kt b/window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityStackTesting.kt
index a8e66a2..3bbca06 100644
--- a/window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityStackTesting.kt
+++ b/window/window-testing/src/main/java/androidx/window/testing/embedding/ActivityStackTesting.kt
@@ -18,7 +18,6 @@
 package androidx.window.testing.embedding
 
 import android.app.Activity
-import androidx.window.core.ExperimentalWindowApi
 import androidx.window.embedding.ActivityStack
 
 /**
@@ -35,7 +34,6 @@
  * @return An [ActivityStack] instance for testing
  */
 @Suppress("FunctionName")
-@ExperimentalWindowApi
 @JvmName("createTestActivityStack")
 @JvmOverloads
 fun TestActivityStack(
diff --git a/window/window-testing/src/main/java/androidx/window/testing/embedding/SplitAttributesCalculatorParamsTesting.kt b/window/window-testing/src/main/java/androidx/window/testing/embedding/SplitAttributesCalculatorParamsTesting.kt
index bf20738..dd17311 100644
--- a/window/window-testing/src/main/java/androidx/window/testing/embedding/SplitAttributesCalculatorParamsTesting.kt
+++ b/window/window-testing/src/main/java/androidx/window/testing/embedding/SplitAttributesCalculatorParamsTesting.kt
@@ -55,7 +55,7 @@
  *
  * @see SplitAttributesCalculatorParams
  */
-@ExperimentalWindowApi
+@OptIn(ExperimentalWindowApi::class)
 @Suppress("FunctionName")
 @JvmName("createTestSplitAttributesCalculatorParams")
 @JvmOverloads
diff --git a/window/window-testing/src/main/java/androidx/window/testing/embedding/SplitInfoTesting.kt b/window/window-testing/src/main/java/androidx/window/testing/embedding/SplitInfoTesting.kt
index 3ce87ed..e3d3ac9 100644
--- a/window/window-testing/src/main/java/androidx/window/testing/embedding/SplitInfoTesting.kt
+++ b/window/window-testing/src/main/java/androidx/window/testing/embedding/SplitInfoTesting.kt
@@ -17,7 +17,6 @@
 
 package androidx.window.testing.embedding
 
-import androidx.window.core.ExperimentalWindowApi
 import androidx.window.embedding.ActivityStack
 import androidx.window.embedding.SplitAttributes
 import androidx.window.embedding.SplitInfo
@@ -37,7 +36,6 @@
  * @return A [SplitInfo] instance for testing
  */
 @Suppress("FunctionName")
-@ExperimentalWindowApi
 @JvmName("createTestSplitInfo")
 @JvmOverloads
 fun TestSplitInfo(
diff --git a/window/window-testing/src/main/java/androidx/window/testing/embedding/StubEmbeddingBackendDecorator.kt b/window/window-testing/src/main/java/androidx/window/testing/embedding/StubEmbeddingBackendDecorator.kt
index 2f0b90d..94bbc1a 100644
--- a/window/window-testing/src/main/java/androidx/window/testing/embedding/StubEmbeddingBackendDecorator.kt
+++ b/window/window-testing/src/main/java/androidx/window/testing/embedding/StubEmbeddingBackendDecorator.kt
@@ -16,14 +16,12 @@
 
 package androidx.window.testing.embedding
 
-import androidx.window.core.ExperimentalWindowApi
 import androidx.window.embedding.EmbeddingBackend
 import androidx.window.embedding.EmbeddingBackendDecorator
 
 /**
  * Decorator to return [StubEmbeddingBackend] instead of the actual implementation.
  */
-@ExperimentalWindowApi
 internal class StubEmbeddingBackendDecorator(
     private val stubEmbeddingBackend: StubEmbeddingBackend
 ) : EmbeddingBackendDecorator {
diff --git a/window/window-testing/src/test/java/androidx/window/testing/embedding/ActivityEmbeddingTestRuleTest.kt b/window/window-testing/src/test/java/androidx/window/testing/embedding/ActivityEmbeddingRuleTest.kt
similarity index 96%
rename from window/window-testing/src/test/java/androidx/window/testing/embedding/ActivityEmbeddingTestRuleTest.kt
rename to window/window-testing/src/test/java/androidx/window/testing/embedding/ActivityEmbeddingRuleTest.kt
index b1c22cb..6bd7721 100644
--- a/window/window-testing/src/test/java/androidx/window/testing/embedding/ActivityEmbeddingTestRuleTest.kt
+++ b/window/window-testing/src/test/java/androidx/window/testing/embedding/ActivityEmbeddingRuleTest.kt
@@ -19,7 +19,6 @@
 import android.app.Activity
 import android.app.Application
 import android.content.Intent
-import androidx.window.core.ExperimentalWindowApi
 import androidx.window.embedding.ActivityEmbeddingController
 import androidx.window.embedding.ActivityRule
 import androidx.window.embedding.EmbeddingBackend
@@ -51,12 +50,12 @@
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.whenever
 
-/** Test for [ActivityEmbeddingTestRule]. */
-@OptIn(ExperimentalWindowApi::class, ExperimentalCoroutinesApi::class)
-class ActivityEmbeddingTestRuleTest {
+/** Test for [ActivityEmbeddingRule]. */
+@OptIn(ExperimentalCoroutinesApi::class)
+class ActivityEmbeddingRuleTest {
 
     @get:Rule
-    val testRule: ActivityEmbeddingTestRule = ActivityEmbeddingTestRule()
+    val testRule: ActivityEmbeddingRule = ActivityEmbeddingRule()
 
     private val mockActivity: Activity = mock()
     private val testScope = TestScope()
@@ -246,7 +245,7 @@
     fun testRuleResetsOnException() {
         EmbeddingBackend.reset()
         try {
-            ActivityEmbeddingTestRule().apply(
+            ActivityEmbeddingRule().apply(
                 object : Statement() {
                     override fun evaluate() {
                         throw TestException
diff --git a/window/window/src/main/java/androidx/window/embedding/EmbeddingBackend.kt b/window/window/src/main/java/androidx/window/embedding/EmbeddingBackend.kt
index 117337d..02b8a67 100644
--- a/window/window/src/main/java/androidx/window/embedding/EmbeddingBackend.kt
+++ b/window/window/src/main/java/androidx/window/embedding/EmbeddingBackend.kt
@@ -70,14 +70,12 @@
             return decorator(ExtensionEmbeddingBackend.getInstance(context))
         }
 
-        @ExperimentalWindowApi
         @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
         @JvmStatic
         fun overrideDecorator(overridingDecorator: EmbeddingBackendDecorator) {
             decorator = overridingDecorator::decorate
         }
 
-        @ExperimentalWindowApi
         @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
         @JvmStatic
         fun reset() {
@@ -86,7 +84,6 @@
     }
 }
 
-@ExperimentalWindowApi
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
 interface EmbeddingBackendDecorator {