Skip to main content

Dash Dock

A flexible docking window system for Dash applications.

Docs

https://pip-install-python.com/pip/dash-dock

Features

  • Create dock-able, resizable, and floatable windows in your Dash apps
  • Drag and drop tabs between dock containers
  • Maximize, close, and pop-out tabs
  • Compatible with both Dash 2 and Dash 3
  • Free version with up to 3 tabs
  • Premium version with unlimited tabs (requires API key)

Installation

pip install dash-dock

Simple Example

import dash
from dash import html
import dash_dock

app = dash.Dash(__name__)

# Define the layout configuration
dock_config = {
    "global": {
        "tabEnableClose": False,
        "tabEnableFloat": True
    },
    "layout": {
        "type": "row",
        "children": [
            {
                "type": "tabset",
                "children": [
                    {
                        "type": "tab",
                        "name": "Tab 1",
                        "component": "text",
                        "id": "tab-1",
                    }
                ]
            },
            {
                "type": "tabset",
                "children": [
                    {
                        "type": "tab",
                        "name": "Tab 2",
                        "component": "text",
                        "id": "tab-2",
                    }
                ]
            }
        ]
    }
}

# Create tab content components
tab_components = [
    dash_dock.Tab(
        id="tab-1",
        children=[
            html.H3("Tab 1 Content"),
            html.P("This is the content for tab 1")
        ]
    ),
    dash_dock.Tab(
        id="tab-2",
        children=[
            html.H3("Tab 2 Content"),
            html.P("This is the content for tab 2")
        ]
    )
]

# Main app layout
app.layout = html.Div([
    html.H1("Dash Dock Example"),
    dash_dock.DashDock(
        id='dock-layout',
        model=dock_config,
        children=tab_components,
        useStateForModel=True
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

Premium Version

DashDock is available in two versions:

  • Free Version: Limited to 3 tabs
  • Premium Version: Unlimited tabs (requires API key)

To use the premium version, obtain an API key and include it in your DashDock component:

dash_dock.DashDock(
    id='dock-layout',
    model=dock_config,
    children=tab_components,
    apiKey="your-api-key-here"
)

Getting an API Key

Visit My Shop to obtain an API key for the premium version.

Component Properties

DashDock

Property Type Description
id string The ID used to identify this component
model object FlexLayout model configuration
children list React components to render in the tabs
headers object Custom headers for tabs
useStateForModel boolean Use internal state for the model (default: false)
font object Override font styles for tabs
supportsPopout boolean Whether pop-out windows are supported
popoutURL string URL for pop-out windows
realtimeResize boolean Resize tabs during dragging (default: false)
apiKey string API key for premium features
freeTabLimit number Maximum number of tabs in free version (default: 3)
debugMode boolean Enable debug mode (default: false)

Tab

Property Type Description
id string The ID used to identify this tab
children list React components to render in the tab

Development

Prerequisites

  • Node.js >= 14
  • npm >= 6
  • Python >= 3.7

Setup

  1. Clone the repository:

    git clone https://github.com/pip-install-python/dash-dock.git
    cd dash-dock
    
  2. Create a Python virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    npm install
    
  4. Build the component:

    npm run build
    
  5. Run the example:

    python usage.py
    

License

This was created under the Pip Install Python LLC and licensed under the MIT License.

Metadata

Release files for dash-dock 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dash-dock 0.0.1
File Size Uploaded
dash_dock-0.0.1.tar.gz 315.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dash-dock 0.0.1
File Interpreter ABI Platform
dash_dock-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 634.7 kB

Release files / dash_dock-0.0.1.tar.gz

Download URL dash_dock-0.0.1.tar.gz
Size 315.7 kB
Tags Source
SHA-256 checksum
How to use checksums
80b0f83009fa112fedf6df3f46836500786af96f9ba549faa542ef2608e278ee
BLAKE2b-256 checksum
How to use checksums
a31513be597d04a383017f8eb22e5c0ab23e8d2154791cffa69cdf07217f19fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.8

Release files / dash_dock-0.0.1-py3-none-any.whl

Download URL dash_dock-0.0.1-py3-none-any.whl
Size 319.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce5ac968d0613c3780c45debbd6c7f632d9c81a3f7de490b749f8840c947c6fe
BLAKE2b-256 checksum
How to use checksums
b3fe85397923150c20b904d5e5f24903974f598e5a0f81631e7a52e8dea9c193
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.8

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page