@ark-ui/vue
Version:
A collection of unstyled, accessible UI components for Vue, utilizing state machines for seamless interaction.
112 lines (111 loc) • 3.48 kB
TypeScript
import { HTMLAttributes, MaybeRef, ComputedRef, Ref } from 'vue';
import { ElementIds } from './field.types';
export interface UseFieldProps {
/**
* The id of the field.
*/
id?: string;
/**
* The ids of the field parts.
*/
ids?: ElementIds;
/**
* Indicates whether the field is required.
*/
required?: boolean;
/**
* Indicates whether the field is disabled.
*/
disabled?: boolean;
/**
* Indicates whether the field is invalid.
*/
invalid?: boolean;
/**
* Indicates whether the field is read-only.
*/
readOnly?: boolean;
}
export type UseFieldReturn = ReturnType<typeof useField>;
export declare const useField: (props?: MaybeRef<UseFieldProps>) => ComputedRef<{
ariaDescribedby: string | undefined;
ids: {
control: string;
label: string;
errorText: string;
helperText: string;
};
refs: {
rootRef: Ref<null, null>;
};
disabled: boolean | undefined;
invalid: boolean | undefined;
readOnly: boolean | undefined;
required: boolean | undefined;
getLabelProps: () => {
id: string;
'data-disabled': boolean | "false" | "true";
'data-invalid': boolean | "false" | "true";
'data-readonly': boolean | "false" | "true";
'data-required': boolean | "false" | "true";
htmlFor: string;
"data-scope": string;
"data-part": string;
};
getRootProps: () => {
id: string;
role: string;
'data-disabled': boolean | "false" | "true";
'data-invalid': boolean | "false" | "true";
'data-readonly': boolean | "false" | "true";
"data-scope": string;
"data-part": string;
};
getInputProps: () => {
"data-scope": string;
"data-part": string;
'aria-describedby': string | undefined;
'aria-invalid': "true" | undefined;
'data-invalid': boolean | "false" | "true";
'data-required': boolean | "false" | "true";
'data-readonly': boolean | "false" | "true";
id: string;
required: boolean | undefined;
disabled: boolean | undefined;
readOnly: boolean | undefined;
};
getTextareaProps: () => {
"data-scope": string;
"data-part": string;
'aria-describedby': string | undefined;
'aria-invalid': "true" | undefined;
'data-invalid': boolean | "false" | "true";
'data-required': boolean | "false" | "true";
'data-readonly': boolean | "false" | "true";
id: string;
required: boolean | undefined;
disabled: boolean | undefined;
readOnly: boolean | undefined;
};
getSelectProps: () => {
"data-scope": string;
"data-part": string;
'aria-describedby': string | undefined;
'aria-invalid': "true" | undefined;
'data-invalid': boolean | "false" | "true";
'data-required': boolean | "false" | "true";
'data-readonly': boolean | "false" | "true";
id: string;
required: boolean | undefined;
disabled: boolean | undefined;
readOnly: boolean | undefined;
};
getHelperTextProps: () => {
'data-disabled': boolean | "false" | "true";
"data-scope": string;
"data-part": string;
id: string;
};
getErrorTextProps: () => HTMLAttributes;
getRequiredIndicatorProps: () => HTMLAttributes;
}>;