Current section
Files
Jump to
Current section
Files
src/gbr@ui@admin@input.erl
-module(gbr@ui@admin@input).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src\\gbr\\ui\\admin\\input.gleam").
-export([success/2, alert/2, error/2, disabled/2, loading/2, primary/2, at_right/2, at_left/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
"\n"
" Gleam UI admin input element\n"
"\n"
).
-file("src\\gbr\\ui\\admin\\input.gleam", 73).
-spec state_set(
gbr@ui@input:u_i_input(),
binary(),
binary(),
binary(),
fun((gbr@ui@svg@core:svg()) -> gbr@ui@svg@core:svg())
) -> gbr@ui@input:u_i_input_render(any()).
state_set(In, Text, Class, Class_note, Svg) ->
Svg@1 = begin
_pipe = gbr@ui@svg:new(16, 16),
_pipe@1 = Svg(_pipe),
gbr@ui@svg:render(_pipe@1)
end,
Input_class = <<<<"dark:bg-dark-900 shadow-theme-xs w-full rounded-lg border bg-transparent px-4 py-2.5 pr-10 text-sm text-gray-800 placeholder:text-gray-400 focus:ring-3 focus:outline-hidden dark:bg-gray-900 dark:text-white/90 dark:placeholder:text-white/30"/utf8,
" "/utf8>>/binary,
Class/binary>>,
Note_class = <<<<"text-theme-xs text-error-500 mt-1.5"/utf8, " "/utf8>>/binary,
Class_note/binary>>,
Note = begin
_pipe@2 = gbr@ui@typo:span(Text),
gbr@ui@typo:class(_pipe@2, Note_class)
end,
_pipe@3 = gbr@ui@input:class(In, Input_class),
_pipe@4 = gbr@ui@input:note(_pipe@3, Note),
gbr@ui@input:at(
_pipe@4,
[lustre@attribute:class(
<<"absolute top-1/2 right-3.5:-translate-y-1/2"/utf8>>
)],
[Svg@1]
).
-file("src\\gbr\\ui\\admin\\input.gleam", 35).
-spec success(gbr@ui@input:u_i_input(), binary()) -> gbr@ui@input:u_i_input_render(any()).
success(In, Text) ->
state_set(
In,
Text,
<<" border-green-300 focus:border-green-300 focus:ring-green-500/10 dark:border-green-700 dark:focus:border-green-800"/utf8>>,
<<"text-xs text-green-600 mt-1.5"/utf8>>,
fun gbr@ui@svg@form:success/1
).
-file("src\\gbr\\ui\\admin\\input.gleam", 45).
-spec alert(gbr@ui@input:u_i_input(), binary()) -> gbr@ui@input:u_i_input_render(any()).
alert(In, Text) ->
state_set(
In,
Text,
<<" border-yellow-300 focus:border-yellow-300 focus:ring-yellow-500/10 dark:border-yellow-700 dark:focus:border-yellow-800"/utf8>>,
<<"text-xs text-yellow-600 mt-1.5"/utf8>>,
fun gbr@ui@svg@form:success/1
).
-file("src\\gbr\\ui\\admin\\input.gleam", 49).
-spec error(gbr@ui@input:u_i_input(), binary()) -> gbr@ui@input:u_i_input_render(any()).
error(In, Text) ->
state_set(
In,
Text,
<<" border-red-300 focus:border-red-300 focus:ring-red-500/10 dark:border-red-700 dark:focus:border-red-800"/utf8>>,
<<"text-xs text-red-700 mt-1.5"/utf8>>,
fun gbr@ui@svg@form:error/1
).
-file("src\\gbr\\ui\\admin\\input.gleam", 53).
-spec disabled(gbr@ui@input:u_i_input(), binary()) -> gbr@ui@input:u_i_input_render(any()).
disabled(In, Text) ->
state_set(
In,
Text,
<<"shadow-theme-xs focus:border-brand-300 focus:shadow-focus-ring dark:focus:border-brand-300 h-11 w-full rounded-lg border border-gray-300 bg-transparent px-4 py-2.5 text-sm text-gray-800 placeholder:text-gray-400 focus:outline-hidden disabled:border-gray-100 disabled:placeholder:text-gray-300 dark:border-gray-700 dark:bg-gray-900 dark:text-white/90 dark:placeholder:text-gray-400 dark:disabled:border-gray-800 dark:disabled:placeholder:text-white/15"/utf8>>,
<<"mb-1.5 block text-sm font-medium text-gray-300 dark:text-white/15"/utf8>>,
fun gbr@ui@svg@form:info/1
).
-file("src\\gbr\\ui\\admin\\input.gleam", 57).
-spec loading(gbr@ui@input:u_i_input(), binary()) -> gbr@ui@input:u_i_input_render(any()).
loading(In, Text) ->
disabled(In, Text).
-file("src\\gbr\\ui\\admin\\input.gleam", 22).
-spec primary(gbr@ui@input:u_i_input(), gleam@option:option(binary())) -> gbr@ui@input:u_i_input_render(any()).
primary(In, Label) ->
In@1 = case Label of
none ->
In;
{some, Label@1} ->
_pipe = gbr@ui@typo:span(Label@1),
_pipe@1 = gbr@ui@typo:class(
_pipe,
<<"mb-1.5 block text-sm font-medium text-gray-700 dark:text-gray-400"/utf8>>
),
gbr@ui@input:label(In, _pipe@1)
end,
_pipe@2 = gbr@ui@input:class(
In@1,
<<"dark:bg-dark-900 h-11 w-full rounded-lg border border-gray-300 bg-transparent px-4 py-2.5 text-sm text-gray-800 shadow-theme-xs placeholder:text-gray-400 focus:border-brand-300 focus:outline-hidden focus:ring-3 focus:ring-brand-500/10 dark:border-gray-700 dark:bg-gray-900 dark:text-white/90 dark:placeholder:text-white/30 dark:focus:border-brand-800"/utf8>>
),
gbr@ui@input:at(_pipe@2, [], []).
-file("src\\gbr\\ui\\admin\\input.gleam", 62).
-spec at_right(gbr@ui@input:u_i_input(), list(lustre@vdom@vnode:element(PXF))) -> gbr@ui@input:u_i_input_render(PXF).
at_right(In, Inner) ->
gbr@ui@input:at(
In,
[lustre@attribute:class(
<<"absolute z-30 text-gray-500 -translate-y-1/2 cursor-pointer right-4 top-1/2 dark:text-gray-400 inline-flex gap-1"/utf8>>
)],
Inner
).
-file("src\\gbr\\ui\\admin\\input.gleam", 66).
-spec at_left(gbr@ui@input:u_i_input(), list(lustre@vdom@vnode:element(PXI))) -> gbr@ui@input:u_i_input_render(PXI).
at_left(In, Inner) ->
gbr@ui@input:at(
In,
[lustre@attribute:class(
<<"absolute top-1/2 left-0 flex h-11 -translate-y-1/2 items-center justify-center border-r border-gray-200 dark:border-gray-800 inline-flex gap-1 px-3"/utf8>>
)],
Inner
).