plugins {
  alias(libs.plugins.kotlinMultiplatform)
  alias(libs.plugins.composeMultiplatform)
  alias(libs.plugins.composeCompiler)
  alias(libs.plugins.kotlinSerialization)
}

kotlin {
  val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"

  jvmToolchain(21)

  jvm()
  js(IR) {
    browser()
//        nodejs()
  }

  // WASM, nur wenn explizit aktiviert
  if (enableWasm) {
    @OptIn(org.jetbrains.kotlin.gradle.ExperimentalWasmDsl::class)
    wasmJs {
      browser()
    }
  }

  sourceSets {
    commonMain.dependencies {
      // Shared module dependency
      implementation(projects.frontend.shared)

      // Compose dependencies
      implementation(compose.runtime)
      implementation(compose.foundation)
      implementation(compose.material3)
      implementation(compose.ui)
      implementation(compose.components.resources)

      // Coroutines
      implementation(libs.kotlinx.coroutines.core)

      // Serialization
      implementation(libs.kotlinx.serialization.json)

      // DateTime
      implementation(libs.kotlinx.datetime)
    }

    jsMain.dependencies {
      // JS-specific UI dependencies if needed
    }

    jvmMain.dependencies {
      // JVM-specific UI dependencies if needed
    }
  }
}
