from dash import Dash, Output, Input
import dash_mantine_components as dmc
from dash_iconify import DashIconify
import secrets
app = Dash()
app.layout = dmc.MantineProvider(
dmc.Container([
dmc.Title("CopyButton Demo", order=3, mb="md"),
dmc.Button("Generate Key", id="generate-btn"),
dmc.Group([
dmc.Text(id="key-display"),
dmc.CopyButton(
target_id="key-display",
children=DashIconify(icon="fa-regular:copy"),
copiedChildren=DashIconify(icon="fa-regular:check-circle"),
color="gray",
copiedColor="teal",
variant="outline",
size="compact-md"
),
], mt="lg")
])
)
@app.callback(
Output("key-display", "children"),
Input("generate-btn", "n_clicks"),
)
def generate_key(_):
return secrets.token_urlsafe(16)
if __name__ == "__main__":
app.run(debug=True)