@mamrp/components 1.0.34 → 1.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,227 @@
1
+ import * as React from 'react';
2
+ import { Control } from 'react-hook-form';
3
+
4
+ interface OptionType$1 {
5
+ title: string;
6
+ key: string | number;
7
+ [x: string]: any;
8
+ }
9
+ interface AutocompleteRenderOptionState {
10
+ inputValue: string;
11
+ index: number;
12
+ selected: boolean;
13
+ }
14
+ interface MultipleSelectChipProps$1<T extends OptionType$1> {
15
+ name: string;
16
+ control: Control<any>;
17
+ label?: string;
18
+ data?: T[];
19
+ isLoading?: boolean;
20
+ disabled?: boolean;
21
+ size?: "small" | "medium";
22
+ clear?: boolean;
23
+ renderOption?: (props: React.HTMLAttributes<HTMLLIElement>, option: T, state: AutocompleteRenderOptionState) => React.ReactNode;
24
+ }
25
+ /**
26
+ * 📦 MultipleSelector — کامپوننت انتخاب چندگزینه‌ای پیشرفته
27
+ *
28
+ * @component MultipleSelector
29
+ *
30
+ * @template T — نوع داده‌ی گزینه‌ها که باید شامل فیلدهای `title` و `key` باشد.
31
+ *
32
+ * @param {string} name - نام فیلد در فرم (برای ثبت در react-hook-form).
33
+ * @param {Control<any>} control - کنترل فرم از کتابخانه react-hook-form.
34
+ * @param {string} [label] - برچسب ورودی.
35
+ * @param {T[]} [data] - آرایه‌ای از گزینه‌ها که هر کدام باید شامل `title` (نمایش) و `key` (شناسه یکتا) باشد.
36
+ * @param {boolean} [isLoading=false] - حالت لودینگ برای نمایش اسپینر در ورودی.
37
+ * @param {boolean} [disabled=false] - غیرفعال‌کردن ورودی.
38
+ * @param {"small" | "medium"} [size="medium"] - سایز ورودی MUI Autocomplete.
39
+ * @param {boolean} [clear=false] - اگر `false` باشد، قابلیت پاک کردن کامل (Clearable) غیرفعال می‌شود.
40
+ * @param {(props: React.HTMLAttributes<HTMLLIElement>, option: T, state: AutocompleteRenderOptionState) => React.ReactNode} [renderOption] - تابع سفارشی برای رندر هر آیتم در لیست انتخاب.
41
+ *
42
+ * @description
43
+ * این کامپوننت یک `Autocomplete` چندگزینه‌ای با قابلیت‌های زیر است:
44
+ * - اتصال مستقیم به `react-hook-form` (با استفاده از Controller)
45
+ * - انتخاب همه (`انتخاب همه`) یا پاک کردن همه (`پاک کردن همه`)
46
+ * - نمایش تعداد آیتم‌های انتخاب شده به جای تگ‌های جداگانه
47
+ * - پشتیبانی از حالت لودینگ و غیرفعال بودن
48
+ * - امکان سفارشی‌سازی رندر آیتم‌ها (`renderOption`)
49
+ * - آیکون‌های سفارشی برای انتخاب‌ها و گزینه‌های ویژه
50
+ * - جلوگیری از بستن لیست هنگام انتخاب آیتم‌ها (`disableCloseOnSelect`)
51
+ * - مدیریت موقعیت Popper با MUI modifiers
52
+ *
53
+ * @returns {Array<string | number>} آرایه‌ای از کلیدهای آیتم‌های انتخاب شده.
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * import { useForm, Controller } from "react-hook-form";
58
+ *
59
+ * type MyOption = { title: string; key: number };
60
+ *
61
+ * const options: MyOption[] = [
62
+ * { title: "محصول ۱", key: 1 },
63
+ * { title: "محصول ۲", key: 2 },
64
+ * ];
65
+ *
66
+ * export default function MyForm() {
67
+ * const { control, handleSubmit } = useForm({ defaultValues: { productIds: [] } });
68
+ *
69
+ * const onSubmit = (data: any) => {
70
+ * console.log("انتخاب شده‌ها:", data.productIds);
71
+ * };
72
+ *
73
+ * return (
74
+ * <form onSubmit={handleSubmit(onSubmit)}>
75
+ * <MultipleSelector<MyOption>
76
+ * name="productIds"
77
+ * label="محصولات"
78
+ * control={control}
79
+ * data={options}
80
+ * isLoading={false}
81
+ * size="small"
82
+ * renderOption={(props, option, state) => (
83
+ * <li {...props} key={option.key}>
84
+ * <strong style={{ color: state.selected ? "green" : "black" }}>
85
+ * {option.title}
86
+ * </strong>
87
+ * </li>
88
+ * )}
89
+ * />
90
+ * <button type="submit">ثبت</button>
91
+ * </form>
92
+ * );
93
+ * }
94
+ * ```
95
+ */
96
+ declare function MultiCheckSelector<T extends OptionType$1>({ name, control, label, data, isLoading, disabled, size, clear, renderOption, }: MultipleSelectChipProps$1<T>): React.JSX.Element;
97
+
98
+ interface OptionType {
99
+ title: string;
100
+ key: string | number;
101
+ [x: string]: any;
102
+ }
103
+ interface MultipleSelectChipProps<T extends OptionType> {
104
+ name: string;
105
+ control: Control<any>;
106
+ label?: string;
107
+ data?: T[];
108
+ isLoading?: boolean;
109
+ disabled?: boolean;
110
+ size?: "small" | "medium";
111
+ clear?: boolean;
112
+ renderOption?: (props: React.HTMLAttributes<HTMLLIElement>, option: T) => React.ReactNode;
113
+ }
114
+ /**
115
+ * 📦 کامپوننت انتخاب چند گزینه‌ای با پشتیبانی از react-hook-form و MUI Autocomplete
116
+ *
117
+ * @component MultipleSelector
118
+ *
119
+ * @param {string} name - نام فیلدی که در فرم ثبت می‌شود.
120
+ * @param {string} [label] - برچسب نمایشی برای فیلد.
121
+ * @param {Control<any>} control - کنترل فرم از react-hook-form.
122
+ * @param {{ title: string; key: string | number }[]} [data] - لیستی از گزینه‌ها شامل `title` (متن) و `key` (مقدار).
123
+ * @param {boolean} [isLoading=false] - آیا داده‌ها در حال بارگذاری هستند.
124
+ * @param {boolean} [disabled=false] - غیرفعال‌سازی ورودی.
125
+ * @param {"small" | "medium"} [size="medium"] - سایز ورودی.
126
+ * @param {boolean} [clear=false] - آیا امکان پاک کردن وجود دارد یا نه.
127
+ * @param {string} [tooltip] - متن راهنما هنگام هاور.
128
+ * @param {(props, option) => React.ReactNode} [renderOption] - تابعی سفارشی برای رندر آیتم‌ها در لیست.
129
+ *
130
+ * @returns {Array<{ key: string | number }>} لیستی از آیتم‌های انتخاب‌شده ( فقط آیدی‌ها).
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * <MultipleSelector<{title:string; key:number;}>
135
+ * name="productIds"
136
+ * label="محصولات"
137
+ * control={control}
138
+ * data={[{ title: "محصول ۱", key: 1 }, { title: "محصول ۲", key: 2 }]}
139
+ * />
140
+ * ```
141
+ *
142
+ * @description
143
+ * کامپوننتی چندانتخابی با قابلیت انتخاب همه‌ی موارد، سفارشی‌سازی گزینه‌ها،
144
+ * نمایش راهنمای هاور، و بازگرداندن لیست کامل از آبجکت‌های انتخاب‌شده.
145
+ *
146
+ * برای سفارشی‌سازی نحوه نمایش آیتم‌ها:
147
+ * ```tsx
148
+ * renderOption={(props, option) => (
149
+ * <li {...props} key={`${option.key}`}>
150
+ * <span style={{ color: "green" }}>{option.title}</span>
151
+ * </li>
152
+ * )}
153
+ * ```
154
+ */
155
+ declare function MultipleSelector<T extends OptionType>({ name, control, label, data, isLoading, disabled, size, clear, renderOption, }: MultipleSelectChipProps<T>): React.JSX.Element;
156
+
157
+ interface BaseOption {
158
+ key: number | string | "false" | true;
159
+ title: string | number;
160
+ [x: string]: any;
161
+ }
162
+ interface SeacrchableSelectChipProps<T extends BaseOption = BaseOption> {
163
+ name: string;
164
+ control: Control<any>;
165
+ label?: string;
166
+ data?: T[];
167
+ isLoading?: boolean;
168
+ disabled?: boolean;
169
+ size?: "small" | "medium";
170
+ clear?: boolean;
171
+ onChangeHandler?: (value: any, onChange: (data: any) => void) => void;
172
+ valueHandler?: (value: any) => any;
173
+ onFilterOptions: (inputValue: string) => void;
174
+ renderOption?: (props: React.HTMLAttributes<HTMLLIElement>, option: T) => React.ReactNode;
175
+ }
176
+ /**
177
+ * 🔍 کامپوننت انتخاب تکی با قابلیت جست‌وجو، پشتیبانی از react-hook-form و MUI Autocomplete
178
+ *
179
+ * @component SeacrchableSelector
180
+ *
181
+ * @template T - نوع گزینه‌ها که باید شامل `key` و `title` باشد.
182
+ *
183
+ * @param {string} name - نام فیلدی که در فرم ثبت می‌شود.
184
+ * @param {string} [label] - برچسب نمایشی برای فیلد.
185
+ * @param {Control<any>} control - کنترل فرم از `react-hook-form`.
186
+ * @param {T[]} [data] - لیستی از گزینه‌ها شامل `key` و `title` به عنوان مقدار و متن نمایشی.
187
+ * @param {boolean} [isLoading=false] - وضعیت بارگذاری (مثلاً هنگام فراخوانی API).
188
+ * @param {boolean} [disabled=false] - غیرفعال بودن فیلد.
189
+ * @param {"small" | "medium"} [size="medium"] - اندازه ورودی.
190
+ * @param {boolean} [clear=false] - فعال بودن امکان پاک‌کردن مقدار انتخاب‌شده.
191
+ * @param {(value: any, onChange: (data: any) => void) => void} [onChangeHandler] - تابع هندل انتخاب گزینه (در صورت نیاز به کنترل خارجی).
192
+ * @param {(value: any) => string} [valueHandler] - تابع تبدیل مقدار ذخیره‌شده در فرم به مقدار نمایشی در input (مثلاً عنوان).
193
+ * @param {(inputValue: string) => void} [onFilterOptions] - تابعی برای هندل کردن فیلتر شدن داده‌ها هنگام تایپ کاربر (مثلاً برای fetch کردن).
194
+ * @param {(props: React.HTMLAttributes<HTMLLIElement>, option: T) => React.ReactNode} [renderOption] - تابعی سفارشی برای رندر آیتم‌ها در لیست.
195
+ *
196
+ * @returns {string | number | null} مقدار انتخاب‌شده (کلید گزینه یا null)
197
+ *
198
+ * @example
199
+ * ```tsx
200
+ * <SeacrchableSelector<{ title: string; key: number }>
201
+ * name="categoryId"
202
+ * label="دسته‌بندی"
203
+ * control={control}
204
+ * data={[{ title: "کتاب", key: 1 }, { title: "لوازم تحریر", key: 2 }]}
205
+ * onFilterOptions={(input) => fetchUsers(input)}
206
+ * />
207
+ * ```
208
+ *
209
+ * @description
210
+ * این کامپوننت یک ورودی انتخاب‌گر تکی با قابلیت جست‌وجو و پشتیبانی از مقدار دلخواه کاربر (`freeSolo`) است.
211
+ * قابلیت‌هایی مانند بارگذاری داده، سفارشی‌سازی نمایش گزینه‌ها، هماهنگ‌سازی با فرم، پاک‌سازی انتخاب، و پشتیبانی از جست‌وجوی سمت سرور را نیز داراست.
212
+ *
213
+ * اگر `freeSolo` فعال باشد، می‌توان مقادیر تایپ‌شده را نیز ذخیره کرد. مقدار خروجی معمولاً `key` گزینه انتخاب‌شده است،
214
+ * مگر اینکه کاربر متنی وارد کند که در لیست نباشد (در این صورت می‌توان آن را مستقیم ذخیره کرد).
215
+ *
216
+ * برای سفارشی‌سازی گزینه‌ها:
217
+ * ```tsx
218
+ * renderOption={(props, option) => (
219
+ * <li {...props} key={option.key}>
220
+ * <b>{option.title}</b>
221
+ * </li>
222
+ * )}
223
+ * ```
224
+ */
225
+ declare function SearchableSelector<T extends BaseOption = BaseOption>({ name, control, label, data, isLoading, disabled, size, clear, onChangeHandler, valueHandler, onFilterOptions, renderOption, }: SeacrchableSelectChipProps<T>): React.JSX.Element;
226
+
227
+ export { MultiCheckSelector, MultipleSelector, SearchableSelector };
@@ -0,0 +1,227 @@
1
+ import * as React from 'react';
2
+ import { Control } from 'react-hook-form';
3
+
4
+ interface OptionType$1 {
5
+ title: string;
6
+ key: string | number;
7
+ [x: string]: any;
8
+ }
9
+ interface AutocompleteRenderOptionState {
10
+ inputValue: string;
11
+ index: number;
12
+ selected: boolean;
13
+ }
14
+ interface MultipleSelectChipProps$1<T extends OptionType$1> {
15
+ name: string;
16
+ control: Control<any>;
17
+ label?: string;
18
+ data?: T[];
19
+ isLoading?: boolean;
20
+ disabled?: boolean;
21
+ size?: "small" | "medium";
22
+ clear?: boolean;
23
+ renderOption?: (props: React.HTMLAttributes<HTMLLIElement>, option: T, state: AutocompleteRenderOptionState) => React.ReactNode;
24
+ }
25
+ /**
26
+ * 📦 MultipleSelector — کامپوننت انتخاب چندگزینه‌ای پیشرفته
27
+ *
28
+ * @component MultipleSelector
29
+ *
30
+ * @template T — نوع داده‌ی گزینه‌ها که باید شامل فیلدهای `title` و `key` باشد.
31
+ *
32
+ * @param {string} name - نام فیلد در فرم (برای ثبت در react-hook-form).
33
+ * @param {Control<any>} control - کنترل فرم از کتابخانه react-hook-form.
34
+ * @param {string} [label] - برچسب ورودی.
35
+ * @param {T[]} [data] - آرایه‌ای از گزینه‌ها که هر کدام باید شامل `title` (نمایش) و `key` (شناسه یکتا) باشد.
36
+ * @param {boolean} [isLoading=false] - حالت لودینگ برای نمایش اسپینر در ورودی.
37
+ * @param {boolean} [disabled=false] - غیرفعال‌کردن ورودی.
38
+ * @param {"small" | "medium"} [size="medium"] - سایز ورودی MUI Autocomplete.
39
+ * @param {boolean} [clear=false] - اگر `false` باشد، قابلیت پاک کردن کامل (Clearable) غیرفعال می‌شود.
40
+ * @param {(props: React.HTMLAttributes<HTMLLIElement>, option: T, state: AutocompleteRenderOptionState) => React.ReactNode} [renderOption] - تابع سفارشی برای رندر هر آیتم در لیست انتخاب.
41
+ *
42
+ * @description
43
+ * این کامپوننت یک `Autocomplete` چندگزینه‌ای با قابلیت‌های زیر است:
44
+ * - اتصال مستقیم به `react-hook-form` (با استفاده از Controller)
45
+ * - انتخاب همه (`انتخاب همه`) یا پاک کردن همه (`پاک کردن همه`)
46
+ * - نمایش تعداد آیتم‌های انتخاب شده به جای تگ‌های جداگانه
47
+ * - پشتیبانی از حالت لودینگ و غیرفعال بودن
48
+ * - امکان سفارشی‌سازی رندر آیتم‌ها (`renderOption`)
49
+ * - آیکون‌های سفارشی برای انتخاب‌ها و گزینه‌های ویژه
50
+ * - جلوگیری از بستن لیست هنگام انتخاب آیتم‌ها (`disableCloseOnSelect`)
51
+ * - مدیریت موقعیت Popper با MUI modifiers
52
+ *
53
+ * @returns {Array<string | number>} آرایه‌ای از کلیدهای آیتم‌های انتخاب شده.
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * import { useForm, Controller } from "react-hook-form";
58
+ *
59
+ * type MyOption = { title: string; key: number };
60
+ *
61
+ * const options: MyOption[] = [
62
+ * { title: "محصول ۱", key: 1 },
63
+ * { title: "محصول ۲", key: 2 },
64
+ * ];
65
+ *
66
+ * export default function MyForm() {
67
+ * const { control, handleSubmit } = useForm({ defaultValues: { productIds: [] } });
68
+ *
69
+ * const onSubmit = (data: any) => {
70
+ * console.log("انتخاب شده‌ها:", data.productIds);
71
+ * };
72
+ *
73
+ * return (
74
+ * <form onSubmit={handleSubmit(onSubmit)}>
75
+ * <MultipleSelector<MyOption>
76
+ * name="productIds"
77
+ * label="محصولات"
78
+ * control={control}
79
+ * data={options}
80
+ * isLoading={false}
81
+ * size="small"
82
+ * renderOption={(props, option, state) => (
83
+ * <li {...props} key={option.key}>
84
+ * <strong style={{ color: state.selected ? "green" : "black" }}>
85
+ * {option.title}
86
+ * </strong>
87
+ * </li>
88
+ * )}
89
+ * />
90
+ * <button type="submit">ثبت</button>
91
+ * </form>
92
+ * );
93
+ * }
94
+ * ```
95
+ */
96
+ declare function MultiCheckSelector<T extends OptionType$1>({ name, control, label, data, isLoading, disabled, size, clear, renderOption, }: MultipleSelectChipProps$1<T>): React.JSX.Element;
97
+
98
+ interface OptionType {
99
+ title: string;
100
+ key: string | number;
101
+ [x: string]: any;
102
+ }
103
+ interface MultipleSelectChipProps<T extends OptionType> {
104
+ name: string;
105
+ control: Control<any>;
106
+ label?: string;
107
+ data?: T[];
108
+ isLoading?: boolean;
109
+ disabled?: boolean;
110
+ size?: "small" | "medium";
111
+ clear?: boolean;
112
+ renderOption?: (props: React.HTMLAttributes<HTMLLIElement>, option: T) => React.ReactNode;
113
+ }
114
+ /**
115
+ * 📦 کامپوننت انتخاب چند گزینه‌ای با پشتیبانی از react-hook-form و MUI Autocomplete
116
+ *
117
+ * @component MultipleSelector
118
+ *
119
+ * @param {string} name - نام فیلدی که در فرم ثبت می‌شود.
120
+ * @param {string} [label] - برچسب نمایشی برای فیلد.
121
+ * @param {Control<any>} control - کنترل فرم از react-hook-form.
122
+ * @param {{ title: string; key: string | number }[]} [data] - لیستی از گزینه‌ها شامل `title` (متن) و `key` (مقدار).
123
+ * @param {boolean} [isLoading=false] - آیا داده‌ها در حال بارگذاری هستند.
124
+ * @param {boolean} [disabled=false] - غیرفعال‌سازی ورودی.
125
+ * @param {"small" | "medium"} [size="medium"] - سایز ورودی.
126
+ * @param {boolean} [clear=false] - آیا امکان پاک کردن وجود دارد یا نه.
127
+ * @param {string} [tooltip] - متن راهنما هنگام هاور.
128
+ * @param {(props, option) => React.ReactNode} [renderOption] - تابعی سفارشی برای رندر آیتم‌ها در لیست.
129
+ *
130
+ * @returns {Array<{ key: string | number }>} لیستی از آیتم‌های انتخاب‌شده ( فقط آیدی‌ها).
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * <MultipleSelector<{title:string; key:number;}>
135
+ * name="productIds"
136
+ * label="محصولات"
137
+ * control={control}
138
+ * data={[{ title: "محصول ۱", key: 1 }, { title: "محصول ۲", key: 2 }]}
139
+ * />
140
+ * ```
141
+ *
142
+ * @description
143
+ * کامپوننتی چندانتخابی با قابلیت انتخاب همه‌ی موارد، سفارشی‌سازی گزینه‌ها،
144
+ * نمایش راهنمای هاور، و بازگرداندن لیست کامل از آبجکت‌های انتخاب‌شده.
145
+ *
146
+ * برای سفارشی‌سازی نحوه نمایش آیتم‌ها:
147
+ * ```tsx
148
+ * renderOption={(props, option) => (
149
+ * <li {...props} key={`${option.key}`}>
150
+ * <span style={{ color: "green" }}>{option.title}</span>
151
+ * </li>
152
+ * )}
153
+ * ```
154
+ */
155
+ declare function MultipleSelector<T extends OptionType>({ name, control, label, data, isLoading, disabled, size, clear, renderOption, }: MultipleSelectChipProps<T>): React.JSX.Element;
156
+
157
+ interface BaseOption {
158
+ key: number | string | "false" | true;
159
+ title: string | number;
160
+ [x: string]: any;
161
+ }
162
+ interface SeacrchableSelectChipProps<T extends BaseOption = BaseOption> {
163
+ name: string;
164
+ control: Control<any>;
165
+ label?: string;
166
+ data?: T[];
167
+ isLoading?: boolean;
168
+ disabled?: boolean;
169
+ size?: "small" | "medium";
170
+ clear?: boolean;
171
+ onChangeHandler?: (value: any, onChange: (data: any) => void) => void;
172
+ valueHandler?: (value: any) => any;
173
+ onFilterOptions: (inputValue: string) => void;
174
+ renderOption?: (props: React.HTMLAttributes<HTMLLIElement>, option: T) => React.ReactNode;
175
+ }
176
+ /**
177
+ * 🔍 کامپوننت انتخاب تکی با قابلیت جست‌وجو، پشتیبانی از react-hook-form و MUI Autocomplete
178
+ *
179
+ * @component SeacrchableSelector
180
+ *
181
+ * @template T - نوع گزینه‌ها که باید شامل `key` و `title` باشد.
182
+ *
183
+ * @param {string} name - نام فیلدی که در فرم ثبت می‌شود.
184
+ * @param {string} [label] - برچسب نمایشی برای فیلد.
185
+ * @param {Control<any>} control - کنترل فرم از `react-hook-form`.
186
+ * @param {T[]} [data] - لیستی از گزینه‌ها شامل `key` و `title` به عنوان مقدار و متن نمایشی.
187
+ * @param {boolean} [isLoading=false] - وضعیت بارگذاری (مثلاً هنگام فراخوانی API).
188
+ * @param {boolean} [disabled=false] - غیرفعال بودن فیلد.
189
+ * @param {"small" | "medium"} [size="medium"] - اندازه ورودی.
190
+ * @param {boolean} [clear=false] - فعال بودن امکان پاک‌کردن مقدار انتخاب‌شده.
191
+ * @param {(value: any, onChange: (data: any) => void) => void} [onChangeHandler] - تابع هندل انتخاب گزینه (در صورت نیاز به کنترل خارجی).
192
+ * @param {(value: any) => string} [valueHandler] - تابع تبدیل مقدار ذخیره‌شده در فرم به مقدار نمایشی در input (مثلاً عنوان).
193
+ * @param {(inputValue: string) => void} [onFilterOptions] - تابعی برای هندل کردن فیلتر شدن داده‌ها هنگام تایپ کاربر (مثلاً برای fetch کردن).
194
+ * @param {(props: React.HTMLAttributes<HTMLLIElement>, option: T) => React.ReactNode} [renderOption] - تابعی سفارشی برای رندر آیتم‌ها در لیست.
195
+ *
196
+ * @returns {string | number | null} مقدار انتخاب‌شده (کلید گزینه یا null)
197
+ *
198
+ * @example
199
+ * ```tsx
200
+ * <SeacrchableSelector<{ title: string; key: number }>
201
+ * name="categoryId"
202
+ * label="دسته‌بندی"
203
+ * control={control}
204
+ * data={[{ title: "کتاب", key: 1 }, { title: "لوازم تحریر", key: 2 }]}
205
+ * onFilterOptions={(input) => fetchUsers(input)}
206
+ * />
207
+ * ```
208
+ *
209
+ * @description
210
+ * این کامپوننت یک ورودی انتخاب‌گر تکی با قابلیت جست‌وجو و پشتیبانی از مقدار دلخواه کاربر (`freeSolo`) است.
211
+ * قابلیت‌هایی مانند بارگذاری داده، سفارشی‌سازی نمایش گزینه‌ها، هماهنگ‌سازی با فرم، پاک‌سازی انتخاب، و پشتیبانی از جست‌وجوی سمت سرور را نیز داراست.
212
+ *
213
+ * اگر `freeSolo` فعال باشد، می‌توان مقادیر تایپ‌شده را نیز ذخیره کرد. مقدار خروجی معمولاً `key` گزینه انتخاب‌شده است،
214
+ * مگر اینکه کاربر متنی وارد کند که در لیست نباشد (در این صورت می‌توان آن را مستقیم ذخیره کرد).
215
+ *
216
+ * برای سفارشی‌سازی گزینه‌ها:
217
+ * ```tsx
218
+ * renderOption={(props, option) => (
219
+ * <li {...props} key={option.key}>
220
+ * <b>{option.title}</b>
221
+ * </li>
222
+ * )}
223
+ * ```
224
+ */
225
+ declare function SearchableSelector<T extends BaseOption = BaseOption>({ name, control, label, data, isLoading, disabled, size, clear, onChangeHandler, valueHandler, onFilterOptions, renderOption, }: SeacrchableSelectChipProps<T>): React.JSX.Element;
226
+
227
+ export { MultiCheckSelector, MultipleSelector, SearchableSelector };