import type { ComponentSize, RoundedSize, ThemeColor } from '../../shared';
import '../../content/icon/icon';
import '../../feedback/badge/badge';
export type OreCalendarEvents = {
change: {
isoValue: string | null;
};
};
/**
* A calendar event entry.
* Dates must be ISO 8601 strings (yyyy-MM-dd).
*
* The `color` field accepts any valid CSS color value (e.g. `'#e11d48'`,
* `'var(--color-primary)'`). An invalid value silently falls back to the
* component's theme color. Only pass values you control.
*/
export type CalendarEvent = {
/**
* Any CSS color value for the event dot / pill.
* Defaults to the component's theme color when omitted.
* Rendered via `styleMap()`, which strips `;`/`{`/`}` so the value can't break out of
* its custom-property declaration — it is not a full CSS-color syntax validator, so an
* invalid (but injection-safe) value may still render as no color.
*/
color?: string;
/** ISO date the event falls on (yyyy-MM-dd) */
date: string;
/** Unique identifier */
id: string;
/** Short label shown in the calendar cell */
label: string;
};
export type OreCalendarProps = {
/** Theme color */
color?: ThemeColor;
/** Disable all date selection */
disabled?: boolean;
/**
* Array of calendar events to display on day cells.
* In normal mode each event renders as a small colored dot (max 3 dots, then "+N").
* In expanded mode each event renders as a full-width colored pill with its label.
* Pass as a JS property or as a JSON-encoded attribute.
* @example
* ```js
* calendar.events = [
* { id: '1', date: '2025-06-15', label: 'Team standup', color: 'var(--color-primary)' },
* { id: '2', date: '2025-06-20', label: 'Release', color: '#e11d48' },
* ];
* ```
*/
events?: CalendarEvent[];
/**
* Expanded layout — large cells with top-aligned day numbers suitable
* for a full-page calendar app view.
*/
expanded?: boolean;
/** Expand to container width */
fullwidth?: boolean;
/** Locale for day/month names (default: browser locale) */
locale?: string;
/** Latest selectable date in ISO 8601 format (yyyy-MM-dd) */
max?: string;
/** Earliest selectable date in ISO 8601 format (yyyy-MM-dd) */
min?: string;
/** Form field name (when used inside a form) */
name?: string;
/** Mark field as required */
required?: boolean;
/** Border radius override */
rounded?: RoundedSize;
/** Component size */
size?: ComponentSize;
/**
* Selected date in ISO 8601 format (yyyy-MM-dd).
* @example '2025-06-15'
*/
value?: string;
/**
* Day-of-week indices to disable (0 = Sunday … 6 = Saturday).
* Pass as a JSON array attribute or a JS property.
* @example
* ```html
*
* ```
*/
'weekend-days'?: number[];
};
/**
* An accessible, keyboard-navigable inline calendar component.
* Supports day/month/year drill-down views, min/max bounds, disabled weekend
* days, and optional form association.
*
* @element ore-calendar
*
* @attr {string} value - Selected date in ISO 8601 format (yyyy-MM-dd)
* @attr {string} min - Minimum selectable date (yyyy-MM-dd)
* @attr {string} max - Maximum selectable date (yyyy-MM-dd)
* @attr {boolean} disabled - Disable all interaction
* @attr {boolean} required - Required field (form association)
* @attr {string} name - Form field name
* @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'
* @attr {string} size - Component size: 'sm' | 'md' | 'lg'
* @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'
* @attr {string} locale - BCP 47 locale string
* @attr {string} weekend-days - JSON array of day indices to disable (0=Sun…6=Sat)
* @attr {boolean} fullwidth - Expand to full container width
* @attr {boolean} expanded - Large-cell calendar-app layout with top-aligned day numbers
*
* @fires change - Fired when a date is selected. detail: { isoValue: string | null }
*
* @cssprop --calendar-bg - Calendar background
* @cssprop --calendar-border-color - Calendar border color
* @cssprop --calendar-radius - Calendar border radius
* @cssprop --calendar-shadow - Calendar drop shadow
* @cssprop --calendar-day-selected-bg - Background of selected day cell
* @cssprop --calendar-day-today-color - Colour of today's date number
* @cssprop --calendar-day-outside-opacity - Opacity of days outside visible month
*
* @part calendar - The root calendar panel
* @part header - Calendar header (nav + label)
* @part grid - Day grid
* @part day - Individual day cell
*
* @example
* ```html
*
*
*
*
*
* ```
*/
export declare const CALENDAR_TAG: "ore-calendar";
//# sourceMappingURL=calendar.d.ts.map