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

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

// stylelint-disable max-line-length

/// Generates a dark material combo schema.
/// @type {Map}
/// @prop {Map} toggle-button-background [color: ('gray', 100)] - The combo toggle button background color.
/// @prop {Map} toggle-button-background-focus [color: ('gray', 200)] - The combo toggle button background color when the combo is focused.
/// @prop {Map} toggle-button-background-focus--border [color: ('gray', 100)] The combo toggle button background color when the combo is focused in border and line variants.
/// @requires $material-combo
$dark-material-combo: extend(
    $material-combo,
    (
        toggle-button-background: (
            color: (
                'gray',
                100,
            ),
        ),
        toggle-button-background-focus: (
            color: (
                'gray',
                200,
            ),
        ),
        toggle-button-background-focus--border: (
            color: (
                'gray',
                100,
            ),
        ),
        _meta: (
            theme: 'material',
            variant: 'dark',
        ),
    )
);

/// Generates a dark fluent combo schema.
/// @type {Map}
/// @prop {Map} clear-button-background [color: ('gray', 50)] - The combo clear button background color.
/// @prop {Map} clear-button-background-focus [color: ('gray', 50)] - The combo clear button background color when the combo is focused.
/// @prop {Map} clear-button-foreground [color: ('gray', 400)] - The combo toggle clear foreground color.
/// @prop {Map} clear-button-foreground-focus [color: ('gray', 400)] - The combo clear button foreground color when the combo is focused.
/// @prop {Map} toggle-button-background [color: ('gray', 50)] - The combo toggle button background color.
/// @prop {Map} toggle-button-background-focus [color: ('gray', 50)] - The combo toggle button background color when the combo is focused.
/// @prop {Map} toggle-button-foreground [color: ('gray', 400)] - The combo toggle button foreground color.
/// @prop {Map} toggle-button-foreground-focus [color: ('gray', 400)] - The combo toggle button foreground color when the combo is focused.
/// @prop {Map} toggle-button-foreground-filled [color: ('gray', 400)] - The combo toggle button foreground color when the combo is focused.
/// @prop {Map} toggle-button-foreground-disabled [color: ('gray', 300)] - The select toggle button foreground color when the select is disabled.
/// @requires $fluent-combo
$dark-fluent-combo: extend(
    $fluent-combo,
    (
        clear-button-background: (
            color: (
                'gray',
                50,
            ),
        ),
        clear-button-background-focus: (
            color: (
                'gray',
                50,
            ),
        ),
        clear-button-foreground: (
            color: (
                'gray',
                400,
            ),
        ),
        clear-button-foreground-focus: (
            color: (
                'gray',
                400,
            ),
        ),
        toggle-button-background: (
            color: (
                'gray',
                50,
            ),
        ),
        toggle-button-background-focus: (
            color: (
                'gray',
                50,
            ),
        ),
        toggle-button-foreground: (
            color: (
                'gray',
                400,
            ),
        ),
        toggle-button-foreground-focus: (
            color: (
                'gray',
                400,
            ),
        ),
        toggle-button-foreground-filled: (
            color: (
                'gray',
                400,
            ),
        ),
        toggle-button-foreground-disabled: (
            color: (
                'gray',
                300,
            ),
        ),
        _meta: (
            theme: 'fluent',
            variant: 'dark',
        ),
    )
);

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

/// Generates a dark indigo combo schema.
/// @prop {Map} clear-button-foreground [contrast-color: ('gray', 100, .6)] - The combo toggle clear foreground color.
/// @prop {Map} clear-button-foreground-focus [contrast-color: ('gray', 100, .6)] - The combo clear button foreground color when the combo is focused.
/// @prop {Map} toggle-button-foreground [contrast-color: ('gray', 100, .6)] - The combo toggle button foreground color.
/// @prop {Map} toggle-button-foreground-focus [contrast-color: ('gray', 100, .8)] - The combo toggle button foreground color when the combo is focused.
/// @prop {Map} toggle-button-foreground-filled [contrast-color: ('gray', 100, .6)] - The combo toggle button foreground color when the combo is focused.
/// @prop {Map} toggle-button-foreground-disabled [contrast-color: ('gray', 100, .2)] - The combo toggle button foreground color when the combo is disabled.
/// @type {Map}
/// @requires $indigo-combo
$dark-indigo-combo: extend(
    $indigo-combo,
    (
        clear-button-foreground: (
            contrast-color: (
                'gray',
                100,
                0.6,
            ),
        ),
        clear-button-foreground-focus: (
            contrast-color: (
                'gray',
                100,
                0.6,
            ),
        ),
        toggle-button-foreground: (
            contrast-color: (
                'gray',
                100,
                0.6,
            ),
        ),
        toggle-button-foreground-filled: (
            contrast-color: (
                'gray',
                100,
                0.6,
            ),
        ),
        toggle-button-foreground-focus: (
            contrast-color: (
                'gray',
                100,
                0.8,
            ),
        ),
        toggle-button-foreground-disabled: (
            contrast-color: (
                'gray',
                100,
                0.2,
            ),
        ),
        _meta: (
            theme: 'indigo',
            variant: 'dark',
        ),
    )
);
