Revert "Revert "Featured Carousel feature in TV Compose.""

This reverts commit ab6c4b828736c71a91f14f81d8a45ff84503ea03.

Reason for revert: Reintroducing the Feature Carousel with code updated to
- use FocusDirection.Enter instead of FocusDirection.In
- cleaning up build.gradle as per the suggestion
- updating the test to fix the failure

Test: Tested manually by creating a sample app and have written
Integration Tests as well.

Relnote: "Adding the feature-carousel component to
          tv-compose library"

Change-Id: I7b629ac1bb828844ba6282a3dd1eb577dd994429
diff --git a/tv/tv-material/build.gradle b/tv/tv-material/build.gradle
index 68c20e2..3e5244d 100644
--- a/tv/tv-material/build.gradle
+++ b/tv/tv-material/build.gradle
@@ -15,20 +15,48 @@
  */
 
 import androidx.build.LibraryType
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
 
 plugins {
     id("AndroidXPlugin")
+    id("AndroidXComposePlugin")
     id("com.android.library")
     id("org.jetbrains.kotlin.android")
 }
 
 dependencies {
     api(libs.kotlinStdlib)
-    // Add dependencies here
+
+    def composeVersion = '1.2.1'
+
+    api("androidx.annotation:annotation:1.4.0")
+    api("androidx.compose.animation:animation:$composeVersion")
+    api("androidx.compose.runtime:runtime:$composeVersion")
+
+    implementation(libs.kotlinStdlibCommon)
+    implementation("androidx.compose.foundation:foundation:$composeVersion")
+    implementation("androidx.compose.foundation:foundation-layout:$composeVersion")
+    implementation(project(":compose:ui:ui"))
+    implementation("androidx.compose.ui:ui-graphics:$composeVersion")
+    implementation("androidx.compose.ui:ui-text:$composeVersion")
+    implementation("androidx.compose.ui:ui-util:$composeVersion")
+    implementation("androidx.profileinstaller:profileinstaller:1.2.0")
+
+    androidTestImplementation(libs.truth)
+
+    androidTestImplementation(project(":compose:ui:ui-test"))
+    androidTestImplementation(project(":compose:ui:ui-test-junit4"))
+    androidTestImplementation(project(":compose:test-utils"))
+    androidTestImplementation(libs.testRunner)
+
+    samples(projectOrArtifact(":tv:tv-material-samples"))
 }
 
 android {
     namespace "androidx.tv.material"
+    defaultConfig {
+        minSdkVersion 21
+    }
 }
 
 androidx {
@@ -37,4 +65,13 @@
     mavenGroup = LibraryGroups.TV
     inceptionYear = "2022"
     description = "build TV applications using controls that adhere to Material Design Language."
+    targetsJavaConsumers = false
+}
+
+tasks.withType(KotlinCompile).configureEach {
+    kotlinOptions {
+        freeCompilerArgs += [
+                "-Xjvm-default=all",
+        ]
+    }
 }