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

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

/// Generates a light date-range-picker schema.
/// @type {Map}
/// @prop {Map} label-color [color: ('gray', 700)] - The color for date range separator label.
/// @prop {Map} ranges-background [color: 'surface'] - The background color for the predefined ranges area.
/// @prop {Map} ranges-border [color: ('gray', 200)] - The border color for the predefined ranges area.
/// @prop {Map} typography [label: (value: 'caption')] - The typography styles used for the component.
$light-date-range-picker: (
    label-color: (
        color: (
            'gray',
            700,
        ),
    ),

    ranges-background: (
        color: 'surface',
    ),

    ranges-border: (
        color: (
            'gray',
            200,
        ),
    ),

    typography: (
        label: (
            value: 'caption',
        ),
    ),
);

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

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

/// Generates a bootstrap date-range-picker schema.
/// @type {Map}
/// @prop {Map} ranges-border [color: ('gray', 300)] - The border color for the predefined ranges area.
/// @prop {Map} typography [label: (value: 'body-1')] - The typography styles used for the component.
/// @requires {Map} $light-date-range-picker
$bootstrap-date-range-picker: extend(
    $light-date-range-picker,
    (
        ranges-border: (
            color: (
                'gray',
                300,
            ),
        ),

        typography: (
            label: (
                value: 'body-1',
            ),
        ),

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

/// Generates an indigo date-range-picker schema.
/// @type {Map}
/// @prop {Map} label-color [color: ('gray', 600)] - The color for date range separator label.
/// @prop {Map} ranges-background [contrast-color: ('primary', 500)] - The background color for the predefined ranges area.
/// @prop {Map} ranges-border [color: ('gray', 400)] - The border color for the predefined ranges area.
/// @requires {Map} $light-date-range-picker
$indigo-date-range-picker: extend(
    $light-date-range-picker,
    (
        label-color: (
            color: (
                'gray',
                600,
            ),
        ),

        ranges-background: (
            contrast-color: (
                'primary',
                500,
            ),
        ),

        ranges-border: (
            color: (
                'gray',
                400,
            ),
        ),

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