'' NAME = "Sunlust"
'' DESCRIPTION = "Sunlust theme based off of the [solarized theme](https://ethanschoonover.com/solarized)"
'' AUTHORS = ["Artem V. Ageev"]
'' LICENCE = "GPL 3+"

!$THEME = 'sunlust'
!$colors = {
    "font"      : "#657b83",
    "bg"        : "#fdf6e3",
    "yellow"    : "#b58900",
    "yellow_bg" : "#BUSINESS",
    "orange"    : "#cb4b16",
    "orange_bg" : "#STRATEGY",
    "red"       : "#dc322f",
    "red_bg"    : "#IMPLEMENTATION",
    "violet"    : "#6c71c4",
    "violet_bg" : "#MOTIVATION",
    "blue"      : "#268bd2",
    "blue_bg"   : "#APPLICATION",
    "green"     : "#859900",
    "green_bg"  : "#TECHNOLOGY"
}
!$shapes = {
    "TECHNOLOGY" : {
        "color" : "#859900",
        "shapes" : [
            "Node",
            "File",
            "Artifact",
            "Circle"
        ]
    },
    "APPLICATION" : {
        "color" : "#268bd2",
        "shapes" : [
            "Participant",
            "Rectangle",
            "Component",
            "Hexagon",
            "Agent"
        ]
    },
    "BUSINESS" : {
        "color" : "#b58900",
        "shapes" : [
            "Actor",
            "Note",
            "Boundary",
            "Control",
            "Entity",
            "Person"
        ]
    },
    "IMPLEMENTATION" : {
        "color" : "#dc322f",
        "shapes" : [
            "Class",
            "Map",
            "Json",
            "Package",
            "Frame",
            "Interface"
        ]
    },
    "MOTIVATION" : {
        "color" : "#6c71c4",
        "shapes" : [
            "Cloud",
            "Collections",
            "Database",
            "Queue",
            "Process",
            "Stack",
            "Storage"
        ]
    },
    "STRATEGY" : {
        "color" : "#cb4b16",
        "shapes" : [
            "Action",
            "Partition",
            "Folder",
            "Usecase",
            "Card"
        ]
    }
}
!$thickness = 2
<style>
nwdiagDiagram, wbsDiagram, mindmapDiagram, ganttDiagram, saltDiagram, jsonDiagram, yamlDiagram {
    BackGroundColor $colors.bg
    arrow {
        LineColor $colors.font
        Thickness $thickness
    }
    node {
        LineColor $colors.green
        BackgroundColor $colors.green_bg
    }
    task {
        LineColor $colors.violet
        BackGroundColor $colors.violet_bg
    }
    milestone {
        LineColor $colors.red
        BackGroundColor $colors.red_bg
    }
}
</style>

skinparam noteTextAlignment left
skinparam actorStyle awesome
skinparam Dpi 100
skinparam Shadowing false
skinparam BackgroundColor $colors.bg
skinparam WrapWidth 200
skinparam RoundCorner 15
skinparam SwimlaneBorderColor $colors.font
skinparam SwimlaneThickness $thickness
skinparam SwimlaneWrapTitleWidth 150
skinparam ArrowColor $colors.font
skinparam ArrowThickness $thickness
skinparam DefaultTextAlignment center
skinparam DefaultFontName Dejavu Serif
skinparam LegendFontName VL Gothic
skinparam LegendBorderColor transparent
skinparam LegendBackgroundColor transparent
skinparam SequenceMessageAlign direction
skinparam SequenceArrowThickness $thickness
skinparam SequenceLifeLineBorderColor $colors.yellow
skinparam SequenceBoxBorderThickness $thickness
!foreach $shape in %splitstr('Activity.State', '.')
skinparam $shape {
    BackgroundColor transparent
    BorderColor  $colors.violet
    BorderThickness $thickness
    DiamondBorderColor $colors.red
    DiamondBackgroundColor transparent
}
!endfor
!foreach $key in %get_json_keys($shapes)
    !foreach $shape in $shapes[$key].shapes
skinparam $shape {
    BackgroundColor #$key
    BorderColor $shapes[$key].color
    BorderThickness $thickness
}
    !endfor
!endfor
