Current section
Files
Jump to
Current section
Files
src/kitazith@component@container.erl
-module(kitazith@component@container).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/kitazith/component/container.gleam").
-export([new/1, with_id/2, with_accent_color/2, with_spoiler/2, text_display/1, section/1, media_gallery/1, file/1, separator/1, to_json/1]).
-export_type([container/0, container_child/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type container() :: {container,
gleam@option:option(integer()),
list(container_child()),
gleam@option:option(integer()),
gleam@option:option(boolean())}.
-type container_child() :: {container_text_display,
kitazith@component@text_display:text_display()} |
{container_section, kitazith@component@section:section()} |
{container_media_gallery, kitazith@component@media_gallery:media_gallery()} |
{container_file, kitazith@component@file:file()} |
{container_separator, kitazith@component@separator:separator()}.
-file("src/kitazith/component/container.gleam", 32).
-spec new(list(container_child())) -> container().
new(Components) ->
{container, none, Components, none, none}.
-file("src/kitazith/component/container.gleam", 36).
-spec with_id(container(), integer()) -> container().
with_id(Container, Id) ->
{container,
{some, Id},
erlang:element(3, Container),
erlang:element(4, Container),
erlang:element(5, Container)}.
-file("src/kitazith/component/container.gleam", 41).
?DOC(" Use `kitazith/color.from_rgb` to build the packed integer from RGB components.\n").
-spec with_accent_color(container(), integer()) -> container().
with_accent_color(Container, Accent_color) ->
{container,
erlang:element(2, Container),
erlang:element(3, Container),
{some, Accent_color},
erlang:element(5, Container)}.
-file("src/kitazith/component/container.gleam", 45).
-spec with_spoiler(container(), boolean()) -> container().
with_spoiler(Container, Spoiler) ->
{container,
erlang:element(2, Container),
erlang:element(3, Container),
erlang:element(4, Container),
{some, Spoiler}}.
-file("src/kitazith/component/container.gleam", 49).
-spec text_display(kitazith@component@text_display:text_display()) -> container_child().
text_display(Text_display) ->
{container_text_display, Text_display}.
-file("src/kitazith/component/container.gleam", 55).
-spec section(kitazith@component@section:section()) -> container_child().
section(Section) ->
{container_section, Section}.
-file("src/kitazith/component/container.gleam", 59).
-spec media_gallery(kitazith@component@media_gallery:media_gallery()) -> container_child().
media_gallery(Media_gallery) ->
{container_media_gallery, Media_gallery}.
-file("src/kitazith/component/container.gleam", 65).
-spec file(kitazith@component@file:file()) -> container_child().
file(File) ->
{container_file, File}.
-file("src/kitazith/component/container.gleam", 69).
-spec separator(kitazith@component@separator:separator()) -> container_child().
separator(Separator) ->
{container_separator, Separator}.
-file("src/kitazith/component/container.gleam", 83).
-spec child_to_json(container_child()) -> gleam@json:json().
child_to_json(Child) ->
case Child of
{container_text_display, Text_display} ->
kitazith@component@text_display:to_json(Text_display);
{container_section, Section} ->
kitazith@component@section:to_json(Section);
{container_media_gallery, Media_gallery} ->
kitazith@component@media_gallery:to_json(Media_gallery);
{container_file, File} ->
kitazith@component@file:to_json(File);
{container_separator, Separator} ->
kitazith@component@separator:to_json(Separator)
end.
-file("src/kitazith/component/container.gleam", 73).
-spec to_json(container()) -> gleam@json:json().
to_json(Container) ->
kitazith@internal@json_helper:object_omit_none(
[{some, {<<"type"/utf8>>, gleam@json:int(17)}},
kitazith@internal@json_helper:optional(
<<"id"/utf8>>,
erlang:element(2, Container),
fun gleam@json:int/1
),
{some,
{<<"components"/utf8>>,
gleam@json:array(
erlang:element(3, Container),
fun child_to_json/1
)}},
kitazith@internal@json_helper:optional(
<<"accent_color"/utf8>>,
erlang:element(4, Container),
fun gleam@json:int/1
),
kitazith@internal@json_helper:optional(
<<"spoiler"/utf8>>,
erlang:element(5, Container),
fun gleam@json:bool/1
)]
).