گروه ورودی (Input Group)
گروهبندی input با addon ها و دکمهها
معرفی
کامپوننت Input Group برای افزودن addon، آیکون یا دکمه به input استفاده میشود.
استفاده
import {
InputGroup,
InputGroupAddon,
InputGroupInput,
} from '@parto-system-design/ui';
export default function MyComponent() {
return (
<InputGroup dir="ltr">
<InputGroupAddon>https://</InputGroupAddon>
<InputGroupInput placeholder="example.com" type="url" />
</InputGroup>
);
}با آیکون
import { Icons } from '@parto-system-design/ui';
<InputGroup>
<InputGroupAddon>
<Icons.search className="w-4 h-4" />
</InputGroupAddon>
<InputGroupInput placeholder="جستجو..." />
</InputGroup>با دکمه
<InputGroup>
<InputGroupInput placeholder="ایمیل شما" />
<InputGroupAddon>
<InputGroupButton>ارسال</InputGroupButton>
</InputGroupAddon>
</InputGroup>چینش عمودی
<InputGroup>
<InputGroupAddon align="block-start">
عنوان
</InputGroupAddon>
<InputGroupInput />
<InputGroupAddon align="block-end">
توضیحات پایین
</InputGroupAddon>
</InputGroup>با Textarea
<InputGroup>
<InputGroupAddon align="block-start">
پیام شما
</InputGroupAddon>
<InputGroupTextarea rows={4} />
</InputGroup>محتوای LTR (URL، ایمیل، شماره تلفن)
برای فیلدهایی که محتوای انگلیسی یا LTR دارند (مثل URL، ایمیل، شماره تلفن)، از dir="ltr" روی InputGroup استفاده کنید:
{/* URL - کل گروه LTR */}
<InputGroup dir="ltr">
<InputGroupAddon>https://</InputGroupAddon>
<InputGroupInput placeholder="example.com" type="url" />
</InputGroup>
{/* ایمیل - کل گروه LTR */}
<InputGroup dir="ltr">
<InputGroupAddon>@</InputGroupAddon>
<InputGroupInput placeholder="username" type="email" />
</InputGroup>
{/* مبلغ - گروه RTL ولی عدد LTR */}
<InputGroup>
<InputGroupAddon align="inline-end">تومان</InputGroupAddon>
<InputGroupInput placeholder="مبلغ" type="number" />
</InputGroup>نکته: وقتی type برابر با url، email، tel یا number باشد، input به صورت خودکار LTR میشود. اما برای نمایش صحیح addon ها (مثل https://)، باید dir="ltr" را روی کل InputGroup تنظیم کنید.
Props
InputGroup
InputGroupAddon
InputGroupInput
InputGroupButton
کامپوننتها
InputGroup- wrapper اصلیInputGroupInput- input اصلیInputGroupTextarea- textareaInputGroupAddon- addon برای متن/آیکونInputGroupButton- دکمه داخل groupInputGroupText- متن ساده
ملاحظات RTL
- برای محتوای LTR (URL، ایمیل، تلفن)،
dir="ltr"را رویInputGroupتنظیم کنید - Input های با
type="number"به صورت خودکار LTR میشوند ولی گروه RTL میماند (برای نمایش "تومان" در سمت راست) - از
align="inline-end"برای addon های سمت چپ استفاده کنید