/** * aria.ts * * Type definitions for ARIA attributes and roles. * These follow the WAI-ARIA specification and are used across all Punkt components. */ export type TAriaBoolean = boolean | 'true' | 'false'; export type TAriaBooleanMixed = TAriaBoolean | 'mixed'; export type TAriaCurrent = TAriaBoolean | 'page' | 'step' | 'location' | 'date' | 'time'; export type TAriaHasPopup = TAriaBoolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'; export type TAriaInvalid = TAriaBoolean | 'grammar' | 'spelling'; export type TAriaLive = 'off' | 'polite' | 'assertive'; export type TAriaRelevant = 'additions' | 'removals' | 'text' | 'all'; export type TAriaSort = 'none' | 'ascending' | 'descending' | 'other'; export type TAriaAutoComplete = 'none' | 'inline' | 'list' | 'both'; export type TAriaOrientation = 'horizontal' | 'vertical'; export interface IAriaAttributes { 'aria-activedescendant'?: string; 'aria-controls'?: string; 'aria-describedby'?: string; 'aria-details'?: string; 'aria-errormessage'?: string; 'aria-flowto'?: string; 'aria-label'?: string; 'aria-labelledby'?: string; 'aria-owns'?: string; 'aria-roledescription'?: string; 'aria-autocomplete'?: TAriaAutoComplete; 'aria-checked'?: TAriaBooleanMixed; 'aria-current'?: TAriaCurrent; 'aria-disabled'?: TAriaBoolean; 'aria-expanded'?: TAriaBoolean; 'aria-haspopup'?: TAriaHasPopup; 'aria-hidden'?: TAriaBoolean; 'aria-invalid'?: TAriaInvalid; 'aria-keyshortcuts'?: string; 'aria-level'?: number; 'aria-modal'?: TAriaBoolean; 'aria-multiline'?: TAriaBoolean; 'aria-multiselectable'?: TAriaBoolean; 'aria-orientation'?: TAriaOrientation; 'aria-placeholder'?: string; 'aria-pressed'?: TAriaBooleanMixed; 'aria-readonly'?: TAriaBoolean; 'aria-required'?: TAriaBoolean; 'aria-selected'?: TAriaBoolean; 'aria-sort'?: TAriaSort; 'aria-atomic'?: TAriaBoolean; 'aria-busy'?: TAriaBoolean; 'aria-live'?: TAriaLive; 'aria-relevant'?: TAriaRelevant | string; 'aria-colcount'?: number; 'aria-colindex'?: number; 'aria-colspan'?: number; 'aria-rowcount'?: number; 'aria-rowindex'?: number; 'aria-rowspan'?: number; 'aria-posinset'?: number; 'aria-setsize'?: number; 'aria-valuemax'?: number; 'aria-valuemin'?: number; 'aria-valuenow'?: number; 'aria-valuetext'?: string; } export type TAlertRole = 'alert' | 'status';