Examples¶
Every example lives in examples/ in the repository. This section walks through each one, explains what it demonstrates, and shows how it’s covered by the test suite.
At a glance¶
Drop an LLM chat into a Panelini dashboard with one flag.
Hook a LangChain BaseTool (a local key–value store) into the chat.
Host two independent chats in synced tabs with jslink.
Render a JSON-Schema driven form inside a Panelini card.
Drive a JSON editor from a Pydantic model — schema and initial value derived automatically.
Interactive network graph with vis-network + Vue.
The smallest nested tree, hosted in a Panelini card.
Switch to tree + table mode with per-node column values.
Hierarchical checkboxes with tri-state parent propagation.
Right-click a node to add, rename, or delete via a callback.
Load children on demand when a lazy node is expanded.
Build a folder structure step by step with action playbooks.
Project a graph of SubClassOf / HasPart edges into a treegrid.
The full demo — columns, DnD, context menu, rename, file drop.
Running the examples¶
# Clone the repo
git clone https://github.com/opensemanticworld/panelini.git
cd panelini
uv sync
# Run any example
python examples/panels/ai/chat_min.py
python examples/panels/jsoneditor/jsoneditor_panelini_min.py
python examples/panels/visnetwork/visnetwork_panelini_min.py
Each example ends with pn.serve(...) when run directly — just open the URL printed in the terminal.
Tested end-to-end¶
Every example under examples/panels/ is exercised by a Playwright test that imports the real module and asserts on rendered DOM. If an example breaks, the corresponding test fails — see tests/panels/*/examples/.
Run them locally:
make test-ui # UI tests only
make test-full # unit + UI
With background images disabled globally in tests/conftest.py, the full UI suite completes in ~43 s.