# Flex UI 1.x.x components

> \[!NOTE]
>
> For the Flex UI 2.x.x version of this content, see [Flex UI Components](/docs/flex/developer/ui/components).

> \[!NOTE]
>
> [Auto-Generated Documentation for the Flex UI](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/) is now available. The auto-generated documentation is accurate and comprehensive, and so may differ from what you see in the official Flex UI documentation.

Flex UI is a library of programmable or dynamic components that expose a `Content` property and allow you to add, replace, or remove any component and its children.

## Content property and add / replace / remove methods

This article provdies a list of UI components and their details. You can override these components programmatically using the `add`, `replace`, and `remove` methods with options.

> \[!WARNING]
>
> You must declare a key for all components.

### Syntax for the `add` and `replace` methods

```javascript
Flex.Component.Content.add(<MyComponent key="demo-component"/>, {options});
Flex.Component.Content.replace(<MyComponent key="demo-component"/>, {options});
```

**Example**

The following example adds a component called `AnotherMuteButton` to the `MainHeader` component. The `AnotherMuteButton` component appers aligned to the end (left, in the example) and placed as the first component in front of native components `MuteButton` and `UserControls`:

```javascript
Flex.MainHeader.Content.add(<AnotherMuteButton key="mute"/>, {
  sortOrder: -1,
  align: "end"
});
```

### Syntax for the `remove` method

The `remove` method allows you to remove **immediate children** of a programmable component by their key.

```javascript
Flex.Component.Content.remove(key, {options});
```

**Example**

The following example shows removing the `AnotherMuteButton` component from the `MainHeader` component `mute` key set in the previous example.

```javascript
Flex.MainHeader.Content.remove("mute");
```

### Options for the `add`, `replace`, and `remove` methods

#### if (*Expression*)

Used in both `add` and `replace` methods to add conditions on which component is added or replaced.

**Example**

```javascript
Flex.MainHeader.Content.add(<AnotherMuteButton key="mute"/>, {
  if : props => props.task.source.taskChannelUniqueName === "custom1"
});
```

#### sortOrder (*number*)

Used in the `add` method to specify the order in which the new component is placed in relation to other children of the parent component. Native children components take priority. Sort order counter starts with 0. To always place a new component at the start or end of the order, use large numbers like -100 or 100, depending on the direction.

**Example**

```javascript
Flex.MainHeader.Content.add(<AnotherMuteButton key="mute"/>, {
  sortOrder: -1
});
```

#### align ('*start*' | '*end*')

Used in the `add` method to align new components either to the top/bottom or right/left, depending on the direction of the parent component. Possible values are:

* **start**: aligns new component on the left or top
* **end**: aligns new component on the right or bottom

**Example**

```javascript
Flex.MainHeader.Content.add(<AnotherMuteButton key="mute"/>, {
  align: "end"
});
```

## Programmable components

Each immediate child of a component has a key (required for the `add` and `replace` methods) and a set of properties that its children inherit. To find a component's `key` or explore component props, go to the [Flex UI API Reference](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/).

### Agent Desktop View components overview

![Twilio Flex agent interface with chat panel and account details.](https://docs-resources.prod.twilio.com/5410a9841dd1f130f4d292f76c3f2b9b103d0717a863d4111d4fc46d13bb85d6.png)

### Teams View components overview

![Supervisor UI showing team view, agent tasks, and profile details with call monitoring.](https://docs-resources.prod.twilio.com/961eabe87847c58a1ce15c4dc276af579094bc40df438823bb98591df35bb72b.png)

## RootContainer

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/RootContainer.html)

*Direction: Horizontal*

### MainHeader

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/MainHeader.html)

*Direction: Horizontal*

![Navigation bar with menu, microphone icon, and user status showing Jane Martin online.](https://docs-resources.prod.twilio.com/e7b156d0c8ff18928ee29dcbae7bafac45aed9efe5dba0f93b3d7b090fa52a4e.png)

### MainContainer

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/MainContainer.html)

*Direction: Horizontal*

![MainContainer-V2.](https://docs-resources.prod.twilio.com/6868e7563e138d103bd57a45713982810551daf358905f342b4f52466188e271.png)

### LiveCommsBar

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/LiveCommsBar.html)

*Direction: Horizontal*

![Listening to Janice Wood's call with phone number, options to return or stop listening.](https://docs-resources.prod.twilio.com/d91ddd4e38a678da3430b805b653b6d29301661c147ce4c9687fbb43070ab0e1.png)

### NotificationsBar

*Direction: Horizontal*

Customizing the NotificationsBar is described in Notifications Framework

![Network error notification with orange icon and close button.](https://docs-resources.prod.twilio.com/9af2de64d2990efffaa92b9b484cac15e52dd0b1f7ea103052fc0fa4ef34ff7f.png)

### SideNav

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/SideNav.html)

*Direction: Vertical*

![Collapsed and expanded sidenav with options: Dashboard, Task View, Admin, Supervisor, Directory, Settings.](https://docs-resources.prod.twilio.com/de438dc7b7b3fa6eef075744308e135b52497861a9822431ab1a9000f7d95203.png)

## Agent Desktop View Components

### AgentDesktopView

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/AgentDesktopView.html)

*Direction: Horizontal*

![AgentDesktopView-V2.](https://docs-resources.prod.twilio.com/aa4638e8b0caefb55ff0a5359d1753a7788658da20667ef7937f967666b7fe31.png)

### AgentDesktopView.Panel1

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Panel1.html)

*Direction: Vertical*

![Agent desktop view with chat interface showing conversation with Damien Smith.](https://docs-resources.prod.twilio.com/e1bcd23d193e17acc4fe8979a54483110fbb29b788a646c4b1858c3c92a6c827.png)

### AgentDesktopView.Panel2

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Panel2.html)

*Direction: Vertical*

![Flex.AgentDesktopView.Panel2.](https://docs-resources.prod.twilio.com/9337266c22cbfc6c240e61ba7303b1cc5f4d98d8d3be34731e6a95063da03b66.png)

### CRMContainer

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/CRMContainer.html)

*Direction: Vertical*

![No CRM configured message with a button to configure.](https://docs-resources.prod.twilio.com/36cf9d9943434ad07c5da51c26a196b601ad7aa983010adfa3acb0d0dbb62e81.png)

### NoTasksCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/NoTasksCanvas.html)

*Direction: Vertical*

![NoTasksCanvas\_v3.](https://docs-resources.prod.twilio.com/0a8bf6ad73d24c055df36772fa8481b23e3a03fec26e26627990ebdf17c1cfae.png)

### TaskListContainer

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/TaskListContainer.html)

*Direction: Vertical*

![TaskListContainer-v2.](https://docs-resources.prod.twilio.com/66af3f3795c4a930cd141fa942bfa862da609e0ac12bccd59ab40cc312c6ca8b.png)

### TaskList

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/TaskList.html)

*Direction: Vertical*

For details on how to configure filters for the task list, see the UI configuration page.

![TaskList.](https://docs-resources.prod.twilio.com/b813840df62477ba30bd1210bbf1cdf2eff618f8b0632bf4b05dcc62ab7e4c62.png)

### TaskListItem

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/TaskListItem.html)

*Direction: Vertical*

*Add / Replace / Remove and properties of the TaskListItem are described in the Task Channel Definition API.*

![TaskListItem.](https://docs-resources.prod.twilio.com/d1c933f6eb13914d5cca237e8a5d29fee1f147d6c89aca41a10f5916118a99f4.png)

### TaskListItemButtons

*Direction: Horizontal*

Add, replace, or remove and properties of the TaskListItem are described in the Task Channel Definition API.

![Green check mark and red cross icons for task status.](https://docs-resources.prod.twilio.com/419c6e093484f0d57df36f6e11f5cbb80dd98c36c7376bd24868be78d2f952f3.png)

**Examples**

*Adding a button to Chat type task*

```javascript
Flex.DefaultTaskChannels.Chat.addedComponents = [{
  target: "TaskListButtons",
  component: <Flex.IconButton key="eye_button" icon="Eye" />
}];
```

*Adding a button to Chat type task when it is in* `accepted` *state*

```javascript
Flex.DefaultTaskChannels.Chat.addedComponents = [{
  target: "TaskListButtons",
  component: <Flex.IconButton key="eye_button" icon="Eye" />,
  options: { if: props.task.status === "accepted" }
}];

```

*Removing a* `reject` *button from Chat type task*

```javascript
Flex.DefaultTaskChannels.Chat.removedComponents = [{
  target: "TaskListButtons",
  key: "reject"
}];
```

### TaskCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Supervisor%25E2%2580%25A4TaskInfoPanel.html)

*Direction: Vertical*

![Taskcanvas-v2.width-500.](https://docs-resources.prod.twilio.com/0392116b4529642a6d41807a218b26113ef19a2149163772074e02ee5058f542.png)

### TaskCanvasHeader

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/TaskCanvasHeader.html)

*Direction: Horizontal*

![Flex.TaskCanvasHeader.](https://docs-resources.prod.twilio.com/70b346c44f2bb695816996f570361b6f1940193930e6fa7f308a9065fb5fa65b.png)

### TaskCanvasTabs

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/TaskCanvasTabs.html)

*Direction: Horizontal*

![Icons for info, chat, call, and video with chat selected.](https://docs-resources.prod.twilio.com/4201af206b9979929cd4e83470570507af7386dce0a60881cce4c1eef5b1331f.png)

**Example**

*Add tabs and content*

```xml
import { Tab } from "@twilio/flex-ui"

init(flex, manager) {
  const Img = <img src="http://someimage.jpg" />;

  flex.TaskCanvasTabs.Content.add(
    <Tab icon={Img} iconActive={Img} key="my-new-tab">
      <MyNewTabComponent/>
    </Tab>
  );
}
```

### TaskInfoPanel

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/TaskInfoPanel.html)

*Direction: Vertical*

![Flex.TaskInfoPanel.](https://docs-resources.prod.twilio.com/dc51fcf797c419f7f5f5de573796b5d5a5006d80686299860145aa446ea5480d.png)

### IncomingTaskCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/IncomingTaskCanvas.html)

*Direction: Vertical*

![Flex.IncomingTaskCanvas.](https://docs-resources.prod.twilio.com/37e55dfb99606371d41a98644c1eee801590d733c2dc99c5d559acad4c6211ef.png)

### IncomingTaskCanvasActions

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/IncomingTaskCanvasActions.html)

*Direction: Horizontal*

![IncomingTaskCanvasActions.](https://docs-resources.prod.twilio.com/2d3c52e9a7c84e47b9bd5b6c163b51d6155da16e66076a2d22ce43fbe627fff8.png)

### CallCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/CallCanvas.html)

*Direction: Vertical*

![CallCanvas-v2.](https://docs-resources.prod.twilio.com/5095b5ba3197593c862eddab7bd15213863d3ca629987765a328fc6b4035815a.png)

### CallCanvasActions

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/CallCanvasActions.html)

*Direction: Horizontal*

![CallCanvasActions.](https://docs-resources.prod.twilio.com/e84c7ce83df23a089dc80a93b60dbfa4b7314b0e9af30c1778e4140c733a263c.png)

### MessagingCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/MessagingCanvas.html)

*Direction: Vertical*

![MessagingCanvas-v2.width-500.](https://docs-resources.prod.twilio.com/6dfb87872bf97332d076b6618ecb7b3653eb796aad9ba370d082cd93ee08b9fb.png)

### MessageList

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/MessageList.html)

*Direction: Horizontal*

![Chat messages between Damien Smith and Robert Ryan with timestamps.](https://docs-resources.prod.twilio.com/f29485864f741f501e967404103463dba23ce76278acb17639ecadd65037b0df.png)

### MessageList.WelcomeMessage

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/WelcomeMessage.html)

*Direction: Vertical*

![MessageList.WelcomeMessage-v2.](https://docs-resources.prod.twilio.com/995f9c15a8b8ce8b2f5aed17d2a888d2a3cd72c4d4cdf20601bea62650ade501.png)

### MessageListItem

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/MessageListItem.html)

*Direction: Vertical*

![Message from Damien Smith at 18:42: Incididunt ut labore et dolore magna aliqua.](https://docs-resources.prod.twilio.com/cf3cf18f1047a470146ebda0318fe1597d569a01363893102773e59f1eaf5c1e.png)

### MessageBubble

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/MessageBubble.html)

*Direction: Vertical*

![Flex.MessageBubble.](https://docs-resources.prod.twilio.com/6b0bbdd8edad08baeb1d10b933371773e85c96a9098cdc4649aafdaf7d35e544.png)

### MessageInput

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/MessageInput.html)

*Direction: Vertical*

![Flex.MessageInput.](https://docs-resources.prod.twilio.com/a94df921f12546bd4a2e3577e7f07c13dd024b501f9d75422c2755552a7205ff.png)

### WorkerDirectory

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/WorkerDirectory.html)

*Direction: Horizontal*

![WorkerDirectory.](https://docs-resources.prod.twilio.com/3fa9ff089e953067f3d1b91eaf9be655d9712096874218f6db46a1ea40cef784.png)

### WorkerDirectoryTabs

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/WorkerDirectoryTabs.html)

*Direction: Vertical*

![WorkerDirectoryTabs.](https://docs-resources.prod.twilio.com/2711d424dd44ea1b79519fd5c5b95c7ab95c2e1897e61d67c3abb75669d48def.png)

The Worker directory contains 2 tabs by default:

* **Agents** - key `workers`
* **Queues**- key `queues`

*Example: Add new custom tab*

```javascript
Flex.WorkerDirectory.Tabs.Content.add(
  <Flex.Tab key="my-tab" label="My Tab">
        <div> "Hello World"
        </div>
  </Flex.Tab>
);
```

**Worker Directory Tabs Hidden Filters**

`WorkerDirectoryTabs` accepts 2 default props:

* `hiddenWorkerFilter`
* `hiddenQueueFilter`

Flex applies filters to the list in combination with the filter the user applies by typing in a search string. You can programmatically apply a filter that's hidden from the user, which means the user can't disable it. You could use this feature to pre-filter the list of available transferees an agent can search and choose from to show their team members or available agents only. The following example uses [live query](/docs/sync/live-query) to do the following:

* Flexilter the agents list to only show agents with a specific `team_name` attribute ([you can set user attributes via your SSO provider](/docs/flex/admin-guide/setup/sso-configuration))
* Filter the agents list to only show agents that are in the `Available` activity
* Filter the queues list to only show queues with a specific `queue_name` attribute

```javascript
// Filter Agents by Worker Attributes or activity_name
Flex.WorkerDirectoryTabs.defaultProps.hiddenWorkerFilter = 'data.attributes.team_name CONTAINS "sales"'
Flex.WorkerDirectoryTabs.defaultProps.hiddenWorkerFilter = 'data.activity_name CONTAINS "Available"'

// Filter Queues by queue_name or queue_sid
Flex.WorkerDirectoryTabs.defaultProps.hiddenQueueFilter = 'data.queue_name CONTAINS "sales"'
```

The hidden filter feature is only available in [@twilio/flex-ui@1.26.0](/docs/flex/release-notes/ui-release-notes#v-1260) and later. Starting in 1.33.3, the `hiddenWorkerFilter` has been changed to `queueFilter` which takes a predicate function.

```javascript
Flex.WorkerDirectoryTabs.defaultProps.queueFilter = (queue) => queue.queueName.includes("HR")
```

### ParticipantsCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/ParticipantsCanvas.html)

*Direction: Horizontal*

ParticipantsCanvas is a responsive component and will switch between regular mode and list mode depending on the size of the container its placed in. Regular mode and list mode contain different children - ParticipantCanvas and ParticipantCanvasListItem respectively. When customizing ParticipantsCanvas children, like adding an additional button, remember to do customization to both children components

**Regular mode**

![ParticipantsCanvas.](https://docs-resources.prod.twilio.com/e1cea71a3f5bf8e4a6bfe91ba8b94003c816358ee0c0ccdefbf247de5ad674ee.png)

**List mode**

![Participant list with options to mute, remove, or manage call settings.](https://docs-resources.prod.twilio.com/ba299937d87b656969dd5fd5e81a2a43fd6a0652bb124c9c0eb0a08e787d52ad.png)

### ParticipantCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/ParticipantCanvas.html)

*Direction: Horizontal*

![ParticipantCanvas.](https://docs-resources.prod.twilio.com/00dc580e8ad653329e1965d9c8d8429efea47a493f4c90b6304106ad939ada66.png)

### ParticipantCanvasListItem

*Direction: Vertical*

![Participant Felix Marshall is listening with mute and remove options.](https://docs-resources.prod.twilio.com/ed07b2d2559024d980c69532fb9938f683c25a9b91b14237fc43c528be0583f7.png)

## Teams View components

### WorkersDataTable

`WorkersDataTable` is a programmable component. It is a Material UI table styled to the Flex theme with data from the Insights SDK.

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/WorkersDataTable.html)

> \[!WARNING]
>
> As of flex-ui **v1.12.0** new exports were added to refer to workers instead of agents:
>
> * WorkersDataTable
> * WorkerListFilterSelect
> * WorkersDataTable
> * WorkersDataTableProps
> * WorkerListFilter
>
> For example, `AgentsDataTable` is now referred to as `WorkersDataTable`. However, previous exports (like `AgentsDataTable`) are kept for backwards compatibility

By default, WorkersDataTable contains the following rows:

* *Agent* - [UserCard component](#usercard)

  * `SupervisorUserCardFirstLine` - default value retrieves the full name of the worker if it exists, and the identity if not. Variables provided to the template: worker
  * `SupervisorUserCardSecondLine` - default value shows the availability of the worker. Variables provided to the template: worker
  * The first and second row are template strings with names.
* *Calls* -[TaskCardList component](#taskcardlist), showing tasks of the voice channel in assigned and wrapping state
* *Other tasks* - [TaskCardList component](#taskcardlist), showing tasks of all channels (apart from voice) in assigned and wrapping state

#### Add columns to WorkersDataTable

You can add columns to the table programmatically. Columns can't be removed. You can add columns with different types of content:

* `TaskCardList` component
* Any custom component
* String

*TaskCardList*

```javascript
import { TaskCardList, ColumnDefinition } from "@twilio/flex-ui";

Flex.WorkersDataTable.Content.add(
       <ColumnDefinition key="calls" header={"My Custom Header"} content={(items, context) => <TaskCardList tasks={items.tasks} />} />);
```

`TaskCardList` also has an optional filter property. If you don't set the filter property, Flex renders all tasks in the list:

```javascript
export interface TaskCardListProps {
   compareFunction?: (a: TaskData, b: TaskData) => number;
   filter?: (task: TaskData) => boolean;
   tasks: TaskData[];
}
```

*Any custom component*

```javascript
import { ColumnDefinition } from "@twilio/flex-ui";

Flex.WorkersDataTable.Content.add(<ColumnDefinition key="hello" header={"Helloxxx"} content={<div>hello</div>}/>);
```

*String*

You can use Worker attributes as follows:

```javascript
import { ColumnDefinition } from "@twilio/flex-ui";

Flex.WorkersDataTable.Content.add(<ColumnDefinition key="team" header={"Team"} content={item => item.worker.attributes.team_name}/>);
```

#### Customizing filters

By default, WorkersDataTable has 2 filters:

* **All agents**
* **Active agents** - worker with current activity state set of type `available`

Filters for the Workers Table can be programmatically changed, by defining `filters` property of `WorkersDataTable` component

**Example of creating a filter to show workers with activity "Break"**

*With configuration object*

```javascript
   componentProps: {
        WorkersDataTable: {
            filters: [
                {
                    query: 'data.activity_name == "Break"',
                    text: "Workers on break"
                }
            ]
        }
    },...
```

*With defaultProps API*

```javascript
Flex.WorkersDataTable.defaultProps.filters = [
                {
                    query: 'data.activity_name == "Break"',
                    text: "Workers on break"
                },...
            ]
```

#### Query syntax

**Query data schema**

`data` object in the query refers to TaskRouter `worker` resource. The following attributes on a worker can be used for filters query:

| **Object name**              | **Description**                                        | **Format**       |
| ---------------------------- | ------------------------------------------------------ | ---------------- |
| data.activity\_name          | worker's current activity friendly name                | String           |
| data.attributes              | worker's attributes                                    | Key value pair   |
| data.date\_activity\_changed | date of the last activity change of the current worker | Datetime ISO8601 |
| data.friendly\_name          | worker's friendly name                                 | String           |
| data.worker\_activity\_sid   | worker's current activity sid                          | String           |
| data.worker\_sid             | worker's sid                                           | String           |
| data.workspace\_sid          | worker's workspace sid                                 | String           |

**Query operators**

`WorkersDataTable` is powered by [Twilio Sync](/docs/sync) and Flex uses Twilio Sync Live Query for filtering of the workers. See [Live Query docs](/docs/sync/live-query) for supported query operators.

### TaskCardList

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Supervisor%25E2%2580%25A4TaskCardList.html)

*Direction: Vertical*

![TaskCardList.](https://docs-resources.prod.twilio.com/e6bc339e02f8b326597f0750ec4c6d4417e4942276ec46cb8ebc4b752424bb74.png)

### TaskCard

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Supervisor%25E2%2580%25A4TaskCard.html)

*Direction: Horizontal*

![TaskCard.width-800.](https://docs-resources.prod.twilio.com/ae563fc5b092b7a7fd0dd7d4a47c6d23423bf867ca921cc2d899282f8f13f2aa.png)

### UserCard

*Direction: Horizontal*

![AgentsDataTable.](https://docs-resources.prod.twilio.com/da47c67e007c884e68a9f89c77b16b403314b8d41d787dde40999f44d6b986a1.png)

### Supervisor.TaskCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Supervisor%25E2%2580%25A4TaskCanvas.html)

*Direction: Vertical*

![Supervisor.TaskCanvas.](https://docs-resources.prod.twilio.com/01cd11b9c3a1ccff34d07819d18088943d431763c2125ff25f4cd39245830163.png)

### Supervisor.TaskCanvasHeader

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Supervisor%25E2%2580%25A4TaskCanvasHeader.html)

*Direction: Vertical*

![Supervisor.TaskCanvasHeader.](https://docs-resources.prod.twilio.com/7785519fe36894ff5ca5631daf2a078308b30c138b102e44c02a3c94913c24de.png)

### Supervisor.TaskCanvasTabs

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Supervisor%25E2%2580%25A4TaskCanvasTabs.html)

*Direction: Horizontal*

![Tabs labeled Call and Info with Info tab highlighted.](https://docs-resources.prod.twilio.com/babedb1225faa47b2594a92c41143fa265a61272856d774508380179b4135bf5.png)

Worker directory contains 2 tabs by default:

* **Overview** - key `overview`. Overview Tab has dynamic content based on the type of task

  * For standard conference based voice tasks - [ParticipantsCanvas](#participantscanvas)
  * For messaging tasks - [MessagingCanvas](#messagingcanvas)
* **Info** - key `info`. Info tab Contains [SupervisorTaskInfoPanel](#supervisortaskinfopanel)

**Examples**

*Adding tabs and content*

```javascript
Flex.Supervisor.TaskCanvasTabs.Content.add(
  <Flex.Tab key="my-tab" label="My Tab">
        <div> "Hello World"
        </div>
  </Flex.Tab>
);
```

### SupervisorTaskInfoPanel

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/Supervisor%25E2%2580%25A4TaskInfoPanel.html)

*Direction: Horizontal*

![Flex.TaskInfoPanel.](https://docs-resources.prod.twilio.com/dc51fcf797c419f7f5f5de573796b5d5a5006d80686299860145aa446ea5480d.png)

### WorkerCanvas

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/WorkerCanvas.html)

*Direction: Vertical*

![WorkerCanvas\_2.](https://docs-resources.prod.twilio.com/114cdda7f30bf77eb7a9189ea9eae61bb1f97c18ca76dde3c25c42a7754f5644.png)

### WorkerCanvasHeader

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/WorkerCanvasHeader.html)

*Direction: Vertical*

![WorkerCanvasHeader.](https://docs-resources.prod.twilio.com/1a967ba0fdafacad4b36f780ada8a0dd2d3fb985d2b2dc4abe4c7d5cf9d7ea13.png)

### WorkerProfile

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/WorkerProfile.html)

*Direction: Vertical*

![WorkerProfile\_2.](https://docs-resources.prod.twilio.com/8d4bbf1634a0dbd18edb3004bd834f820832626b24a21e184ee9014528580192.png)

### WorkerSkills

[View Full Component Reference >](https://assets.flex.twilio.com/docs/releases/flex-ui/1.33.0/WorkerSkills.html)

*Direction: Vertical*

![WorkerSkills.](https://docs-resources.prod.twilio.com/9d2698a6fbfb5f9620ca3b3442150d2337ba44173e66fbec35128da2edba0f35.png)
