/**
* TyCalendarNavigation Web Component
* PORTED FROM: cljs/ty/components/calendar_navigation.cljs
*
* A pure presentation component for calendar month/year navigation.
* Stateless - all state comes from properties, changes emitted via events.
*
* Features:
* - Year/Month navigation (prev/next month, prev/next year)
* - Localized month name display
* - Custom event emission on navigation
* - Property-driven API (no internal state)
* - Inline SVG icons
* - Shadow DOM encapsulation
*
* @example
* ```html
*
*
*
*
*
*
* ```
*/
import { TyComponent } from '../base/ty-component.js';
import type { PropertyChange } from '../utils/property-manager.js';
/**
* Navigation change event detail
*/
export interface NavigationChangeDetail {
month: number;
year: number;
}
/**
* Internal navigation state (minimal - just for current display)
*/
interface NavigationState {
displayMonth: number;
displayYear: number;
}
/**
* TyCalendarNavigation Web Component
*/
export declare class TyCalendarNavigation extends TyComponent {
protected static properties: {
'display-month': {
type: "number";
visual: boolean;
default: () => number;
validate: (v: any) => boolean;
coerce: (v: any) => number;
};
'display-year': {
type: "number";
visual: boolean;
default: () => number;
validate: (v: any) => boolean;
coerce: (v: any) => number;
};
locale: {
type: "string";
visual: boolean;
default: string;
};
size: {
type: "string";
visual: boolean;
default: string;
validate: (v: any) => boolean;
coerce: (v: any) => any;
};
width: {
type: "string";
visual: boolean;
default: string;
};
};
private _state;
private _localeObserver?;
constructor();
/**
* Called when component connects to DOM
*/
protected onConnect(): void;
/**
* Called when component disconnects from DOM
*/
protected onDisconnect(): void;
/**
* Called when properties change
* Update internal state BEFORE render
*/
protected onPropertiesChanged(changes: PropertyChange[]): void;
get displayMonth(): number;
set displayMonth(value: number);
get displayYear(): number;
set displayYear(value: number);
get locale(): string;
set locale(value: string);
get size(): 'sm' | 'md' | 'lg';
set size(value: 'sm' | 'md' | 'lg');
get width(): string;
set width(value: string);
/**
* Emit change event with new month/year
*/
private emitChangeEvent;
/**
* Navigate to previous/next month
* Handles year boundary crossing
*/
private navigateMonth;
/**
* Navigate to previous/next year
*/
private navigateYear;
/**
* Create navigation button
*/
private createButton;
/**
* Main render function
*/
protected render(): void;
}
export {};
//# sourceMappingURL=calendar-navigation.d.ts.map