import type { AppConfig } from '@nuxt/schema'; import type { ButtonProps, FormProps, FormFieldProps, FormSchema, FormSubmitEvent, SeparatorProps, ComponentConfig, InferInput, PinInputProps } from '@nuxt/ui'; import theme from '#build/ui-pro/auth-form'; type AuthForm = ComponentConfig; type AuthFormField = FormFieldProps & { name: string; type?: 'checkbox' | 'select' | 'password' | 'text' | 'otp'; defaultValue?: any; otp?: PinInputProps; }; export interface AuthFormProps, F extends AuthFormField = AuthFormField> { /** * The element or component this component should render as. * @defaultValue 'div' */ as?: any; /** * The icon displayed above the title. * @IconifyIcon */ icon?: string; title?: string; description?: string; fields?: F[]; /** * Display a list of Button under the description. * `{ color: 'neutral', variant: 'subtle', block: true }`{lang="ts-type"} */ providers?: ButtonProps[]; /** * The text displayed in the separator. * @defaultValue 'or' */ separator?: string | SeparatorProps; /** * Display a submit button at the bottom of the form. * `{ label: 'Continue', block: true }`{lang="ts-type"} */ submit?: ButtonProps; schema?: T; validate?: FormProps['validate']; validateOn?: FormProps['validateOn']; validateOnInputDelay?: FormProps['validateOnInputDelay']; disabled?: FormProps['disabled']; loading?: ButtonProps['loading']; class?: any; ui?: AuthForm['slots']; } export type AuthFormEmits = { submit: [payload: FormSubmitEvent]; }; type DynamicFieldSlots = Record any> & Record<`${keyof T extends string ? keyof T : never}-field`, (props: SlotProps) => any>; type DynamicFormFieldSlots = Record any> & Record<`${keyof T extends string ? keyof T : never}-${'label' | 'description' | 'hint' | 'help' | 'error'}`, (props?: {}) => any>; export type AuthFormSlots = { header(props?: {}): any; leading(props?: {}): any; title(props?: {}): any; description(props?: {}): any; validation(props?: {}): any; footer(props?: {}): any; } & DynamicFieldSlots & DynamicFormFieldSlots; declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_PrettifyLocal>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_PrettifyLocal & Omit<{ readonly onSubmit?: ((payload: FormSubmitEvent>>) => any) | undefined; } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onSubmit"> & AuthFormProps & Partial<{}>> & import("vue").PublicProps; expose(exposed: import("vue").ShallowUnwrapRef<{ formRef: Readonly>; state: import("vue").Reactive>; }>): void; attrs: any; slots: AuthFormSlots>, F>; emit: (evt: "submit", payload: FormSubmitEvent>>) => void; }>) => import("vue").VNode & { __ctx?: Awaited; }; export default _default; type __VLS_PrettifyLocal = { [K in keyof T]: T[K]; } & {};