From cf9511a8320fdfd3e9bea65618e2cef5f559d319 Mon Sep 17 00:00:00 2001 From: use-strict Date: Tue, 22 Sep 2015 17:35:28 +0300 Subject: [PATCH 1/3] Update material-ui.d.ts --- material-ui/material-ui.d.ts | 608 +++++++++++++++++++++-------------- 1 file changed, 361 insertions(+), 247 deletions(-) diff --git a/material-ui/material-ui.d.ts b/material-ui/material-ui.d.ts index 673435c24..b57778864 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

{ From c3a4bd1aae40d1a1a42c4628610538b1edb033f1 Mon Sep 17 00:00:00 2001 From: "Ciuca, Alexandru" Date: Tue, 22 Sep 2015 17:39:21 +0300 Subject: [PATCH 2/3] Syntax fixes --- material-ui/material-ui.d.ts | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/material-ui/material-ui.d.ts b/material-ui/material-ui.d.ts index b57778864..3c582d924 100644 --- a/material-ui/material-ui.d.ts +++ b/material-ui/material-ui.d.ts @@ -129,7 +129,7 @@ declare namespace __MaterialUI { export class AppBar extends React.Component{ } - interface AppCanvasProp extends React.Prop { + interface AppCanvasProp extends React.Props { } export class AppCanvas extends React.Component { @@ -321,7 +321,7 @@ declare namespace __MaterialUI { mode?: string; onDismiss?: Function; //TODO: typeof e? - onChange?: (e: any, d: Date): void; + onChange?: (e: any, d: Date) => void; onFocus?: React.FocusEventHandler; onShow?: Function; onTouchTap?: React.TouchEventHandler; @@ -454,8 +454,6 @@ declare namespace __MaterialUI { secondary?: boolean; rippleColor?: string; style?: React.CSSProperties; - - onKeyboardFocus?: (e: React.KeyboardEvent, isKeyboardFocused: boolean) => void; } export class FlatButton extends React.Component { } @@ -593,8 +591,8 @@ declare namespace __MaterialUI { number?: string; data?: string; toggle?: boolean; - onTouchTap?: (e: React.MouseEvent, key: number): void; - onToggle?: (e: React.MouseEvent, key: number, toggled: boolean): void; + onTouchTap?: (e: React.MouseEvent, key: number) => void; + onToggle?: (e: React.MouseEvent, key: number, toggled: boolean) => void; selected?: boolean; active?: boolean; } @@ -752,7 +750,6 @@ declare namespace __MaterialUI { type?: string; rows?: number; inputStyle?: React.CSSProperties; - autoWidth?: boolean; } export class SelectField extends React.Component { } @@ -1098,7 +1095,7 @@ declare namespace __MaterialUI { adjustForCheckbox?: boolean; displaySelectAll?: boolean; enableSelectAll?: boolean; - onSelectAll?: (event: React.MouseEvent) => void;; + onSelectAll?: (event: React.MouseEvent) => void; selectAllSelected?: boolean; } export class TableHeader extends React.Component { @@ -1106,7 +1103,7 @@ declare namespace __MaterialUI { interface TableHeaderColumnProp extends React.Props { columnNumber?: number; - onClick?: (e: React.MouseEvent, column: number): void;; + onClick?: (e: React.MouseEvent, column: number) => void; tooltip?: string; tooltipStyle?: React.CSSProperties; } @@ -1116,12 +1113,12 @@ declare namespace __MaterialUI { interface TableRowProp extends React.Props { 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; + 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; @@ -1133,8 +1130,8 @@ declare namespace __MaterialUI { interface TableRowColumnProp extends React.Props { columnNumber?: number; hoverable?: boolean; - onHover?: (e: React.MouseEvent, column: number): void;; - onHoverExit?: (e: React.MouseEvent, column: number): void;; + onHover?: (e: React.MouseEvent, column: number) => void; + onHoverExit?: (e: React.MouseEvent, column: number) => void; } export class TableRowColumn extends React.Component { } @@ -1290,7 +1287,7 @@ declare namespace __MaterialUI { interface ImmutabilityHelper { merge(base: any, ...args: any[]): any; - mergeItem(obj: any, key: any, newValueObject: any: any; + mergeItem(obj: any, key: any, newValueObject: any): any; push(array: any[], obj: any): any; shift(array: any[]): any; } From 56b5eef102426106de4bd383ff5abedf6a93523c Mon Sep 17 00:00:00 2001 From: Nathan Brown Date: Tue, 22 Sep 2015 13:48:49 -0700 Subject: [PATCH 3/3] Clean up pull-request, keep tests passing. --- material-ui/material-ui-tests.ts | 4 +- material-ui/material-ui-tests.tsx | 2 +- material-ui/material-ui.d.ts | 117 +++++++++++++++++++----------- 3 files changed, 78 insertions(+), 45 deletions(-) diff --git a/material-ui/material-ui-tests.ts b/material-ui/material-ui-tests.ts index 3b8b34702..25a8e8bbe 100644 --- a/material-ui/material-ui-tests.ts +++ b/material-ui/material-ui-tests.ts @@ -137,7 +137,7 @@ class MaterialUiTests extends React.Component<{}, {}> implements React.LinkedSta ]; element = React.createElement(Dialog, {"title": "Dialog With Custom Actions", "actions": customActions, "modal": false, "autoDetectWindowHeight": true, "autoScrollBodyContent": true}, "The actions in this window were passed in as an array of react objects."); // "http://material-ui.com/#/components/dropdown-menu" - var menuItems = [ + var menuItems: __MaterialUI.Menu.MenuItemRequest[] = [ { payload: '1', text: 'Never' }, { payload: '2', text: 'Every Night' }, { payload: '3', text: 'Weeknights' }, @@ -192,7 +192,7 @@ class MaterialUiTests extends React.Component<{}, {}> implements React.LinkedSta element = React.createElement(TextField, {"hintText": "Disabled Hint Text", "disabled": true}); element = React.createElement(TextField, {"hintText": "Disabled Hint Text", "disabled": true, "defaultValue": "Disabled With Value"}); //Select Fields - var arbitraryArrayMenuItems = [ + var arbitraryArrayMenuItems: __MaterialUI.Menu.MenuItemRequest[] = [ { id: 0, name: "zero", diff --git a/material-ui/material-ui-tests.tsx b/material-ui/material-ui-tests.tsx index accae0d71..aa95efc1e 100644 --- a/material-ui/material-ui-tests.tsx +++ b/material-ui/material-ui-tests.tsx @@ -69,7 +69,7 @@ class MaterialUiTests extends React.Component<{}, {}> implements React.LinkedSta let ThemeManager = new mui.Styles.ThemeManager(); ThemeManager.setTheme(ThemeManager.types.LIGHT); ThemeManager.setTheme(ThemeManager.types.DARK); - let muiTheme: __MaterialUI.Styles.CustomTheme = ThemeManager.getCurrentTheme(); + let muiTheme = ThemeManager.getCurrentTheme(); ThemeManager.setComponentThemes({ toggle: { thumbOnColor: "#00bcd4", diff --git a/material-ui/material-ui.d.ts b/material-ui/material-ui.d.ts index 3c582d924..662b6c606 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 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 TimePicker = __MaterialUI.TimePicker; // require('material-ui/lib/time-picker'); + export import TextField = __MaterialUI.TextField; // require('material-ui/lib/text-field'); 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 { @@ -130,7 +130,6 @@ declare namespace __MaterialUI { } interface AppCanvasProp extends React.Props { - } export class AppCanvas extends React.Component { } @@ -164,7 +163,7 @@ declare namespace __MaterialUI { onExpandedChange?: (isExpanded: boolean) => void; style?: React.CSSProperties; } - export class Card extends React.Component { + export class Card extends React.Component { } interface CardActionsProp extends React.Props { @@ -319,11 +318,13 @@ declare namespace __MaterialUI { maxDate?: Date; minDate?: Date; mode?: string; - onDismiss?: Function; - //TODO: typeof e? + onDismiss?: () => void; + + // e is always null onChange?: (e: any, d: Date) => void; + onFocus?: React.FocusEventHandler; - onShow?: Function; + onShow?: () => void; onTouchTap?: React.TouchEventHandler; shouldDisableDate?: (day: Date) => boolean; showYearSelector?: boolean; @@ -338,9 +339,9 @@ declare namespace __MaterialUI { maxDate?: Date; minDate?: Date; onAccept?: (d: Date) => void; - onClickAway?: Function; - onDismiss?: Function; - onShow?: Function; + onClickAway?: () => void; + onDismiss?: () => void; + onShow?: () => void; shouldDisableDate?: (day: Date) => boolean; showYearSelector?: boolean; } @@ -369,9 +370,9 @@ declare namespace __MaterialUI { repositionOnUpdate?: boolean; title?: React.ReactNode; - onClickAway?: Function; - onDismiss?: Function; - onShow?: Function; + onClickAway?: () => void; + onDismiss?: () => void; + onShow?: () => void; } export class Dialog extends React.Component { dismiss(): void; @@ -379,12 +380,13 @@ declare namespace __MaterialUI { } interface DropDownIconProp extends React.Props { - onChange?: Menu.ChangeHandler; - menuItems: Menu.MenuItemProp[]; + menuItems: Menu.MenuItemRequest[]; closeOnMenuItemTouchTap?: boolean; iconStyle?: React.CSSProperties; iconClassName?: string; iconLigature?: string; + + onChange?: Menu.ItemTapEventHandler; } export class DropDownIcon extends React.Component { } @@ -393,7 +395,7 @@ declare namespace __MaterialUI { displayMember?: string; valueMember?: string; autoWidth?: boolean; - menuItems: Menu.MenuItemProp[]; + menuItems: Menu.MenuItemRequest[]; menuItemStyle?: React.CSSProperties; selectedIndex?: number; underlineStyle?: React.CSSProperties; @@ -404,7 +406,7 @@ declare namespace __MaterialUI { valueLink?: ReactLink; value?: number; - onChange?: Menu.ChangeHandler; + onChange?: Menu.ItemTapEventHandler; } export class DropDownMenu extends React.Component { } @@ -501,10 +503,10 @@ declare namespace __MaterialUI { disableSwipeToOpen?: boolean; docked?: boolean; header?: React.ReactElement; - menuItems: Menu.MenuItemProp[]; - onChange?: Menu.ChangeHandler; - onNavOpen?: Function; - onNavClose?: Function; + menuItems: Menu.MenuItemRequest[]; + onChange?: Menu.ItemTapEventHandler; + onNavOpen?: () => void; + onNavClose?: () => void; openRight?: Boolean; selectedIndex?: number; menuItemClassName?: string; @@ -565,17 +567,41 @@ declare namespace __MaterialUI { } } + // Old menu implementation. Being replaced by new "menus". namespace Menu { - interface ChangeHandler { - (e: TouchTapEvent, key: number, payload: MenuItemProp): void; + interface ItemTapEventHandler { + (e: TouchTapEvent, index: number, menuItem: MenuItemRequest): void; } + + // almost extends MenuItemProp, but certain required items are generated in Menu and not passed here. + interface MenuItemRequest extends React.Props { + // use value from MenuItem.Types.* + type?: string; + + text?: string; + data?: string; + payload?: string; + icon?: React.ReactElement; + attribute?: string; + number?: string; + toggle?: boolean; + onTouchTap?: TouchTapEventHandler; + isDisabled?: boolean; + + // for MenuItems.Types.NESTED + items?: MenuItemRequest[]; + + // for custom text or payloads + [propertyName: string]: any; + } + interface MenuProp extends React.Props { index: number; text?: string; - menuItems: MenuItemProp[]; + menuItems: MenuItemRequest[]; zDepth?: number; active?: boolean; - onItemTap?: ChangeHandler; + onItemTap?: ItemTapEventHandler; menuItemStyle?: React.CSSProperties; } export class Menu extends React.Component { @@ -583,6 +609,7 @@ declare namespace __MaterialUI { interface MenuItemProp extends React.Props { index: number; + icon?: React.ReactElement; iconClassName?: string; iconRightClassName?: string; iconStyle?: React.CSSProperties; @@ -597,6 +624,7 @@ declare namespace __MaterialUI { active?: boolean; } export class MenuItem extends React.Component { + static Types: { LINK: string, SUBHEADER: string, NESTED: string, } } } @@ -645,7 +673,7 @@ declare namespace __MaterialUI { style?: React.CSSProperties; value?: string; - onChane: (e: React.FormEvent, selected: string) => void; + onCheck?: (e: React.FormEvent, selected: string) => void; } export class RadioButton extends React.Component { } @@ -730,7 +758,7 @@ declare namespace __MaterialUI { displayMember?: string; valueMember?: string; autoWidth?: boolean; - menuItems: Array<{ text: string, payload: string } | {}>; + menuItems: Menu.MenuItemRequest[]; menuItemStyle?: React.CSSProperties; selectedIndex?: number; underlineStyle?: React.CSSProperties; @@ -741,7 +769,7 @@ declare namespace __MaterialUI { valueLink?: ReactLink; value?: number; - onChange?: (e: TouchTapEvent, selectedIndex: number, menuItem: any) => void; + onChange?: Menu.ItemTapEventHandler; onEnterKeyDown?: React.KeyboardEventHandler; // own properties @@ -1013,8 +1041,8 @@ declare namespace __MaterialUI { action?: string; autoHideDuration?: number; onActionTouchTap?: React.TouchEventHandler; - onShow?: Function; - onDismiss?: Function; + onShow?: () => void; + onDismiss?: () => void; openOnMount?: boolean; } export class Snackbar extends React.Component { @@ -1024,10 +1052,13 @@ declare namespace __MaterialUI { interface TabProp extends React.Props { label?: string; value?: string; - - handleTouchTap?: React.TouchEventHandler; selected?: boolean; width?: string; + + // Called by Tabs component + onActive?: (tab: Tab) => void; + + onTouchTap?: (value: string, e: TouchTapEvent, tab: Tab) => void; } export class Tab extends React.Component { } @@ -1041,7 +1072,6 @@ declare namespace __MaterialUI { 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 { @@ -1162,8 +1192,11 @@ declare namespace __MaterialUI { defaultTime?: Date; format?: string; pedantic?: boolean; - onShow?: Function; - onDismiss?: Function; + onFocus?: React.FocusEventHandler; + onTouchTap?: TouchTapEventHandler; + onChange?: (e: any, time: Date) => void; + onShow?: () => void; + onDismiss?: () => void; } export class TimePicker extends React.Component { } @@ -1288,8 +1321,8 @@ declare namespace __MaterialUI { interface ImmutabilityHelper { merge(base: any, ...args: any[]): any; mergeItem(obj: any, key: any, newValueObject: any): any; - push(array: any[], obj: any): any; - shift(array: any[]): any; + push(array: any[], obj: any): any[]; + shift(array: any[]): any[]; } export var ImmutabilityHelper: ImmutabilityHelper; @@ -1360,7 +1393,7 @@ declare namespace __MaterialUI { width?: string | number; zDepth?: number; } - export class Menu extends React.Component{ + export class Menu extends React.Component{ } interface MenuItemProp extends React.Props { @@ -1372,21 +1405,21 @@ declare namespace __MaterialUI { leftIcon?: React.ReactElement; primaryText?: string | React.ReactElement; rightIcon?: React.ReactElement; - secondaryText?: string | React.ReactElement; + secondaryText?: React.ReactNode; value?: string; onEscKeyDown?: React.KeyboardEventHandler; onItemTouchTap?: (e: TouchTapEvent, item: React.ReactElement) => void; onChange?: (e: React.FormEvent, value: string) => void; } - export class MenuItem extends React.Component{ + export class MenuItem extends React.Component{ } interface MenuDividerProp extends React.Props { inset?: boolean; style?: React.CSSProperties; } - export class MenuDivider extends React.Component{ + export class MenuDivider extends React.Component{ } } } // __MaterialUI