Bubble
ReadyChat message bubble.
How did the session go today?
09:41Three sets of twelve at 22.5 kg.
09:43Installation
$ npx @oratiq-js/ui add bubbleCopies the component and everything it depends on into your project, then lists the npm packages to install. The code is yours after this.
Usage
import
import { Bubble, BubbleGroup, BubbleTimestamp } from "@/components/ui/bubble";Conversation
How did the session go today?
Did you hit the target volume?
09:41Yeah — three sets of twelve at 22.5 kg.
Sending the log now…
09:43This one failed to send.
Two directions at once
Bubbles use logical margins, so "mine" hugs the end edge in both LTR and RTL. Each bubble also carries
dir="auto", so an Arabic message inside an English thread lays itself out correctly — real conversations are mixed-language, and the container's direction is the wrong answer for individual messages.View source on GitHub → components/ui/bubble.tsx