-module(internal@carpenter@props). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/internal/carpenter/props.gleam"). -export([append/3, append_if/3, atom/1, pair/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(false). -file("src/internal/carpenter/props.gleam", 23). ?DOC(false). -spec append( list(gleam@dynamic:dynamic_()), gleam@option:option(HQD), fun((HQD) -> gleam@dynamic:dynamic_()) ) -> list(gleam@dynamic:dynamic_()). append(Props, Prop, Mapper) -> _pipe = Prop, _pipe@1 = gleam@option:map(_pipe, Mapper), _pipe@2 = gleam@option:map( _pipe@1, fun(_capture) -> gleam@list:prepend(Props, _capture) end ), gleam@option:unwrap(_pipe@2, Props). -file("src/internal/carpenter/props.gleam", 36). ?DOC(false). -spec append_if( list(gleam@dynamic:dynamic_()), boolean(), fun(() -> gleam@dynamic:dynamic_()) ) -> list(gleam@dynamic:dynamic_()). append_if(Props, Prop, Mapper) -> gleam@bool:guard(not Prop, Props, fun() -> [Mapper() | Props] end). -file("src/internal/carpenter/props.gleam", 47). ?DOC(false). -spec atom(binary()) -> gleam@dynamic:dynamic_(). atom(Name) -> Value = erlang:binary_to_atom(Name), carpenter_ffi:coerce(Value). -file("src/internal/carpenter/props.gleam", 54). ?DOC(false). -spec pair(binary(), any()) -> gleam@dynamic:dynamic_(). pair(Prop, Value) -> Prop@1 = atom(Prop), Value@1 = carpenter_ffi:coerce(Value), carpenter_ffi:coerce({Prop@1, Value@1}).