Skip to main content

src/gg_cn@internal@config.erl

-module(gg_cn@internal@config).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gg_cn/internal/config.gleam").
-export([default_config/1]).
-export_type([class_def/0, config/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.

?MODULEDOC(false).

-type class_def() :: {lit, binary()} |
    {val, fun((binary()) -> boolean())} |
    {theme, binary()} |
    {obj, list({binary(), list(class_def())})}.

-type config() :: {config,
        gleam@dict:dict(binary(), list(class_def())),
        list({binary(), list(class_def())}),
        gleam@dict:dict(binary(), list(binary())),
        gleam@dict:dict(binary(), list(binary())),
        list(binary()),
        list(binary())}.

-file("src/gg_cn/internal/config.gleam", 1412).
?DOC(false).
-spec conflicting_class_groups() -> list({binary(), list(binary())}).
conflicting_class_groups() ->
    [{<<"container-named"/utf8>>, [<<"container-type"/utf8>>]},
        {<<"overflow"/utf8>>, [<<"overflow-x"/utf8>>, <<"overflow-y"/utf8>>]},
        {<<"overscroll"/utf8>>,
            [<<"overscroll-x"/utf8>>, <<"overscroll-y"/utf8>>]},
        {<<"inset"/utf8>>,
            [<<"inset-x"/utf8>>,
                <<"inset-y"/utf8>>,
                <<"inset-bs"/utf8>>,
                <<"inset-be"/utf8>>,
                <<"start"/utf8>>,
                <<"end"/utf8>>,
                <<"top"/utf8>>,
                <<"right"/utf8>>,
                <<"bottom"/utf8>>,
                <<"left"/utf8>>]},
        {<<"inset-x"/utf8>>, [<<"right"/utf8>>, <<"left"/utf8>>]},
        {<<"inset-y"/utf8>>, [<<"top"/utf8>>, <<"bottom"/utf8>>]},
        {<<"flex"/utf8>>,
            [<<"basis"/utf8>>, <<"grow"/utf8>>, <<"shrink"/utf8>>]},
        {<<"gap"/utf8>>, [<<"gap-x"/utf8>>, <<"gap-y"/utf8>>]},
        {<<"p"/utf8>>,
            [<<"px"/utf8>>,
                <<"py"/utf8>>,
                <<"ps"/utf8>>,
                <<"pe"/utf8>>,
                <<"pbs"/utf8>>,
                <<"pbe"/utf8>>,
                <<"pt"/utf8>>,
                <<"pr"/utf8>>,
                <<"pb"/utf8>>,
                <<"pl"/utf8>>]},
        {<<"px"/utf8>>, [<<"pr"/utf8>>, <<"pl"/utf8>>]},
        {<<"py"/utf8>>, [<<"pt"/utf8>>, <<"pb"/utf8>>]},
        {<<"m"/utf8>>,
            [<<"mx"/utf8>>,
                <<"my"/utf8>>,
                <<"ms"/utf8>>,
                <<"me"/utf8>>,
                <<"mbs"/utf8>>,
                <<"mbe"/utf8>>,
                <<"mt"/utf8>>,
                <<"mr"/utf8>>,
                <<"mb"/utf8>>,
                <<"ml"/utf8>>]},
        {<<"mx"/utf8>>, [<<"mr"/utf8>>, <<"ml"/utf8>>]},
        {<<"my"/utf8>>, [<<"mt"/utf8>>, <<"mb"/utf8>>]},
        {<<"size"/utf8>>, [<<"w"/utf8>>, <<"h"/utf8>>]},
        {<<"font-size"/utf8>>, [<<"leading"/utf8>>]},
        {<<"fvn-normal"/utf8>>,
            [<<"fvn-ordinal"/utf8>>,
                <<"fvn-slashed-zero"/utf8>>,
                <<"fvn-figure"/utf8>>,
                <<"fvn-spacing"/utf8>>,
                <<"fvn-fraction"/utf8>>]},
        {<<"fvn-ordinal"/utf8>>, [<<"fvn-normal"/utf8>>]},
        {<<"fvn-slashed-zero"/utf8>>, [<<"fvn-normal"/utf8>>]},
        {<<"fvn-figure"/utf8>>, [<<"fvn-normal"/utf8>>]},
        {<<"fvn-spacing"/utf8>>, [<<"fvn-normal"/utf8>>]},
        {<<"fvn-fraction"/utf8>>, [<<"fvn-normal"/utf8>>]},
        {<<"line-clamp"/utf8>>, [<<"display"/utf8>>, <<"overflow"/utf8>>]},
        {<<"rounded"/utf8>>,
            [<<"rounded-s"/utf8>>,
                <<"rounded-e"/utf8>>,
                <<"rounded-t"/utf8>>,
                <<"rounded-r"/utf8>>,
                <<"rounded-b"/utf8>>,
                <<"rounded-l"/utf8>>,
                <<"rounded-ss"/utf8>>,
                <<"rounded-se"/utf8>>,
                <<"rounded-ee"/utf8>>,
                <<"rounded-es"/utf8>>,
                <<"rounded-tl"/utf8>>,
                <<"rounded-tr"/utf8>>,
                <<"rounded-br"/utf8>>,
                <<"rounded-bl"/utf8>>]},
        {<<"rounded-s"/utf8>>, [<<"rounded-ss"/utf8>>, <<"rounded-es"/utf8>>]},
        {<<"rounded-e"/utf8>>, [<<"rounded-se"/utf8>>, <<"rounded-ee"/utf8>>]},
        {<<"rounded-t"/utf8>>, [<<"rounded-tl"/utf8>>, <<"rounded-tr"/utf8>>]},
        {<<"rounded-r"/utf8>>, [<<"rounded-tr"/utf8>>, <<"rounded-br"/utf8>>]},
        {<<"rounded-b"/utf8>>, [<<"rounded-br"/utf8>>, <<"rounded-bl"/utf8>>]},
        {<<"rounded-l"/utf8>>, [<<"rounded-tl"/utf8>>, <<"rounded-bl"/utf8>>]},
        {<<"border-spacing"/utf8>>,
            [<<"border-spacing-x"/utf8>>, <<"border-spacing-y"/utf8>>]},
        {<<"border-w"/utf8>>,
            [<<"border-w-x"/utf8>>,
                <<"border-w-y"/utf8>>,
                <<"border-w-s"/utf8>>,
                <<"border-w-e"/utf8>>,
                <<"border-w-bs"/utf8>>,
                <<"border-w-be"/utf8>>,
                <<"border-w-t"/utf8>>,
                <<"border-w-r"/utf8>>,
                <<"border-w-b"/utf8>>,
                <<"border-w-l"/utf8>>]},
        {<<"border-w-x"/utf8>>, [<<"border-w-r"/utf8>>, <<"border-w-l"/utf8>>]},
        {<<"border-w-y"/utf8>>, [<<"border-w-t"/utf8>>, <<"border-w-b"/utf8>>]},
        {<<"border-color"/utf8>>,
            [<<"border-color-x"/utf8>>,
                <<"border-color-y"/utf8>>,
                <<"border-color-s"/utf8>>,
                <<"border-color-e"/utf8>>,
                <<"border-color-bs"/utf8>>,
                <<"border-color-be"/utf8>>,
                <<"border-color-t"/utf8>>,
                <<"border-color-r"/utf8>>,
                <<"border-color-b"/utf8>>,
                <<"border-color-l"/utf8>>]},
        {<<"border-color-x"/utf8>>,
            [<<"border-color-r"/utf8>>, <<"border-color-l"/utf8>>]},
        {<<"border-color-y"/utf8>>,
            [<<"border-color-t"/utf8>>, <<"border-color-b"/utf8>>]},
        {<<"translate"/utf8>>,
            [<<"translate-x"/utf8>>,
                <<"translate-y"/utf8>>,
                <<"translate-none"/utf8>>]},
        {<<"translate-none"/utf8>>,
            [<<"translate"/utf8>>,
                <<"translate-x"/utf8>>,
                <<"translate-y"/utf8>>,
                <<"translate-z"/utf8>>]},
        {<<"scroll-m"/utf8>>,
            [<<"scroll-mx"/utf8>>,
                <<"scroll-my"/utf8>>,
                <<"scroll-ms"/utf8>>,
                <<"scroll-me"/utf8>>,
                <<"scroll-mbs"/utf8>>,
                <<"scroll-mbe"/utf8>>,
                <<"scroll-mt"/utf8>>,
                <<"scroll-mr"/utf8>>,
                <<"scroll-mb"/utf8>>,
                <<"scroll-ml"/utf8>>]},
        {<<"scroll-mx"/utf8>>, [<<"scroll-mr"/utf8>>, <<"scroll-ml"/utf8>>]},
        {<<"scroll-my"/utf8>>, [<<"scroll-mt"/utf8>>, <<"scroll-mb"/utf8>>]},
        {<<"scroll-p"/utf8>>,
            [<<"scroll-px"/utf8>>,
                <<"scroll-py"/utf8>>,
                <<"scroll-ps"/utf8>>,
                <<"scroll-pe"/utf8>>,
                <<"scroll-pbs"/utf8>>,
                <<"scroll-pbe"/utf8>>,
                <<"scroll-pt"/utf8>>,
                <<"scroll-pr"/utf8>>,
                <<"scroll-pb"/utf8>>,
                <<"scroll-pl"/utf8>>]},
        {<<"scroll-px"/utf8>>, [<<"scroll-pr"/utf8>>, <<"scroll-pl"/utf8>>]},
        {<<"scroll-py"/utf8>>, [<<"scroll-pt"/utf8>>, <<"scroll-pb"/utf8>>]},
        {<<"touch"/utf8>>,
            [<<"touch-x"/utf8>>, <<"touch-y"/utf8>>, <<"touch-pz"/utf8>>]},
        {<<"touch-x"/utf8>>, [<<"touch"/utf8>>]},
        {<<"touch-y"/utf8>>, [<<"touch"/utf8>>]},
        {<<"touch-pz"/utf8>>, [<<"touch"/utf8>>]}].

-file("src/gg_cn/internal/config.gleam", 54).
?DOC(false).
-spec lits(list(binary())) -> list(class_def()).
lits(Parts) ->
    gleam@list:map(Parts, fun(Field@0) -> {lit, Field@0} end).

-file("src/gg_cn/internal/config.gleam", 1402).
?DOC(false).
-spec accessibility() -> list({binary(), list(class_def())}).
accessibility() ->
    [{<<"forced-color-adjust"/utf8>>,
            [{obj,
                    [{<<"forced-color-adjust"/utf8>>,
                            lits([<<"auto"/utf8>>, <<"none"/utf8>>])}]}]}].

-file("src/gg_cn/internal/config.gleam", 62).
?DOC(false).
-spec vaval(gg_cn@internal@validators:regexes()) -> class_def().
vaval(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_value(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 58).
?DOC(false).
-spec vav(gg_cn@internal@validators:regexes()) -> class_def().
vav(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_variable(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 287).
?DOC(false).
-spec scale_color(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_color(Rx) ->
    [{theme, <<"color"/utf8>>}, vav(Rx), vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 106).
?DOC(false).
-spec vanum(gg_cn@internal@validators:regexes()) -> class_def().
vanum(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_number(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 98).
?DOC(false).
-spec valen(gg_cn@internal@validators:regexes()) -> class_def().
valen(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_length(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 102).
?DOC(false).
-spec vavlen(gg_cn@internal@validators:regexes()) -> class_def().
vavlen(Rx) ->
    {val,
        fun(S) ->
            gg_cn@internal@validators:is_arbitrary_variable_length(Rx, S)
        end}.

-file("src/gg_cn/internal/config.gleam", 66).
?DOC(false).
-spec vnum(gg_cn@internal@validators:regexes()) -> class_def().
vnum(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_number(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 1392).
?DOC(false).
-spec svg(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
svg(Rx) ->
    [{<<"fill"/utf8>>,
            [{obj,
                    [{<<"fill"/utf8>>,
                            [{lit, <<"none"/utf8>>} | scale_color(Rx)]}]}]},
        {<<"stroke-w"/utf8>>,
            [{obj,
                    [{<<"stroke"/utf8>>,
                            [vnum(Rx), vavlen(Rx), valen(Rx), vanum(Rx)]}]}]},
        {<<"stroke"/utf8>>,
            [{obj,
                    [{<<"stroke"/utf8>>,
                            [{lit, <<"none"/utf8>>} | scale_color(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 184).
?DOC(false).
-spec scale_unambiguous_spacing(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_unambiguous_spacing(Rx) ->
    [vav(Rx), vaval(Rx), {theme, <<"spacing"/utf8>>}].

-file("src/gg_cn/internal/config.gleam", 1275).
?DOC(false).
-spec interactivity(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
interactivity(Rx) ->
    [{<<"accent"/utf8>>, [{obj, [{<<"accent"/utf8>>, scale_color(Rx)}]}]},
        {<<"appearance"/utf8>>,
            [{obj,
                    [{<<"appearance"/utf8>>,
                            lits([<<"none"/utf8>>, <<"auto"/utf8>>])}]}]},
        {<<"caret-color"/utf8>>, [{obj, [{<<"caret"/utf8>>, scale_color(Rx)}]}]},
        {<<"color-scheme"/utf8>>,
            [{obj,
                    [{<<"scheme"/utf8>>,
                            lits(
                                [<<"normal"/utf8>>,
                                    <<"dark"/utf8>>,
                                    <<"light"/utf8>>,
                                    <<"light-dark"/utf8>>,
                                    <<"only-dark"/utf8>>,
                                    <<"only-light"/utf8>>]
                            )}]}]},
        {<<"cursor"/utf8>>,
            [{obj,
                    [{<<"cursor"/utf8>>,
                            [{lit, <<"auto"/utf8>>},
                                {lit, <<"default"/utf8>>},
                                {lit, <<"pointer"/utf8>>},
                                {lit, <<"wait"/utf8>>},
                                {lit, <<"text"/utf8>>},
                                {lit, <<"move"/utf8>>},
                                {lit, <<"help"/utf8>>},
                                {lit, <<"not-allowed"/utf8>>},
                                {lit, <<"none"/utf8>>},
                                {lit, <<"context-menu"/utf8>>},
                                {lit, <<"progress"/utf8>>},
                                {lit, <<"cell"/utf8>>},
                                {lit, <<"crosshair"/utf8>>},
                                {lit, <<"vertical-text"/utf8>>},
                                {lit, <<"alias"/utf8>>},
                                {lit, <<"copy"/utf8>>},
                                {lit, <<"no-drop"/utf8>>},
                                {lit, <<"grab"/utf8>>},
                                {lit, <<"grabbing"/utf8>>},
                                {lit, <<"all-scroll"/utf8>>},
                                {lit, <<"col-resize"/utf8>>},
                                {lit, <<"row-resize"/utf8>>},
                                {lit, <<"n-resize"/utf8>>},
                                {lit, <<"e-resize"/utf8>>},
                                {lit, <<"s-resize"/utf8>>},
                                {lit, <<"w-resize"/utf8>>},
                                {lit, <<"ne-resize"/utf8>>},
                                {lit, <<"nw-resize"/utf8>>},
                                {lit, <<"se-resize"/utf8>>},
                                {lit, <<"sw-resize"/utf8>>},
                                {lit, <<"ew-resize"/utf8>>},
                                {lit, <<"ns-resize"/utf8>>},
                                {lit, <<"nesw-resize"/utf8>>},
                                {lit, <<"nwse-resize"/utf8>>},
                                {lit, <<"zoom-in"/utf8>>},
                                {lit, <<"zoom-out"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"field-sizing"/utf8>>,
            [{obj,
                    [{<<"field-sizing"/utf8>>,
                            lits([<<"fixed"/utf8>>, <<"content"/utf8>>])}]}]},
        {<<"pointer-events"/utf8>>,
            [{obj,
                    [{<<"pointer-events"/utf8>>,
                            lits([<<"auto"/utf8>>, <<"none"/utf8>>])}]}]},
        {<<"resize"/utf8>>,
            [{obj,
                    [{<<"resize"/utf8>>,
                            lits(
                                [<<"none"/utf8>>,
                                    <<""/utf8>>,
                                    <<"y"/utf8>>,
                                    <<"x"/utf8>>]
                            )}]}]},
        {<<"scroll-behavior"/utf8>>,
            [{obj,
                    [{<<"scroll"/utf8>>,
                            lits([<<"auto"/utf8>>, <<"smooth"/utf8>>])}]}]},
        {<<"scrollbar-thumb-color"/utf8>>,
            [{obj, [{<<"scrollbar-thumb"/utf8>>, scale_color(Rx)}]}]},
        {<<"scrollbar-track-color"/utf8>>,
            [{obj, [{<<"scrollbar-track"/utf8>>, scale_color(Rx)}]}]},
        {<<"scrollbar-gutter"/utf8>>,
            [{obj,
                    [{<<"scrollbar-gutter"/utf8>>,
                            lits(
                                [<<"auto"/utf8>>,
                                    <<"stable"/utf8>>,
                                    <<"both"/utf8>>]
                            )}]}]},
        {<<"scrollbar-w"/utf8>>,
            [{obj,
                    [{<<"scrollbar"/utf8>>,
                            lits(
                                [<<"auto"/utf8>>,
                                    <<"thin"/utf8>>,
                                    <<"none"/utf8>>]
                            )}]}]},
        {<<"scroll-m"/utf8>>,
            [{obj, [{<<"scroll-m"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-mx"/utf8>>,
            [{obj, [{<<"scroll-mx"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-my"/utf8>>,
            [{obj, [{<<"scroll-my"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-ms"/utf8>>,
            [{obj, [{<<"scroll-ms"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-me"/utf8>>,
            [{obj, [{<<"scroll-me"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-mbs"/utf8>>,
            [{obj, [{<<"scroll-mbs"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-mbe"/utf8>>,
            [{obj, [{<<"scroll-mbe"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-mt"/utf8>>,
            [{obj, [{<<"scroll-mt"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-mr"/utf8>>,
            [{obj, [{<<"scroll-mr"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-mb"/utf8>>,
            [{obj, [{<<"scroll-mb"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-ml"/utf8>>,
            [{obj, [{<<"scroll-ml"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-p"/utf8>>,
            [{obj, [{<<"scroll-p"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-px"/utf8>>,
            [{obj, [{<<"scroll-px"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-py"/utf8>>,
            [{obj, [{<<"scroll-py"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-ps"/utf8>>,
            [{obj, [{<<"scroll-ps"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-pe"/utf8>>,
            [{obj, [{<<"scroll-pe"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-pbs"/utf8>>,
            [{obj, [{<<"scroll-pbs"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-pbe"/utf8>>,
            [{obj, [{<<"scroll-pbe"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-pt"/utf8>>,
            [{obj, [{<<"scroll-pt"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-pr"/utf8>>,
            [{obj, [{<<"scroll-pr"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-pb"/utf8>>,
            [{obj, [{<<"scroll-pb"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"scroll-pl"/utf8>>,
            [{obj, [{<<"scroll-pl"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"snap-align"/utf8>>,
            [{obj,
                    [{<<"snap"/utf8>>,
                            lits(
                                [<<"start"/utf8>>,
                                    <<"end"/utf8>>,
                                    <<"center"/utf8>>,
                                    <<"align-none"/utf8>>]
                            )}]}]},
        {<<"snap-stop"/utf8>>,
            [{obj,
                    [{<<"snap"/utf8>>,
                            lits([<<"normal"/utf8>>, <<"always"/utf8>>])}]}]},
        {<<"snap-type"/utf8>>,
            [{obj,
                    [{<<"snap"/utf8>>,
                            lits(
                                [<<"none"/utf8>>,
                                    <<"x"/utf8>>,
                                    <<"y"/utf8>>,
                                    <<"both"/utf8>>]
                            )}]}]},
        {<<"snap-strictness"/utf8>>,
            [{obj,
                    [{<<"snap"/utf8>>,
                            lits([<<"mandatory"/utf8>>, <<"proximity"/utf8>>])}]}]},
        {<<"touch"/utf8>>,
            [{obj,
                    [{<<"touch"/utf8>>,
                            lits(
                                [<<"auto"/utf8>>,
                                    <<"none"/utf8>>,
                                    <<"manipulation"/utf8>>]
                            )}]}]},
        {<<"touch-x"/utf8>>,
            [{obj,
                    [{<<"touch-pan"/utf8>>,
                            lits(
                                [<<"x"/utf8>>,
                                    <<"left"/utf8>>,
                                    <<"right"/utf8>>]
                            )}]}]},
        {<<"touch-y"/utf8>>,
            [{obj,
                    [{<<"touch-pan"/utf8>>,
                            lits([<<"y"/utf8>>, <<"up"/utf8>>, <<"down"/utf8>>])}]}]},
        {<<"touch-pz"/utf8>>, lits([<<"touch-pinch-zoom"/utf8>>])},
        {<<"select"/utf8>>,
            [{obj,
                    [{<<"select"/utf8>>,
                            lits(
                                [<<"none"/utf8>>,
                                    <<"text"/utf8>>,
                                    <<"all"/utf8>>,
                                    <<"auto"/utf8>>]
                            )}]}]},
        {<<"will-change"/utf8>>,
            [{obj,
                    [{<<"will-change"/utf8>>,
                            [{lit, <<"auto"/utf8>>},
                                {lit, <<"scroll"/utf8>>},
                                {lit, <<"contents"/utf8>>},
                                {lit, <<"transform"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 70).
?DOC(false).
-spec vint(gg_cn@internal@validators:regexes()) -> class_def().
vint(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_integer(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 74).
?DOC(false).
-spec vfrac(gg_cn@internal@validators:regexes()) -> class_def().
vfrac(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_fraction(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 358).
?DOC(false).
-spec scale_translate(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_translate(Rx) ->
    [vfrac(Rx), {lit, <<"full"/utf8>>} | scale_unambiguous_spacing(Rx)].

-file("src/gg_cn/internal/config.gleam", 164).
?DOC(false).
-spec scale_position() -> list(class_def()).
scale_position() ->
    lits(
        [<<"center"/utf8>>,
            <<"top"/utf8>>,
            <<"bottom"/utf8>>,
            <<"left"/utf8>>,
            <<"right"/utf8>>,
            <<"top-left"/utf8>>,
            <<"left-top"/utf8>>,
            <<"top-right"/utf8>>,
            <<"right-top"/utf8>>,
            <<"bottom-right"/utf8>>,
            <<"right-bottom"/utf8>>,
            <<"bottom-left"/utf8>>,
            <<"left-bottom"/utf8>>]
    ).

-file("src/gg_cn/internal/config.gleam", 172).
?DOC(false).
-spec scale_position_with_arbitrary(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_position_with_arbitrary(Rx) ->
    lists:append(scale_position(), [vav(Rx), vaval(Rx)]).

-file("src/gg_cn/internal/config.gleam", 354).
?DOC(false).
-spec scale_skew(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_skew(Rx) ->
    [vnum(Rx), vav(Rx), vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 350).
?DOC(false).
-spec scale_scale(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_scale(Rx) ->
    [{lit, <<"none"/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 346).
?DOC(false).
-spec scale_rotate(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_rotate(Rx) ->
    [{lit, <<"none"/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 1229).
?DOC(false).
-spec transforms(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
transforms(Rx) ->
    [{<<"backface"/utf8>>,
            [{obj,
                    [{<<"backface"/utf8>>,
                            lits([<<"hidden"/utf8>>, <<"visible"/utf8>>])}]}]},
        {<<"perspective"/utf8>>,
            [{obj,
                    [{<<"perspective"/utf8>>,
                            [{theme, <<"perspective"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"perspective-origin"/utf8>>,
            [{obj,
                    [{<<"perspective-origin"/utf8>>,
                            scale_position_with_arbitrary(Rx)}]}]},
        {<<"rotate"/utf8>>, [{obj, [{<<"rotate"/utf8>>, scale_rotate(Rx)}]}]},
        {<<"rotate-x"/utf8>>,
            [{obj, [{<<"rotate-x"/utf8>>, scale_rotate(Rx)}]}]},
        {<<"rotate-y"/utf8>>,
            [{obj, [{<<"rotate-y"/utf8>>, scale_rotate(Rx)}]}]},
        {<<"rotate-z"/utf8>>,
            [{obj, [{<<"rotate-z"/utf8>>, scale_rotate(Rx)}]}]},
        {<<"scale"/utf8>>, [{obj, [{<<"scale"/utf8>>, scale_scale(Rx)}]}]},
        {<<"scale-x"/utf8>>, [{obj, [{<<"scale-x"/utf8>>, scale_scale(Rx)}]}]},
        {<<"scale-y"/utf8>>, [{obj, [{<<"scale-y"/utf8>>, scale_scale(Rx)}]}]},
        {<<"scale-z"/utf8>>, [{obj, [{<<"scale-z"/utf8>>, scale_scale(Rx)}]}]},
        {<<"scale-3d"/utf8>>, lits([<<"scale-3d"/utf8>>])},
        {<<"skew"/utf8>>, [{obj, [{<<"skew"/utf8>>, scale_skew(Rx)}]}]},
        {<<"skew-x"/utf8>>, [{obj, [{<<"skew-x"/utf8>>, scale_skew(Rx)}]}]},
        {<<"skew-y"/utf8>>, [{obj, [{<<"skew-y"/utf8>>, scale_skew(Rx)}]}]},
        {<<"transform"/utf8>>,
            [{obj,
                    [{<<"transform"/utf8>>,
                            [vav(Rx),
                                vaval(Rx),
                                {lit, <<""/utf8>>},
                                {lit, <<"none"/utf8>>},
                                {lit, <<"gpu"/utf8>>},
                                {lit, <<"cpu"/utf8>>}]}]}]},
        {<<"transform-origin"/utf8>>,
            [{obj, [{<<"origin"/utf8>>, scale_position_with_arbitrary(Rx)}]}]},
        {<<"transform-style"/utf8>>,
            [{obj,
                    [{<<"transform"/utf8>>,
                            lits([<<"3d"/utf8>>, <<"flat"/utf8>>])}]}]},
        {<<"translate"/utf8>>,
            [{obj, [{<<"translate"/utf8>>, scale_translate(Rx)}]}]},
        {<<"translate-x"/utf8>>,
            [{obj, [{<<"translate-x"/utf8>>, scale_translate(Rx)}]}]},
        {<<"translate-y"/utf8>>,
            [{obj, [{<<"translate-y"/utf8>>, scale_translate(Rx)}]}]},
        {<<"translate-z"/utf8>>,
            [{obj, [{<<"translate-z"/utf8>>, scale_translate(Rx)}]}]},
        {<<"translate-none"/utf8>>, lits([<<"translate-none"/utf8>>])},
        {<<"zoom"/utf8>>,
            [{obj, [{<<"zoom"/utf8>>, [vint(Rx), vav(Rx), vaval(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 1188).
?DOC(false).
-spec transitions(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
transitions(Rx) ->
    [{<<"transition"/utf8>>,
            [{obj,
                    [{<<"transition"/utf8>>,
                            [{lit, <<""/utf8>>},
                                {lit, <<"all"/utf8>>},
                                {lit, <<"colors"/utf8>>},
                                {lit, <<"opacity"/utf8>>},
                                {lit, <<"shadow"/utf8>>},
                                {lit, <<"transform"/utf8>>},
                                {lit, <<"none"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"transition-behavior"/utf8>>,
            [{obj,
                    [{<<"transition"/utf8>>,
                            lits([<<"normal"/utf8>>, <<"discrete"/utf8>>])}]}]},
        {<<"duration"/utf8>>,
            [{obj,
                    [{<<"duration"/utf8>>,
                            [vnum(Rx),
                                {lit, <<"initial"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"ease"/utf8>>,
            [{obj,
                    [{<<"ease"/utf8>>,
                            [{lit, <<"linear"/utf8>>},
                                {lit, <<"initial"/utf8>>},
                                {theme, <<"ease"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"delay"/utf8>>,
            [{obj, [{<<"delay"/utf8>>, [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"animate"/utf8>>,
            [{obj,
                    [{<<"animate"/utf8>>,
                            [{lit, <<"none"/utf8>>},
                                {theme, <<"animate"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 1171).
?DOC(false).
-spec tables(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
tables(Rx) ->
    [{<<"border-collapse"/utf8>>,
            [{obj,
                    [{<<"border"/utf8>>,
                            lits([<<"collapse"/utf8>>, <<"separate"/utf8>>])}]}]},
        {<<"border-spacing"/utf8>>,
            [{obj, [{<<"border-spacing"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"border-spacing-x"/utf8>>,
            [{obj,
                    [{<<"border-spacing-x"/utf8>>,
                            scale_unambiguous_spacing(Rx)}]}]},
        {<<"border-spacing-y"/utf8>>,
            [{obj,
                    [{<<"border-spacing-y"/utf8>>,
                            scale_unambiguous_spacing(Rx)}]}]},
        {<<"table-layout"/utf8>>,
            [{obj,
                    [{<<"table"/utf8>>,
                            lits([<<"auto"/utf8>>, <<"fixed"/utf8>>])}]}]},
        {<<"caption"/utf8>>,
            [{obj,
                    [{<<"caption"/utf8>>,
                            lits([<<"top"/utf8>>, <<"bottom"/utf8>>])}]}]}].

-file("src/gg_cn/internal/config.gleam", 342).
?DOC(false).
-spec scale_blur(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_blur(Rx) ->
    [{lit, <<""/utf8>>},
        {lit, <<"none"/utf8>>},
        {theme, <<"blur"/utf8>>},
        vav(Rx),
        vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 142).
?DOC(false).
-spec vashadow(gg_cn@internal@validators:regexes()) -> class_def().
vashadow(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_shadow(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 146).
?DOC(false).
-spec vavshadow(gg_cn@internal@validators:regexes()) -> class_def().
vavshadow(Rx) ->
    {val,
        fun(S) ->
            gg_cn@internal@validators:is_arbitrary_variable_shadow(Rx, S)
        end}.

-file("src/gg_cn/internal/config.gleam", 1113).
?DOC(false).
-spec filters(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
filters(Rx) ->
    [{<<"filter"/utf8>>,
            [{obj,
                    [{<<"filter"/utf8>>,
                            [{lit, <<""/utf8>>},
                                {lit, <<"none"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"blur"/utf8>>, [{obj, [{<<"blur"/utf8>>, scale_blur(Rx)}]}]},
        {<<"brightness"/utf8>>,
            [{obj, [{<<"brightness"/utf8>>, [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"contrast"/utf8>>,
            [{obj, [{<<"contrast"/utf8>>, [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"drop-shadow"/utf8>>,
            [{obj,
                    [{<<"drop-shadow"/utf8>>,
                            [{lit, <<""/utf8>>},
                                {lit, <<"none"/utf8>>},
                                {theme, <<"drop-shadow"/utf8>>},
                                vavshadow(Rx),
                                vashadow(Rx)]}]}]},
        {<<"drop-shadow-color"/utf8>>,
            [{obj, [{<<"drop-shadow"/utf8>>, scale_color(Rx)}]}]},
        {<<"grayscale"/utf8>>,
            [{obj,
                    [{<<"grayscale"/utf8>>,
                            [{lit, <<""/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"hue-rotate"/utf8>>,
            [{obj, [{<<"hue-rotate"/utf8>>, [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"invert"/utf8>>,
            [{obj,
                    [{<<"invert"/utf8>>,
                            [{lit, <<""/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"saturate"/utf8>>,
            [{obj, [{<<"saturate"/utf8>>, [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"sepia"/utf8>>,
            [{obj,
                    [{<<"sepia"/utf8>>,
                            [{lit, <<""/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"backdrop-filter"/utf8>>,
            [{obj,
                    [{<<"backdrop-filter"/utf8>>,
                            [{lit, <<""/utf8>>},
                                {lit, <<"none"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"backdrop-blur"/utf8>>,
            [{obj, [{<<"backdrop-blur"/utf8>>, scale_blur(Rx)}]}]},
        {<<"backdrop-brightness"/utf8>>,
            [{obj,
                    [{<<"backdrop-brightness"/utf8>>,
                            [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"backdrop-contrast"/utf8>>,
            [{obj,
                    [{<<"backdrop-contrast"/utf8>>,
                            [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"backdrop-grayscale"/utf8>>,
            [{obj,
                    [{<<"backdrop-grayscale"/utf8>>,
                            [{lit, <<""/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"backdrop-hue-rotate"/utf8>>,
            [{obj,
                    [{<<"backdrop-hue-rotate"/utf8>>,
                            [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"backdrop-invert"/utf8>>,
            [{obj,
                    [{<<"backdrop-invert"/utf8>>,
                            [{lit, <<""/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"backdrop-opacity"/utf8>>,
            [{obj,
                    [{<<"backdrop-opacity"/utf8>>,
                            [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"backdrop-saturate"/utf8>>,
            [{obj,
                    [{<<"backdrop-saturate"/utf8>>,
                            [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"backdrop-sepia"/utf8>>,
            [{obj,
                    [{<<"backdrop-sepia"/utf8>>,
                            [{lit, <<""/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 150).
?DOC(false).
-spec vasize(gg_cn@internal@validators:regexes()) -> class_def().
vasize(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_size(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 154).
?DOC(false).
-spec vavsize(gg_cn@internal@validators:regexes()) -> class_def().
vavsize(Rx) ->
    {val,
        fun(S) ->
            gg_cn@internal@validators:is_arbitrary_variable_size(Rx, S)
        end}.

-file("src/gg_cn/internal/config.gleam", 303).
?DOC(false).
-spec scale_bg_size(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_bg_size(Rx) ->
    [{lit, <<"auto"/utf8>>},
        {lit, <<"cover"/utf8>>},
        {lit, <<"contain"/utf8>>},
        vavsize(Rx),
        vasize(Rx),
        {obj, [{<<"size"/utf8>>, [vav(Rx), vaval(Rx)]}]}].

-file("src/gg_cn/internal/config.gleam", 299).
?DOC(false).
-spec scale_bg_repeat() -> list(class_def()).
scale_bg_repeat() ->
    [{lit, <<"no-repeat"/utf8>>},
        {obj,
            [{<<"repeat"/utf8>>,
                    lits(
                        [<<""/utf8>>,
                            <<"x"/utf8>>,
                            <<"y"/utf8>>,
                            <<"space"/utf8>>,
                            <<"round"/utf8>>]
                    )}]}].

-file("src/gg_cn/internal/config.gleam", 126).
?DOC(false).
-spec vapos(gg_cn@internal@validators:regexes()) -> class_def().
vapos(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_position(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 130).
?DOC(false).
-spec vavpos(gg_cn@internal@validators:regexes()) -> class_def().
vavpos(Rx) ->
    {val,
        fun(S) ->
            gg_cn@internal@validators:is_arbitrary_variable_position(Rx, S)
        end}.

-file("src/gg_cn/internal/config.gleam", 291).
?DOC(false).
-spec scale_bg_position(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_bg_position(Rx) ->
    lists:append(
        scale_position(),
        [vavpos(Rx),
            vapos(Rx),
            {obj, [{<<"position"/utf8>>, [vav(Rx), vaval(Rx)]}]}]
    ).

-file("src/gg_cn/internal/config.gleam", 78).
?DOC(false).
-spec vpct(gg_cn@internal@validators:regexes()) -> class_def().
vpct(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_percent(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 338).
?DOC(false).
-spec scale_mask_image_position(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_mask_image_position(Rx) ->
    [vnum(Rx), vpct(Rx), vavpos(Rx), vapos(Rx)].

-file("src/gg_cn/internal/config.gleam", 330).
?DOC(false).
-spec scale_blend_mode() -> list(class_def()).
scale_blend_mode() ->
    lits(
        [<<"normal"/utf8>>,
            <<"multiply"/utf8>>,
            <<"screen"/utf8>>,
            <<"overlay"/utf8>>,
            <<"darken"/utf8>>,
            <<"lighten"/utf8>>,
            <<"color-dodge"/utf8>>,
            <<"color-burn"/utf8>>,
            <<"hard-light"/utf8>>,
            <<"soft-light"/utf8>>,
            <<"difference"/utf8>>,
            <<"exclusion"/utf8>>,
            <<"hue"/utf8>>,
            <<"saturation"/utf8>>,
            <<"color"/utf8>>,
            <<"luminosity"/utf8>>]
    ).

-file("src/gg_cn/internal/config.gleam", 322).
?DOC(false).
-spec scale_border_width(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_border_width(Rx) ->
    [{lit, <<""/utf8>>}, vnum(Rx), vavlen(Rx), valen(Rx)].

-file("src/gg_cn/internal/config.gleam", 931).
?DOC(false).
-spec effects(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
effects(Rx) ->
    [{<<"shadow"/utf8>>,
            [{obj,
                    [{<<"shadow"/utf8>>,
                            [{lit, <<""/utf8>>},
                                {lit, <<"none"/utf8>>},
                                {theme, <<"shadow"/utf8>>},
                                vavshadow(Rx),
                                vashadow(Rx)]}]}]},
        {<<"shadow-color"/utf8>>,
            [{obj, [{<<"shadow"/utf8>>, scale_color(Rx)}]}]},
        {<<"inset-shadow"/utf8>>,
            [{obj,
                    [{<<"inset-shadow"/utf8>>,
                            [{lit, <<"none"/utf8>>},
                                {theme, <<"inset-shadow"/utf8>>},
                                vavshadow(Rx),
                                vashadow(Rx)]}]}]},
        {<<"inset-shadow-color"/utf8>>,
            [{obj, [{<<"inset-shadow"/utf8>>, scale_color(Rx)}]}]},
        {<<"ring-w"/utf8>>,
            [{obj, [{<<"ring"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"ring-w-inset"/utf8>>, lits([<<"ring-inset"/utf8>>])},
        {<<"ring-color"/utf8>>, [{obj, [{<<"ring"/utf8>>, scale_color(Rx)}]}]},
        {<<"ring-offset-w"/utf8>>,
            [{obj, [{<<"ring-offset"/utf8>>, [vnum(Rx), valen(Rx)]}]}]},
        {<<"ring-offset-color"/utf8>>,
            [{obj, [{<<"ring-offset"/utf8>>, scale_color(Rx)}]}]},
        {<<"inset-ring-w"/utf8>>,
            [{obj, [{<<"inset-ring"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"inset-ring-color"/utf8>>,
            [{obj, [{<<"inset-ring"/utf8>>, scale_color(Rx)}]}]},
        {<<"text-shadow"/utf8>>,
            [{obj,
                    [{<<"text-shadow"/utf8>>,
                            [{lit, <<"none"/utf8>>},
                                {theme, <<"text-shadow"/utf8>>},
                                vavshadow(Rx),
                                vashadow(Rx)]}]}]},
        {<<"text-shadow-color"/utf8>>,
            [{obj, [{<<"text-shadow"/utf8>>, scale_color(Rx)}]}]},
        {<<"opacity"/utf8>>,
            [{obj, [{<<"opacity"/utf8>>, [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"mix-blend"/utf8>>,
            [{obj,
                    [{<<"mix-blend"/utf8>>,
                            [{lit, <<"plus-darker"/utf8>>},
                                {lit, <<"plus-lighter"/utf8>>} |
                                scale_blend_mode()]}]}]},
        {<<"bg-blend"/utf8>>,
            [{obj, [{<<"bg-blend"/utf8>>, scale_blend_mode()}]}]},
        {<<"mask-clip"/utf8>>,
            [{obj,
                    [{<<"mask-clip"/utf8>>,
                            lits(
                                [<<"border"/utf8>>,
                                    <<"padding"/utf8>>,
                                    <<"content"/utf8>>,
                                    <<"fill"/utf8>>,
                                    <<"stroke"/utf8>>,
                                    <<"view"/utf8>>]
                            )}]},
                {lit, <<"mask-no-clip"/utf8>>}]},
        {<<"mask-composite"/utf8>>,
            [{obj,
                    [{<<"mask"/utf8>>,
                            lits(
                                [<<"add"/utf8>>,
                                    <<"subtract"/utf8>>,
                                    <<"intersect"/utf8>>,
                                    <<"exclude"/utf8>>]
                            )}]}]},
        {<<"mask-image-linear-pos"/utf8>>,
            [{obj, [{<<"mask-linear"/utf8>>, [vnum(Rx)]}]}]},
        {<<"mask-image-linear-from-pos"/utf8>>,
            [{obj,
                    [{<<"mask-linear-from"/utf8>>,
                            scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-linear-to-pos"/utf8>>,
            [{obj, [{<<"mask-linear-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-linear-from-color"/utf8>>,
            [{obj, [{<<"mask-linear-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-linear-to-color"/utf8>>,
            [{obj, [{<<"mask-linear-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-t-from-pos"/utf8>>,
            [{obj, [{<<"mask-t-from"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-t-to-pos"/utf8>>,
            [{obj, [{<<"mask-t-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-t-from-color"/utf8>>,
            [{obj, [{<<"mask-t-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-t-to-color"/utf8>>,
            [{obj, [{<<"mask-t-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-r-from-pos"/utf8>>,
            [{obj, [{<<"mask-r-from"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-r-to-pos"/utf8>>,
            [{obj, [{<<"mask-r-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-r-from-color"/utf8>>,
            [{obj, [{<<"mask-r-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-r-to-color"/utf8>>,
            [{obj, [{<<"mask-r-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-b-from-pos"/utf8>>,
            [{obj, [{<<"mask-b-from"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-b-to-pos"/utf8>>,
            [{obj, [{<<"mask-b-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-b-from-color"/utf8>>,
            [{obj, [{<<"mask-b-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-b-to-color"/utf8>>,
            [{obj, [{<<"mask-b-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-l-from-pos"/utf8>>,
            [{obj, [{<<"mask-l-from"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-l-to-pos"/utf8>>,
            [{obj, [{<<"mask-l-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-l-from-color"/utf8>>,
            [{obj, [{<<"mask-l-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-l-to-color"/utf8>>,
            [{obj, [{<<"mask-l-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-x-from-pos"/utf8>>,
            [{obj, [{<<"mask-x-from"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-x-to-pos"/utf8>>,
            [{obj, [{<<"mask-x-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-x-from-color"/utf8>>,
            [{obj, [{<<"mask-x-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-x-to-color"/utf8>>,
            [{obj, [{<<"mask-x-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-y-from-pos"/utf8>>,
            [{obj, [{<<"mask-y-from"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-y-to-pos"/utf8>>,
            [{obj, [{<<"mask-y-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-y-from-color"/utf8>>,
            [{obj, [{<<"mask-y-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-y-to-color"/utf8>>,
            [{obj, [{<<"mask-y-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-radial"/utf8>>,
            [{obj, [{<<"mask-radial"/utf8>>, [vav(Rx), vaval(Rx)]}]}]},
        {<<"mask-image-radial-from-pos"/utf8>>,
            [{obj,
                    [{<<"mask-radial-from"/utf8>>,
                            scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-radial-to-pos"/utf8>>,
            [{obj, [{<<"mask-radial-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-radial-from-color"/utf8>>,
            [{obj, [{<<"mask-radial-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-radial-to-color"/utf8>>,
            [{obj, [{<<"mask-radial-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-radial-shape"/utf8>>,
            [{obj,
                    [{<<"mask-radial"/utf8>>,
                            lits([<<"circle"/utf8>>, <<"ellipse"/utf8>>])}]}]},
        {<<"mask-image-radial-size"/utf8>>,
            [{obj,
                    [{<<"mask-radial"/utf8>>,
                            [{obj,
                                    [{<<"closest"/utf8>>,
                                            lits(
                                                [<<"side"/utf8>>,
                                                    <<"corner"/utf8>>]
                                            )},
                                        {<<"farthest"/utf8>>,
                                            lits(
                                                [<<"side"/utf8>>,
                                                    <<"corner"/utf8>>]
                                            )}]}]}]}]},
        {<<"mask-image-radial-pos"/utf8>>,
            [{obj, [{<<"mask-radial-at"/utf8>>, scale_position()}]}]},
        {<<"mask-image-conic-pos"/utf8>>,
            [{obj, [{<<"mask-conic"/utf8>>, [vnum(Rx)]}]}]},
        {<<"mask-image-conic-from-pos"/utf8>>,
            [{obj,
                    [{<<"mask-conic-from"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-conic-to-pos"/utf8>>,
            [{obj, [{<<"mask-conic-to"/utf8>>, scale_mask_image_position(Rx)}]}]},
        {<<"mask-image-conic-from-color"/utf8>>,
            [{obj, [{<<"mask-conic-from"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-image-conic-to-color"/utf8>>,
            [{obj, [{<<"mask-conic-to"/utf8>>, scale_color(Rx)}]}]},
        {<<"mask-mode"/utf8>>,
            [{obj,
                    [{<<"mask"/utf8>>,
                            lits(
                                [<<"alpha"/utf8>>,
                                    <<"luminance"/utf8>>,
                                    <<"match"/utf8>>]
                            )}]}]},
        {<<"mask-origin"/utf8>>,
            [{obj,
                    [{<<"mask-origin"/utf8>>,
                            lits(
                                [<<"border"/utf8>>,
                                    <<"padding"/utf8>>,
                                    <<"content"/utf8>>,
                                    <<"fill"/utf8>>,
                                    <<"stroke"/utf8>>,
                                    <<"view"/utf8>>]
                            )}]}]},
        {<<"mask-position"/utf8>>,
            [{obj, [{<<"mask"/utf8>>, scale_bg_position(Rx)}]}]},
        {<<"mask-repeat"/utf8>>,
            [{obj, [{<<"mask"/utf8>>, scale_bg_repeat()}]}]},
        {<<"mask-size"/utf8>>, [{obj, [{<<"mask"/utf8>>, scale_bg_size(Rx)}]}]},
        {<<"mask-type"/utf8>>,
            [{obj,
                    [{<<"mask-type"/utf8>>,
                            lits([<<"alpha"/utf8>>, <<"luminance"/utf8>>])}]}]},
        {<<"mask-image"/utf8>>,
            [{obj,
                    [{<<"mask"/utf8>>,
                            [{lit, <<"none"/utf8>>}, vav(Rx), vaval(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 326).
?DOC(false).
-spec scale_line_style() -> list(class_def()).
scale_line_style() ->
    lits(
        [<<"solid"/utf8>>,
            <<"dashed"/utf8>>,
            <<"dotted"/utf8>>,
            <<"double"/utf8>>]
    ).

-file("src/gg_cn/internal/config.gleam", 318).
?DOC(false).
-spec scale_radius(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_radius(Rx) ->
    [{lit, <<""/utf8>>},
        {lit, <<"none"/utf8>>},
        {lit, <<"full"/utf8>>},
        {theme, <<"radius"/utf8>>},
        vav(Rx),
        vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 868).
?DOC(false).
-spec borders(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
borders(Rx) ->
    [{<<"rounded"/utf8>>, [{obj, [{<<"rounded"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-s"/utf8>>,
            [{obj, [{<<"rounded-s"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-e"/utf8>>,
            [{obj, [{<<"rounded-e"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-t"/utf8>>,
            [{obj, [{<<"rounded-t"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-r"/utf8>>,
            [{obj, [{<<"rounded-r"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-b"/utf8>>,
            [{obj, [{<<"rounded-b"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-l"/utf8>>,
            [{obj, [{<<"rounded-l"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-ss"/utf8>>,
            [{obj, [{<<"rounded-ss"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-se"/utf8>>,
            [{obj, [{<<"rounded-se"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-ee"/utf8>>,
            [{obj, [{<<"rounded-ee"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-es"/utf8>>,
            [{obj, [{<<"rounded-es"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-tl"/utf8>>,
            [{obj, [{<<"rounded-tl"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-tr"/utf8>>,
            [{obj, [{<<"rounded-tr"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-br"/utf8>>,
            [{obj, [{<<"rounded-br"/utf8>>, scale_radius(Rx)}]}]},
        {<<"rounded-bl"/utf8>>,
            [{obj, [{<<"rounded-bl"/utf8>>, scale_radius(Rx)}]}]},
        {<<"border-w"/utf8>>,
            [{obj, [{<<"border"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-x"/utf8>>,
            [{obj, [{<<"border-x"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-y"/utf8>>,
            [{obj, [{<<"border-y"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-s"/utf8>>,
            [{obj, [{<<"border-s"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-e"/utf8>>,
            [{obj, [{<<"border-e"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-bs"/utf8>>,
            [{obj, [{<<"border-bs"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-be"/utf8>>,
            [{obj, [{<<"border-be"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-t"/utf8>>,
            [{obj, [{<<"border-t"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-r"/utf8>>,
            [{obj, [{<<"border-r"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-b"/utf8>>,
            [{obj, [{<<"border-b"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"border-w-l"/utf8>>,
            [{obj, [{<<"border-l"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"divide-x"/utf8>>,
            [{obj, [{<<"divide-x"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"divide-x-reverse"/utf8>>, lits([<<"divide-x-reverse"/utf8>>])},
        {<<"divide-y"/utf8>>,
            [{obj, [{<<"divide-y"/utf8>>, scale_border_width(Rx)}]}]},
        {<<"divide-y-reverse"/utf8>>, lits([<<"divide-y-reverse"/utf8>>])},
        {<<"border-style"/utf8>>,
            [{obj,
                    [{<<"border"/utf8>>,
                            [{lit, <<"hidden"/utf8>>},
                                {lit, <<"none"/utf8>>} |
                                scale_line_style()]}]}]},
        {<<"divide-style"/utf8>>,
            [{obj,
                    [{<<"divide"/utf8>>,
                            [{lit, <<"hidden"/utf8>>},
                                {lit, <<"none"/utf8>>} |
                                scale_line_style()]}]}]},
        {<<"border-color"/utf8>>,
            [{obj, [{<<"border"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-x"/utf8>>,
            [{obj, [{<<"border-x"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-y"/utf8>>,
            [{obj, [{<<"border-y"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-s"/utf8>>,
            [{obj, [{<<"border-s"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-e"/utf8>>,
            [{obj, [{<<"border-e"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-bs"/utf8>>,
            [{obj, [{<<"border-bs"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-be"/utf8>>,
            [{obj, [{<<"border-be"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-t"/utf8>>,
            [{obj, [{<<"border-t"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-r"/utf8>>,
            [{obj, [{<<"border-r"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-b"/utf8>>,
            [{obj, [{<<"border-b"/utf8>>, scale_color(Rx)}]}]},
        {<<"border-color-l"/utf8>>,
            [{obj, [{<<"border-l"/utf8>>, scale_color(Rx)}]}]},
        {<<"divide-color"/utf8>>,
            [{obj, [{<<"divide"/utf8>>, scale_color(Rx)}]}]},
        {<<"outline-style"/utf8>>,
            [{obj,
                    [{<<"outline"/utf8>>,
                            [{lit, <<"none"/utf8>>},
                                {lit, <<"hidden"/utf8>>} |
                                scale_line_style()]}]}]},
        {<<"outline-offset"/utf8>>,
            [{obj,
                    [{<<"outline-offset"/utf8>>, [vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"outline-w"/utf8>>,
            [{obj,
                    [{<<"outline"/utf8>>,
                            [{lit, <<""/utf8>>},
                                vnum(Rx),
                                vavlen(Rx),
                                valen(Rx)]}]}]},
        {<<"outline-color"/utf8>>,
            [{obj, [{<<"outline"/utf8>>, scale_color(Rx)}]}]}].

-file("src/gg_cn/internal/config.gleam", 314).
?DOC(false).
-spec scale_gradient_stop_position(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_gradient_stop_position(Rx) ->
    [vpct(Rx), vavlen(Rx), valen(Rx)].

-file("src/gg_cn/internal/config.gleam", 134).
?DOC(false).
-spec vaimg(gg_cn@internal@validators:regexes()) -> class_def().
vaimg(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_image(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 138).
?DOC(false).
-spec vavimg(gg_cn@internal@validators:regexes()) -> class_def().
vavimg(Rx) ->
    {val,
        fun(S) ->
            gg_cn@internal@validators:is_arbitrary_variable_image(Rx, S)
        end}.

-file("src/gg_cn/internal/config.gleam", 827).
?DOC(false).
-spec backgrounds(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
backgrounds(Rx) ->
    [{<<"bg-attachment"/utf8>>,
            [{obj,
                    [{<<"bg"/utf8>>,
                            lits(
                                [<<"fixed"/utf8>>,
                                    <<"local"/utf8>>,
                                    <<"scroll"/utf8>>]
                            )}]}]},
        {<<"bg-clip"/utf8>>,
            [{obj,
                    [{<<"bg-clip"/utf8>>,
                            lits(
                                [<<"border"/utf8>>,
                                    <<"padding"/utf8>>,
                                    <<"content"/utf8>>,
                                    <<"text"/utf8>>]
                            )}]}]},
        {<<"bg-origin"/utf8>>,
            [{obj,
                    [{<<"bg-origin"/utf8>>,
                            lits(
                                [<<"border"/utf8>>,
                                    <<"padding"/utf8>>,
                                    <<"content"/utf8>>]
                            )}]}]},
        {<<"bg-position"/utf8>>,
            [{obj, [{<<"bg"/utf8>>, scale_bg_position(Rx)}]}]},
        {<<"bg-repeat"/utf8>>, [{obj, [{<<"bg"/utf8>>, scale_bg_repeat()}]}]},
        {<<"bg-size"/utf8>>, [{obj, [{<<"bg"/utf8>>, scale_bg_size(Rx)}]}]},
        {<<"bg-image"/utf8>>,
            [{obj,
                    [{<<"bg"/utf8>>,
                            [{lit, <<"none"/utf8>>},
                                {obj,
                                    [{<<"linear"/utf8>>,
                                            [{obj,
                                                    [{<<"to"/utf8>>,
                                                            lits(
                                                                [<<"t"/utf8>>,
                                                                    <<"tr"/utf8>>,
                                                                    <<"r"/utf8>>,
                                                                    <<"br"/utf8>>,
                                                                    <<"b"/utf8>>,
                                                                    <<"bl"/utf8>>,
                                                                    <<"l"/utf8>>,
                                                                    <<"tl"/utf8>>]
                                                            )}]},
                                                vint(Rx),
                                                vav(Rx),
                                                vaval(Rx)]},
                                        {<<"radial"/utf8>>,
                                            [{lit, <<""/utf8>>},
                                                vav(Rx),
                                                vaval(Rx)]},
                                        {<<"conic"/utf8>>,
                                            [vint(Rx), vav(Rx), vaval(Rx)]}]},
                                vavimg(Rx),
                                vaimg(Rx)]}]}]},
        {<<"bg-color"/utf8>>, [{obj, [{<<"bg"/utf8>>, scale_color(Rx)}]}]},
        {<<"gradient-from-pos"/utf8>>,
            [{obj, [{<<"from"/utf8>>, scale_gradient_stop_position(Rx)}]}]},
        {<<"gradient-via-pos"/utf8>>,
            [{obj, [{<<"via"/utf8>>, scale_gradient_stop_position(Rx)}]}]},
        {<<"gradient-to-pos"/utf8>>,
            [{obj, [{<<"to"/utf8>>, scale_gradient_stop_position(Rx)}]}]},
        {<<"gradient-from"/utf8>>,
            [{obj, [{<<"from"/utf8>>, scale_color(Rx)}]}]},
        {<<"gradient-via"/utf8>>, [{obj, [{<<"via"/utf8>>, scale_color(Rx)}]}]},
        {<<"gradient-to"/utf8>>, [{obj, [{<<"to"/utf8>>, scale_color(Rx)}]}]}].

-file("src/gg_cn/internal/config.gleam", 118).
?DOC(false).
-spec vafam(gg_cn@internal@validators:regexes()) -> class_def().
vafam(Rx) ->
    {val,
        fun(S) -> gg_cn@internal@validators:is_arbitrary_family_name(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 122).
?DOC(false).
-spec vavfam(gg_cn@internal@validators:regexes()) -> class_def().
vavfam(Rx) ->
    {val,
        fun(S) ->
            gg_cn@internal@validators:is_arbitrary_variable_family_name(Rx, S)
        end}.

-file("src/gg_cn/internal/config.gleam", 110).
?DOC(false).
-spec vaweight(gg_cn@internal@validators:regexes()) -> class_def().
vaweight(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_arbitrary_weight(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 114).
?DOC(false).
-spec vavweight(gg_cn@internal@validators:regexes()) -> class_def().
vavweight(Rx) ->
    {val,
        fun(S) ->
            gg_cn@internal@validators:is_arbitrary_variable_weight(Rx, S)
        end}.

-file("src/gg_cn/internal/config.gleam", 700).
?DOC(false).
-spec typography(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
typography(Rx) ->
    [{<<"font-size"/utf8>>,
            [{obj,
                    [{<<"text"/utf8>>,
                            [{lit, <<"base"/utf8>>},
                                {theme, <<"text"/utf8>>},
                                vavlen(Rx),
                                valen(Rx)]}]}]},
        {<<"font-smoothing"/utf8>>,
            lits([<<"antialiased"/utf8>>, <<"subpixel-antialiased"/utf8>>])},
        {<<"font-style"/utf8>>,
            lits([<<"italic"/utf8>>, <<"not-italic"/utf8>>])},
        {<<"font-weight"/utf8>>,
            [{obj,
                    [{<<"font"/utf8>>,
                            [{theme, <<"font-weight"/utf8>>},
                                vavweight(Rx),
                                vaweight(Rx)]}]}]},
        {<<"font-stretch"/utf8>>,
            [{obj,
                    [{<<"font-stretch"/utf8>>,
                            [{lit, <<"ultra-condensed"/utf8>>},
                                {lit, <<"extra-condensed"/utf8>>},
                                {lit, <<"condensed"/utf8>>},
                                {lit, <<"semi-condensed"/utf8>>},
                                {lit, <<"normal"/utf8>>},
                                {lit, <<"semi-expanded"/utf8>>},
                                {lit, <<"expanded"/utf8>>},
                                {lit, <<"extra-expanded"/utf8>>},
                                {lit, <<"ultra-expanded"/utf8>>},
                                vpct(Rx),
                                vaval(Rx)]}]}]},
        {<<"font-family"/utf8>>,
            [{obj,
                    [{<<"font"/utf8>>,
                            [vavfam(Rx), vafam(Rx), {theme, <<"font"/utf8>>}]}]}]},
        {<<"font-features"/utf8>>,
            [{obj, [{<<"font-features"/utf8>>, [vaval(Rx)]}]}]},
        {<<"fvn-normal"/utf8>>, lits([<<"normal-nums"/utf8>>])},
        {<<"fvn-ordinal"/utf8>>, lits([<<"ordinal"/utf8>>])},
        {<<"fvn-slashed-zero"/utf8>>, lits([<<"slashed-zero"/utf8>>])},
        {<<"fvn-figure"/utf8>>,
            lits([<<"lining-nums"/utf8>>, <<"oldstyle-nums"/utf8>>])},
        {<<"fvn-spacing"/utf8>>,
            lits([<<"proportional-nums"/utf8>>, <<"tabular-nums"/utf8>>])},
        {<<"fvn-fraction"/utf8>>,
            lits([<<"diagonal-fractions"/utf8>>, <<"stacked-fractions"/utf8>>])},
        {<<"tracking"/utf8>>,
            [{obj,
                    [{<<"tracking"/utf8>>,
                            [{theme, <<"tracking"/utf8>>}, vav(Rx), vaval(Rx)]}]}]},
        {<<"line-clamp"/utf8>>,
            [{obj,
                    [{<<"line-clamp"/utf8>>,
                            [vnum(Rx),
                                {lit, <<"none"/utf8>>},
                                vav(Rx),
                                vanum(Rx)]}]}]},
        {<<"leading"/utf8>>,
            [{obj,
                    [{<<"leading"/utf8>>,
                            [{theme, <<"leading"/utf8>>} |
                                scale_unambiguous_spacing(Rx)]}]}]},
        {<<"list-image"/utf8>>,
            [{obj,
                    [{<<"list-image"/utf8>>,
                            [{lit, <<"none"/utf8>>}, vav(Rx), vaval(Rx)]}]}]},
        {<<"list-style-position"/utf8>>,
            [{obj,
                    [{<<"list"/utf8>>,
                            lits([<<"inside"/utf8>>, <<"outside"/utf8>>])}]}]},
        {<<"list-style-type"/utf8>>,
            [{obj,
                    [{<<"list"/utf8>>,
                            [{lit, <<"disc"/utf8>>},
                                {lit, <<"decimal"/utf8>>},
                                {lit, <<"none"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"text-alignment"/utf8>>,
            [{obj,
                    [{<<"text"/utf8>>,
                            lits(
                                [<<"left"/utf8>>,
                                    <<"center"/utf8>>,
                                    <<"right"/utf8>>,
                                    <<"justify"/utf8>>,
                                    <<"start"/utf8>>,
                                    <<"end"/utf8>>]
                            )}]}]},
        {<<"placeholder-color"/utf8>>,
            [{obj, [{<<"placeholder"/utf8>>, scale_color(Rx)}]}]},
        {<<"text-color"/utf8>>, [{obj, [{<<"text"/utf8>>, scale_color(Rx)}]}]},
        {<<"text-decoration"/utf8>>,
            lits(
                [<<"underline"/utf8>>,
                    <<"overline"/utf8>>,
                    <<"line-through"/utf8>>,
                    <<"no-underline"/utf8>>]
            )},
        {<<"text-decoration-style"/utf8>>,
            [{obj,
                    [{<<"decoration"/utf8>>,
                            [{lit, <<"wavy"/utf8>>} | scale_line_style()]}]}]},
        {<<"text-decoration-thickness"/utf8>>,
            [{obj,
                    [{<<"decoration"/utf8>>,
                            [vnum(Rx),
                                {lit, <<"from-font"/utf8>>},
                                {lit, <<"auto"/utf8>>},
                                vav(Rx),
                                valen(Rx)]}]}]},
        {<<"text-decoration-color"/utf8>>,
            [{obj, [{<<"decoration"/utf8>>, scale_color(Rx)}]}]},
        {<<"underline-offset"/utf8>>,
            [{obj,
                    [{<<"underline-offset"/utf8>>,
                            [vnum(Rx),
                                {lit, <<"auto"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"text-transform"/utf8>>,
            lits(
                [<<"uppercase"/utf8>>,
                    <<"lowercase"/utf8>>,
                    <<"capitalize"/utf8>>,
                    <<"normal-case"/utf8>>]
            )},
        {<<"text-overflow"/utf8>>,
            lits(
                [<<"truncate"/utf8>>,
                    <<"text-ellipsis"/utf8>>,
                    <<"text-clip"/utf8>>]
            )},
        {<<"text-wrap"/utf8>>,
            [{obj,
                    [{<<"text"/utf8>>,
                            lits(
                                [<<"wrap"/utf8>>,
                                    <<"nowrap"/utf8>>,
                                    <<"balance"/utf8>>,
                                    <<"pretty"/utf8>>]
                            )}]}]},
        {<<"indent"/utf8>>,
            [{obj, [{<<"indent"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"tab-size"/utf8>>,
            [{obj, [{<<"tab"/utf8>>, [vint(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"vertical-align"/utf8>>,
            [{obj,
                    [{<<"align"/utf8>>,
                            [{lit, <<"baseline"/utf8>>},
                                {lit, <<"top"/utf8>>},
                                {lit, <<"middle"/utf8>>},
                                {lit, <<"bottom"/utf8>>},
                                {lit, <<"text-top"/utf8>>},
                                {lit, <<"text-bottom"/utf8>>},
                                {lit, <<"sub"/utf8>>},
                                {lit, <<"super"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"whitespace"/utf8>>,
            [{obj,
                    [{<<"whitespace"/utf8>>,
                            lits(
                                [<<"normal"/utf8>>,
                                    <<"nowrap"/utf8>>,
                                    <<"pre"/utf8>>,
                                    <<"pre-line"/utf8>>,
                                    <<"pre-wrap"/utf8>>,
                                    <<"break-spaces"/utf8>>]
                            )}]}]},
        {<<"break"/utf8>>,
            [{obj,
                    [{<<"break"/utf8>>,
                            lits(
                                [<<"normal"/utf8>>,
                                    <<"words"/utf8>>,
                                    <<"all"/utf8>>,
                                    <<"keep"/utf8>>]
                            )}]}]},
        {<<"wrap"/utf8>>,
            [{obj,
                    [{<<"wrap"/utf8>>,
                            lits(
                                [<<"break-word"/utf8>>,
                                    <<"anywhere"/utf8>>,
                                    <<"normal"/utf8>>]
                            )}]}]},
        {<<"hyphens"/utf8>>,
            [{obj,
                    [{<<"hyphens"/utf8>>,
                            lits(
                                [<<"none"/utf8>>,
                                    <<"manual"/utf8>>,
                                    <<"auto"/utf8>>]
                            )}]}]},
        {<<"content"/utf8>>,
            [{obj,
                    [{<<"content"/utf8>>,
                            [{lit, <<"none"/utf8>>}, vav(Rx), vaval(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 232).
?DOC(false).
-spec scale_sizing(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_sizing(Rx) ->
    lists:append(
        [vfrac(Rx),
            {lit, <<"auto"/utf8>>},
            {lit, <<"full"/utf8>>},
            {lit, <<"dvw"/utf8>>},
            {lit, <<"dvh"/utf8>>},
            {lit, <<"lvw"/utf8>>},
            {lit, <<"lvh"/utf8>>},
            {lit, <<"svw"/utf8>>},
            {lit, <<"svh"/utf8>>},
            {lit, <<"min"/utf8>>},
            {lit, <<"max"/utf8>>},
            {lit, <<"fit"/utf8>>}],
        scale_unambiguous_spacing(Rx)
    ).

-file("src/gg_cn/internal/config.gleam", 269).
?DOC(false).
-spec scale_sizing_block(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_sizing_block(Rx) ->
    lists:append(
        [vfrac(Rx),
            {lit, <<"screen"/utf8>>},
            {lit, <<"full"/utf8>>},
            {lit, <<"lh"/utf8>>},
            {lit, <<"dvh"/utf8>>},
            {lit, <<"lvh"/utf8>>},
            {lit, <<"svh"/utf8>>},
            {lit, <<"min"/utf8>>},
            {lit, <<"max"/utf8>>},
            {lit, <<"fit"/utf8>>}],
        scale_unambiguous_spacing(Rx)
    ).

-file("src/gg_cn/internal/config.gleam", 252).
?DOC(false).
-spec scale_sizing_inline(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_sizing_inline(Rx) ->
    lists:append(
        [vfrac(Rx),
            {lit, <<"screen"/utf8>>},
            {lit, <<"full"/utf8>>},
            {lit, <<"dvw"/utf8>>},
            {lit, <<"lvw"/utf8>>},
            {lit, <<"svw"/utf8>>},
            {lit, <<"min"/utf8>>},
            {lit, <<"max"/utf8>>},
            {lit, <<"fit"/utf8>>}],
        scale_unambiguous_spacing(Rx)
    ).

-file("src/gg_cn/internal/config.gleam", 644).
?DOC(false).
-spec sizing(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
sizing(Rx) ->
    [{<<"size"/utf8>>, [{obj, [{<<"size"/utf8>>, scale_sizing(Rx)}]}]},
        {<<"inline-size"/utf8>>,
            [{obj,
                    [{<<"inline"/utf8>>,
                            [{lit, <<"auto"/utf8>>} | scale_sizing_inline(Rx)]}]}]},
        {<<"min-inline-size"/utf8>>,
            [{obj,
                    [{<<"min-inline"/utf8>>,
                            [{lit, <<"auto"/utf8>>} | scale_sizing_inline(Rx)]}]}]},
        {<<"max-inline-size"/utf8>>,
            [{obj,
                    [{<<"max-inline"/utf8>>,
                            [{lit, <<"none"/utf8>>} | scale_sizing_inline(Rx)]}]}]},
        {<<"block-size"/utf8>>,
            [{obj,
                    [{<<"block"/utf8>>,
                            [{lit, <<"auto"/utf8>>} | scale_sizing_block(Rx)]}]}]},
        {<<"min-block-size"/utf8>>,
            [{obj,
                    [{<<"min-block"/utf8>>,
                            [{lit, <<"auto"/utf8>>} | scale_sizing_block(Rx)]}]}]},
        {<<"max-block-size"/utf8>>,
            [{obj,
                    [{<<"max-block"/utf8>>,
                            [{lit, <<"none"/utf8>>} | scale_sizing_block(Rx)]}]}]},
        {<<"w"/utf8>>,
            [{obj,
                    [{<<"w"/utf8>>,
                            [{theme, <<"container"/utf8>>},
                                {lit, <<"screen"/utf8>>} |
                                scale_sizing(Rx)]}]}]},
        {<<"min-w"/utf8>>,
            [{obj,
                    [{<<"min-w"/utf8>>,
                            [{theme, <<"container"/utf8>>},
                                {lit, <<"screen"/utf8>>},
                                {lit, <<"none"/utf8>>} |
                                scale_sizing(Rx)]}]}]},
        {<<"max-w"/utf8>>,
            [{obj,
                    [{<<"max-w"/utf8>>,
                            [{theme, <<"container"/utf8>>},
                                {lit, <<"screen"/utf8>>},
                                {lit, <<"none"/utf8>>},
                                {lit, <<"prose"/utf8>>},
                                {obj,
                                    [{<<"screen"/utf8>>,
                                            [{theme, <<"breakpoint"/utf8>>}]}]} |
                                scale_sizing(Rx)]}]}]},
        {<<"h"/utf8>>,
            [{obj,
                    [{<<"h"/utf8>>,
                            [{lit, <<"screen"/utf8>>},
                                {lit, <<"lh"/utf8>>} |
                                scale_sizing(Rx)]}]}]},
        {<<"min-h"/utf8>>,
            [{obj,
                    [{<<"min-h"/utf8>>,
                            [{lit, <<"screen"/utf8>>},
                                {lit, <<"lh"/utf8>>},
                                {lit, <<"none"/utf8>>} |
                                scale_sizing(Rx)]}]}]},
        {<<"max-h"/utf8>>,
            [{obj,
                    [{<<"max-h"/utf8>>,
                            [{lit, <<"screen"/utf8>>},
                                {lit, <<"lh"/utf8>>} |
                                scale_sizing(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 228).
?DOC(false).
-spec scale_margin(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_margin(Rx) ->
    [{lit, <<"auto"/utf8>>} | scale_unambiguous_spacing(Rx)].

-file("src/gg_cn/internal/config.gleam", 613).
?DOC(false).
-spec spacing(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
spacing(Rx) ->
    [{<<"p"/utf8>>, [{obj, [{<<"p"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"px"/utf8>>,
            [{obj, [{<<"px"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"py"/utf8>>,
            [{obj, [{<<"py"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"ps"/utf8>>,
            [{obj, [{<<"ps"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"pe"/utf8>>,
            [{obj, [{<<"pe"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"pbs"/utf8>>,
            [{obj, [{<<"pbs"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"pbe"/utf8>>,
            [{obj, [{<<"pbe"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"pt"/utf8>>,
            [{obj, [{<<"pt"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"pr"/utf8>>,
            [{obj, [{<<"pr"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"pb"/utf8>>,
            [{obj, [{<<"pb"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"pl"/utf8>>,
            [{obj, [{<<"pl"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"m"/utf8>>, [{obj, [{<<"m"/utf8>>, scale_margin(Rx)}]}]},
        {<<"mx"/utf8>>, [{obj, [{<<"mx"/utf8>>, scale_margin(Rx)}]}]},
        {<<"my"/utf8>>, [{obj, [{<<"my"/utf8>>, scale_margin(Rx)}]}]},
        {<<"ms"/utf8>>, [{obj, [{<<"ms"/utf8>>, scale_margin(Rx)}]}]},
        {<<"me"/utf8>>, [{obj, [{<<"me"/utf8>>, scale_margin(Rx)}]}]},
        {<<"mbs"/utf8>>, [{obj, [{<<"mbs"/utf8>>, scale_margin(Rx)}]}]},
        {<<"mbe"/utf8>>, [{obj, [{<<"mbe"/utf8>>, scale_margin(Rx)}]}]},
        {<<"mt"/utf8>>, [{obj, [{<<"mt"/utf8>>, scale_margin(Rx)}]}]},
        {<<"mr"/utf8>>, [{obj, [{<<"mr"/utf8>>, scale_margin(Rx)}]}]},
        {<<"mb"/utf8>>, [{obj, [{<<"mb"/utf8>>, scale_margin(Rx)}]}]},
        {<<"ml"/utf8>>, [{obj, [{<<"ml"/utf8>>, scale_margin(Rx)}]}]},
        {<<"space-x"/utf8>>,
            [{obj, [{<<"space-x"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"space-x-reverse"/utf8>>, lits([<<"space-x-reverse"/utf8>>])},
        {<<"space-y"/utf8>>,
            [{obj, [{<<"space-y"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"space-y-reverse"/utf8>>, lits([<<"space-y-reverse"/utf8>>])}].

-file("src/gg_cn/internal/config.gleam", 224).
?DOC(false).
-spec scale_align_secondary_axis() -> list(class_def()).
scale_align_secondary_axis() ->
    lits(
        [<<"start"/utf8>>,
            <<"end"/utf8>>,
            <<"center"/utf8>>,
            <<"stretch"/utf8>>,
            <<"center-safe"/utf8>>,
            <<"end-safe"/utf8>>]
    ).

-file("src/gg_cn/internal/config.gleam", 217).
?DOC(false).
-spec scale_align_primary_axis() -> list(class_def()).
scale_align_primary_axis() ->
    lits(
        [<<"start"/utf8>>,
            <<"end"/utf8>>,
            <<"center"/utf8>>,
            <<"between"/utf8>>,
            <<"around"/utf8>>,
            <<"evenly"/utf8>>,
            <<"stretch"/utf8>>,
            <<"baseline"/utf8>>,
            <<"center-safe"/utf8>>,
            <<"end-safe"/utf8>>]
    ).

-file("src/gg_cn/internal/config.gleam", 213).
?DOC(false).
-spec scale_grid_auto_cols_rows(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_grid_auto_cols_rows(Rx) ->
    [{lit, <<"auto"/utf8>>},
        {lit, <<"min"/utf8>>},
        {lit, <<"max"/utf8>>},
        {lit, <<"fr"/utf8>>},
        vav(Rx),
        vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 209).
?DOC(false).
-spec scale_grid_col_row_start_or_end(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_grid_col_row_start_or_end(Rx) ->
    [vint(Rx), {lit, <<"auto"/utf8>>}, vav(Rx), vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 199).
?DOC(false).
-spec scale_grid_col_row_start_and_end(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_grid_col_row_start_and_end(Rx) ->
    [{lit, <<"auto"/utf8>>},
        {obj,
            [{<<"span"/utf8>>,
                    [{lit, <<"full"/utf8>>}, vint(Rx), vav(Rx), vaval(Rx)]}]},
        vint(Rx),
        vav(Rx),
        vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 195).
?DOC(false).
-spec scale_grid_template_cols_rows(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_grid_template_cols_rows(Rx) ->
    [vint(Rx),
        {lit, <<"none"/utf8>>},
        {lit, <<"subgrid"/utf8>>},
        vav(Rx),
        vaval(Rx)].

-file("src/gg_cn/internal/config.gleam", 510).
?DOC(false).
-spec flexbox_grid(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
flexbox_grid(Rx) ->
    [{<<"basis"/utf8>>,
            [{obj,
                    [{<<"basis"/utf8>>,
                            [vfrac(Rx),
                                {lit, <<"full"/utf8>>},
                                {lit, <<"auto"/utf8>>},
                                {theme, <<"container"/utf8>>} |
                                scale_unambiguous_spacing(Rx)]}]}]},
        {<<"flex-direction"/utf8>>,
            [{obj,
                    [{<<"flex"/utf8>>,
                            lits(
                                [<<"row"/utf8>>,
                                    <<"row-reverse"/utf8>>,
                                    <<"col"/utf8>>,
                                    <<"col-reverse"/utf8>>]
                            )}]}]},
        {<<"flex-wrap"/utf8>>,
            [{obj,
                    [{<<"flex"/utf8>>,
                            lits(
                                [<<"nowrap"/utf8>>,
                                    <<"wrap"/utf8>>,
                                    <<"wrap-reverse"/utf8>>]
                            )}]}]},
        {<<"flex"/utf8>>,
            [{obj,
                    [{<<"flex"/utf8>>,
                            [vnum(Rx),
                                vfrac(Rx),
                                {lit, <<"auto"/utf8>>},
                                {lit, <<"initial"/utf8>>},
                                {lit, <<"none"/utf8>>},
                                vaval(Rx)]}]}]},
        {<<"grow"/utf8>>,
            [{obj,
                    [{<<"grow"/utf8>>,
                            [{lit, <<""/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"shrink"/utf8>>,
            [{obj,
                    [{<<"shrink"/utf8>>,
                            [{lit, <<""/utf8>>}, vnum(Rx), vav(Rx), vaval(Rx)]}]}]},
        {<<"order"/utf8>>,
            [{obj,
                    [{<<"order"/utf8>>,
                            [vint(Rx),
                                {lit, <<"first"/utf8>>},
                                {lit, <<"last"/utf8>>},
                                {lit, <<"none"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"grid-cols"/utf8>>,
            [{obj, [{<<"grid-cols"/utf8>>, scale_grid_template_cols_rows(Rx)}]}]},
        {<<"col-start-end"/utf8>>,
            [{obj, [{<<"col"/utf8>>, scale_grid_col_row_start_and_end(Rx)}]}]},
        {<<"col-start"/utf8>>,
            [{obj,
                    [{<<"col-start"/utf8>>, scale_grid_col_row_start_or_end(Rx)}]}]},
        {<<"col-end"/utf8>>,
            [{obj, [{<<"col-end"/utf8>>, scale_grid_col_row_start_or_end(Rx)}]}]},
        {<<"grid-rows"/utf8>>,
            [{obj, [{<<"grid-rows"/utf8>>, scale_grid_template_cols_rows(Rx)}]}]},
        {<<"row-start-end"/utf8>>,
            [{obj, [{<<"row"/utf8>>, scale_grid_col_row_start_and_end(Rx)}]}]},
        {<<"row-start"/utf8>>,
            [{obj,
                    [{<<"row-start"/utf8>>, scale_grid_col_row_start_or_end(Rx)}]}]},
        {<<"row-end"/utf8>>,
            [{obj, [{<<"row-end"/utf8>>, scale_grid_col_row_start_or_end(Rx)}]}]},
        {<<"grid-flow"/utf8>>,
            [{obj,
                    [{<<"grid-flow"/utf8>>,
                            lits(
                                [<<"row"/utf8>>,
                                    <<"col"/utf8>>,
                                    <<"dense"/utf8>>,
                                    <<"row-dense"/utf8>>,
                                    <<"col-dense"/utf8>>]
                            )}]}]},
        {<<"auto-cols"/utf8>>,
            [{obj, [{<<"auto-cols"/utf8>>, scale_grid_auto_cols_rows(Rx)}]}]},
        {<<"auto-rows"/utf8>>,
            [{obj, [{<<"auto-rows"/utf8>>, scale_grid_auto_cols_rows(Rx)}]}]},
        {<<"gap"/utf8>>,
            [{obj, [{<<"gap"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"gap-x"/utf8>>,
            [{obj, [{<<"gap-x"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"gap-y"/utf8>>,
            [{obj, [{<<"gap-y"/utf8>>, scale_unambiguous_spacing(Rx)}]}]},
        {<<"justify-content"/utf8>>,
            [{obj,
                    [{<<"justify"/utf8>>,
                            [{lit, <<"normal"/utf8>>} |
                                scale_align_primary_axis()]}]}]},
        {<<"justify-items"/utf8>>,
            [{obj,
                    [{<<"justify-items"/utf8>>,
                            [{lit, <<"normal"/utf8>>} |
                                scale_align_secondary_axis()]}]}]},
        {<<"justify-self"/utf8>>,
            [{obj,
                    [{<<"justify-self"/utf8>>,
                            [{lit, <<"auto"/utf8>>} |
                                scale_align_secondary_axis()]}]}]},
        {<<"align-content"/utf8>>,
            [{obj,
                    [{<<"content"/utf8>>,
                            [{lit, <<"normal"/utf8>>} |
                                scale_align_primary_axis()]}]}]},
        {<<"align-items"/utf8>>,
            [{obj,
                    [{<<"items"/utf8>>,
                            lists:append(
                                scale_align_secondary_axis(),
                                [{obj,
                                        [{<<"baseline"/utf8>>,
                                                [{lit, <<""/utf8>>},
                                                    {lit, <<"last"/utf8>>}]}]}]
                            )}]}]},
        {<<"align-self"/utf8>>,
            [{obj,
                    [{<<"self"/utf8>>,
                            lists:append(
                                [{lit, <<"auto"/utf8>>} |
                                    scale_align_secondary_axis()],
                                [{obj,
                                        [{<<"baseline"/utf8>>,
                                                [{lit, <<""/utf8>>},
                                                    {lit, <<"last"/utf8>>}]}]}]
                            )}]}]},
        {<<"place-content"/utf8>>,
            [{obj, [{<<"place-content"/utf8>>, scale_align_primary_axis()}]}]},
        {<<"place-items"/utf8>>,
            [{obj,
                    [{<<"place-items"/utf8>>,
                            [{lit, <<"baseline"/utf8>>} |
                                scale_align_secondary_axis()]}]}]},
        {<<"place-self"/utf8>>,
            [{obj,
                    [{<<"place-self"/utf8>>,
                            [{lit, <<"auto"/utf8>>} |
                                scale_align_secondary_axis()]}]}]}].

-file("src/gg_cn/internal/config.gleam", 188).
?DOC(false).
-spec scale_inset(gg_cn@internal@validators:regexes()) -> list(class_def()).
scale_inset(Rx) ->
    lists:append(
        [vfrac(Rx), {lit, <<"full"/utf8>>}, {lit, <<"auto"/utf8>>}],
        scale_unambiguous_spacing(Rx)
    ).

-file("src/gg_cn/internal/config.gleam", 180).
?DOC(false).
-spec scale_overscroll() -> list(class_def()).
scale_overscroll() ->
    lits([<<"auto"/utf8>>, <<"contain"/utf8>>, <<"none"/utf8>>]).

-file("src/gg_cn/internal/config.gleam", 176).
?DOC(false).
-spec scale_overflow() -> list(class_def()).
scale_overflow() ->
    lits(
        [<<"auto"/utf8>>,
            <<"hidden"/utf8>>,
            <<"clip"/utf8>>,
            <<"visible"/utf8>>,
            <<"scroll"/utf8>>]
    ).

-file("src/gg_cn/internal/config.gleam", 160).
?DOC(false).
-spec scale_break() -> list(class_def()).
scale_break() ->
    lits(
        [<<"auto"/utf8>>,
            <<"avoid"/utf8>>,
            <<"all"/utf8>>,
            <<"avoid-page"/utf8>>,
            <<"page"/utf8>>,
            <<"left"/utf8>>,
            <<"right"/utf8>>,
            <<"column"/utf8>>]
    ).

-file("src/gg_cn/internal/config.gleam", 94).
?DOC(false).
-spec vnamedcq() -> class_def().
vnamedcq() ->
    {val, fun gg_cn@internal@validators:is_named_container_query/1}.

-file("src/gg_cn/internal/config.gleam", 422).
?DOC(false).
-spec layout(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
layout(Rx) ->
    [{<<"aspect"/utf8>>,
            [{obj,
                    [{<<"aspect"/utf8>>,
                            [{lit, <<"auto"/utf8>>},
                                {lit, <<"square"/utf8>>},
                                vfrac(Rx),
                                vaval(Rx),
                                vav(Rx),
                                {theme, <<"aspect"/utf8>>}]}]}]},
        {<<"container"/utf8>>, lits([<<"container"/utf8>>])},
        {<<"container-type"/utf8>>,
            [{obj,
                    [{<<"@container"/utf8>>,
                            [{lit, <<""/utf8>>},
                                {lit, <<"normal"/utf8>>},
                                {lit, <<"size"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]},
        {<<"container-named"/utf8>>, [vnamedcq()]},
        {<<"columns"/utf8>>,
            [{obj,
                    [{<<"columns"/utf8>>,
                            [vnum(Rx),
                                vaval(Rx),
                                vav(Rx),
                                {theme, <<"container"/utf8>>}]}]}]},
        {<<"break-after"/utf8>>,
            [{obj, [{<<"break-after"/utf8>>, scale_break()}]}]},
        {<<"break-before"/utf8>>,
            [{obj, [{<<"break-before"/utf8>>, scale_break()}]}]},
        {<<"break-inside"/utf8>>,
            [{obj,
                    [{<<"break-inside"/utf8>>,
                            lits(
                                [<<"auto"/utf8>>,
                                    <<"avoid"/utf8>>,
                                    <<"avoid-page"/utf8>>,
                                    <<"avoid-column"/utf8>>]
                            )}]}]},
        {<<"box-decoration"/utf8>>,
            [{obj,
                    [{<<"box-decoration"/utf8>>,
                            lits([<<"slice"/utf8>>, <<"clone"/utf8>>])}]}]},
        {<<"box"/utf8>>,
            [{obj,
                    [{<<"box"/utf8>>,
                            lits([<<"border"/utf8>>, <<"content"/utf8>>])}]}]},
        {<<"display"/utf8>>,
            lits(
                [<<"block"/utf8>>,
                    <<"inline-block"/utf8>>,
                    <<"inline"/utf8>>,
                    <<"flex"/utf8>>,
                    <<"inline-flex"/utf8>>,
                    <<"table"/utf8>>,
                    <<"inline-table"/utf8>>,
                    <<"table-caption"/utf8>>,
                    <<"table-cell"/utf8>>,
                    <<"table-column"/utf8>>,
                    <<"table-column-group"/utf8>>,
                    <<"table-footer-group"/utf8>>,
                    <<"table-header-group"/utf8>>,
                    <<"table-row-group"/utf8>>,
                    <<"table-row"/utf8>>,
                    <<"flow-root"/utf8>>,
                    <<"grid"/utf8>>,
                    <<"inline-grid"/utf8>>,
                    <<"contents"/utf8>>,
                    <<"list-item"/utf8>>,
                    <<"hidden"/utf8>>]
            )},
        {<<"sr"/utf8>>, lits([<<"sr-only"/utf8>>, <<"not-sr-only"/utf8>>])},
        {<<"float"/utf8>>,
            [{obj,
                    [{<<"float"/utf8>>,
                            lits(
                                [<<"right"/utf8>>,
                                    <<"left"/utf8>>,
                                    <<"none"/utf8>>,
                                    <<"start"/utf8>>,
                                    <<"end"/utf8>>]
                            )}]}]},
        {<<"clear"/utf8>>,
            [{obj,
                    [{<<"clear"/utf8>>,
                            lits(
                                [<<"left"/utf8>>,
                                    <<"right"/utf8>>,
                                    <<"both"/utf8>>,
                                    <<"none"/utf8>>,
                                    <<"start"/utf8>>,
                                    <<"end"/utf8>>]
                            )}]}]},
        {<<"isolation"/utf8>>,
            lits([<<"isolate"/utf8>>, <<"isolation-auto"/utf8>>])},
        {<<"object-fit"/utf8>>,
            [{obj,
                    [{<<"object"/utf8>>,
                            lits(
                                [<<"contain"/utf8>>,
                                    <<"cover"/utf8>>,
                                    <<"fill"/utf8>>,
                                    <<"none"/utf8>>,
                                    <<"scale-down"/utf8>>]
                            )}]}]},
        {<<"object-position"/utf8>>,
            [{obj, [{<<"object"/utf8>>, scale_position_with_arbitrary(Rx)}]}]},
        {<<"overflow"/utf8>>,
            [{obj, [{<<"overflow"/utf8>>, scale_overflow()}]}]},
        {<<"overflow-x"/utf8>>,
            [{obj, [{<<"overflow-x"/utf8>>, scale_overflow()}]}]},
        {<<"overflow-y"/utf8>>,
            [{obj, [{<<"overflow-y"/utf8>>, scale_overflow()}]}]},
        {<<"overscroll"/utf8>>,
            [{obj, [{<<"overscroll"/utf8>>, scale_overscroll()}]}]},
        {<<"overscroll-x"/utf8>>,
            [{obj, [{<<"overscroll-x"/utf8>>, scale_overscroll()}]}]},
        {<<"overscroll-y"/utf8>>,
            [{obj, [{<<"overscroll-y"/utf8>>, scale_overscroll()}]}]},
        {<<"position"/utf8>>,
            lits(
                [<<"static"/utf8>>,
                    <<"fixed"/utf8>>,
                    <<"absolute"/utf8>>,
                    <<"relative"/utf8>>,
                    <<"sticky"/utf8>>]
            )},
        {<<"inset"/utf8>>, [{obj, [{<<"inset"/utf8>>, scale_inset(Rx)}]}]},
        {<<"inset-x"/utf8>>, [{obj, [{<<"inset-x"/utf8>>, scale_inset(Rx)}]}]},
        {<<"inset-y"/utf8>>, [{obj, [{<<"inset-y"/utf8>>, scale_inset(Rx)}]}]},
        {<<"start"/utf8>>,
            [{obj,
                    [{<<"inset-s"/utf8>>, scale_inset(Rx)},
                        {<<"start"/utf8>>, scale_inset(Rx)}]}]},
        {<<"end"/utf8>>,
            [{obj,
                    [{<<"inset-e"/utf8>>, scale_inset(Rx)},
                        {<<"end"/utf8>>, scale_inset(Rx)}]}]},
        {<<"inset-bs"/utf8>>, [{obj, [{<<"inset-bs"/utf8>>, scale_inset(Rx)}]}]},
        {<<"inset-be"/utf8>>, [{obj, [{<<"inset-be"/utf8>>, scale_inset(Rx)}]}]},
        {<<"top"/utf8>>, [{obj, [{<<"top"/utf8>>, scale_inset(Rx)}]}]},
        {<<"right"/utf8>>, [{obj, [{<<"right"/utf8>>, scale_inset(Rx)}]}]},
        {<<"bottom"/utf8>>, [{obj, [{<<"bottom"/utf8>>, scale_inset(Rx)}]}]},
        {<<"left"/utf8>>, [{obj, [{<<"left"/utf8>>, scale_inset(Rx)}]}]},
        {<<"visibility"/utf8>>,
            lits(
                [<<"visible"/utf8>>, <<"invisible"/utf8>>, <<"collapse"/utf8>>]
            )},
        {<<"z"/utf8>>,
            [{obj,
                    [{<<"z"/utf8>>,
                            [vint(Rx),
                                {lit, <<"auto"/utf8>>},
                                vav(Rx),
                                vaval(Rx)]}]}]}].

-file("src/gg_cn/internal/config.gleam", 402).
?DOC(false).
-spec default_class_groups(gg_cn@internal@validators:regexes()) -> list({binary(),
    list(class_def())}).
default_class_groups(Rx) ->
    lists:append(
        [layout(Rx),
            flexbox_grid(Rx),
            spacing(Rx),
            sizing(Rx),
            typography(Rx),
            backgrounds(Rx),
            borders(Rx),
            effects(Rx),
            filters(Rx),
            tables(Rx),
            transitions(Rx),
            transforms(Rx),
            interactivity(Rx),
            svg(Rx),
            accessibility()]
    ).

-file("src/gg_cn/internal/config.gleam", 82).
?DOC(false).
-spec vtshirt(gg_cn@internal@validators:regexes()) -> class_def().
vtshirt(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_tshirt_size(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 90).
?DOC(false).
-spec vanynon(gg_cn@internal@validators:regexes()) -> class_def().
vanynon(Rx) ->
    {val, fun(S) -> gg_cn@internal@validators:is_any_non_arbitrary(Rx, S) end}.

-file("src/gg_cn/internal/config.gleam", 86).
?DOC(false).
-spec vany() -> class_def().
vany() ->
    {val, fun gg_cn@internal@validators:is_any/1}.

-file("src/gg_cn/internal/config.gleam", 364).
?DOC(false).
-spec default_theme(gg_cn@internal@validators:regexes()) -> gleam@dict:dict(binary(), list(class_def())).
default_theme(Rx) ->
    maps:from_list(
        [{<<"animate"/utf8>>,
                lits(
                    [<<"spin"/utf8>>,
                        <<"ping"/utf8>>,
                        <<"pulse"/utf8>>,
                        <<"bounce"/utf8>>]
                )},
            {<<"aspect"/utf8>>, lits([<<"video"/utf8>>])},
            {<<"blur"/utf8>>, [vtshirt(Rx)]},
            {<<"breakpoint"/utf8>>, [vtshirt(Rx)]},
            {<<"color"/utf8>>, [vany()]},
            {<<"container"/utf8>>, [vtshirt(Rx)]},
            {<<"drop-shadow"/utf8>>, [vtshirt(Rx)]},
            {<<"ease"/utf8>>,
                lits([<<"in"/utf8>>, <<"out"/utf8>>, <<"in-out"/utf8>>])},
            {<<"font"/utf8>>, [vanynon(Rx)]},
            {<<"font-weight"/utf8>>,
                lits(
                    [<<"thin"/utf8>>,
                        <<"extralight"/utf8>>,
                        <<"light"/utf8>>,
                        <<"normal"/utf8>>,
                        <<"medium"/utf8>>,
                        <<"semibold"/utf8>>,
                        <<"bold"/utf8>>,
                        <<"extrabold"/utf8>>,
                        <<"black"/utf8>>]
                )},
            {<<"inset-shadow"/utf8>>, [vtshirt(Rx)]},
            {<<"leading"/utf8>>,
                lits(
                    [<<"none"/utf8>>,
                        <<"tight"/utf8>>,
                        <<"snug"/utf8>>,
                        <<"normal"/utf8>>,
                        <<"relaxed"/utf8>>,
                        <<"loose"/utf8>>]
                )},
            {<<"perspective"/utf8>>,
                lits(
                    [<<"dramatic"/utf8>>,
                        <<"near"/utf8>>,
                        <<"normal"/utf8>>,
                        <<"midrange"/utf8>>,
                        <<"distant"/utf8>>,
                        <<"none"/utf8>>]
                )},
            {<<"radius"/utf8>>, [vtshirt(Rx)]},
            {<<"shadow"/utf8>>, [vtshirt(Rx)]},
            {<<"spacing"/utf8>>, [{lit, <<"px"/utf8>>}, vnum(Rx)]},
            {<<"text"/utf8>>, [vtshirt(Rx)]},
            {<<"text-shadow"/utf8>>, [vtshirt(Rx)]},
            {<<"tracking"/utf8>>,
                lits(
                    [<<"tighter"/utf8>>,
                        <<"tight"/utf8>>,
                        <<"normal"/utf8>>,
                        <<"wide"/utf8>>,
                        <<"wider"/utf8>>,
                        <<"widest"/utf8>>]
                )}]
    ).

-file("src/gg_cn/internal/config.gleam", 36).
?DOC(false).
-spec default_config(gg_cn@internal@validators:regexes()) -> config().
default_config(Rx) ->
    {config,
        default_theme(Rx),
        default_class_groups(Rx),
        maps:from_list(conflicting_class_groups()),
        maps:from_list([{<<"font-size"/utf8>>, [<<"leading"/utf8>>]}]),
        [<<"container-type"/utf8>>],
        [<<"*"/utf8>>,
            <<"**"/utf8>>,
            <<"after"/utf8>>,
            <<"backdrop"/utf8>>,
            <<"before"/utf8>>,
            <<"details-content"/utf8>>,
            <<"file"/utf8>>,
            <<"first-letter"/utf8>>,
            <<"first-line"/utf8>>,
            <<"marker"/utf8>>,
            <<"placeholder"/utf8>>,
            <<"selection"/utf8>>]}.