Components
- آکوردئونAccordion
- Alert
- Alert Dialog
- Aspect Ratio
- Attachment
- Avatar
- Badge
- Breadcrumb
- Bubble
- دکمهButton
- گروه دکمههاButton Group
- Calendar
- Card
- Carousel
- Chart
- Checkbox
- Collapsible
- Combobox
- Command
- Context Menu
- Data Table
- Date Picker
- Dialog
- Direction
- Drawer
- Dropdown Menu
- Empty
- Field
- Hover Card
- Input
- Input Group
- Input OTP
- Item
- Kbd
- Label
- Marker
- Menubar
- Message
- Message Scroller
- Native Select
- Navigation Menu
- Pagination
- Popover
- Progress
- Questionnaire
- Radio Group
- Resizable
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Spinner
- Switch
- Table
- Tabs
- Textarea
- Toast
- Toggle
- Toggle Group
- Tooltip
- Typography
Get Started
@farsiui/react
@farsiui/helpers
Utilities
معمولی
"use client"
import * as React from "react"
import {
ArchiveIcon,
ArrowLeftIcon,
CalendarPlusIcon,
ClockIcon,
ListFilterIcon,
MailCheckIcon,
MoreHorizontalIcon,
TagIcon,
Trash2Icon,
} from "lucide-react"
import {
useVariantPreviewIconSize,
useVariantPreviewSize,
} from "@/components/component-variant-preview-size"
import { Button } from "@/components/ui/button"
import { ButtonGroup } from "@/components/ui/button-group"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuRadioGroup,
DropdownMenuRadioItem,
DropdownMenuSeparator,
DropdownMenuSub,
DropdownMenuSubContent,
DropdownMenuSubTrigger,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"
export function ButtonGroupDemo() {
const [label, setLabel] = React.useState("personal")
const size = useVariantPreviewSize()
const iconSize = useVariantPreviewIconSize()
return (
<ButtonGroup>
<ButtonGroup className="hidden sm:flex">
<Button variant="outline" size={iconSize} aria-label="بازگشت">
<ArrowLeftIcon />
</Button>
</ButtonGroup>
<ButtonGroup>
<Button variant="outline" size={size}>
بایگانی
</Button>
<Button variant="outline" size={size}>
گزارش
</Button>
</ButtonGroup>
<ButtonGroup>
<Button variant="outline" size={size}>
بعداً
</Button>
<DropdownMenu>
<DropdownMenuTrigger render={<Button variant="outline" size={iconSize} aria-label="گزینههای بیشتر"><MoreHorizontalIcon /></Button>} />
<DropdownMenuContent align="end" className="w-44" dir="rtl">
<DropdownMenuGroup>
<DropdownMenuItem>
<MailCheckIcon />
علامت بهعنوان خواندهشده
</DropdownMenuItem>
<DropdownMenuItem>
<ArchiveIcon />
بایگانی
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem>
<ClockIcon />
بعداً
</DropdownMenuItem>
<DropdownMenuItem>
<CalendarPlusIcon />
افزودن به تقویم
</DropdownMenuItem>
<DropdownMenuItem>
<ListFilterIcon />
افزودن به فهرست
</DropdownMenuItem>
<DropdownMenuSub>
<DropdownMenuSubTrigger>
<TagIcon />
برچسب بهعنوان...
</DropdownMenuSubTrigger>
<DropdownMenuSubContent>
<DropdownMenuRadioGroup
value={label}
onValueChange={setLabel}
>
<DropdownMenuRadioItem value="personal">
شخصی
</DropdownMenuRadioItem>
<DropdownMenuRadioItem value="work">
کاری
</DropdownMenuRadioItem>
<DropdownMenuRadioItem value="other">
سایر
</DropdownMenuRadioItem>
</DropdownMenuRadioGroup>
</DropdownMenuSubContent>
</DropdownMenuSub>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem variant="destructive">
<Trash2Icon />
حذف
</DropdownMenuItem>
</DropdownMenuGroup>
</DropdownMenuContent>
</DropdownMenu>
</ButtonGroup>
</ButtonGroup>
)
}
نصب#
npx farsiui@latest add button-group
استفاده#
import {
ButtonGroup,
ButtonGroupSeparator,
ButtonGroupText,
} from "@/components/ui/button-group"<ButtonGroup>
<Button>دکمه ۱</Button>
<Button>دکمه ۲</Button>
</ButtonGroup>