` if you want to have them as your `
` or _drag handle_.
```js
// ❌ not supported
@@ -109,3 +109,5 @@ Alternatively you could also apply the SVG as a `background-image` to another `H
```
> You can read more about this approach on [CSS-Tricks](https://css-tricks.com/using-svg/)
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/drop-animation.md b/docs/guides/drop-animation.md
index 70acc17907..a582dc12d2 100644
--- a/docs/guides/drop-animation.md
+++ b/docs/guides/drop-animation.md
@@ -4,11 +4,11 @@ Out of the box we provide a beautiful drop animation for you to use. We have wor
## Styling a drop
-You are able to add your own style to a `Draggable` while it is dropping (such as `background-color`). You know a drop is occurring when `DraggableStateSnapshot > DropAnimation` is populated.
+You are able to add your own style to a `
` while it is dropping (such as `background-color`). You know a drop is occurring when `DraggableStateSnapshot > DropAnimation` is populated.
## Patching the drop animation
-In some cases you might want to add an additional `transform` or change the `transition`. In which case, you can patch the style of a `Draggable` while a drop is occurring. (patch `DraggableProvided > DraggableProps > DraggableStyle`)
+In some cases you might want to add an additional `transform` or change the `transition`. In which case, you can patch the style of a `
` while a drop is occurring. (patch `DraggableProvided > DraggableProps > DraggableStyle`)
Here is the shape of `DropAnimation`:
@@ -115,3 +115,5 @@ class TaskItem extends React.Component {
}
}
```
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/how-we-detect-scroll-containers.md b/docs/guides/how-we-detect-scroll-containers.md
index 4bd278bdeb..3e453de48b 100644
--- a/docs/guides/how-we-detect-scroll-containers.md
+++ b/docs/guides/how-we-detect-scroll-containers.md
@@ -56,3 +56,5 @@ We have some playgrounds on `codepen` that can be a good start for digging into
> Try changing the `overflow`, `height` and `width` properties on the `html` and `body` elements
It looks like when the `html` element has some `width` and `height` related properties set then this can impact things. However, finding a purely javascript solution for detecting this has alluded us so far
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/how-we-use-dom-events.md b/docs/guides/how-we-use-dom-events.md
index 88e5c7c558..9b1aa7d279 100644
--- a/docs/guides/how-we-use-dom-events.md
+++ b/docs/guides/how-we-use-dom-events.md
@@ -16,10 +16,10 @@ Without needing going into all the details below, here are the safest event hand
> These can be added on the _drag handle_, anywhere else higher on the tree or to the window directly.
-- `onClick`: the `event.defaultPrevented` property will be set to `true` if occurred as a part of the drag interaction. This is true even if the drag was not finished with a pre-click action such as `mouseup` or `touchend`. See [sloppy clicks and click prevention](https://github.com/atlassian/react-beautiful-dnd#sloppy-clicks-and-click-prevention-).
-- `onKeyDown`: the `event.defaultPrevented` property will be set to `true` if it was used as a part of a drag. If you add `onKeyDown` to the _drag handle_ you will need to monkey patch the [`DragHandleProps`](https://github.com/atlassian/react-beautiful-dnd#draghandleprops-type-information) `onKeyDown` event handler.
+- `onClick`: the `event.defaultPrevented` property will be set to `true` if occurred as a part of the drag interaction. This is true even if the drag was not finished with a pre-click action such as `mouseup` or `touchend`. See [sloppy clicks and click prevention](/docs/sensors/mouse.md#sloppy-clicks-and-click-prevention-).
+- `onKeyDown`: the `event.defaultPrevented` property will be set to `true` if it was used as a part of a drag. If you add `onKeyDown` to the _drag handle_ you will need to monkey patch the [`DragHandleProps`](/docs/api/draggable.md) `onKeyDown` event handler.
-You may need to enchance the logic of your event handlers with information from [`onDragStart`](https://github.com/atlassian/react-beautiful-dnd#ondragstart-optional) and [`onDragEnd`](https://github.com/atlassian/react-beautiful-dnd#ondragend-required) to know about whether a drag is occuring while those events fire.
+You may need to enchance the logic of your event handlers with information from [`onDragStart`](/docs/guides/responders.md) and [`onDragEnd`](/docs/guides/responders.md) to know about whether a drag is occuring while those events fire.
You are welcome to add other event handlers but you may be more reliant on `onDragStart` and `onDragEnd` information.
@@ -67,7 +67,7 @@ When the user first performs a `mousedown` on a _drag handle_ we are not sure if
- `preventDefault()` not called on `mousemove`
-The user needs to move a small threshold before we consider the movement to be a drag. In this period of time we do not call `preventDefault()` on any `mousemove` events as we are not sure if they are dragging or just performing a [sloppy click](https://github.com/atlassian/react-beautiful-dnd#sloppy-clicks-and-click-prevention-)
+The user needs to move a small threshold before we consider the movement to be a drag. In this period of time we do not call `preventDefault()` on any `mousemove` events as we are not sure if they are dragging or just performing a [sloppy click](/docs/sensors/mouse.md#sloppy-clicks-and-click-prevention-)
### The user has indicated that they are not mouse dragging
@@ -84,7 +84,7 @@ The user needs to move a small threshold before we consider the movement to be a
- `preventDefault()` is called on a `mouseup` if it ended the drag
- `preventDefault()` is called on a **escape**
esc `keydown` if it ended the drag as it directly ended the drag
-- `preventDefault()` is called on the next `click` event regardless of how the drag ended. See [sloppy clicks and click prevention](https://github.com/atlassian/react-beautiful-dnd#sloppy-clicks-and-click-prevention-)
+- `preventDefault()` is called on the next `click` event regardless of how the drag ended. See [sloppy clicks and click prevention](/docs/sensors/mouse.md#sloppy-clicks-and-click-prevention-)
- `preventDefault()` is not called on other events such as `resize` that indirectly ended a drag
- `preventDefault()` is not called on `keyup` events even if they caused the drag to end
@@ -96,7 +96,7 @@ The user needs to move a small threshold before we consider the movement to be a
- `preventDefault()` is not called on `touchstart`.
-When a user presses their finger (or other input) on a `Draggable` we are not sure if they where intending to _tap_, _force press_, _scroll the container_ or _drag_. Because we do not know what the user is trying to do yet we do not call `preventDefault()` on the event.
+When a user presses their finger (or other input) on a `
` we are not sure if they where intending to _tap_, _force press_, _scroll the container_ or _drag_. Because we do not know what the user is trying to do yet we do not call `preventDefault()` on the event.
### The user has indicated that they are not touch dragging
@@ -121,12 +121,22 @@ It is possible to cancel a touch drag with over events such as an `orientationch
### Force press
-> See [force press support](https://github.com/atlassian/react-beautiful-dnd#force-press-support)
+> See [force press support](/docs/sensors/touch.md#force-press-support)
+
+#### `
` (the default)
+
+> Respecting standard force touch interactions
- `preventDefault()` is not called on `touchforcechange` if a drag has not started yet
- `preventDefault()` is not called on `touchforcechange` a drag that has started but no movement has occurred yet. The force press cancels the drag and is an indirect cancel.
- `preventDefault()` is called after on `touchforcechange` a drag has started and a `touchmove` has fired. This is defensive as a force press `touchforcechange` should not occur after a `touchmove`.
+#### `
`
+
+> Opting out of force change events
+
+`preventDefault()` is called on all `touchforcechange` events
+
## Keyboard dragging 🎹
> We only use `keydown` events for keyboard dragging so `keyup` events never have `preventDefault()` called on them
@@ -148,3 +158,5 @@ Unlike mouse dragging a keyboard drag starts as soon as the user presses the **s
- `preventDefault()` is called on a `keydown` if it is the **spacebar**
space key as it is dropping the item
- `preventDefault()` is called on a `keydown` if it is the **escape**
esc key as it is explicitly cancelling the drag
- `preventDefault()` is not called on events that indirectly cancel a drag such as `resize` or `mousedown`.
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/identifiers.md b/docs/guides/identifiers.md
index 054b6db64b..ea24a83157 100644
--- a/docs/guides/identifiers.md
+++ b/docs/guides/identifiers.md
@@ -1,8 +1,8 @@
# Identifiers (ids)
-> `Draggable > draggableId` and `Droppable > droppableId`
+> `
> draggableId` and `
> droppableId`
-A `Draggable` and a `Droppable` have an id. These are `draggableId` and `droppableId` respectively.
+A `
` and a `
` have an id. These are `draggableId` and `droppableId` respectively.
## String
@@ -18,9 +18,9 @@ type DraggableId = Id;
## Ids must be unique
-A id must uniquely identify a `Draggable` or `Droppable` within a `DragDropContext`. So if you have multiple connected lists, each `Droppable` needs to have a unique id and each `Draggable` needs to have a unique id, even if the item is in a different list.
+A id must uniquely identify a `
` or `
` within a `
`. So if you have multiple connected lists, each `
` needs to have a unique id and each `
` needs to have a unique id, even if the item is in a different list.
-The id must also be unique even if the `type` argument on the `Droppable` is different.
+The id must also be unique even if the `type` argument on the `
` is different.
## Avoid reusing ids
@@ -60,3 +60,5 @@ new droppableId: "droppable-5"
Yep!
But we do things this way for simplicity and performance. Feel free to continue this conversation in a Github issue if you feel strongly about it.
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/preset-styles.md b/docs/guides/preset-styles.md
index 2aaef15db9..b60d858bb1 100644
--- a/docs/guides/preset-styles.md
+++ b/docs/guides/preset-styles.md
@@ -1,6 +1,6 @@
# Preset styles
-We apply a number of non-visible styles to facilitate the dragging experience. We do this using combination of styling targets and techniques. It is a goal of the library to provide unopinioned styling. However, we do apply some reasonable `cursor` styling on drag handles by default. This is designed to make the library work as simply as possible out of the box. If you want to use your own cursors you are more than welcome to. All you need to do is override our cursor style rules by using a rule with [higher specificity](https://css-tricks.com/specifics-on-css-specificity/).
+We apply a number of **non-visible** styles to facilitate the dragging experience. We do this using combination of styling targets and techniques. It is a goal of the library to provide unopinioned styling. However, we do apply some reasonable `cursor` styling on drag handles by default. This is designed to make the library work as simply as possible out of the box. If you want to use your own cursors you are more than welcome to. All you need to do is override our cursor style rules by using a rule with [higher specificity](https://css-tricks.com/specifics-on-css-specificity/).
Here are the styles that are applied at various points in the drag lifecycle:
@@ -66,7 +66,7 @@ pointer-events: none;
**Styles applied using the `data-react-beautiful-dnd-draggable` attribute**
-This is what we use to control `Draggable`s that need to move out of the way of a dragging `Draggable`.
+This is what we use to control `
`s that need to move out of the way of a dragging `
`.
```css
transition: ${string};
@@ -76,7 +76,7 @@ transition: ${string};
**Styles applied using the `data-react-beautiful-dnd-droppable` attribute**
-We apply `pointer-events: none` to a `Droppable` during a drag. This is technically not required as an optimisation. However, it gets around a common issue where hover styles are triggered during a drag. You are welcome to opt out of this one as it is it not required for functinality.
+We apply `pointer-events: none` to a `
` during a drag. This is technically not required as an optimisation. However, it gets around a common issue where hover styles are triggered during a drag. You are welcome to opt out of this one as it is it not required for functinality.
```css
pointer-events: none;
@@ -115,7 +115,7 @@ user-select: none;
**Styles applied using the `data-react-beautiful-dnd-drag-handle` attribute**
-We apply the grab cursor to all drag handles except the drag handle for the dropping `Draggable`. At this point the user is able to drag other `Draggable`'s if they like.
+We apply the grab cursor to all drag handles except the drag handle for the dropping `
`. At this point the user is able to drag other `
`'s if they like.
```css
cursor: grab;
@@ -134,3 +134,5 @@ This is the same as `Phase: dropping`. However we do not apply a `cursor: grab`
## Preset styles are vendor prefixed
All styles applied are vendor prefixed correctly to meet the requirements of our [supported browser matrix](https://confluence.atlassian.com/cloud/supported-browsers-744721663.html). This is done by hand to avoid adding to react-beautiful-dnd's size by including a css-in-js library
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/responders.md b/docs/guides/responders.md
index d3ab6e3346..3c48f3d8d1 100644
--- a/docs/guides/responders.md
+++ b/docs/guides/responders.md
@@ -1,6 +1,6 @@
# Responders
-> `DragDropContext > Responders`
+> `
> Responders`
Responders are top level application events that you can use to perform your own state updates, style updates, as well as to make screen reader announcements.
@@ -41,7 +41,7 @@ type OnDragStartResponder = (
) => mixed;
```
-`onDragStart` will get notified when a drag starts. This responder is _optional_ and therefore does not need to be provided. It is **highly recommended** that you use this function to block updates to all `Draggable` and `Droppable` components during a drag. (See **Block updates during a drag** below)
+`onDragStart` will get notified when a drag starts. This responder is _optional_ and therefore does not need to be provided. It is **highly recommended** that you use this function to block updates to all `
` and `
` components during a drag. (See **Block updates during a drag** below)
You are provided with the following details:
@@ -56,9 +56,9 @@ type DragStart = {|
|};
```
-- `start.draggableId`: the id of the `Draggable` that is now dragging
-- `start.type`: the `type` of the `Draggable` that is now dragging
-- `start.source`: the location (`droppableId` and `index`) of where the dragging item has started within a `Droppable`.
+- `start.draggableId`: the id of the `
` that is now dragging
+- `start.type`: the `type` of the `
` that is now dragging
+- `start.source`: the location (`droppableId` and `index`) of where the dragging item has started within a `
`.
- `start.mode`: either `'SNAP'` or `'FLUID'`. This is a little bit of information about the type of movement that will be performed during this drag. `'SNAP'` mode is where items jump around between positions (such as with keyboard dragging) and `'FLUID'` mode is where the item moves underneath a pointer (such as mouse dragging).
### `onDragStart` type information
@@ -102,9 +102,9 @@ type OnDragUpdateResponder = (
This responder is called whenever something changes during a drag. The possible changes are:
-- The position of the `Draggable` has changed
-- The `Draggable` is now over a different `Droppable`
-- The `Draggable` is now over no `Droppable`
+- The position of the `
` has changed
+- The `
` is now over a different `
`
+- The `
` is now over no `
`
It is important that you not do too much work as a result of this function as it will slow down the drag. While the return type is `mixed`, the return value is not used.
@@ -126,8 +126,8 @@ type Combine = {|
```
- `...DragStart`: _see above_
-- `update.destination`: the location (`droppableId` and `index`) of where the dragging item is now. This can be null if the user is currently not dragging over any `Droppable`.
-- `update.combine`: details of a `Draggable` that is currently being combine with. For more information see our [combining guide](/docs/guides/combining.md)
+- `update.destination`: the location (`droppableId` and `index`) of where the dragging item is now. This can be null if the user is currently not dragging over any `
`.
+- `update.combine`: details of a `
` that is currently being combine with. For more information see our [combining guide](/docs/guides/combining.md)
## `onDragEnd` (required)
@@ -155,11 +155,11 @@ type DropReason = 'DROP' | 'CANCEL';
> The use cases for this responder is super limited
-Once we have all of the information we need to start a drag we call the `onBeforeDragStart` function. This is called just before we update the `snapshot` values for the `Draggable` and `Droppable` components. At this point the application is not in a dragging state and so changing of props such as `isDropDisabled` will fail. The `onBeforeDragStart` responder is a good opportunity to do any dimension locking required for [table reordering](/docs/patterns/tables.md).
+Once we have all of the information we need to start a drag we call the `onBeforeDragStart` function. This is called just before we update the `snapshot` values for the `
` and `
` components. At this point the application is not in a dragging state and so changing of props such as `isDropDisabled` will fail. The `onBeforeDragStart` responder is a good opportunity to do any dimension locking required for [table reordering](/docs/patterns/tables.md).
- ✅ Can apply modifications to existing components to lock their sizes
-- ❌ Cannot remove or add any `Draggable` or `Droppable`
-- ❌ Cannot modify the sizes of any `Draggable` or `Droppable`
+- ❌ Cannot remove or add any `
` or `
`
+- ❌ Cannot modify the sizes of any `
` or `
`
- ❌ No screen reader announcement yet
### `OnBeforeDragStartResponder` type information
@@ -183,13 +183,13 @@ type OnBeforeDragStartResponder = (start: DragStart) => mixed;
### Phase 2: publish
- `onBeforeDragStart` is called
-- `Draggable` and `Droppable` components are updated with initial `snapshot` values
+- `
` and `
` components are updated with initial `snapshot` values
- `onDragStart` is called in the next event loop (via `setTimeout`)
### Phase 3: updates
- User moves a dragging item
-- `Draggable` and `Droppable` components are updated with latest `snapshot` values
+- `
` and `
` components are updated with latest `snapshot` values
- `onDragUpdate` is called in the next event loop (via `setTimeout`)
### Phase 4: drop
@@ -198,8 +198,8 @@ type OnBeforeDragStartResponder = (start: DragStart) => mixed;
- There is an optional drop animation
- When the drop animation finishes (or if there is ):
-- Any pending `onDragStart` and `onDragUpdate` calls are flushed
- -- `Draggable` and `Droppable` components are updated with resting `snapshot` values.
- -- You perform your reorder operation in `onDragEnd` which can result in a `setState` to update the order. The `Draggable` and `Droppable` snapshot updates and any `setState` caused by `onDragEnd` are batched together into the render cycle by `react ⚛️` 🤘
+ -- `
` and `
` components are updated with resting `snapshot` values.
+ -- You perform your reorder operation in `onDragEnd` which can result in a `setState` to update the order. The `
` and `
` snapshot updates and any `setState` caused by `onDragEnd` are batched together into the render cycle by `react ⚛️` 🤘
## Synchronous reordering
@@ -209,7 +209,7 @@ Because this library does not control your state, it is up to you to _synchronou
- if the `destination` is `null`: all done!
- if `source.droppableId` equals `destination.droppableId` you need to remove the item from your list and insert it at the correct position.
-- if `source.droppableId` does not equal `destination.droppableId`, then you need to remove the `Draggable` from the `source.droppableId` list and add it into the correct position of the `destination.droppableId` list.
+- if `source.droppableId` does not equal `destination.droppableId`, then you need to remove the `
` from the `source.droppableId` list and add it into the correct position of the `destination.droppableId` list.
### Persisting a reorder
@@ -217,11 +217,11 @@ If you need to persist a reorder to a remote data store - update the list synchr
## No dimension changes during a drag
-`react-beautiful-dnd` does not support the changing of the size of any `Draggable` or `Droppable` after a drag has started. We build a virtual model of every `Draggable` and `Droppable` when a drag starts. We do not recollect these during a drag. So if you change the size of something: the user will see the updated size, but our virtual model will remain unchanged.
+`react-beautiful-dnd` does not support the changing of the size of any `
` or `
` after a drag has started. We build a virtual model of every `
` and `
` when a drag starts. We do not recollect these during a drag. So if you change the size of something: the user will see the updated size, but our virtual model will remain unchanged.
### Block updates during a drag
-It is **highly** recommended that while a user is dragging that you block any state updates that might impact the amount of `Draggable`s and `Droppable`s, or their dimensions. Please listen to `onDragStart` and block updates to the `Draggable`s and `Droppable`s until you receive at `onDragEnd`.
+It is **highly** recommended that while a user is dragging that you block any state updates that might impact the amount of `
`s and `
`s, or their dimensions. Please listen to `onDragStart` and block updates to the `
`s and `
`s until you receive at `onDragEnd`.
### How do you block updates?
@@ -247,3 +247,5 @@ Here are a few poor user experiences that can occur if you change things _during
## `onDragStart` and `onDragEnd` pairing
We try very hard to ensure that each `onDragStart` event is paired with a single `onDragEnd` event. However, there maybe a rogue situation where this is not the case. If that occurs - it is a bug. Currently there is no official mechanism to tell the library to cancel a current drag externally.
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/screen-reader.md b/docs/guides/screen-reader.md
index e2ee830daa..918f8af7f2 100644
--- a/docs/guides/screen-reader.md
+++ b/docs/guides/screen-reader.md
@@ -14,7 +14,7 @@ Choose a tone that best supports what your audience is trying to do. If you need
## How to control announcements
-The `announce` function is provided to each of the `DragDropContext > Responder` functions and can be used to deliver your own screen reader messages. Messages will be immediately read out. It's important to deliver messages immediately, so your users have a fast and responsive experience.
+The `announce` function is provided to each of the `
> Responder` functions and can be used to deliver your own screen reader messages. Messages will be immediately read out. It's important to deliver messages immediately, so your users have a fast and responsive experience.
If you attempt to hold onto the `announce` function and call it later, it won't work and will just print a warning to the console. If you try to call announce twice for the same event, only the first will be read by the screen reader with subsequent calls to announce being ignored and a warning printed.
@@ -35,15 +35,15 @@ const endPosition = destination ? position(destination.index) : null;
## Use names where possible
-All of our built in screen reader messages use `id`'s to identify `Draggable` and `Droppable`s. You might want to consider replacing these with more readable names.
+All of our built in screen reader messages use `id`'s to identify `
` and `
`s. You might want to consider replacing these with more readable names.
-> Potentially this could be a prop for `Draggable` and `Droppable` 🤔. Please raise an issue if you would like to see this happen!
+> Potentially this could be a prop for `
` and `
` 🤔. Please raise an issue if you would like to see this happen!
## Instructions to cover
### Step 1: Introduce draggable item
-When a user `tabs` to a `Draggable`, we need to tell them how to start a drag. We do this by using the `aria-roledescription` property on a _drag handle_.
+When a user `tabs` to a `
`, we need to tell them how to start a drag. We do this by using the `aria-roledescription` property on a _drag handle_.
**Default message**: "Draggable item. Press space bar to lift"
@@ -58,7 +58,7 @@ Think about substituting the word "item" for a noun that matches your problem do
### Step 2: Start drag
-When a user lifts a `Draggable` by using the `spacebar` we want to tell them a number of things.
+When a user lifts a `
` by using the `spacebar` we want to tell them a number of things.
**Default message**: "You have lifted an item in position `${startPosition}`. Use the arrow keys to move, space bar to drop, and escape to cancel."
@@ -72,7 +72,7 @@ Notice that we don't tell them that they are in position `1 of x`. This is becau
**Message with more info**: "You have lifted an item in position `${startPosition}` of `${listLength}` in the `${listName}` list. Use the arrow keys to move, space bar to drop, and escape to cancel."
-You control the message printed to the user through the `DragDropContext` > `onDragStart` responder
+You control the message printed to the user through the `
` > `onDragStart` responder
```js
onDragStart = (start: DragStart, provided: ResponderProvided) => {
@@ -84,7 +84,7 @@ onDragStart = (start: DragStart, provided: ResponderProvided) => {
When a user has started a drag, there are different scenarios that can spring from that, so we'll create different messaging for each scenario.
-We can control the announcement through the `DragDropContext` > `onDragUpdate` responder.
+We can control the announcement through the `
` > `onDragUpdate` responder.
```js
onDragUpdate = (update: DragUpdate, provided: ResponderProvided) => {
@@ -119,13 +119,13 @@ Think about using friendlier text for the name of the droppable, and including t
#### Scenario 4. Combining in same list
-The user has moved over another `Draggable` in [combine mode](/docs/guides/combining.md) in the same list
+The user has moved over another `
` in [combine mode](/docs/guides/combining.md) in the same list
**Default message** "The item `${source.draggableId}` has been combined with `${combine.draggableId}`"
#### Scenario 5: Combining in different list
-The user has moved over another `Draggable` in [combine mode](/docs/guides/combining.md) in a list that is not the list the dragging item started in
+The user has moved over another `
` in [combine mode](/docs/guides/combining.md) in a list that is not the list the dragging item started in
**Default message** "The item `${source.draggableId}` in list `${source.droppableId}` has been combined with `${combine.draggableId}` in list `${combine.droppableId}`"
@@ -139,7 +139,7 @@ Think about how you could make this messaging friendlier and clearer.
### Step 4: On drop
-There are two ways a drop can happen. Either the drag is cancelled or the user drops the dragging item. You can control the messaging for these events using the `DragDropContext > onDragEnd` responder.
+There are two ways a drop can happen. Either the drag is cancelled or the user drops the dragging item. You can control the messaging for these events using the `
> onDragEnd` responder.
#### Scenario 1. Drag cancelled
@@ -180,15 +180,15 @@ The messaging for this scenario should be similar to 'dropped in a home list', b
**Default message**: "You have dropped the item. It has moved from position `${startPosition}` in list `${result.source.droppableId}` to position `${endPosition}` in list `${result.destination.droppableId}`"
-#### Scenario 4. Dropped on another `Draggable` in the home list
+#### Scenario 4. Dropped on another `
` in the home list
-The user has dropped onto another `Draggable` in [combine mode](/docs/guides/combining.md) in the same list that the drag started in
+The user has dropped onto another `
` in [combine mode](/docs/guides/combining.md) in the same list that the drag started in
**Default message**: "You have dropped the item. The item `${source.draggableId}` has been combined with `${combine.draggableId}`"
-#### Scenario 5. Dropped on another `Draggable` in a foreign list
+#### Scenario 5. Dropped on another `
` in a foreign list
-The user has dropped onto another `Draggable` in [combine mode](/docs/guides/combining.md) in a list that is not the list the dragging item started in
+The user has dropped onto another `
` in [combine mode](/docs/guides/combining.md) in a list that is not the list the dragging item started in
**Default message**: "The item `${source.draggableId}` in list `${source.droppableId}` has been combined with `${combine.draggableId}` in list `${combine.droppableId}`"
@@ -212,3 +212,5 @@ If you are using Mac, then you are welcome to test against the inbuilt `VoiceOve
## That's all folks
We hope you find this guide useful. Feel free to send in suggestions for scenarios you'd like to see included, or you might want to share your own default messages and grow the knowledge even further 🙂.
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/types.md b/docs/guides/types.md
index ede90444aa..acc44cd456 100644
--- a/docs/guides/types.md
+++ b/docs/guides/types.md
@@ -90,6 +90,7 @@ type DroppableProvided = {|
type DroppableStateSnapshot = {|
isDraggingOver: boolean,
draggingOverWith: ?DraggableId,
+ draggingFromThisWith: ?DraggableId,
|};
```
@@ -115,6 +116,7 @@ type DraggableStateSnapshot = {|
export type DraggableProps = {|
style: ?DraggableStyle,
'data-react-beautiful-dnd-draggable': string,
+ onTransitionEnd: ?(event: TransitionEvent) => void,
|};
type DraggableStyle = DraggingStyle | NotDraggingStyle;
type DraggingStyle = {|
@@ -174,3 +176,5 @@ Here is an [example written in typescript](https://github.com/abeaudoin2013/reac
## Sample application with flow types
We have created a [sample application](https://github.com/alexreardon/react-beautiful-dnd-flow-example) which exercises the flowtypes. It is a super simple `React` project based on [`react-create-app`](https://github.com/facebookincubator/create-react-app). You can use this as a reference to see how to set things up correctly.
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/guides/using-inner-ref.md b/docs/guides/using-inner-ref.md
index cdaafc380d..369124dd49 100644
--- a/docs/guides/using-inner-ref.md
+++ b/docs/guides/using-inner-ref.md
@@ -2,7 +2,7 @@
> If you have not used `ref`'s before, please take a look at the [`React`: Refs and the DOM guide](https://reactjs.org/docs/refs-and-the-dom.html) on their documentation website.
-Our `Draggable` and `Droppable` components both require a [`HTMLElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement) to be provided to them. This is done using the `innerRef` property on the `DraggableProvided` and `DroppableProvided` objects.
+Our `
` and `
` components both require a [`HTMLElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement) to be provided to them. This is done using the `innerRef` property on the `DraggableProvided` and `DroppableProvided` objects.
```diff
@@ -108,7 +108,7 @@ Take a look at this example:
While it looks correct, it **will cause your application to explode 💥!**
-This is because `react-beautiful-dnd` expects the `provided.innerRef` function for a `Draggable` and a `Droppable` to be called with the DOM node of the component, and not the _instance_ of the class. In this example we are calling `provided.innerRef` with an _instance_ of `Person` and not the underlying DOM node.
+This is because `react-beautiful-dnd` expects the `provided.innerRef` function for a ` ` and a ` ` to be called with the DOM node of the component, and not the _instance_ of the class. In this example we are calling `provided.innerRef` with an _instance_ of `Person` and not the underlying DOM node.
## Exposing a DOM ref from your Component 🤩
@@ -128,7 +128,7 @@ class Person extends React.Component {
> Note, the name `innerRef` is just a convention. You could call it whatever you want for your component. Something like `domRef` is fine.
-You can then correctly supply the DOM node to a `Draggable` or `Droppable`
+You can then correctly supply the DOM node to a ` ` or ` `
```diff
@@ -145,7 +145,7 @@ You can then correctly supply the DOM node to a `Draggable` or `Droppable`
```
-> Note, if you are using **styled-components v4** the `innerRef` prop was removed in favor of the [React 16 forwardRef API](https://reactjs.org/docs/forwarding-refs.html). Just use the normal ref prop instead.
+> Note, if you are using **styled-components v4** the `innerRef` prop was replaced with just `ref`. It uses the [React 16 `forwardRef` API](https://reactjs.org/docs/forwarding-refs.html) to pass the DOM node through the `ref` callback rather than the instance of the Component. Similarly, **emotion v10+** the `innerRef` prop was deprecated in favor `ref` with a `forwardRef` passthrough.
⚠️ This approach will cause a `React` warning as we are spreading all of the props of the component onto the DOM node. `{...this.props}` This includes the `innerRef` prop which `React` does not like you adding to an element. So you can set things up like this:
@@ -218,3 +218,5 @@ Here is an example that shows off the learnings presented in this guide: https:/
## A note on SVG's
`react-beautiful-dnd` does not support the dragging of `` elements. Wrap your `` in a `HTMLElement` such as `` or `` for great accessibility and cross browser support. See our [using SVGs guide](https://github.com/atlassian/react-beautiful-dnd/tree/master/docs/guides/using-svgs.md) for more information.
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/patterns/multi-drag.md b/docs/patterns/multi-drag.md
index 5e6867b00b..01a5785b9e 100644
--- a/docs/patterns/multi-drag.md
+++ b/docs/patterns/multi-drag.md
@@ -2,9 +2,9 @@
> This page is designed to guide you through adding your own multi drag experience to your `react-beautiful-dnd` lists.
-Dragging multiple `Draggable`s at once (multi drag) is currently a pattern that needs to be built on top of `react-beautiful-dnd`. We have not included the interaction into the library itself. This is done because a multi drag experience introduces a lot of concepts, decisions and opinions. We have done a lot of work to ensure there is a standard base of [dom event management](/docs/guides/how-we-use-dom-events.md) to build on.
+Dragging multiple `
`s at once (multi drag) is currently a pattern that needs to be built on top of `react-beautiful-dnd`. We have not included the interaction into the library itself. This is done because a multi drag experience introduces a lot of concepts, decisions and opinions. We have done a lot of work to ensure there is a standard base of [dom event management](/docs/guides/how-we-use-dom-events.md) to build on.
-We have created a [reference application](react-beautiful-dnd.netlify.com/iframe.html?selectedKind=Multi%20drag&selectedStory=pattern&full=0&down=1&left=1&panelRight=0&downPanel=storybook%2Factions%2Factions-panel) ([source](/stories/9-multi-drag-story.js)) which implements this multi drag pattern. The application is fairly basic and does not handle performance in large lists well. As such, there is are [a few performance recommendations](#performance) that we suggest you also add on to our reference application if you want to support lists greater than 50 in size.
+We have created a [reference application](https://react-beautiful-dnd.netlify.com/iframe.html?selectedKind=Multi%20drag&selectedStory=pattern&full=0&down=1&left=1&panelRight=0&downPanel=storybook%2Factions%2Factions-panel) ([source](/stories/9-multi-drag-story.js)) which implements this multi drag pattern. The application is fairly basic and does not handle performance in large lists well. As such, there is are [a few performance recommendations](#performance) that we suggest you also add on to our reference application if you want to support lists greater than 50 in size.
![multi drag demo](https://user-images.githubusercontent.com/2182637/37322724-7843a218-26d3-11e8-9ebb-8d5853387bb3.gif)
@@ -26,7 +26,7 @@ Keep in mind that internally `react-beautiful-dnd` is not aware of multi drag. T
## Selection
-Before a drag starts we need to allow the user to _optionally_ select a number of `Draggable`s to drag. We an item is selected you should apply a style update to the `Draggable` such as a background color change to indicate that the item is selected.
+Before a drag starts we need to allow the user to _optionally_ select a number of `
`s to drag. We an item is selected you should apply a style update to the `
` such as a background color change to indicate that the item is selected.
### Selection interaction recommendations
@@ -40,14 +40,14 @@ If a user clicks on an item the selected state of the item should be toggled. Ad
#### `onClick` event handler
-- Attach an `onClick` handler to your _drag handle_ or `Draggable`
+- Attach an `onClick` handler to your _drag handle_ or `
`
- Only toggle selection if the user is using the [`primaryButton`](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button) (`event.button === 0`)
- Prevent the default action on the `click` as you are using it for selection (it is only useful to call `event.preventDefault()` to avoid _selection clearing_)
#### Keyboard event handler
- When the user presses **enter**
⏎ toggle the selection of the item
-- **Option 1**: Attach an `onKeyDown` handler to your _drag handle_ or `Draggable`. You will need to monkey patch the `DragHandleProvided > onKeyDown` keyboard handler.
+- **Option 1**: Attach an `onKeyDown` handler to your _drag handle_ or `
`. You will need to monkey patch the `DragHandleProvided > onKeyDown` keyboard handler.
- **Option 2**: Attach an `onKeyUp` handler to your _drag handle_. Then you will not need to monkey patch the `onKeyDown` handler. However, `keyup` events will not have their default action prevented so you will not be able to check `event.defaultPrevented` to see if the keypress was used for a drag. If you are only using the **enter**
⏎ key in your event handler then you should be fine as that is not used as a part of dragging.
- Prevent the default action on the `keydown` / `keyup` event if you are toggling selection as you are using it for selection as you want to opt out of the standard browser behaviour and also provide a clue that this event has been used.
@@ -211,7 +211,7 @@ class Task extends Component
{
#### `window` `click` handler
-We add a `click` handler to the `window` to detect for a click that is not on a `Draggable`. We call `preventDefault` in our selection `onClick` handler so `click` events used for selection will have the `event.defaultPrevented` property set to `true`. Additionally, if a drag occurred the default `click` action [will be prevented](https://github.com/atlassian/react-beautiful-dnd#sloppy-clicks-and-click-prevention-). So if we receive a `click` event on the window that has not has `event.defaultPrevented` set to false we clear the current selection.
+We add a `click` handler to the `window` to detect for a click that is not on a ` `. We call `preventDefault` in our selection `onClick` handler so `click` events used for selection will have the `event.defaultPrevented` property set to `true`. Additionally, if a drag occurred the default `click` action [will be prevented](/docs/sensors/mouse.md#sloppy-clicks-and-click-prevention-). So if we receive a `click` event on the window that has not has `event.defaultPrevented` set to false we clear the current selection.
#### `window` `keydown` handler
@@ -291,7 +291,7 @@ Doing a multi drag interaction in a performant way can be challenging. The core
### Selection state change
-In response to a selection change you want to call `render` on the minimum amount of `Draggable` and `Droppable` components as possible. In our example application whenever the selection changes we re-render the entire tree. This approach will not scale. Therefore we suggest using the optimisations listed above.
+In response to a selection change you want to call `render` on the minimum amount of ` ` and ` ` components as possible. In our example application whenever the selection changes we re-render the entire tree. This approach will not scale. Therefore we suggest using the optimisations listed above.
In the event of a 'unselect all' action you might need to render a lot of components at once to clear their selected styles. For most usages this will be fine. If you want to go further you will need to avoid calling `render` for selection style changes.
@@ -303,3 +303,5 @@ Additionally, when a drag starts we can also update the appearance of a lot of `
### Drag count
When dragging you need to display a count of the items that are dragging. In our example we provide this information down by re-rendering the tree. As with selection changes it would be good to only render the item that needs the change. You could publish this information down using `redux` and `redux-select`. For this particular problem you might be able to get away with [`unstated`](https://github.com/jamiebuilds/unstated) or the new [React 16.3 `Context` api](https://github.com/reactjs/rfcs/blob/master/text/0002-new-version-of-context.md).
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/patterns/tables.md b/docs/patterns/tables.md
index bc4921d04b..a8bda35af6 100644
--- a/docs/patterns/tables.md
+++ b/docs/patterns/tables.md
@@ -7,9 +7,9 @@
| Can copy paste the table into other applications | Browser |
| Can reorder items in the table! | `react-beautiful-dnd` 😎 |
-`react-beautiful-dnd` requires no additional wrapping elements to create `Draggable` and `Droppable` components. Therefore it is possible to have a `` that has valid HTML as well as supporting drag and drop.
+`react-beautiful-dnd` requires no additional wrapping elements to create ` ` and ` ` components. Therefore it is possible to have a `` that has valid HTML as well as supporting drag and drop.
-> We have not found a way to achieve semantic reordering of table columns at this stage. This is because there is no one element that represents a table column - rather, a column is a result of cell placements within repeating rows. As such as cannot wrap a `Draggable` around a 'column' in order to make it draggable. PR's to this guide are welcome if you find a working approach!
+> We have not found a way to achieve semantic reordering of table columns at this stage. This is because there is no one element that represents a table column - rather, a column is a result of cell placements within repeating rows. As such as cannot wrap a ` ` around a 'column' in order to make it draggable. PR's to this guide are welcome if you find a working approach!
## Strategies
@@ -22,7 +22,7 @@ There are two strategies you can use when reordering tables.
In order to use this strategy the widths of your columns need to be fixed - that is, they will not change depending on what content is placed in the cells. This can be achieve with either a `table-layout: fixed` or `table-layout: auto` as long as you manually set the width of the cells (eg `50%`).
-The only thing you need to do is set `display: table` on a `Draggable` row while it is dragging.
+The only thing you need to do is set `display: table` on a ` ` row while it is dragging.
[See example code here](https://react-beautiful-dnd.netlify.com/?selectedKind=Tables&selectedStory=with%20fixed%20width%20columns&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel)
@@ -41,20 +41,20 @@ For tables with less than 50 rows this should approach be fine!
[See example code here](https://react-beautiful-dnd.netlify.com/?selectedKind=Tables&selectedStory=with%20dimension%20locking&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel)
-## Advanced: using [`React.Portal`](https://reactjs.org/docs/portals.html)
+## Advanced: using [`ReactDOM.createPortal`](https://reactjs.org/docs/portals.html)
-If you want to use `React.Portal` in combination with table row reordering then there are few extra steps you need to go through.
+If you want to use `ReactDOM.createPortal` in combination with table row reordering then there are few extra steps you need to go through.
First up, have a read of our [using a portal pattern](/docs/patterns/using-a-portal.md) to get familiar with the approach.
-It is important to know things timings of mount / unmount actions in React. We have created a [codesandbox.io example](https://codesandbox.io/s/nkl52y1wn0) to show how the mount timings work when moving in and out of a `React.Portal`.
+It is important to know things timings of mount / unmount actions in React. We have created a [codesandbox.io example](https://codesandbox.io/s/nkl52y1wn0) to show how the mount timings work when moving in and out of a `ReactDOM.createPortal`.
-When moving an existing `` into a `React.Portal` it is important to know that the existing ` ` is unmounted and a new ` ` is mounted into the portal. Here is the order of those operations:
+When moving an existing ` ` into a `ReactDOM.createPortal` it is important to know that the existing ` ` is unmounted and a new ` ` is mounted into the portal. Here is the order of those operations:
1. The old ` ` has `componentWillUnmount` called
2. The new ` ` has `componentWillMount` called
-In order to preserve the cell dimensions of the cells in the row that we are moving into a `React.Portal` we need to lock its dimensions using inline styles (see strategy #2). Sadly though, the new component does not directly have access to the information about the component that was in the tree before it moved to the portal. So in order to do this we need to obtain the cell dimensions of the ` ` when it is unmounting and re-apply it to the new ` ` when it mounted in `componentDidMount`.
+In order to preserve the cell dimensions of the cells in the row that we are moving into a `ReactDOM.createPortal` we need to lock its dimensions using inline styles (see strategy #2). Sadly though, the new component does not directly have access to the information about the component that was in the tree before it moved to the portal. So in order to do this we need to obtain the cell dimensions of the ` ` when it is unmounting and re-apply it to the new ` ` when it mounted in `componentDidMount`.
There is no great way to do this as when `componentDidMount` is called we are not sure if the component is unmouting as the `tr` is no longer needed, or if it is unmounting because it is about to move into a portal.
@@ -64,3 +64,5 @@ It seems like the only way to get things working is to:
2. If a component is mounting and `DraggableStateSnapshot > isDragging` is true then you can see if there is a previously recorded width. If there is then you can apply that width.
This gets a little complicated - so we [created another example](https://react-beautiful-dnd.netlify.com/?selectedKind=Tables&selectedStory=with%20portal&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel) for you showing you how this technique works! You're welcome!
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/patterns/using-a-portal.md b/docs/patterns/using-a-portal.md
index 5bb0908136..614f3cf5cf 100644
--- a/docs/patterns/using-a-portal.md
+++ b/docs/patterns/using-a-portal.md
@@ -1,31 +1,33 @@
# Using a Portal
-> This guide will go through how you can move your `Draggable` into a [`React.Portal`](https://reactjs.org/docs/portals.html) while dragging.
+> This guide will go through how you can move your ` ` into a [`ReactDOM.createPortal`](https://reactjs.org/docs/portals.html) while dragging.
> ⚠️ Moving items into a React Portal after a `touchstart` is currently not working 😞. React issue: [#13113](https://github.com/facebook/react/issues/13113). We are tracking it here: [#582](https://github.com/atlassian/react-beautiful-dnd/issues/582). Due to this issue with React Portals drag and drop will not work on touch devices if using a React Portal
## Background
-We leave elements in place when dragging. We apply `position: fixed` on elements when we are moving them around. This is quite robust and allows for you to have `position: relative | absolute | fixed` parents. However, unfortunately `position:fixed` is [impacted by `transform`](http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/) (such as `transform: rotate(10deg);`). This means that if you have a `transform: *` on one of the parents of a `Draggable` then the positioning logic will be incorrect while dragging. Lame! For most consumers this will not be an issue.
+We leave elements in place when dragging. We apply `position: fixed` on elements when we are moving them around. This is quite robust and allows for you to have `position: relative | absolute | fixed` parents. However, unfortunately `position:fixed` is [impacted by `transform`](http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/) (such as `transform: rotate(10deg);`). This means that if you have a `transform: *` on one of the parents of a ` ` then the positioning logic will be incorrect while dragging. Lame! For most consumers this will not be an issue.
To get around the issue you can use a `portal`.
## `Portals`
-Wait, what is a `portal`? A `portal` is a simply another DOM node outside of the current component tree. By using a portal you are able to move the `Draggable` into another DOM node while dragging. This can allow you to get around the limitations of `position: fixed`.
+Wait, what is a `portal`? A `portal` is a simply another DOM node outside of the current component tree. By using a portal you are able to move the ` ` into another DOM node while dragging. This can allow you to get around the limitations of `position: fixed`.
-## Not using `React.Portal` by default
+## Not using `ReactDOM.createPortal` by default
-React provides a first class api for using `portals`: [`React.Portal`](https://reactjs.org/docs/portals.html). Originally we wanted to use it for all `Draggable`s while dragging. Unfortunately it has a big performance penalty - especially when dragging nodes with a lot of children ([React issue](https://github.com/facebook/react/issues/12247)). The reason for this is because components moving to a `React.Portal` are mounted and remounted which is quite expensive. Therefore we are currently not supporting it out of the box.
+React provides a first class api for using `portals`: [`ReactDOM.createPortal`](https://reactjs.org/docs/portals.html). Originally we wanted to use it for all ` `s while dragging. Unfortunately it has a big performance penalty - especially when dragging nodes with a lot of children ([React issue](https://github.com/facebook/react/issues/12247)). The reason for this is because components moving to a `ReactDOM.createPortal` are mounted and remounted which is quite expensive. Therefore we are currently not supporting it out of the box.
-If your `Draggable` does not have many children nodes then you are welcome to use `React.Portal` on top of `react-beautiful-dnd`. If you are simply dragging cards in a list then you _should_ be fine using `React.Portal`. However, if you are dragging a column full of cards then you will get significant jank when a drag is starting.
+If your ` ` does not have many children nodes then you are welcome to use `ReactDOM.createPortal` on top of `react-beautiful-dnd`. If you are simply dragging cards in a list then you _should_ be fine using `ReactDOM.createPortal`. However, if you are dragging a column full of cards then you will get significant jank when a drag is starting.
## Example
-We have created a [working example](https://react-beautiful-dnd.netlify.com/?selectedKind=Portals&selectedStory=Using%20your%20own%20portal&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel) that uses `React.Portal` to guide you. You can view the [source here](https://github.com/atlassian/react-beautiful-dnd/blob/master/stories/11-portal.stories.js).
+We have created a [working example](https://react-beautiful-dnd.netlify.com/?selectedKind=Portals&selectedStory=Using%20your%20own%20portal&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel) that uses `ReactDOM.createPortal` to guide you. You can view the [source here](https://github.com/atlassian/react-beautiful-dnd/blob/master/stories/11-portal.stories.js).
## Tables
-If you are doing drag and drop reordering within a `` we have created a portal section inside our [table guide](/docs/patterns/tables).
+If you are doing drag and drop reordering within a `` we have created a portal section inside our [table guide](/docs/patterns/tables.md)
+
+[← Back to documentation](/README.md#documentation-).
diff --git a/docs/sensors/keyboard.md b/docs/sensors/keyboard.md
new file mode 100644
index 0000000000..9c39f51636
--- /dev/null
+++ b/docs/sensors/keyboard.md
@@ -0,0 +1,43 @@
+# Keyboard dragging
+
+`react-beautiful-dnd` supports dragging with only a keyboard. We have audited how our keyboard shortcuts interact with standard browser keyboard interactions. When the user is not dragging they can use their keyboard as they normally would. While dragging we override and disable certain browser shortcuts (such as `tab`) to ensure a fluid experience for the user.
+
+> To see more indepth information about how we impact standard browser events see our [how we use DOM events guide](/docs/guides/how-we-use-dom-events.md)
+
+## Keyboard shortcuts: keyboard dragging
+
+When a drag is not occurring, the user will be able to navigate through the ` `'s on a page using the standard **tab** tab ↹ key to move forward through the tabbable elements and (**shift** + **tab**) (shift + )tab ↹ ) to move backwards. We achieve this by adding a `tab-index` to the ` `. When a ` ` has focus the **spacebar** space will **lift** a ` `. This will start the drag.
+
+Once a drag is started the following keyboard shortcuts can be used:
+
+- **spacebar** space - drop the ` `
+- **escape** esc - cancel the drag
+
+The following commands are also available but they depend on the `type` of ` ` that the ` ` is _currently_ in:
+
+### Within a vertical list
+
+- **Up arrow** ↑ - move a ` ` upwards in a ` `
+- **Down arrow** ↓ - move a ` ` downwards in a ` `
+- **Right arrow** → - move a ` ` to a ` ` to the _right_ of the current ` ` (move to new list)
+- **Left arrow** ← - move a ` ` to a ` ` to the _left_ of the current ` ` (move to new list)
+
+### Within a horizontal list
+
+- **Up arrow** ↑ - move a ` ` to a ` ` to _above_ the current ` ` (move to new list)
+- **Down arrow** ↓ - move a ` ` to a ` ` to _below_ the current ` ` (move to new list)
+- **Right arrow** → - move a ` ` to the _right_ in the current ` `
+- **Left arrow** ← - move a ` ` to the _left_ in the current ` `
+
+During a drag the following standard keyboard events have their default behaviour prevented (through `event.preventDefault()`) to avoid a bad experience:
+
+- **tab** tab ↹ - preventing tabbing
+- **enter** ⏎ - preventing submission
+
+## Auto scrolling
+
+When dragging with a keyboard, `react-beautiful-dnd` will also perform [auto scrolling](/docs/guides/auto-scrolling.md) operations to ensure the item can be moved around
+
+[auto-scroll-board-keyboard](https://user-images.githubusercontent.com/2182637/36520650-3d3638f8-17e6-11e8-9cba-1fb439070285.gif)
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/sensors/mouse.md b/docs/sensors/mouse.md
new file mode 100644
index 0000000000..2a4805ed85
--- /dev/null
+++ b/docs/sensors/mouse.md
@@ -0,0 +1,28 @@
+# Mouse dragging
+
+## Sloppy clicks and click prevention 🐱🎁
+
+When a user presses the mouse down on an element, we cannot determine if the user was clicking or dragging. Also, sometimes when a user clicks they can move the cursor slightly — a sloppy click. So we only start a drag once the user has moved beyond a certain distance with the mouse down (the drag threshold) — more than they would if they were just making a sloppy click. If the drag threshold is not exceeded then the user interaction behaves just like a regular click. If the drag threshold is exceeded then the interaction will be classified as a drag and the standard click behaviour will not occur.
+
+This allows consumers to wrap interactive elements such as an anchor and have it be both a standard anchor as well as a draggable item in a natural way.
+
+(🐱🎁 is a [schrodinger's cat](https://www.youtube.com/watch?v=IOYyCHGWJq4) joke)
+
+> To see more in depth information about how we impact standard browser events see our [how we use DOM events guide](/docs/guides/how-we-use-dom-events.md)
+
+## Keyboard shortcuts
+
+When a drag **is not occurring** `react-beautiful-dnd` does not impact any of the standard keyboard interactions (it has no listeners bound).
+
+When a drag **is occurring** with a _mouse_ the user is able to execute the following keyboard shortcuts:
+
+- **escape** esc - cancel the drag
+
+During a mouse drag the following standard keyboard events are prevented to prevent a bad experience:
+
+- **tab** tab ↹ - preventing tabbing
+- **enter** ⏎ - preventing submission
+
+Other than these explicitly prevented keyboard events all standard keyboard events should work as expected.
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/sensors/touch.md b/docs/sensors/touch.md
new file mode 100644
index 0000000000..6e919565ef
--- /dev/null
+++ b/docs/sensors/touch.md
@@ -0,0 +1,56 @@
+# Touch dragging
+
+`react-beautiful-dnd` supports dragging on touch devices such as mobiles and tablets.
+
+![Mobile landscape](https://github.com/alexreardon/files/blob/master/resources/iphone-landscape.gif?raw=true)
+
+> Recorded on iPhone 6s
+
+## Understanding intention: tap, force press, scroll and drag
+
+When a user presses their finger (or other input) on a ` ` we are not sure if they where intending to _tap_, _force press_, _scroll the container_ or _drag_. **As much as possible `react-beautiful-dnd` aims to ensure that a users default interaction experience remains unaffected**.
+
+> To see more indepth information about how we impact standard browser events see our [how we use DOM events guide](/docs/guides/how-we-use-dom-events.md)
+
+## Starting a drag: long press
+
+A user can start a drag by holding their finger 👇 on an element for a small period of time 🕑 (long press)
+
+## Tap support
+
+If the user lifts their finger before the timer is finished then we release the event to the browser for it to determine whether to perform the standard tap / click action. This allows you to have a ` ` that is both clickable such as a anchor as well as draggable. If the item was dragged then we block the tap action from occurring.
+
+## Native scrolling support
+
+If we detect a `touchmove` before the long press timer expires we cancel the pending drag and allow the user to scroll normally. This means that the user needs to be fairly intentional and precise with their grabbing. Once the first `touchmove` occurs we have to either opt in or out of native scrolling.
+
+- If the long press timer **has not** expired: _allow native scrolling and prevent dragging_
+- If the long press timer **has** expired: _a drag has started and we prevent native scrolling_
+
+## Force press support
+
+> Safari only
+
+If the user force presses on the element before they have moved the element (even if a drag has already started) then the drag is cancelled and the standard force press action occurs. For an anchor this is a website preview.
+
+Unfortunately, heavy presses can cancel a drag. It can be tricky at times to get the right amount of pressure to correctly use touch dragging. This can be frustrating for users. If you want to opt-out of respecting force touch for the element to allow a more consistent touch dragging experience you can set `shouldRespectForceTouch` to `false` on a ` `. [More information](/docs/api/draggable.md)
+
+## Vibration
+
+> This is merely an idea - it is up to you to add this if you want this behavior.
+
+If you like you could also trigger a [vibration event](https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API) when the user picks up a ` `. This can provide tactile feedback that the user is doing something. It currently is only supported in Chrome on Android.
+
+```js
+class App extends React.Component {
+ onDragStart = () => {
+ // good times
+ if (window.navigator.vibrate) {
+ window.navigator.vibrate(100);
+ }
+ };
+ /*...*/
+}
+```
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/support/community-and-addons.md b/docs/support/community-and-addons.md
new file mode 100644
index 0000000000..2d2296f5b6
--- /dev/null
+++ b/docs/support/community-and-addons.md
@@ -0,0 +1,16 @@
+# Community and addons
+
+## Community ❤️👋
+
+- [kanban-dnd](https://kanban-dnd.glitch.me) \- A Kanban style to-do list, with the ability to create custom lanes and reorder them on the fly. - Simple Trello - A simple cloning version of Trello, using React ecosystem.
+ - [Demo](https://simple-trello.netlify.com/)
+ - [Source](https://github.com/ng-hai/simple-trello)
+- 🎮 A drag'n'drop Checkers game
+ - [Demo](https://checkers-game.netlify.com/)
+ - [Source](https://github.com/emanuellarini/checkers)
+
+## Addons
+
+- [natural-drag-animation-rbdnd](https://github.com/rokborf/natural-drag-animation-rbdnd) adds natural dragging animation
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/support/engineering-health.md b/docs/support/engineering-health.md
new file mode 100644
index 0000000000..17f87487df
--- /dev/null
+++ b/docs/support/engineering-health.md
@@ -0,0 +1,45 @@
+# Engineering health
+
+[![CircleCI branch](https://img.shields.io/circleci/project/github/atlassian/react-beautiful-dnd/master.svg)](https://circleci.com/gh/atlassian/react-beautiful-dnd/tree/master)
+
+## Typed
+
+[![Typed with flow](https://img.shields.io/badge/typed%20with-flow-brightgreen.svg?style=flat)](https://flow.org/)
+
+This codebase is typed with [flow](https://flow.org) to promote greater internal consistency and more resilient code.
+
+You can learn more about our `TypeScript` and `flow` support on our [types guide](/docs/guides/types.md).
+
+## Tested
+
+[![Tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://www.npmjs.com/package/react-beautiful-dnd) [![Tested with cypress](https://img.shields.io/badge/tested%20with-cypress-brightgreen.svg?style=flat)](https://www.cypress.io/)
+
+This code base employs a number of different testing strategies including unit, integration, browser and performance tests. Testing various aspects of the system helps to promote its quality and stability.
+
+While code coverage is [not a guarantee of code health](https://stackoverflow.com/a/90021/1374236), it is a good indicator. This code base currently sits at **~94% coverage**.
+
+## Linting
+
+- [`eslint`](https://eslint.org/)
+- [`stylelint`](https://github.com/stylelint/stylelint)
+- [`prettier`](https://github.com/prettier/prettier) - well, not strictly a linter, but close enough
+
+## Performance
+
+[![CircleCI branch](https://img.shields.io/badge/speed-blazing%20%F0%9F%94%A5-brightgreen.svg?style=flat)](https://circleci.com/gh/atlassian/react-beautiful-dnd/tree/master)
+
+This codebase is designed to be **extremely performant** - it is part of its DNA. It is designed to perform the smallest amount of updates possible. You can have a read about performance work done for `react-beautiful-dnd` here:
+
+- [Rethinking drag and drop](https://medium.com/@alexandereardon/rethinking-drag-and-drop-d9f5770b4e6b)
+- [Dragging React performance forward](https://medium.com/@alexandereardon/dragging-react-performance-forward-688b30d40a33)
+- [Grabbing the flame 🔥](https://medium.com/@alexandereardon/grabbing-the-flame-290c794fe852)
+
+> More in [media](/docs/support/media.md)
+
+## Size
+
+[![minzip](https://img.shields.io/bundlephobia/minzip/react-beautiful-dnd.svg)](https://www.npmjs.com/package/react-beautiful-dnd)
+
+Great care has been taken to keep the library as light as possible. There could be a smaller net cost if you where already using one of the underlying dependencies.
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/media.md b/docs/support/media.md
similarity index 95%
rename from docs/media.md
rename to docs/support/media.md
index 217a900c8e..4cdf5c3c07 100644
--- a/docs/media.md
+++ b/docs/support/media.md
@@ -50,6 +50,7 @@ This page contains a list of articles, blogs and newsletters that `react-beautif
## Articles and blogs
+- [Dynamically Update Positions During Drag Using react-beautiful-dnd](https://medium.com/@egiblin88/dynamically-update-positions-during-drag-using-react-beautiful-dnd-4a986d704c2e)
- [Want To Recruit Better Engineers? Open Source Your Code](https://angel.co/blog/want-to-recruit-better-engineers-open-source-your-code)
- [How To Implement Better Drag and Drop in your React App](https://blog.bitsrc.io/implement-better-drag-and-drop-in-your-react-app-beafc4451599)
- [Beautiful drag and drop with React — The beginner’s guide](https://medium.com/@AlejandroSobko/7798e3928290)
@@ -58,3 +59,5 @@ This page contains a list of articles, blogs and newsletters that `react-beautif
- 15 Interesting JavaScript and CSS Libraries for September 2017 [September edition](https://tutorialzine.com/2017/09/15-interesting-javascript-and-css-libraries-for-september-2017)
- Mybridge React.JS Top 10 Articles For the Past Month [v.Sep 2017](https://medium.mybridge.co/react-js-top-10-articles-for-the-past-month-v-sep-2017-1894c4d91e0c)
- Inside Dev [Sep 3rd, 2017](https://inside.com/campaigns/inside-dev-2017-09-03-3154/sections/dive-deeper-arcore-17345)
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/docs/support/upgrading.md b/docs/support/upgrading.md
new file mode 100644
index 0000000000..c4cd6d4c97
--- /dev/null
+++ b/docs/support/upgrading.md
@@ -0,0 +1,13 @@
+# Upgrading
+
+We have created upgrade instructions in our [Github release notes](https://github.com/atlassian/react-beautiful-dnd/releases) to help you upgrade to the latest version!
+
+- [Upgrading from `9.x` to `10.x`](https://github.com/atlassian/react-beautiful-dnd/releases/tag/v10.0.0)
+- [Upgrading from `8.x` to `9.x`](https://github.com/atlassian/react-beautiful-dnd/releases/tag/v9.0.0)
+- [Upgrading from `7.x` to `8.x`](https://github.com/atlassian/react-beautiful-dnd/releases/tag/v8.0.0)
+- [Upgrading from `6.x` to `7.x`](https://github.com/atlassian/react-beautiful-dnd/releases/tag/v7.0.0)
+- [Upgrading from `5.x` to `6.x`](https://github.com/atlassian/react-beautiful-dnd/releases/tag/v6.0.0)
+- [Upgrading from `4.x` to `5.x`](https://github.com/atlassian/react-beautiful-dnd/releases/tag/v5.0.0)
+- [Upgrading from `3.x` to `4.x`](https://github.com/atlassian/react-beautiful-dnd/releases/tag/v4.0.0)
+
+[← Back to documentation](/README.md#documentation-)
diff --git a/flow-typed/custom/cypress.js b/flow-typed/custom/cypress.js
new file mode 100644
index 0000000000..3af9a7ab8d
--- /dev/null
+++ b/flow-typed/custom/cypress.js
@@ -0,0 +1,5 @@
+// There is currently no flowtype definition for cypress
+// Currently just opting out of flow for the cy global
+// https://github.com/cypress-io/cypress/issues/2732
+// https://github.com/flow-typed/flow-typed/pull/3028
+declare function cy(...any[]): any;
diff --git a/flow-typed/npm/@atlaskit/css-reset_vx.x.x.js b/flow-typed/npm/@atlaskit/css-reset_vx.x.x.js
new file mode 100644
index 0000000000..7afb5b9615
--- /dev/null
+++ b/flow-typed/npm/@atlaskit/css-reset_vx.x.x.js
@@ -0,0 +1,18 @@
+// flow-typed signature: e34717b0945a9feff43c13f21745f7b0
+// flow-typed version: <>/@atlaskit/css-reset_v^3.0.6/flow_v0.94.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ * '@atlaskit/css-reset'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the
+ * community by sending a pull request to:
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module '@atlaskit/css-reset' {
+ declare module.exports: any;
+}
diff --git a/flow-typed/npm/@babel/core_vx.x.x.js b/flow-typed/npm/@babel/core_vx.x.x.js
index 52a87e5a4e..7cdce0452d 100644
--- a/flow-typed/npm/@babel/core_vx.x.x.js
+++ b/flow-typed/npm/@babel/core_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: cdaf01d23fcb9f1d0d773bf340f694ee
-// flow-typed version: <>/@babel/core_v^7.2.2/flow_v0.91.0
+// flow-typed signature: ae97b7bd25c25f8a2f2e18fa65fccede
+// flow-typed version: <>/@babel/core_v^7.3.4/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/@babel/plugin-proposal-class-properties_vx.x.x.js b/flow-typed/npm/@babel/plugin-proposal-class-properties_vx.x.x.js
index 426d9f4ddb..317e1e2a9b 100644
--- a/flow-typed/npm/@babel/plugin-proposal-class-properties_vx.x.x.js
+++ b/flow-typed/npm/@babel/plugin-proposal-class-properties_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 3577a680e5107e38c967a900971b8fea
-// flow-typed version: <>/@babel/plugin-proposal-class-properties_v^7.3.0/flow_v0.91.0
+// flow-typed signature: 61486cb068ce21681d4e2d2640db10f1
+// flow-typed version: <>/@babel/plugin-proposal-class-properties_v^7.3.4/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/@babel/plugin-transform-modules-commonjs_vx.x.x.js b/flow-typed/npm/@babel/plugin-transform-modules-commonjs_vx.x.x.js
index ce5fa658fb..1acdb71fc7 100644
--- a/flow-typed/npm/@babel/plugin-transform-modules-commonjs_vx.x.x.js
+++ b/flow-typed/npm/@babel/plugin-transform-modules-commonjs_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 0419f78009b9d5448c0110f2bdd00bc7
-// flow-typed version: <>/@babel/plugin-transform-modules-commonjs_v^7.2.0/flow_v0.91.0
+// flow-typed signature: aed1046904587bce450b25f727035dae
+// flow-typed version: <>/@babel/plugin-transform-modules-commonjs_v^7.2.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/@babel/plugin-transform-runtime_vx.x.x.js b/flow-typed/npm/@babel/plugin-transform-runtime_vx.x.x.js
index 5c367442f5..c8bd6ce0d1 100644
--- a/flow-typed/npm/@babel/plugin-transform-runtime_vx.x.x.js
+++ b/flow-typed/npm/@babel/plugin-transform-runtime_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 271ddea8164eb3e5285523531c885d39
-// flow-typed version: <>/@babel/plugin-transform-runtime_v^7.2.0/flow_v0.91.0
+// flow-typed signature: 3bbc69696c5abbcf0994313535fff166
+// flow-typed version: <>/@babel/plugin-transform-runtime_v^7.3.4/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/@babel/preset-env_vx.x.x.js b/flow-typed/npm/@babel/preset-env_vx.x.x.js
index f5f9a9c9bc..8071dca8c0 100644
--- a/flow-typed/npm/@babel/preset-env_vx.x.x.js
+++ b/flow-typed/npm/@babel/preset-env_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: c079ad559460b4113eeaf5f4cadf3845
-// flow-typed version: <>/@babel/preset-env_v^7.3.0/flow_v0.91.0
+// flow-typed signature: 748b5d288cc53368f09f32c65aff2c02
+// flow-typed version: <>/@babel/preset-env_v^7.3.4/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/@babel/preset-flow_vx.x.x.js b/flow-typed/npm/@babel/preset-flow_vx.x.x.js
index 8b58ba5151..634aa53973 100644
--- a/flow-typed/npm/@babel/preset-flow_vx.x.x.js
+++ b/flow-typed/npm/@babel/preset-flow_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: a95f05347d2d228e256b91c2292f0e6f
-// flow-typed version: <>/@babel/preset-flow_v^7.0.0/flow_v0.91.0
+// flow-typed signature: ad96fb37691315cf15ed6c2a7d890024
+// flow-typed version: <>/@babel/preset-flow_v^7.0.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/@babel/preset-react_vx.x.x.js b/flow-typed/npm/@babel/preset-react_vx.x.x.js
index 3f24071f0f..3d69f48490 100644
--- a/flow-typed/npm/@babel/preset-react_vx.x.x.js
+++ b/flow-typed/npm/@babel/preset-react_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 8c661647d9630147c1e178ef1ad73935
-// flow-typed version: <>/@babel/preset-react_v^7.0.0/flow_v0.91.0
+// flow-typed signature: e7347ed70897733b4d136cb0cb8ae5c4
+// flow-typed version: <>/@babel/preset-react_v^7.0.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/@babel/runtime-corejs2_vx.x.x.js b/flow-typed/npm/@babel/runtime-corejs2_vx.x.x.js
index 61aa9ad125..b888d9709a 100644
--- a/flow-typed/npm/@babel/runtime-corejs2_vx.x.x.js
+++ b/flow-typed/npm/@babel/runtime-corejs2_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 7dbf62d607ea8c2711d638305c45a095
-// flow-typed version: <>/@babel/runtime-corejs2_v^7.3.0/flow_v0.91.0
+// flow-typed signature: ed8eae3fefe7ee2b02916c13ed12bb49
+// flow-typed version: <>/@babel/runtime-corejs2_v^7.3.4/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/@storybook/addon-options_v4.x.x.js b/flow-typed/npm/@storybook/addon-options_v4.x.x.js
new file mode 100644
index 0000000000..25335c2e06
--- /dev/null
+++ b/flow-typed/npm/@storybook/addon-options_v4.x.x.js
@@ -0,0 +1,165 @@
+// flow-typed signature: d87955256c0438e8d919bd2cfe5423e9
+// flow-typed version: 028ef45280/@storybook/addon-options_v4.x.x/flow_>=v0.25.x
+
+declare module '@storybook/addon-options' {
+ declare type Theme = {
+ /**
+ * applied to root `background`
+ * @default: 'linear-gradient(to bottom right, black, gray'
+ */
+ mainBackground?: string,
+ /**
+ * applied to panels `border`
+ * @default: '1px solid rgba(0,0,0,0.1)'
+ */
+ mainBorder?: string,
+ /**
+ * applied for most borders
+ * @default: 'rgba(0,0,0,0.1)'
+ */
+ mainBorderColor?: string,
+ /**
+ * applied to panels, buttons, inputs
+ * @default: 4
+ */
+ mainBorderRadius?: string,
+ /**
+ * applied to panels `background`
+ * @default: 'rgba(255,255,255,0.89)'
+ */
+ mainFill?: string,
+ /**
+ * applied to TabsBar `background`
+ * @default: 'rgba(255,255,255,1)'
+ */
+ barFill?: string,
+ /**
+ * applied to Input `background`
+ * @default: 'rgba(0,0,0,0.05)'
+ */
+ inputFill?: string,
+ /**
+ * applied to root `font-family`
+ */
+ mainTextFace?: string,
+ /**
+ * applied to root & buttons & input `color`
+ * @default: black
+ */
+ mainTextColor?: string,
+ /**
+ * applied to root
+ * @default: 13
+ */
+ mainTextSize?: string,
+ /**
+ * applied in less important text
+ * @default: 'rgba(0,0,0,0.4)'
+ */
+ dimmedTextColor?: string,
+ /**
+ * applied to indicate selection
+ * @default: '#9fdaff'
+ */
+ highlightColor?: string,
+ /**
+ * applied to indicate positive
+ * @default: '#0edf62'
+ */
+ successColor?: string,
+ /**
+ * applied to indicate negative
+ * @default: '#ff3f3f'
+ */
+ failColor?: string,
+ /**
+ * applied to indicate ow-ow
+ * @default: 'orange'
+ */
+ warnColor?: string,
+ /**
+ * applied to pre,
+ */
+ monoTextFace?: string,
+ /**
+ * applied to space panels
+ * @default: 10
+ */
+ layoutMargin?: string,
+ /**
+ * applied to overlay `background`
+ * @default: 'linear-gradient(to bottom right, rgba(233, 233, 233, 0.6), rgba(255, 255, 255, 0.8))'
+ */
+ overlayBackground?: string,
+ };
+
+ declare type Options = {
+ theme?: Theme,
+ /**
+ * name to display in the top left corner
+ */
+ name?: string,
+ /**
+ * URL for name in top left corner to link to
+ */
+ url?: string,
+ /**
+ * show story component as full screen
+ */
+ goFullScreen?: boolean,
+ /**
+ * display panel that shows a list of stories
+ */
+ showStoriesPanel?: boolean,
+ /**
+ * display panel that shows addon configurations
+ */
+ showAddonPanel?: boolean,
+ /**
+ * display floating search box to search through stories
+ */
+ showSearchBox?: boolean,
+ /**
+ * show addon panel as a vertical panel on the right
+ */
+ addonPanelInRight?: boolean,
+ /**
+ * sorts stories
+ */
+ sortStoriesByKind?: boolean,
+ /**
+ * regex for finding the hierarchy separator
+ * @example:
+ * null - turn off hierarchy
+ * /\// - split by `/`
+ * /\./ - split by `.`
+ * /\/|\./ - split by `/` or `.`
+ */
+ hierarchySeparator?: RegExp | string,
+ /**
+ * regex for finding the hierarchy root separator
+ * @example:
+ * null - turn off multiple hierarchy roots
+ * /\|/ - split by `|`
+ */
+ hierarchyRootSeparator?: RegExp | string,
+ /**
+ * sidebar tree animations
+ */
+ sidebarAnimations?: boolean,
+ /**
+ * id to select an addon panel
+ * The order of addons in the "Addon panel" is the same as you import them in 'addons.js'.
+ * The first panel will be opened by default as you run Storybook
+ */
+ selectedAddonPanel?: string,
+ /**
+ * enable/disable shortcuts
+ * @default true
+ */
+ enableShortcuts?: boolean,
+ };
+
+ declare function setOptions(options: $Exact): void; // deprecated: use `withOptions`
+ declare function withOptions(options: $Exact): void;
+}
diff --git a/flow-typed/npm/@storybook/addons_vx.x.x.js b/flow-typed/npm/@storybook/addons_vx.x.x.js
new file mode 100644
index 0000000000..d04d932553
--- /dev/null
+++ b/flow-typed/npm/@storybook/addons_vx.x.x.js
@@ -0,0 +1,81 @@
+// flow-typed signature: 81dc9300b3a07ebac0bbe937e70b3aa1
+// flow-typed version: <>/@storybook/addons_v^4.1.13/flow_v0.93.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ * '@storybook/addons'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the
+ * community by sending a pull request to:
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module '@storybook/addons' {
+ declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module '@storybook/addons/dist/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/addons/dist/make-decorator' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/addons/dist/make-decorator.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/addons/dist/storybook-channel-mock' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/addons/src/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/addons/src/make-decorator' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/addons/src/make-decorator.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/addons/src/storybook-channel-mock' {
+ declare module.exports: any;
+}
+
+// Filename aliases
+declare module '@storybook/addons/dist/index.js' {
+ declare module.exports: $Exports<'@storybook/addons/dist/index'>;
+}
+declare module '@storybook/addons/dist/make-decorator.js' {
+ declare module.exports: $Exports<'@storybook/addons/dist/make-decorator'>;
+}
+declare module '@storybook/addons/dist/make-decorator.test.js' {
+ declare module.exports: $Exports<'@storybook/addons/dist/make-decorator.test'>;
+}
+declare module '@storybook/addons/dist/storybook-channel-mock.js' {
+ declare module.exports: $Exports<'@storybook/addons/dist/storybook-channel-mock'>;
+}
+declare module '@storybook/addons/src/index.js' {
+ declare module.exports: $Exports<'@storybook/addons/src/index'>;
+}
+declare module '@storybook/addons/src/make-decorator.js' {
+ declare module.exports: $Exports<'@storybook/addons/src/make-decorator'>;
+}
+declare module '@storybook/addons/src/make-decorator.test.js' {
+ declare module.exports: $Exports<'@storybook/addons/src/make-decorator.test'>;
+}
+declare module '@storybook/addons/src/storybook-channel-mock.js' {
+ declare module.exports: $Exports<'@storybook/addons/src/storybook-channel-mock'>;
+}
diff --git a/flow-typed/npm/@storybook/react_vx.x.x.js b/flow-typed/npm/@storybook/react_vx.x.x.js
new file mode 100644
index 0000000000..fe39d3a47b
--- /dev/null
+++ b/flow-typed/npm/@storybook/react_vx.x.x.js
@@ -0,0 +1,361 @@
+// flow-typed signature: 451ec325629cf7b9ff2a8a35a24092cf
+// flow-typed version: <>/@storybook/react_v^5.0.1/flow_v0.94.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ * '@storybook/react'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the
+ * community by sending a pull request to:
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module '@storybook/react' {
+ declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module '@storybook/react/bin/build' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/bin/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/demo' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/client/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/client/preview/element_check' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/client/preview/element_check.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/client/preview/globals' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/client/preview/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/client/preview/index.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/client/preview/render' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/demo/Button' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/demo/Welcome' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/__mocks__/mockConfig' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/__mocks__/mockRules' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/__mocks__/react-scripts-2-0-0/config/webpack.config.dev' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/__mocks__/react-scripts-2-1-0/config/webpack.config.dev' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/build' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/cra-config' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/cra-config.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/framework-preset-cra' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/framework-preset-react-docgen' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/framework-preset-react-docgen.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/framework-preset-react' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/dist/server/options' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/client/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/client/preview/element_check' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/client/preview/element_check.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/client/preview/globals' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/client/preview/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/client/preview/index.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/client/preview/render' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/demo/Button' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/demo/Welcome' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/__mocks__/mockConfig' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/__mocks__/mockRules' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/__mocks__/react-scripts-2-0-0/config/webpack.config.dev' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/__mocks__/react-scripts-2-1-0/config/webpack.config.dev' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/build' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/cra-config' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/cra-config.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/framework-preset-cra' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/framework-preset-react-docgen' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/framework-preset-react-docgen.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/framework-preset-react' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/src/server/options' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/react/standalone' {
+ declare module.exports: any;
+}
+
+// Filename aliases
+declare module '@storybook/react/bin/build.js' {
+ declare module.exports: $Exports<'@storybook/react/bin/build'>;
+}
+declare module '@storybook/react/bin/index.js' {
+ declare module.exports: $Exports<'@storybook/react/bin/index'>;
+}
+declare module '@storybook/react/demo.js' {
+ declare module.exports: $Exports<'@storybook/react/demo'>;
+}
+declare module '@storybook/react/dist/client/index.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/client/index'>;
+}
+declare module '@storybook/react/dist/client/preview/element_check.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/client/preview/element_check'>;
+}
+declare module '@storybook/react/dist/client/preview/element_check.test.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/client/preview/element_check.test'>;
+}
+declare module '@storybook/react/dist/client/preview/globals.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/client/preview/globals'>;
+}
+declare module '@storybook/react/dist/client/preview/index.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/client/preview/index'>;
+}
+declare module '@storybook/react/dist/client/preview/index.test.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/client/preview/index.test'>;
+}
+declare module '@storybook/react/dist/client/preview/render.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/client/preview/render'>;
+}
+declare module '@storybook/react/dist/demo/Button.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/demo/Button'>;
+}
+declare module '@storybook/react/dist/demo/Welcome.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/demo/Welcome'>;
+}
+declare module '@storybook/react/dist/server/__mocks__/mockConfig.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/__mocks__/mockConfig'>;
+}
+declare module '@storybook/react/dist/server/__mocks__/mockRules.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/__mocks__/mockRules'>;
+}
+declare module '@storybook/react/dist/server/__mocks__/react-scripts-2-0-0/config/webpack.config.dev.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/__mocks__/react-scripts-2-0-0/config/webpack.config.dev'>;
+}
+declare module '@storybook/react/dist/server/__mocks__/react-scripts-2-1-0/config/webpack.config.dev.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/__mocks__/react-scripts-2-1-0/config/webpack.config.dev'>;
+}
+declare module '@storybook/react/dist/server/build.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/build'>;
+}
+declare module '@storybook/react/dist/server/cra-config.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/cra-config'>;
+}
+declare module '@storybook/react/dist/server/cra-config.test.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/cra-config.test'>;
+}
+declare module '@storybook/react/dist/server/framework-preset-cra.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/framework-preset-cra'>;
+}
+declare module '@storybook/react/dist/server/framework-preset-react-docgen.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/framework-preset-react-docgen'>;
+}
+declare module '@storybook/react/dist/server/framework-preset-react-docgen.test.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/framework-preset-react-docgen.test'>;
+}
+declare module '@storybook/react/dist/server/framework-preset-react.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/framework-preset-react'>;
+}
+declare module '@storybook/react/dist/server/index.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/index'>;
+}
+declare module '@storybook/react/dist/server/options.js' {
+ declare module.exports: $Exports<'@storybook/react/dist/server/options'>;
+}
+declare module '@storybook/react/src/client/index.js' {
+ declare module.exports: $Exports<'@storybook/react/src/client/index'>;
+}
+declare module '@storybook/react/src/client/preview/element_check.js' {
+ declare module.exports: $Exports<'@storybook/react/src/client/preview/element_check'>;
+}
+declare module '@storybook/react/src/client/preview/element_check.test.js' {
+ declare module.exports: $Exports<'@storybook/react/src/client/preview/element_check.test'>;
+}
+declare module '@storybook/react/src/client/preview/globals.js' {
+ declare module.exports: $Exports<'@storybook/react/src/client/preview/globals'>;
+}
+declare module '@storybook/react/src/client/preview/index.js' {
+ declare module.exports: $Exports<'@storybook/react/src/client/preview/index'>;
+}
+declare module '@storybook/react/src/client/preview/index.test.js' {
+ declare module.exports: $Exports<'@storybook/react/src/client/preview/index.test'>;
+}
+declare module '@storybook/react/src/client/preview/render.js' {
+ declare module.exports: $Exports<'@storybook/react/src/client/preview/render'>;
+}
+declare module '@storybook/react/src/demo/Button.js' {
+ declare module.exports: $Exports<'@storybook/react/src/demo/Button'>;
+}
+declare module '@storybook/react/src/demo/Welcome.js' {
+ declare module.exports: $Exports<'@storybook/react/src/demo/Welcome'>;
+}
+declare module '@storybook/react/src/server/__mocks__/mockConfig.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/__mocks__/mockConfig'>;
+}
+declare module '@storybook/react/src/server/__mocks__/mockRules.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/__mocks__/mockRules'>;
+}
+declare module '@storybook/react/src/server/__mocks__/react-scripts-2-0-0/config/webpack.config.dev.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/__mocks__/react-scripts-2-0-0/config/webpack.config.dev'>;
+}
+declare module '@storybook/react/src/server/__mocks__/react-scripts-2-1-0/config/webpack.config.dev.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/__mocks__/react-scripts-2-1-0/config/webpack.config.dev'>;
+}
+declare module '@storybook/react/src/server/build.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/build'>;
+}
+declare module '@storybook/react/src/server/cra-config.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/cra-config'>;
+}
+declare module '@storybook/react/src/server/cra-config.test.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/cra-config.test'>;
+}
+declare module '@storybook/react/src/server/framework-preset-cra.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/framework-preset-cra'>;
+}
+declare module '@storybook/react/src/server/framework-preset-react-docgen.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/framework-preset-react-docgen'>;
+}
+declare module '@storybook/react/src/server/framework-preset-react-docgen.test.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/framework-preset-react-docgen.test'>;
+}
+declare module '@storybook/react/src/server/framework-preset-react.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/framework-preset-react'>;
+}
+declare module '@storybook/react/src/server/index.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/index'>;
+}
+declare module '@storybook/react/src/server/options.js' {
+ declare module.exports: $Exports<'@storybook/react/src/server/options'>;
+}
+declare module '@storybook/react/standalone.js' {
+ declare module.exports: $Exports<'@storybook/react/standalone'>;
+}
diff --git a/flow-typed/npm/@storybook/theming_vx.x.x.js b/flow-typed/npm/@storybook/theming_vx.x.x.js
new file mode 100644
index 0000000000..1db33b6ef3
--- /dev/null
+++ b/flow-typed/npm/@storybook/theming_vx.x.x.js
@@ -0,0 +1,109 @@
+// flow-typed signature: c925f81bfd4a848ae4a4885c7ec61a96
+// flow-typed version: <>/@storybook/theming_v^5.0.1/flow_v0.94.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ * '@storybook/theming'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the
+ * community by sending a pull request to:
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module '@storybook/theming' {
+ declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module '@storybook/theming/dist/animation' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/base' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/create' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/ensure' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/global' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/index' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/modules/syntax' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/tests/create.test' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/themes/dark' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/themes/light' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/dist/utils' {
+ declare module.exports: any;
+}
+
+declare module '@storybook/theming/src/tests/create.test' {
+ declare module.exports: any;
+}
+
+// Filename aliases
+declare module '@storybook/theming/dist/animation.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/animation'>;
+}
+declare module '@storybook/theming/dist/base.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/base'>;
+}
+declare module '@storybook/theming/dist/create.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/create'>;
+}
+declare module '@storybook/theming/dist/ensure.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/ensure'>;
+}
+declare module '@storybook/theming/dist/global.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/global'>;
+}
+declare module '@storybook/theming/dist/index.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/index'>;
+}
+declare module '@storybook/theming/dist/modules/syntax.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/modules/syntax'>;
+}
+declare module '@storybook/theming/dist/tests/create.test.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/tests/create.test'>;
+}
+declare module '@storybook/theming/dist/themes/dark.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/themes/dark'>;
+}
+declare module '@storybook/theming/dist/themes/light.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/themes/light'>;
+}
+declare module '@storybook/theming/dist/utils.js' {
+ declare module.exports: $Exports<'@storybook/theming/dist/utils'>;
+}
+declare module '@storybook/theming/src/tests/create.test.js' {
+ declare module.exports: $Exports<'@storybook/theming/src/tests/create.test'>;
+}
diff --git a/flow-typed/npm/babel-core_vx.x.x.js b/flow-typed/npm/babel-core_vx.x.x.js
index 2b49712379..93017764d6 100644
--- a/flow-typed/npm/babel-core_vx.x.x.js
+++ b/flow-typed/npm/babel-core_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: f34a842a314cdc1c64716bc92834dadc
-// flow-typed version: <>/babel-core_v^7.0.0-bridge.0/flow_v0.91.0
+// flow-typed signature: 8c2a62cabe2f938eabcfcdeb4fb45bc0
+// flow-typed version: <>/babel-core_v^7.0.0-bridge.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/babel-eslint_vx.x.x.js b/flow-typed/npm/babel-eslint_vx.x.x.js
index 47ca7362e0..dc15925933 100644
--- a/flow-typed/npm/babel-eslint_vx.x.x.js
+++ b/flow-typed/npm/babel-eslint_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: c8a9e8d243cc8e86e93ec4f552e27e36
-// flow-typed version: <>/babel-eslint_v^10.0.1/flow_v0.91.0
+// flow-typed signature: 7deec821536f1597fae1f6cd21e9ef81
+// flow-typed version: <>/babel-eslint_v^10.0.1/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/babel-jest_vx.x.x.js b/flow-typed/npm/babel-jest_vx.x.x.js
index 4821777d4f..a07740acb3 100644
--- a/flow-typed/npm/babel-jest_vx.x.x.js
+++ b/flow-typed/npm/babel-jest_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 031657e90ad9877047e2ebfb832aa740
-// flow-typed version: <>/babel-jest_v^23.6.0/flow_v0.91.0
+// flow-typed signature: 5d14f3454fbf95b0623b5a286c57dc67
+// flow-typed version: <>/babel-jest_v^24.3.1/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/babel-loader_vx.x.x.js b/flow-typed/npm/babel-loader_vx.x.x.js
index b7cebb75e1..0cf6231589 100644
--- a/flow-typed/npm/babel-loader_vx.x.x.js
+++ b/flow-typed/npm/babel-loader_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 95130fdaa558978a55fbafedbb7d086d
-// flow-typed version: <>/babel-loader_v^8.0.5/flow_v0.91.0
+// flow-typed signature: 67633ab172e0306588506ec8c9dfb0c5
+// flow-typed version: <>/babel-loader_v^8.0.5/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/babel-plugin-dev-expression_vx.x.x.js b/flow-typed/npm/babel-plugin-dev-expression_vx.x.x.js
index 5b3c827ebf..dbe8206e8f 100644
--- a/flow-typed/npm/babel-plugin-dev-expression_vx.x.x.js
+++ b/flow-typed/npm/babel-plugin-dev-expression_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 133bdd70fba0bd2c8dcf0856400296df
-// flow-typed version: <>/babel-plugin-dev-expression_v^0.2.1/flow_v0.91.0
+// flow-typed signature: a3c0e0390f276133420c6129ff69d4cc
+// flow-typed version: <>/babel-plugin-dev-expression_v^0.2.1/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/babel-plugin-styled-components_vx.x.x.js b/flow-typed/npm/babel-plugin-styled-components_vx.x.x.js
index d5bc59f1f9..5608238ce9 100644
--- a/flow-typed/npm/babel-plugin-styled-components_vx.x.x.js
+++ b/flow-typed/npm/babel-plugin-styled-components_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 946be95c45b94ed91ef25ecf59a15089
-// flow-typed version: <>/babel-plugin-styled-components_v^1.10.0/flow_v0.91.0
+// flow-typed signature: db56562bad1d5fd4ac128ca23353cb7c
+// flow-typed version: <>/babel-plugin-styled-components_v^1.10.0/flow_v0.93.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/cross-env_vx.x.x.js b/flow-typed/npm/cross-env_vx.x.x.js
index dba7fc92ca..5620064d7c 100644
--- a/flow-typed/npm/cross-env_vx.x.x.js
+++ b/flow-typed/npm/cross-env_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: c7a514515c2991cd1a79734e619956e6
-// flow-typed version: <>/cross-env_v^5.2.0/flow_v0.91.0
+// flow-typed signature: 4b0f550a8e6f64b3a26538a2e3435a5a
+// flow-typed version: <>/cross-env_v^5.2.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/cypress_vx.x.x.js b/flow-typed/npm/cypress_vx.x.x.js
new file mode 100644
index 0000000000..16a7561bed
--- /dev/null
+++ b/flow-typed/npm/cypress_vx.x.x.js
@@ -0,0 +1,150 @@
+// flow-typed signature: 2a3d8ec6391f04fdcdb96532c0eefaa1
+// flow-typed version: <>/cypress_v^3.1.5/flow_v0.94.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ * 'cypress'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the
+ * community by sending a pull request to:
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'cypress' {
+ declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'cypress/lib/cli' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/cypress' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/errors' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/exec/open' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/exec/run' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/exec/spawn' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/exec/versions' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/exec/xvfb' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/fs' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/logger' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/tasks/cache' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/tasks/download' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/tasks/install' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/tasks/state' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/tasks/unzip' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/tasks/verify' {
+ declare module.exports: any;
+}
+
+declare module 'cypress/lib/util' {
+ declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'cypress/index' {
+ declare module.exports: $Exports<'cypress'>;
+}
+declare module 'cypress/index.js' {
+ declare module.exports: $Exports<'cypress'>;
+}
+declare module 'cypress/lib/cli.js' {
+ declare module.exports: $Exports<'cypress/lib/cli'>;
+}
+declare module 'cypress/lib/cypress.js' {
+ declare module.exports: $Exports<'cypress/lib/cypress'>;
+}
+declare module 'cypress/lib/errors.js' {
+ declare module.exports: $Exports<'cypress/lib/errors'>;
+}
+declare module 'cypress/lib/exec/open.js' {
+ declare module.exports: $Exports<'cypress/lib/exec/open'>;
+}
+declare module 'cypress/lib/exec/run.js' {
+ declare module.exports: $Exports<'cypress/lib/exec/run'>;
+}
+declare module 'cypress/lib/exec/spawn.js' {
+ declare module.exports: $Exports<'cypress/lib/exec/spawn'>;
+}
+declare module 'cypress/lib/exec/versions.js' {
+ declare module.exports: $Exports<'cypress/lib/exec/versions'>;
+}
+declare module 'cypress/lib/exec/xvfb.js' {
+ declare module.exports: $Exports<'cypress/lib/exec/xvfb'>;
+}
+declare module 'cypress/lib/fs.js' {
+ declare module.exports: $Exports<'cypress/lib/fs'>;
+}
+declare module 'cypress/lib/logger.js' {
+ declare module.exports: $Exports<'cypress/lib/logger'>;
+}
+declare module 'cypress/lib/tasks/cache.js' {
+ declare module.exports: $Exports<'cypress/lib/tasks/cache'>;
+}
+declare module 'cypress/lib/tasks/download.js' {
+ declare module.exports: $Exports<'cypress/lib/tasks/download'>;
+}
+declare module 'cypress/lib/tasks/install.js' {
+ declare module.exports: $Exports<'cypress/lib/tasks/install'>;
+}
+declare module 'cypress/lib/tasks/state.js' {
+ declare module.exports: $Exports<'cypress/lib/tasks/state'>;
+}
+declare module 'cypress/lib/tasks/unzip.js' {
+ declare module.exports: $Exports<'cypress/lib/tasks/unzip'>;
+}
+declare module 'cypress/lib/tasks/verify.js' {
+ declare module.exports: $Exports<'cypress/lib/tasks/verify'>;
+}
+declare module 'cypress/lib/util.js' {
+ declare module.exports: $Exports<'cypress/lib/util'>;
+}
diff --git a/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js b/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js
index 0188abf751..b4f3ac0382 100644
--- a/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js
+++ b/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: ad7b517f4e6d97ce3da16fcbf6055339
-// flow-typed version: <>/enzyme-adapter-react-16_v^1.7.1/flow_v0.91.0
+// flow-typed signature: 4527583de4b8266af13d4d3eb0041017
+// flow-typed version: <>/enzyme-adapter-react-16_v^1.10.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/enzyme_v3.x.x.js b/flow-typed/npm/enzyme_v3.x.x.js
index 08af916422..bf6d164cb8 100644
--- a/flow-typed/npm/enzyme_v3.x.x.js
+++ b/flow-typed/npm/enzyme_v3.x.x.js
@@ -1,49 +1,53 @@
-// flow-typed signature: 8bfb6d6a1f5b5fe7a50440d49e500f2f
-// flow-typed version: 2bcb80d5bf/enzyme_v3.x.x/flow_>=v0.53.x
-
-import * as React from "react";
+// flow-typed signature: 9e8bdbb7ab7d8c430b492854e079b001
+// flow-typed version: 3aba3ed2b8/enzyme_v3.x.x/flow_>=v0.53.x
declare module "enzyme" {
- declare type PredicateFunction = (
+ declare type PredicateFunction> = (
wrapper: T,
index: number
) => boolean;
- declare type NodeOrNodes = React.Node | Array;
- declare type EnzymeSelector = string | Class> | Object;
+ declare type NodeOrNodes = React$Node | Array;
+ declare type UntypedSelector = string | {[key: string]: number|string|boolean};
+ declare type EnzymeSelector = UntypedSelector | React$ElementType;
// CheerioWrapper is a type alias for an actual cheerio instance
// TODO: Reference correct type from cheerio's type declarations
declare type CheerioWrapper = any;
- declare class Wrapper {
- find(selector: EnzymeSelector): this,
+ declare class Wrapper {
+ find(selector: UntypedSelector): this,
+ find(selector: T): ReactWrapper,
findWhere(predicate: PredicateFunction): this,
- filter(selector: EnzymeSelector): this,
+ filter(selector: UntypedSelector): this,
+ filter(selector: T): ReactWrapper,
filterWhere(predicate: PredicateFunction): this,
hostNodes(): this,
contains(nodeOrNodes: NodeOrNodes): boolean,
- containsMatchingElement(node: React.Node): boolean,
+ containsMatchingElement(node: React$Node): boolean,
containsAllMatchingElements(nodes: NodeOrNodes): boolean,
containsAnyMatchingElements(nodes: NodeOrNodes): boolean,
dive(option?: { context?: Object }): this,
exists(selector?: EnzymeSelector): boolean,
isEmptyRender(): boolean,
- matchesElement(node: React.Node): boolean,
+ matchesElement(node: React$Node): boolean,
hasClass(className: string): boolean,
is(selector: EnzymeSelector): boolean,
isEmpty(): boolean,
not(selector: EnzymeSelector): this,
- children(selector?: EnzymeSelector): this,
+ children(selector?: UntypedSelector): this,
+ children(selector: T): ReactWrapper,
childAt(index: number): this,
- parents(selector?: EnzymeSelector): this,
+ parents(selector?: UntypedSelector): this,
+ parents(selector: T): ReactWrapper,
parent(): this,
- closest(selector: EnzymeSelector): this,
+ closest(selector: UntypedSelector): this,
+ closest(selector: T): ReactWrapper,
render(): CheerioWrapper,
renderProp(propName: string): (...args: Array) => this,
unmount(): this,
text(): string,
html(): string,
- get(index: number): React.Node,
+ get(index: number): React$Node,
getDOMNode(): HTMLElement | HTMLInputElement,
at(index: number): this,
first(): this,
@@ -54,11 +58,12 @@ declare module "enzyme" {
prop(key: string): any,
key(): string,
simulate(event: string, ...args: Array): this,
+ simulateError(error: Error): this,
slice(begin?: number, end?: number): this,
- setState(state: {}, callback?: Function): this,
- setProps(props: {}, callback?: Function): this,
+ setState(state: {}, callback?: () => void): this,
+ setProps(props: {}, callback?: () => void): this,
setContext(context: Object): this,
- instance(): React.Component<*, *>,
+ instance(): React$ElementRef,
update(): this,
debug(options?: Object): string,
type(): string | Function | null,
@@ -80,39 +85,39 @@ declare module "enzyme" {
length: number
}
- declare class ReactWrapper extends Wrapper {
- constructor(nodes: NodeOrNodes, root: any, options?: ?Object): ReactWrapper,
+ declare class ReactWrapper extends Wrapper {
+ constructor(nodes: React$Element, root: any, options?: ?Object): ReactWrapper,
mount(): this,
ref(refName: string): this,
detach(): void
}
- declare class ShallowWrapper extends Wrapper {
+ declare class ShallowWrapper extends Wrapper {
constructor(
- nodes: NodeOrNodes,
+ nodes: React$Element,
root: any,
options?: ?Object
- ): ShallowWrapper,
- equals(node: React.Node): boolean,
- shallow(options?: { context?: Object }): ShallowWrapper,
- getElement(): React.Node,
- getElements(): Array
+ ): ShallowWrapper,
+ equals(node: React$Node): boolean,
+ shallow(options?: { context?: Object }): ShallowWrapper,
+ getElement(): React$Node,
+ getElements(): Array
}
- declare function shallow(
- node: React.Node,
+ declare function shallow(
+ node: React$Element,
options?: { context?: Object, disableLifecycleMethods?: boolean }
- ): ShallowWrapper;
- declare function mount(
- node: React.Node,
+ ): ShallowWrapper;
+ declare function mount(
+ node: React$Element,
options?: {
context?: Object,
attachTo?: HTMLElement,
childContextTypes?: Object
}
- ): ReactWrapper;
- declare function render(
- node: React.Node,
+ ): ReactWrapper;
+ declare function render(
+ node: React$Element,
options?: { context?: Object }
): CheerioWrapper;
diff --git a/flow-typed/npm/eslint-config-airbnb_vx.x.x.js b/flow-typed/npm/eslint-config-airbnb_vx.x.x.js
index c8aafcb259..8ce7e5a56e 100644
--- a/flow-typed/npm/eslint-config-airbnb_vx.x.x.js
+++ b/flow-typed/npm/eslint-config-airbnb_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: c8b6332e7aa1eeec74d6131994e4af7a
-// flow-typed version: <>/eslint-config-airbnb_v^17.1.0/flow_v0.91.0
+// flow-typed signature: cd54ae6f2c247e82815d6273682ae4e9
+// flow-typed version: <>/eslint-config-airbnb_v^17.1.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/eslint-config-prettier_vx.x.x.js b/flow-typed/npm/eslint-config-prettier_vx.x.x.js
index 44483690a6..650340c1b3 100644
--- a/flow-typed/npm/eslint-config-prettier_vx.x.x.js
+++ b/flow-typed/npm/eslint-config-prettier_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 7e2ff1ddda6f573e1a2bd14aedb678b6
-// flow-typed version: <>/eslint-config-prettier_v^3.6.0/flow_v0.91.0
+// flow-typed signature: d00a1c4c4831bc64dc167172d6904ccf
+// flow-typed version: <>/eslint-config-prettier_v^4.1.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
@@ -22,6 +22,10 @@ declare module 'eslint-config-prettier' {
* require those files directly. Feel free to delete any files that aren't
* needed.
*/
+declare module 'eslint-config-prettier/@typescript-eslint' {
+ declare module.exports: any;
+}
+
declare module 'eslint-config-prettier/babel' {
declare module.exports: any;
}
@@ -46,10 +50,6 @@ declare module 'eslint-config-prettier/standard' {
declare module.exports: any;
}
-declare module 'eslint-config-prettier/typescript' {
- declare module.exports: any;
-}
-
declare module 'eslint-config-prettier/unicorn' {
declare module.exports: any;
}
@@ -59,6 +59,9 @@ declare module 'eslint-config-prettier/vue' {
}
// Filename aliases
+declare module 'eslint-config-prettier/@typescript-eslint.js' {
+ declare module.exports: $Exports<'eslint-config-prettier/@typescript-eslint'>;
+}
declare module 'eslint-config-prettier/babel.js' {
declare module.exports: $Exports<'eslint-config-prettier/babel'>;
}
@@ -83,9 +86,6 @@ declare module 'eslint-config-prettier/react.js' {
declare module 'eslint-config-prettier/standard.js' {
declare module.exports: $Exports<'eslint-config-prettier/standard'>;
}
-declare module 'eslint-config-prettier/typescript.js' {
- declare module.exports: $Exports<'eslint-config-prettier/typescript'>;
-}
declare module 'eslint-config-prettier/unicorn.js' {
declare module.exports: $Exports<'eslint-config-prettier/unicorn'>;
}
diff --git a/flow-typed/npm/eslint-plugin-cypress_vx.x.x.js b/flow-typed/npm/eslint-plugin-cypress_vx.x.x.js
new file mode 100644
index 0000000000..f545eae203
--- /dev/null
+++ b/flow-typed/npm/eslint-plugin-cypress_vx.x.x.js
@@ -0,0 +1,80 @@
+// flow-typed signature: a1f525c8201cfc45fe3601a0e9742374
+// flow-typed version: <>/eslint-plugin-cypress_v^2.2.1/flow_v0.94.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ * 'eslint-plugin-cypress'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the
+ * community by sending a pull request to:
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'eslint-plugin-cypress' {
+ declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'eslint-plugin-cypress/lib/config/recommended' {
+ declare module.exports: any;
+}
+
+declare module 'eslint-plugin-cypress/lib/rules/assertion-before-screenshot' {
+ declare module.exports: any;
+}
+
+declare module 'eslint-plugin-cypress/lib/rules/no-assigning-return-values' {
+ declare module.exports: any;
+}
+
+declare module 'eslint-plugin-cypress/lib/rules/no-unnecessary-waiting' {
+ declare module.exports: any;
+}
+
+declare module 'eslint-plugin-cypress/tests/lib/rules/assertion-before-screenshot' {
+ declare module.exports: any;
+}
+
+declare module 'eslint-plugin-cypress/tests/lib/rules/no-assigning-return-values' {
+ declare module.exports: any;
+}
+
+declare module 'eslint-plugin-cypress/tests/lib/rules/no-unnecessary-waiting' {
+ declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'eslint-plugin-cypress/index' {
+ declare module.exports: $Exports<'eslint-plugin-cypress'>;
+}
+declare module 'eslint-plugin-cypress/index.js' {
+ declare module.exports: $Exports<'eslint-plugin-cypress'>;
+}
+declare module 'eslint-plugin-cypress/lib/config/recommended.js' {
+ declare module.exports: $Exports<'eslint-plugin-cypress/lib/config/recommended'>;
+}
+declare module 'eslint-plugin-cypress/lib/rules/assertion-before-screenshot.js' {
+ declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/assertion-before-screenshot'>;
+}
+declare module 'eslint-plugin-cypress/lib/rules/no-assigning-return-values.js' {
+ declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/no-assigning-return-values'>;
+}
+declare module 'eslint-plugin-cypress/lib/rules/no-unnecessary-waiting.js' {
+ declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/no-unnecessary-waiting'>;
+}
+declare module 'eslint-plugin-cypress/tests/lib/rules/assertion-before-screenshot.js' {
+ declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/assertion-before-screenshot'>;
+}
+declare module 'eslint-plugin-cypress/tests/lib/rules/no-assigning-return-values.js' {
+ declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/no-assigning-return-values'>;
+}
+declare module 'eslint-plugin-cypress/tests/lib/rules/no-unnecessary-waiting.js' {
+ declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/no-unnecessary-waiting'>;
+}
diff --git a/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js
index 85d0e91888..e5eba5b758 100644
--- a/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js
+++ b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 37322efafd98f09973ae283648548b02
-// flow-typed version: <>/eslint-plugin-flowtype_v^3.2.1/flow_v0.91.0
+// flow-typed signature: 9adfd5a72314d1723552f99b5c14bac4
+// flow-typed version: <>/eslint-plugin-flowtype_v^3.4.2/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
@@ -94,6 +94,10 @@ declare module 'eslint-plugin-flowtype/dist/rules/noFlowFixMeComments' {
declare module.exports: any;
}
+declare module 'eslint-plugin-flowtype/dist/rules/noMixed' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-flowtype/dist/rules/noMutableArray' {
declare module.exports: any;
}
@@ -321,6 +325,9 @@ declare module 'eslint-plugin-flowtype/dist/rules/noExistentialType.js' {
declare module 'eslint-plugin-flowtype/dist/rules/noFlowFixMeComments.js' {
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noFlowFixMeComments'>;
}
+declare module 'eslint-plugin-flowtype/dist/rules/noMixed.js' {
+ declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noMixed'>;
+}
declare module 'eslint-plugin-flowtype/dist/rules/noMutableArray.js' {
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noMutableArray'>;
}
diff --git a/flow-typed/npm/eslint-plugin-import_vx.x.x.js b/flow-typed/npm/eslint-plugin-import_vx.x.x.js
index 3e3eeaf7f0..cbda30765c 100644
--- a/flow-typed/npm/eslint-plugin-import_vx.x.x.js
+++ b/flow-typed/npm/eslint-plugin-import_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 5f8a49916d66463e7e7dad93290ee627
-// flow-typed version: <>/eslint-plugin-import_v^2.14.0/flow_v0.91.0
+// flow-typed signature: ef03a90e93660a48ebbd85446b16d9ed
+// flow-typed version: <>/eslint-plugin-import_v^2.16.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
@@ -46,6 +46,10 @@ declare module 'eslint-plugin-import/config/stage-0' {
declare module.exports: any;
}
+declare module 'eslint-plugin-import/config/typescript' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-import/config/warnings' {
declare module.exports: any;
}
@@ -182,6 +186,10 @@ declare module 'eslint-plugin-import/lib/rules/no-named-default' {
declare module.exports: any;
}
+declare module 'eslint-plugin-import/lib/rules/no-named-export' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-import/lib/rules/no-namespace' {
declare module.exports: any;
}
@@ -253,6 +261,9 @@ declare module 'eslint-plugin-import/config/recommended.js' {
declare module 'eslint-plugin-import/config/stage-0.js' {
declare module.exports: $Exports<'eslint-plugin-import/config/stage-0'>;
}
+declare module 'eslint-plugin-import/config/typescript.js' {
+ declare module.exports: $Exports<'eslint-plugin-import/config/typescript'>;
+}
declare module 'eslint-plugin-import/config/warnings.js' {
declare module.exports: $Exports<'eslint-plugin-import/config/warnings'>;
}
@@ -355,6 +366,9 @@ declare module 'eslint-plugin-import/lib/rules/no-named-as-default.js' {
declare module 'eslint-plugin-import/lib/rules/no-named-default.js' {
declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-default'>;
}
+declare module 'eslint-plugin-import/lib/rules/no-named-export.js' {
+ declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-export'>;
+}
declare module 'eslint-plugin-import/lib/rules/no-namespace.js' {
declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-namespace'>;
}
diff --git a/flow-typed/npm/eslint-plugin-jest_vx.x.x.js b/flow-typed/npm/eslint-plugin-jest_vx.x.x.js
index b441d85f6c..f9e2cd5353 100644
--- a/flow-typed/npm/eslint-plugin-jest_vx.x.x.js
+++ b/flow-typed/npm/eslint-plugin-jest_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 3857d5fd93a4c542d6d93d56a1d54dca
-// flow-typed version: <>/eslint-plugin-jest_v^22.1.3/flow_v0.91.0
+// flow-typed signature: ca2624d9513cdb4ead717c8379c219e7
+// flow-typed version: <>/eslint-plugin-jest_v^22.3.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
@@ -90,6 +90,10 @@ declare module 'eslint-plugin-jest/rules/__tests__/no-truthy-falsy.test' {
declare module.exports: any;
}
+declare module 'eslint-plugin-jest/rules/__tests__/prefer-called-with' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jest/rules/__tests__/prefer-expect-assertions.test' {
declare module.exports: any;
}
@@ -122,6 +126,10 @@ declare module 'eslint-plugin-jest/rules/__tests__/prefer-to-have-length.test' {
declare module.exports: any;
}
+declare module 'eslint-plugin-jest/rules/__tests__/prefer-todo.test' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jest/rules/__tests__/require-tothrow-message.test' {
declare module.exports: any;
}
@@ -198,6 +206,10 @@ declare module 'eslint-plugin-jest/rules/no-truthy-falsy' {
declare module.exports: any;
}
+declare module 'eslint-plugin-jest/rules/prefer-called-with' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jest/rules/prefer-expect-assertions' {
declare module.exports: any;
}
@@ -230,6 +242,10 @@ declare module 'eslint-plugin-jest/rules/prefer-to-have-length' {
declare module.exports: any;
}
+declare module 'eslint-plugin-jest/rules/prefer-todo' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jest/rules/require-tothrow-message' {
declare module.exports: any;
}
@@ -308,6 +324,9 @@ declare module 'eslint-plugin-jest/rules/__tests__/no-test-return-statement.test
declare module 'eslint-plugin-jest/rules/__tests__/no-truthy-falsy.test.js' {
declare module.exports: $Exports<'eslint-plugin-jest/rules/__tests__/no-truthy-falsy.test'>;
}
+declare module 'eslint-plugin-jest/rules/__tests__/prefer-called-with.js' {
+ declare module.exports: $Exports<'eslint-plugin-jest/rules/__tests__/prefer-called-with'>;
+}
declare module 'eslint-plugin-jest/rules/__tests__/prefer-expect-assertions.test.js' {
declare module.exports: $Exports<'eslint-plugin-jest/rules/__tests__/prefer-expect-assertions.test'>;
}
@@ -332,6 +351,9 @@ declare module 'eslint-plugin-jest/rules/__tests__/prefer-to-contain.test.js' {
declare module 'eslint-plugin-jest/rules/__tests__/prefer-to-have-length.test.js' {
declare module.exports: $Exports<'eslint-plugin-jest/rules/__tests__/prefer-to-have-length.test'>;
}
+declare module 'eslint-plugin-jest/rules/__tests__/prefer-todo.test.js' {
+ declare module.exports: $Exports<'eslint-plugin-jest/rules/__tests__/prefer-todo.test'>;
+}
declare module 'eslint-plugin-jest/rules/__tests__/require-tothrow-message.test.js' {
declare module.exports: $Exports<'eslint-plugin-jest/rules/__tests__/require-tothrow-message.test'>;
}
@@ -389,6 +411,9 @@ declare module 'eslint-plugin-jest/rules/no-test-return-statement.js' {
declare module 'eslint-plugin-jest/rules/no-truthy-falsy.js' {
declare module.exports: $Exports<'eslint-plugin-jest/rules/no-truthy-falsy'>;
}
+declare module 'eslint-plugin-jest/rules/prefer-called-with.js' {
+ declare module.exports: $Exports<'eslint-plugin-jest/rules/prefer-called-with'>;
+}
declare module 'eslint-plugin-jest/rules/prefer-expect-assertions.js' {
declare module.exports: $Exports<'eslint-plugin-jest/rules/prefer-expect-assertions'>;
}
@@ -413,6 +438,9 @@ declare module 'eslint-plugin-jest/rules/prefer-to-contain.js' {
declare module 'eslint-plugin-jest/rules/prefer-to-have-length.js' {
declare module.exports: $Exports<'eslint-plugin-jest/rules/prefer-to-have-length'>;
}
+declare module 'eslint-plugin-jest/rules/prefer-todo.js' {
+ declare module.exports: $Exports<'eslint-plugin-jest/rules/prefer-todo'>;
+}
declare module 'eslint-plugin-jest/rules/require-tothrow-message.js' {
declare module.exports: $Exports<'eslint-plugin-jest/rules/require-tothrow-message'>;
}
diff --git a/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js b/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js
index 51cfcf0cfe..24cbb09a57 100644
--- a/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js
+++ b/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 8f0a65979d071e51c50e8189074bdc97
-// flow-typed version: <>/eslint-plugin-jsx-a11y_v^6.1.2/flow_v0.91.0
+// flow-typed signature: e61d8b5352ef5538a6c9174ead08c845
+// flow-typed version: <>/eslint-plugin-jsx-a11y_v^6.2.1/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
@@ -106,6 +106,10 @@ declare module 'eslint-plugin-jsx-a11y/__tests__/src/rules/click-events-have-key
declare module.exports: any;
}
+declare module 'eslint-plugin-jsx-a11y/__tests__/src/rules/control-has-associated-label-test' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jsx-a11y/__tests__/src/rules/heading-has-content-test' {
declare module.exports: any;
}
@@ -250,6 +254,10 @@ declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isDisabledElement-test
declare module.exports: any;
}
+declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isDOMElement-test' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveElement-test' {
declare module.exports: any;
}
@@ -266,6 +274,10 @@ declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveRole-t
declare module.exports: any;
}
+declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isSemanticRoleElement-test' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/mayContainChildComponent-test' {
declare module.exports: any;
}
@@ -326,6 +338,10 @@ declare module 'eslint-plugin-jsx-a11y/lib/rules/click-events-have-key-events' {
declare module.exports: any;
}
+declare module 'eslint-plugin-jsx-a11y/lib/rules/control-has-associated-label' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jsx-a11y/lib/rules/heading-has-content' {
declare module.exports: any;
}
@@ -610,6 +626,10 @@ declare module 'eslint-plugin-jsx-a11y/lib/util/isDisabledElement' {
declare module.exports: any;
}
+declare module 'eslint-plugin-jsx-a11y/lib/util/isDOMElement' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jsx-a11y/lib/util/isHiddenFromScreenReader' {
declare module.exports: any;
}
@@ -634,6 +654,10 @@ declare module 'eslint-plugin-jsx-a11y/lib/util/isPresentationRole' {
declare module.exports: any;
}
+declare module 'eslint-plugin-jsx-a11y/lib/util/isSemanticRoleElement' {
+ declare module.exports: any;
+}
+
declare module 'eslint-plugin-jsx-a11y/lib/util/mayContainChildComponent' {
declare module.exports: any;
}
@@ -730,6 +754,9 @@ declare module 'eslint-plugin-jsx-a11y/__tests__/src/rules/aria-unsupported-elem
declare module 'eslint-plugin-jsx-a11y/__tests__/src/rules/click-events-have-key-events-test.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/rules/click-events-have-key-events-test'>;
}
+declare module 'eslint-plugin-jsx-a11y/__tests__/src/rules/control-has-associated-label-test.js' {
+ declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/rules/control-has-associated-label-test'>;
+}
declare module 'eslint-plugin-jsx-a11y/__tests__/src/rules/heading-has-content-test.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/rules/heading-has-content-test'>;
}
@@ -838,6 +865,9 @@ declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isAbstractRole-test.js
declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isDisabledElement-test.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/util/isDisabledElement-test'>;
}
+declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isDOMElement-test.js' {
+ declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/util/isDOMElement-test'>;
+}
declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveElement-test.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveElement-test'>;
}
@@ -850,6 +880,9 @@ declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveElemen
declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveRole-test.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveRole-test'>;
}
+declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/isSemanticRoleElement-test.js' {
+ declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/util/isSemanticRoleElement-test'>;
+}
declare module 'eslint-plugin-jsx-a11y/__tests__/src/util/mayContainChildComponent-test.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/__tests__/src/util/mayContainChildComponent-test'>;
}
@@ -895,6 +928,9 @@ declare module 'eslint-plugin-jsx-a11y/lib/rules/aria-unsupported-elements.js' {
declare module 'eslint-plugin-jsx-a11y/lib/rules/click-events-have-key-events.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/rules/click-events-have-key-events'>;
}
+declare module 'eslint-plugin-jsx-a11y/lib/rules/control-has-associated-label.js' {
+ declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/rules/control-has-associated-label'>;
+}
declare module 'eslint-plugin-jsx-a11y/lib/rules/heading-has-content.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/rules/heading-has-content'>;
}
@@ -1108,6 +1144,9 @@ declare module 'eslint-plugin-jsx-a11y/lib/util/isAbstractRole.js' {
declare module 'eslint-plugin-jsx-a11y/lib/util/isDisabledElement.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/util/isDisabledElement'>;
}
+declare module 'eslint-plugin-jsx-a11y/lib/util/isDOMElement.js' {
+ declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/util/isDOMElement'>;
+}
declare module 'eslint-plugin-jsx-a11y/lib/util/isHiddenFromScreenReader.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/util/isHiddenFromScreenReader'>;
}
@@ -1126,6 +1165,9 @@ declare module 'eslint-plugin-jsx-a11y/lib/util/isNonInteractiveRole.js' {
declare module 'eslint-plugin-jsx-a11y/lib/util/isPresentationRole.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/util/isPresentationRole'>;
}
+declare module 'eslint-plugin-jsx-a11y/lib/util/isSemanticRoleElement.js' {
+ declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/util/isSemanticRoleElement'>;
+}
declare module 'eslint-plugin-jsx-a11y/lib/util/mayContainChildComponent.js' {
declare module.exports: $Exports<'eslint-plugin-jsx-a11y/lib/util/mayContainChildComponent'>;
}
diff --git a/flow-typed/npm/eslint-plugin-prettier_vx.x.x.js b/flow-typed/npm/eslint-plugin-prettier_vx.x.x.js
index e41bc0be30..6669765269 100644
--- a/flow-typed/npm/eslint-plugin-prettier_vx.x.x.js
+++ b/flow-typed/npm/eslint-plugin-prettier_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 34dac87659219e944c47088356829240
-// flow-typed version: <>/eslint-plugin-prettier_v^3.0.1/flow_v0.91.0
+// flow-typed signature: e32cedd2724ba2746e9c84638bafafcf
+// flow-typed version: <>/eslint-plugin-prettier_v^3.0.1/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/eslint-plugin-react_vx.x.x.js b/flow-typed/npm/eslint-plugin-react_vx.x.x.js
index f23df4b333..6bfd4312b5 100644
--- a/flow-typed/npm/eslint-plugin-react_vx.x.x.js
+++ b/flow-typed/npm/eslint-plugin-react_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 9310c33c6caa6e1402f5331c2e20b7f7
-// flow-typed version: <>/eslint-plugin-react_v^7.12.4/flow_v0.91.0
+// flow-typed signature: 7baf59328f9c6981c4a2da1ae374778e
+// flow-typed version: <>/eslint-plugin-react_v^7.12.4/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/eslint_vx.x.x.js b/flow-typed/npm/eslint_vx.x.x.js
index d14ce3395f..0d88abd57a 100644
--- a/flow-typed/npm/eslint_vx.x.x.js
+++ b/flow-typed/npm/eslint_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 67fa596d205ab329847ab66272a03471
-// flow-typed version: <>/eslint_v^5.12.1/flow_v0.91.0
+// flow-typed signature: 8e585cdef78379d4d2cc7df238800332
+// flow-typed version: <>/eslint_v^5.15.1/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
@@ -1086,6 +1086,10 @@ declare module 'eslint/lib/rules/prefer-destructuring' {
declare module.exports: any;
}
+declare module 'eslint/lib/rules/prefer-named-capture-group' {
+ declare module.exports: any;
+}
+
declare module 'eslint/lib/rules/prefer-numeric-literals' {
declare module.exports: any;
}
@@ -2245,6 +2249,9 @@ declare module 'eslint/lib/rules/prefer-const.js' {
declare module 'eslint/lib/rules/prefer-destructuring.js' {
declare module.exports: $Exports<'eslint/lib/rules/prefer-destructuring'>;
}
+declare module 'eslint/lib/rules/prefer-named-capture-group.js' {
+ declare module.exports: $Exports<'eslint/lib/rules/prefer-named-capture-group'>;
+}
declare module 'eslint/lib/rules/prefer-numeric-literals.js' {
declare module.exports: $Exports<'eslint/lib/rules/prefer-numeric-literals'>;
}
diff --git a/flow-typed/npm/fs-extra_v7.x.x.js b/flow-typed/npm/fs-extra_v7.x.x.js
new file mode 100644
index 0000000000..151fa81f2f
--- /dev/null
+++ b/flow-typed/npm/fs-extra_v7.x.x.js
@@ -0,0 +1,755 @@
+// flow-typed signature: 736900083d1f92195f5af04fec4c5eb7
+// flow-typed version: 564b2e9f7a/fs-extra_v7.x.x/flow_vx.x.x
+
+declare module "fs-extra" {
+ import type { Stats, ReadStream, WriteStream } from "fs";
+
+ declare export type SymlinkType = "dir" | "file";
+ declare export type FsSymlinkType = "dir" | "file" | "junction";
+
+ declare export type CopyFilterSync = (src: string, dest: string) => boolean;
+ declare export type CopyFilterAsync = (
+ src: string,
+ dest: string
+ ) => Promise;
+
+ declare export type CopyOptions = {
+ dereference?: boolean,
+ overwrite?: boolean,
+ preserveTimestamps?: boolean,
+ errorOnExist?: boolean,
+ recursive?: boolean
+ };
+
+ declare export type CopyOptionsAync = CopyOptions & {
+ filter?: CopyFilterSync | CopyFilterAsync
+ };
+
+ declare export type CopyOptionsSync = CopyOptions & {
+ filter?: CopyFilterSync
+ };
+
+ declare export type MoveOptions = {
+ overwrite?: boolean,
+ limit?: number
+ };
+
+ declare export type ReadOptions = {
+ throws?: boolean,
+ fs?: Object,
+ reviver?: any,
+ encoding?: string,
+ flag?: string
+ };
+
+ declare export type WriteFileOptions = {
+ encoding?: string,
+ flag?: string,
+ mode?: number
+ };
+
+ declare export type WriteOptions = WriteFileOptions & {
+ fs?: Object,
+ replacer?: any,
+ spaces?: number | string,
+ EOL?: string
+ };
+
+ declare export type ReadResult = {
+ bytesRead: number,
+ buffer: Buffer
+ };
+
+ declare export type WriteResult = {
+ bytesWritten: number,
+ buffer: Buffer
+ };
+
+ declare export function copy(
+ src: string,
+ dest: string,
+ options?: CopyOptionsAync
+ ): Promise;
+ declare export function copy(
+ src: string,
+ dest: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function copy(
+ src: string,
+ dest: string,
+ options: CopyOptionsAync,
+ callback: (err: Error) => void
+ ): void;
+ declare export function copySync(
+ src: string,
+ dest: string,
+ options?: CopyOptionsSync
+ ): void;
+
+ declare export function move(
+ src: string,
+ dest: string,
+ options?: MoveOptions
+ ): Promise;
+ declare export function move(
+ src: string,
+ dest: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function move(
+ src: string,
+ dest: string,
+ options: MoveOptions,
+ callback: (err: Error) => void
+ ): void;
+ declare export function moveSync(
+ src: string,
+ dest: string,
+ options?: MoveOptions
+ ): void;
+
+ declare export function createFile(file: string): Promise;
+ declare export function createFile(
+ file: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function createFileSync(file: string): void;
+ declare export function createReadStream(path: string, options?: Object): ReadStream;
+ declare export function createWriteStream(path: string, options?: Object): WriteStream;
+
+ declare export function ensureDir(path: string): Promise;
+ declare export function ensureDir(
+ path: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function ensureDirSync(path: string): void;
+
+ declare export function exists(path: string): Promise;
+ declare export function exists(path: string, callback?: (exists: boolean) => void): void;
+
+ declare export function mkdirs(dir: string): Promise;
+ declare export function mkdirs(
+ dir: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function mkdirsSync(dir: string): void;
+
+ declare export function mkdirp(dir: string): Promise;
+ declare export function mkdirp(
+ dir: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function mkdirpSync(dir: string): void;
+
+ declare export function outputFile(
+ file: string,
+ data: any,
+ options?: WriteFileOptions | string
+ ): Promise;
+ declare export function outputFile(
+ file: string,
+ data: any,
+ callback: (err: Error) => void
+ ): void;
+ declare export function outputFile(
+ file: string,
+ data: any,
+ options: WriteFileOptions | string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function outputFileSync(
+ file: string,
+ data: any,
+ options?: WriteFileOptions | string
+ ): void;
+
+ declare export function readJson(
+ file: string,
+ options?: ReadOptions
+ ): Promise;
+ declare export function readJson(
+ file: string,
+ callback: (err: Error, jsonObject: any) => void
+ ): void;
+ declare export function readJson(
+ file: string,
+ options: ReadOptions,
+ callback: (err: Error, jsonObject: any) => void
+ ): void;
+ declare export function readJSON(
+ file: string,
+ options?: ReadOptions
+ ): Promise;
+ declare export function readJSON(
+ file: string,
+ callback: (err: Error, jsonObject: any) => void
+ ): void;
+ declare export function readJSON(
+ file: string,
+ options: ReadOptions,
+ callback: (err: Error, jsonObject: any) => void
+ ): void;
+
+ declare export function readJsonSync(
+ file: string,
+ options?: ReadOptions
+ ): any;
+ declare export function readJSONSync(
+ file: string,
+ options?: ReadOptions
+ ): any;
+
+ declare export function remove(dir: string): Promise;
+ declare export function remove(
+ dir: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function removeSync(dir: string): void;
+
+ declare export function outputJson(
+ file: string,
+ data: any,
+ options?: WriteOptions
+ ): Promise;
+ declare export function outputJSON(
+ file: string,
+ data: any,
+ options?: WriteOptions
+ ): Promise;
+ declare export function outputJson(
+ file: string,
+ data: any,
+ options: WriteOptions,
+ callback: (err: Error) => void
+ ): void;
+ declare export function outputJSON(
+ file: string,
+ data: any,
+ options: WriteOptions,
+ callback: (err: Error) => void
+ ): void;
+ declare export function outputJson(
+ file: string,
+ data: any,
+ callback: (err: Error) => void
+ ): void;
+ declare export function outputJSON(
+ file: string,
+ data: any,
+ callback: (err: Error) => void
+ ): void;
+ declare export function outputJsonSync(
+ file: string,
+ data: any,
+ options?: WriteOptions
+ ): void;
+ declare export function outputJSONSync(
+ file: string,
+ data: any,
+ options?: WriteOptions
+ ): void;
+
+ declare export function writeJSON(
+ file: string,
+ object: any,
+ options?: WriteOptions
+ ): Promise;
+ declare export function writeJSON(
+ file: string,
+ object: any,
+ callback: (err: Error) => void
+ ): void;
+ declare export function writeJSON(
+ file: string,
+ object: any,
+ options: WriteOptions,
+ callback: (err: Error) => void
+ ): void;
+ declare export function writeJson(
+ file: string,
+ object: any,
+ options?: WriteOptions
+ ): Promise;
+ declare export function writeJson(
+ file: string,
+ object: any,
+ callback: (err: Error) => void
+ ): void;
+ declare export function writeJson(
+ file: string,
+ object: any,
+ options: WriteOptions,
+ callback: (err: Error) => void
+ ): void;
+
+ declare export function writeJsonSync(
+ file: string,
+ object: any,
+ options?: WriteOptions
+ ): void;
+ declare export function writeJSONSync(
+ file: string,
+ object: any,
+ options?: WriteOptions
+ ): void;
+
+ declare export function ensureFile(path: string): Promise;
+ declare export function ensureFile(
+ path: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function ensureFileSync(path: string): void;
+
+ declare export function ensureLink(src: string, dest: string): Promise;
+ declare export function ensureLink(
+ src: string,
+ dest: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function ensureLinkSync(src: string, dest: string): void;
+
+ declare export function ensureSymlink(
+ src: string,
+ dest: string,
+ type?: SymlinkType
+ ): Promise;
+ declare export function ensureSymlink(
+ src: string,
+ dest: string,
+ type: SymlinkType,
+ callback: (err: Error) => void
+ ): void;
+ declare export function ensureSymlink(
+ src: string,
+ dest: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function ensureSymlinkSync(
+ src: string,
+ dest: string,
+ type?: SymlinkType
+ ): void;
+
+ declare export function emptyDir(path: string): Promise;
+ declare export function emptyDir(
+ path: string,
+ callback: (err: Error) => void
+ ): void;
+ declare export function emptyDirSync(path: string): void;
+
+ declare export function pathExists(path: string): Promise;
+ declare export function pathExists(
+ path: string,
+ callback: (err: Error, exists: boolean) => void
+ ): void;
+ declare export function pathExistsSync(path: string): boolean;
+
+ declare export function access(
+ path: string | Buffer,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function access(
+ path: string | Buffer,
+ mode: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function access(
+ path: string | Buffer,
+ mode?: number
+ ): Promise;
+
+ declare export function appendFile(
+ file: string | Buffer | number,
+ data: any,
+ options: { encoding?: string, mode?: number | string, flag?: string },
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function appendFile(
+ file: string | Buffer | number,
+ data: any,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function appendFile(
+ file: string | Buffer | number,
+ data: any,
+ options?: { encoding?: string, mode?: number | string, flag?: string }
+ ): Promise;
+
+ declare export function chmod(
+ path: string | Buffer,
+ mode: string | number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function chmod(
+ path: string | Buffer,
+ mode: string | number
+ ): Promise;
+
+ declare export function chown(
+ path: string | Buffer,
+ uid: number,
+ gid: number
+ ): Promise;
+ declare export function chown(
+ path: string | Buffer,
+ uid: number,
+ gid: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+
+ declare export function close(
+ fd: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function close(fd: number): Promise;
+
+ declare export function fchmod(
+ fd: number,
+ mode: string | number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function fchmod(
+ fd: number,
+ mode: string | number
+ ): Promise;
+
+ declare export function fchown(
+ fd: number,
+ uid: number,
+ gid: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function fchown(
+ fd: number,
+ uid: number,
+ gid: number
+ ): Promise;
+
+ declare export function fdatasync(fd: number, callback: () => void): void;
+ declare export function fdatasync(fd: number): Promise;
+
+ declare export function fstat(
+ fd: number,
+ callback: (err: ErrnoError, stats: Stats) => any
+ ): void;
+ declare export function fstat(fd: number): Promise;
+
+ declare export function fsync(
+ fd: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function fsync(fd: number): Promise;
+
+ declare export function ftruncate(
+ fd: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function ftruncate(
+ fd: number,
+ len: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function ftruncate(fd: number, len?: number): Promise;
+
+ declare export function futimes(
+ fd: number,
+ atime: number,
+ mtime: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function futimes(
+ fd: number,
+ atime: Date,
+ mtime: Date,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function futimes(
+ fd: number,
+ atime: number,
+ mtime: number
+ ): Promise;
+ declare export function futimes(
+ fd: number,
+ atime: Date,
+ mtime: Date
+ ): Promise;
+
+ declare export function lchown(
+ path: string | Buffer,
+ uid: number,
+ gid: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function lchown(
+ path: string | Buffer,
+ uid: number,
+ gid: number
+ ): Promise;
+
+ declare export function link(
+ srcpath: string | Buffer,
+ dstpath: string | Buffer,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function link(
+ srcpath: string | Buffer,
+ dstpath: string | Buffer
+ ): Promise;
+
+ declare export function lstat(
+ path: string | Buffer,
+ callback: (err: ErrnoError, stats: Stats) => any
+ ): void;
+ declare export function lstat(path: string | Buffer): Promise;
+
+ declare export function mkdir(
+ path: string | Buffer,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function mkdir(
+ path: string | Buffer,
+ mode: number | string,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function mkdir(path: string | Buffer): Promise;
+
+ declare export function open(
+ path: string | Buffer,
+ flags: string | number,
+ callback: (err: ErrnoError, fd: number) => void
+ ): void;
+ declare export function open(
+ path: string | Buffer,
+ flags: string | number,
+ mode: number,
+ callback: (err: ErrnoError, fd: number) => void
+ ): void;
+ declare export function open(
+ path: string | Buffer,
+ flags: string | number,
+ mode?: number
+ ): Promise;
+
+ declare export function read(
+ fd: number,
+ buffer: Buffer,
+ offset: number,
+ length: number,
+ position: number | null,
+ callback: (err: ErrnoError, bytesRead: number, buffer: Buffer) => void
+ ): void;
+ declare export function read(
+ fd: number,
+ buffer: Buffer,
+ offset: number,
+ length: number,
+ position: number | null
+ ): Promise;
+
+ declare export function readFile(
+ file: string | Buffer | number,
+ callback: (err: ErrnoError, data: Buffer) => void
+ ): void;
+ declare export function readFile(
+ file: string | Buffer | number,
+ encoding: string,
+ callback: (err: ErrnoError, data: string) => void
+ ): void;
+ declare export function readFile(
+ file: string | Buffer | number,
+ options: { flag?: string } | { encoding: string, flag?: string },
+ callback: (err: ErrnoError, data: Buffer) => void
+ ): void;
+ declare export function readFile(
+ file: string | Buffer | number,
+ options: { flag?: string } | { encoding: string, flag?: string }
+ ): Promise;
+ declare export function readFile(
+ file: string | Buffer | number,
+ encoding: string
+ ): Promise;
+ declare export function readFile(
+ file: string | Buffer | number
+ ): Promise;
+
+ declare export function readdir(
+ path: string | Buffer,
+ callback: (err: ErrnoError, files: string[]) => void
+ ): void;
+ declare export function readdir(path: string | Buffer): Promise;
+
+ declare export function readlink(
+ path: string | Buffer,
+ callback: (err: ErrnoError, linkString: string) => any
+ ): void;
+ declare export function readlink(path: string | Buffer): Promise;
+
+ declare export function realpath(
+ path: string | Buffer,
+ callback: (err: ErrnoError, resolvedPath: string) => any
+ ): void;
+ declare export function realpath(
+ path: string | Buffer,
+ cache: { [path: string]: string },
+ callback: (err: ErrnoError, resolvedPath: string) => any
+ ): void;
+ declare export function realpath(
+ path: string | Buffer,
+ cache?: { [path: string]: string }
+ ): Promise;
+
+ declare export function rename(
+ oldPath: string,
+ newPath: string,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function rename(
+ oldPath: string,
+ newPath: string
+ ): Promise;
+
+ declare export function rmdir(
+ path: string | Buffer,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function rmdir(path: string | Buffer): Promise;
+
+ declare export function stat(
+ path: string | Buffer,
+ callback: (err: ErrnoError, stats: Stats) => any
+ ): void;
+ declare export function stat(path: string | Buffer): Promise;
+
+ declare export function statSync(path: string): Stats;
+
+ declare export function symlink(
+ srcpath: string | Buffer,
+ dstpath: string | Buffer,
+ type: FsSymlinkType | void,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function symlink(
+ srcpath: string | Buffer,
+ dstpath: string | Buffer,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function symlink(
+ srcpath: string | Buffer,
+ dstpath: string | Buffer,
+ type?: FsSymlinkType
+ ): Promise;
+
+ declare export function truncate(
+ path: string | Buffer,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function truncate(
+ path: string | Buffer,
+ len: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function truncate(
+ path: string | Buffer,
+ len?: number
+ ): Promise;
+
+ declare export function unlink(
+ path: string | Buffer,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function unlink(path: string | Buffer): Promise;
+
+ declare export function utimes(
+ path: string | Buffer,
+ atime: number,
+ mtime: number,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function utimes(
+ path: string | Buffer,
+ atime: Date,
+ mtime: Date,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function utimes(
+ path: string | Buffer,
+ atime: number,
+ mtime: number
+ ): Promise;
+ declare export function utimes(
+ path: string | Buffer,
+ atime: Date,
+ mtime: Date
+ ): Promise;
+
+ declare export function write(
+ fd: number,
+ buffer: Buffer,
+ offset: number,
+ length: number,
+ position: number | null,
+ callback: (err: ErrnoError, written: number, buffer: Buffer) => void
+ ): void;
+ declare export function write(
+ fd: number,
+ buffer: Buffer,
+ offset: number,
+ length: number,
+ callback: (err: ErrnoError, written: number, buffer: Buffer) => void
+ ): void;
+ declare export function write(
+ fd: number,
+ data: any,
+ callback: (err: ErrnoError, written: number, str: string) => void
+ ): void;
+ declare export function write(
+ fd: number,
+ data: any,
+ offset: number,
+ callback: (err: ErrnoError, written: number, str: string) => void
+ ): void;
+ declare export function write(
+ fd: number,
+ data: any,
+ offset: number,
+ encoding: string,
+ callback: (err: ErrnoError, written: number, str: string) => void
+ ): void;
+ declare export function write(
+ fd: number,
+ buffer: Buffer,
+ offset: number,
+ length: number,
+ position?: number | null
+ ): Promise;
+ declare export function write(
+ fd: number,
+ data: any,
+ offset: number,
+ encoding?: string
+ ): Promise;
+
+ declare export function writeFile(
+ file: string | Buffer | number,
+ data: any,
+ callback: (err: ErrnoError) => void
+ ): void;
+ declare export function writeFile(
+ file: string | Buffer | number,
+ data: any,
+ options?: WriteFileOptions | string
+ ): Promise;
+ declare export function writeFile(
+ file: string | Buffer | number,
+ data: any,
+ options: WriteFileOptions | string,
+ callback: (err: ErrnoError) => void
+ ): void;
+
+ declare export function mkdtemp(prefix: string): Promise;
+ declare export function mkdtemp(
+ prefix: string,
+ callback: (err: ErrnoError, folder: string) => void
+ ): void;
+}
diff --git a/flow-typed/npm/globby_vx.x.x.js b/flow-typed/npm/globby_vx.x.x.js
index 4aa28b3c1b..5b53bc2e3d 100644
--- a/flow-typed/npm/globby_vx.x.x.js
+++ b/flow-typed/npm/globby_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: efb1e250fa92145f0cad3ec40ed51136
-// flow-typed version: <>/globby_v^9.0.0/flow_v0.91.0
+// flow-typed signature: dee0a26a858d14e078230f7df8e24fff
+// flow-typed version: <>/globby_v^9.1.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/jest-junit_vx.x.x.js b/flow-typed/npm/jest-junit_vx.x.x.js
index cc195b22cf..12dad5011d 100644
--- a/flow-typed/npm/jest-junit_vx.x.x.js
+++ b/flow-typed/npm/jest-junit_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 4cb2af526618d7982109d75571062aad
-// flow-typed version: <>/jest-junit_v^6.0.1/flow_v0.91.0
+// flow-typed signature: 1052249f140a5c701e51a7ff7f78cc26
+// flow-typed version: <>/jest-junit_v^6.3.0/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
@@ -34,6 +34,10 @@ declare module 'jest-junit/utils/getOptions' {
declare module.exports: any;
}
+declare module 'jest-junit/utils/replaceRootDirInPath' {
+ declare module.exports: any;
+}
+
// Filename aliases
declare module 'jest-junit/constants/index.js' {
declare module.exports: $Exports<'jest-junit/constants/index'>;
@@ -50,3 +54,6 @@ declare module 'jest-junit/utils/buildJsonResults.js' {
declare module 'jest-junit/utils/getOptions.js' {
declare module.exports: $Exports<'jest-junit/utils/getOptions'>;
}
+declare module 'jest-junit/utils/replaceRootDirInPath.js' {
+ declare module.exports: $Exports<'jest-junit/utils/replaceRootDirInPath'>;
+}
diff --git a/flow-typed/npm/jest-watch-typeahead_vx.x.x.js b/flow-typed/npm/jest-watch-typeahead_vx.x.x.js
index f433ee0cbd..a41daf789a 100644
--- a/flow-typed/npm/jest-watch-typeahead_vx.x.x.js
+++ b/flow-typed/npm/jest-watch-typeahead_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: a86b6c52d28fdd39deb6b510e2da9025
-// flow-typed version: <>/jest-watch-typeahead_v^0.2.0/flow_v0.91.0
+// flow-typed signature: 82ffbd7a26e6b6804f79ee0751bb2c7b
+// flow-typed version: <>/jest-watch-typeahead_v^0.2.1/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
@@ -22,10 +22,6 @@ declare module 'jest-watch-typeahead' {
* require those files directly. Feel free to delete any files that aren't
* needed.
*/
-declare module 'jest-watch-typeahead/build/__tests__/pluginTester' {
- declare module.exports: any;
-}
-
declare module 'jest-watch-typeahead/build/file_name_pattern_prompt' {
declare module.exports: any;
}
@@ -95,9 +91,6 @@ declare module 'jest-watch-typeahead/testname' {
}
// Filename aliases
-declare module 'jest-watch-typeahead/build/__tests__/pluginTester.js' {
- declare module.exports: $Exports<'jest-watch-typeahead/build/__tests__/pluginTester'>;
-}
declare module 'jest-watch-typeahead/build/file_name_pattern_prompt.js' {
declare module.exports: $Exports<'jest-watch-typeahead/build/file_name_pattern_prompt'>;
}
diff --git a/flow-typed/npm/jest_v23.x.x.js b/flow-typed/npm/jest_v24.x.x.js
similarity index 67%
rename from flow-typed/npm/jest_v23.x.x.js
rename to flow-typed/npm/jest_v24.x.x.js
index 95835f5f2c..1c1d6d9a28 100644
--- a/flow-typed/npm/jest_v23.x.x.js
+++ b/flow-typed/npm/jest_v24.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 78c200acffbcc16bba9478f5396c3a00
-// flow-typed version: b2980740dd/jest_v23.x.x/flow_>=v0.39.x
+// flow-typed signature: 833075a5cefc49eb523160a5fca9d8b6
+// flow-typed version: 325925f1b7/jest_v24.x.x/flow_>=v0.39.x
type JestMockFn, TReturn> = {
(...args: TArguments): TReturn,
@@ -22,7 +22,7 @@ type JestMockFn, TReturn> = {
* An array that contains all the object results that have been
* returned by this mock function call
*/
- results: Array<{ isThrow: boolean, value: TReturn }>
+ results: Array<{ isThrow: boolean, value: TReturn }>,
},
/**
* Resets all information stored in the mockFn.mock.calls and
@@ -84,7 +84,9 @@ type JestMockFn, TReturn> = {
/**
* Sugar for jest.fn().mockImplementationOnce(() => Promise.resolve(value))
*/
- mockResolvedValueOnce(value: TReturn): JestMockFn>,
+ mockResolvedValueOnce(
+ value: TReturn
+ ): JestMockFn>,
/**
* Sugar for jest.fn().mockImplementation(() => Promise.reject(value))
*/
@@ -92,14 +94,14 @@ type JestMockFn, TReturn> = {
/**
* Sugar for jest.fn().mockImplementationOnce(() => Promise.reject(value))
*/
- mockRejectedValueOnce(value: TReturn): JestMockFn>
+ mockRejectedValueOnce(value: TReturn): JestMockFn>,
};
type JestAsymmetricEqualityType = {
/**
* A custom Jasmine equality tester
*/
- asymmetricMatch(value: mixed): boolean
+ asymmetricMatch(value: mixed): boolean,
};
type JestCallsType = {
@@ -109,24 +111,25 @@ type JestCallsType = {
count(): number,
first(): mixed,
mostRecent(): mixed,
- reset(): void
+ reset(): void,
};
type JestClockType = {
install(): void,
mockDate(date: Date): void,
tick(milliseconds?: number): void,
- uninstall(): void
+ uninstall(): void,
};
type JestMatcherResult = {
message?: string | (() => string),
- pass: boolean
+ pass: boolean,
};
-type JestMatcher = (actual: any, expected: any) =>
- | JestMatcherResult
- | Promise;
+type JestMatcher = (
+ actual: any,
+ expected: any
+) => JestMatcherResult | Promise;
type JestPromiseType = {
/**
@@ -138,7 +141,7 @@ type JestPromiseType = {
* Use resolves to unwrap the value of a fulfilled promise so any other
* matcher can be chained. If the promise is rejected the assertion fails.
*/
- resolves: JestExpectType
+ resolves: JestExpectType,
};
/**
@@ -158,10 +161,10 @@ type JestStyledComponentsMatcherValue =
| typeof undefined;
type JestStyledComponentsMatcherOptions = {
- media?: string;
- modifier?: string;
- supports?: string;
-}
+ media?: string,
+ modifier?: string,
+ supports?: string,
+};
type JestStyledComponentsMatchersType = {
toHaveStyleRule(
@@ -182,24 +185,27 @@ type EnzymeMatchersType = {
toBeChecked(): void,
toBeDisabled(): void,
toBeEmptyRender(): void,
- toContainMatchingElement(selector: string): void;
- toContainMatchingElements(n: number, selector: string): void;
- toContainExactlyOneMatchingElement(selector: string): void;
+ toContainMatchingElement(selector: string): void,
+ toContainMatchingElements(n: number, selector: string): void,
+ toContainExactlyOneMatchingElement(selector: string): void,
toContainReact(element: React$Element): void,
toExist(): void,
toHaveClassName(className: string): void,
toHaveHTML(html: string): void,
- toHaveProp: ((propKey: string, propValue?: any) => void) & ((props: Object) => void),
+ toHaveProp: ((propKey: string, propValue?: any) => void) &
+ ((props: {}) => void),
toHaveRef(refName: string): void,
- toHaveState: ((stateKey: string, stateValue?: any) => void) & ((state: Object) => void),
- toHaveStyle: ((styleKey: string, styleValue?: any) => void) & ((style: Object) => void),
+ toHaveState: ((stateKey: string, stateValue?: any) => void) &
+ ((state: {}) => void),
+ toHaveStyle: ((styleKey: string, styleValue?: any) => void) &
+ ((style: {}) => void),
toHaveTagName(tagName: string): void,
toHaveText(text: string): void,
toHaveValue(value: any): void,
toIncludeText(text: string): void,
toMatchElement(
element: React$Element,
- options?: {| ignoreProps?: boolean, verbose?: boolean |},
+ options?: {| ignoreProps?: boolean, verbose?: boolean |}
): void,
toMatchSelector(selector: string): void,
// 7.x
@@ -219,7 +225,10 @@ type DomTestingLibraryType = {
toHaveFocus(): void,
toHaveFormValues(expectedValues: { [name: string]: any }): void,
toHaveStyle(css: string): void,
- toHaveTextContent(content: string | RegExp, options?: { normalizeWhitespace: boolean }): void,
+ toHaveTextContent(
+ content: string | RegExp,
+ options?: { normalizeWhitespace: boolean }
+ ): void,
toBeInTheDOM(): void,
};
@@ -235,7 +244,7 @@ type JestJQueryMatchersType = {
toHaveText(text: string | RegExp): void,
toHaveData(key: string, val?: any): void,
toHaveValue(val: any): void,
- toHaveCss(css: {[key: string]: any}): void,
+ toHaveCss(css: { [key: string]: any }): void,
toBeChecked(): void,
toBeDisabled(): void,
toBeEmpty(): void,
@@ -246,409 +255,407 @@ type JestJQueryMatchersType = {
toBeInDom(): void,
toBeMatchedBy(sel: string): void,
toHaveDescendant(sel: string): void,
- toHaveDescendantWithText(sel: string, text: string | RegExp): void
+ toHaveDescendantWithText(sel: string, text: string | RegExp): void,
};
-
// Jest Extended Matchers: https://github.com/jest-community/jest-extended
type JestExtendedMatchersType = {
/**
- * Note: Currently unimplemented
- * Passing assertion
- *
- * @param {String} message
- */
+ * Note: Currently unimplemented
+ * Passing assertion
+ *
+ * @param {String} message
+ */
// pass(message: string): void;
- /**
- * Note: Currently unimplemented
- * Failing assertion
- *
- * @param {String} message
- */
+ /**
+ * Note: Currently unimplemented
+ * Failing assertion
+ *
+ * @param {String} message
+ */
// fail(message: string): void;
- /**
- * Use .toBeEmpty when checking if a String '', Array [] or Object {} is empty.
- */
- toBeEmpty(): void;
+ /**
+ * Use .toBeEmpty when checking if a String '', Array [] or Object {} is empty.
+ */
+ toBeEmpty(): void,
- /**
- * Use .toBeOneOf when checking if a value is a member of a given Array.
- * @param {Array.<*>} members
- */
- toBeOneOf(members: any[]): void;
+ /**
+ * Use .toBeOneOf when checking if a value is a member of a given Array.
+ * @param {Array.<*>} members
+ */
+ toBeOneOf(members: any[]): void,
- /**
- * Use `.toBeNil` when checking a value is `null` or `undefined`.
- */
- toBeNil(): void;
+ /**
+ * Use `.toBeNil` when checking a value is `null` or `undefined`.
+ */
+ toBeNil(): void,
- /**
- * Use `.toSatisfy` when you want to use a custom matcher by supplying a predicate function that returns a `Boolean`.
- * @param {Function} predicate
- */
- toSatisfy(predicate: (n: any) => boolean): void;
+ /**
+ * Use `.toSatisfy` when you want to use a custom matcher by supplying a predicate function that returns a `Boolean`.
+ * @param {Function} predicate
+ */
+ toSatisfy(predicate: (n: any) => boolean): void,
- /**
- * Use `.toBeArray` when checking if a value is an `Array`.
- */
- toBeArray(): void;
+ /**
+ * Use `.toBeArray` when checking if a value is an `Array`.
+ */
+ toBeArray(): void,
- /**
- * Use `.toBeArrayOfSize` when checking if a value is an `Array` of size x.
- * @param {Number} x
- */
- toBeArrayOfSize(x: number): void;
+ /**
+ * Use `.toBeArrayOfSize` when checking if a value is an `Array` of size x.
+ * @param {Number} x
+ */
+ toBeArrayOfSize(x: number): void,
- /**
- * Use `.toIncludeAllMembers` when checking if an `Array` contains all of the same members of a given set.
- * @param {Array.<*>} members
- */
- toIncludeAllMembers(members: any[]): void;
+ /**
+ * Use `.toIncludeAllMembers` when checking if an `Array` contains all of the same members of a given set.
+ * @param {Array.<*>} members
+ */
+ toIncludeAllMembers(members: any[]): void,
- /**
- * Use `.toIncludeAnyMembers` when checking if an `Array` contains any of the members of a given set.
- * @param {Array.<*>} members
- */
- toIncludeAnyMembers(members: any[]): void;
+ /**
+ * Use `.toIncludeAnyMembers` when checking if an `Array` contains any of the members of a given set.
+ * @param {Array.<*>} members
+ */
+ toIncludeAnyMembers(members: any[]): void,
- /**
- * Use `.toSatisfyAll` when you want to use a custom matcher by supplying a predicate function that returns a `Boolean` for all values in an array.
- * @param {Function} predicate
- */
- toSatisfyAll(predicate: (n: any) => boolean): void;
+ /**
+ * Use `.toSatisfyAll` when you want to use a custom matcher by supplying a predicate function that returns a `Boolean` for all values in an array.
+ * @param {Function} predicate
+ */
+ toSatisfyAll(predicate: (n: any) => boolean): void,
- /**
- * Use `.toBeBoolean` when checking if a value is a `Boolean`.
- */
- toBeBoolean(): void;
+ /**
+ * Use `.toBeBoolean` when checking if a value is a `Boolean`.
+ */
+ toBeBoolean(): void,
- /**
- * Use `.toBeTrue` when checking a value is equal (===) to `true`.
- */
- toBeTrue(): void;
+ /**
+ * Use `.toBeTrue` when checking a value is equal (===) to `true`.
+ */
+ toBeTrue(): void,
- /**
- * Use `.toBeFalse` when checking a value is equal (===) to `false`.
- */
- toBeFalse(): void;
+ /**
+ * Use `.toBeFalse` when checking a value is equal (===) to `false`.
+ */
+ toBeFalse(): void,
- /**
- * Use .toBeDate when checking if a value is a Date.
- */
- toBeDate(): void;
+ /**
+ * Use .toBeDate when checking if a value is a Date.
+ */
+ toBeDate(): void,
- /**
- * Use `.toBeFunction` when checking if a value is a `Function`.
- */
- toBeFunction(): void;
+ /**
+ * Use `.toBeFunction` when checking if a value is a `Function`.
+ */
+ toBeFunction(): void,
- /**
- * Use `.toHaveBeenCalledBefore` when checking if a `Mock` was called before another `Mock`.
- *
- * Note: Required Jest version >22
- * Note: Your mock functions will have to be asynchronous to cause the timestamps inside of Jest to occur in a differentJS event loop, otherwise the mock timestamps will all be the same
- *
- * @param {Mock} mock
- */
- toHaveBeenCalledBefore(mock: JestMockFn): void;
+ /**
+ * Use `.toHaveBeenCalledBefore` when checking if a `Mock` was called before another `Mock`.
+ *
+ * Note: Required Jest version >22
+ * Note: Your mock functions will have to be asynchronous to cause the timestamps inside of Jest to occur in a differentJS event loop, otherwise the mock timestamps will all be the same
+ *
+ * @param {Mock} mock
+ */
+ toHaveBeenCalledBefore(mock: JestMockFn): void,
- /**
- * Use `.toBeNumber` when checking if a value is a `Number`.
- */
- toBeNumber(): void;
+ /**
+ * Use `.toBeNumber` when checking if a value is a `Number`.
+ */
+ toBeNumber(): void,
- /**
- * Use `.toBeNaN` when checking a value is `NaN`.
- */
- toBeNaN(): void;
+ /**
+ * Use `.toBeNaN` when checking a value is `NaN`.
+ */
+ toBeNaN(): void,
- /**
- * Use `.toBeFinite` when checking if a value is a `Number`, not `NaN` or `Infinity`.
- */
- toBeFinite(): void;
+ /**
+ * Use `.toBeFinite` when checking if a value is a `Number`, not `NaN` or `Infinity`.
+ */
+ toBeFinite(): void,
- /**
- * Use `.toBePositive` when checking if a value is a positive `Number`.
- */
- toBePositive(): void;
+ /**
+ * Use `.toBePositive` when checking if a value is a positive `Number`.
+ */
+ toBePositive(): void,
- /**
- * Use `.toBeNegative` when checking if a value is a negative `Number`.
- */
- toBeNegative(): void;
+ /**
+ * Use `.toBeNegative` when checking if a value is a negative `Number`.
+ */
+ toBeNegative(): void,
- /**
- * Use `.toBeEven` when checking if a value is an even `Number`.
- */
- toBeEven(): void;
+ /**
+ * Use `.toBeEven` when checking if a value is an even `Number`.
+ */
+ toBeEven(): void,
- /**
- * Use `.toBeOdd` when checking if a value is an odd `Number`.
- */
- toBeOdd(): void;
+ /**
+ * Use `.toBeOdd` when checking if a value is an odd `Number`.
+ */
+ toBeOdd(): void,
- /**
- * Use `.toBeWithin` when checking if a number is in between the given bounds of: start (inclusive) and end (exclusive).
- *
- * @param {Number} start
- * @param {Number} end
- */
- toBeWithin(start: number, end: number): void;
+ /**
+ * Use `.toBeWithin` when checking if a number is in between the given bounds of: start (inclusive) and end (exclusive).
+ *
+ * @param {Number} start
+ * @param {Number} end
+ */
+ toBeWithin(start: number, end: number): void,
- /**
- * Use `.toBeObject` when checking if a value is an `Object`.
- */
- toBeObject(): void;
+ /**
+ * Use `.toBeObject` when checking if a value is an `Object`.
+ */
+ toBeObject(): void,
- /**
- * Use `.toContainKey` when checking if an object contains the provided key.
- *
- * @param {String} key
- */
- toContainKey(key: string): void;
+ /**
+ * Use `.toContainKey` when checking if an object contains the provided key.
+ *
+ * @param {String} key
+ */
+ toContainKey(key: string): void,
- /**
- * Use `.toContainKeys` when checking if an object has all of the provided keys.
- *
- * @param {Array.} keys
- */
- toContainKeys(keys: string[]): void;
+ /**
+ * Use `.toContainKeys` when checking if an object has all of the provided keys.
+ *
+ * @param {Array.} keys
+ */
+ toContainKeys(keys: string[]): void,
- /**
- * Use `.toContainAllKeys` when checking if an object only contains all of the provided keys.
- *
- * @param {Array.} keys
- */
- toContainAllKeys(keys: string[]): void;
+ /**
+ * Use `.toContainAllKeys` when checking if an object only contains all of the provided keys.
+ *
+ * @param {Array.} keys
+ */
+ toContainAllKeys(keys: string[]): void,
- /**
- * Use `.toContainAnyKeys` when checking if an object contains at least one of the provided keys.
- *
- * @param {Array.} keys
- */
- toContainAnyKeys(keys: string[]): void;
+ /**
+ * Use `.toContainAnyKeys` when checking if an object contains at least one of the provided keys.
+ *
+ * @param {Array.} keys
+ */
+ toContainAnyKeys(keys: string[]): void,
- /**
- * Use `.toContainValue` when checking if an object contains the provided value.
- *
- * @param {*} value
- */
- toContainValue(value: any): void;
+ /**
+ * Use `.toContainValue` when checking if an object contains the provided value.
+ *
+ * @param {*} value
+ */
+ toContainValue(value: any): void,
- /**
- * Use `.toContainValues` when checking if an object contains all of the provided values.
- *
- * @param {Array.<*>} values
- */
- toContainValues(values: any[]): void;
+ /**
+ * Use `.toContainValues` when checking if an object contains all of the provided values.
+ *
+ * @param {Array.<*>} values
+ */
+ toContainValues(values: any[]): void,
- /**
- * Use `.toContainAllValues` when checking if an object only contains all of the provided values.
- *
- * @param {Array.<*>} values
- */
- toContainAllValues(values: any[]): void;
+ /**
+ * Use `.toContainAllValues` when checking if an object only contains all of the provided values.
+ *
+ * @param {Array.<*>} values
+ */
+ toContainAllValues(values: any[]): void,
- /**
- * Use `.toContainAnyValues` when checking if an object contains at least one of the provided values.
- *
- * @param {Array.<*>} values
- */
- toContainAnyValues(values: any[]): void;
+ /**
+ * Use `.toContainAnyValues` when checking if an object contains at least one of the provided values.
+ *
+ * @param {Array.<*>} values
+ */
+ toContainAnyValues(values: any[]): void,
- /**
- * Use `.toContainEntry` when checking if an object contains the provided entry.
- *
- * @param {Array.} entry
- */
- toContainEntry(entry: [string, string]): void;
+ /**
+ * Use `.toContainEntry` when checking if an object contains the provided entry.
+ *
+ * @param {Array.} entry
+ */
+ toContainEntry(entry: [string, string]): void,
- /**
- * Use `.toContainEntries` when checking if an object contains all of the provided entries.
- *
- * @param {Array.>} entries
- */
- toContainEntries(entries: [string, string][]): void;
+ /**
+ * Use `.toContainEntries` when checking if an object contains all of the provided entries.
+ *
+ * @param {Array.>} entries
+ */
+ toContainEntries(entries: [string, string][]): void,
- /**
- * Use `.toContainAllEntries` when checking if an object only contains all of the provided entries.
- *
- * @param {Array.>} entries
- */
- toContainAllEntries(entries: [string, string][]): void;
+ /**
+ * Use `.toContainAllEntries` when checking if an object only contains all of the provided entries.
+ *
+ * @param {Array.>} entries
+ */
+ toContainAllEntries(entries: [string, string][]): void,
- /**
- * Use `.toContainAnyEntries` when checking if an object contains at least one of the provided entries.
- *
- * @param {Array.>} entries
- */
- toContainAnyEntries(entries: [string, string][]): void;
+ /**
+ * Use `.toContainAnyEntries` when checking if an object contains at least one of the provided entries.
+ *
+ * @param {Array.>} entries
+ */
+ toContainAnyEntries(entries: [string, string][]): void,
- /**
- * Use `.toBeExtensible` when checking if an object is extensible.
- */
- toBeExtensible(): void;
+ /**
+ * Use `.toBeExtensible` when checking if an object is extensible.
+ */
+ toBeExtensible(): void,
- /**
- * Use `.toBeFrozen` when checking if an object is frozen.
- */
- toBeFrozen(): void;
+ /**
+ * Use `.toBeFrozen` when checking if an object is frozen.
+ */
+ toBeFrozen(): void,
- /**
- * Use `.toBeSealed` when checking if an object is sealed.
- */
- toBeSealed(): void;
+ /**
+ * Use `.toBeSealed` when checking if an object is sealed.
+ */
+ toBeSealed(): void,
- /**
- * Use `.toBeString` when checking if a value is a `String`.
- */
- toBeString(): void;
+ /**
+ * Use `.toBeString` when checking if a value is a `String`.
+ */
+ toBeString(): void,
- /**
- * Use `.toEqualCaseInsensitive` when checking if a string is equal (===) to another ignoring the casing of both strings.
- *
- * @param {String} string
- */
- toEqualCaseInsensitive(string: string): void;
+ /**
+ * Use `.toEqualCaseInsensitive` when checking if a string is equal (===) to another ignoring the casing of both strings.
+ *
+ * @param {String} string
+ */
+ toEqualCaseInsensitive(string: string): void,
- /**
- * Use `.toStartWith` when checking if a `String` starts with a given `String` prefix.
- *
- * @param {String} prefix
- */
- toStartWith(prefix: string): void;
+ /**
+ * Use `.toStartWith` when checking if a `String` starts with a given `String` prefix.
+ *
+ * @param {String} prefix
+ */
+ toStartWith(prefix: string): void,
- /**
- * Use `.toEndWith` when checking if a `String` ends with a given `String` suffix.
- *
- * @param {String} suffix
- */
- toEndWith(suffix: string): void;
+ /**
+ * Use `.toEndWith` when checking if a `String` ends with a given `String` suffix.
+ *
+ * @param {String} suffix
+ */
+ toEndWith(suffix: string): void,
- /**
- * Use `.toInclude` when checking if a `String` includes the given `String` substring.
- *
- * @param {String} substring
- */
- toInclude(substring: string): void;
+ /**
+ * Use `.toInclude` when checking if a `String` includes the given `String` substring.
+ *
+ * @param {String} substring
+ */
+ toInclude(substring: string): void,
- /**
- * Use `.toIncludeRepeated` when checking if a `String` includes the given `String` substring the correct number of times.
- *
- * @param {String} substring
- * @param {Number} times
- */
- toIncludeRepeated(substring: string, times: number): void;
+ /**
+ * Use `.toIncludeRepeated` when checking if a `String` includes the given `String` substring the correct number of times.
+ *
+ * @param {String} substring
+ * @param {Number} times
+ */
+ toIncludeRepeated(substring: string, times: number): void,
- /**
- * Use `.toIncludeMultiple` when checking if a `String` includes all of the given substrings.
- *
- * @param {Array.} substring
- */
- toIncludeMultiple(substring: string[]): void;
+ /**
+ * Use `.toIncludeMultiple` when checking if a `String` includes all of the given substrings.
+ *
+ * @param {Array.} substring
+ */
+ toIncludeMultiple(substring: string[]): void,
};
interface JestExpectType {
- not:
- & JestExpectType
- & EnzymeMatchersType
- & DomTestingLibraryType
- & JestJQueryMatchersType
- & JestStyledComponentsMatchersType
- & JestExtendedMatchersType,
+ not: JestExpectType &
+ EnzymeMatchersType &
+ DomTestingLibraryType &
+ JestJQueryMatchersType &
+ JestStyledComponentsMatchersType &
+ JestExtendedMatchersType;
/**
* If you have a mock function, you can use .lastCalledWith to test what
* arguments it was last called with.
*/
- lastCalledWith(...args: Array): void,
+ lastCalledWith(...args: Array): void;
/**
* toBe just checks that a value is what you expect. It uses === to check
* strict equality.
*/
- toBe(value: any): void,
+ toBe(value: any): void;
/**
* Use .toBeCalledWith to ensure that a mock function was called with
* specific arguments.
*/
- toBeCalledWith(...args: Array): void,
+ toBeCalledWith(...args: Array): void;
/**
* Using exact equality with floating point numbers is a bad idea. Rounding
* means that intuitive things fail.
*/
- toBeCloseTo(num: number, delta: any): void,
+ toBeCloseTo(num: number, delta: any): void;
/**
* Use .toBeDefined to check that a variable is not undefined.
*/
- toBeDefined(): void,
+ toBeDefined(): void;
/**
* Use .toBeFalsy when you don't care what a value is, you just want to
* ensure a value is false in a boolean context.
*/
- toBeFalsy(): void,
+ toBeFalsy(): void;
/**
* To compare floating point numbers, you can use toBeGreaterThan.
*/
- toBeGreaterThan(number: number): void,
+ toBeGreaterThan(number: number): void;
/**
* To compare floating point numbers, you can use toBeGreaterThanOrEqual.
*/
- toBeGreaterThanOrEqual(number: number): void,
+ toBeGreaterThanOrEqual(number: number): void;
/**
* To compare floating point numbers, you can use toBeLessThan.
*/
- toBeLessThan(number: number): void,
+ toBeLessThan(number: number): void;
/**
* To compare floating point numbers, you can use toBeLessThanOrEqual.
*/
- toBeLessThanOrEqual(number: number): void,
+ toBeLessThanOrEqual(number: number): void;
/**
* Use .toBeInstanceOf(Class) to check that an object is an instance of a
* class.
*/
- toBeInstanceOf(cls: Class<*>): void,
+ toBeInstanceOf(cls: Class<*>): void;
/**
* .toBeNull() is the same as .toBe(null) but the error messages are a bit
* nicer.
*/
- toBeNull(): void,
+ toBeNull(): void;
/**
* Use .toBeTruthy when you don't care what a value is, you just want to
* ensure a value is true in a boolean context.
*/
- toBeTruthy(): void,
+ toBeTruthy(): void;
/**
* Use .toBeUndefined to check that a variable is undefined.
*/
- toBeUndefined(): void,
+ toBeUndefined(): void;
/**
* Use .toContain when you want to check that an item is in a list. For
* testing the items in the list, this uses ===, a strict equality check.
*/
- toContain(item: any): void,
+ toContain(item: any): void;
/**
* Use .toContainEqual when you want to check that an item is in a list. For
* testing the items in the list, this matcher recursively checks the
* equality of all fields, rather than checking for object identity.
*/
- toContainEqual(item: any): void,
+ toContainEqual(item: any): void;
/**
* Use .toEqual when you want to check that two objects have the same value.
* This matcher recursively checks the equality of all fields, rather than
* checking for object identity.
*/
- toEqual(value: any): void,
+ toEqual(value: any): void;
/**
* Use .toHaveBeenCalled to ensure that a mock function got called.
*/
- toHaveBeenCalled(): void,
+ toHaveBeenCalled(): void;
toBeCalled(): void;
/**
* Use .toHaveBeenCalledTimes to ensure that a mock function got called exact
* number of times.
*/
- toHaveBeenCalledTimes(number: number): void,
+ toHaveBeenCalledTimes(number: number): void;
toBeCalledTimes(number: number): void;
/**
*
@@ -684,46 +691,46 @@ interface JestExpectType {
* Use .toHaveBeenCalledWith to ensure that a mock function was called with
* specific arguments.
*/
- toHaveBeenCalledWith(...args: Array): void,
- toBeCalledWith(...args: Array): void,
+ toHaveBeenCalledWith(...args: Array): void;
+ toBeCalledWith(...args: Array): void;
/**
* Use .toHaveBeenLastCalledWith to ensure that a mock function was last called
* with specific arguments.
*/
- toHaveBeenLastCalledWith(...args: Array): void,
- lastCalledWith(...args: Array): void,
+ toHaveBeenLastCalledWith(...args: Array): void;
+ lastCalledWith(...args: Array): void;
/**
* Check that an object has a .length property and it is set to a certain
* numeric value.
*/
- toHaveLength(number: number): void,
+ toHaveLength(number: number): void;
/**
*
*/
- toHaveProperty(propPath: string, value?: any): void,
+ toHaveProperty(propPath: string, value?: any): void;
/**
* Use .toMatch to check that a string matches a regular expression or string.
*/
- toMatch(regexpOrString: RegExp | string): void,
+ toMatch(regexpOrString: RegExp | string): void;
/**
* Use .toMatchObject to check that a javascript object matches a subset of the properties of an object.
*/
- toMatchObject(object: Object | Array): void,
+ toMatchObject(object: Object | Array): void;
/**
* Use .toStrictEqual to check that a javascript object matches a subset of the properties of an object.
*/
- toStrictEqual(value: any): void,
+ toStrictEqual(value: any): void;
/**
* This ensures that an Object matches the most recent snapshot.
*/
- toMatchSnapshot(propertyMatchers?: any, name?: string): void,
+ toMatchSnapshot(propertyMatchers?: any, name?: string): void;
/**
* This ensures that an Object matches the most recent snapshot.
*/
- toMatchSnapshot(name: string): void,
+ toMatchSnapshot(name: string): void;
- toMatchInlineSnapshot(snapshot?: string): void,
- toMatchInlineSnapshot(propertyMatchers?: any, snapshot?: string): void,
+ toMatchInlineSnapshot(snapshot?: string): void;
+ toMatchInlineSnapshot(propertyMatchers?: any, snapshot?: string): void;
/**
* Use .toThrow to test that a function throws when it is called.
* If you want to test that a specific error gets thrown, you can provide an
@@ -732,14 +739,14 @@ interface JestExpectType {
*
* Alias: .toThrowError
*/
- toThrow(message?: string | Error | Class | RegExp): void,
- toThrowError(message?: string | Error | Class | RegExp): void,
+ toThrow(message?: string | Error | Class | RegExp): void;
+ toThrowError(message?: string | Error | Class | RegExp): void;
/**
* Use .toThrowErrorMatchingSnapshot to test that a function throws a error
* matching the most recent snapshot when it is called.
*/
- toThrowErrorMatchingSnapshot(): void,
- toThrowErrorMatchingInlineSnapshot(snapshot?: string): void,
+ toThrowErrorMatchingSnapshot(): void;
+ toThrowErrorMatchingInlineSnapshot(snapshot?: string): void;
}
type JestObjectType = {
@@ -780,6 +787,10 @@ type JestObjectType = {
* Removes any pending timers from the timer system.
*/
clearAllTimers(): void,
+ /**
+ * Returns the number of fake timers still left to run.
+ */
+ getTimerCount(): number,
/**
* The same as `mock` but not moved to the top of the expectation by
* babel-jest.
@@ -835,6 +846,14 @@ type JestObjectType = {
* useful to isolate modules where local state might conflict between tests.
*/
resetModules(): JestObjectType,
+
+ /**
+ * Creates a sandbox registry for the modules that are loaded inside the
+ * callback function. This is useful to isolate specific modules for every
+ * test so that local module state doesn't conflict between tests.
+ */
+ isolateModules(fn: () => void): JestObjectType,
+
/**
* Exhausts the micro-task queue (usually interfaced in node via
* process.nextTick).
@@ -893,16 +912,20 @@ type JestObjectType = {
* Creates a mock function similar to jest.fn but also tracks calls to
* object[methodName].
*/
- spyOn(object: Object, methodName: string, accessType?: "get" | "set"): JestMockFn,
+ spyOn(
+ object: Object,
+ methodName: string,
+ accessType?: 'get' | 'set'
+ ): JestMockFn,
/**
* Set the default timeout interval for tests and before/after hooks in milliseconds.
* Note: The default timeout interval is 5 seconds if this method is not called.
*/
- setTimeout(timeout: number): JestObjectType
+ setTimeout(timeout: number): JestObjectType,
};
type JestSpyType = {
- calls: JestCallsType
+ calls: JestCallsType,
};
/** Runs this function after every test inside this context */
@@ -1006,6 +1029,13 @@ declare var it: {
timeout?: number
): void,
+ /**
+ * Highlight planned tests in the summary output
+ *
+ * @param {String} Name of Test to do
+ */
+ todo(name: string): void,
+
/**
* Run the test concurrently
*
@@ -1088,7 +1118,7 @@ type JestPrettyFormatPlugin = {
serialize: JestPrettyFormatPrint,
indent: JestPrettyFormatIndent,
opts: JestPrettyFormatOptions,
- colors: JestPrettyFormatColors,
+ colors: JestPrettyFormatColors
) => string,
test: any => boolean,
};
@@ -1098,14 +1128,15 @@ type JestPrettyFormatPlugins = Array;
/** The expect function is used every time you want to test a value */
declare var expect: {
/** The object that you want to make assertions against */
- (value: any):
- & JestExpectType
- & JestPromiseType
- & EnzymeMatchersType
- & DomTestingLibraryType
- & JestJQueryMatchersType
- & JestStyledComponentsMatchersType
- & JestExtendedMatchersType,
+ (
+ value: any
+ ): JestExpectType &
+ JestPromiseType &
+ EnzymeMatchersType &
+ DomTestingLibraryType &
+ JestJQueryMatchersType &
+ JestStyledComponentsMatchersType &
+ JestExtendedMatchersType,
/** Add additional Jasmine matchers to Jest's roster */
extend(matchers: { [name: string]: JestMatcher }): void,
@@ -1151,5 +1182,5 @@ declare var jasmine: {
methodNames: Array
): { [methodName: string]: JestSpyType },
objectContaining(value: Object): Object,
- stringMatching(value: string): string
+ stringMatching(value: string): string,
};
diff --git a/flow-typed/npm/markdown-it_vx.x.x.js b/flow-typed/npm/markdown-it_vx.x.x.js
new file mode 100644
index 0000000000..7528f2885e
--- /dev/null
+++ b/flow-typed/npm/markdown-it_vx.x.x.js
@@ -0,0 +1,409 @@
+// flow-typed signature: 9327993929840dc13f255277352e58ac
+// flow-typed version: <>/markdown-it_v^8.4.2/flow_v0.94.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ * 'markdown-it'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the
+ * community by sending a pull request to:
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'markdown-it' {
+ declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'markdown-it/bin/markdown-it' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/dist/markdown-it' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/dist/markdown-it.min' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/common/entities' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/common/html_blocks' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/common/html_re' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/common/utils' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/helpers/index' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/helpers/parse_link_destination' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/helpers/parse_link_label' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/helpers/parse_link_title' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/index' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/parser_block' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/parser_core' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/parser_inline' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/presets/commonmark' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/presets/default' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/presets/zero' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/renderer' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/ruler' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/blockquote' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/code' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/fence' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/heading' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/hr' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/html_block' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/lheading' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/list' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/paragraph' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/reference' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/state_block' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_block/table' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_core/block' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_core/inline' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_core/linkify' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_core/normalize' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_core/replacements' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_core/smartquotes' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_core/state_core' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/autolink' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/backticks' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/balance_pairs' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/emphasis' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/entity' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/escape' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/html_inline' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/image' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/link' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/newline' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/state_inline' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/strikethrough' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/text_collapse' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/rules_inline/text' {
+ declare module.exports: any;
+}
+
+declare module 'markdown-it/lib/token' {
+ declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'markdown-it/bin/markdown-it.js' {
+ declare module.exports: $Exports<'markdown-it/bin/markdown-it'>;
+}
+declare module 'markdown-it/dist/markdown-it.js' {
+ declare module.exports: $Exports<'markdown-it/dist/markdown-it'>;
+}
+declare module 'markdown-it/dist/markdown-it.min.js' {
+ declare module.exports: $Exports<'markdown-it/dist/markdown-it.min'>;
+}
+declare module 'markdown-it/index' {
+ declare module.exports: $Exports<'markdown-it'>;
+}
+declare module 'markdown-it/index.js' {
+ declare module.exports: $Exports<'markdown-it'>;
+}
+declare module 'markdown-it/lib/common/entities.js' {
+ declare module.exports: $Exports<'markdown-it/lib/common/entities'>;
+}
+declare module 'markdown-it/lib/common/html_blocks.js' {
+ declare module.exports: $Exports<'markdown-it/lib/common/html_blocks'>;
+}
+declare module 'markdown-it/lib/common/html_re.js' {
+ declare module.exports: $Exports<'markdown-it/lib/common/html_re'>;
+}
+declare module 'markdown-it/lib/common/utils.js' {
+ declare module.exports: $Exports<'markdown-it/lib/common/utils'>;
+}
+declare module 'markdown-it/lib/helpers/index.js' {
+ declare module.exports: $Exports<'markdown-it/lib/helpers/index'>;
+}
+declare module 'markdown-it/lib/helpers/parse_link_destination.js' {
+ declare module.exports: $Exports<'markdown-it/lib/helpers/parse_link_destination'>;
+}
+declare module 'markdown-it/lib/helpers/parse_link_label.js' {
+ declare module.exports: $Exports<'markdown-it/lib/helpers/parse_link_label'>;
+}
+declare module 'markdown-it/lib/helpers/parse_link_title.js' {
+ declare module.exports: $Exports<'markdown-it/lib/helpers/parse_link_title'>;
+}
+declare module 'markdown-it/lib/index.js' {
+ declare module.exports: $Exports<'markdown-it/lib/index'>;
+}
+declare module 'markdown-it/lib/parser_block.js' {
+ declare module.exports: $Exports<'markdown-it/lib/parser_block'>;
+}
+declare module 'markdown-it/lib/parser_core.js' {
+ declare module.exports: $Exports<'markdown-it/lib/parser_core'>;
+}
+declare module 'markdown-it/lib/parser_inline.js' {
+ declare module.exports: $Exports<'markdown-it/lib/parser_inline'>;
+}
+declare module 'markdown-it/lib/presets/commonmark.js' {
+ declare module.exports: $Exports<'markdown-it/lib/presets/commonmark'>;
+}
+declare module 'markdown-it/lib/presets/default.js' {
+ declare module.exports: $Exports<'markdown-it/lib/presets/default'>;
+}
+declare module 'markdown-it/lib/presets/zero.js' {
+ declare module.exports: $Exports<'markdown-it/lib/presets/zero'>;
+}
+declare module 'markdown-it/lib/renderer.js' {
+ declare module.exports: $Exports<'markdown-it/lib/renderer'>;
+}
+declare module 'markdown-it/lib/ruler.js' {
+ declare module.exports: $Exports<'markdown-it/lib/ruler'>;
+}
+declare module 'markdown-it/lib/rules_block/blockquote.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/blockquote'>;
+}
+declare module 'markdown-it/lib/rules_block/code.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/code'>;
+}
+declare module 'markdown-it/lib/rules_block/fence.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/fence'>;
+}
+declare module 'markdown-it/lib/rules_block/heading.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/heading'>;
+}
+declare module 'markdown-it/lib/rules_block/hr.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/hr'>;
+}
+declare module 'markdown-it/lib/rules_block/html_block.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/html_block'>;
+}
+declare module 'markdown-it/lib/rules_block/lheading.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/lheading'>;
+}
+declare module 'markdown-it/lib/rules_block/list.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/list'>;
+}
+declare module 'markdown-it/lib/rules_block/paragraph.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/paragraph'>;
+}
+declare module 'markdown-it/lib/rules_block/reference.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/reference'>;
+}
+declare module 'markdown-it/lib/rules_block/state_block.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/state_block'>;
+}
+declare module 'markdown-it/lib/rules_block/table.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_block/table'>;
+}
+declare module 'markdown-it/lib/rules_core/block.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_core/block'>;
+}
+declare module 'markdown-it/lib/rules_core/inline.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_core/inline'>;
+}
+declare module 'markdown-it/lib/rules_core/linkify.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_core/linkify'>;
+}
+declare module 'markdown-it/lib/rules_core/normalize.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_core/normalize'>;
+}
+declare module 'markdown-it/lib/rules_core/replacements.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_core/replacements'>;
+}
+declare module 'markdown-it/lib/rules_core/smartquotes.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_core/smartquotes'>;
+}
+declare module 'markdown-it/lib/rules_core/state_core.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_core/state_core'>;
+}
+declare module 'markdown-it/lib/rules_inline/autolink.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/autolink'>;
+}
+declare module 'markdown-it/lib/rules_inline/backticks.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/backticks'>;
+}
+declare module 'markdown-it/lib/rules_inline/balance_pairs.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/balance_pairs'>;
+}
+declare module 'markdown-it/lib/rules_inline/emphasis.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/emphasis'>;
+}
+declare module 'markdown-it/lib/rules_inline/entity.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/entity'>;
+}
+declare module 'markdown-it/lib/rules_inline/escape.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/escape'>;
+}
+declare module 'markdown-it/lib/rules_inline/html_inline.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/html_inline'>;
+}
+declare module 'markdown-it/lib/rules_inline/image.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/image'>;
+}
+declare module 'markdown-it/lib/rules_inline/link.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/link'>;
+}
+declare module 'markdown-it/lib/rules_inline/newline.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/newline'>;
+}
+declare module 'markdown-it/lib/rules_inline/state_inline.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/state_inline'>;
+}
+declare module 'markdown-it/lib/rules_inline/strikethrough.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/strikethrough'>;
+}
+declare module 'markdown-it/lib/rules_inline/text_collapse.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/text_collapse'>;
+}
+declare module 'markdown-it/lib/rules_inline/text.js' {
+ declare module.exports: $Exports<'markdown-it/lib/rules_inline/text'>;
+}
+declare module 'markdown-it/lib/token.js' {
+ declare module.exports: $Exports<'markdown-it/lib/token'>;
+}
diff --git a/flow-typed/npm/react-redux_v5.x.x.js b/flow-typed/npm/react-redux_v5.x.x.js
index f649502d1b..eeeab17df9 100644
--- a/flow-typed/npm/react-redux_v5.x.x.js
+++ b/flow-typed/npm/react-redux_v5.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: b576396beb90443adc85d3b62e7b0d19
-// flow-typed version: 256d4f254e/react-redux_v5.x.x/flow_>=v0.89.x
+// flow-typed signature: f06f00c3ad0cfedb90c0c6de04b219f3
+// flow-typed version: 3a6d556e4b/react-redux_v5.x.x/flow_>=v0.89.x
/**
The order of type arguments for connect() is as follows:
@@ -82,7 +82,7 @@ declare module "react-redux" {
// Got error like inexact OwnProps is incompatible with exact object type?
// Just make the OP parameter for `connect()` an exact object.
declare type MergeOP = {| ...$Exact, dispatch: D |};
- declare type MergeOPSP = {| ...$Exact, ...SP |};
+ declare type MergeOPSP = {| ...$Exact, ...SP, dispatch: D |};
declare type MergeOPDP = {| ...$Exact, ...DP |};
declare type MergeOPSPDP = {| ...$Exact, ...SP, ...DP |};
@@ -98,8 +98,8 @@ declare module "react-redux" {
mapStateToProps: MapStateToProps,
mapDispatchToProps?: null | void,
mergeProps?: null | void,
- options?: ?Options>,
- ): Connector >;
+ options?: ?Options>,
+ ): Connector
>;
// In this case DP is an object of functions which has been bound to dispatch
// by the given mapDispatchToProps function.
diff --git a/flow-typed/npm/react-test-renderer_v16.x.x.js b/flow-typed/npm/react-test-renderer_v16.x.x.js
index d4a7146e3e..4cb3b4577d 100644
--- a/flow-typed/npm/react-test-renderer_v16.x.x.js
+++ b/flow-typed/npm/react-test-renderer_v16.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 9b9f4128694a7f68659d945b81fb78ff
-// flow-typed version: 46dfe79a54/react-test-renderer_v16.x.x/flow_>=v0.47.x
+// flow-typed signature: b6bb53397d83d2d821e258cc73818d1b
+// flow-typed version: 9c71eca8ef/react-test-renderer_v16.x.x/flow_>=v0.47.x
// Type definitions for react-test-renderer 16.x.x
// Ported from: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-test-renderer
@@ -57,10 +57,16 @@ declare module "react-test-renderer" {
root: ReactTestInstance
};
+ declare type Thenable = {
+ then(resolve: () => mixed, reject?: () => mixed): mixed,
+ };
+
declare function create(
nextElement: React$Element,
options?: TestRendererOptions
): ReactTestRenderer;
+
+ declare function act(callback: () => void): Thenable;
}
declare module "react-test-renderer/shallow" {
diff --git a/flow-typed/npm/rollup-plugin-babel_vx.x.x.js b/flow-typed/npm/rollup-plugin-babel_vx.x.x.js
index 3482de1db4..5277cab1d2 100644
--- a/flow-typed/npm/rollup-plugin-babel_vx.x.x.js
+++ b/flow-typed/npm/rollup-plugin-babel_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: effd7d1c5edf7b632bb8a7f58701ed09
-// flow-typed version: <>/rollup-plugin-babel_v^4.3.2/flow_v0.91.0
+// flow-typed signature: 7fdced3f578c3b741b79c79fd45b1b99
+// flow-typed version: <>/rollup-plugin-babel_v^4.3.2/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js b/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js
index 5fadbdee7a..ecab0991f7 100644
--- a/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js
+++ b/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: dc958ef470a7523e28e299370f38b139
-// flow-typed version: <>/rollup-plugin-commonjs_v^9.2.0/flow_v0.91.0
+// flow-typed signature: 383edc89fba814429e0b0950a5794480
+// flow-typed version: <>/rollup-plugin-commonjs_v^9.2.1/flow_v0.94.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/rollup-plugin-json_vx.x.x.js b/flow-typed/npm/rollup-plugin-json_vx.x.x.js
index a0db83136e..2f8fb89530 100644
--- a/flow-typed/npm/rollup-plugin-json_vx.x.x.js
+++ b/flow-typed/npm/rollup-plugin-json_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 19a9786a3603528e012656a5403216de
-// flow-typed version: <>/rollup-plugin-json_v^3.1.0/flow_v0.91.0
+// flow-typed signature: 7e04f2cd2f0b91ad6b4386ebcd21f853
+// flow-typed version: <