// stylelint-disable max-line-length

////
/// @package theming
/// @group schemas
/// @access public
/// @author <a href="https://github.com/simeonoff" target="_blank">Simeon Simeonoff</a>
////

/// Generates a material graph schema.
/// @type {Map}
/// @prop {Color} backing-brush [(color: 'surface', darken: 5%)] - Sets the brush to use to fill the backing of the bullet graph.
/// @prop {Color} backing-outline [(color: 'surface', darken: 8%)] - Sets the brush to use for the outline of the backing.
/// @prop {Number} backing-stroke-thickness [null] - Sets the stroke thickness of the backing outline.
/// @prop {Color} font-brush [(contrast-color: 'surface')] - Sets the brush to use for the label font.
/// @prop {Color} minor-tick-brush [(contrast-color: 'surface')] - Sets the brush to use for the minor tickmarks.
/// @prop {Number} minor-tick-thickness [null] - Stroke thickness to use when rendering minor ticks.
/// @prop {List} range-brushes [series] - Sets a collection of brushes to be used as the palette for bullet graph ranges.
/// @prop {List} range-outlines [series] - Sets a collection of brushes to be used as the palette for bullet graph outlines.
/// @prop {Color} scale-background-brush [(color: 'primary')] - Sets the background brush for the scale.
/// @prop {Color} scale-background-outline [(color: 'surface')] - Sets the background outline for the scale.
/// @prop {Number} scale-background-thickness [null] - Sets the background outline thickness for the scale.
/// @prop {Number} target-value-breadth [null] - Sets the breadth of the target value element.
/// @prop {Color} target-value-brush [color('gray', 800)] - Sets the brush to use when rendering the fill of the comparative marker.
/// @prop {Color} target-value-outline [null] - Sets the brush to use when rendering the outline of the target value.
/// @prop {Number} target-value-thickness [null] - Sets the stroke thickness of the outline of the target value bar.
/// @prop {Color} tick-brush [(contrast-color: 'surface')] - Sets the brush to use for the major tickmarks.
/// @prop {Number} tick-stroke-thickness [null] - Sets the stroke thickness to use when rendering ticks.
/// @prop {Color} value-brush [(color: ('gray', 800))] - Sets the brush to use for the actual value element.
/// @prop {Color} value-outline [null] - Sets the brush to use for the outline of actual value element.
/// @prop {Number} value-stroke-thickness [null] - Sets the stroke thickness to use when rendering single actual value element.
$material-graph: (
    'backing-brush': (
        color: 'surface',
    ),
    'backing-outline': (
        color: 'surface',
    ),
    'backing-stroke-thickness': null,
    'font-brush': (
        contrast-color: (
            'surface',
            500,
        ),
    ),
    'minor-tick-brush': (
        contrast-color: (
            'surface',
            500,
        ),
    ),
    'minor-tick-thickness': null,
    'range-brushes': series,
    'range-outlines': series,
    'scale-background-brush': (
        color: 'primary',
    ),
    'scale-background-outline': (
        color: 'surface',
    ),
    'scale-background-thickness': null,
    'target-value-breadth': null,
    'target-value-brush': (
        color: (
            'gray',
            800,
        ),
    ),
    'target-value-outline': null,
    'target-value-thickness': null,
    'tick-brush': (
        contrast-color: (
            'surface',
            500,
        ),
    ),
    'tick-stroke-thickness': null,
    'value-brush': (
        color: (
            'gray',
            800,
        ),
    ),
    'value-outline': null,
    'value-stroke-thickness': null,
);

/// Generates a fluent graph schema.
/// @type {Map}
/// @requires {Map} $material-graph
$fluent-graph: $material-graph;

/// Generates a bootstrap graph schema.
/// @type {Map}
/// @requires {Map} $material-graph
$bootstrap-graph: $material-graph;

/// Generates an indigo graph schema.
/// @type {Map}
/// @requires {Map} $material-graph
$indigo-graph: $material-graph;
