-module(the_stars@styles). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/the_stars/styles.gleam"). -export([new/0, set_foreground/2, get_foreground/1, set_background/2, get_background/1, set_bold/2, get_bold/1, set_dim/2, get_dim/1, set_italic/2, get_italic/1, set_underline/2, get_underline/1, set_blink/2, get_blink/1, set_invert/2, get_invert/1, set_strikethrough/2, get_strikethrough/1, render/2]). -export_type([style/0]). -opaque style() :: {style, the_stars@color:color(), the_stars@color:color(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean()}. -file("src/the_stars/styles.gleam", 29). -spec new() -> style(). new() -> {style, the_stars@color:new(0, 0, 0), no_color, false, false, false, false, false, false, false}. -file("src/the_stars/styles.gleam", 43). -spec render_clear() -> binary(). render_clear() -> <<"\x{001b}[0m"/utf8>>. -file("src/the_stars/styles.gleam", 93). -spec render_boolean(boolean(), binary()) -> binary(). render_boolean(Flag, Value) -> case Flag of true -> Value; false -> <<""/utf8>> end. -file("src/the_stars/styles.gleam", 100). -spec set_foreground(style(), the_stars@color:color()) -> style(). set_foreground(Style, Color) -> {style, Color, erlang:element(3, Style), erlang:element(4, Style), erlang:element(5, Style), erlang:element(6, Style), erlang:element(7, Style), erlang:element(8, Style), erlang:element(9, Style), erlang:element(10, Style)}. -file("src/the_stars/styles.gleam", 104). -spec get_foreground(style()) -> the_stars@color:color(). get_foreground(Style) -> erlang:element(2, Style). -file("src/the_stars/styles.gleam", 108). -spec set_background(style(), the_stars@color:color()) -> style(). set_background(Style, Color) -> {style, erlang:element(2, Style), Color, erlang:element(4, Style), erlang:element(5, Style), erlang:element(6, Style), erlang:element(7, Style), erlang:element(8, Style), erlang:element(9, Style), erlang:element(10, Style)}. -file("src/the_stars/styles.gleam", 112). -spec get_background(style()) -> the_stars@color:color(). get_background(Style) -> erlang:element(3, Style). -file("src/the_stars/styles.gleam", 116). -spec set_bold(style(), boolean()) -> style(). set_bold(Style, Value) -> {style, erlang:element(2, Style), erlang:element(3, Style), Value, erlang:element(5, Style), erlang:element(6, Style), erlang:element(7, Style), erlang:element(8, Style), erlang:element(9, Style), erlang:element(10, Style)}. -file("src/the_stars/styles.gleam", 120). -spec get_bold(style()) -> boolean(). get_bold(Style) -> erlang:element(4, Style). -file("src/the_stars/styles.gleam", 124). -spec set_dim(style(), boolean()) -> style(). set_dim(Style, Value) -> {style, erlang:element(2, Style), erlang:element(3, Style), erlang:element(4, Style), Value, erlang:element(6, Style), erlang:element(7, Style), erlang:element(8, Style), erlang:element(9, Style), erlang:element(10, Style)}. -file("src/the_stars/styles.gleam", 128). -spec get_dim(style()) -> boolean(). get_dim(Style) -> erlang:element(5, Style). -file("src/the_stars/styles.gleam", 132). -spec set_italic(style(), boolean()) -> style(). set_italic(Style, Value) -> {style, erlang:element(2, Style), erlang:element(3, Style), erlang:element(4, Style), erlang:element(5, Style), Value, erlang:element(7, Style), erlang:element(8, Style), erlang:element(9, Style), erlang:element(10, Style)}. -file("src/the_stars/styles.gleam", 136). -spec get_italic(style()) -> boolean(). get_italic(Style) -> erlang:element(6, Style). -file("src/the_stars/styles.gleam", 140). -spec set_underline(style(), boolean()) -> style(). set_underline(Style, Value) -> {style, erlang:element(2, Style), erlang:element(3, Style), erlang:element(4, Style), erlang:element(5, Style), erlang:element(6, Style), Value, erlang:element(8, Style), erlang:element(9, Style), erlang:element(10, Style)}. -file("src/the_stars/styles.gleam", 144). -spec get_underline(style()) -> boolean(). get_underline(Style) -> erlang:element(7, Style). -file("src/the_stars/styles.gleam", 148). -spec set_blink(style(), boolean()) -> style(). set_blink(Style, Value) -> {style, erlang:element(2, Style), erlang:element(3, Style), erlang:element(4, Style), erlang:element(5, Style), erlang:element(6, Style), erlang:element(7, Style), Value, erlang:element(9, Style), erlang:element(10, Style)}. -file("src/the_stars/styles.gleam", 152). -spec get_blink(style()) -> boolean(). get_blink(Style) -> erlang:element(8, Style). -file("src/the_stars/styles.gleam", 156). -spec set_invert(style(), boolean()) -> style(). set_invert(Style, Value) -> {style, erlang:element(2, Style), erlang:element(3, Style), erlang:element(4, Style), erlang:element(5, Style), erlang:element(6, Style), erlang:element(7, Style), erlang:element(8, Style), Value, erlang:element(10, Style)}. -file("src/the_stars/styles.gleam", 160). -spec get_invert(style()) -> boolean(). get_invert(Style) -> erlang:element(9, Style). -file("src/the_stars/styles.gleam", 164). -spec set_strikethrough(style(), boolean()) -> style(). set_strikethrough(Style, Value) -> {style, erlang:element(2, Style), erlang:element(3, Style), erlang:element(4, Style), erlang:element(5, Style), erlang:element(6, Style), erlang:element(7, Style), erlang:element(8, Style), erlang:element(9, Style), Value}. -file("src/the_stars/styles.gleam", 168). -spec get_strikethrough(style()) -> boolean(). get_strikethrough(Style) -> erlang:element(10, Style). -file("src/the_stars/styles.gleam", 67). -spec render_fg_color(style()) -> binary(). render_fg_color(Style) -> case erlang:element(2, Style) of {color, R, G, B} -> _pipe = [38, 2, R, G, B], _pipe@1 = gleam@list:map( _pipe, fun(V) -> erlang:integer_to_binary(V) end ), gleam@string:join(_pipe@1, <<";"/utf8>>); no_color -> <<"39"/utf8>> end. -file("src/the_stars/styles.gleam", 80). -spec render_bg_color(style()) -> binary(). render_bg_color(Style) -> case erlang:element(3, Style) of {color, R, G, B} -> _pipe = [48, 2, R, G, B], _pipe@1 = gleam@list:map( _pipe, fun(V) -> erlang:integer_to_binary(V) end ), gleam@string:join(_pipe@1, <<";"/utf8>>); no_color -> <<"49"/utf8>> end. -file("src/the_stars/styles.gleam", 48). -spec render(style(), binary()) -> binary(). render(Style, S) -> Codes = begin _pipe = [render_fg_color(Style), render_bg_color(Style), render_boolean(erlang:element(4, Style), <<"1"/utf8>>), render_boolean(erlang:element(5, Style), <<"2"/utf8>>), render_boolean(erlang:element(6, Style), <<"3"/utf8>>), render_boolean(erlang:element(7, Style), <<"4"/utf8>>), render_boolean(erlang:element(8, Style), <<"5"/utf8>>), render_boolean(erlang:element(9, Style), <<"7"/utf8>>), render_boolean(erlang:element(10, Style), <<"9"/utf8>>)], _pipe@1 = gleam@list:filter(_pipe, fun(V) -> string:length(V) > 0 end), gleam@string:join(_pipe@1, <<";"/utf8>>) end, <<<<<<<<"\x{001b}["/utf8, Codes/binary>>/binary, "m"/utf8>>/binary, S/binary>>/binary, (render_clear())/binary>>.