UNPKG

@teaui/core

Version:

A high-level terminal UI library for Node

42 lines (41 loc) 1.48 kB
import { Viewport } from '../Viewport.js'; import { type Props as ViewProps, View } from '../View.js'; import { Size } from '../geometry.js'; import { type KeyEvent, type MouseEvent } from '../events/index.js'; import { type LegendItem } from '../types.js'; import { System } from '../System.js'; type DisplayMode = 'days' | 'months' | 'years'; type Selection = 'single' | 'range'; interface Props extends ViewProps { /** Selected date */ date?: Date; /** Displayed month/year */ visibleDate?: Date; /** Called when navigating months/years (day is always 1) */ onChangeVisible?: (date: Date) => void; /** Called when selecting a date (date2 == date1 for single selection) */ onChange?: (date1: Date, date2: Date) => void; /** Single date or range selection. Default: 'single' */ selection?: Selection; /** 0=Sunday (default), 1=Monday */ firstDayOfWeek?: 0 | 1; now?: Date; } export declare class Calendar extends View { #private; constructor(props?: Props); update(props: Props): void; get date(): Date; set date(value: Date); get cursorDate(): Date; set cursorDate(value: Date); get visibleDate(): Date; set visibleDate(value: Date); get displayMode(): DisplayMode; naturalSize(_available: Size): Size; receiveMouse(event: MouseEvent, system: System): void; legendItems(): LegendItem[]; receiveKey(event: KeyEvent): void; render(viewport: Viewport): void; } export {};