react-tailwindcss-datetimepicker
Version:
Feature-rich React date-time picker with range selection, customizable presets, keyboard navigation, TypeScript support, dark mode, and no date library dependency. Fully responsive. Built on top of **React 18** and [Vitejs](https://vitejs.dev/).
95 lines (85 loc) • 2.75 kB
TypeScript
import { JSX as JSX_2 } from 'react/jsx-runtime';
import { default as React_2 } from 'react';
import type { ReactNode } from 'react';
declare type ClassNames = {
rootContainer?: string;
rangesContainer?: string;
rangeButtonDefault?: string;
rangeButtonSelected?: string;
fromToRangeContainer?: string;
normalCell?: string;
normalCellHover?: string;
greyCell?: string;
invalidCell?: string;
startCell?: string;
endCell?: string;
withinRangeCell?: string;
startDot?: string;
endDot?: string;
footerContainer?: string;
applyButton?: string;
cancelButton?: string;
};
declare const customRange: {
readonly 'Custom Range': "Custom Range";
};
declare type Locale = {
format?: string;
sundayFirst?: boolean;
days?: [string, string, string, string, string, string, string];
months?: [string, string, string, string, string, string, string, string, string, string, string, string];
fromDate?: string;
toDate?: string;
selectingFrom?: string;
selectingTo?: string;
minDate?: string;
maxDate?: string;
close?: string;
apply?: string;
cancel?: string;
};
declare type PresetDateRanges = Record<string, [Date, Date]> & Partial<typeof customRange>;
declare class ReactDateTimePicker extends React_2.Component<ReactDateTimePickerProps, State> {
container: HTMLDivElement | null;
constructor(props: ReactDateTimePickerProps);
componentDidMount(): void;
componentWillUnmount(): void;
keyDown: (e: KeyboardEvent) => void;
onClickContainerHandler: () => void;
handleOutsideClick: (e: MouseEvent) => void;
changeVisibleState: () => void;
renderPicker(): JSX_2.Element;
render(): JSX_2.Element;
}
export default ReactDateTimePicker;
declare interface ReactDateTimePickerProps {
ranges: PresetDateRanges;
start: Date;
end: Date;
locale?: Locale;
applyCallback: (start: Date, end: Date) => void;
rangeCallback?: (index: number, value: keyof PresetDateRanges) => void;
minDate?: Date;
maxDate?: Date;
autoApply?: boolean;
descendingYears?: boolean;
years?: [number, number];
smartMode?: boolean;
pastSearchFriendly?: boolean;
noMobileMode?: boolean;
forceMobileMode?: boolean;
twelveHoursClock?: boolean;
standalone?: boolean;
leftMode?: boolean;
centerMode?: boolean;
classNames?: ClassNames;
displayMinDate?: boolean;
displayMaxDate?: boolean;
theme?: Theme;
children: ReactNode;
}
declare interface State {
visible: boolean;
}
declare type Theme = 'blue' | 'orange' | 'green' | 'purple';
export { }