Packages
moon
2.73.8
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/components/field_label.ex
# https://github.com/coingaming/sportsbet-design/blob/develop/packages/components/src/private/label/label.tsx
defmodule Moon.Components.FieldLabel.LabelFlex do
@moduledoc false
use Moon.StatelessComponent
prop(field, :atom)
prop(for, :string)
prop(flex, :boolean)
prop(input_grow, :integer)
prop(class, :css_class)
slot(default)
def render(assigns) do
~F"""
<Surface.Components.Form.Label field={@field} class={@class} opts={for: @for}>
<#slot />
</Surface.Components.Form.Label>
"""
end
end
defmodule Moon.Components.FieldLabel.LabelContent do
@moduledoc false
use Moon.StatelessComponent
prop(disabled, :boolean)
prop(flex, :boolean)
slot(default)
def render(assigns) do
~F"""
<span>
<#slot />
</span>
"""
end
end
defmodule Moon.Components.FieldLabel do
@moduledoc false
use Moon.StatelessComponent
alias Moon.Components.FieldLabel.LabelContent
alias Moon.Components.FieldLabel.LabelFlex
prop(field, :atom)
prop(for, :string)
prop(text, :string)
prop(disabled, :boolean)
prop(flex, :boolean)
prop(inline, :boolean)
prop(input_grow, :integer, default: 1)
prop(class, :css_class)
prop(style, :string)
slot(default)
def render(assigns) do
~F"""
<label class={@class} :if={@inline}>{@text}</label>
<LabelFlex
field={@field}
for={@for}
class={@class}
flex={@flex}
input_grow={@input_grow}
:if={!@inline}
>
<LabelContent disabled={@disabled} flex={@flex}>
{@text}
</LabelContent>
<#slot />
</LabelFlex>
"""
end
end