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

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

/// Generates a light grid-summary schema.
/// @type Map
/// @prop {Map} background-color [color: ('gray', 300)] - The summaries background color.
/// @prop {Map} label-color [color: ('primary', 500)] - The summaries label color.
/// @prop {Map} label-hover-color [color: ('primary', 700)] - The summaries hover label color.
/// @prop {Map} result-color [contrast-color: ('gray', 300)] - The summaries value/result color.
/// @prop {String} border-width [1px] - The summaries column border width.
/// @prop {String} border-style [solid] - The summaries column border style.
/// @prop {Color} border-color [transparent] - The summaries column border color.
/// @prop {String} pinned-border-width [2px] - The border width of the summary panel.
/// @prop {String} pinned-border-style [solid] - The border style of the summary panel.
/// @prop {Map} pinned-border-color [color: ('gray', 400)] - The border color of the summary panel.
$light-grid-summary: (
    background-color: (
        color: (
            'gray',
            300,
        ),
    ),

    label-color: (
        color: (
            'primary',
            500,
        ),
    ),

    label-hover-color: (
        color: (
            'primary',
            700,
        ),
    ),

    result-color: (
        contrast-color: (
            'gray',
            300,
        ),
    ),

    border-width: 1px,
    border-style: solid,
    border-color: transparent,

    pinned-border-width: 2px,
    pinned-border-style: solid,
    pinned-border-color: (
        color: (
            'gray',
            400,
        ),
    ),

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

/// Generates a material grid-summary schema.
/// @type Map
/// @prop {Map} label-color [color: ('primary', 900)] - The summaries label color.
/// @prop {Map} label-hover-color [color: ('primary', 900)] - The summaries hover label color.
/// @requires $light-grid-summary
$material-grid-summary: extend(
    $light-grid-summary,
    (
        label-color: (
            color: (
                'primary',
                900,
            ),
        ),
        label-hover-color: (
            color: (
                'primary',
                900,
            ),
        ),
        _meta: (
            theme: 'material',
        ),
    )
);

/// Generates a fluent grid-summary schema.
/// @type Map
/// @prop {Map} label-color [color: ('primary', 600)] - The summaries label color.
/// @prop {Map} background-color [color: ('surface')] - The summaries background color.
/// @prop {Map} border-color [color: ('gray', 100)] - The summaries border color.
/// @prop {Map} result-color [contrast-color: ('surface')] - The summaries value/result color.
/// @prop {Map} pinned-border-color [color: ('gray', 300)] - The border color of the summary panel.
/// @requires $light-grid-summary
$fluent-grid-summary: extend(
    $light-grid-summary,
    (
        label-color: (
            color: (
                'primary',
                600,
            ),
        ),

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

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

        result-color: (
            contrast-color: (
                'surface',
            ),
        ),

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

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

/// Generates a bootstrap grid-summary schema.
/// @type Map
/// @prop {Map} label-color [color: ('primary', 700)] - The summaries label color.
/// @requires $light-grid-summary
$bootstrap-grid-summary: extend(
    $light-grid-summary,
    (
        label-color: (
            color: (
                'primary',
                700,
            ),
        ),

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

/// Generates an indigo grid-summary schema.
/// @type Map
/// @prop {Map} background-color [color: ('surface')] - The summaries background color.
/// @prop {Map} label-hover-color [color: ('primary', 500)] - The summaries hover label color.
/// @prop {Map} result-color [color: ('gray', 800)] - The summaries value/result color.
/// @requires $light-grid-summary
$indigo-grid-summary: extend(
    $light-grid-summary,
    (
        background-color: (
            color: (
                'surface',
            ),
        ),

        label-hover-color: (
            color: (
                'primary',
                500,
            ),
        ),

        result-color: (
            color: (
                'gray',
                800,
            ),
        ),

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