---
myst:
  substitutions:
    filebrowser source code: |-
      ```{image} images/filebrowser_source.png
      ```
    filebrowser user interface: |-
      ```{image} images/filebrowser_example.png
      ```
---

% Copyright (c) Jupyter Development Team.

% Distributed under the terms of the Modified BSD License.

# Using JupyterLab components

JupyterLab is built with many re-usable components that are
independently [published on npm](https://www.npmjs.com/search?q=%40jupyterlab).
JupyterLab itself assembles these components together to provide a full,
IDE-like experience. However, developers are encouraged to use these to bring
to life their own visions of what a computational environment should look
like.

The JupyterLab repository has [many examples](https://github.com/jupyterlab/jupyterlab/tree/4.6.x/examples)
to get you started.

The `examples` directory contains:

- several stand-alone examples (`console`, `filebrowser`,
  `notebook`, `terminal`)
- a more complex example (`app`).

Installation instructions for the examples are found in the project's
README.

After installing the jupyter notebook server 4.2+, follow the steps for
installing the development version of JupyterLab. To build the examples,
enter from the `jupyterlab` repo root directory:

```
jlpm build:examples
```

To run a particular example, navigate to the example's subdirectory in
the `examples` directory and enter:

```
python main.py
```

## Dissecting the 'filebrowser' example

The filebrowser example provides a stand-alone implementation of a
filebrowser. Here's what the filebrowser's user interface looks like:

![filebrowser user interface](images/filebrowser_example.png)

Let's take a closer look at the source code in `examples/filebrowser`.

### Directory structure of 'filebrowser' example

The filebrowser in `examples/filebrowser` is comprised by a handful of
files and the `src` directory:

![filebrowser source code](images/filebrowser_source.png)

The filebrowser example has two key source files:

- `src/index.ts`: the TypeScript file that defines the functionality
- `main.py`: the Python file that enables the example to be run

Reviewing the source code of each file will help you see the role that
each file plays in the stand-alone filebrowser example.
