# @interopio/workspaces-api

## Overview

The [`@interopio/workspaces-api`](https://www.npmjs.com/package/@interopio/workspaces-api) library provides an API for managing Workspaces in **io.Connect Desktop** and **io.Connect Browser** projects.

## Installation

To install the library, execute the following command:

```cmd
npm install @interopio/workspaces-api
```

## Usage

The following examples demonstrate basic initialization of the `@interopio/workspaces-api` library in **io.Connect Desktop** and **io.Connect Browser** projects.

> ℹ️ *For more details on using the `@interopio/workspaces-api` library in **io.Connect Desktop** projects, see the **io.Connect Desktop** [official documentation](https://docs.interop.io/desktop/capabilities/windows/workspaces/overview/index.html).*

> ℹ️ *For more details on using the `@interopio/workspaces-api` library in **io.Connect Browser** projects, see the **io.Connect Browser** [official documentation](https://docs.interop.io/browser/capabilities/windows/workspaces/overview/index.html).*

### io.Connect Desktop

Initializing the `@interopio/workspaces-api` library in a client app of an **io.Connect Desktop** project:

```javascript
import IODesktop from "@interopio/desktop";
import IOWorkspaces from "@interopio/workspaces-api";

const config = {
    libraries: [IOWorkspaces]
};

const io = await IODesktop(config);

// Now you can access the Workspaces API via `io.workspaces`.
```

### io.Connect Browser

Initializing the `@interopio/workspaces-api` library in the Main app of an **io.Connect Browser** project:

```javascript
import IOBrowserPlatform from "@interopio/browser-platform";
import IOWorkspaces from "@interopio/workspaces-api";

const config = {
    licenseKey: "my-license-key",
    workspaces: {
        // Location of the Workspaces App.
        src: "https://my-workspaces-app.com"
    },
    browser: {
        // Initializing the Workspaces API.
        libraries: [IOWorkspaces]
    },
    layouts: {
        mode: "session",
        // Layout definition objects of type `"Workspace"`.
        local: [ {...}, {...}]
    }
};

const { io } = await IOBrowserPlatform(config);
```

Initializing the `@interopio/workspaces-api` library in a Browser Client app of an **io.Connect Browser** project:

```javascript
import IOBrowser from "@interopio/browser";
import IOWorkspaces from "@interopio/workspaces-api";

const config = {
    libraries: [IOWorkspaces]
};

const io = await IOBrowser(config);

// Now you can access the Workspaces API via `io.workspaces`.
```
