Skip to content

feat: add built-in dashboard widget components - #43

Merged
philippjfr merged 6 commits into
mainfrom
feat/default-widget-components
Sep 28, 2026
Merged

philippjfr merged 6 commits into
mainfrom
feat/default-widget-components

Conversation

@philippjfr

@philippjfr philippjfr commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Description

I added Select, MultiChoice, and Slider to the editor's Widgets/ palette. Their labels, fallback options, slider bounds, and step are configurable in the editor; options, start, and end input ports override the configured fallbacks, and the current selection is available through a selected output. Select and MultiChoice accept list-valued options through a single-connection port, which avoids the graph's normal multi-source List aggregation. include_builtin_components=False disables the palette entries, and project components with the same IDs take precedence.

In an editor, add a Widgets/Select, set default_options to ['A', 'B'], switch to dashboard view, and select B; editor.graph.get_state(node_id).selected updates. An upstream List output can instead be wired to the options input. No new dependency is introduced in this PR. Because selected is untyped, connecting it is checked against its current value (#44), so a Select holding strings cannot be wired into an Integer input until its options change.

Before: FlowDash offered only project-defined components; a list-typed input always aggregated multiple edges. After: The three built-in controls appear by default, and a single-connection list options input accepts one List output without nesting its values.

Verified after merging main: 344 Python tests passed, 2 skipped; 4 Chromium UI tests passed; pre-commit passed.

AI Disclosure

Tool & Model: Kilo Code + GPT-6 Sol
Usage: Implemented and reviewed the built-in controls and their tests with AI assistance; verified the reported results locally.

  • I have tested all AI-generated content in my PR.
  • I take responsibility for all AI-generated content in my PR.

Checklist

  • Tests added and are passing

Base automatically changed from feat/connection-validation-inspection to main September 28, 2026 13:37
…omponents

# Conflicts:
#	src/panel_flowdash/editor.py
#	tests/ui/test_ui.py
# Conflicts:
#	src/panel_flowdash/component_spec.py
#	tests/ui/test_ui.py
@philippjfr
philippjfr merged commit 1d102c8 into main Sep 28, 2026
14 checks passed
@philippjfr
philippjfr deleted the feat/default-widget-components branch September 28, 2026 19:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant