React
<ConnectlyWebchat> from @connectly/webchat/react. It renders
null — the widget is created imperatively and lives in <body>, outside your
tree — and the panel here is driven as a controlled open / onOpenChange pair.