Raxol.Effects.BorderBeam.CellApplier (Raxol v2.6.0)

View Source

Dispatches BorderBeam animation hints to the effect implementation selected by opts[:type] and applies the result to a flat cell list.

Effects share the contract in Raxol.Effects.BorderBeam.Effect and live under Raxol.Effects.BorderBeam.Effects.*. Built-in types:

:stroke   (default) -- comet sweeping the perimeter
:pulse              -- whole border breathing in unison
:flames             -- flickering chars climbing the bottom edge
:electric           -- random sparks at perimeter positions
:clouds             -- soft slow drift of low-contrast color

Animation progress is derived from monotonic time so frames stay smooth regardless of tick cadence. Activated by the rendering engine when a positioned element carries an animation hint of type: :border_beam. Last-write-wins on cells when multiple hints overlap.

Summary

Functions

Applies a list of {hint, bounds} to the cell list. No-op for empty list.

Types

bounds()

cell()

@type cell() ::
  {non_neg_integer(), non_neg_integer(), String.t(), any(), any(), list()}

hint()

@type hint() :: %{:type => :border_beam, optional(atom()) => any()}

Functions

apply_hints(cells, hints_with_bounds)

@spec apply_hints([cell()], [{hint(), bounds()}]) :: [cell()]

Applies a list of {hint, bounds} to the cell list. No-op for empty list.