-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 )] ).