Packages
corex
0.1.0-alpha.13
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
lib/components/accordion/list.ex
defmodule Corex.Accordion.Item do
@moduledoc """
List item structure for use with Accordion component.
Use it to create a list of items for [Accordion](Corex.Accordion.html)
## Fields
* `:trigger` - (required) Content to display in the accordion trigger/button
* `:content` - (required) Content to display in the accordion panel
* `:value` - (optional) Unique identifier for the item
* `:disabled` - (optional) Whether the item is disabled
* `:meta` - (optional) Additional metadata for the item
The fields are available in the item slot as `{item.meta.trigger}` and `{item.meta.content}` etc
## Example
This example assumes the import of `.icon` from `Core Components`
```heex
<.accordion
class="accordion"
items={[
%Corex.Accordion.Item{
value: "lorem",
trigger: "Lorem ipsum dolor sit amet",
content: "Consectetur adipiscing elit. Sed sodales ullamcorper tristique.",
meta: %{
indicator: "hero-chevron-right",
}
},
%Corex.Accordion.Item{
trigger: "Duis dictum gravida odio ac pharetra?",
content: "Nullam eget vestibulum ligula, at interdum tellus.",
meta: %{
indicator: "hero-chevron-right",
}
},
%Corex.Accordion.Item{
value: "donec",
trigger: "Donec condimentum ex mi",
content: "Congue molestie ipsum gravida a. Sed ac eros luctus.",
disabled: true,
meta: %{
indicator: "hero-chevron-right",
}
}
]}
>
<:item :let={item}>
<.accordion_trigger item={item}>
{item.meta.trigger}
<:indicator>
<.icon name={item.meta.indicator} />
</:indicator>
</.accordion_trigger>
<.accordion_content item={item}>
{item.meta.content}
</.accordion_content>
</:item>
</.accordion>
```
"""
@enforce_keys [:trigger, :content]
defstruct [
:value,
:trigger,
:content,
:meta,
disabled: false
]
@type t :: %__MODULE__{
value: String.t(),
trigger: String.t(),
content: String.t(),
meta: map(),
disabled: boolean()
}
end