ext {
    def AndroidxAppCompatVersion = '1.1.0'
    def AndroidxCoreVersion = '1.1.0'
    def KotlinVersion = '1.7.20'
    def AndroidxConstraintLayoutVersion = '2.0.0-beta4'
    def AndroidxLifeCycleVersion = '2.5.1'
    def GoogleMaterialVersion = '1.2.1'

    kotlinDependencies = [
            kotlin: "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${KotlinVersion}",
            reflect: "org.jetbrains.kotlin:kotlin-reflect:${KotlinVersion}"
    ]

    kotlin = kotlinDependencies.values()

    androidxDependencies = [
            androidxAppCompat      : "androidx.appcompat:appcompat:${AndroidxAppCompatVersion}",
            androidXKtx            : "androidx.activity:activity-ktx:${AndroidxAppCompatVersion}",
            androidxCore           : "androidx.core:core-ktx:${AndroidxCoreVersion}",
            androidxContraintLayout: "androidx.constraintlayout:constraintlayout:${AndroidxConstraintLayoutVersion}",
            androidxLifecycle      : "androidx.lifecycle:lifecycle-viewmodel-compose:${AndroidxLifeCycleVersion}",
            androidXLifecycleKTX   : "androidx.lifecycle:lifecycle-runtime-ktx:$AndroidxLifeCycleVersion"
    ]

    androidX = androidxDependencies.values()

    googleDependencies = [
            googleMaterial: "com.google.android.material:material:${GoogleMaterialVersion}"
    ]
    google = googleDependencies.values()

    compilersDeps = [
            lifecycle: "androidx.lifecycle:lifecycle-compiler:2.2.0",
    ]

    compilers = compilersDeps.values()

    loggingDeps = [
            timber: "com.jakewharton.timber:timber:5.0.1"
    ]

    loggingLibs = loggingDeps.values()

    composeDeps = [
            bom                : "androidx.compose:compose-bom:2024.02.00",
            ui                 : "androidx.compose.ui:ui",
            // Foundation (Border, Background, Box, Image, Scroll, shapes, animations, etc.)
            foundation         : "androidx.compose.foundation:foundation",
            // Material Design
            googleMaterial     : "androidx.compose.material:material:$GoogleMaterialVersion",
            // Material design icons
            icons              : "androidx.compose.material:material-icons-core:$GoogleMaterialVersion",
            iconsExtended      : "androidx.compose.material:material-icons-extended:$GoogleMaterialVersion",
            // Integration with activities
            activity           : "androidx.activity:activity-compose:1.6.1",
            // Integration with ViewModels
            viewModel          : "androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1",
            // Image loading
            coil               : "io.coil-kt:coil-compose:2.2.2",
            // ConstraintLayout
            constraint         : "androidx.constraintlayout:constraintlayout-compose:1.0.1",
            // Animations
            animations_graphics: "androidx.compose.animation:animation-graphics:1.6.1",
            animations_core    : "androidx.compose.animation:animation-core:1.6.1",
            animations         : "androidx.compose.animation:animation",
            //Placeholder
            main               : "com.google.accompanist:accompanist-placeholder:0.28.0",
    ]

    compose = composeDeps.values()

    composeNavDeps = [
            main: "androidx.navigation:navigation-compose:2.5.3"
    ]

    composeNav = composeNavDeps.values()
}
