appointment-scheduler
Version:
A reusable appointment scheduler UI component library
57 lines (50 loc) • 1.85 kB
TypeScript
import * as _emotion_react_jsx_runtime from '@emotion/react/jsx-runtime';
import React from 'react';
interface WeekSelection {
selectedDate: string;
weekStart: string;
weekEnd: string;
dayOfWeek: number;
dayName: string;
displayDate: string;
isToday: boolean;
isWeekend: boolean;
}
interface WeeklySliderProps {
selectedDate?: string | null;
onDateSelect?: (selection: WeekSelection) => void;
onWeekChange?: (weekStart: string, weekEnd: string) => void;
disabledDates?: string[];
availableDates?: string[];
minDate?: string;
maxDate?: string;
showWeekRange?: boolean;
excludeWeekends?: boolean;
excludePastDates?: boolean;
highlightToday?: boolean;
weekStartsOn?: "monday" | "sunday";
showDateCount?: boolean;
dateAvailability?: Record<string, number>;
className?: string;
disabled?: boolean;
timezone?: string;
locale?: string;
}
declare function WeeklySlider({ selectedDate, onDateSelect, onWeekChange, disabledDates, availableDates, minDate, maxDate, showWeekRange, excludeWeekends, excludePastDates, highlightToday, weekStartsOn, showDateCount, dateAvailability, className, disabled, }: WeeklySliderProps): _emotion_react_jsx_runtime.JSX.Element;
declare function MonthsDropdown(): _emotion_react_jsx_runtime.JSX.Element;
interface TimeSlotPickerProps {
startTime?: string;
endTime?: string;
interval?: number;
}
declare function TimeSlotPicker({ startTime, endTime, interval, }: TimeSlotPickerProps): _emotion_react_jsx_runtime.JSX.Element;
interface LegendItem {
label: string;
color: string;
variant?: "solid" | "outline";
}
interface LegendsProps {
legends: LegendItem[];
}
declare const Legends: React.FC<LegendsProps>;
export { Legends, MonthsDropdown, TimeSlotPicker, WeeklySlider as WeekSlider };