import dash_mantine_components as dmc
from dash import Dash, Input, Output
from dash_iconify import DashIconify # Required for chatCopyIcon
app = Dash()
app.layout = dmc.MantineProvider([
dmc.Title("Demo of CustomCopyButton in a Textarea", order=3),
dmc.Paper(
[
dmc.Box(
[
dmc.Textarea(
id="chat-textarea",
value="This could be a chat message or generated text.",
autosize=True,
minRows=4,
variant="unstyled",
),
dmc.CustomCopyButton(
value="",
children={"function": "chatCopyIcon"},
id="copy-icon"
),
],
style={"position": "relative"},
)
],
shadow="lg",
radius="xl",
m="xl",
p="sm",
withBorder=True,
style={
"position": "relative",
"maxWidth": 600,
},
)
])
@app.callback(
Output("copy-icon", "value"),
Input("chat-textarea", "value"),
)
def update(v):
return v
if __name__ == "__main__":
app.run(debug=True)