package cc.unitmesh.devins.ui.compose.sketch import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties /** * iOS implementation of PlatformMermaidFullscreenDialog. * Shows a placeholder dialog with the mermaid code. * TODO: Implement WKWebView-based rendering for iOS. */ @Composable actual fun PlatformMermaidFullscreenDialog( mermaidCode: String, isDarkTheme: Boolean, backgroundColor: Color, onDismiss: () -> Unit ) { Dialog( onDismissRequest = onDismiss, properties = DialogProperties( usePlatformDefaultWidth = false, dismissOnBackPress = true, dismissOnClickOutside = true ) ) { Surface( modifier = Modifier.fillMaxSize(), color = backgroundColor ) { Column( modifier = Modifier.fillMaxSize().padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End ) { TextButton(onClick = onDismiss) { Text("Close") } } Spacer(modifier = Modifier.height(16.dp)) Text( text = "Mermaid Diagram", style = MaterialTheme.typography.titleLarge, color = MaterialTheme.colorScheme.onSurface ) Spacer(modifier = Modifier.height(16.dp)) Box( modifier = Modifier .fillMaxWidth() .weight(1f) .background(MaterialTheme.colorScheme.surfaceVariant) .padding(16.dp) ) { Text( text = mermaidCode, style = MaterialTheme.typography.bodySmall.copy( fontFamily = androidx.compose.ui.text.font.FontFamily.Monospace ), color = MaterialTheme.colorScheme.onSurfaceVariant ) } Spacer(modifier = Modifier.height(8.dp)) Text( text = "Diagram rendering coming soon", style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.6f) ) } } } }