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
-
Clone the repository:
git clone https://github.com/pip-install-python/dash-dock.git cd dash-dock
-
Create a Python virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt npm install
-
Build the component:
npm run build
-
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)
| File | Size | Uploaded | |
|---|---|---|---|
| dash_dock-0.0.1.tar.gz | 315.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|