@use '../../../../utils/map' as *;
@use '../light/card' as *;

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

/// Generates a base dark card schema.
/// @type {Map}
/// @prop {Map} outline-color [color: ('gray', 100)] - The outline color of an outlined type card.
$dark-base-card: (
    outline-color: (
        color: (
            'gray',
            100,
        ),
    ),
);

/// Generates a dark material card schema.
/// @type {Map}
/// @prop {Map} outline-color [color: ('gray', 400, .38)] - The outline color of an outlined type card.
/// @requires $material-card
$dark-material-card: extend(
    $material-card,
    (
        outline-color: (
            color: (
                'gray',
                400,
                0.38,
            ),
        ),
        _meta: (
            theme: 'material',
            variant: 'dark',
        ),
    )
);

/// Generates a dark fluent card schema.
/// @type {Map}
/// @prop {Map} actions-text-color [color: ('primary', 300)] - The text color of the card buttons.
/// @requires $fluent-card
$dark-fluent-card: extend(
    $fluent-card,
    (
        actions-text-color: (
            color: (
                'primary',
                300,
            ),
        ),

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

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

/// Generates a dark indigo card schema.
/// @type {Map}
/// @prop {Map} background [color: ('gray', 50)] - The card background color.
/// @prop {Map} header-text-color [contrast-color: ('gray', 50, .9)] - The text color of the card title.
/// @prop {Map} subtitle-text-color [contrast-color: ('gray', 50, .8)] - The text color of the card subtitle.
/// @prop {Map} actions-text-color [contrast-color: ('gray', 50, .8)] - The text color of the card buttons.
/// @requires $indigo-card
/// @requires $dark-base-card
$dark-indigo-card: extend(
    $indigo-card,
    $dark-base-card,
    (
        background: (
            color: (
                'gray',
                50,
            ),
        ),

        header-text-color: (
            contrast-color: (
                'gray',
                50,
                0.9,
            ),
        ),

        subtitle-text-color: (
            contrast-color: (
                'gray',
                50,
                0.8,
            ),
        ),

        actions-text-color: (
            contrast-color: (
                'gray',
                50,
                0.8,
            ),
        ),

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