LivePanels.Item.View (livepanels v0.1.0)

Copy Markdown View Source

Application-facing read model for a rendered canvas item.

LivePanels.Item is the canonical state record. Item.View is the derived render helper available from LivePanels.Item.RenderContext.view; it collects the capability decisions an application commonly needs to draw a frame or branch on content behavior without duplicating the canonical item record.

This module does not introduce a second item model. LivePanels.Item exposes the app-facing identity, geometry, props, and capabilities directly; t() is the companion for render-only decisions.

Summary

Types

t()

Render decisions derived from LivePanels.Item.t().

Functions

Builds the render-time item view projection.

Types

t()

@type t() :: %LivePanels.Item.View{
  autosize?: boolean(),
  autosize_debounce_ms: non_neg_integer(),
  autosize_max_frame_height: pos_integer(),
  autosize_max_frame_width: pos_integer(),
  autosize_min_frame_height: pos_integer(),
  autosize_min_frame_width: pos_integer(),
  clusterable?: boolean(),
  connectable?: boolean(),
  content: map() | nil,
  content?: boolean(),
  drag_drop: LivePanels.Canvas.DragDrop.capability(),
  frame_overflow: :hidden | :visible,
  frame_size: :fixed | :content,
  id: String.t(),
  max_frame_height: pos_integer(),
  max_frame_width: pos_integer(),
  min_frame_height: pos_integer(),
  min_frame_width: pos_integer(),
  placement_locked?: boolean(),
  presentable?: boolean(),
  presentation: map(),
  removable?: boolean(),
  resizable?: boolean(),
  tileable?: boolean()
}

Render decisions derived from LivePanels.Item.t().

Commonly used fields include:

  • identity: :id
  • content projection: :content?, :content
  • frame decisions: :frame_overflow, :frame_size, frame bounds, and placement lock
  • application presentation hints: :presentation
  • drag/drop affordance: :drag_drop
  • capability decisions: :tileable?, :resizable?, :connectable?, :presentable?, :clusterable?, and :removable?

Functions

view(item)

@spec view(LivePanels.Item.t()) :: t()

Builds the render-time item view projection.