// Type definitions for react-mdl 1.7.0 // Project: https://github.com/tleunen/react-mdl // Definitions by: Brad Zacher // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 import * as React from 'react'; export = __ReactMDL; declare namespace __ReactMDL { type __MDLClassProps = React.ClassAttributes; type __MDLOtherProps = React.HTMLProps; class __MDLComponent

extends React.Component

{ } class __MDLBasicComponent extends __MDLComponent<__MDLOtherProps> { } interface ShadowedComponent { shadow?: number; } interface RippleComponent { ripple?: boolean; } interface CustomRenderedComponent { component?: string | JSX.Element | Function; } // HTMLAttributes (minus the 'data', 'icon', 'label', 'name', 'rows', 'size', 'title', 'value' attributes) interface MDLHTMLAttributes { // React-specific Attributes defaultChecked?: boolean; defaultValue?: number | string | string[]; // Standard HTML Attributes accept?: string; acceptCharset?: string; accessKey?: string; action?: string; allowFullScreen?: boolean; allowTransparency?: boolean; alt?: string; async?: boolean; autoComplete?: string; autoFocus?: boolean; autoPlay?: boolean; capture?: boolean; cellPadding?: number | string; cellSpacing?: number | string; charSet?: string; challenge?: string; checked?: boolean; classID?: string; className?: string; cols?: number; colSpan?: number; content?: string; contentEditable?: boolean; contextMenu?: string; controls?: boolean; coords?: string; crossOrigin?: string; dateTime?: string; default?: boolean; defer?: boolean; dir?: string; disabled?: boolean; download?: any; draggable?: boolean; encType?: string; form?: string; formAction?: string; formEncType?: string; formMethod?: string; formNoValidate?: boolean; formTarget?: string; frameBorder?: number | string; headers?: string; height?: number | string; hidden?: boolean; high?: number; href?: string; hrefLang?: string; htmlFor?: string; httpEquiv?: string; id?: string; inputMode?: string; integrity?: string; is?: string; keyParams?: string; keyType?: string; kind?: string; lang?: string; list?: string; loop?: boolean; low?: number; manifest?: string; marginHeight?: number; marginWidth?: number; max?: number | string; maxLength?: number; media?: string; mediaGroup?: string; method?: string; min?: number | string; minLength?: number; multiple?: boolean; muted?: boolean; nonce?: string; noValidate?: boolean; open?: boolean; optimum?: number; pattern?: string; placeholder?: string; poster?: string; preload?: string; radioGroup?: string; readOnly?: boolean; rel?: string; required?: boolean; reversed?: boolean; role?: string; rowSpan?: number; sandbox?: string; scope?: string; scoped?: boolean; scrolling?: string; seamless?: boolean; selected?: boolean; shape?: string; sizes?: string; span?: number; spellCheck?: boolean; src?: string; srcDoc?: string; srcLang?: string; srcSet?: string; start?: number; step?: number | string; style?: React.CSSProperties; summary?: string; tabIndex?: number; target?: string; type?: string; useMap?: string; width?: number | string; wmode?: string; wrap?: string; // RDFa Attributes about?: string; datatype?: string; inlist?: any; prefix?: string; property?: string; resource?: string; typeof?: string; vocab?: string; // Non-standard Attributes autoCapitalize?: string; autoCorrect?: string; autoSave?: string; color?: string; itemProp?: string; itemScope?: boolean; itemType?: string; itemID?: string; itemRef?: string; results?: number; security?: string; unselectable?: boolean; // Allows aria- and data- Attributes [key: string]: any; } // DOMAttributes (minus 'onClick', 'onChange') interface MDLDOMAttributes { // DOMAttributes (minus onClick) children?: React.ReactNode; dangerouslySetInnerHTML?: { __html: string; }; // Clipboard Events onCopy?: React.ClipboardEventHandler; onCut?: React.ClipboardEventHandler; onPaste?: React.ClipboardEventHandler; // Composition Events onCompositionEnd?: React.CompositionEventHandler; onCompositionStart?: React.CompositionEventHandler; onCompositionUpdate?: React.CompositionEventHandler; // Focus Events onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; // Form Events onInput?: React.FormEventHandler; onSubmit?: React.FormEventHandler; // Image Events onLoad?: React.ReactEventHandler; onError?: React.ReactEventHandler; // also a Media Event // Keyboard Events onKeyDown?: React.KeyboardEventHandler; onKeyPress?: React.KeyboardEventHandler; onKeyUp?: React.KeyboardEventHandler; // Media Events onAbort?: React.ReactEventHandler; onCanPlay?: React.ReactEventHandler; onCanPlayThrough?: React.ReactEventHandler; onDurationChange?: React.ReactEventHandler; onEmptied?: React.ReactEventHandler; onEncrypted?: React.ReactEventHandler; onEnded?: React.ReactEventHandler; onLoadedData?: React.ReactEventHandler; onLoadedMetadata?: React.ReactEventHandler; onLoadStart?: React.ReactEventHandler; onPause?: React.ReactEventHandler; onPlay?: React.ReactEventHandler; onPlaying?: React.ReactEventHandler; onProgress?: React.ReactEventHandler; onRateChange?: React.ReactEventHandler; onSeeked?: React.ReactEventHandler; onSeeking?: React.ReactEventHandler; onStalled?: React.ReactEventHandler; onSuspend?: React.ReactEventHandler; onTimeUpdate?: React.ReactEventHandler; onVolumeChange?: React.ReactEventHandler; onWaiting?: React.ReactEventHandler; // MouseEvents onContextMenu?: React.MouseEventHandler; onDoubleClick?: React.MouseEventHandler; onDrag?: React.DragEventHandler; onDragEnd?: React.DragEventHandler; onDragEnter?: React.DragEventHandler; onDragExit?: React.DragEventHandler; onDragLeave?: React.DragEventHandler; onDragOver?: React.DragEventHandler; onDragStart?: React.DragEventHandler; onDrop?: React.DragEventHandler; onMouseDown?: React.MouseEventHandler; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; onMouseMove?: React.MouseEventHandler; onMouseOut?: React.MouseEventHandler; onMouseOver?: React.MouseEventHandler; onMouseUp?: React.MouseEventHandler; // Selection Events onSelect?: React.ReactEventHandler; // Touch Events onTouchCancel?: React.TouchEventHandler; onTouchEnd?: React.TouchEventHandler; onTouchMove?: React.TouchEventHandler; onTouchStart?: React.TouchEventHandler; // UI Events onScroll?: React.UIEventHandler; // Wheel Events onWheel?: React.WheelEventHandler; } interface BadgeProps extends __MDLClassProps { text: string | number; className?: string; noBackground?: boolean; overlap?: boolean; } class Badge extends __MDLComponent { } interface ChipProps extends __MDLOtherProps { onClick?: React.MouseEventHandler; onClose?: React.MouseEventHandler; } class Chip extends __MDLComponent { } class ChipContact extends __MDLComponent<__MDLOtherProps> { } interface ButtonProps extends __MDLOtherProps, RippleComponent, CustomRenderedComponent { accent?: boolean; colored?: boolean; primary?: boolean; } interface StandardButtonProps extends ButtonProps { raised?: boolean; } interface FABButtonProps extends ButtonProps { mini?: boolean; } interface IconButtonProps extends ButtonProps { name?: string; raised?: boolean; } class Button extends __MDLComponent { } class FABButton extends __MDLComponent { } class IconButton extends __MDLComponent { } interface CardProps extends __MDLOtherProps, ShadowedComponent { } interface CardActionProps extends __MDLOtherProps { border?: boolean; } interface CardTitleProps extends __MDLOtherProps { expand?: boolean; } class Card extends __MDLComponent { } class CardActions extends __MDLComponent { } class CardTitle extends __MDLComponent { } class CardText extends __MDLBasicComponent { } class CardMenu extends __MDLBasicComponent { } class CardMedia extends __MDLBasicComponent { } interface CheckboxProps extends __MDLOtherProps, RippleComponent { checked?: boolean; disabled?: boolean; label?: string; } class Checkbox extends __MDLComponent { } interface UndecoratedTableProps extends __MDLClassProps, MDLHTMLAttributes, React.DOMAttributes, ShadowedComponent { rows: Array; rowKeyColumn?: string; name?: string; title?: string; } interface TableProps extends UndecoratedTableProps { sortable?: boolean; selectable?: boolean; onSelectionChanged?: (row: any) => any; } interface TableHeaderProps extends __MDLClassProps, MDLHTMLAttributes, MDLDOMAttributes { name: string; title?: string; cellFormatter?: (value: any, row: any, index: number) => React.ReactNode; numeric?: boolean; nosort?: boolean; onClick?: (e: React.MouseEvent, name: string) => any; sortFn?: (a: any, b: any, isAsc: boolean) => number; tooltip?: React.ReactNode; } class Table extends __MDLComponent { } class TableHeader extends __MDLComponent { } class UndecoratedTable extends __MDLComponent { } class DataTable extends Table { } interface DialogProps extends __MDLOtherProps { open?: boolean; onCancel?: (e: any) => void; } interface DialogActionsProps extends __MDLOtherProps { fullWidth?: boolean; } interface DialogTitleProps extends __MDLOtherProps, CustomRenderedComponent { } class Dialog extends __MDLComponent { } class DialogActions extends __MDLComponent { } class DialogTitle extends __MDLComponent { } class DialogContent extends __MDLBasicComponent { } interface GridProps extends __MDLOtherProps, CustomRenderedComponent, ShadowedComponent { noSpacing?: boolean; } interface CellProps extends __MDLOtherProps, CustomRenderedComponent, ShadowedComponent { col: number; offset?: number; offsetDesktop?: number; offsetPhone?: number; offsetTablet?: number; align?: string; phone?: number; tablet?: number; hideDesktop?: boolean; hidePhone?: boolean; hideTablet?: boolean; } class Grid extends __MDLComponent { } class Cell extends __MDLComponent { } interface IconProps extends __MDLOtherProps { name: string; } class Icon extends __MDLComponent { } interface IconToggleProps extends __MDLOtherProps, RippleComponent { name: string; checked?: boolean; disabled?: boolean; } class IconToggle extends __MDLComponent { } interface ContentProps extends __MDLOtherProps, CustomRenderedComponent { } interface DrawerProps extends __MDLOtherProps { title?: string; } interface HeaderProps extends __MDLOtherProps { title?: any; // string | JSX.Element scroll?: boolean; seamed?: boolean; transparent?: boolean; waterfall?: boolean; hideTop?: boolean; hideSpacer?: boolean; } interface HeaderRowProps extends __MDLOtherProps { title?: any; // string | JSX.Element hideSpacer?: boolean; } interface HeaderTabsProps extends __MDLOtherProps, RippleComponent { activeTab?: number; onChange?: React.FormEventHandler

; } interface LayoutProps extends __MDLOtherProps { fixedDrawer?: boolean; fixedHeader?: boolean; fixedTabs?: boolean; } interface NavigationProps extends __MDLOtherProps { } class Content extends __MDLComponent { } class Drawer extends __MDLComponent { } class Header extends __MDLComponent { } class HeaderRow extends __MDLComponent { } class HeaderTabs extends __MDLComponent { } class Layout extends __MDLComponent { } class Navigation extends __MDLComponent { } class Spacer extends __MDLBasicComponent { } interface FooterProps extends MDLHTMLAttributes, React.DOMAttributes