Current section
Files
Jump to
Current section
Files
src/gbr@ui@admin@input@checkbox.erl
-module(gbr@ui@admin@input@checkbox).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src\\gbr\\ui\\admin\\input\\checkbox.gleam").
-export([new/1, checked/2, at/1, on_click_opt/2, on_click/2, label/2, render/1]).
-export_type([u_i_checkbox/0, u_i_checkbox_render/1]).
-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 input type checkbox super element.\n"
"\n"
).
-opaque u_i_checkbox() :: {u_i_checkbox, gbr@ui@input:u_i_input(), boolean()}.
-type u_i_checkbox_render(PYS) :: {u_i_checkbox_render,
gbr@ui@input:u_i_input_render(PYS),
boolean()}.
-file("src\\gbr\\ui\\admin\\input\\checkbox.gleam", 46).
?DOC(" New checkbox super element.\n").
-spec new(binary()) -> u_i_checkbox().
new(Id) ->
{u_i_checkbox, gbr@ui@input:checkbox(Id), false}.
-file("src\\gbr\\ui\\admin\\input\\checkbox.gleam", 52).
?DOC(" Set checkbox checked or not.\n").
-spec checked(u_i_checkbox(), boolean()) -> u_i_checkbox().
checked(In, Checked) ->
{u_i_checkbox, erlang:element(2, In), Checked}.
-file("src\\gbr\\ui\\admin\\input\\checkbox.gleam", 68).
?DOC(" New checkbox render.\n").
-spec at(u_i_checkbox()) -> u_i_checkbox_render(any()).
at(In) ->
Checked = erlang:element(3, In),
In@1 = gbr@ui@input:at(erlang:element(2, In), [], []),
{u_i_checkbox_render, In@1, Checked}.
-file("src\\gbr\\ui\\admin\\input\\checkbox.gleam", 77).
?DOC(" Set checkbox render onclick event.\n").
-spec on_click_opt(u_i_checkbox_render(PYZ), gleam@option:option(PYZ)) -> u_i_checkbox_render(PYZ).
on_click_opt(At, Onclick) ->
In = gbr@ui@input:on_click_opt(erlang:element(2, At), Onclick),
{u_i_checkbox_render, In, erlang:element(3, At)}.
-file("src\\gbr\\ui\\admin\\input\\checkbox.gleam", 83).
-spec on_click(u_i_checkbox_render(PZD), PZD) -> u_i_checkbox_render(PZD).
on_click(In, Onclick) ->
on_click_opt(In, {some, Onclick}).
-file("src\\gbr\\ui\\admin\\input\\checkbox.gleam", 58).
?DOC(" Set checkbox label.\n").
-spec label(u_i_checkbox(), gbr@ui@typo:u_i_typo()) -> u_i_checkbox().
label(In, Label) ->
El = begin
_pipe = gbr@ui@typo:class(
Label,
<<"flex items-center text-sm font-normal text-gray-700 cursor-pointer select-none dark:text-gray-400"/utf8>>
),
gbr@ui@input:label(erlang:element(2, In), _pipe)
end,
{u_i_checkbox, El, erlang:element(3, In)}.
-file("src\\gbr\\ui\\admin\\input\\checkbox.gleam", 105).
-spec decorator(boolean()) -> lustre@vdom@vnode:element(any()).
decorator(Checked) ->
Class_checked = case Checked of
true ->
<<" border-brand-500 bg-brand-500"/utf8>>;
false ->
<<" bg-transparent border-gray-300 dark:border-gray-700"/utf8>>
end,
Class_span = case Checked of
false ->
<<"opacity-0"/utf8>>;
_ ->
<<""/utf8>>
end,
lustre@element@html:'div'(
[lustre@attribute:class(
<<"mr-3 flex h-5 w-5 items-center justify-center rounded-md border-[1.25px]"/utf8,
Class_checked/binary>>
)],
[lustre@element@html:span(
[lustre@attribute:class(Class_span)],
[begin
_pipe = gbr@ui@svg:new(14, 14),
_pipe@1 = gbr@ui@svg@form:checkbox(_pipe),
gbr@ui@svg:render(_pipe@1)
end]
)]
).
-file("src\\gbr\\ui\\admin\\input\\checkbox.gleam", 89).
?DOC(" Render checkbox super element to `lustre/element.{type Element}`.\n").
-spec render(u_i_checkbox_render(PZG)) -> lustre@vdom@vnode:element(PZG).
render(At) ->
{u_i_checkbox_render, In, Checked} = At,
lustre@element@html:'div'(
[lustre@attribute:class(<<"relative"/utf8>>)],
[gbr@ui@input:render(In), decorator(Checked)]
).