نظرة عامة
استخدمField لتجميع عنصر تحكم واحد مع تسميته القابلة للوصول ونصه المساعد. تتكامل مكونات مثل Input مباشرةً مع الحقل.
استخدام
Field.Root اسم عنصر التحكم وحالة تعطيله وصلاحيته. يربط Field.Label وField.Description محتواهما بعنصر التحكم. عيّن توقيت التحقق باستخدام validationMode؛ واستخدم validate للتحقق المخصص.
البنية التشريحية العربية
ضع عنصر تحكم واحدًا وأجزاءه الداعمة داخلField.Root. تُظهر هذه الشجرة حقلًا مُنشأ باستخدام المكوّن Input المنسّق.
يتكامل
Input وTextarea بالفعل مع الحقل. ضعهما مباشرةً داخل Root؛ فهما يوفّران سلوك عنصر التحكم بنفسيهما. تحتفظ عناصر التحكم المركّبة، مثل تحديد، بجذرها وأجزائها الخاصة داخل الحقل.
أخطاء خارجية
استخدمinvalid عندما يكون تطبيقك مسؤولًا عن حالة الخطأ. يجعل match الصريح رسالة الخطأ مرئية.
عناصر التحكم المجمّعة
استخدمField.Item داخل مجموعة أزرار اختيار أو مربعات اختيار لربط كل خيار بتسمية ووصف خاصين به. أبقِ تسمية المجموعة خارج العناصر. يمكن تعطيل عنصر بشكل مستقل؛ إذ يعطّل Field.Root المعطّل كل عنصر.
التكامل والأنواع الأصلية
يحافظ الحقل على توقيت التحقق في Base UI، والتحقق المخصص، وقيم عناصر التحكم المُتحكَّم بها وغير المُتحكَّم بها، وتفاصيل حدث تغيير القيمة. يكشفValidity عن نتيجة التحقق من خلال دالة الأبناء الخاصة به. تحتفظ عناصر التحكم المتكاملة بسلوك النموذج الأصلي الخاص بها.
تمرّر Root وItem وLabel وControl وDescription وError الخصائص الأصلية والمراجع وتكوين render. عناصرها الافتراضية هي div وdiv وlabel وinput وparagraph وdiv، على التوالي. لا يعرض Validity عنصره الخاص.
استورد FieldRootProps وFieldItemProps وFieldLabelProps وFieldControlProps وFieldDescriptionProps وFieldErrorProps وFieldValidityProps من twenty-ui/primitives/input لعقود الأجزاء الأساسية المقابلة.
الإزاحة
يُنشأ المرجع من الأنواع العامة للمكونات. تُقبل أيضًا السمات الأصلية، بما في ذلك الأسماء القابلة للوصول ومعالجات الأحداث، على الأجزاء التي تصيّر عناصر.Field.Root
RefObject<FieldRootActions | null>
A ref to imperative actions.
validate: Validates the field when called.
string | ((state: FieldRootState) => string | undefined)
CSS class applied to the element, or a function that
returns a class based on the component’s state.
boolean
Whether the field’s value has been changed from its initial value.
Useful when the field state is controlled by an external library.
boolean
افتراضي:"false"
Whether the component should ignore user interaction.
Takes precedence over the
disabled prop on the <Field.Control> component.boolean
Whether the field is invalid.
Useful when the field state is controlled by an external library.
string
Identifies the field when a form is submitted.
Takes precedence over the
name prop on the <Field.Control> component.ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, FieldRootState>
Allows you to replace the component’s HTML element
with a different tag, or compose it with another component.Accepts a
ReactElement or a function that returns the element to render.CSSProperties | ((state: FieldRootState) => CSSProperties | undefined)
Style applied to the element, or a function that
returns a style object based on the component’s state.
boolean
Whether the field has been touched.
Useful when the field state is controlled by an external library.
((value: unknown, formValues: Record<string, any>) => string | void | string[] | Promise<string | void | string[] | null> | null)
A function for custom validation. Return a string or an array of strings with
the error message(s) if the value is invalid. Returning nothing,
null, an empty
string, or an empty array means the value is valid.
Asynchronous functions are supported, but they do not prevent form submission
when using validationMode="onSubmit".number
افتراضي:"0"
How long to wait between
validate callbacks if
validationMode="onChange" is used. Specified in milliseconds."onBlur" | "onChange" | "onSubmit"
افتراضي:"onSubmit"
Determines when the field should be validated.
This takes precedence over the
validationMode prop on <Form>.onSubmit: triggers validation when the form is submitted, and re-validates on change after submission.onBlur: triggers validation when the control loses focus.onChange: triggers validation on every change to the control value.
Field.Item
string | ((state: FieldItemState) => string | undefined)
CSS class applied to the element, or a function that
returns a class based on the component’s state.
boolean
افتراضي:"false"
Whether the wrapped control should ignore user interaction.
The
disabled prop on <Field.Root> takes precedence over this.ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, FieldItemState>
Allows you to replace the component’s HTML element
with a different tag, or compose it with another component.Accepts a
ReactElement or a function that returns the element to render.CSSProperties | ((state: FieldItemState) => CSSProperties | undefined)
Style applied to the element, or a function that
returns a style object based on the component’s state.
Field.Label
string | ((state: FieldLabelState) => string | undefined)
CSS class applied to the element, or a function that
returns a class based on the component’s state.
boolean
افتراضي:"true"
Whether the component renders a native
<label> element when replacing it via the render prop.
Set to false if the rendered element is not a label (for example, <div>).This is useful to avoid inheriting label behaviors on <button> controls (such as <Select.Trigger> and <Combobox.Trigger>), including avoiding :hover on the button when hovering the label, and preventing clicks on the label from firing on the button.ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, FieldLabelState>
Allows you to replace the component’s HTML element
with a different tag, or compose it with another component.Accepts a
ReactElement or a function that returns the element to render.CSSProperties | ((state: FieldLabelState) => CSSProperties | undefined)
Style applied to the element, or a function that
returns a style object based on the component’s state.
Field.Control
string | ((state: FieldControlState) => string | undefined)
CSS class applied to the element, or a function that
returns a class based on the component’s state.
string | number | readonly string[]
The default value of the input. Use when uncontrolled.
((value: string, eventDetails: { reason: "none"; event: Event; cancel: () => void; allowPropagation: () => void; isCanceled: boolean; isPropagationAllowed: boolean; trigger: Element | undefined; }) => void)
Callback fired when the
value changes. Use when controlled.ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, FieldControlState>
Allows you to replace the component’s HTML element
with a different tag, or compose it with another component.Accepts a
ReactElement or a function that returns the element to render.CSSProperties | ((state: FieldControlState) => CSSProperties | undefined)
Style applied to the element, or a function that
returns a style object based on the component’s state.
Field.Description
string | ((state: FieldDescriptionState) => string | undefined)
CSS class applied to the element, or a function that
returns a class based on the component’s state.
ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, FieldDescriptionState>
Allows you to replace the component’s HTML element
with a different tag, or compose it with another component.Accepts a
ReactElement or a function that returns the element to render.CSSProperties | ((state: FieldDescriptionState) => CSSProperties | undefined)
Style applied to the element, or a function that
returns a style object based on the component’s state.
Field.Error
string | ((state: FieldErrorState) => string | undefined)
CSS class applied to the element, or a function that
returns a class based on the component’s state.
boolean | keyof ValidityState
Determines whether to show the error message according to the field’s
ValidityState.
Specifying
true will always show the error message, and lets external libraries
control the visibility.ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, FieldErrorState>
Allows you to replace the component’s HTML element
with a different tag, or compose it with another component.Accepts a
ReactElement or a function that returns the element to render.CSSProperties | ((state: FieldErrorState) => CSSProperties | undefined)
Style applied to the element, or a function that
returns a style object based on the component’s state.
Field.Validity
(state: FieldValidityState) => ReactNode
مطلوب
A function that accepts the field validity state as an argument.