@use '../../../../utils/map' as *;
@use '../../../../typography/functions' as *;

////
/// @package theming
/// @group schemas
/// @access public
////

/// Generates a base light pagination schema.
/// @type {Map}
/// @prop {Map} text-color [color: ('gray', 800)] - The text color.
/// @prop {Map} background-color [color: ('gray', 100)] - The background color of the paging panel.
/// @prop {Map} border-color [color: ('gray', 200)] - The border color of the paging panel.
/// @prop {List} size [(rem(44px), rem(48px), rem(56px))] - The size used for the paginator.
$light-pagination: (
    text-color: (
        color: (
            'gray',
            800,
        ),
    ),

    background-color: (
        color: (
            'gray',
            100,
        ),
    ),

    border-color: (
        color: (
            'gray',
            200,
        ),
    ),

    size: (
        sizable: (
            rem(44px),
            rem(48px),
            rem(56px),
        ),
    ),
);

/// Generates a material pagination schema.
/// @type {Map}
/// @requires {Map} $light-pagination
$material-pagination: extend(
    $light-pagination,
    (
        _meta: (
            theme: 'material',
            variant: 'light',
        ),
    )
);

/// Generates a fluent pagination schema.
/// @type {Map}
/// @prop {Map} background-color [color: 'surface'] - The background color of the paging panel.
/// @prop {Map} border-color [color: ('gray', 100)] - The border color of the paging panel.
/// @requires {Map} $light-pagination
$fluent-pagination: extend(
    $light-pagination,
    (
        background-color: (
            color: 'surface',
        ),

        border-color: (
            color: (
                'gray',
                100,
            ),
        ),
        _meta: (
            theme: 'fluent',
            variant: 'light',
        ),
    )
);

/// Generates a bootstrap pagination schema.
/// @type {Map}
/// @prop {Map} background-color [color: ('gray', 50)] - The background color of the paging panel.
/// @requires {Map} $light-pagination
$bootstrap-pagination: extend(
    $light-pagination,
    (
        background-color: (
            color: (
                'gray',
                50,
            ),
        ),
        _meta: (
            theme: 'bootstrap',
            variant: 'light',
        ),
    )
);

/// Generates an indigo pagination schema.
/// @type {Map}
/// @prop {Map} background-color [color: ('surface', 500)] - The background color of the paging panel.
/// @prop {Map} border-color [color: ('gray', 400)] - The border color of the paging panel.
/// @requires {Map} $light-pagination
$indigo-pagination: extend(
    $light-pagination,
    (
        background-color: (
            color: (
                'surface',
                500,
            ),
        ),

        border-color: (
            color: (
                'gray',
                400,
            ),
        ),
        _meta: (
            theme: 'indigo',
            variant: 'light',
        ),
    )
);
