diff --git a/material-ui/material-ui.d.ts b/material-ui/material-ui.d.ts index 673435c24e..b577788646 100644 --- a/material-ui/material-ui.d.ts +++ b/material-ui/material-ui.d.ts @@ -72,10 +72,10 @@ declare module "material-ui" { export import TableHeaderColumn = __MaterialUI.Table.TableHeaderColumn; // require('material-ui/lib/table/table-header-column'); export import TableRow = __MaterialUI.Table.TableRow; // require('material-ui/lib/table/table-row'); export import TableRowColumn = __MaterialUI.Table.TableRowColumn; // require('material-ui/lib/table/table-row-column'); - export import Theme = __MaterialUI.Theme; // require('material-ui/lib/theme'); - export import Toggle = __MaterialUI.Toggle; // require('material-ui/lib/toggle'); - export import TimePicker = __MaterialUI.TimePicker; // require('material-ui/lib/time-picker'); export import TextField = __MaterialUI.TextField; // require('material-ui/lib/text-field'); + export import Theme = __MaterialUI.Theme; // require('material-ui/lib/theme'); + export import TimePicker = __MaterialUI.TimePicker; // require('material-ui/lib/time-picker'); + export import Toggle = __MaterialUI.Toggle; // require('material-ui/lib/toggle'); export import Toolbar = __MaterialUI.Toolbar.Toolbar; // require('material-ui/lib/toolbar/toolbar'); export import ToolbarGroup = __MaterialUI.Toolbar.ToolbarGroup; // require('material-ui/lib/toolbar/toolbar-group'); export import ToolbarSeparator = __MaterialUI.Toolbar.ToolbarSeparator; // require('material-ui/lib/toolbar/toolbar-separator'); @@ -84,9 +84,9 @@ declare module "material-ui" { export import Utils = __MaterialUI.Utils; // require('material-ui/lib/utils/'); // export type definitions + export import DialogAction = __MaterialUI.DialogAction; export import TouchTapEvent = __MaterialUI.TouchTapEvent; export import TouchTapEventHandler = __MaterialUI.TouchTapEventHandler; - export import DialogAction = __MaterialUI.DialogAction; } declare namespace __MaterialUI { @@ -112,9 +112,7 @@ declare namespace __MaterialUI { // more specific than React.HTMLAttributes - interface AppBarProp extends React.Props> { - ref?: string | ((component: AppBar) => any); - + interface AppBarProp extends React.Props { iconClassNameLeft?: string; iconClassNameRight?: string; iconElementLeft?: React.ReactElement; @@ -122,25 +120,22 @@ declare namespace __MaterialUI { iconStyleRight?: string; style?: React.CSSProperties; showMenuIconButton?: boolean; - title?: any; + title?: React.ReactNode; zDepth?: number; onLeftIconButtonTouchTap?: TouchTapEventHandler; onRightIconButtonTouchTap?: TouchTapEventHandler; } - export class AppBar extends React.Component{ + export class AppBar extends React.Component{ } - interface AppCanvasProp extends React.Props { - ref?: string | ((component: AppCanvas) => any); - + interface AppCanvasProp extends React.Prop { + } - export class AppCanvas extends React.Component { + export class AppCanvas extends React.Component { } interface AvatarProp extends React.Props { - ref?: string | ((component: AvatarProp) => any); - icon?: React.ReactElement; backgroundColor?: string; color?: string; @@ -148,21 +143,23 @@ declare namespace __MaterialUI { src?: string; style?: React.CSSProperties; } - export class Avatar extends React.Component { + export class Avatar extends React.Component { } interface BeforeAfterWrapperProp extends React.Props { - ref?: string | ((component: BeforeAfterWrapper) => any); - + beforeStyle?: React.CSSProperties; + afterStyle?: React.CSSProperties; + beforeElementType?: string; + afterElementType?: string; + elementType?: string; } - export class BeforeAfterWrapper extends React.Component { + export class BeforeAfterWrapper extends React.Component { } namespace Card { interface CardProp extends React.Props { - ref?: string | ((component: Card) => any); - + expandable?: boolean; initiallyExpanded?: boolean; onExpandedChange?: (isExpanded: boolean) => void; style?: React.CSSProperties; @@ -171,26 +168,20 @@ declare namespace __MaterialUI { } interface CardActionsProp extends React.Props { - ref?: string | ((component: CardActions) => any); - expandable?: boolean; showExpandableButton?: boolean; } - export class CardActions extends React.Component { + export class CardActions extends React.Component { } interface CardExpandableProp extends React.Props { - ref?: string | ((component: CardExpandable) => any); - - onExpanding: (isExpanded: boolean) => void; - expanded: boolean; + onExpanding?: (isExpanded: boolean) => void; + expanded?: boolean; } - export class CardExpandable extends React.Component { + export class CardExpandable extends React.Component { } interface CardHeaderProp extends React.Props { - ref?: string | ((component: CardHeader) => any); - expandable?: boolean; showExpandableButton?: boolean; title?: string | React.ReactElement; @@ -203,36 +194,30 @@ declare namespace __MaterialUI { style?: React.CSSProperties; avatar: React.ReactElement | string; } - export class CardHeader extends React.Component { + export class CardHeader extends React.Component { } interface CardMediaProp extends React.Props { - ref?: string | ((component: CardMedia) => any); - expandable?: boolean; - overlay?: React.ReactElement; + overlay?: React.ReactNode; overlayStyle?: React.CSSProperties; overlayContainerStyle?: React.CSSProperties; overlayContentStyle?: React.CSSProperties; mediaStyle?: React.CSSProperties; style?: React.CSSProperties; } - export class CardMedia extends React.Component { + export class CardMedia extends React.Component { } interface CardTextProp extends React.Props { - ref?: string | ((component: CardText) => any); - expandable?: boolean; color?: string; style?: React.CSSProperties; } - export class CardText extends React.Component { + export class CardText extends React.Component { } interface CardTitleProp extends React.Props { - ref?: string | ((component: CardTitle) => any); - expandable?: boolean; showExpandableButton?: boolean; title?: string | React.ReactElement; @@ -244,7 +229,7 @@ declare namespace __MaterialUI { textStyle?: React.CSSProperties; style?: React.CSSProperties; } - export class CardTitle extends React.Component { + export class CardTitle extends React.Component { } } @@ -277,7 +262,7 @@ declare namespace __MaterialUI { onSwitch?: (e: React.MouseEvent, isInputChecked: boolean) => void; labelPosition?: string; } - export class EnhancedSwitch extends React.Component { + export class EnhancedSwitch extends React.Component { isSwitched(): boolean; setSwitched(newSwitchedValue: boolean): void; getValue(): any; @@ -286,8 +271,6 @@ declare namespace __MaterialUI { interface CheckboxProp extends CommonEnhancedSwitchProp { // is root element - ref?: string | ((component: Checkbox) => any); - checkedIcon?: React.ReactElement<{ style?: React.CSSProperties }>; // Normally an SvgIcon defaultChecked?: boolean; iconStyle?: React.CSSProperties; @@ -304,38 +287,64 @@ declare namespace __MaterialUI { onCheck?: (event: React.MouseEvent, checked: boolean) => void; } - export class Checkbox extends React.Component { + export class Checkbox extends React.Component { isChecked(): void; setChecked(newCheckedValue: boolean): void; } interface CircularProgressProp extends React.Props { - ref?: string | ((component: CircularProgress) => any); + mode?: string; + value?: number; + min?: number; + max?: number; + size?: number; + color?: string; + innerStyle?: React.CSSProperties; } - export class CircularProgress extends React.Component { + export class CircularProgress extends React.Component { } interface ClearFixProp extends React.Props { - ref?: string | ((component: ClearFix) => any); - } - export class ClearFix extends React.Component { + export class ClearFix extends React.Component { } namespace DatePicker { interface DatePickerProp extends React.Props { - ref?: string | ((component: DatePicker) => any); - + autoOk?: boolean; + defaultDate?: Date; + formatDate?: string; + hideToolbarYearChange?: boolean; + maxDate?: Date; + minDate?: Date; + mode?: string; + onDismiss?: Function; + //TODO: typeof e? + onChange?: (e: any, d: Date): void; + onFocus?: React.FocusEventHandler; + onShow?: Function; + onTouchTap?: React.TouchEventHandler; + shouldDisableDate?: (day: Date) => boolean; + showYearSelector?: boolean; + textFieldStyle?: React.CSSProperties; } - export class DatePicker extends React.Component { + export class DatePicker extends React.Component { } interface DatePickerDialogProp extends React.Props { - ref?: string | ((component: DatePickerDialog) => any); - + disableYearSelection?: boolean; + initialDate?: Date; + maxDate?: Date; + minDate?: Date; + onAccept?: (d: Date) => void; + onClickAway?: Function; + onDismiss?: Function; + onShow?: Function; + shouldDisableDate?: (day: Date) => boolean; + showYearSelector?: boolean; } - export class DatePickerDialog extends React.Component { + export class DatePickerDialog extends React.Component { } } @@ -347,42 +356,45 @@ declare namespace __MaterialUI { onClick?: React.MouseEventHandler; } interface DialogProp extends React.Props { - ref?: string | ((component: Dialog) => any); - actions?: Array>; actionFocus?: string; + autoDetectWindowHeight?: boolean; + autoScrollBodyContent?: boolean; + bodyStyle?: React.CSSProperties; contentClassName?: string; contentInnerStyle?: React.CSSProperties; contentStyle?: React.CSSProperties; modal?: boolean; openImmediately?: boolean; - title?: any; - autoDetectWindowHeight?: boolean; - autoScrollBodyContent?: boolean; + repositionOnUpdate?: boolean; + title?: React.ReactNode; - onDismiss?: () => void; - onShow?: () => void; + onClickAway?: Function; + onDismiss?: Function; + onShow?: Function; } - export class Dialog extends React.Component { + export class Dialog extends React.Component { dismiss(): void; show(): void; } interface DropDownIconProp extends React.Props { - ref?: string | ((component: DropDownIcon) => any); - + onChange?: Menu.ChangeHandler; + menuItems: Menu.MenuItemProp[]; + closeOnMenuItemTouchTap?: boolean; + iconStyle?: React.CSSProperties; + iconClassName?: string; + iconLigature?: string; } - export class DropDownIcon extends React.Component { + export class DropDownIcon extends React.Component { } interface DropDownMenuProp extends React.Props { - ref?: string | ((component: DropDownMenu) => any); - displayMember?: string; valueMember?: string; autoWidth?: boolean; - menuItems?: Array<{ text: string, payload: string } | {}>; - menuItemStyle?: React.CSSProperties[]; + menuItems: Menu.MenuItemProp[]; + menuItemStyle?: React.CSSProperties; selectedIndex?: number; underlineStyle?: React.CSSProperties; iconStyle?: React.CSSProperties; @@ -392,13 +404,14 @@ declare namespace __MaterialUI { valueLink?: ReactLink; value?: number; - onChange?: (e: TouchTapEvent, selectedIndex: number, menuItem: any) => void; + onChange?: Menu.ChangeHandler; } - export class DropDownMenu extends React.Component { + export class DropDownMenu extends React.Component { } // non generally overridden elements of EnhancedButton interface SharedEnhancedButtonProp extends React.HTMLAttributesBase { + centerRipple?: boolean; containerElement?: string | React.ReactElement; disabled?: boolean; disableFocusRipple?: boolean; @@ -413,6 +426,7 @@ declare namespace __MaterialUI { onBlur?: React.FocusEventHandler; onFocus?: React.FocusEventHandler; + onKeyboardFocus?: (e: React.FocusEvent, isKeyboardFocused: boolean) => void; onKeyDown?: React.KeyboardEventHandler; onKeyUp?: React.KeyboardEventHandler; onMouseEnter?: React.MouseEventHandler; @@ -423,19 +437,14 @@ declare namespace __MaterialUI { } interface EnhancedButtonProp extends SharedEnhancedButtonProp { - ref?: string | ((component: EnhancedButton) => any); - - onKeyboardFocus?: (e: React.FocusEvent, isKeyboardFocused: boolean) => void; touchRippleColor?: string; focusRippleColor?: string; style?: React.CSSProperties; } - export class EnhancedButton extends React.Component { + export class EnhancedButton extends React.Component { } interface FlatButtonProp extends SharedEnhancedButtonProp { - ref?: string | ((component: FlatButton) => any); - hoverColor?: string; label?: string; labelPosition?: string; @@ -448,12 +457,10 @@ declare namespace __MaterialUI { onKeyboardFocus?: (e: React.KeyboardEvent, isKeyboardFocused: boolean) => void; } - export class FlatButton extends React.Component { + export class FlatButton extends React.Component { } interface FloatingActionButtonProp extends SharedEnhancedButtonProp { - ref?: string | ((component: FloatingActionButton) => any); - backgroundColor?: string; disabled?: boolean; disabledColor?: string; @@ -463,12 +470,10 @@ declare namespace __MaterialUI { secondary?: boolean; style?: React.CSSProperties; } - export class FloatingActionButton extends React.Component { + export class FloatingActionButton extends React.Component { } interface FontIconProp extends React.Props { - ref?: string | ((component: FontIcon) => any); - color?: string; hoverColor?: string; onMouseLeave?: React.MouseEventHandler; @@ -476,12 +481,10 @@ declare namespace __MaterialUI { style?: React.CSSProperties; className?: string; } - export class FontIcon extends React.Component { + export class FontIcon extends React.Component { } interface IconButtonProp extends SharedEnhancedButtonProp { - ref?: string | ((component: IconButton) => any); - iconClassName?: string; iconStyle?: React.CSSProperties; style?: React.CSSProperties; @@ -493,66 +496,116 @@ declare namespace __MaterialUI { onBlur?: React.FocusEventHandler; onFocus?: React.FocusEventHandler; } - export class IconButton extends React.Component { + export class IconButton extends React.Component { } interface LeftNavProp extends React.Props { - ref?: string | ((component: LeftNav) => any); - + disableSwipeToOpen?: boolean; + docked?: boolean; + header?: React.ReactElement; + menuItems: Menu.MenuItemProp[]; + onChange?: Menu.ChangeHandler; + onNavOpen?: Function; + onNavClose?: Function; + openRight?: Boolean; + selectedIndex?: number; + menuItemClassName?: string; + menuItemClassNameSubheader?: string; + menuItemClassNameLink?: string; } - export class LeftNav extends React.Component { + export class LeftNav extends React.Component { } interface LinearProgressProp extends React.Props { - ref?: string | ((component: LinearProgress) => any); - + mode?: string; + value?: number; + min?: number; + max?: number; } - export class LinearProgress extends React.Component { + export class LinearProgress extends React.Component { } namespace Lists { interface ListProp extends React.Props { - ref?: string | ((component: List) => any); - + insetSubheader?: boolean; + subheader?: string; + subheaderStyle?: React.CSSProperties; + zDepth?: number; } - export class List extends React.Component { + export class List extends React.Component { } interface ListDividerProp extends React.Props { - ref?: string | ((component: ListDivider) => any); - + inset?: boolean; } - export class ListDivider extends React.Component { + export class ListDivider extends React.Component { } interface ListItemProp extends React.Props { - ref?: string | ((component: ListItem) => any); - + autoGenerateNestedIndicator?: boolean; + disableKeyboardFocus?: boolean; + initiallyOpen?: boolean; + innerDivStyle?: React.CSSProperties; + insetChildren?: boolean; + innerStyle?: React.CSSProperties; + leftAvatar?: React.ReactElement; + leftCheckbox?: React.ReactElement; + leftIcon?: React.ReactElement; + nestedLevel?: number; + nestedItems?: React.ReactElement[]; + onKeyboardFocus?: React.FocusEventHandler; + onNestedListToggle?: (item: ListItem) => void; + rightAvatar?: React.ReactElement; + rightIcon?: React.ReactElement; + rightIconButton?: React.ReactElement; + rightToggle?: React.ReactElement; + primaryText?: React.ReactNode; + secondaryText?: React.ReactNode; + secondaryTextLines?: number; } - export class ListItem extends React.Component { + export class ListItem extends React.Component { } } namespace Menu { - interface MenuProp extends React.Props { - ref?: string | ((component: Menu) => any); - + interface ChangeHandler { + (e: TouchTapEvent, key: number, payload: MenuItemProp): void; } - export class Menu extends React.Component { + interface MenuProp extends React.Props { + index: number; + text?: string; + menuItems: MenuItemProp[]; + zDepth?: number; + active?: boolean; + onItemTap?: ChangeHandler; + menuItemStyle?: React.CSSProperties; + } + export class Menu extends React.Component { } interface MenuItemProp extends React.Props { - ref?: string | ((component: MenuItem) => any); - + index: number; + iconClassName?: string; + iconRightClassName?: string; + iconStyle?: React.CSSProperties; + iconRightStyle?: React.CSSProperties; + attribute?: string; + number?: string; + data?: string; + toggle?: boolean; + onTouchTap?: (e: React.MouseEvent, key: number): void; + onToggle?: (e: React.MouseEvent, key: number, toggled: boolean): void; + selected?: boolean; + active?: boolean; } - export class MenuItem extends React.Component { + export class MenuItem extends React.Component { } } export namespace Mixins { interface ClickAwayable extends React.Mixin { } - var ClickAwayable: ClickAwayable + var ClickAwayable: ClickAwayable; interface WindowListenable extends React.Mixin { } @@ -568,23 +621,24 @@ declare namespace __MaterialUI { } interface OverlayProp extends React.Props { - ref?: string | ((component: Overlay) => any); - + autoLockScrolling?: boolean; + show?: boolean; + transitionEnabled?: boolean; } - export class Overlay extends React.Component { + export class Overlay extends React.Component { } interface PaperProp extends React.Props { - ref?: string | ((component: Paper) => any); - + circle?: boolean; + rounded?: boolean; + transitionEnabled?: boolean; + zDepth?: number; } - export class Paper extends React.Component { + export class Paper extends React.Component { } interface RadioButtonProp extends CommonEnhancedSwitchProp { // is root element - ref?: string | ((component: RadioButton) => any); - defaultChecked?: boolean; iconStyle?: React.CSSProperties; label?: string; @@ -592,13 +646,13 @@ declare namespace __MaterialUI { labelPosition?: string; style?: React.CSSProperties; value?: string; + + onChane: (e: React.FormEvent, selected: string) => void; } - export class RadioButton extends React.Component { + export class RadioButton extends React.Component { } interface RadioButtonGroupProp extends React.Props { - ref?: string | ((component: RadioButtonGroup) => any); - defaultSelected?: string; labelPosition?: string; name: string; @@ -607,15 +661,13 @@ declare namespace __MaterialUI { onChange?: (e: React.FormEvent, selected: string) => void; } - export class RadioButtonGroup extends React.Component { + export class RadioButtonGroup extends React.Component { getSelectedValue(): string; setSelectedValue(newSelectionValue: string): void; clearValue(): void; } interface RaisedButtonProp extends SharedEnhancedButtonProp { - ref?: string | ((component: RaisedButton) => any); - className?: string; disabled?: boolean; label?: string; @@ -628,42 +680,46 @@ declare namespace __MaterialUI { disabledLabelColor?: string; fullWidth?: boolean; } - export class RaisedButton extends React.Component { + export class RaisedButton extends React.Component { } interface RefreshIndicatorProp extends React.Props { - ref?: string | ((component: RefreshIndicator) => any); - + left: number; + percentage?: number; + size?: number; + status?: string; + top: number; } - export class RefreshIndicator extends React.Component { + export class RefreshIndicator extends React.Component { } namespace Ripples { interface CircleRippleProp extends React.Props { - ref?: string | ((component: CircleRipple) => any); - + color?: string; + opacity?: number; } - export class CircleRipple extends React.Component { + export class CircleRipple extends React.Component { } interface FocusRippleProp extends React.Props { - ref?: string | ((component: FocusRipple) => any); - + color?: string; + innerStyle?: React.CSSProperties; + opacity?: number; + show?: boolean; } - export class FocusRipple extends React.Component { + export class FocusRipple extends React.Component { } interface TouchRippleProp extends React.Props { - ref?: string | ((component: TouchRipple) => any); - + centerRipple?: boolean; + color?: string; + opacity?: number; } - export class TouchRipple extends React.Component { + export class TouchRipple extends React.Component { } } interface SelectFieldProp extends React.Props { - ref?: string | ((component: SelectField) => any); - // passed to TextField errorStyle?: React.CSSProperties; errorText?: string; @@ -676,8 +732,8 @@ declare namespace __MaterialUI { displayMember?: string; valueMember?: string; autoWidth?: boolean; - menuItems?: Array<{ text: string, payload: string } | {}>; - menuItemStyle?: React.CSSProperties[]; + menuItems: Array<{ text: string, payload: string } | {}>; + menuItemStyle?: React.CSSProperties; selectedIndex?: number; underlineStyle?: React.CSSProperties; iconStyle?: React.CSSProperties; @@ -688,52 +744,60 @@ declare namespace __MaterialUI { value?: number; onChange?: (e: TouchTapEvent, selectedIndex: number, menuItem: any) => void; + onEnterKeyDown?: React.KeyboardEventHandler; // own properties selectFieldRoot?: string; + multiLine?: boolean; + type?: string; + rows?: number; + inputStyle?: React.CSSProperties; + autoWidth?: boolean; } - export class SelectField extends React.Component { + export class SelectField extends React.Component { } interface SliderProp extends React.Props { - ref?: string | ((component: Slider) => any); - + name: string; + defaultValue?: number; + description?: string; + error?: string; + max?: number; + min?: number; + required?: boolean; + step?: number; + value?: number; } - export class Slider extends React.Component { + export class Slider extends React.Component { } interface SvgIconProp extends React.Props { - ref?: string | ((component: SvgIcon) => any); - + color?: string; + hoverColor?: string; + viewBox?: string; } - export class SvgIcon extends React.Component { + export class SvgIcon extends React.Component { } interface NavigationMenuProp extends React.Props { - ref?: string | ((component: NavigationMenu) => any); - } - export class NavigationMenu extends React.Component { + export class NavigationMenu extends React.Component { } interface NavigationChevronLeftProp extends React.Props { - ref?: string | ((component: NavigationChevronLeft) => any); - } - export class NavigationChevronLeft extends React.Component { + export class NavigationChevronLeft extends React.Component { } interface NavigationChevronRightProp extends React.Props { - ref?: string | ((component: NavigationChevronRight) => any); - } - export class NavigationChevronRight extends React.Component { + export class NavigationChevronRight extends React.Component { } export namespace Styles { interface AutoPrefix { - all(styles: any): any; - set(style: any, key: string, value: string | number): void; + all(styles: React.CSSProperties): React.CSSProperties; + set(style: React.CSSProperties, key: string, value: string | number): void; single(key: string): string; singleHyphened(key: string): string; } @@ -893,24 +957,31 @@ declare namespace __MaterialUI { } } interface CustomTheme { + spacing?: Spacing; + contentFontFamily?: string; getPalette(): ThemePalette; getComponentThemes(palette: ThemePalette, spacing: Spacing): Theme; } export class ThemeManager { + static: boolean; spacing: Spacing; palette: ThemePalette; - component: any; + component: Theme; + contentFontFamily: string; + template: CustomTheme; types: { LIGHT: CustomTheme; DARK: CustomTheme; }; - getCurrentTheme(): CustomTheme; + getCurrentTheme(): ThemeManager; + setContentFontFamily(newContentFontFamily: string): void; setTheme(newTheme: CustomTheme): void; setSpacing(newSpacing: Spacing): void; setPalette(newPalette: ThemePalette): void; setComponentThemes(overrides: Theme): void; + setIsRtl(isRtl: boolean): void; } interface Transitions { @@ -921,7 +992,7 @@ declare namespace __MaterialUI { } export var Transitions: Transitions; - class TypographyClass { + interface Typography { textFullBlack:string; textDarkBlack: string; textLightBlack: string; @@ -937,107 +1008,147 @@ declare namespace __MaterialUI { fontStyleButtonFontSize: number; } - export var Typography: TypographyClass; + export var Typography: Typography; } interface SnackbarProp extends React.Props { - ref?: string | ((component: Snackbar) => any); - + message: string; + action?: string; + autoHideDuration?: number; + onActionTouchTap?: React.TouchEventHandler; + onShow?: Function; + onDismiss?: Function; + openOnMount?: boolean; } - export class Snackbar extends React.Component { + export class Snackbar extends React.Component { } namespace Tabs { interface TabProp extends React.Props { - ref?: string | ((component: Tab) => any); - label?: string; value?: string; - - onActive?: (tab: Tab) => void; + + handleTouchTap?: React.TouchEventHandler; + selected?: boolean; + width?: string; } - export class Tab extends React.Component { + export class Tab extends React.Component { } interface TabsProp extends React.Props { - ref?: string | ((component: Tabs) => any); - contentContainerStyle?: React.CSSProperties; initialSelectedIndex?: number; inkBarStyle?: React.CSSProperties; style?: React.CSSProperties; tabItemContainerStyle?: React.CSSProperties; + tabWidth?: number; value?: string | number; + onActive?: (tab: Tab) => void; onChange?: (value: string | number, e: React.FormEvent, tab: Tab) => void; } - export class Tabs extends React.Component { + export class Tabs extends React.Component { } } namespace Table { interface TableProp extends React.Props { - ref?: string | ((component: Table) => any); - + allRowsSelected?: boolean; + fixedFooter?: boolean; + fixedHeader?: boolean; + height?: string; + multiSelectable?: boolean; + onCellClick?: (row: number, column: number) => void; + onCellHover?: (row: number, column: number) => void; + onCellHoverExit?: (row: number, column: number) => void; + onRowHover?: (row: number) => void; + onRowHoverExit?: (row: number) => void; + onRowSelection?: (selectedRows: number[])=> void; + selectable?: boolean; } - export class Table extends React.Component { + export class Table extends React.Component { } interface TableBodyProp extends React.Props { - ref?: string | ((component: TableBody) => any); - + allRowsSelected?: boolean; + deselectOnClickaway?: boolean; + displayRowCheckbox?: boolean; + multiSelectable?: boolean; + onCellClick?: (row: number, column: number) => void; + onCellHover?: (row: number, column: number) => void; + onCellHoverExit?: (row: number, column: number) => void; + onRowHover?: (row: number) => void; + onRowHoverExit?: (row: number) => void; + onRowSelection?: (selectedRows: number[])=> void; + preScanRows?: boolean; + selectable?: boolean; + showRowHover?: boolean; + stripedRows?: boolean; } - export class TableBody extends React.Component { + export class TableBody extends React.Component { } interface TableFooterProp extends React.Props { - ref?: string | ((component: TableFooter) => any); - + adjustForCheckbox?: boolean; } - export class TableFooter extends React.Component { + export class TableFooter extends React.Component { } interface TableHeaderProp extends React.Props { - ref?: string | ((component: TableHeader) => any); - + adjustForCheckbox?: boolean; + displaySelectAll?: boolean; + enableSelectAll?: boolean; + onSelectAll?: (event: React.MouseEvent) => void;; + selectAllSelected?: boolean; } - export class TableHeader extends React.Component { + export class TableHeader extends React.Component { } interface TableHeaderColumnProp extends React.Props { - ref?: string | ((component: TableHeaderColumn) => any); - + columnNumber?: number; + onClick?: (e: React.MouseEvent, column: number): void;; + tooltip?: string; + tooltipStyle?: React.CSSProperties; } - export class TableHeaderColumn extends React.Component { + export class TableHeaderColumn extends React.Component { } interface TableRowProp extends React.Props { - ref?: string | ((component: TableRow) => any); - + displayBorder?: boolean; + hoverable?: boolean; + onCellClick?: (e: React.MouseEvent, row: number, column: number): void; + onCellHover?: (e: React.MouseEvent, row: number, column: number): void; + onCellHoverExit?: (e: React.MouseEvent, row: number, column: number): void; + onRowClick?: (e: React.MouseEvent, row: number): void; + onRowHover?: (e: React.MouseEvent, row: number): void; + onRowHoverExit?: (e: React.MouseEvent, row: number): void; + rowNumber?: number; + selectable?: boolean; + selected?: boolean; + striped?: boolean; } - export class TableRow extends React.Component { + export class TableRow extends React.Component { } interface TableRowColumnProp extends React.Props { - ref?: string | ((component: TableRowColumn) => any); - + columnNumber?: number; + hoverable?: boolean; + onHover?: (e: React.MouseEvent, column: number): void;; + onHoverExit?: (e: React.MouseEvent, column: number): void;; } - export class TableRowColumn extends React.Component { + export class TableRowColumn extends React.Component { } } interface ThemeProp extends React.Props { - ref?: string | ((component: Theme) => any); - theme: Styles.CustomTheme; } - export class Theme extends React.Component { + export class Theme extends React.Component { static theme(customTheme: Styles.CustomTheme):

(Component: React.ComponentClass

) => React.ComponentClass

; } interface ToggleProp extends CommonEnhancedSwitchProp { // is root element - ref?: string | ((component: Toggle) => any); elementStyle?: React.CSSProperties; labelStyle?: React.CSSProperties; @@ -1045,21 +1156,22 @@ declare namespace __MaterialUI { toggled?: boolean; defaultToggled?: boolean; } - export class Toggle extends React.Component { + export class Toggle extends React.Component { isToggled(): boolean; setToggled(newToggledValue: boolean): void; } interface TimePickerProp extends React.Props { - ref?: string | ((component: TimePicker) => any); - + defaultTime?: Date; + format?: string; + pedantic?: boolean; + onShow?: Function; + onDismiss?: Function; } - export class TimePicker extends React.Component { + export class TimePicker extends React.Component { } interface TextFieldProp extends React.Props { - ref?: string | ((component: TextField) => any); - errorStyle?: React.CSSProperties; errorText?: string; floatingLabelText?: string; @@ -1069,11 +1181,12 @@ declare namespace __MaterialUI { id?: string; inputStyle?: React.CSSProperties; multiLine?: boolean; - onEnterKeyDown?: () => void; + onEnterKeyDown?: React.KeyboardEventHandler; style?: React.CSSProperties; rows?: number, underlineStyle?: React.CSSProperties; underlineFocusStyle?: React.CSSProperties; + underlineDisabledStyle?: React.CSSProperties; type?: string; disabled?: boolean; @@ -1087,7 +1200,7 @@ declare namespace __MaterialUI { onFocus?: React.FocusEventHandler; onKeyDown?: React.KeyboardEventHandler; } - export class TextField extends React.Component { + export class TextField extends React.Component { blur(): void; clearValue(): void; focus(): void; @@ -1098,75 +1211,77 @@ declare namespace __MaterialUI { namespace Toolbar { interface ToolbarProp extends React.Props { - ref?: string | ((component: Toolbar) => any); - } - export class Toolbar extends React.Component { + export class Toolbar extends React.Component { } interface ToolbarGroupProp extends React.Props { - ref?: string | ((component: ToolbarGroup) => any); - + float?: string; } - export class ToolbarGroup extends React.Component { + export class ToolbarGroup extends React.Component { } interface ToolbarSeparatorProp extends React.Props { - ref?: string | ((component: ToolbarSeparator) => any); - } - export class ToolbarSeparator extends React.Component { + export class ToolbarSeparator extends React.Component { } interface ToolbarTitleProp extends React.Props { - ref?: string | ((component: ToolbarTitle) => any); - + text?: string; } - export class ToolbarTitle extends React.Component { + export class ToolbarTitle extends React.Component { } } interface TooltipProp extends React.Props { - ref?: string | ((component: Tooltip) => any); - + label: string; + show?: boolean; + touch?: boolean; + verticalPosition?: string; + horizontalPosition?: string; } - export class Tooltip extends React.Component { + export class Tooltip extends React.Component { } export namespace Utils { + interface ContrastLevel { + range: [number, number]; + color: string; + } interface ColorManipulator { - fade(color: string, amount: number): string; - darken(color: string, amount: number): string; - contrastRatio(background: string, foreground: string): string; - contrastRatioLevel(background: string, foreground: string): any; + fade(color: string, amount: string|number): string; + lighten(color: string, amount: string|number): string; + darken(color: string, amount: string|number): string; + contrastRatio(background: string, foreground: string): number; + contrastRatioLevel(background: string, foreground: string): ContrastLevel; } export var ColorManipulator: ColorManipulator; interface CssEvent { transitionEndEventName(): string; animationEndEventName(): string; - onTransitionEnd(el: Element, callback: (e: Event) => any): void; - onAnimationEnd(el: Element, callback: (e: Event) => any): void; + onTransitionEnd(el: Element, callback: () => void): void; + onAnimationEnd(el: Element, callback: () => void): void; } export var CssEvent: CssEvent; interface Dom { - isDescendant(parent: Element, child: Element): boolean; + isDescendant(parent: Node, child: Node): boolean; offset(el: Element): { top: number, left: number }; - getStyleAttributeAsNumber(el: Element, attr: string): number; + getStyleAttributeAsNumber(el: HTMLElement, attr: string): number; addClass(el: Element, className: string): void; removeClass(el: Element, className: string): void; hasClass(el: Element, className: string): boolean; toggleClass(el: Element, className: string): void; - forceRedraw(el: Element): void; - withoutTransition(el: Element, callback: () => any): void; + forceRedraw(el: HTMLElement): void; + withoutTransition(el: HTMLElement, callback: () => void): void; } export var Dom: Dom; interface Events { - once(el: Element, type: string, callback: (e: Event) => any): void; - on(el: Element, type: string, callback: (e: Event) => any): void; - off(el: Element, type: string, callback: (e: Event) => any): void; + once(el: Element, type: string, callback: EventListener): void; + on(el: Element, type: string, callback: EventListener): void; + off(el: Element, type: string, callback: EventListener): void; isKeyboard(e: Event): boolean; } export var Events: Events; @@ -1174,10 +1289,10 @@ declare namespace __MaterialUI { function Extend(base: T, override: S1): (T & S1); interface ImmutabilityHelper { - merge(base: {}, ...args: {}[]): any; - mergeItem(obj: {}, key: string, newValueObject: {}): any; - push(array: T[], obj: T): T[]; - shift(array: T[]): T[]; + merge(base: any, ...args: any[]): any; + mergeItem(obj: any, key: any, newValueObject: any: any; + push(array: any[], obj: any): any; + shift(array: any[]): any; } export var ImmutabilityHelper: ImmutabilityHelper; @@ -1211,7 +1326,7 @@ declare namespace __MaterialUI { export var UniqueId: UniqueId; interface Styles { - mergeAndPrefix(base: {}, ...args: {}[]): any; + mergeAndPrefix(base: any, ...args: any[]): React.CSSProperties; } export var Styles: Styles; } @@ -1219,11 +1334,9 @@ declare namespace __MaterialUI { // New menus available only through requiring directly to the end file namespace Menus { interface IconMenuProp extends React.Props { - ref?: string | ((component: IconMenu) => any); - closeOnItemTouchTap?: boolean; desktop?: boolean; - iconButtonElement?: React.ReactElement; + iconButtonElement: React.ReactElement; openDirection?: string; menuStyle?: React.CSSProperties; multiple?: boolean; @@ -1231,10 +1344,11 @@ declare namespace __MaterialUI { width?: string | number; touchTapCloseDelay?: number; + onKeyboardFocus?: React.FocusEventHandler; onItemTouchTap?: (e: TouchTapEvent, item: React.ReactElement) => void; onChange?: (e: React.FormEvent, value: string | Array) => void; } - export class IconMenu extends React.Component { + export class IconMenu extends React.Component { } interface MenuProp extends React.Props

{