The simple way is: editing colors directly changes the themes, without cancel / revert support.
However, what happens, if the user changes many colors / themes / hl text attributes for specific languages, and then presses Cancel?
Do we create a 2nd Repository, and modify this one, and on cancel just discard it, and on OK save, and then tell the global Repository to reload ?
To be discussed.