@startuml
skinparam componentStyle rectangle
skinparam rectangle {
	backgroundColor<<event>> Orange
	backgroundColor<<command>> LightBlue
	backgroundColor<<external>> Pink
	backgroundColor<<document>> Green
	backgroundColor<<invariant>> Yellow
}
component C0 <<command>> [
Command
]
note top of C0
hi there
what's up?
end note
component C3 <<event>> [
event
]
C0 --> C3
component C4 <<document>> [
document
---
- one
- two
- three
]
C3 -[hidden]-> C4
component C6 <<command>> [
ABC
]
C0 -[hidden]right-> C6
component C7 <<event>> [
abc 
---
- apple
- orange
- banana
]
C6 --> C7
component C8 <<invariant>> [ 
if this
]
C7 -[hidden]-> C8
component C10 <<command>> [
FGH
]
C6 -----[hidden]> C10
component C11 <<event>> [
fgh 
---
- airplane
- rocket
- ship
]
C10 --> C11
component C12 <<invariant>> [ 
if that
]
C11 -[hidden]-> C12
component C13 <<document>> [
document
---
- what
- is
- this
]
C12 -[hidden]-> C13
component C15 <<command>> [
Nested
]
C10 -[hidden]right-> C15
component C16 <<event>> [
nested a
]
C15 --> C16
component C18 <<command>> [
Nested
]
C15 -----[hidden]> C18
component C19 <<event>> [
nested b
]
C18 --> C19
component C21 <<command>> [
XYZ
]
C15 -[hidden]right-> C21
component C22 <<event>> [
xyz
]
C21 --> C22
component C24 <<command>> [
Done
]
C6 -[hidden]right-> C24
component C25 <<event>> [
done
]
C24 --> C25
C0 -> C6: branch for if this
C0 -> C10: branch for if that
C10 -> C15: nested branch a
C10 -> C18: nested branch b
C15 - C21: end nest a or b
C18 -up-> C21: end nest a or b
C6 - C24: end if this or that
C21 -up-> C24: end if this or that
@enduml
