open-index/open-npm huggingface dataset:
npm package: @nteract/actions
Description: A collection of actions
Author: Safia Abdalla
Latest version: 7.1.0

# @nteract/actions

This package contains definitions of constants and action creators that can be used to create Redux actions in your nteract application. These actions can be dispatch to create new cells, launch kernels, create new notebooks, execute cells, and much more. To see this package in action, you can view the source code for the [@nteract/epics](https://github.com/nteract/nteract/tree/master/packages/epics) and [@nteract/core](https://github.com/nteract/nteract/tree/master/packages/core) packages.

## Installation

```
$ yarn add @nteract/actions
```

```
$ npm install --save @nteract/actions
```

## Usage

The Redux reducer below shows how we can leverage the actions and action types in this package to create a reducer for managing the status of a save event.

```javascript
import actions from "@nteract/actions";

export default function myReducer(
  state: MyState,
  action: actions.Save | actions.SaveFulfilled | actions.SaveFailed
) {
  switch (action.type) {
    case actions.SAVE:
      return { ...state, status: "saving" };
    case actions.SAVE_FULFILLED:
      return { ...state, status: "success" };
    case actions.SAVE_FAILED:
      return { ...state, status: "failed" };
    default:
      return state;
  }
}
```

## Documentation

You can view the reference documentation for `@nteract/actions` in the [package docs](https://packages.nteract.io/modules/actions.html).

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:actions` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/commutable
Description: library for immutable notebook operations
Author: Kyle Kelley
Latest version: 7.5.1

# @nteract/commutable

Commutable is a package to represent a Jupyter notebook document, as well as
operations on the notebook, as a series of immutable notebooks, each one with
its own state at a point in time.

This package follows the principles below, based on
[Tom MacWright](http://www.macwright.org/2015/05/18/practical-undo.html)'s
outline for practical undo.

- **A notebook document is immutable**. The notebook document's representation
  is never mutated in-place.
- Changes to a notebook document are encapsulated into **operations** that
  take a previous version and return a new version of the notebook without
  modifying the old version.
- History is represented as a **list of states**, with _the past_ on one end, _the
  present_ on the other, and _an index_ that can back up into 'undo states'.
- Modifying a notebook document causes any **future states to be thrown away**.

## Installation

```
$ yarn add @nteract/commutable
```

```
$ npm install --save @nteract/commutable
```

## Usage

The example below shows how we can create an empty Markdown cell in our
nteract notebook application. We use the `emptyMarkdownCell` immutable object
exported from this package to represent a new empty Markdown cell in a
notebook document.

```javascript
import { emptyMarkdownCell } from "@nteract/commutable";

export default () => (
  <MarkdownPreview
    id="a-random-cell-id"
    cell={emptyMarkdownCell}
    editorFocused={false}
  />
);
```

## Documentation

You can view the reference documentation for `@nteract/commutable` in the
[package docs](https://packages.nteract.io/modules/commutable.html).

## Support

If you experience an issue while using this package or have a feature request,
please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose)
and, if possible, add the `pkg:commutable` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/commuter-server
Description: commuting notebooks across S3 to multi-users
Author: nteract contributors
Latest version: 0.1.12

## ES Operations

### Create a New Index

```
curl -XPOST http://<ES_HOST>/commuter -d @src/resources/commuter.es.mapping.json
```

### Update Alias

```
curl -XPOST http://<ES_HOST>/_aliases -d '
{
    "actions": [
        { "remove": {
            "alias": "commuter",
            "index": "<OLD_INDEX>"
        }},
        { "add": {
            "alias": "commuter",
            "index": "<NEW_INDEX>"
        }}
    ]
}'
```

### Delete Index

```
curl -XDELETE http://<ES_HOST>/commuter
```
npm package: @nteract/connected-components
Description: Connected components exported from @nteract/core
Author: Kyle Kelley
Latest version: 6.9.0

# @nteract/connected-components

This package contains React components for rendering navigation menus and modals in nteract applications. To see this package in action, you can view the source code for the [nteract-on-Jupyter](https://github.com/nteract/nteract/tree/master/applications/jupyter-extension) application.

## Installation

```
$ yarn add @nteract/connected-components
```

```
$ npm install --save @nteract/connected-components
```

## Usage

The example below shows we can use the `ModalController` component within this package to render an about modal.

```javascript
import { ModalController, MODAL_TYPES } from "@nteract/connected-components";

export default () => {
  return <ModalController modalType={MODAL_TYPES.ABOUT} />;
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:connected-components` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/core
Description: core modules and components for nteract apps
Author: Kyle Kelley
Latest version: 15.1.9

# @nteract/core

This package is a package the encapsulates and exports the packages defined in `@nteract/actions`, `@nteract/reducers`, `@nteract/epics`, `@nteract/types`, and `@nteract/selectors`.

## Installation

```
$ yarn add @nteract/core
```

```
$ npm install --save @nteract/core
```

## Usage

The example below shows how we can use the functions within this package to set the `isSaving` property on a notebook state. Note that this is the same example code for the @nteract/reducers package, but we are able to use a single dependency on the `@nteract/core` package to deliver the functionality instead of relying on different dependencies.

```javascript
import { state, reducers, actions } from "@nteract/core";

export default () => {
  const originalState = state.makeAppRecord({
    isSaving: true
  });
  reducers.core.app(originalState, actions.saveFulfilled({}));
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:core` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/directory-listing
Description: A directory listing component that can be used across nteract ecosystem (and beyond)
Author: Alexander C. Booth
Latest version: 2.1.0

# @nteract/directory-listing

This package contains components that can be used to create a listing of items within a directory. To see this package in action, you can view the source code for the [nteract commuter application](https://github.com/nteract/commuter).

## Installation

```
$ yarn add @nteract/directory-listing
```

```
$ npm install --save @nteract/directory-listing
```

## Usage

The example below shows how we can use the components within this package to create a listing of the items in a directory.

```javascript
import { Listing, Entry, Icon, Name, LastSaved } from "@nteract/directory-listing";

export function () => <Listing>
  <Entry>
    <Icon fileType="notebook" />
    <Name>
      <a href="#listing">GANS-for-days.ipynb</a>
    </Name>
    <LastSaved lastModified="2018-06-27T16:21:25.354Z" />
  </Entry>

  <Entry>
    <Icon fileType="directory" />
    <Name>
      <a href="#listing">home</a>
    </Name>
    <LastSaved lastModified="2018-03-27T16:21:25.354Z" />
  </Entry>

  <Entry>
    <Icon fileType="file" />
    <Name>
      <a href="#listing">component.js</a>
    </Name>
    <LastSaved lastModified={new Date("2018-05-27T16:21:25.354Z")} />
  </Entry>
  <Entry>
    <Icon fileType="file" color="gray" />
    <Name>
      <i style={{ color: "gray" }}>no-permission-file.md</i>
    </Name>
    <LastSaved lastModified={new Date("2018-05-27T16:21:25.354Z")} />
  </Entry>
</Listing>
```

![An example of a directory listing created using nteract components.](https://cldup.com/GEhOFUTvAN.png)

## Documentation

You can view the reference documentation for `@nteract/directory-listing` in the Markdown files within the `src` directory.

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/directory-listing/issues).

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/editor
Description: The editor that lives inside cells in nteract
Author: Kyle Kelley
Latest version: 10.1.12

# @nteract/editor

This package contains components for rendering CodeMirror editors in our nteract applications. To see this package in action, you can view the source code for the [nteract play application](https://github.com/nteract/play).

## Installation

```
$ yarn add @nteract/editor
```

```
$ npm install --save @nteract/editor
```

## Usage

The example below shows how we can use this package to create a simple code editor component.

```javascript
import CodeMirrorEditor from "@nteract/editor";

<CodeMirrorEditor
  cellFocused
  editorFocused
  completion
  theme="light"
  id="just-a-cell"
  onFocusChange={() => {}}
  focusAbove={() => {}}
  focusBelow={() => {}}
  kernelStatus={"not connected"}
  options={{
    lineNumbers: true,
    extraKeys: {
      "Ctrl-Space": "autocomplete",
      "Ctrl-Enter": () => {},
      "Cmd-Enter": () => {}
    },
    cursorBlinkRate: 0,
    mode: "python"
  }}
  value={"import pandas as pd"}
  onChange={() => {}}
/>;
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:editor` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/epics
Description: Redux-Observable epics for nteract apps
Author: Safia Abdalla
Latest version: 5.1.0

# @nteract/epics

This package contains a set of Redux-Observable epics for use in nteract applications.

## Installation

```
$ yarn add @nteract/epics
```

```
$ npm install --save @nteract/epics
```

## Usage

The example below shows how we can use the `watchExecutionStateEpic` to monitor the state of a recently launched kernel.

```javascript
import { watchExecutionStateEpic } from "@nteract/epics";

export default () => {
  // Create a Observable for the successful launch of a
  // kernel.
  const action$ = ActionsObservable.of({
      type: actionTypes.LAUNCH_KERNEL_SUCCESSFUL,
      payload: {
        kernel: {
          channels: of({
            header: { msg_type: "status" },
            content: { execution_state: "idle" }
          })
        }
      }
    });
    // Monitor the Observable and update the
    // state of the kernel on our client appropriately.
    const obs = watchExecutionStateEpic(action$);
    obs.pipe(toArray()).subscribe(
      actions => {
        const types = actions.map(({ type }) => type);
        expect(types).toEqual([actionTypes.SET_EXECUTION_STATE]);
      },
      err => done.fail(err), // It should not error in the stream
      () => done()
    );
  });
}
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:epics` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/fixtures
Description: This package contains fixtures for immutable and string notebooks for use in nteract test suites.
Author: Safia Abdalla
Latest version: 2.3.19

# @nteract/fixtures

This package contains fixtures for immutable and string notebooks for use in nteract test suites.

## Installation

```
$ yarn add @nteract/fixtures
```

```
$ npm install --save @nteract/fixtures
```

## Usage

The example below shows how we can use this package to create a Redux store for a notebook with two code cells.

```javascript
import { fixtureStore } from "@nteract/fixtures";

export default () => {
  const testStore = fixtureStore({ codeCellCount: 2 });
  return testStore;
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:fixtures` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/iron-icons
Description: iron-icon react components, styled for use within nteract packages
Author: Alexander C. Booth
Latest version: 1.0.0

# `iron-icons`

[`iron-icon`](https://www.webcomponents.org/element/@polymer/iron-icons) React components, styled for use within nteract packages.

## Installation

You may use whichever package manager (`npm` or `yarn`) best suits your workflow. The `nteract` team internally uses `yarn`.

```bash
npm install --save @nteract/iron-icons
# OR
yarn add @nteract/iron-icons
```
npm package: @nteract/jupyter-widgets
Description: Transform for rendering Jupyter-JS-Widgets in output areas.
Author: Jonathan Frederic
Latest version: 4.1.19

# @nteract/jupyter-widgets

**Note:** The implementation of @nteract/jupyter-widgets is currently in-progress. Please [follow this issue](https://github.com/nteract/nteract/issues/4573).

This package exposes a React component for rendering ipywidgets into a notebook application. It also exposes components for building custom widget renderers.

## Installation

```
$ yarn add @nteract/jupyter-widgets
```

```
$ npm install --save @nteract/jupyter-widgets
```

Note: The connected (to Redux) components in this package depend on some of the APIs provided in the `@nteract/core` package. This package depends on a certain version of `@nteract/core` but you can target a particular version by modifying your lock file.

## Usage

```javascript
import WidgetDisplay from "@nteract/jupyter-widgets";

export default class MyNotebookApp extends ReactComponent {
  render() {
    return <WidgetDisplay data={{ model_id: "widget-model-guid" }} />;
  }
}
```

## Documentation

The `jupyter-widgets` package supports two types of widgets:
- Standard widgets provided in the official [`jupyter-widgets/base`](https://www.npmjs.com/package/@jupyter-widgets/base) and [`jupyter-widgets/controls`](https://www.npmjs.com/package/@jupyter-widgets/controls) package
- [Custom Widgets](https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Custom.html) or 3rd party widgets authored by the OSS community

The `WidgetDisplay` component has an additional prop named `customWidgetLoader`  to provide custom loaders for fetching 3rd party widgets. A reference implementation for a custom loader which serves as the default for this package can be found in `widget-loader.ts`.

```typescript
customWidgetLoader?: (moduleName: string, moduleVersion: string) => Promise<any>;
```

### Custom Widgets

Since custom widgets are hosted on CDN, we set https://unkpg.com as our default CDN Base URL. The default base URL can be overriden by specifying another URL via the HTML attribute "data-jupyter-widgets-cdn" on any script tag of the page.

For instance if your JavaScript bundle is loaded as `bundle.js` on your page and you wanted to set [jsdelivr](https://www.jsdelivr.com) as your default CDN url for custom widgets, you could do the following:
```html
<script data-jupyter-widgets-cdn="https://cdn.jsdelivr.net/npm" src="bundle.js"></script>
```
Note: Custom widgets are fetched and loaded using the [requireJS](https://requirejs.org/) library. Please ensure that the library is loaded on your page and that the `require` and `define` APIs are available on the `window` object. We attempt to detect the presence of these APIs and emit a warning that custom widgets won't work when `requirejs` is missing.



## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:jupyter-widgets` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/kernel-relay
Description: This package provides a GraphQL API for managing communication between a Jupyter kernel and clients. The package allows users to launch kernels, subscribe to the status of a kernel, send Jupyter messages from a client to a kernel, and more.
Author: nteract Contributors
Latest version: 2.0.2

# @nteract/kernel-relay

This package provides a GraphQL API for managing communication between a
Jupyter kernel and front-end clients. The package allows users to control and
monitor kernels.

Through GraphQL queries and mutations, the API enables the user to launch
kernels, subscribe to the status of a kernel, send Jupyter messages from a
client to a kernel, and more.

## Installation

```
$ yarn add @nteract/kernel-relay
```

```
$ npm install --save @nteract/kernel-relay
```

## Usage

The query example below showcases how to use the GraphQL API to get the status
of a kernel.

```
# Query
query Kernel {
    status(kernelId: "my-kernel-id") {
        displayName,
        status
    }
}
# Response
{
    data: {
        kernel: {
            displayName: "Python 3"
            status: "idle"
        }
    }
}
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by
watching this repository!

## Support

If you experience an issue while using this package or have a feature request,
please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose)
and, if possible, add the `pkg:kernel-relay` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/logos
Description: logos for nteract apps
Author: Kyle Kelley
Latest version: 1.0.0

# @nteract/logos

This package contains a component for rendering the lovely nteract logo.

## Installation

```
$ yarn add @nteract/logos
```

```
$ npm install --save @nteract/logos
```

## Usage

The example below shows how we can use this package to create a simple code editor component.

```javascript
import { WideLogo } from "@nteract/logos";

export default () => {
  return <WideLogo height={100} theme={"light"} />;
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:logos` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/markdown
Description: Markdown/MathJax renderer for nteract
Author: Trevor Lyon
Latest version: 4.6.2

# @nteract/markdown

This package contains components that allow us to render Markdown text per the Commonmark specification. It also supports rendering in-line and block math using the LaTeX syntax.

## Installation

```
$ yarn add @nteract/markdown
```

```
$ npm install --save @nteract/markdown
```

## Usage

The example below shows how we can use this package to render Commonmark-specified Markdown with LaTeX math.

```javascript
import MarkdownRender from "@nteract/markdown";

export default () => {
  return (
    <MarkdownRender
      source={`Just some $\delta_{\alpha}$ math and __formatting__.`}
    />
  );
};
```

## Documentation

You can view the reference documentation for `@nteract/markdown` in the the [examples](./examples.md).

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/markdown/issues).

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/mathjax
Description: React components for MathJax
Author: Kyle Kelley
Latest version: 4.0.16

# @nteract/mathjax

This package contains two main components, `<MathJax.Context>` and `<MathJax.Node>`. The `<MathJax.Context>` component loads MathJax and makes it available to children elements via the React Context API. `<MathJax.Node>` takes raw text for rendering and uses MathJax to render formatted math.

## Installation

```
$ yarn add @nteract/mathjax
```

```
$ npm install --save @nteract/mathjax
```

## Usage

The Redux reducer below shows how we can leverage the actions and action types in this package to create a reducer for managing the status of a save event.

```javascript
import MathJax from "@nteract/mathjax";

export default text => {
  return (
    <MathJax.Context>
      <MathJax.Node>{`x^2 + y^2 = z^2`}</MathJax.Node>
      <MathJax.Node>{text}</MathJax.Node>
    </MathJax.Context>
  );
};
```

## Documentation

You can view the reference documentation for `@nteract/mathjax` in the the [examples documentation](./examples.md).

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/mathjax/issues/new/choose).

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/messaging
Description: Messaging mechanics for nteract apps (jupyter spec)
Author: Kyle Kelley
Latest version: 7.0.20

# @nteract/messaging

This package contains type definitions and helper functions for interacting with the [Jupyter Messaging Protocol](https://jupyter-client.readthedocs.io/en/stable/messaging.html). These functions can be used to create different types of request and response messages.

## Installation

```
$ yarn add @nteract/messaging
```

```
$ npm install --save @nteract/messaging
```

## Usage

The example below shows how we can use the `createMessage` function in this package to create an [inspect_request](https://jupyter-client.readthedocs.io/en/stable/messaging.html#introspection) Jupyter message.

```javascript
import { createMessage } from "@nteract/messaging";

const message = createMessage("inspect_request", {
  code: "string.for",
  cursor_pos: 10,
  detail_level: 1
});
```

## Documentation

You can view the reference documentation for `@nteract/messaging` in the [package docs](https://packages.nteract.io/modules/messaging.html).

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:messaging` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/mythic-multiselect
Description: For selecting multiple cells
Author: nteract contributers
Latest version: 0.0.12

# @nteract/mythic-multiselect

This package implements a simple method of keeping track of multiple selected cells using the `myths` framework.

## Installation

```
$ yarn add @nteract/mythic-multiselect
```

```
$ npm install --save @nteract/mythic-multiselect
```

## Usage

Initialize the package by including the `notifications` package in your store and rendering the `<NotificationsRoot/>`:

```javascript
import {
  multiselect,
  selectCell,
  unselectCell,
  clearSelectedCells,
} from "@nteract/mythic-multiselect";

store.dispatch(
  selectCell({
    contentRef: "content",
    id: "cellID",
  })
);
```

## API

```typescript
```

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:mythic-multiselect` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/mythic-notifications
Description: A notification system based on blueprintjs toasters and the myths redux framework
Author: nteract contributers
Latest version: 0.2.11

# @nteract/mythic-notifications

This package implements a notification system based on `blueprintjs`, using the `myths` framework.

## Installation

```
$ yarn add @nteract/mythic-notifications
```

```
$ npm install --save @nteract/mythic-notifications
```

## Usage

Initialize the package by including the `notifications` package in your store and rendering the `<NotificationsRoot/>`:

```javascript
import { notifications, NotificationRoot } from "@nteract/mythic-notifications";
import { makeConfigureStore } from "@nteract/myths";

export const configureStore = makeConfigureStore({
  packages: [notifications],
});

export const App = () =>
    <>
      {/* ... */}
      <NotificationRoot darkTheme={false} />
    </>
```

Then dispatch actions made by `sendNotification.create`:

```javascript
import { sendNotification } from "@nteract/mythic-notifications";

store.dispatch(sendNotification.create({
  title: "Hello World!",
  message: <em>Hi out there!</em>,
  level: "info",
}));
```

## API

```typescript
import { IconName } from "@blueprintjs/core";

export interface NotificationMessage {
  key?: string;
  icon?: IconName;
  title?: string;
  message: string | JSX.Element;
  level: "error" | "warning" | "info" | "success" | "in-progress";
  action?: {
    icon?: IconName;
    label: string;
    callback: () => void;
  };
}
```

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:mythic-notifications` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/mythic-windowing
Description: A windowing system based on electron and the myths redux framework
Author: nteract contributers
Latest version: 0.1.7

# @nteract/mythic-windowing

This package implements a windowing system based on `electron`, using the `myths` framework.

## Installation

```
$ yarn add @nteract/mythic-windowing
```

```
$ npm install --save @nteract/mythic-windowing
```

## Usage

Initialize the package by including the `windowing` package in your store:

```javascript
import { windowing, setWindowingBackend, electronBackend } from "@nteract/mythic-windowing";
import { makeConfigureStore } from "@nteract/myths";

export const configureStore = makeConfigureStore({
  packages: [windowing],
});

store.dispatch(setWindowingBackend.create(electronBackend));

const electronReady$ = new Observable((observer) => {
  (app as any).on("ready", launchInfo => observer.next(launchInfo));
});

electronReady$
  .subscribe(
    () => store.dispatch(
      showWindow.create({
        id: "splash",
        kind: "splash",
        width: 565,
        height: 233,
        path: join(__dirname, "..", "static", "splash.html"),
      })
    ),
    (err) => console.error(err),
    () => store.dispatch(
      closeWindow.create("splash")
    ),
  );
```

## API

TBD

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:mythic-windowing` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/nbextension
Description: nteract on jupyter, as an extension
Author: Kyle Kelley
Latest version: 0.3.9

# nteract on jupyter

nteract as an extension to the jupyter notebook server

## Installation

```
pip install nteract_on_jupyter
jupyter serverextension enable nteract_on_jupyter
```

## Development

Make sure you've done the `npm install` at the base of the nteract/nteract monorepo, then within this package:

```
pip install -e .
jupyter serverextension enable nteract_on_jupyter
```

Now, `cd` into `nteract_on_jupyter` and run:

```
npm run build:watch
```

## ROADMAP(ish)

* In development mode, have a clean webpack build locally
* In production, be able to toggle an endpoint to get the bundle from
npm package: @nteract/notebook-app-component
Description: Editable notebook app component, backed by @nteract/core's store
Author: Kyle Kelley
Latest version: 7.7.11

# Notebook App Component

A monolithic notebook app, in a component

## Installation
```
npm install --save @nteract/notebook-app-component
```

## Usage

This component is not for the faint of heart. It requires you to setup the redux store used by the other nteract apps. You can check out desktop or jupyter extension for examples.

```jsx
import NotebookApp from "@nteract/notebook-app-component";

<NotebookApp
  // The desktop app always keeps the same contentRef in a
  // browser window
  contentRef={contentRef}
/>
```
npm package: @nteract/octicons
Description: octicon react components, styled for use within nteract packages
Author: Kyle Kelley
Latest version: 2.0.0

# @nteract/octicons

This package contains a set of React icon components used within nteract applications. These icons are based on the [GitHub Octicons icon set](https://octicons.github.com/).

## Installation

```
$ yarn add @nteract/octicons
```

```
$ npm install --save @nteract/octicons
```

## Usage

The example below shows how to use the icons in this package to render a save button.

```javascript
import { DownArrow } from "@nteract/actions";

export default () => {
  return (
    <button>
      <DownArrow /> Save
    </button>
  );
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:octicons` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/outputs
Description: components for rendering outputs
Author: Kyle Kelley
Latest version: 5.1.14

# @nteract/outputs

This package contains components for rendering different responses from a Jupyter kernel. These components provide support for rendering plain data and rich media (such as images and HTML) data.

## Installation

```
$ yarn add @nteract/outputs
```

```
$ npm install --save @nteract/outputs
```

## Usage

The example below shows how we can use the `ExecuteResult` component within this package to render the response to an execution request sent by our Jupyter kernel.

```javascript
import { ExecuteResult } from "@nteract/outputs";

export default () => {
  const Plain = props => <pre>{props.data}</pre>;
  Plain.defaultProps = {
    mediaType: "text/plain"
  };

  return (
    <ExecuteResult data={{ "text/plain": "The answer to everything is 42." }}>
      <Plain />
    </ExecuteResult>
  );
};
```

## Documentation

You can view the reference documentation for `@nteract/outputs` in the [component docs](https://components.nteract.io/#nteractoutputs).

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/outputs/issues).

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/plotly
Description: A minimal version of the plotly.js library
Author: Lukas Geiger
Latest version: 1.49.1

# @nteract/plotly

[![npm (scoped)](https://img.shields.io/npm/v/@nteract/plotly)](https://www.npmjs.com/package/@nteract/plotly)
[![Build Status](https://travis-ci.org/nteract/minimal-plotly.svg?branch=master)](https://travis-ci.org/nteract/minimal-plotly)

A minified version of the [plotly](https://plot.ly/javascript/) library.

## Installation

```bash
npm install @nteract/plotly
```

## Usage Example

```javascript
const Plotly = require("@nteract/plotly");
const div = document.createElement("div");
document.body.appendChild(div);
Plotly.plot(
  div,
  [
    {
      x: [1, 2, 3, 4, 5],
      y: [1, 2, 4, 8, 16]
    }
  ],
  {
    margin: { t: 0 }
  }
);
```

## Plotly Library

- Documentation for the plotly.js library: https://plot.ly/javascript/
- Source code for the plotly.js library: https://github.com/plotly/plotly.js
- Release notes for the plotly.js library: https://github.com/plotly/plotly.js/releases
npm package: @nteract/presentational-components
Description: pure presentational components for nteract
Author: Kyle Kelley
Latest version: 3.4.12

# @nteract/presentational-components

This package contains React components for rendering inputs, outputs, cells, and other key UI elements within nteract applications.

## Installation

```
$ yarn add @nteract/presentational-components
```

```
$ npm install --save @nteract/presentational-components
```

## Usage

The Redux reducer below shows how we can leverage the components within this package to display a cell with an input and output.

```javascript
import {
  Cell,
  Input,
  Prompt,
  Source,
  Outputs
} from "@nteract/presentational-components";

export default () => {
  return (
    <Cell isSelected>
      <Input>
        <Prompt counter={2} />
        <Source language="python">{`print("Hello World")`}</Source>
      </Input>
      <Outputs>
        <pre>Hello World</pre>
      </Outputs>
    </Cell>
  );
};
```

## Documentation

You can view the reference documentation for `@nteract/presentational-components` in the [component docs](https://components.nteract.io/#nteractpresentational-components).

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:presentational-components` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/reducers
Description: A set of reducers for use in nteract applications
Author: Safia Abdalla
Latest version: 5.1.13

# @nteract/reducers

This package contains a set of Redux reducers for use in nteract applications.

## Installation

```
$ yarn add @nteract/reducers
```

```
$ npm install --save @nteract/reducers
```

## Usage

The example below shows how we can use the functions within this package and those within `@nteract/actions` and `@nteract/types` to set the `isSaving` property on a notebook state.

```javascript
import * as reducers from "@nteract/reducers";
import * as actions from "@nteract/actions";
import * as state from "@nteract/types";

export default () => {
  const originalState = state.makeAppRecord({
    isSaving: true
  });
  reducers.app(originalState, actions.saveFulfilled({}));
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:reducers` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/selectors
Description: A colletion of state selectors
Author: Safia Abdalla
Latest version: 3.2.0

# @nteract/selectors

This package provides a set of selectors and functions that allow you to extract important information from the state of your nteract application. To see a full set of the data stored in application state that be extracted with this package, you can view the AppState type.

## Installation

```
$ yarn add @nteract/selectors
```

```
$ npm install --save @nteract/selectors
```

## Usage

```javascript
import { modalType, currentTheme } from "@nteract/selectors";

const state = {
  config: {
    theme: "dark"
  },
  core: {
    entities: {
      modals: {
        modalType: "ABOUT"
      }
    }
  }
};

const theme = currentTheme(state);
const currentModal = modalType(state);
console.log(`Rendering ${currentModal} modal using ${theme} theme.`);
> Rendering ABOUT modal using dark theme.
```

## Documentation

You can view the reference documentation for `@nteract/selectors` in the [package docs](https://packages.nteract.io/modules/selectors.html).

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:selectors` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/showcase
Description: showcase of nteract components
Author: Kyle Kelley
Latest version: 0.2.2

# showcase application

The showcase application lets you try out different pages that "showcase"
nteract capabilities.

## Installation and usage

Install nteract's monorepo as described in the `README.md` in the root directory
of the repo.

Run:

```
npm run app:showcase
```

Open `127.0.0.1:3000` in your browser. You'll be able to make changes to
`showcase` and see the changes update live.

## Basics

The app uses "next-gen" core components.

### App pages

These are the currently available pages within showcase:

- index.js
- notebook-preview.js
- notebook-render.js
- transforms.js

To add an additional page, place the page in the `pages` directory and update
`index.js`.
npm package: @nteract/stateful-components
Description: A collection of sub-components pre-connected to nteract's Redux state
Author: Safia Abdalla
Latest version: 1.7.15

# @nteract/stateful-components

This package exports a set of React components that are pre-connected to the Redux state as mapped by @nteract/core. This package is designed to reduced the hassle for building React-based applications for developers who are already building on top of the core SDK. It also exposes several interfaces for extending the `mapStateToProps`, `mapDispatchToProps`, and styles of the individual components.

## Installation

```
$ yarn add @nteract/stateful-components
```

```
$ npm install --save @nteract/stateful-components
```

## Usage

You can import the top-level Notebook component which contains the canonical setup for a Jupyter-backed notebook application.

```
import { Notebook }  from "@nteract/stateful-components"

class MyNotebook extends React.Component {
    render() {
        return <Notebook contentRef={someContentRefHere}>
    }
}
```

Alternatively, you can assemble your own notebook-UI from the subcomponents. For example, to swap out the canonical `MarkdownCell` implementation.

```
import { Cells, Cell, CodeCell, RawCell } from "@nteract/stateful-components";

class MyMarkdownCell extends React.Component {
    static defaultProps = {
        cell_type: "markdown"
    }

    render() {
        return <p>My custom logic here</p>;
    }
}

class MyNotebook extends React.Component {
    render() {
        return <Cells>
            <Cell>
                <MyMarkdownCell/>
                <CodeCell/>
                <RawCell>
            </Cell>
        </Cells>;
    }
}
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:stateful-components` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/styled-blueprintjsx
Description: CSS underpinnings of blueprint.js, packaged as global styled components
Author: Kyle Kelley
Latest version: 2.1.0

# styled-blueprintjsx

This package wraps up [Blueprint](https://blueprintjs.com/) styles as a styled-components global style to subvert the need for a CSS loader.

```jsx
import { BlueprintCSS } from "@nteract/styled-blueprintjsx

<React.Fragment>
  <SuperCoolComponent />
  <BlueprintCSS />
</React.Fragment>
```

## Installation

```
npm install --save @nteract/styled-blueprintjsx
```

## Documentation

### With `@blueprintjs/core`

When working with `@blueprintjs/core` components, they need some globally defined (yet scoped) CSS. You can include this on the page with

```jsx
import { BlueprintCSS } from "@nteract/styled-blueprintjsx

<React.Fragment>
  <SuperCoolComponent />
  <BlueprintCSS />
</React.Fragment>
```

### With `@blueprintjs/select`

For `@blueprintjs/select`'s suite of components, you need to include `<BlueprintSelectCSS />` from this package.

```jsx
import { BlueprintCSS, BlueprintSelectCSS } from "@nteract/styled-blueprintjsx

<React.Fragment>
  <SuperCoolComponent />
  <BlueprintCSS />
  <BlueprintSelectCSS />
</React.Fragment>
```

styled-blueprintjsx makes use of [`createGlobalStyle` from `styled-components`](https://www.styled-components.com/docs/api#createglobalstyle) and so is a React Component you can render anywhere in your app. You can read more about this pattern in the styled-components docs linked above.

## Support

Please post an issue on the [issue tracker](https://github.com/nteract/styled-blueprintjsx/issues).

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/transform-geojson
Description: GeoJSON Transform
Latest version: 5.1.13

# @nteract/transform-geojson

This package contains a React component that renders [GeoJSON data](http://geojson.org/) into interactive maps using [Leaflet](https://leafletjs.com/).

## Installation

```
$ yarn add @nteract/transform-geojson
```

```
$ npm install --save @nteract/transform-geojson
```

## Usage

The example below shows how we can use the transform to render two coordinates on a map with a pop-up.

```javascript
import GeoJSONTransform from "@nteract/transform-geojson";

export default () => {
  return (
    <GeoJSONTransform
      data={{
        type: "FeatureCollection",
        features: [
          {
            type: "Feature",
            properties: {
              popupContent: "18th & California Light Rail Stop"
            },
            geometry: {
              type: "Point",
              coordinates: [-104.98999178409576, 39.74683938093904]
            }
          },
          {
            type: "Feature",
            properties: {
              popupContent: "20th & Welton Light Rail Stop"
            },
            geometry: {
              type: "Point",
              coordinates: [-104.98689115047453, 39.747924136466565]
            }
          }
        ]
      }}
      metadata={true}
    />
  );
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:transform-geojson` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/transform-model-debug
Description: Transform for debug usage with nteract models
Latest version: 5.0.1

# @nteract/transform-model-debug

This package contains a React component that can be used to render the state of a comms model.

## Installation

```
$ yarn add @nteract/transform-model-debug
```

```
$ npm install --save @nteract/transform-model-debug
```

## Usage

```javascript
import ModelDebug from "@nteract/transform-model-debug";

export default () => {
  return <ModelDebug data={"hey"} models={{ 1: { fun: true } }} />;
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:transform-model-debug` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/transform-plotly
Description: Plotly Transform
Latest version: 7.0.1

# @nteract/transform-plotly

This package contains a React component for rendering visualizations using Plotly.

## Installation

```
$ yarn add @nteract/transform-plotly
```

```
$ npm install --save @nteract/transform-plotly
```

## Usage

The example below shows how we can use the PlotlyTransform to render a scatterplot.

```javascript
import PlotlyTransform from "@nteract/transform-plotly";

export default () => {
  return (
    <PlotlyTransform
      data={`{
  data: [
    { x: [1999, 2000, 2001, 2002], y: [10, 15, 13, 17], type: "scatter" },
    { x: [1999, 2000, 2001, 2002], y: [16, 5, 11, 9], type: "scatter" }
  ],
  layout: {
    title: "Super Stuff",
    xaxis: { title: "Year", showgrid: false, zeroline: false },
    yaxis: { title: "Percent", showline: false },
    height: "100px"
  }
}`}
    />
  );
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:transform-plotly` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
npm package: @nteract/transform-vdom
Description: VDOM Transform for jupyter outputs
Latest version: 4.0.15

# @nteract/transform-vdom

This package contains a React component for rendering [virtual DOM elements](https://github.com/nteract/vdom/blob/master/docs/mimetype-spec.md) returned by libraries like [vdom for Python](https://github.com/nteract/vdom).

## Installation

```
$ yarn add @nteract/transform-vdom
```

```
$ npm install --save @nteract/transform-vdom
```

## Usage

The example below shows how we can use the component within this package to render a virtual DOM contain a div with some headers and an image.

```javascript
import { TransformVDOM } from "@nteract/transform-vdom";

export default () => {
  return (
    <TransformVDOM
      data={{
        tagName: "div",
        attributes: { style: { color: "DeepPink" } },
        children: [
          { tagName: "h1", attributes: {}, children: "Wahoo" },
          { tagName: "h1", attributes: {}, children: null },
          {
            tagName: "img",
            attributes: { width: "100px", height: "100px", src: "about:blank" },
            children: []
          }
        ]
      }}
    />
  );
};
```

## Documentation

We're working on adding more documentation for this component. Stay tuned by watching this repository!

## Support

If you experience an issue while using this package or have a feature request, please file an issue on the [issue board](https://github.com/nteract/nteract/issues/new/choose) and add the `pkg:transform-vdom` label.

## License

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)