- SageClient: HTTP client with cookie-based login, session management, UI fetching - Main.kt: Full macOS desktop app with login screen, main window, loading/error states - BricksRenderer: Complete inline rendering for VBox/HBox/Button/Form/Menu/TabPanel/Modal/Scroll/Image/Svg - BricksHttp: Ktor CIO engine with cookie storage, Bearer token auth, form POST - BricksContext: currentWidget state flow, resolveTemplates for entire_url - ActionDispatcher: SageClient integration, urlwidget loading, event callbacks - BricksWidget: Added options field to BricksBind - BricksParser: Parse bind options from JSON - Build: Added ktor-client-cio, content-negotiation deps; DMG packaging configured - .gitignore: Standard Kotlin/Gradle/IDE patterns
65 lines
1.9 KiB
Plaintext
65 lines
1.9 KiB
Plaintext
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
|
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlin.multiplatform)
|
|
alias(libs.plugins.compose.compiler)
|
|
alias(libs.plugins.jetbrains.compose)
|
|
alias(libs.plugins.serialization)
|
|
}
|
|
|
|
kotlin {
|
|
androidTarget()
|
|
jvm("desktop")
|
|
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach { iosTarget ->
|
|
iosTarget.binaries.framework {
|
|
baseName = "BricksShared"
|
|
isStatic = true
|
|
}
|
|
}
|
|
|
|
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
|
compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") }
|
|
|
|
sourceSets {
|
|
commonMain.dependencies {
|
|
implementation(compose.runtime)
|
|
implementation(compose.foundation)
|
|
implementation(compose.material3)
|
|
implementation(compose.ui)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.ktor.client.core)
|
|
implementation(libs.ktor.client.cio)
|
|
implementation(libs.ktor.client.content.negotiation)
|
|
implementation(libs.ktor.serialization.json)
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
implementation(libs.coil.compose)
|
|
implementation(libs.coil.network)
|
|
}
|
|
desktopMain.dependencies {
|
|
implementation(compose.desktop.currentOs)
|
|
implementation(libs.ktor.client.okhttp)
|
|
}
|
|
iosMain.dependencies {
|
|
implementation(libs.ktor.client.darwin)
|
|
}
|
|
}
|
|
}
|
|
|
|
android {
|
|
namespace = "com.bricks.mp"
|
|
compileSdk = 35
|
|
defaultConfig { minSdk = 24 }
|
|
}
|
|
|
|
compose.desktop {
|
|
application {
|
|
mainClass = "com.bricks.MainKt"
|
|
nativeDistributions {
|
|
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
|
|
packageName = "bricks-mp"
|
|
packageVersion = "0.1.0"
|
|
}
|
|
}
|
|
}
|