from typing import Dict
from typing import Any


def default_style() -> Dict[str, Any]:
    """Define default values of the timeline stylesheet."""
    return {
        'formatter.general.fig_width': 14,
        'formatter.general.fig_unit_height': 0.8,
        'formatter.general.dpi': 150,
        'formatter.margin.top': 0.5,
        'formatter.margin.bottom': 0.5,
        'formatter.margin.left_percent': 0.02,
        'formatter.margin.right_percent': 0.02,
        'formatter.margin.link_interval_dt': 20,
        'formatter.time_bucket.edge_dt': 10,
        'formatter.color.background': '#FFFFFF',
        'formatter.color.timeslot': '#DDDDDD',
        'formatter.color.gate_name': '#000000',
        'formatter.color.bit_name': '#000000',
        'formatter.color.barrier': '#222222',
        'formatter.color.gates': {
            'u0': '#FA74A6',
            'u1': '#000000',
            'u2': '#FA74A6',
            'u3': '#FA74A6',
            'id': '#05BAB6',
            'x': '#05BAB6',
            'y': '#05BAB6',
            'z': '#05BAB6',
            'h': '#6FA4FF',
            'cx': '#6FA4FF',
            'cy': '#6FA4FF',
            'cz': '#6FA4FF',
            'swap': '#6FA4FF',
            's': '#6FA4FF',
            'sdg': '#6FA4FF',
            'dcx': '#6FA4FF',
            'iswap': '#6FA4FF',
            't': '#BB8BFF',
            'tdg': '#BB8BFF',
            'r': '#BB8BFF',
            'rx': '#BB8BFF',
            'ry': '#BB8BFF',
            'rz': '#BB8BFF',
            'reset': '#808080',
            'measure': '#808080'
        },
        'formatter.color.default_gate': '#BB8BFF',
        'formatter.latex_symbol.gates': {
            'u0': r'{\rm U}_0',
            'u1': r'{\rm U}_1',
            'u2': r'{\rm U}_2',
            'u3': r'{\rm U}_3',
            'id': r'{\rm Id}',
            'x': r'{\rm X}',
            'y': r'{\rm Y}',
            'z': r'{\rm Z}',
            'h': r'{\rm H}',
            'cx': r'{\rm CX}',
            'cy': r'{\rm CY}',
            'cz': r'{\rm CZ}',
            'swap': r'{\rm SWAP}',
            's': r'{\rm S}',
            'sdg': r'{\rm S}^\dagger',
            'dcx': r'{\rm DCX}',
            'iswap': r'{\rm iSWAP}',
            't': r'{\rm T}',
            'tdg': r'{\rm T}^\dagger',
            'r': r'{\rm R}',
            'rx': r'{\rm R}_x',
            'ry': r'{\rm R}_y',
            'rz': r'{\rm R}_z',
            'reset': r'|0\rangle',
            'measure': r'{\rm Measure}'
        },
        'formatter.latex_symbol.frame_change': r'\circlearrowleft',
        'formatter.unicode_symbol.frame_change': u'\u21BA',
        'formatter.box_height.gate': 0.5,
        'formatter.box_height.timeslot': 0.6,
        'formatter.layer.gate': 3,
        'formatter.layer.timeslot': 0,
        'formatter.layer.gate_name': 5,
        'formatter.layer.bit_name': 5,
        'formatter.layer.frame_change': 4,
        'formatter.layer.barrier': 1,
        'formatter.layer.gate_link': 2,
        'formatter.alpha.gate': 1.0,
        'formatter.alpha.timeslot': 0.7,
        'formatter.alpha.barrier': 0.5,
        'formatter.alpha.gate_link': 0.8,
        'formatter.line_width.gate': 0,
        'formatter.line_width.timeslot': 0,
        'formatter.line_width.barrier': 3,
        'formatter.line_width.gate_link': 3,
        'formatter.line_style.barrier': '-',
        'formatter.line_style.gate_link': '-',
        'formatter.text_size.gate_name': 12,
        'formatter.text_size.bit_name': 15,
        'formatter.text_size.frame_change': 18,
        'formatter.text_size.axis_label': 13,
        'formatter.label_offset.frame_change': 0.25,
        'formatter.control.show_idle': True,
        'formatter.control.show_clbits': True,
        'formatter.control.show_barriers': True,
        'formatter.control.show_delays': True,
        'generator.gates': [],
        'generator.bits': [],
        'generator.barriers': [],
        'generator.gate_links': [],
        'layout.bit_arrange': None,
        'layout.time_axis_map': None}