exlab_wizard.ui.components.breadcrumb#

Breadcrumb bar for the rebuilt main window.

GUI/Orchestrator Redesign §4.1 / §4.7 / decision 7A. Renders a path of clickable segments derived from selected_node.

Functions

render_breadcrumb(*, selected_node[, ...])

Render the breadcrumb row.

segments_from_node_id(selected_node)

Decompose a tree-node id into clickable segments.

Classes

BreadcrumbSegment(label, node_id)

One clickable segment in the breadcrumb bar.

class exlab_wizard.ui.components.breadcrumb.BreadcrumbSegment(label, node_id)[source]#

Bases: object

One clickable segment in the breadcrumb bar.

Parameters:
label: str#
node_id: str#

Tree node id the segment selects when clicked.

exlab_wizard.ui.components.breadcrumb.render_breadcrumb(*, selected_node, on_navigate=None)[source]#

Render the breadcrumb row. Pure render function.

Each segment is a clickable label; the callback receives the segment’s node_id so the caller can re-emit selection through the standard on_select_node handler (Redesign §9.1).

Parameters:
Return type:

Any

exlab_wizard.ui.components.breadcrumb.segments_from_node_id(selected_node)[source]#

Decompose a tree-node id into clickable segments.

Tree ids are slash-joined strings (equip/proj/Runs/Run_...). The leading device label is conceptually the root; we don’t render it explicitly here. Returns a left-to-right list of segments where each segment’s node_id is the ancestor id needed to navigate to it.

Parameters:

selected_node (str | None)

Return type:

list[BreadcrumbSegment]