summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@codeispoetry.ru>2017-03-16 13:05:26 +0000
committerAndrej Mihajlov <and@codeispoetry.ru>2017-03-16 13:05:26 +0000
commitc184d7b54ca6ce0032db5add90cc860bc6f5ef8d (patch)
tree7fd6aeb0fa065429b3b6ab8b09313080aa34a39e
parentf53debf731cfe076c6ab752fe6d31794020bea06 (diff)
downloadmullvadvpn-c184d7b54ca6ce0032db5add90cc860bc6f5ef8d.tar.xz
mullvadvpn-c184d7b54ca6ce0032db5add90cc860bc6f5ef8d.zip
Add tray animator
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-1-dark.pngbin0 -> 250 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-1-dark@2x.pngbin0 -> 480 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-2-dark.pngbin0 -> 247 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-2-dark@2x.pngbin0 -> 477 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-3-dark.pngbin0 -> 252 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-3-dark@2x.pngbin0 -> 475 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-4-dark.pngbin0 -> 255 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-4-dark@2x.pngbin0 -> 459 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-5-dark.pngbin0 -> 232 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-5-dark@2x.pngbin0 -> 424 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-6-dark.pngbin0 -> 247 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-6-dark@2x.pngbin0 -> 454 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-7-dark.pngbin0 -> 248 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-7-dark@2x.pngbin0 -> 457 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-8-dark.pngbin0 -> 256 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-8-dark@2x.pngbin0 -> 454 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-9-dark.pngbin0 -> 262 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/lock/lock-9-dark@2x.pngbin0 -> 465 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-1-dark.pngbin0 -> 710 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-1-dark@2x.pngbin0 -> 1428 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-2-dark.pngbin0 -> 694 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-2-dark@2x.pngbin0 -> 1364 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-3-dark.pngbin0 -> 734 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-3-dark@2x.pngbin0 -> 1425 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-4-dark.pngbin0 -> 719 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-4-dark@2x.pngbin0 -> 1398 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-5-dark.pngbin0 -> 714 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-5-dark@2x.pngbin0 -> 1397 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-6-dark.pngbin0 -> 734 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-6-dark@2x.pngbin0 -> 1400 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-7-dark.pngbin0 -> 738 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-7-dark@2x.pngbin0 -> 1440 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-8-dark.pngbin0 -> 752 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-8-dark@2x.pngbin0 -> 1433 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-9-dark.pngbin0 -> 695 bytes
-rw-r--r--app/assets/images/menubar icons/dark ui/spinner/spinner-9-dark@2x.pngbin0 -> 1400 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-1-light.pngbin0 -> 261 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-1-light@2x.pngbin0 -> 468 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-2-light.pngbin0 -> 257 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-2-light@2x.pngbin0 -> 470 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-3-light.pngbin0 -> 263 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-3-light@2x.pngbin0 -> 462 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-4-light.pngbin0 -> 249 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-4-light@2x.pngbin0 -> 447 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-5-light.pngbin0 -> 228 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-5-light@2x.pngbin0 -> 410 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-6-light.pngbin0 -> 244 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-6-light@2x.pngbin0 -> 456 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-7-light.pngbin0 -> 246 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-7-light@2x.pngbin0 -> 462 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-8-light.pngbin0 -> 251 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-8-light@2x.pngbin0 -> 458 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-9-light.pngbin0 -> 261 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/lock/lock-9-light@2x.pngbin0 -> 464 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-1-light.pngbin0 -> 610 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-1-light@2x.pngbin0 -> 1269 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-2-light.pngbin0 -> 634 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-2-light@2x.pngbin0 -> 1210 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-3-light.pngbin0 -> 649 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-3-light@2x.pngbin0 -> 1234 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-4-light.pngbin0 -> 633 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-4-light@2x.pngbin0 -> 1247 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-5-light.pngbin0 -> 632 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-5-light@2x.pngbin0 -> 1258 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-6-light.pngbin0 -> 647 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-6-light@2x.pngbin0 -> 1287 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-7-light.pngbin0 -> 652 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-7-light@2x.pngbin0 -> 1251 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-8-light.pngbin0 -> 646 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-8-light@2x.pngbin0 -> 1208 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-9-light.pngbin0 -> 621 bytes
-rw-r--r--app/assets/images/menubar icons/light ui/spinner/spinner-9-light@2x.pngbin0 -> 1231 bytes
-rw-r--r--app/components/Login.js2
-rw-r--r--app/lib/backend.js2
-rw-r--r--app/lib/tray-animator.js212
75 files changed, 214 insertions, 2 deletions
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-1-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-1-dark.png
new file mode 100644
index 0000000000..8d15f22332
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-1-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-1-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-1-dark@2x.png
new file mode 100644
index 0000000000..6bb1ee1063
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-1-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-2-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-2-dark.png
new file mode 100644
index 0000000000..12791d6b0e
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-2-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-2-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-2-dark@2x.png
new file mode 100644
index 0000000000..d9a8b0dc96
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-2-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-3-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-3-dark.png
new file mode 100644
index 0000000000..28a733b1ea
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-3-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-3-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-3-dark@2x.png
new file mode 100644
index 0000000000..7a5268e31b
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-3-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-4-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-4-dark.png
new file mode 100644
index 0000000000..1b02b4937c
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-4-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-4-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-4-dark@2x.png
new file mode 100644
index 0000000000..e1a35b5f29
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-4-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-5-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-5-dark.png
new file mode 100644
index 0000000000..70f9487809
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-5-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-5-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-5-dark@2x.png
new file mode 100644
index 0000000000..b9b81df97d
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-5-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-6-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-6-dark.png
new file mode 100644
index 0000000000..87589977bb
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-6-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-6-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-6-dark@2x.png
new file mode 100644
index 0000000000..b4f1e4fba7
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-6-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-7-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-7-dark.png
new file mode 100644
index 0000000000..e2f17f4d75
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-7-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-7-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-7-dark@2x.png
new file mode 100644
index 0000000000..eddfde2fda
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-7-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-8-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-8-dark.png
new file mode 100644
index 0000000000..ca2345a8df
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-8-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-8-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-8-dark@2x.png
new file mode 100644
index 0000000000..3bb3d9be17
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-8-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-9-dark.png b/app/assets/images/menubar icons/dark ui/lock/lock-9-dark.png
new file mode 100644
index 0000000000..22f5f00315
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-9-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/lock/lock-9-dark@2x.png b/app/assets/images/menubar icons/dark ui/lock/lock-9-dark@2x.png
new file mode 100644
index 0000000000..0f7cbed805
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/lock/lock-9-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-1-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-1-dark.png
new file mode 100644
index 0000000000..882a7cc8ce
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-1-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-1-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-1-dark@2x.png
new file mode 100644
index 0000000000..6f859bab44
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-1-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-2-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-2-dark.png
new file mode 100644
index 0000000000..cdab95e22b
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-2-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-2-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-2-dark@2x.png
new file mode 100644
index 0000000000..d2b6ff7449
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-2-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-3-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-3-dark.png
new file mode 100644
index 0000000000..8306d035ed
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-3-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-3-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-3-dark@2x.png
new file mode 100644
index 0000000000..fe7b74a393
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-3-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-4-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-4-dark.png
new file mode 100644
index 0000000000..b0263373c6
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-4-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-4-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-4-dark@2x.png
new file mode 100644
index 0000000000..2b17e41d53
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-4-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-5-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-5-dark.png
new file mode 100644
index 0000000000..e1640ddbec
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-5-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-5-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-5-dark@2x.png
new file mode 100644
index 0000000000..2b3e8e59e9
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-5-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-6-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-6-dark.png
new file mode 100644
index 0000000000..f35ccb57bf
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-6-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-6-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-6-dark@2x.png
new file mode 100644
index 0000000000..d8d3784cb5
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-6-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-7-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-7-dark.png
new file mode 100644
index 0000000000..608e189097
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-7-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-7-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-7-dark@2x.png
new file mode 100644
index 0000000000..cd5807fbbb
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-7-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-8-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-8-dark.png
new file mode 100644
index 0000000000..58459e5614
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-8-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-8-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-8-dark@2x.png
new file mode 100644
index 0000000000..4dcaf3fe13
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-8-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-9-dark.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-9-dark.png
new file mode 100644
index 0000000000..9d1e2a40ee
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-9-dark.png
Binary files differ
diff --git a/app/assets/images/menubar icons/dark ui/spinner/spinner-9-dark@2x.png b/app/assets/images/menubar icons/dark ui/spinner/spinner-9-dark@2x.png
new file mode 100644
index 0000000000..34184758e5
--- /dev/null
+++ b/app/assets/images/menubar icons/dark ui/spinner/spinner-9-dark@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-1-light.png b/app/assets/images/menubar icons/light ui/lock/lock-1-light.png
new file mode 100644
index 0000000000..807e84eafc
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-1-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-1-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-1-light@2x.png
new file mode 100644
index 0000000000..3813dc3eb0
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-1-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-2-light.png b/app/assets/images/menubar icons/light ui/lock/lock-2-light.png
new file mode 100644
index 0000000000..18c1740117
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-2-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-2-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-2-light@2x.png
new file mode 100644
index 0000000000..faba44afbc
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-2-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-3-light.png b/app/assets/images/menubar icons/light ui/lock/lock-3-light.png
new file mode 100644
index 0000000000..f5246c5d98
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-3-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-3-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-3-light@2x.png
new file mode 100644
index 0000000000..ed852a018b
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-3-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-4-light.png b/app/assets/images/menubar icons/light ui/lock/lock-4-light.png
new file mode 100644
index 0000000000..53cfe22523
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-4-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-4-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-4-light@2x.png
new file mode 100644
index 0000000000..c037c1ee0c
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-4-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-5-light.png b/app/assets/images/menubar icons/light ui/lock/lock-5-light.png
new file mode 100644
index 0000000000..ff2ae3b3cd
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-5-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-5-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-5-light@2x.png
new file mode 100644
index 0000000000..cadfc27b89
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-5-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-6-light.png b/app/assets/images/menubar icons/light ui/lock/lock-6-light.png
new file mode 100644
index 0000000000..59685cedac
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-6-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-6-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-6-light@2x.png
new file mode 100644
index 0000000000..ebcfdfaa12
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-6-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-7-light.png b/app/assets/images/menubar icons/light ui/lock/lock-7-light.png
new file mode 100644
index 0000000000..32b84c2e36
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-7-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-7-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-7-light@2x.png
new file mode 100644
index 0000000000..a0ac784efc
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-7-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-8-light.png b/app/assets/images/menubar icons/light ui/lock/lock-8-light.png
new file mode 100644
index 0000000000..4b1b8dbb85
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-8-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-8-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-8-light@2x.png
new file mode 100644
index 0000000000..692823ba45
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-8-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-9-light.png b/app/assets/images/menubar icons/light ui/lock/lock-9-light.png
new file mode 100644
index 0000000000..544ece4528
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-9-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/lock/lock-9-light@2x.png b/app/assets/images/menubar icons/light ui/lock/lock-9-light@2x.png
new file mode 100644
index 0000000000..d24247d5b9
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/lock/lock-9-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-1-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-1-light.png
new file mode 100644
index 0000000000..1a28ae1ad9
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-1-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-1-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-1-light@2x.png
new file mode 100644
index 0000000000..e1a23e70b6
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-1-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-2-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-2-light.png
new file mode 100644
index 0000000000..9282590f52
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-2-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-2-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-2-light@2x.png
new file mode 100644
index 0000000000..8f713ef989
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-2-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-3-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-3-light.png
new file mode 100644
index 0000000000..eba066ea6c
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-3-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-3-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-3-light@2x.png
new file mode 100644
index 0000000000..b1b8ea57dd
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-3-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-4-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-4-light.png
new file mode 100644
index 0000000000..5015b61d42
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-4-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-4-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-4-light@2x.png
new file mode 100644
index 0000000000..5ba6bc04e0
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-4-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-5-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-5-light.png
new file mode 100644
index 0000000000..3d32cd6de6
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-5-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-5-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-5-light@2x.png
new file mode 100644
index 0000000000..c5a3408e55
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-5-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-6-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-6-light.png
new file mode 100644
index 0000000000..93dbbd41d4
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-6-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-6-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-6-light@2x.png
new file mode 100644
index 0000000000..128d91eeef
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-6-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-7-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-7-light.png
new file mode 100644
index 0000000000..a92bd1d5bf
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-7-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-7-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-7-light@2x.png
new file mode 100644
index 0000000000..4fd0135ca5
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-7-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-8-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-8-light.png
new file mode 100644
index 0000000000..39d83adace
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-8-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-8-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-8-light@2x.png
new file mode 100644
index 0000000000..3a799dd816
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-8-light@2x.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-9-light.png b/app/assets/images/menubar icons/light ui/spinner/spinner-9-light.png
new file mode 100644
index 0000000000..d1a781c091
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-9-light.png
Binary files differ
diff --git a/app/assets/images/menubar icons/light ui/spinner/spinner-9-light@2x.png b/app/assets/images/menubar icons/light ui/spinner/spinner-9-light@2x.png
new file mode 100644
index 0000000000..8e41c9cd57
--- /dev/null
+++ b/app/assets/images/menubar icons/light ui/spinner/spinner-9-light@2x.png
Binary files differ
diff --git a/app/components/Login.js b/app/components/Login.js
index dbca676da4..2c92479301 100644
--- a/app/components/Login.js
+++ b/app/components/Login.js
@@ -194,7 +194,7 @@ export default class Login extends Component {
</div>
</div>
</div>
- <div className={footerClass}>
+ <div className={ footerClass }>
<div className="login-footer__prompt">Don't have an account number?</div>
<button className="button button--primary" onClick={ ::this.onCreateAccount }>
<span className="button-label">Create account</span>
diff --git a/app/lib/backend.js b/app/lib/backend.js
index cd650183c2..88be11a5a6 100644
--- a/app/lib/backend.js
+++ b/app/lib/backend.js
@@ -12,7 +12,7 @@ import { ConnectionState as ReduxConnectionState } from '../enums';
* @property {string} city - location city
* @property {string} country - location country
* @property {number[]} location - geo coordinate [latitude, longitude]
-*
+ *
*/
/**
diff --git a/app/lib/tray-animator.js b/app/lib/tray-animator.js
new file mode 100644
index 0000000000..eac809d4f8
--- /dev/null
+++ b/app/lib/tray-animator.js
@@ -0,0 +1,212 @@
+import assert from 'assert';
+import fs from 'fs';
+import path from 'path';
+import { nativeImage } from 'electron';
+
+/**
+ * Tray animation descriptor
+ *
+ * @export
+ * @class TrayAnimation
+ * @property {number} speed - speed per frame
+ * @property {bool} repeat - whether to repeat animation
+ * @property {bool} reverse - play in reverse
+ * @property {bool} alternate - whether to alternate sequence when reached the end of animation
+ * @property {string[]} source - image source
+ * @property {electron.NativeImage} nativeImages - a sequence of native images
+ * @property {bool} isFinished - whether animation sequence is finished (repeating animation never finish)
+ */
+export class TrayAnimation {
+
+ set speed(v) { this._speed = parseInt(v); }
+ get speed() { return this._speed; }
+
+ set repeat(v) { this._repeat = !!v; }
+ get repeat() { return this._repeat; }
+
+ set reverse(v) { this._reverse = !!v; }
+ get reverse() { return this._repeat; }
+
+ set alternate(v) { this._alternate = !!v; }
+ get alternate() { return this._alternate; }
+
+ get source() { return this._source.slice(); }
+ get nativeImages() { return this._nativeImages.slice(); }
+
+ get isFinished() { return this._isFinished; }
+
+ /**
+ * Create animation using file sequence
+ *
+ * @static
+ * @param {string} filePattern - file name pattern where {} is replaced with index
+ * @param {number[]} range - sequence range [start, end]
+ *
+ * @memberOf TrayAnimation
+ * @return {TrayAnimation}
+ */
+ static animationFromFileSequence(filePattern, range) {
+ assert(range.length === 2 && range[0] < range[1]);
+
+ let images = [];
+ for(let i = range[0]; i <= range[1]; i++) {
+ images.push(filePattern.replace('{}', i));
+ }
+
+ return new TrayAnimation(images);
+ }
+
+ /**
+ * Creates an instance of TrayAnimation.
+ * @param {string[]} images
+ *
+ * @memberOf TrayAnimation
+ */
+ constructor(images) {
+ assert(images.length > 0);
+
+ this._source = images.slice();
+ this._nativeImages = images.map(path => nativeImage.createFromPath(path))
+ this._speed = 200; // ms
+ this._repeat = false;
+ this._reverse = false;
+ this._alternate = false;
+
+ this._numFrames = images.length;
+ this._currentFrame = 0;
+ this._isFinished = false;
+ }
+
+ get currentImage() {
+ return this._nativeImages[this._currentFrame];
+ }
+
+ advanceFrame() {
+ // do not advance frame when animation is finished
+ if(this._isFinished) { return; }
+
+ // advance frame
+ let nextFrame = this._nextFrame(this._currentFrame, this._reverse);
+
+ // did reach end?
+ if(nextFrame < 0 || nextFrame >= this._numFrames) {
+ // change animation direction if marked for alternation
+ if(this._alternate) {
+ this._reverse = !this._reverse;
+ }
+
+ // clamp range
+ nextFrame = Math.min(Math.max(0, nextFrame), this._numFrames);
+
+ if(this._repeat) {
+ // repeat animation: skip corner frame by advancing once again
+ nextFrame = this._nextFrame(nextFrame, this._reverse);
+ } else {
+ // mark animation as finished if it's not marked as repeating
+ this._isFinished = true;
+ }
+ }
+
+ this._currentFrame = nextFrame;
+ }
+
+ /**
+ * Calculate next frame
+ * @private
+ * @param {number} cur - current frame
+ * @param {bool} isReverse - reverse sequence direction?
+ * @returns
+ *
+ * @memberOf TrayAnimation
+ */
+ _nextFrame(cur, isReverse) {
+ return cur + (isReverse ? -1 : 1);
+ }
+
+}
+
+/**
+ * Tray icon animator
+ *
+ * @class TrayAnimator
+ */
+export class TrayAnimator {
+
+ /**
+ * Whether animator has started.
+ * @readonly
+ * @memberOf TrayAnimator
+ */
+ get isStarted() { return this._started; }
+
+ /**
+ * Creates an instance of TrayAnimator.
+ * @param {electron.Tray} tray - an instance of Tray
+ * @param {TrayAnimation} animation - an instance of TrayAnimation
+ *
+ * @memberOf TrayAnimator
+ */
+ constructor(tray, animation) {
+ this._tray = null;
+ this._animation = anim;
+ this._started = false;
+ this._timer = null;
+ }
+
+ /**
+ * Start animating
+ * @memberOf TrayAnimator
+ */
+ start() {
+ assert(this._started === false);
+ this._timer = this._nextFrame();
+ this._started = true;
+
+ // update from initial frame
+ this._updateTrayIcon();
+ }
+
+ /**
+ * Stop animating
+ * @memberOf TrayAnimator
+ */
+ stop() {
+ assert(this._started === true);
+
+ this._started = false;
+
+ clearTimeout(this._timer);
+ this._timer = null;
+ }
+
+ /**
+ * Schedules next animation frame
+ * @returns {number} timer ID
+ * @memberOf TrayAnimator
+ */
+ _nextFrame() {
+ return setTimeout(::this._updateAnimationFrame, this._animation.speed)
+ }
+
+ /**
+ * Updates animation frame
+ * @memberOf TrayAnimator
+ */
+ _updateAnimationFrame() {
+ this._animation.advanceFrame();
+ this._updateTrayIcon();
+
+ if(!this._animation.isFinished && this._started) {
+ this._nextFrame();
+ }
+ }
+
+ /**
+ * Update tray icon with current frame
+ * @memberOf TrayAnimator
+ */
+ _updateTrayIcon() {
+ this._tray.setImage(this._animation.currentImage);
+ }
+
+}