Jido.Chat.Card.Component (Jido Chat v1.2.0)

Copy Markdown View Source

Canonical card component used by Jido.Chat.Card.

Validation enforces portable semantic limits, such as positive page sizes. Provider count and text limits belong to each adapter renderer.

Summary

Functions

Builds a component from serialized data.

Creates a canonical card component.

Normalizes component input.

Returns the schema for a card component.

Serializes the component into a plain map with a type marker.

Types

input()

@type input() :: t() | map() | String.t()

t()

@type t() :: %Jido.Chat.Card.Component{
  alt_text: nil | nil | binary(),
  caption: nil | nil | binary(),
  categories: [any()],
  columns: [any()],
  data: [any()],
  disabled: boolean(),
  fallback_text: nil | nil | binary(),
  id: nil | nil | binary(),
  image_url: nil | nil | binary(),
  items: [any()],
  kind:
    :text
    | :section
    | :fields
    | :field
    | :button
    | :link_button
    | :link
    | :actions
    | :select
    | :select_option
    | :radio_select
    | :external_select
    | :table
    | :pie_chart
    | :bar_chart
    | :area_chart
    | :line_chart
    | :option_group
    | :image
    | :divider,
  label: nil | nil | binary(),
  markdown: nil | nil | any(),
  metadata: map(),
  min_query_length: nil | nil | integer(),
  option_groups: [any()],
  options: [any()],
  options_source: nil | nil | :static | :external | :dynamic,
  page_size: nil | nil | integer(),
  rows: [any()],
  series: [any()],
  style: nil | nil | binary(),
  text: nil | nil | binary(),
  timeout_ms: nil | nil | integer(),
  title: nil | nil | binary(),
  url: nil | nil | binary(),
  value: nil | nil | binary()
}

Functions

from_map(map)

@spec from_map(map()) :: t()

Builds a component from serialized data.

new(component)

@spec new(t() | map()) :: t()

Creates a canonical card component.

normalize(component)

@spec normalize(input()) :: t()

Normalizes component input.

schema()

Returns the schema for a card component.

to_map(component)

@spec to_map(t()) :: map()

Serializes the component into a plain map with a type marker.