Packages
moon
2.87.10
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_border.ex
defmodule Moon.Components.FieldBorder do
@moduledoc false
use Moon.StatelessComponent
prop(testid, :string)
prop(class, :css_class)
prop(border_color_class, :string)
prop(states_class, :string)
prop(click, :event)
prop(has_error, :boolean)
slot(default)
def render(assigns) do
~F"""
<div
data-testid={@testid}
class={
get_default_class(),
@states_class || get_default_states_class(),
@class,
"#{get_error_class()}": @has_error
}
:on-click={@click}
>
<#slot />
</div>
"""
end
def get_default_border_color_class() do
"border-beerus"
end
def get_default_class() do
"
border-0
w-full max-w-full leading-normal text-bulma box-border
border border-solid rounded-moon-s-sm transition ease-in
placeholder-trunks placeholder-opacity no-scrollbar
"
end
def get_default_states_class() do
"
rounded-moon-i-sm hover:rounded-moon-i-sm
focus:ring-0 focus:shadow-input-focus focus:outline-none focus:rounded-moon-i-sm
invalid:rounded-moon-i-sm
shadow-input hover:shadow-input-hov
"
end
def get_error_class() do
"shadow-input-err hover:shadow-input-err focus:shadow-input-err"
end
end