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

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

/// Generates a light grid-toolbar schema.
/// @type Map
/// @prop {Map} background [color: ('gray', 50)] - The toolbar background color.
/// @prop {Map} title-text-color [color: ('gray', 700)] - The toolbar title text color.
/// @prop {Map} dropdown-background [color: ('surface')] - The toolbar drop-down background color.
/// @prop {Map} item-text-color [color: ('gray', 600)] - The toolbar drop-down item text color.
/// @prop {Map} item-hover-background [color: ('gray', 100)] - The toolbar drop-down item hover background color.
/// @prop {Map} item-hover-text-color [color: ('gray', 600)] - The toolbar drop-down item hover text color.
/// @prop {Map} item-focus-background [color: ('gray', 100)] - The toolbar drop-down item focus background color.
/// @prop {Map} item-focus-text-color [color: ('gray', 600)] - The toolbar drop-down item focus text color.
/// @prop {List} size [(rem(44px), rem(52px), rem(58px))] - The size used for the grid toolbar min-height.
/// @prop {Map} border-color [color: ('gray', 300)] - The toolbar border-bottom color.
$light-grid-toolbar: (
    background: (
        color: (
            'gray',
            50,
        ),
    ),

    title-text-color: (
        color: (
            'gray',
            700,
        ),
    ),

    dropdown-background: (
        color: (
            'surface',
        ),
    ),

    item-text-color: (
        color: (
            'gray',
            600,
        ),
    ),

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

    item-hover-text-color: (
        color: (
            'gray',
            600,
        ),
    ),

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

    item-focus-text-color: (
        color: (
            'gray',
            600,
        ),
    ),

    size: (
        sizable: (
            rem(44px),
            rem(52px),
            rem(58px),
        ),
    ),

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

    _meta: (
        name: 'grid-toolbar',
        variant: 'light',
    ),
);

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

/// Generates a fluent grid-toolbar schema.
/// @type Map
/// @prop {Map} background [color: 'surface'] - The toolbar background color.
/// @requires $light-grid-toolbar
$fluent-grid-toolbar: extend(
    $light-grid-toolbar,
    (
        background: (
            color: 'surface',
        ),

        _meta: (
            theme: 'fluent',
        ),
    )
);

/// Generates a bootstrap grid-toolbar schema.
/// @type Map
/// @prop {Map} border-color [color: ('gray', 100)] - The toolbar border-bottom color.
/// @requires $light-grid-toolbar
$bootstrap-grid-toolbar: extend(
    $light-grid-toolbar,
    (
        border-color: (
            color: (
                'gray',
                100,
            ),
        ),

        _meta: (
            theme: 'bootstrap',
        ),
    )
);

/// Generates an indigo grid-toolbar schema.
/// @type Map
/// @prop {Color} background [color: ('surface', 500)] - The toolbar background color.
/// @prop {Map} border-color [color: ('gray', 400)] - The toolbar border-bottom color.
/// @requires $light-grid-toolbar
$indigo-grid-toolbar: extend(
    $light-grid-toolbar,
    (
        background: (
            color: (
                'surface',
                500,
            ),
        ),

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

        _meta: (
            theme: 'indigo',
        ),
    )
);
