import * as _nextui_org_system from '@nextui-org/system'; import { PropGetter, SupportedCalendars, HTMLNextUIProps } from '@nextui-org/system'; import * as tailwind_variants from 'tailwind-variants'; import * as react from 'react'; import * as _react_stately_datepicker from '@react-stately/datepicker'; import { DateInputVariantProps, SlotsToClasses, DateInputSlots } from '@nextui-org/theme'; import { DateValue, AriaDateFieldProps } from '@react-types/datepicker'; import { Calendar } from '@internationalized/date'; import { ReactRef } from '@nextui-org/react-utils'; import { DOMAttributes, GroupDOMAttributes } from '@react-types/shared'; import { DateInputGroupProps } from './date-input-group.js'; type NextUIBaseProps = Omit, keyof AriaDateFieldProps | "onChange">; interface Props extends NextUIBaseProps { /** * Ref to the DOM node. */ ref?: ReactRef; /** Props for the grouping element containing the date field and button. */ groupProps?: GroupDOMAttributes; /** Props for the date picker's visible label element, if any. */ labelProps?: DOMAttributes; /** Props for the date field. */ fieldProps?: DOMAttributes; /** Props for the inner wrapper. */ innerWrapperProps?: DOMAttributes; /** Props for the description element, if any. */ descriptionProps?: DOMAttributes; /** Props for the error message element, if any. */ errorMessageProps?: DOMAttributes; /** * The value of the hidden input. */ inputRef?: ReactRef; /** * Element to be rendered in the left side of the input. */ startContent?: React.ReactNode; /** * Element to be rendered in the right side of the input. */ endContent?: React.ReactNode; /** * This function helps to reduce the bundle size by providing a custom calendar system. * * In the example above, the createCalendar function from the `@internationalized/date` package * is passed to the useCalendarState hook. This function receives a calendar identifier string, * and provides Calendar instances to React Stately, which are used to implement date manipulation. * * By default, this includes all calendar systems supported by @internationalized/date. However, * if your application supports a more limited set of regions, or you know you will only be picking dates * in a certain calendar system, you can reduce your bundle size by providing your own implementation * of `createCalendar` that includes a subset of these Calendar implementations. * * For example, if your application only supports Gregorian dates, you could implement a `createCalendar` * function like this: * * @example * * import {GregorianCalendar} from '@internationalized/date'; * * function createCalendar(identifier) { * switch (identifier) { * case 'gregory': * return new GregorianCalendar(); * default: * throw new Error(`Unsupported calendar ${identifier}`); * } * } * * This way, only GregorianCalendar is imported, and the other calendar implementations can be tree-shaken. * * You can also use the NextUIProvider to provide the createCalendar function to all nested components. * * @default all calendars */ createCalendar?: (calendar: SupportedCalendars) => Calendar | null; /** * Classname or List of classes to change the classNames of the element. * if `className` is passed, it will be added to the base slot. * * @example * ```ts * * ``` */ classNames?: SlotsToClasses; } type UseDateInputProps = Props & DateInputVariantProps & AriaDateFieldProps; declare function useDateInput(originalProps: UseDateInputProps): { state: _react_stately_datepicker.DateFieldState; domRef: react.RefObject; slots: { base: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; label: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; inputWrapper: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; input: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; innerWrapper: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; segment: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; helperWrapper: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; description: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; errorMessage: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; } & { base: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; label: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; inputWrapper: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; input: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; innerWrapper: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; segment: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; helperWrapper: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; description: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; errorMessage: (slotProps?: ({ color?: "default" | "primary" | "secondary" | "success" | "warning" | "danger" | undefined; size?: "sm" | "md" | "lg" | undefined; variant?: "flat" | "faded" | "bordered" | "underlined" | undefined; radius?: "sm" | "md" | "lg" | "none" | "full" | undefined; labelPlacement?: "outside" | "outside-left" | "inside" | undefined; fullWidth?: boolean | undefined; isDisabled?: boolean | undefined; disableAnimation?: boolean | undefined; } & tailwind_variants.ClassProp) | undefined) => string; } & {}; classNames: SlotsToClasses<"base" | "input" | "label" | "helperWrapper" | "description" | "errorMessage" | "inputWrapper" | "innerWrapper" | "segment"> | undefined; labelPlacement: "outside" | "outside-left" | "inside" | undefined; getBaseGroupProps: () => DateInputGroupProps; getFieldProps: (props?: DOMAttributes) => GroupDOMAttributes; getInputProps: PropGetter, _nextui_org_system.DOMAttributes<_nextui_org_system.DOMElement>>; }; type UseDateInputReturn = ReturnType; export { UseDateInputProps, UseDateInputReturn, useDateInput };