| import * as React from "react" |
|
|
| import { cn } from "@/shared/lib/cn" |
|
|
| function MessageGroup({ className, ...props }: React.ComponentProps<"div">) { |
| return ( |
| <div |
| data-slot="message-group" |
| className={cn("flex min-w-0 flex-col gap-2", className)} |
| {...props} |
| /> |
| ) |
| } |
|
|
| function Message({ |
| className, |
| align = "start", |
| ...props |
| }: React.ComponentProps<"div"> & { align?: "start" | "end" }) { |
| return ( |
| <div |
| data-slot="message" |
| data-align={align} |
| className={cn( |
| "group/message relative flex w-full min-w-0 gap-2 text-sm data-[align=end]:flex-row-reverse", |
| className |
| )} |
| {...props} |
| /> |
| ) |
| } |
|
|
| function MessageAvatar({ className, ...props }: React.ComponentProps<"div">) { |
| return ( |
| <div |
| data-slot="message-avatar" |
| className={cn( |
| "flex size-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted text-muted-foreground", |
| className |
| )} |
| {...props} |
| /> |
| ) |
| } |
|
|
| function MessageContent({ className, ...props }: React.ComponentProps<"div">) { |
| return ( |
| <div |
| data-slot="message-content" |
| className={cn( |
| "flex min-w-0 max-w-[85%] flex-col gap-2.5 break-words group-data-[align=end]/message:items-end", |
| className |
| )} |
| {...props} |
| /> |
| ) |
| } |
|
|
| function MessageHeader({ className, ...props }: React.ComponentProps<"div">) { |
| return ( |
| <div |
| data-slot="message-header" |
| className={cn("flex max-w-full min-w-0 items-center text-xs font-medium text-muted-foreground", className)} |
| {...props} |
| /> |
| ) |
| } |
|
|
| function MessageFooter({ className, ...props }: React.ComponentProps<"div">) { |
| return ( |
| <div |
| data-slot="message-footer" |
| className={cn( |
| "flex max-w-full min-w-0 items-center text-xs font-medium text-muted-foreground group-data-[align=end]/message:justify-end", |
| className |
| )} |
| {...props} |
| /> |
| ) |
| } |
|
|
| export { |
| MessageGroup, |
| Message, |
| MessageAvatar, |
| MessageContent, |
| MessageFooter, |
| MessageHeader, |
| } |
|
|