Raxol.UI.Components.Input.MultiLineInput (Raxol v0.5.0)
View SourceA 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
Handles events for the MultiLineInput component, such as keypresses, mouse events, and context changes.
Initializes the MultiLineInput state, harmonizing style/theme/extra props and splitting lines for editing.
Mounts the MultiLineInput component. Performs any setup needed after initialization.
Renders the MultiLineInput component using the current state and context.
Unmounts the MultiLineInput component, performing any necessary cleanup.
Types
@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, on_submit: (-> 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 }
State for the MultiLineInput component. See @type t for field details.
Functions
Handles events for the MultiLineInput component, such as keypresses, mouse events, and context changes.
Initializes the MultiLineInput state, harmonizing style/theme/extra props and splitting lines for editing.
Mounts the MultiLineInput component. Performs any setup needed after initialization.
Renders the MultiLineInput component using the current state and context.
Unmounts the MultiLineInput component, performing any necessary cleanup.