mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-11 09:51:40 +00:00
59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
"use client"
|
|
|
|
import * as React from "react"
|
|
import { AudioLinesIcon, PlusIcon } from "lucide-react"
|
|
|
|
import { Button } from "@/styles/radix-nova/ui/button"
|
|
import { ButtonGroup } from "@/styles/radix-nova/ui/button-group"
|
|
import {
|
|
InputGroup,
|
|
InputGroupAddon,
|
|
InputGroupButton,
|
|
InputGroupInput,
|
|
} from "@/styles/radix-nova/ui/input-group"
|
|
import {
|
|
Tooltip,
|
|
TooltipContent,
|
|
TooltipTrigger,
|
|
} from "@/styles/radix-nova/ui/tooltip"
|
|
|
|
export function ButtonGroupInputGroup() {
|
|
const [voiceEnabled, setVoiceEnabled] = React.useState(false)
|
|
return (
|
|
<ButtonGroup className="[--radius:9999rem]">
|
|
<ButtonGroup>
|
|
<Button variant="outline" size="icon" aria-label="Add">
|
|
<PlusIcon />
|
|
</Button>
|
|
</ButtonGroup>
|
|
<ButtonGroup className="flex-1">
|
|
<InputGroup>
|
|
<InputGroupInput
|
|
placeholder={
|
|
voiceEnabled ? "Record and send audio..." : "Send a message..."
|
|
}
|
|
disabled={voiceEnabled}
|
|
/>
|
|
<InputGroupAddon align="inline-end">
|
|
<Tooltip>
|
|
<TooltipTrigger asChild>
|
|
<InputGroupButton
|
|
onClick={() => setVoiceEnabled(!voiceEnabled)}
|
|
data-active={voiceEnabled}
|
|
className="data-[active=true]:bg-primary data-[active=true]:text-primary-foreground"
|
|
aria-pressed={voiceEnabled}
|
|
size="icon-xs"
|
|
aria-label="Voice Mode"
|
|
>
|
|
<AudioLinesIcon />
|
|
</InputGroupButton>
|
|
</TooltipTrigger>
|
|
<TooltipContent>Voice Mode</TooltipContent>
|
|
</Tooltip>
|
|
</InputGroupAddon>
|
|
</InputGroup>
|
|
</ButtonGroup>
|
|
</ButtonGroup>
|
|
)
|
|
}
|