Packages
moon
2.87.7
2.90.5
retired
2.90.4
2.90.3
2.90.2
2.90.1
2.90.0
2.89.4
2.89.1
2.89.0
2.88.0
2.87.11
2.87.10
2.87.9
2.87.8
2.87.7
2.87.6
2.87.5
2.87.4
2.87.3
2.87.2
2.87.1
2.87.0
2.86.1
2.86.0
2.85.1
2.85.0
2.84.0
2.83.0
2.82.0
2.81.4
2.81.3
2.81.2
2.81.1
2.81.0
2.80.2
2.80.1
2.80.0
2.79.13
2.79.12
2.79.11
2.79.10
2.79.9
2.79.8
2.79.7
2.79.6
2.79.5
2.79.4
2.79.3
2.79.2
2.79.1
2.79.0
2.78.4
2.78.3
2.78.2
2.78.1
2.78.0
2.77.0
2.76.5
2.76.4
2.76.3
2.76.2
2.76.1
2.76.0
2.75.0
2.74.1
2.74.0
2.73.8
2.73.7
2.73.6
2.73.5
2.73.4
2.73.3
2.73.2
2.73.1
2.73.0
2.72.5
2.72.4
2.72.3
2.72.2
2.72.1
2.72.0
2.71.1
2.71.0
2.70.0
2.69.2
2.69.1
2.69.0
2.68.11
2.68.10
Components-based design system written in elixir
Current section
Files
Jump to
Current section
Files
lib/moon/parts/wizzard/panels.ex
defmodule Moon.Parts.Wizard.Panels do
@moduledoc "Almost copy of Moon.Design.Tabs.Panels except few classes"
use Moon.StatelessComponent, slot: "content"
import Moon.Helpers.MakeList
@doc "Id attribute for DOM element"
prop(id, :string)
@doc "Additional Tailwind classes for container"
prop(class, :css_class)
@doc "HTML data-testid attribute for container"
prop(testid, :string)
@doc "Will be got from Tabs in most cases"
prop(selected, :integer, from_context: :selected)
@doc "Panels slot"
slot(panels, required: true)
@doc "Additional buttons etc."
slot(default)
def render(assigns) do
~F"""
<div
role="tabpanel"
tabindex={@selected}
class={merge(["px-4 md:px-8 pt-6 md:pt-10 pb-6 pb-28 w-3/4 md:w-2/3 bg-goku rounded-moon-s-lg", @class])}
{=@id}
data-testid={@testid}
>
<#slot {Enum.at(make_list(@panels), @selected)} />
</div>
"""
end
end