The Menu block renders a vertical list of clickable items — each with a label, optional caption, start/end icon or image, and a default or danger style. It works in two modes: Static (you compose the item list by hand) and Mapped (items are generated from a bound data source). Items can be plain Label items or Confirmation items that require a second click before acting. A new Menu arrives with three starter items at full width.
Tip: When to use Menu: Offer a flat list of actions or choices — row actions, quick links, a settings list. Build the list from data with Mapped mode. Add inline confirmation for destructive actions. For hierarchical navigation with nested items and links, use Navigation Menu instead.


Properties
Content
| Property | Type | Default | Description |
type | "STATIC" | "DYNAMIC" | STATIC | Static: hand-built item list. Mapped (Dynamic): generated from a bound data source. |
data | array (binding) | — | Mapped only. (optional) The bound data source whose rows become menu items. |
menuItems | item list | Three starter items | Static only. (optional) The hand-built item list. |
initialSelectedMenuItemId | string | — | The item that starts out selected when the menu loads. |
menuItem | item template | type label, variant default | Mapped only. (optional) Template applied to every row: Id, Label, Caption, Is Confirmation Type and Confirmation Label mapped from columns; Type and icons set once. |
Per-Item Settings (Static Mode)
Each item in the Static list opens a detail panel with its own settings:


Property | Type | Default | Description |
|---|---|---|---|
Type ( |
|
|
|
Id ( | string | — | The item's identifier. Appears in selected state. |
Label ( | string | — | The visible item text. |
Caption ( | string | — | Secondary text under the label. |
Confirmation Label ( | string | — | Text shown after the first click. Appears when Type is Confirmation. |
|
|
| Danger styles the item red for destructive actions. |
Start Decorator ( | icon or image | — | Icon or image before the label. |
End Decorator ( | icon or image | — | Icon or image after the label. |
Appearance
| Property | Type | Default | Description |
size | "sm" | "md" | md | Compact or regular item height. |
styles | style set | w-full | Width/min/max, height/min/max, flex layout, margin, padding, gap. |
Events
| Event | Trigger | Available when |
On Click | That specific item is clicked (on each item) | Static mode |
On Menu Item Click | Any generated item is clicked | Mapped mode |
Methods
| Method | Params | Effect |
selectMenuListItem | menuItemId | Marks the item as selected without firing any click event. Passing an unknown id clears the selection. |
Exposed State
| State key | Type | Description |
{{ id.selectedItem.id }} | string | Id of the last clicked or programmatically selected item. |
{{ id.selectedItem.label }} | string | Label of that item. |
Behavior & Gotchas
Warning: The whole menu disappears when it has no items to show. A Static menu whose items are all hidden and a Mapped menu with an empty data source render nothing at all — no placeholder.
Warning: Click events are wired differently in the two modes. Static: each item has its own On Click. Mapped: one block-level On Menu Item Click fires for all items. Switching modes means re-wiring events.
Note: A confirmation item stays confirming — there is no timeout. The item's text changes to its Confirmation Label and waits for a second click. There is no automatic revert.
Note: selectMenuListItem fires no event. It updates state but does not fire On Click or On Menu Item Click.
Navigation Menu
The Navigation Menu block (shown as "Navigation" in the block picker) renders a list of navigation items — a vertical sidebar or a horizontal top bar — and tracks which one is currently active. Each item is either a leaf (a single selectable tab drawn as a Custom entry or a Page link) or a Group that nests other items. Pair it with a Navigation Container and the container swaps its content whenever the menu's selection changes.
Tip: When to use Navigation Menu: Build the primary navigation for an interface — left sidebar or top bar — where one item stays highlighted as the active section. Group related destinations under a collapsible parent. Link items directly to static pages, or keep them Custom and drive your own content region.
This block is navigation inside a page. For the app-level navigation menu that links your app's pages, see Navigation Overview.
Properties
Content
Setting | Type | Default | Description |
|---|---|---|---|
Items | item list | — | The navigation items. Each can be a leaf (Custom or Page) or a Group nesting other items. |
Open by Default | item | First item | The item that starts out active when the menu loads. |
Interactions | event list | — | On Change. See Events below. |
Permissions | permission rule | — | Restrict who sees the block. |
Appearance
Setting | Type | Default | Description |
|---|---|---|---|
Direction | Vertical | Horizontal | — | Sidebar or top bar orientation. Hidden when the menu sits inside a Navigation Container. |
Expand Nav Items by Default | boolean | — | Vertical menus only. Shows Group items expanded when the menu loads. |
Visibility | conditions | — | Show or hide the block. |
Styles | style set | — | Width/min/max, height/min/max, flex layout, padding, gap, overflow, shadow, stroke, radius. |
Events
Event | Trigger |
|---|---|
| The active navigation item changes. |
Methods
Method | Params | Effect |
|---|---|---|
| Destination Navigation Tab | Makes the chosen item the active one. |
Per-Item Settings
Property | Type | Description |
|---|---|---|
|
| The item's visible text. Bindable, translatable. |
|
| Page links to a static interface page; Custom lets you wire your own content. |
Select Page | page | Page items only. Only pages with static paths are allowed. |
Page Inputs | inputs | Page items only. The values passed to the selected page. |
|
| Icon shown before the label. |
|
| Hides the item when false. |
|
| Hides the item from users who lack access. |
Exposed State
State key | Type | Description |
|---|---|---|
| string | The currently active item's id. |
| string | The currently active item's title. |
Behavior & Gotchas
Note: Pair with Navigation Container for content switching. The menu is the control; the container is the content area it drives. A new Navigation Container arrives already linked to its own Navigation Menu. See Navigation Container below.
Warning: Group items don't themselves have click actions. Groups are collapsible parent nodes — clicking them expands or collapses nested items rather than selecting the group itself.
Navigation Container
The Navigation Container block renders different content depending on the selected item in a Navigation Menu. When the menu's active item changes, the container swaps the visible page or block to match. It is the content region paired with the Navigation Menu control.
Tip: When to use Navigation Container: Build a tabbed or routed content area whose visible pane changes when the user selects a nav item. The container handles the swap; the Navigation Menu handles the selection tracking.
Properties
Property | Type | Default | Description |
|---|---|---|---|
Navigation Menu | block reference | The menu created with the block | The Navigation Menu block that drives this container's content. You can point it at a different Navigation Menu on the page. |
Content slots | managed list | — | One content slot for each Custom menu item, kept in sync with the menu. It isn't shown in the inspector: you fill each slot on the canvas. |
Interactions | event list | — | On Click. |
Permissions | permission rule | — | Restrict who sees the block. |
Set up a Navigation Container
Drag Navigation Container onto the page. It arrives with its own Navigation Menu as its header, already set in Navigation Menu.
Select the menu and add its items. A Custom item gets its own content slot in the container. A Page item loads an interface page in place.
On the canvas, select each Custom item in the menu and fill its content slot with blocks.
Preview the page and click each item. Only the selected item's content is loaded at a time.
Related Blocks
Block | Relationship |
|---|---|
A segmented control for simple view switching without nested groups. | |
Full content-switching pattern with visible tab headers. | |
Navigation Container | The content area driven by Navigation Menu selection. |
The app-level menu that links your app's pages, set up outside the page. |