# Streamlit Flowsheet Component
A Streamlit component for rendering interactive process flowsheet diagrams with node selection capabilities.
## Features
- Interactive process flowsheet visualization with ReactFlow
- Node selection with detailed properties panel
- Collapsible navigation panel for easy node browsing
- Theme-aware (automatically adapts to Streamlit light/dark themes)
- Configurable display options (navigation panel, properties panel, node borders)
- Returns selected node data to Streamlit
## Installation
```bash
pip install streamlit-flowsheet
```
## Usage
```python
import streamlit as st
from streamlit_flowsheet import render_flowsheet
import json
# Load model revision data (full CDF response)
with open("model_revision_data.json", "r") as f:
full_data = json.load(f)
# Extract the flowsheet
flowsheet = full_data["items"][0]["flowsheet"]
# Render the flowsheet
selected_node = render_flowsheet(
data=flowsheet,
show_navigation_panel=True,
show_properties=True,
show_border=True,
height=800
)
# Handle selection
if selected_node:
st.write(f"Selected: {selected_node[0]['name']}")
```
## Parameters
- `data` (dict): Flowsheet object containing `simulatorObjectNodes` and `simulatorObjectEdges`.
- `show_navigation_panel` (bool): Show/hide the left navigation panel (default: True)
- `show_properties` (bool): Show/hide the properties panel on node selection (default: True)
- `show_border` (bool): Show/hide node borders (default: True)
- `height` (int): Component height in pixels (default: 800)
## Development
### Setup
```bash
cd streamlit-flowsheet
poetry install
cd streamlit_flowsheet/frontend
npm install
```
### Build Frontend
```bash
cd streamlit_flowsheet/frontend
npm run build
```
### Build Package
```bash
poetry build
```
## License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "streamlit-flowsheet",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "streamlit, flowsheet, diagram, visualization, component",
"author": null,
"author_email": "Everton Colling <evertoncolling@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/81/2c/8cbd224318b699e6ceffe48daacf7f309f7cebcb7ef1d78a2a4fdfbf83b0/streamlit_flowsheet-0.1.14.tar.gz",
"platform": null,
"description": "# Streamlit Flowsheet Component\n\nA Streamlit component for rendering interactive process flowsheet diagrams with node selection capabilities.\n\n## Features\n\n- Interactive process flowsheet visualization with ReactFlow\n- Node selection with detailed properties panel\n- Collapsible navigation panel for easy node browsing\n- Theme-aware (automatically adapts to Streamlit light/dark themes)\n- Configurable display options (navigation panel, properties panel, node borders)\n- Returns selected node data to Streamlit\n\n## Installation\n\n```bash\npip install streamlit-flowsheet\n```\n\n## Usage\n\n```python\nimport streamlit as st\nfrom streamlit_flowsheet import render_flowsheet\nimport json\n\n# Load model revision data (full CDF response)\nwith open(\"model_revision_data.json\", \"r\") as f:\n full_data = json.load(f)\n\n# Extract the flowsheet\nflowsheet = full_data[\"items\"][0][\"flowsheet\"]\n\n# Render the flowsheet\nselected_node = render_flowsheet(\n data=flowsheet,\n show_navigation_panel=True,\n show_properties=True,\n show_border=True,\n height=800\n)\n\n# Handle selection\nif selected_node:\n st.write(f\"Selected: {selected_node[0]['name']}\")\n```\n\n## Parameters\n\n- `data` (dict): Flowsheet object containing `simulatorObjectNodes` and `simulatorObjectEdges`.\n- `show_navigation_panel` (bool): Show/hide the left navigation panel (default: True)\n- `show_properties` (bool): Show/hide the properties panel on node selection (default: True)\n- `show_border` (bool): Show/hide node borders (default: True)\n- `height` (int): Component height in pixels (default: 800)\n\n## Development\n\n### Setup\n\n```bash\ncd streamlit-flowsheet\npoetry install\ncd streamlit_flowsheet/frontend\nnpm install\n```\n\n### Build Frontend\n\n```bash\ncd streamlit_flowsheet/frontend\nnpm run build\n```\n\n### Build Package\n\n```bash\npoetry build\n```\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Streamlit component for rendering process flowsheet diagrams with interactive selection",
"version": "0.1.14",
"project_urls": {
"Homepage": "https://github.com/evertoncolling/streamlit-flowsheet",
"Issues": "https://github.com/evertoncolling/streamlit-flowsheet/issues",
"Repository": "https://github.com/evertoncolling/streamlit-flowsheet"
},
"split_keywords": [
"streamlit",
" flowsheet",
" diagram",
" visualization",
" component"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "564e7c8ea4db892da4be4de3761028cd6fbcd83eec15056728d5e1eca2fec7c3",
"md5": "0e5cfa6f16eeb21b5823fa472c113b94",
"sha256": "1594c333738da6d7040e84e5f116d364c920d1bfe546305c98333ebf3861f3df"
},
"downloads": -1,
"filename": "streamlit_flowsheet-0.1.14-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0e5cfa6f16eeb21b5823fa472c113b94",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 187301,
"upload_time": "2025-08-18T22:29:16",
"upload_time_iso_8601": "2025-08-18T22:29:16.860546Z",
"url": "https://files.pythonhosted.org/packages/56/4e/7c8ea4db892da4be4de3761028cd6fbcd83eec15056728d5e1eca2fec7c3/streamlit_flowsheet-0.1.14-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "812c8cbd224318b699e6ceffe48daacf7f309f7cebcb7ef1d78a2a4fdfbf83b0",
"md5": "3d12d787bf9ff70242d78c146775034d",
"sha256": "b90e47f9ef764383ad1a00016ce4dddf34265e15bde958cfdc9aff8e61b35acb"
},
"downloads": -1,
"filename": "streamlit_flowsheet-0.1.14.tar.gz",
"has_sig": false,
"md5_digest": "3d12d787bf9ff70242d78c146775034d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 182493,
"upload_time": "2025-08-18T22:29:18",
"upload_time_iso_8601": "2025-08-18T22:29:18.568944Z",
"url": "https://files.pythonhosted.org/packages/81/2c/8cbd224318b699e6ceffe48daacf7f309f7cebcb7ef1d78a2a4fdfbf83b0/streamlit_flowsheet-0.1.14.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-18 22:29:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "evertoncolling",
"github_project": "streamlit-flowsheet",
"github_not_found": true,
"lcname": "streamlit-flowsheet"
}