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

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

/// Generates a base light label schema.
/// @type Map
/// @prop {Map} color [color: ('gray', 700)] - The label color.
/// @prop {Map} disabled-color [color: ('gray', 500)] - The label color in disabled state.
$light-label: (
    color: (
        color: (
            'gray',
            700,
        ),
    ),
    disabled-color: (
        color: (
            'gray',
            500,
        ),
    ),
    _meta: (
        name: 'label',
        variant: 'light',
    ),
);

/// Generates a light material label schema.
/// @type Map
/// @prop {Map} typography [label: (value: 'subtitle-1')] - The typography styles used for the component.
/// @requires $light-label
$material-label: extend(
    $light-label,
    (
        typography: (
            label: (
                value: 'subtitle-1',
            ),
        ),
        _meta: (
            theme: 'material',
        ),
    )
);

/// Generates a light fluent label schema.
/// @type Map
/// @prop {Map} color [color: ('gray', 900)] - The label color.
/// @prop {Map} typography [label: (value: 'subtitle-2')] - The typography styles used for the component.
/// @requires $light-label
$fluent-label: extend(
    $light-label,
    (
        color: (
            color: (
                'gray',
                900,
            ),
        ),
        typography: (
            label: (
                value: 'subtitle-2',
            ),
        ),
        _meta: (
            theme: 'fluent',
        ),
    )
);

/// Generates a light bootstrap label schema.
/// @type Map
/// @prop {Map} disabled-color [color: ('gray', 400)] - The label color in disabled state.
/// @prop {Map} typography [label: (value: 'body-1')] - The typography styles used for the component.
/// @requires $light-label
$bootstrap-label: extend(
    $light-label,
    (
        disabled-color: (
            color: (
                'gray',
                400,
            ),
        ),
        typography: (
            label: (
                value: 'body-1',
            ),
        ),
        _meta: (
            theme: 'bootstrap',
        ),
    )
);

/// Generates a light indigo label schema.
/// @type Map
/// @prop {Map} color [color: ('gray', 600)] - The label color.
/// @prop {Map} disabled-color [color: ('gray', 900, .2)] - The label color in disabled state.
/// @prop {Map} typography [label: (value: 'caption')] - The typography styles used for the component.
$indigo-label: extend(
    $light-label,
    (
        color: (
            color: (
                'gray',
                600,
            ),
        ),
        disabled-color: (
            color: (
                'gray',
                900,
                0.2,
            ),
        ),
        typography: (
            label: (
                value: 'caption',
            ),
        ),
        _meta: (
            theme: 'indigo',
        ),
    )
);
