declarations
Version:
[](https://www.npmjs.com/package/declarations)
1,303 lines (1,179 loc) • 72.4 kB
TypeScript
// Type definitions for material-ui v0.11.1
// Project: https://github.com/callemall/material-ui
// Definitions by: Nathan Brown <https://github.com/ngbrown>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
///<reference path='../../react/react-0.13.3.d.ts' />
declare module "material-ui" {
// The reason for exporting the namespace types (__MaterialUI.*) is to also export the type for casting variable.
export import AppBar = __MaterialUI.AppBar; // require('material-ui/lib/app-bar');
export import AppCanvas = __MaterialUI.AppCanvas; // require('material-ui/lib/app-canvas');
export import Avatar = __MaterialUI.Avatar; // require('material-ui/lib/avatar');
export import BeforeAfterWrapper = __MaterialUI.BeforeAfterWrapper; // require('material-ui/lib/before-after-wrapper');
export import Card = __MaterialUI.Card.Card; // require('material-ui/lib/card/card');
export import CardActions = __MaterialUI.Card.CardActions; // require('material-ui/lib/card/card-actions');
export import CardExpandable = __MaterialUI.Card.CardExpandable; // require('material-ui/lib/card/card-expandable');
export import CardHeader = __MaterialUI.Card.CardHeader; // require('material-ui/lib/card/card-header');
export import CardMedia = __MaterialUI.Card.CardMedia; // require('material-ui/lib/card/card-media');
export import CardText = __MaterialUI.Card.CardText; // require('material-ui/lib/card/card-text');
export import CardTitle = __MaterialUI.Card.CardTitle; // require('material-ui/lib/card/card-title');
export import Checkbox = __MaterialUI.Checkbox; // require('material-ui/lib/checkbox');
export import CircularProgress = __MaterialUI.CircularProgress; // require('material-ui/lib/circular-progress');
export import ClearFix = __MaterialUI.ClearFix; // require('material-ui/lib/clearfix');
export import DatePicker = __MaterialUI.DatePicker.DatePicker; // require('material-ui/lib/date-picker/date-picker');
export import DatePickerDialog = __MaterialUI.DatePicker.DatePickerDialog; // require('material-ui/lib/date-picker/date-picker-dialog');
export import Dialog = __MaterialUI.Dialog // require('material-ui/lib/dialog');
export import DropDownIcon = __MaterialUI.DropDownIcon; // require('material-ui/lib/drop-down-icon');
export import DropDownMenu = __MaterialUI.DropDownMenu; // require('material-ui/lib/drop-down-menu');
export import EnhancedButton = __MaterialUI.EnhancedButton; // require('material-ui/lib/enhanced-button');
export import FlatButton = __MaterialUI.FlatButton; // require('material-ui/lib/flat-button');
export import FloatingActionButton = __MaterialUI.FloatingActionButton; // require('material-ui/lib/floating-action-button');
export import FontIcon = __MaterialUI.FontIcon; // require('material-ui/lib/font-icon');
export import IconButton = __MaterialUI.IconButton; // require('material-ui/lib/icon-button');
export import IconMenu = __MaterialUI.Menus.IconMenu; // require('material-ui/lib/menus/icon-menu');
export import LeftNav = __MaterialUI.LeftNav; // require('material-ui/lib/left-nav');
export import LinearProgress = __MaterialUI.LinearProgress; // require('material-ui/lib/linear-progress');
export import List = __MaterialUI.Lists.List; // require('material-ui/lib/lists/list');
export import ListDivider = __MaterialUI.Lists.ListDivider; // require('material-ui/lib/lists/list-divider');
export import ListItem = __MaterialUI.Lists.ListItem; // require('material-ui/lib/lists/list-item');
export import Menu = __MaterialUI.Menu.Menu; // require('material-ui/lib/menu/menu');
export import MenuItem = __MaterialUI.Menu.MenuItem; // require('material-ui/lib/menu/menu-item');
export import Mixins = __MaterialUI.Mixins; // require('material-ui/lib/mixins/');
export import Overlay = __MaterialUI.Overlay; // require('material-ui/lib/overlay');
export import Paper = __MaterialUI.Paper; // require('material-ui/lib/paper');
export import RadioButton = __MaterialUI.RadioButton; // require('material-ui/lib/radio-button');
export import RadioButtonGroup = __MaterialUI.RadioButtonGroup; // require('material-ui/lib/radio-button-group');
export import RaisedButton = __MaterialUI.RaisedButton; // require('material-ui/lib/raised-button');
export import RefreshIndicator = __MaterialUI.RefreshIndicator; // require('material-ui/lib/refresh-indicator');
export import Ripples = __MaterialUI.Ripples; // require('material-ui/lib/ripples/');
export import SelectField = __MaterialUI.SelectField; // require('material-ui/lib/select-field');
export import Slider = __MaterialUI.Slider; // require('material-ui/lib/slider');
export import SvgIcon = __MaterialUI.SvgIcon; // require('material-ui/lib/svg-icon');
import NavigationMenu = require('material-ui/lib/svg-icons/navigation/menu');
import NavigationChevronLeft = require('material-ui/lib/svg-icons/navigation/chevron-left');
import NavigationChevronRight = require('material-ui/lib/svg-icons/navigation/chevron-right');
export var Icons: {
NavigationMenu: __MaterialUI.NavigationMenu;
NavigationChevronLeft: __MaterialUI.NavigationChevronLeft;
NavigationChevronRight: __MaterialUI.NavigationChevronRight;
};
export import Styles = __MaterialUI.Styles; // require('material-ui/lib/styles/');
export import Snackbar = __MaterialUI.Snackbar; // require('material-ui/lib/snackbar');
export import Tab = __MaterialUI.Tabs.Tab; // require('material-ui/lib/tabs/tab');
export import Tabs = __MaterialUI.Tabs.Tabs; // require('material-ui/lib/tabs/tabs');
export import Table = __MaterialUI.Table.Table; // require('material-ui/lib/table/table');
export import TableBody = __MaterialUI.Table.TableBody; // require('material-ui/lib/table/table-body');
export import TableFooter = __MaterialUI.Table.TableFooter; // require('material-ui/lib/table/table-footer');
export import TableHeader = __MaterialUI.Table.TableHeader; // require('material-ui/lib/table/table-header');
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 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');
export import ToolbarTitle = __MaterialUI.Toolbar.ToolbarTitle; // require('material-ui/lib/toolbar/toolbar-title');
export import Tooltip = __MaterialUI.Tooltip; // require('material-ui/lib/tooltip');
export import Utils = __MaterialUI.Utils; // require('material-ui/lib/utils/');
// export type definitions
export import TouchTapEvent = __MaterialUI.TouchTapEvent;
export import TouchTapEventHandler = __MaterialUI.TouchTapEventHandler;
export import DialogAction = __MaterialUI.DialogAction;
}
declare namespace __MaterialUI {
import React = __React;
// ReactLink is from "react/addons"
interface ReactLink<T> {
value: T;
requestChange(newValue: T): void;
}
// What's common between React.TouchEvent and React.MouseEvent
interface TouchTapEvent extends React.SyntheticEvent {
altKey: boolean;
ctrlKey: boolean;
getModifierState(key: string): boolean;
metaKey: boolean;
shiftKey: boolean;
}
// What's common between React.TouchEventHandler and React.MouseEventHandler
interface TouchTapEventHandler extends React.EventHandler<TouchTapEvent> { }
// more specific than React.HTMLAttributes
interface AppBarProps extends React.Props<AppBar> {
iconClassNameLeft?: string;
iconClassNameRight?: string;
iconElementLeft?: React.ReactElement<any>;
iconElementRight?: React.ReactElement<any>;
iconStyleRight?: string;
style?: React.CSSProperties;
showMenuIconButton?: boolean;
title?: React.ReactNode;
zDepth?: number;
onLeftIconButtonTouchTap?: TouchTapEventHandler;
onRightIconButtonTouchTap?: TouchTapEventHandler;
}
export class AppBar extends React.Component<AppBarProps, {}>{
}
interface AppCanvasProps extends React.Props<AppCanvas> {
}
export class AppCanvas extends React.Component<AppCanvasProps, {}> {
}
interface AvatarProps extends React.Props<Avatar> {
icon?: React.ReactElement<any>;
backgroundColor?: string;
color?: string;
size?: number;
src?: string;
style?: React.CSSProperties;
}
export class Avatar extends React.Component<AvatarProps, {}> {
}
interface BeforeAfterWrapperProps extends React.Props<BeforeAfterWrapper> {
beforeStyle?: React.CSSProperties;
afterStyle?: React.CSSProperties;
beforeElementType?: string;
afterElementType?: string;
elementType?: string;
}
export class BeforeAfterWrapper extends React.Component<BeforeAfterWrapperProps, {}> {
}
namespace Card {
interface CardProps extends React.Props<Card> {
expandable?: boolean;
initiallyExpanded?: boolean;
onExpandedChange?: (isExpanded: boolean) => void;
style?: React.CSSProperties;
}
export class Card extends React.Component<CardProps, {}> {
}
interface CardActionsProps extends React.Props<CardActions> {
expandable?: boolean;
showExpandableButton?: boolean;
}
export class CardActions extends React.Component<CardActionsProps, {}> {
}
interface CardExpandableProps extends React.Props<CardExpandable> {
onExpanding?: (isExpanded: boolean) => void;
expanded?: boolean;
}
export class CardExpandable extends React.Component<CardExpandableProps, {}> {
}
interface CardHeaderProps extends React.Props<CardHeader> {
expandable?: boolean;
showExpandableButton?: boolean;
title?: string | React.ReactElement<any>;
titleColor?: string;
titleStyle?: React.CSSProperties;
subtitle?: string | React.ReactElement<any>;
subtitleColor?: string;
subtitleStyle?: React.CSSProperties;
textStyle?: React.CSSProperties;
style?: React.CSSProperties;
avatar: React.ReactElement<any> | string;
}
export class CardHeader extends React.Component<CardHeaderProps, {}> {
}
interface CardMediaProps extends React.Props<CardMedia> {
expandable?: boolean;
overlay?: React.ReactNode;
overlayStyle?: React.CSSProperties;
overlayContainerStyle?: React.CSSProperties;
overlayContentStyle?: React.CSSProperties;
mediaStyle?: React.CSSProperties;
style?: React.CSSProperties;
}
export class CardMedia extends React.Component<CardMediaProps, {}> {
}
interface CardTextProps extends React.Props<CardText> {
expandable?: boolean;
color?: string;
style?: React.CSSProperties;
}
export class CardText extends React.Component<CardTextProps, {}> {
}
interface CardTitleProps extends React.Props<CardTitle> {
expandable?: boolean;
showExpandableButton?: boolean;
title?: string | React.ReactElement<any>;
titleColor?: string;
titleStyle?: React.CSSProperties;
subtitle?: string | React.ReactElement<any>;
subtitleColor?: string;
subtitleStyle?: React.CSSProperties;
textStyle?: React.CSSProperties;
style?: React.CSSProperties;
}
export class CardTitle extends React.Component<CardTitleProps, {}> {
}
}
// what's not commonly overridden by Checkbox, RadioButton, or Toggle
interface CommonEnhancedSwitchProps<T> extends React.HTMLAttributesBase<T> {
// <input/> is root element
id?: string;
iconStyle?: React.CSSProperties;
labelStyle?: React.CSSProperties;
rippleStyle?: React.CSSProperties;
thumbStyle?: React.CSSProperties;
trackStyle?: React.CSSProperties;
name?: string;
value?: string;
label?: string;
required?: boolean;
disabled?: boolean;
defaultSwitched?: boolean;
disableFocusRipple?: boolean;
disableTouchRipple?: boolean;
}
interface EnhancedSwitchProps extends CommonEnhancedSwitchProps<EnhancedSwitch> {
// <input/> is root element
inputType: string;
switchElement: React.ReactElement<any>;
onParentShouldUpdate: (isInputChecked: boolean) => void;
switched: boolean;
rippleColor?: string;
onSwitch?: (e: React.MouseEvent, isInputChecked: boolean) => void;
labelPosition?: string;
}
export class EnhancedSwitch extends React.Component<EnhancedSwitchProps, {}> {
isSwitched(): boolean;
setSwitched(newSwitchedValue: boolean): void;
getValue(): any;
isKeyboardFocused(): boolean;
}
interface CheckboxProps extends CommonEnhancedSwitchProps<Checkbox> {
// <EnhancedSwitch/> is root element
checkedIcon?: React.ReactElement<{ style?: React.CSSProperties }>; // Normally an SvgIcon
defaultChecked?: boolean;
iconStyle?: React.CSSProperties;
label?: string;
labelStyle?: React.CSSProperties;
labelPosition?: string;
style?: React.CSSProperties;
checked?: boolean;
unCheckedIcon?: React.ReactElement<{ style?: React.CSSProperties }>; // Normally an SvgIcon
disabled?: boolean;
valueLink?: ReactLink<boolean>;
checkedLink?: ReactLink<boolean>;
onCheck?: (event: React.MouseEvent, checked: boolean) => void;
}
export class Checkbox extends React.Component<CheckboxProps, {}> {
isChecked(): void;
setChecked(newCheckedValue: boolean): void;
}
interface CircularProgressProps extends React.Props<CircularProgress> {
mode?: string;
value?: number;
min?: number;
max?: number;
size?: number;
color?: string;
innerStyle?: React.CSSProperties;
}
export class CircularProgress extends React.Component<CircularProgressProps, {}> {
}
interface ClearFixProps extends React.Props<ClearFix> {
}
export class ClearFix extends React.Component<ClearFixProps, {}> {
}
namespace DatePicker {
interface DatePickerProps extends React.Props<DatePicker> {
autoOk?: boolean;
defaultDate?: Date;
formatDate?: string;
hideToolbarYearChange?: boolean;
maxDate?: Date;
minDate?: Date;
mode?: string;
onDismiss?: () => void;
// e is always null
onChange?: (e: any, d: Date) => void;
onFocus?: React.FocusEventHandler;
onShow?: () => void;
onTouchTap?: React.TouchEventHandler;
shouldDisableDate?: (day: Date) => boolean;
showYearSelector?: boolean;
textFieldStyle?: React.CSSProperties;
}
export class DatePicker extends React.Component<DatePickerProps, {}> {
}
interface DatePickerDialogProps extends React.Props<DatePickerDialog> {
disableYearSelection?: boolean;
initialDate?: Date;
maxDate?: Date;
minDate?: Date;
onAccept?: (d: Date) => void;
onClickAway?: () => void;
onDismiss?: () => void;
onShow?: () => void;
shouldDisableDate?: (day: Date) => boolean;
showYearSelector?: boolean;
}
export class DatePickerDialog extends React.Component<DatePickerDialogProps, {}> {
}
}
export interface DialogAction {
text: string;
ref?: string;
onTouchTap?: TouchTapEventHandler;
onClick?: React.MouseEventHandler;
}
interface DialogProps extends React.Props<Dialog> {
actions?: Array<DialogAction | React.ReactElement<any>>;
actionFocus?: string;
autoDetectWindowHeight?: boolean;
autoScrollBodyContent?: boolean;
bodyStyle?: React.CSSProperties;
contentClassName?: string;
contentInnerStyle?: React.CSSProperties;
contentStyle?: React.CSSProperties;
modal?: boolean;
openImmediately?: boolean;
repositionOnUpdate?: boolean;
title?: React.ReactNode;
onClickAway?: () => void;
onDismiss?: () => void;
onShow?: () => void;
}
export class Dialog extends React.Component<DialogProps, {}> {
dismiss(): void;
show(): void;
}
interface DropDownIconProps extends React.Props<DropDownIcon> {
menuItems: Menu.MenuItemRequest[];
closeOnMenuItemTouchTap?: boolean;
iconStyle?: React.CSSProperties;
iconClassName?: string;
iconLigature?: string;
onChange?: Menu.ItemTapEventHandler;
}
export class DropDownIcon extends React.Component<DropDownIconProps, {}> {
}
interface DropDownMenuProps extends React.Props<DropDownMenu> {
displayMember?: string;
valueMember?: string;
autoWidth?: boolean;
menuItems: Menu.MenuItemRequest[];
menuItemStyle?: React.CSSProperties;
selectedIndex?: number;
underlineStyle?: React.CSSProperties;
iconStyle?: React.CSSProperties;
labelStyle?: React.CSSProperties;
style?: React.CSSProperties;
disabled?: boolean;
valueLink?: ReactLink<any>;
value?: number;
onChange?: Menu.ItemTapEventHandler;
}
export class DropDownMenu extends React.Component<DropDownMenuProps, {}> {
}
// non generally overridden elements of EnhancedButton
interface SharedEnhancedButtonProps<T> extends React.HTMLAttributesBase<T> {
centerRipple?: boolean;
containerElement?: string | React.ReactElement<any>;
disabled?: boolean;
disableFocusRipple?: boolean;
disableKeyboardFocus?: boolean;
disableTouchRipple?: boolean;
keyboardFocused?: boolean;
linkButton?: boolean;
focusRippleColor?: string;
focusRippleOpacity?: number;
touchRippleOpacity?: number;
tabIndex?: number;
onBlur?: React.FocusEventHandler;
onFocus?: React.FocusEventHandler;
onKeyboardFocus?: (e: React.FocusEvent, isKeyboardFocused: boolean) => void;
onKeyDown?: React.KeyboardEventHandler;
onKeyUp?: React.KeyboardEventHandler;
onMouseEnter?: React.MouseEventHandler;
onMouseLeave?: React.MouseEventHandler;
onTouchStart?: React.TouchEventHandler;
onTouchEnd?: React.TouchEventHandler;
onTouchTap?: TouchTapEventHandler;
}
interface EnhancedButtonProps extends SharedEnhancedButtonProps<EnhancedButton> {
touchRippleColor?: string;
focusRippleColor?: string;
style?: React.CSSProperties;
}
export class EnhancedButton extends React.Component<EnhancedButtonProps, {}> {
}
interface FlatButtonProps extends SharedEnhancedButtonProps<FlatButton> {
hoverColor?: string;
label?: string;
labelPosition?: string;
labelStyle?: React.CSSProperties;
linkButton?: boolean;
primary?: boolean;
secondary?: boolean;
rippleColor?: string;
style?: React.CSSProperties;
}
export class FlatButton extends React.Component<FlatButtonProps, {}> {
}
interface FloatingActionButtonProps extends SharedEnhancedButtonProps<FloatingActionButton> {
backgroundColor?: string;
disabled?: boolean;
disabledColor?: string;
iconClassName?: string;
iconStyle?: React.CSSProperties;
mini?: boolean;
secondary?: boolean;
style?: React.CSSProperties;
}
export class FloatingActionButton extends React.Component<FloatingActionButtonProps, {}> {
}
interface FontIconProps extends React.Props<FontIcon> {
color?: string;
hoverColor?: string;
onMouseLeave?: React.MouseEventHandler;
onMouseEnter?: React.MouseEventHandler;
style?: React.CSSProperties;
className?: string;
}
export class FontIcon extends React.Component<FontIconProps, {}> {
}
interface IconButtonProps extends SharedEnhancedButtonProps<IconButton> {
iconClassName?: string;
iconStyle?: React.CSSProperties;
style?: React.CSSProperties;
tooltip?: string;
tooltipPosition?: string;
tooltipStyles?: React.CSSProperties;
touch?: boolean;
onBlur?: React.FocusEventHandler;
onFocus?: React.FocusEventHandler;
}
export class IconButton extends React.Component<IconButtonProps, {}> {
}
interface LeftNavProps extends React.Props<LeftNav> {
disableSwipeToOpen?: boolean;
docked?: boolean;
header?: React.ReactElement<any>;
menuItems: Menu.MenuItemRequest[];
onChange?: Menu.ItemTapEventHandler;
onNavOpen?: () => void;
onNavClose?: () => void;
openRight?: Boolean;
selectedIndex?: number;
menuItemClassName?: string;
menuItemClassNameSubheader?: string;
menuItemClassNameLink?: string;
}
export class LeftNav extends React.Component<LeftNavProps, {}> {
}
interface LinearProgressProps extends React.Props<LinearProgress> {
mode?: string;
value?: number;
min?: number;
max?: number;
}
export class LinearProgress extends React.Component<LinearProgressProps, {}> {
}
namespace Lists {
interface ListProps extends React.Props<List> {
insetSubheader?: boolean;
subheader?: string;
subheaderStyle?: React.CSSProperties;
zDepth?: number;
}
export class List extends React.Component<ListProps, {}> {
}
interface ListDividerProps extends React.Props<ListDivider> {
inset?: boolean;
}
export class ListDivider extends React.Component<ListDividerProps, {}> {
}
interface ListItemProps extends React.Props<ListItem> {
autoGenerateNestedIndicator?: boolean;
disableKeyboardFocus?: boolean;
initiallyOpen?: boolean;
innerDivStyle?: React.CSSProperties;
insetChildren?: boolean;
innerStyle?: React.CSSProperties;
leftAvatar?: React.ReactElement<any>;
leftCheckbox?: React.ReactElement<any>;
leftIcon?: React.ReactElement<any>;
nestedLevel?: number;
nestedItems?: React.ReactElement<any>[];
onKeyboardFocus?: React.FocusEventHandler;
onNestedListToggle?: (item: ListItem) => void;
rightAvatar?: React.ReactElement<any>;
rightIcon?: React.ReactElement<any>;
rightIconButton?: React.ReactElement<any>;
rightToggle?: React.ReactElement<any>;
primaryText?: React.ReactNode;
secondaryText?: React.ReactNode;
secondaryTextLines?: number;
}
export class ListItem extends React.Component<ListItemProps, {}> {
}
}
// Old menu implementation. Being replaced by new "menus".
namespace Menu {
interface ItemTapEventHandler {
(e: TouchTapEvent, index: number, menuItem: MenuItemRequest): void;
}
// almost extends MenuItemProps, but certain required items are generated in Menu and not passed here.
interface MenuItemRequest extends React.Props<MenuItem> {
// use value from MenuItem.Types.*
type?: string;
text?: string;
data?: string;
payload?: string;
icon?: React.ReactElement<any>;
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 MenuProps extends React.Props<Menu> {
index: number;
text?: string;
menuItems: MenuItemRequest[];
zDepth?: number;
active?: boolean;
onItemTap?: ItemTapEventHandler;
menuItemStyle?: React.CSSProperties;
}
export class Menu extends React.Component<MenuProps, {}> {
}
interface MenuItemProps extends React.Props<MenuItem> {
index: number;
icon?: React.ReactElement<any>;
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<MenuItemProps, {}> {
static Types: { LINK: string, SUBHEADER: string, NESTED: string, }
}
}
export namespace Mixins {
interface ClickAwayable extends React.Mixin<any, any> {
}
var ClickAwayable: ClickAwayable;
interface WindowListenable extends React.Mixin<any, any> {
}
var WindowListenable: WindowListenable;
interface StylePropable extends React.Mixin<any, any> {
}
var StylePropable: StylePropable
interface StyleResizable extends React.Mixin<any, any> {
}
var StyleResizable: StyleResizable
}
interface OverlayProps extends React.Props<Overlay> {
autoLockScrolling?: boolean;
show?: boolean;
transitionEnabled?: boolean;
}
export class Overlay extends React.Component<OverlayProps, {}> {
}
interface PaperProps extends React.Props<Paper> {
circle?: boolean;
rounded?: boolean;
transitionEnabled?: boolean;
zDepth?: number;
}
export class Paper extends React.Component<PaperProps, {}> {
}
interface RadioButtonProps extends CommonEnhancedSwitchProps<RadioButton> {
// <EnhancedSwitch/> is root element
defaultChecked?: boolean;
iconStyle?: React.CSSProperties;
label?: string;
labelStyle?: React.CSSProperties;
labelPosition?: string;
style?: React.CSSProperties;
value?: string;
onCheck?: (e: React.FormEvent, selected: string) => void;
}
export class RadioButton extends React.Component<RadioButtonProps, {}> {
}
interface RadioButtonGroupProps extends React.Props<RadioButtonGroup> {
defaultSelected?: string;
labelPosition?: string;
name: string;
style?: React.CSSProperties;
valueSelected?: string;
onChange?: (e: React.FormEvent, selected: string) => void;
}
export class RadioButtonGroup extends React.Component<RadioButtonGroupProps, {}> {
getSelectedValue(): string;
setSelectedValue(newSelectionValue: string): void;
clearValue(): void;
}
interface RaisedButtonProps extends SharedEnhancedButtonProps<RaisedButton> {
className?: string;
disabled?: boolean;
label?: string;
primary?: boolean;
secondary?: boolean;
labelStyle?: React.CSSProperties;
backgroundColor?: string;
labelColor?: string;
disabledBackgroundColor?: string;
disabledLabelColor?: string;
fullWidth?: boolean;
}
export class RaisedButton extends React.Component<RaisedButtonProps, {}> {
}
interface RefreshIndicatorProps extends React.Props<RefreshIndicator> {
left: number;
percentage?: number;
size?: number;
status?: string;
top: number;
}
export class RefreshIndicator extends React.Component<RefreshIndicatorProps, {}> {
}
namespace Ripples {
interface CircleRippleProps extends React.Props<CircleRipple> {
color?: string;
opacity?: number;
}
export class CircleRipple extends React.Component<CircleRippleProps, {}> {
}
interface FocusRippleProps extends React.Props<FocusRipple> {
color?: string;
innerStyle?: React.CSSProperties;
opacity?: number;
show?: boolean;
}
export class FocusRipple extends React.Component<FocusRippleProps, {}> {
}
interface TouchRippleProps extends React.Props<TouchRipple> {
centerRipple?: boolean;
color?: string;
opacity?: number;
}
export class TouchRipple extends React.Component<TouchRippleProps, {}> {
}
}
interface SelectFieldProps extends React.Props<SelectField> {
// passed to TextField
errorStyle?: React.CSSProperties;
errorText?: string;
floatingLabelText?: string;
floatingLabelStyle?: React.CSSProperties;
fullWidth?: boolean;
hintText?: string | React.ReactElement<any>;
// passed to DropDownMenu
displayMember?: string;
valueMember?: string;
autoWidth?: boolean;
menuItems: Menu.MenuItemRequest[];
menuItemStyle?: React.CSSProperties;
selectedIndex?: number;
underlineStyle?: React.CSSProperties;
iconStyle?: React.CSSProperties;
labelStyle?: React.CSSProperties;
style?: React.CSSProperties;
disabled?: boolean;
valueLink?: ReactLink<any>;
value?: number;
onChange?: Menu.ItemTapEventHandler;
onEnterKeyDown?: React.KeyboardEventHandler;
// own properties
selectFieldRoot?: string;
multiLine?: boolean;
type?: string;
rows?: number;
inputStyle?: React.CSSProperties;
}
export class SelectField extends React.Component<SelectFieldProps, {}> {
}
interface SliderProps extends React.Props<Slider> {
name: string;
defaultValue?: number;
description?: string;
error?: string;
max?: number;
min?: number;
required?: boolean;
step?: number;
value?: number;
}
export class Slider extends React.Component<SliderProps, {}> {
}
interface SvgIconProps extends React.Props<SvgIcon> {
color?: string;
hoverColor?: string;
viewBox?: string;
}
export class SvgIcon extends React.Component<SvgIconProps, {}> {
}
interface NavigationMenuProps extends React.Props<NavigationMenu> {
}
export class NavigationMenu extends React.Component<NavigationMenuProps, {}> {
}
interface NavigationChevronLeftProps extends React.Props<NavigationChevronLeft> {
}
export class NavigationChevronLeft extends React.Component<NavigationChevronLeftProps, {}> {
}
interface NavigationChevronRightProps extends React.Props<NavigationChevronRight> {
}
export class NavigationChevronRight extends React.Component<NavigationChevronRightProps, {}> {
}
export namespace Styles {
interface AutoPrefix {
all(styles: React.CSSProperties): React.CSSProperties;
set(style: React.CSSProperties, key: string, value: string | number): void;
single(key: string): string;
singleHyphened(key: string): string;
}
export var AutoPrefix: AutoPrefix;
interface Spacing {
iconSize?: number;
desktopGutter?: number;
desktopGutterMore?: number;
desktopGutterLess?: number;
desktopGutterMini?: number;
desktopKeylineIncrement?: number;
desktopDropDownMenuItemHeight?: number;
desktopDropDownMenuFontSize?: number;
desktopLeftNavMenuItemHeight?: number;
desktopSubheaderHeight?: number;
desktopToolbarHeight?: number;
}
interface ThemePalette {
primary1Color?: string,
primary2Color?: string,
primary3Color?: string,
accent1Color?: string,
accent2Color?: string,
accent3Color?: string,
textColor?: string,
canvasColor?: string,
borderColor?: string,
disabledColor?: string
}
interface Theme {
appBar?: {
color?: string,
textColor?: string,
height?: number
},
button?: {
height?: number,
minWidth?: number,
iconButtonSize?: number
},
checkbox?: {
boxColor?: string,
checkedColor?: string,
requiredColor?: string,
disabledColor?: string,
labelColor?: string,
labelDisabledColor?: string
},
datePicker?: {
color?: string,
textColor?: string,
calendarTextColor?: string,
selectColor?: string,
selectTextColor?: string,
},
dropDownMenu?: {
accentColor?: string,
},
flatButton?: {
color?: string,
textColor?: string,
primaryTextColor?: string,
secondaryTextColor?: string,
disabledColor?: string
},
floatingActionButton?: {
buttonSize?: number,
miniSize?: number,
color?: string,
iconColor?: string,
secondaryColor?: string,
secondaryIconColor?: string,
disabledColor?: string,
disabledTextColor?: string
},
leftNav?: {
width?: number,
color?: string,
},
menu?: {
backgroundColor?: string,
containerBackgroundColor?: string,
},
menuItem?: {
dataHeight?: number,
height?: number,
hoverColor?: string,
padding?: number,
selectedTextColor?: string,
},
menuSubheader?: {
padding?: number,
borderColor?: string,
textColor?: string,
},
paper?: {
backgroundColor?: string,
},
radioButton?: {
borderColor?: string,
backgroundColor?: string,
checkedColor?: string,
requiredColor?: string,
disabledColor?: string,
size?: number,
labelColor?: string,
labelDisabledColor?: string
},
raisedButton?: {
color?: string,
textColor?: string,
primaryColor?: string,
primaryTextColor?: string,
secondaryColor?: string,
secondaryTextColor?: string,
disabledColor?: string,
disabledTextColor?: string
},
slider?: {
trackSize?: number,
trackColor?: string,
trackColorSelected?: string,
handleSize?: number,
handleSizeActive?: number,
handleSizeDisabled?: number,
handleColorZero?: string,
handleFillColor?: string,
selectionColor?: string,
rippleColor?: string,
},
snackbar?: {
textColor?: string,
backgroundColor?: string,
actionColor?: string,
},
toggle?: {
thumbOnColor?: string,
thumbOffColor?: string,
thumbDisabledColor?: string,
thumbRequiredColor?: string,
trackOnColor?: string,
trackOffColor?: string,
trackDisabledColor?: string,
trackRequiredColor?: string,
labelColor?: string,
labelDisabledColor?: string
},
toolbar?: {
backgroundColor?: string,
height?: number,
titleFontSize?: number,
iconColor?: string,
separatorColor?: string,
menuHoverColor?: string,
}
}
interface CustomTheme {
spacing?: Spacing;
contentFontFamily?: string;
getPalette(): ThemePalette;
getComponentThemes(palette: ThemePalette, spacing: Spacing): Theme;
}
export class ThemeManager {
static: boolean;
spacing: Spacing;
palette: ThemePalette;
component: Theme;
contentFontFamily: string;
template: CustomTheme;
types: {
LIGHT: CustomTheme;
DARK: 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 {
easeOut(duration?: string, property?: string | string[], delay?: string, easeFunction?: string): string;
create(duration?: string, property?: string, delay?: string, easeFunction?: string): string;
easeOutFunction: string;
easeInOutFunction: string;
}
export var Transitions: Transitions;
interface Typography {
textFullBlack:string;
textDarkBlack: string;
textLightBlack: string;
textMinBlack: string;
textFullWhite: string;
textDarkWhite: string;
textLightWhite: string;
// font weight
fontWeightLight: number;
fontWeightNormal: number;
fontWeightMedium: number;
fontStyleButtonFontSize: number;
}
export var Typography: Typography;
}
interface SnackbarProps extends React.Props<Snackbar> {
message: string;
action?: string;
autoHideDuration?: number;
onActionTouchTap?: React.TouchEventHandler;
onShow?: () => void;
onDismiss?: () => void;
openOnMount?: boolean;
}
export class Snackbar extends React.Component<SnackbarProps, {}> {
}
namespace Tabs {
interface TabProps extends React.Props<Tab> {
label?: string;
value?: string;
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<TabProps, {}> {
}
interface TabsProps extends React.Props<Tabs> {
contentContainerStyle?: React.CSSProperties;
initialSelectedIndex?: number;
inkBarStyle?: React.CSSProperties;
style?: React.CSSProperties;
tabItemContainerStyle?: React.CSSProperties;
tabWidth?: number;
value?: string | number;
onChange?: (value: string | number, e: React.FormEvent, tab: Tab) => void;
}
export class Tabs extends React.Component<TabsProps, {}> {
}
}
namespace Table {
interface TableProps extends React.Props<Table> {
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<TableProps, {}> {
}
interface TableBodyProps extends React.Props<TableBody> {
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<TableBodyProps, {}> {
}
interface TableFooterProps extends React.Props<TableFooter> {
adjustForCheckbox?: boolean;
}
export class TableFooter extends React.Component<TableFooterProps, {}> {
}
interface TableHeaderProps extends React.Props<TableHeader> {
adjustForCheckbox?: boolean;
displaySelectAll?: boolean;
enableSelectAll?: boolean;
onSelectAll?: (event: React.MouseEvent) => void;
selectAllSelected?: boolean;
}
export class TableHeader extends React.Component<TableHeaderProps, {}> {
}
interface TableHeaderColumnProps extends React.Props<TableHeaderColumn> {
columnNumber?: number;
onClick?: (e: React.MouseEvent, column: number) => void;
tooltip?: string;
tooltipStyle?: React.CSSProperties;
}
export class TableHeaderColumn extends React.Component<TableHeaderColumnProps, {}> {
}
interface TableRowProps extends React.Props<TableRow> {
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<TableRowProps, {}> {
}
interface TableRowColumnProps extends React.Props<TableRowColumn> {
columnNumber?: number;
hoverable?: boolean;
onHover?: (e: React.MouseEvent, column: number) => void;
onHoverExit?: (e: React.MouseEvent, column: number) => void;
}
export class TableRowColumn extends React.Component<TableRowColumnProps, {}> {
}
}
interface ThemeProps extends React.Props<Theme> {
theme: Styles.CustomTheme;
}
export class Theme extends React.Component<ThemeProps, {}> {
static theme(customTheme: Styles.CustomTheme): <P>(Component: React.ComponentClass<P>) => React.ComponentClass<P>;
}
interface ToggleProps extends CommonEnhancedSwitchProps<Toggle> {
// <EnhancedSwitch/> is root element
elementStyle?: React.CSSProperties;
labelStyle?: React.CSSProperties;
onToggle?: (e: React.MouseEvent, isInputChecked: boolean) => void;
toggled?: boolean;
defaultToggled?: boolean;
}
export class Toggle extends React.Component<ToggleProps, {}> {
isToggled(): boolean;
setToggled(newToggledValue: boolean): void;
}
interface TimePickerProps extends React.Props<TimePicker> {
defaultTime?: Date;
format?: string;
pedantic?: boolean;
onFocus?: React.FocusEventHandler;
onTouchTap?: TouchTapEventHandler;
onChange?: (e: any, time: Date) => void;
onShow?: () => void;
onDismiss?: () => void;
}
export class TimePicker extends React.Component<TimePickerProps, {}> {
}
interface TextFieldProps extends React.Props<TextField> {
errorStyle?: React.CSSProperties;
errorText?: string;
floatingLabelText?: string;
floatingLabelStyle?: React.CSSProperties;
fullWidth?: boolean;
hintText?: string | React.ReactElement<any>;
id?: string;
inputStyle?: React.CSSProperties;
multiLine?: boolean;
onEnterKeyDown?: React.KeyboardEventHandler;
style?: React.CSSProperties;
rows?: number,
underlineStyle?: React.CSSProperties;
underlineFocusStyle?: React.CSSProperties;
underlineDisabledStyle?: React.CSSProperties;
type?: string;
disabled?: boolean;
isRtl?: boolean;
value?: string;
defaultValue?: string;
valueLink?: ReactLink<string>;
onBlur?: React.FocusEventHandler;
onChange?: React.FormEventHandler;
onFocus?: React.FocusEventHandler;
onKeyDown?: React.KeyboardEventHandler;
}
export class TextField extends React.Component<TextFieldProps, {}> {
blur(): void;
clearValue(): void;
focus(): void;
getValue(): string;
setErrorText(newErrorText: string): void;
setValue(newValue: string): void;
}
namespace Toolbar {
interface ToolbarProps extends React.Props<Toolbar> {
}
export class Toolbar extends React.Component<ToolbarProps, {}> {
}
interface ToolbarGroupProps extends React.Props<ToolbarGroup> {
float?: string;
}
export class ToolbarGroup extends React.Component<ToolbarGroupProps, {}> {
}
interface ToolbarSeparatorProps extends React.Props<ToolbarSeparator> {
}
export class ToolbarSeparator extends React.Component<ToolbarSeparatorProps, {}> {
}
interface ToolbarTitleProps extends React.Props<ToolbarTitle> {
text?: string;
}
export class ToolbarTitle extends React.Component<ToolbarTitleProps, {}> {
}
}
interface TooltipProps extends React.Props<Tooltip> {
label: string;
show?: boolean;
touch?: boolean;
verticalPosition?: string;
horizontalPosition?: string;
}
export class Tooltip extends React.Component<TooltipProps, {}> {
}
export namespace Utils {
interface ContrastLevel {
range: [number, number];
color: string;
}
interface ColorManipulator {
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: () => void): void;
onAnimationEnd(el: Element, callback: () => void): void;
}
export var CssEvent: CssEvent;
interface Dom {
isDescendant(parent: Node, child: Node): boolean;
offset(el: Element): { top: number, left: number };
getStyleAttributeAsNumber(el: HTMLElement, attr: string): number;
addClass(el: Element, className: string): void;
removeClass(el: Elem