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

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

/// Generates a light highlight schema.
/// @type {Map}
/// @prop {Map} resting-background [color: ('gray', 300)] - The background color used for the highlight in its resting state.
/// @prop {Map} resting-color [contrast-color: ('gray', 300)] - The icon color used for the highlight in its resting state.
/// @prop {Map} active-background [color: ('secondary', A100)] - The background color used for the highlight in its active state.
/// @prop {Map} active-color [contrast-color: ('secondary', A100) - The text color used for the highlight in its active state.
$light-highlight: (
    resting-background: (
        color: (
            'gray',
            300,
        ),
    ),

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

    active-background: (
        color: (
            'secondary',
            'A100',
        ),
    ),

    active-color: (
        contrast-color: (
            'secondary',
            'A100',
        ),
    ),
);

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

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

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

/// Generates an indigo highlight schema.
/// @type {Map}
/// @prop {Map} active-background [color: ('primary', 500)] - The background color used for the highlight in its active state.
/// @prop {Map} active-color [contrast-color: ('primary', 500)] - The text color used for the highlight in its active state.
/// @prop {Map} resting-color [contrast-color: ( color: ('gray', 300))] - The icon color used for the highlight in its resting state.
/// @requires {Map} $light-highlight
$indigo-highlight: extend(
    $light-highlight,
    (
        active-background: (
            color: (
                'primary',
                500,
            ),
        ),

        active-color: (
            contrast-color: (
                'primary',
                500,
            ),
        ),

        resting-color: (
            contrast-color: (
                'gray',
                300,
            ),
        ),
        _meta: (
            theme: 'indigo',
            variant: 'light',
        ),
    )
);
