Guppy.ContextMenu (guppy v0.1.0)

Copy Markdown View Source

Data-first helpers for rendering element-local context menus.

This module intentionally stays in Elixir: native code emits :context_menu events for pointer and keyboard invocation, while the owning process decides whether and where to render a menu. Menu items are plain data and render to ordinary Guppy IR button/div nodes, so row/tree/canvas/editor owners keep UI state and action routing.

Summary

Functions

Renders a context menu as Guppy IR.

Validates context menu item data.

Validates context menu item data or raises ArgumentError.

Types

item()

@type item() :: %Guppy.ContextMenu.Item{
  callback: String.t() | nil,
  disabled: boolean(),
  id: String.t() | nil,
  label: String.t() | nil,
  separator: boolean()
}

Functions

render(items, opts \\ [])

Renders a context menu as Guppy IR.

validate(items)

Validates context menu item data.

validate!(items)

Validates context menu item data or raises ArgumentError.