package com.example.aiapp import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.unit.dp /** * Verbatim text, on the surface that says so: a command about to be run, what a tool printed. * * A composable rather than a modifier repeated at each site, because the inset is part of it -- * monospace text drawn hard against the edge of a tinted block reads as a clipping fault, and three * copies of "clip, fill, pad" drift apart the first time one is adjusted. * * The colour is [rawSurface], which is also what a code block inside a reply is given. */ @Composable fun RawBlock(modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit) { Column( modifier .fillMaxWidth() // Smaller than a card's radius, and deliberately: this sits *inside* one, and a rounded // rectangle drawn at the same radius as the one behind it reads as a misprint. .clip(MaterialTheme.shapes.extraSmall) .background(rawSurface) .padding(horizontal = 8.dp, vertical = 6.dp), content = content, ) }