Skip to main content

Dynamic dock windows for dash

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dash_dock-0.0.1.tar.gz (315.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dash_dock-0.0.1-py3-none-any.whl (319.0 kB view details)

Uploaded Python 3

File details

Details for the file dash_dock-0.0.1.tar.gz.

File metadata

  • Download URL: dash_dock-0.0.1.tar.gz
  • Upload date:
  • Size: 315.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for dash_dock-0.0.1.tar.gz
Algorithm Hash digest
SHA256 80b0f83009fa112fedf6df3f46836500786af96f9ba549faa542ef2608e278ee
MD5 4ca1e1825f91fdb5827d198c1995021e
BLAKE2b-256 a31513be597d04a383017f8eb22e5c0ab23e8d2154791cffa69cdf07217f19fa

See more details on using hashes here.

File details

Details for the file dash_dock-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: dash_dock-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 319.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for dash_dock-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ce5ac968d0613c3780c45debbd6c7f632d9c81a3f7de490b749f8840c947c6fe
MD5 463f8d0035f457b1b7f7bdc0b68e3d74
BLAKE2b-256 b3fe85397923150c20b904d5e5f24903974f598e5a0f81631e7a52e8dea9c193

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page