Raxol.UI.Components.Input.MultiLineInput (Raxol v0.3.0)

View Source

A multi-line input component for text editing, supporting line wrapping, scrolling, selection, and accessibility.

BREAKING: All styling is now theme-driven. The style field and @default_style are removed. Use the theme system for all appearance customization.

Harmonized with modern Raxol component standards (style/theme merging, lifecycle hooks, accessibility props).

Summary

Functions

Initializes the MultiLineInput state, harmonizing style/theme/extra props and splitting lines for editing.

Types

t()

@type t() :: %Raxol.UI.Components.Input.MultiLineInput{
  aria_label: String.t() | nil,
  cursor_pos: {integer(), integer()},
  focused: boolean(),
  height: integer(),
  history: any(),
  id: String.t() | nil,
  lines: [String.t()],
  on_change: (String.t() -> any()) | nil,
  placeholder: String.t(),
  scroll_offset: {integer(), integer()},
  selection_end: {integer(), integer()} | nil,
  selection_start: {integer(), integer()} | nil,
  shift_held: boolean(),
  theme: map(),
  tooltip: String.t() | nil,
  value: String.t(),
  width: integer(),
  wrap: :none | :char | :word
}

Functions

init(props)

Initializes the MultiLineInput state, harmonizing style/theme/extra props and splitting lines for editing.