@use '../../../../utils/map' as *;
@use '../light/time-picker' as *;
@use '../elevation/time-picker' as *;

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

/// Generates a dark material time-picker schema.
/// @type {Map}
/// @prop {Map} hover-text-color [color: ('secondary', 200)] - The hover text color of an open time picker.
/// @prop {Map} selected-text-color [color: ('secondary', 200)] -  The text color of a selected item in time picker.
/// @prop {Map} divider-color [color: ('gray', 100)] - The divider color of the time picker.
/// @requires $material-time-picker
$dark-material-time-picker: extend(
    $material-time-picker,
    (
        hover-text-color: (
            color: (
                'secondary',
                200,
            ),
        ),

        selected-text-color: (
            color: (
                'secondary',
                200,
            ),
        ),

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

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

/// Generates a dark fluent time-picker schema.
/// @type {Map}
/// @prop {Map} hover-text-color [color: ('primary', 200)] - The hover text color of an open time picker.
/// @prop {Map} selected-text-color [color: ('primary', 200)] -  The text color of a selected item in time picker.
/// @prop {Map} header-background [color: ('primary', 200)] - The header background color of a time picker.
/// @prop {Map} header-hour-text-color [contrast-color: ('primary', 200)] - The header hour text color of a time picker.
/// @prop {Map} active-item-foreground [contrast-color: ('primary', 200)] - The foreground color for current item in focused column inside the time picker.
/// @prop {Map} active-item-background [color: ('primary', 200)] - The background color for current item in focused column inside the time picker.
/// @prop {Map} divider-color [color: ('gray', 100)] - The divider color of the time picker.
/// @requires $fluent-time-picker
$dark-fluent-time-picker: extend(
    $fluent-time-picker,
    (
        hover-text-color: (
            color: (
                'primary',
                200,
            ),
        ),

        selected-text-color: (
            color: (
                'primary',
                200,
            ),
        ),

        header-background: (
            color: (
                'primary',
                200,
            ),
        ),

        header-hour-text-color: (
            contrast-color: (
                'primary',
                200,
            ),
        ),

        active-item-foreground: (
            contrast-color: (
                'primary',
                200,
            ),
        ),

        active-item-background: (
            color: (
                'primary',
                200,
            ),
        ),

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

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

/// Generates a dark bootstrap time-picker schema.
/// @type {Map}
/// @prop {Map} hover-text-color [color: ('primary', 300)] - The hover text color of an open time picker.
/// @prop {Map} active-item-background [color: ('primary', 500)] - The background color for current item in focused column inside the time picker.
/// @prop {Map} selected-text-color [color: ('primary', 300)] -  The text color of a selected item in time picker.
/// @requires $bootstrap-time-picker
$dark-bootstrap-time-picker: extend(
    $bootstrap-time-picker,
    (
        hover-text-color: (
            color: (
                'primary',
                300,
            ),
        ),

        active-item-background: (
            color: (
                'primary',
                500,
            ),
        ),

        selected-text-color: (
            color: (
                'primary',
                300,
            ),
        ),

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

/// Generates a dark indigo time-picker schema.
/// @type {Map}
/// @prop {Map} text-color [color: ('gray', 900)] - The text color of an open time picker.
/// @prop {Map} background-color [color: ('gray', 50)] - The time-picker panel background color.
/// @prop {Map} header-background [color: ('gray', 50)] - The header background color of a time picker.
/// @prop {Map} selected-text-color [color: ('primary', 200)] -  The text color of a selected item in time picker.
/// @prop {Map} hover-text-color [color: ('primary', 200)] - The hover text color of an open time picker.
/// @prop {Map} border-color [color: ('gray', 100)] - The border-color of the time picker.
/// @prop {Map} divider-color [color: ('gray', 100)] - The divider color of the time picker.
/// @prop {Map} header-hour-text-color [contrast-color: ('gray', 50)] - The header hour text color of a time picker.
/// @requires $indigo-time-picker
$dark-indigo-time-picker: extend(
    $indigo-time-picker,
    $dark-indigo-elevation-time-picker,
    (
        text-color: (
            color: (
                'gray',
                900,
            ),
        ),

        background-color: (
            color: (
                'gray',
                50,
            ),
        ),

        header-background: (
            color: (
                'gray',
                50,
            ),
        ),

        hover-text-color: (
            color: (
                'primary',
                200,
            ),
        ),

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

        selected-text-color: (
            color: (
                'primary',
                200,
            ),
        ),

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

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

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