@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 {Map} border-color [color: ('gray', 400)] - The summaries 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-color: (
        color: (
            'gray',
            400,
        ),
    ),

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

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

/// Generates a fluent grid-summary schema.
/// @type {Map}
/// @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 {Map} $light-grid-summary
$fluent-grid-summary: extend(
    $light-grid-summary,
    (
        background-color: (
            color: (
                'surface',
            ),
        ),

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

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

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

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

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

/// 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.
/// @prop {Map} pinned-border-color [color: ('gray', 400)] - The border color of the summary panel.
/// @requires {Map} $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,
            ),
        ),

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

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