@use '../../../../utils/map' as *;
@use '../light/expansion-panel' as *;

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

/// Generates a dark expansion panel schema.
/// @type {Map}
/// @prop {Map} header-focus-background [color: ('gray', 100, .3)] - The panel header focus background color.
$base-dark-expansion-panel: (
    header-focus-background: (
        color: (
            'gray',
            100,
            0.3,
        ),
    ),
);

/// Generates a dark material expansion panel schema based on a mix of $material-expansion-panel and $base-dark-expansion-panel.
/// @type {Map}
/// @requires $material-expansion-panel
/// @requires $base-dark-expansion-panel
$dark-material-expansion-panel: extend(
    $material-expansion-panel,
    $base-dark-expansion-panel,
    (
        _meta: (
            theme: 'material',
            variant: 'dark',
        ),
    )
);

/// Generates a dark fluent expansion panel schema based on a mix of $fluent-expansion-panel and $base-dark-expansion-panel.
/// @type {Map}
/// @requires $fluent-expansion-panel
/// @requires $base-dark-expansion-panel
$dark-fluent-expansion-panel: extend(
    $fluent-expansion-panel,
    $base-dark-expansion-panel,
    (
        _meta: (
            theme: 'fluent',
            variant: 'dark',
        ),
    )
);

/// Generates a dark bootstrap expansion panel schema based on a mix of $bootstrap-expansion-panel and $base-dark-expansion-panel.
/// @type {Map}
/// @prop {Map} header-background [color: ('gray', 50)] - The panel header background color.
/// @prop {Map} header-description-color [color: ('gray', 600)] - The panel header description text color.
/// @prop {Map} body-background [color: ('gray', 50)] - The panel body background color.
/// @requires $bootstrap-expansion-panel
/// @requires $base-dark-expansion-panel
$dark-bootstrap-expansion-panel: extend(
    $bootstrap-expansion-panel,
    $base-dark-expansion-panel,
    (
        header-background: (
            color: (
                'gray',
                50,
            ),
        ),

        header-description-color: (
            color: (
                'gray',
                600,
            ),
        ),

        body-background: (
            color: (
                'gray',
                50,
            ),
        ),
        _meta: (
            theme: 'bootstrap',
            variant: 'dark',
        ),
    )
);

/// Generates a dark indigo expansion panel schema.
/// @type {Map}
///
/// @prop {Map} header-title-color [contrast-color: ('gray', 50, 0.9)] - The panel header title text color.
/// @prop {Map} header-description-color [contrast-color: ('gray', 50, 0.7)] - The panel header description text color.
/// @prop {Map} header-icon-color [contrast-color: ('gray', 50, 0.8)] - The panel header icon color.
/// @prop {Map} body-color [contrast-color: ('gray', 50, 0.8)] - The panel body text color.
/// @prop {Map} disabled-text-color [contrast-color: ('gray', 50, 0.2)] - The panel disabled text color.
/// @prop {Map} disabled-description-color [contrast-color: ('gray', 50, 0.2)] - The panel disabled header description text color.
/// @requires $indigo-expansion-panel
$dark-indigo-expansion-panel: extend(
    $indigo-expansion-panel,
    (
        header-title-color: (
            contrast-color: (
                'gray',
                50,
                0.9,
            ),
        ),
        header-description-color: (
            contrast-color: (
                'gray',
                50,
                0.7,
            ),
        ),

        header-icon-color: (
            contrast-color: (
                'gray',
                50,
                0.8,
            ),
        ),

        body-color: (
            contrast-color: (
                'gray',
                50,
                0.8,
            ),
        ),

        disabled-text-color: (
            contrast-color: (
                'gray',
                50,
                0.2,
            ),
        ),

        disabled-description-color: (
            contrast-color: (
                'gray',
                50,
                0.2,
            ),
        ),
        _meta: (
            theme: 'indigo',
            variant: 'dark',
        ),
    )
);
