mithril-materialized
Version:
A materialize library for mithril.
49 lines (48 loc) • 1.66 kB
TypeScript
import { FactoryComponent } from 'mithril';
/**
* Attributes for the DigitalClock component
*/
export interface DigitalClockAttrs {
/** Current hours value (1-12 for 12-hour, 0-23 for 24-hour) */
hours: number;
/** Current minutes value (0-59) */
minutes: number;
/** Current AM/PM value (only relevant in 12-hour mode) */
amOrPm: 'AM' | 'PM';
/** Whether to use 12-hour format (true) or 24-hour format (false) */
twelveHour: boolean;
/** Step between minute options (default: 5) */
minuteStep?: number;
/** Step between hour options (default: 1) */
hourStep?: number;
/** Minimum allowed time in format "HH:MM" or "HH:MM AM/PM" */
minTime?: string;
/** Maximum allowed time in format "HH:MM" or "HH:MM AM/PM" */
maxTime?: string;
/** Callback when time changes */
onTimeChange: (hours: number, minutes: number, amOrPm: 'AM' | 'PM') => void;
/** Optional reference to external hours display element for updates */
spanHours?: HTMLElement;
/** Optional reference to external minutes display element for updates */
spanMinutes?: HTMLElement;
/** Optional reference to external AM/PM display element for updates */
spanAmPm?: HTMLElement;
}
/**
* DigitalClock component - A scrollable digital time picker
*
* @example
* ```typescript
* m(DigitalClock, {
* hours: 10,
* minutes: 30,
* amOrPm: 'AM',
* twelveHour: true,
* minuteStep: 5,
* onTimeChange: (hours, minutes, amOrPm) => {
* console.log(`Time changed to ${hours}:${minutes} ${amOrPm}`);
* }
* })
* ```
*/
export declare const DigitalClock: FactoryComponent<DigitalClockAttrs>;