import { BS_WEEKDAY_LABELS, NEPALI_DIGITS, normalizeBsKey, toPickerDigits, type BsDateString, type BsLocale, type BsWeekdayLabels } from "../index"; import type { CalendarEvent } from "../types"; export { BS_WEEKDAY_LABELS, NEPALI_DIGITS, normalizeBsKey, toPickerDigits }; export type { BsDateString, BsLocale, BsWeekdayLabels }; /** A single BS date + its resolved AD equivalent. */ export interface BsDateValue { /** BS year, e.g. 2082. */ year: number; /** BS month 1–12 (1 = Baisakh). */ month: number; /** BS day 1–32. */ day: number; } export interface BsDateSelection { /** BS date, zero-padded: "2082-04-15". */ bs: BsDateString; /** Structured BS value. */ value: BsDateValue; /** AD equivalent, yyyy-MM-dd. */ ad: string; /** Rich event records from `Events/.json`, if any. */ events: CalendarEvent[]; /** True when the day falls on the configured weekend set. */ weekend: boolean; } export interface BsDatePickerOptions { /** Controlled value (BS yyyy-MM-dd). Omit for uncontrolled. */ value?: BsDateString | null; /** Controlled popup visibility. Omit for uncontrolled. */ open?: boolean; /** Initial month as [year, month]; defaults to value, then today. */ initialMonth?: readonly [number, number]; min?: BsDateString; max?: BsDateString; disabledDates?: BsDateString[]; disabledWeekdays?: number[]; locale?: BsLocale; /** Render BS digits in Devanagari (१२३…) instead of 123. Defaults to `true` when `locale` is "ne"; pass `false` to force Latin digits. */ nepaliDigits?: boolean; /** Show the AD equivalent line under the grid. @default true */ showAdLine?: boolean; /** Extra CSS class(es) for the popup root. Styling hooks below let the host theme without forking. */ className?: string; classNames?: { root?: string; header?: string; navButton?: string; title?: string; /** Month `