diff --git a/react-addons/react-addons.d.ts b/react-addons/react-addons.d.ts deleted file mode 100644 index 245d339dbb..0000000000 --- a/react-addons/react-addons.d.ts +++ /dev/null @@ -1,175 +0,0 @@ -// Type definitions for React with Addons 0.12.RC -// Project: http://facebook.github.io/react/ -// Definitions by: Asana -// Definitions: https://github.com/borisyankov/DefinitelyTyped - -/// - -declare module "react/addons" { - export = React; -} - -declare module React { - export var addons: { - classSet: (classes: {[key: string]: boolean}) => string; - cloneWithProps: CloneWithProps; - CSSTransitionGroup: ReactComponentFactory; - LinkedStateMixin: LinkedStateMixin; - Perf: Perf; - PureRenderMixin: Mixin; - TestUtils: TestUtils; - TransitionGroup: ReactComponentFactory; - update(object: Object, changes: Object): Object; - }; - - export interface CloneWithProps

{ - (instance: ReactComponentElement

, extraProps?: P): ReactComponentElement

; - } - - export interface ReactLink { - value: T; - requestChange(newValue: T): void; - } - - export interface LinkedStateMixin extends Mixin { - linkState(key: string): ReactLink; - } - - export interface ComponentPerfContext { - current: string; - owner: string; - } - - export interface CSSTransitionGroupProps { - transitionName: string; - } - - export interface TransitionsSpecification extends Specification { - componentWillEnter?(callback: () => void): void; - componentDidEnter?(): void; - componentWillLeave?(callback: () => void): void; - componentDidLeave?(): void; - } - - export interface NumericPerfContext { - [key: string]: number; - } - - export interface Measurements { - exclusive: NumericPerfContext; - inclusive: NumericPerfContext; - render: NumericPerfContext; - counts: NumericPerfContext; - writes: NumericPerfContext; - displayNames: { - [key: string]: ComponentPerfContext; - }; - totalTime: number; - } - - export interface Perf { - start(): void; - stop(): void; - printInclusive(measurements: Measurements[]): void; - printExclusive(measurements: Measurements[]): void; - printWasted(measurements: Measurements[]): void; - printDOM(measurements: Measurements[]): void; - getLastMeasurements(): Measurements[]; - } - - export interface TestUtils { - Simulate: Simulate; - renderIntoDocument

(instance: ReactComponentElement

): ReactComponentElement

; - renderIntoDocument(instance: ReactHTMLElement): ReactHTMLElement; - renderIntoDocument(instance: ReactSVGElement): ReactSVGElement; - mockComponent(componentClass: ReactComponentFactory, mockTagName?: string): TestUtils; - isDescriptorOfType(descriptor: ReactElement, componentClass: ReactComponentFactory): boolean; - isDOMComponent(instance: ReactElement): boolean; - isCompositeComponent(instance: ReactElement): boolean; - isCompositeComponentWithType(instance: ReactElement, componentClass: ReactComponentFactory): boolean; - isTextComponent(instance: ReactElement): boolean; - findAllInRenderedTree(tree: ReactElement, test: (component: ReactElement) => boolean): ReactElement[]; - scryRenderedDOMComponentsWithClass(tree: ReactElement, className: string): ReactElement[]; - findRenderedDOMComponentWithClass(tree: ReactElement, className: string): ReactElement; - scryRenderedDOMComponentsWithTag(tree: ReactElement, tagName: string): ReactElement[]; - findRenderedDOMComponentWithTag(tree: ReactElement, tagName: string): ReactElement; - scryRenderedComponentsWithTag(tree: ReactElement, componentClass: Function): ReactElement[]; - findRenderedComponentWithType

(tree: ReactElement, componentClass: ReactComponentFactory

): Component; - scryRenderedComponentsWithType

(tree: ReactElement, componentClass: ReactComponentFactory

): Component[]; - } - - export interface SyntheticEventData { - altKey?: boolean; - button?: number; - buttons?: number; - clientX?: number; - clientY?: number; - changedTouches?: TouchList; - charCode?: boolean; - clipboardData?: DataTransfer; - ctrlKey?: boolean; - deltaMode?: number; - deltaX?: number; - deltaY?: number; - deltaZ?: number; - detail?: number; - getModifierState?(key: string): boolean; - key?: string; - keyCode?: number; - locale?: string; - location?: number; - metaKey?: boolean; - pageX?: number; - pageY?: number; - relatedTarget?: EventTarget; - repeat?: boolean; - screenX?: number; - screenY?: number; - shiftKey?: boolean; - targetTouches?: TouchList; - touches?: TouchList; - view?: AbstractView; - which?: number; - } - - export interface EventSimulator { - (element: Element, eventData?: SyntheticEventData): void; - (descriptor: ReactElement, eventData?: SyntheticEventData): void; - } - - export interface Simulate { - blur: EventSimulator; - change: EventSimulator; - click: EventSimulator; - cut: EventSimulator; - doubleClick: EventSimulator; - drag: EventSimulator; - dragEnd: EventSimulator; - dragEnter: EventSimulator; - dragExit: EventSimulator; - dragLeave: EventSimulator; - dragOver: EventSimulator; - dragStart: EventSimulator; - drop: EventSimulator; - focus: EventSimulator; - input: EventSimulator; - keyDown: EventSimulator; - keyPress: EventSimulator; - keyUp: EventSimulator; - mouseDown: EventSimulator; - mouseEnter: EventSimulator; - mouseLeave: EventSimulator; - mouseMove: EventSimulator; - mouseOut: EventSimulator; - mouseOver: EventSimulator; - mouseUp: EventSimulator; - paste: EventSimulator; - scroll: EventSimulator; - submit: EventSimulator; - touchCancel: EventSimulator; - touchEnd: EventSimulator; - touchMove: EventSimulator; - touchStart: EventSimulator; - wheel: EventSimulator; - } -} diff --git a/react-addons/legacy/react-addons-0.11-tests.ts b/react/legacy/react-addons-0.11-tests.ts similarity index 100% rename from react-addons/legacy/react-addons-0.11-tests.ts rename to react/legacy/react-addons-0.11-tests.ts diff --git a/react-addons/legacy/react-addons-0.11.d.ts b/react/legacy/react-addons-0.11.d.ts similarity index 98% rename from react-addons/legacy/react-addons-0.11.d.ts rename to react/legacy/react-addons-0.11.d.ts index 3e2f22a513..d027402468 100644 --- a/react-addons/legacy/react-addons-0.11.d.ts +++ b/react/legacy/react-addons-0.11.d.ts @@ -3,7 +3,7 @@ // Definitions by: Asana // Definitions: https://github.com/borisyankov/DefinitelyTyped -/// +/// declare module "react/addons-0.11" { export = React; diff --git a/react-addons/react-addons-tests.ts b/react/react-addons-tests.ts similarity index 99% rename from react-addons/react-addons-tests.ts rename to react/react-addons-tests.ts index 7a835dfebe..5fbca7cffe 100644 --- a/react-addons/react-addons-tests.ts +++ b/react/react-addons-tests.ts @@ -1,4 +1,4 @@ -/// +/// import React = require("react/addons"); var PropTypesSpecification: React.Specification = { diff --git a/react/react.d.ts b/react/react.d.ts index f7e5f5387c..48fc0c1286 100644 --- a/react/react.d.ts +++ b/react/react.d.ts @@ -1,53 +1,90 @@ -// Type definitions for React 0.12.RC +// Type definitions for React 0.12.1 // Project: http://facebook.github.io/react/ // Definitions by: Asana // Definitions: https://github.com/borisyankov/DefinitelyTyped declare module "react" { - export = React; + var exports: React.ModuleExports; + export = exports; +} + +declare module "react/addons" { + var exports: React.ModuleWithAddonsExports; + export = exports; +} + +declare module "react/lib/cloneWithProps" { + interface exports

extends React.CloneWithProps

{} + export = exports; +} + +declare module "react/lib/cx" { + var exports: React.ClassSet; + export = exports; +} + +declare module "react/lib/LinkedStateMixin" { + interface exports extends React.LinkedStateMixin {} + export = exports; +} + +declare module "react/lib/ReactComponentWithPureRenderMixin" { + var exports: React.PureRenderMixin; + export = exports; +} + +declare module "react/lib/ReactCSSTransitionGroup" { + var exports: React.CSSTransitionGroup; + export = exports; +} + + +declare module "react/lib/ReactDefaultPerf" { + var exports: React.Perf; + export = exports; +} + +declare module "react/lib/ReactTestUtils" { + var exports: React.TestUtils; + export = exports; +} + +declare module "react/lib/ReactTransitionGroup" { + var exports: React.TransitionGroup; + export = exports; +} + +declare module "react/lib/update" { + var exports: React.Update; + export = exports; } declare module React { - export function createClass(specification: Specification): ReactComponentFactory

; - - export function createFactory

(clazz: ReactComponentFactory

): ReactComponentFactory

; - - export function createElement

(clazz: ReactComponentFactory

, props: P, ...children: any[]): ReactComponentElement

; - - export function createElement(type: string, props: DomAttributes, ...children: any[]): ReactHTMLElement; - - export function createElement(type: string, props: SvgAttributes, ...children: any[]): ReactSVGElement; - - export function render

(component: ReactComponentElement

, container: Element, callback?: () => void): ReactComponentElement

; - - export function render(component: ReactHTMLElement, container: Element, callback?: () => void): ReactHTMLElement; - - export function render(component: ReactSVGElement, container: Element, callback?: () => void): ReactSVGElement; - - export function unmountComponentAtNode(container: Element): boolean; - - export function renderToString

(component: ReactComponentElement

): string; - - export function renderToString(component: ReactHTMLElement): string; - - export function renderToString(component: ReactSVGElement): string; - - export function renderToStaticMarkup

(component: ReactComponentElement

): string; - - export function renderToStaticMarkup(component: ReactHTMLElement): string; - - export function renderToStaticMarkup(component: ReactSVGElement): string; - - export function isValidClass(factory: ReactComponentFactory): boolean; - - export function isValidElement(component: ReactComponentElement): boolean; - - export function isValidElement(component: ReactHTMLElement): boolean; - - export function isValidElement(component: ReactSVGElement): boolean; - - export function initializeTouchEvents(shouldUseTouch: boolean): void; - + export interface ModuleExports { + createClass(specification: Specification): ReactComponentFactory

; + createFactory

(clazz: ReactComponentFactory

): ReactComponentFactory

; + createElement

(clazz: ReactComponentFactory

, props: P, ...children: any[]): ReactComponentElement

; + createElement(type: string, props: DomAttributes, ...children: any[]): ReactHTMLElement; + createElement(type: string, props: SvgAttributes, ...children: any[]): ReactSVGElement; + render

(component: ReactComponentElement

, container: Element, callback?: () => void): Component; + render(component: ReactHTMLElement, container: Element, callback?: () => void): ReactHTMLElement; + render(component: ReactSVGElement, container: Element, callback?: () => void): ReactSVGElement; + unmountComponentAtNode(container: Element): boolean; + renderToString

(component: ReactComponentElement

): string; + renderToString(component: ReactHTMLElement): string; + renderToString(component: ReactSVGElement): string; + renderToStaticMarkup

(component: ReactComponentElement

): string; + renderToStaticMarkup(component: ReactHTMLElement): string; + renderToStaticMarkup(component: ReactSVGElement): string; + isValidClass(factory: ReactComponentFactory): boolean; + isValidElement(component: ReactComponentElement): boolean; + isValidElement(component: ReactHTMLElement): boolean; + isValidElement(component: ReactSVGElement): boolean; + initializeTouchEvents(shouldUseTouch: boolean): void; + DOM: DomConstructors; + Children: Children; + PropTypes: PropTypes; + } export interface ReactComponentFactory

{ (properties?: P, ...children: any[]): ReactComponentElement

; @@ -154,7 +191,7 @@ declare module React { [key: string]: Validator

; } - export var PropTypes: { + export interface PropTypes { any: Requireable; array: Requireable; bool: Requireable; @@ -170,14 +207,14 @@ declare module React { arrayOf: (type: Validator) => Requireable; objectOf: (type: Validator) => Requireable; shape: (type: ValidationMap) => Requireable; - }; + } - export var Children: { + export interface Children { map(children: any[], fn: (child: any) => any): any[]; forEach(children: any[], fn: (child: any) => any): void; count(children: any[]): number; only(children: any[]): any; - }; + } // Browser Interfaces // Taken from https://github.com/nikeee/2048-typescript/blob/master/2048/js/touch.d.ts @@ -477,7 +514,7 @@ declare module React { y?: any; } - export var DOM: { + export interface DomConstructors { // HTML a: DomElement; abbr: DomElement; @@ -608,5 +645,179 @@ declare module React { svg: SvgElement; text: SvgElement; tspan: SvgElement; - }; + } + + // Addons + export interface ModuleWithAddonsExports extends ModuleExports { + addons: ReactAddons; + } + + export interface ReactAddons { + cloneWithProps

(instance: React.ReactComponentElement

, extraProps?: P): React.ReactComponentElement

; + classSet: ClassSet; + LinkedStateMixin: LinkedStateMixin; + PureRenderMixin: PureRenderMixin; + CSSTransitionGroup: CSSTransitionGroup; + Perf: Perf; + TestUtils: TestUtils; + TransitionGroup: TransitionGroup; + update: Update; + } + + export interface CloneWithProps

{ + (instance: React.ReactComponentElement

, extraProps?: P): React.ReactComponentElement

; + } + + export interface ClassSet { + (classes: {[key: string]: boolean}): string + } + + export interface ReactLink { + value: T; + requestChange(newValue: T): void; + } + + export interface LinkedStateMixin extends React.Mixin { + linkState(key: string): ReactLink; + } + + export interface PureRenderMixin extends React.Mixin {} + + export interface CSSTransitionGroup extends React.ReactComponentFactory<{ + transitionName: string; + }> {} + + export interface ComponentPerfContext { + current: string; + owner: string; + } + + export interface NumericPerfContext { + [key: string]: number; + } + + export interface Measurements { + exclusive: NumericPerfContext; + inclusive: NumericPerfContext; + render: NumericPerfContext; + counts: NumericPerfContext; + writes: NumericPerfContext; + displayNames: { + [key: string]: ComponentPerfContext; + }; + totalTime: number; + } + + export interface Perf { + start(): void; + stop(): void; + printInclusive(measurements: Measurements[]): void; + printExclusive(measurements: Measurements[]): void; + printWasted(measurements: Measurements[]): void; + printDOM(measurements: Measurements[]): void; + getLastMeasurements(): Measurements[]; + } + + export interface TestUtils { + Simulate: Simulate; + renderIntoDocument

(instance: ReactComponentElement

): ReactComponentElement

; + renderIntoDocument(instance: ReactHTMLElement): ReactHTMLElement; + renderIntoDocument(instance: ReactSVGElement): ReactSVGElement; + mockComponent(componentClass: ReactComponentFactory, mockTagName?: string): TestUtils; + isDescriptorOfType(descriptor: ReactElement, componentClass: ReactComponentFactory): boolean; + isDOMComponent(instance: ReactElement): boolean; + isCompositeComponent(instance: ReactElement): boolean; + isCompositeComponentWithType(instance: ReactElement, componentClass: ReactComponentFactory): boolean; + isTextComponent(instance: ReactElement): boolean; + findAllInRenderedTree(tree: ReactElement, test: (component: ReactElement) => boolean): ReactElement[]; + scryRenderedDOMComponentsWithClass(tree: ReactElement, className: string): ReactElement[]; + findRenderedDOMComponentWithClass(tree: ReactElement, className: string): ReactElement; + scryRenderedDOMComponentsWithTag(tree: ReactElement, tagName: string): ReactElement[]; + findRenderedDOMComponentWithTag(tree: ReactElement, tagName: string): ReactElement; + scryRenderedComponentsWithTag(tree: ReactElement, componentClass: Function): ReactElement[]; + findRenderedComponentWithType

(tree: ReactElement, componentClass: ReactComponentFactory

): Component; + scryRenderedComponentsWithType

(tree: ReactElement, componentClass: ReactComponentFactory

): Component[]; + } + + export interface SyntheticEventData { + altKey?: boolean; + button?: number; + buttons?: number; + clientX?: number; + clientY?: number; + changedTouches?: TouchList; + charCode?: boolean; + clipboardData?: DataTransfer; + ctrlKey?: boolean; + deltaMode?: number; + deltaX?: number; + deltaY?: number; + deltaZ?: number; + detail?: number; + getModifierState?(key: string): boolean; + key?: string; + keyCode?: number; + locale?: string; + location?: number; + metaKey?: boolean; + pageX?: number; + pageY?: number; + relatedTarget?: EventTarget; + repeat?: boolean; + screenX?: number; + screenY?: number; + shiftKey?: boolean; + targetTouches?: TouchList; + touches?: TouchList; + view?: AbstractView; + which?: number; + } + + export interface EventSimulator { + (element: Element, eventData?: SyntheticEventData): void; + (descriptor: ReactElement, eventData?: SyntheticEventData): void; + } + + export interface Simulate { + blur: EventSimulator; + change: EventSimulator; + click: EventSimulator; + cut: EventSimulator; + doubleClick: EventSimulator; + drag: EventSimulator; + dragEnd: EventSimulator; + dragEnter: EventSimulator; + dragExit: EventSimulator; + dragLeave: EventSimulator; + dragOver: EventSimulator; + dragStart: EventSimulator; + drop: EventSimulator; + focus: EventSimulator; + input: EventSimulator; + keyDown: EventSimulator; + keyPress: EventSimulator; + keyUp: EventSimulator; + mouseDown: EventSimulator; + mouseEnter: EventSimulator; + mouseLeave: EventSimulator; + mouseMove: EventSimulator; + mouseOut: EventSimulator; + mouseOver: EventSimulator; + mouseUp: EventSimulator; + paste: EventSimulator; + scroll: EventSimulator; + submit: EventSimulator; + touchCancel: EventSimulator; + touchEnd: EventSimulator; + touchMove: EventSimulator; + touchStart: EventSimulator; + wheel: EventSimulator; + } + + export interface TransitionGroup extends ReactComponentFactory {} + + export interface Update { + (object: Object, changes: Object): Object + } + } \ No newline at end of file