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

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

/// Generates a base light pagination schema.
/// @type Map
/// @prop {Map} foreground [color: ('gray', 800)] - The text color.
/// @prop {Map} background [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: (
    foreground: (
        color: (
            'gray',
            800,
        ),
    ),

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

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

    size: (
        sizable: (
            rem(44px),
            rem(48px),
            rem(56px),
        ),
    ),
    _meta: (
        name: 'paginator',
        variant: 'light',
    ),
);

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

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

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

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

/// Generates an indigo pagination schema.
/// @type Map
/// @prop {Map} background [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 $light-pagination
$indigo-pagination: extend(
    $light-pagination,
    (
        background: (
            color: (
                'surface',
                500,
            ),
        ),

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