From c350719de9dd8da6f07ae2b543399498bd62113c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EA=B2=BD=ED=9D=AC?= Date: Thu, 8 Aug 2013 20:28:41 +0900 Subject: [PATCH 1/2] Contact API --- .project | 11 + Contacts/contact_create.html | 53 ++++ Contacts/contact_read.html | 56 ++++ Contacts/css/headers.css | 257 +++++++++++++++++ Contacts/css/input_areas.css | 263 ++++++++++++++++++ Contacts/css/lists.css | 124 +++++++++ Contacts/css/style.css | 66 +++++ Contacts/images/buttons/icons/dialog.png | Bin 0 -> 1167 bytes Contacts/images/buttons/icons/dialog@1.5x.png | Bin 0 -> 757 bytes Contacts/images/buttons/icons/dialog@2x.png | Bin 0 -> 1266 bytes Contacts/images/buttons/icons/view.png | Bin 0 -> 1235 bytes Contacts/images/buttons/icons/view@1.5x.png | Bin 0 -> 1105 bytes Contacts/images/buttons/icons/view@2x.png | Bin 0 -> 1385 bytes .../images/buttons/ui/danger-disabled.png | Bin 0 -> 1020 bytes Contacts/images/buttons/ui/danger-press.png | Bin 0 -> 1015 bytes Contacts/images/buttons/ui/danger.png | Bin 0 -> 1031 bytes Contacts/images/buttons/ui/default.png | Bin 0 -> 1014 bytes Contacts/images/buttons/ui/disabled.png | Bin 0 -> 1013 bytes Contacts/images/buttons/ui/recommend.png | Bin 0 -> 1020 bytes Contacts/images/buttons/ui/shadow.png | Bin 0 -> 146 bytes Contacts/images/buttons/ui/shadow@1.5x.png | Bin 0 -> 331 bytes Contacts/images/buttons/ui/shadow@2x.png | Bin 0 -> 939 bytes Contacts/images/comms_icons.png | Bin 0 -> 9669 bytes Contacts/images/headers/.DS_Store | Bin 0 -> 6148 bytes Contacts/images/headers/icons/.DS_Store | Bin 0 -> 12292 bytes Contacts/images/headers/icons/add.png | Bin 0 -> 1335 bytes Contacts/images/headers/icons/add@1.5x.png | Bin 0 -> 733 bytes Contacts/images/headers/icons/add@2x.png | Bin 0 -> 427 bytes Contacts/images/headers/icons/back-rtl.png | Bin 0 -> 1335 bytes .../images/headers/icons/back-rtl@1.5x.png | Bin 0 -> 937 bytes Contacts/images/headers/icons/back-rtl@2x.png | Bin 0 -> 475 bytes Contacts/images/headers/icons/back.png | Bin 0 -> 1372 bytes Contacts/images/headers/icons/back@1.5x.png | Bin 0 -> 865 bytes Contacts/images/headers/icons/back@2x.png | Bin 0 -> 489 bytes Contacts/images/headers/icons/clear.png | Bin 0 -> 3278 bytes Contacts/images/headers/icons/clear@1.5x.png | Bin 0 -> 1215 bytes Contacts/images/headers/icons/clear@2x.png | Bin 0 -> 573 bytes Contacts/images/headers/icons/close.png | Bin 0 -> 1423 bytes Contacts/images/headers/icons/close@1.5x.png | Bin 0 -> 1337 bytes Contacts/images/headers/icons/close@2x.png | Bin 0 -> 674 bytes Contacts/images/headers/icons/compose.png | Bin 0 -> 1577 bytes .../images/headers/icons/compose@1.5x.png | Bin 0 -> 1529 bytes Contacts/images/headers/icons/compose@2x.png | Bin 0 -> 727 bytes Contacts/images/headers/icons/edit.png | Bin 0 -> 1612 bytes Contacts/images/headers/icons/edit@1.5x.png | Bin 0 -> 1612 bytes Contacts/images/headers/icons/edit@2x.png | Bin 0 -> 2007 bytes Contacts/images/headers/icons/menu.png | Bin 0 -> 1161 bytes Contacts/images/headers/icons/menu@1.5x.png | Bin 0 -> 633 bytes Contacts/images/headers/icons/menu@2x.png | Bin 0 -> 282 bytes Contacts/images/headers/icons/reply-all.png | Bin 0 -> 1286 bytes .../images/headers/icons/reply-all@1.5x.png | Bin 0 -> 1504 bytes .../images/headers/icons/reply-all@2x.png | Bin 0 -> 1606 bytes Contacts/images/headers/icons/reply.png | Bin 0 -> 1513 bytes Contacts/images/headers/icons/reply@1.5x.png | Bin 0 -> 1561 bytes Contacts/images/headers/icons/reply@2x.png | Bin 0 -> 1873 bytes Contacts/images/headers/icons/send.png | Bin 0 -> 1476 bytes Contacts/images/headers/icons/send@1.5x.png | Bin 0 -> 1640 bytes Contacts/images/headers/icons/send@2x.png | Bin 0 -> 3936 bytes Contacts/images/headers/icons/user.png | Bin 0 -> 1498 bytes Contacts/images/headers/icons/user@1.5x.png | Bin 0 -> 1640 bytes Contacts/images/headers/icons/user@2x.png | Bin 0 -> 974 bytes Contacts/images/headers/ui/dark/header.png | Bin 0 -> 974 bytes Contacts/images/headers/ui/dark/negative.png | Bin 0 -> 989 bytes .../headers/ui/dark/separator-large.png | Bin 0 -> 1078 bytes Contacts/images/headers/ui/dark/separator.png | Bin 0 -> 1081 bytes Contacts/images/headers/ui/dark/subheader.png | Bin 0 -> 90 bytes Contacts/images/headers/ui/header.png | Bin 0 -> 985 bytes Contacts/images/headers/ui/noise-pattern.png | Bin 0 -> 4837 bytes Contacts/images/headers/ui/organic/header.png | Bin 0 -> 976 bytes .../images/headers/ui/organic/negative.png | Bin 0 -> 73 bytes .../images/headers/ui/organic/pattern.png | Bin 0 -> 1852 bytes .../headers/ui/organic/separator-large.png | Bin 0 -> 1133 bytes .../images/headers/ui/organic/separator.png | Bin 0 -> 1081 bytes .../images/headers/ui/organic/subheader.png | Bin 0 -> 2394 bytes Contacts/images/headers/ui/overlay/header.png | Bin 0 -> 73 bytes .../images/headers/ui/overlay/separator.png | Bin 0 -> 142 bytes .../images/headers/ui/separator-large.png | Bin 0 -> 1046 bytes Contacts/images/headers/ui/separator.png | Bin 0 -> 1067 bytes Contacts/images/headers/ui/shadow.png | Bin 0 -> 1000 bytes Contacts/images/headers/ui/shadow@1.5x.png | Bin 0 -> 306 bytes Contacts/images/headers/ui/shadow@2x.png | Bin 0 -> 89 bytes Contacts/images/headers/ui/subheader.png | Bin 0 -> 73 bytes Contacts/images/input_areas/icons/arrow.png | Bin 0 -> 1002 bytes .../images/input_areas/icons/arrow@1.5x.png | Bin 0 -> 613 bytes .../images/input_areas/icons/arrow@2x.png | Bin 0 -> 1101 bytes .../images/input_areas/icons/clear-dark.png | Bin 0 -> 1258 bytes .../input_areas/icons/clear-dark@1.5x.png | Bin 0 -> 971 bytes .../input_areas/icons/clear-dark@2x.png | Bin 0 -> 3722 bytes Contacts/images/input_areas/icons/clear.png | Bin 0 -> 1367 bytes .../images/input_areas/icons/clear@1.5x.png | Bin 0 -> 1320 bytes .../images/input_areas/icons/clear@2x.png | Bin 0 -> 1735 bytes .../images/input_areas/icons/search-dark.png | Bin 0 -> 1228 bytes .../input_areas/icons/search-dark@1.5x.png | Bin 0 -> 1200 bytes .../input_areas/icons/search-dark@2x.png | Bin 0 -> 1577 bytes Contacts/images/input_areas/icons/search.png | Bin 0 -> 1265 bytes .../images/input_areas/icons/search@1.5x.png | Bin 0 -> 1203 bytes .../images/input_areas/icons/search@2x.png | Bin 0 -> 1588 bytes Contacts/images/input_areas/ui/active.png | Bin 0 -> 1014 bytes .../images/input_areas/ui/background-dark.png | Bin 0 -> 1266 bytes Contacts/images/input_areas/ui/background.png | Bin 0 -> 936 bytes .../images/input_areas/ui/separator-dark.png | Bin 0 -> 1067 bytes .../input_areas/ui/separator-dark@1.5x.png | Bin 0 -> 1122 bytes .../input_areas/ui/separator-dark@2x.png | Bin 0 -> 1253 bytes Contacts/images/input_areas/ui/separator.png | Bin 0 -> 1000 bytes .../images/input_areas/ui/separator@1.5x.png | Bin 0 -> 939 bytes .../images/input_areas/ui/separator@2x.png | Bin 0 -> 1185 bytes .../images/input_areas/ui/shadow-invert.png | Bin 0 -> 932 bytes .../input_areas/ui/shadow-invert@1.5x.png | Bin 0 -> 300 bytes .../input_areas/ui/shadow-invert@2x.png | Bin 0 -> 95 bytes .../images/input_areas/ui/shadow-search.png | Bin 0 -> 930 bytes .../input_areas/ui/shadow-search@1.5x.png | Bin 0 -> 306 bytes .../input_areas/ui/shadow-search@2x.png | Bin 0 -> 88 bytes Contacts/images/input_areas/ui/shadow.png | Bin 0 -> 927 bytes .../images/input_areas/ui/shadow@1.5x.png | Bin 0 -> 294 bytes Contacts/images/input_areas/ui/shadow@2x.png | Bin 0 -> 82 bytes Contacts/index.html | 42 +++ Contacts/js/app.js | 218 +++++++++++++++ Contacts/manifest.webapp | 20 ++ Contacts/sample.html | 85 ++++++ 119 files changed, 1195 insertions(+) create mode 100644 .project create mode 100644 Contacts/contact_create.html create mode 100644 Contacts/contact_read.html create mode 100644 Contacts/css/headers.css create mode 100644 Contacts/css/input_areas.css create mode 100644 Contacts/css/lists.css create mode 100644 Contacts/css/style.css create mode 100644 Contacts/images/buttons/icons/dialog.png create mode 100644 Contacts/images/buttons/icons/dialog@1.5x.png create mode 100644 Contacts/images/buttons/icons/dialog@2x.png create mode 100644 Contacts/images/buttons/icons/view.png create mode 100644 Contacts/images/buttons/icons/view@1.5x.png create mode 100644 Contacts/images/buttons/icons/view@2x.png create mode 100644 Contacts/images/buttons/ui/danger-disabled.png create mode 100644 Contacts/images/buttons/ui/danger-press.png create mode 100644 Contacts/images/buttons/ui/danger.png create mode 100644 Contacts/images/buttons/ui/default.png create mode 100644 Contacts/images/buttons/ui/disabled.png create mode 100644 Contacts/images/buttons/ui/recommend.png create mode 100644 Contacts/images/buttons/ui/shadow.png create mode 100644 Contacts/images/buttons/ui/shadow@1.5x.png create mode 100644 Contacts/images/buttons/ui/shadow@2x.png create mode 100644 Contacts/images/comms_icons.png create mode 100644 Contacts/images/headers/.DS_Store create mode 100644 Contacts/images/headers/icons/.DS_Store create mode 100644 Contacts/images/headers/icons/add.png create mode 100644 Contacts/images/headers/icons/add@1.5x.png create mode 100644 Contacts/images/headers/icons/add@2x.png create mode 100644 Contacts/images/headers/icons/back-rtl.png create mode 100644 Contacts/images/headers/icons/back-rtl@1.5x.png create mode 100644 Contacts/images/headers/icons/back-rtl@2x.png create mode 100644 Contacts/images/headers/icons/back.png create mode 100644 Contacts/images/headers/icons/back@1.5x.png create mode 100644 Contacts/images/headers/icons/back@2x.png create mode 100644 Contacts/images/headers/icons/clear.png create mode 100644 Contacts/images/headers/icons/clear@1.5x.png create mode 100644 Contacts/images/headers/icons/clear@2x.png create mode 100644 Contacts/images/headers/icons/close.png create mode 100644 Contacts/images/headers/icons/close@1.5x.png create mode 100644 Contacts/images/headers/icons/close@2x.png create mode 100644 Contacts/images/headers/icons/compose.png create mode 100644 Contacts/images/headers/icons/compose@1.5x.png create mode 100644 Contacts/images/headers/icons/compose@2x.png create mode 100644 Contacts/images/headers/icons/edit.png create mode 100644 Contacts/images/headers/icons/edit@1.5x.png create mode 100644 Contacts/images/headers/icons/edit@2x.png create mode 100644 Contacts/images/headers/icons/menu.png create mode 100644 Contacts/images/headers/icons/menu@1.5x.png create mode 100644 Contacts/images/headers/icons/menu@2x.png create mode 100644 Contacts/images/headers/icons/reply-all.png create mode 100644 Contacts/images/headers/icons/reply-all@1.5x.png create mode 100644 Contacts/images/headers/icons/reply-all@2x.png create mode 100644 Contacts/images/headers/icons/reply.png create mode 100644 Contacts/images/headers/icons/reply@1.5x.png create mode 100644 Contacts/images/headers/icons/reply@2x.png create mode 100644 Contacts/images/headers/icons/send.png create mode 100644 Contacts/images/headers/icons/send@1.5x.png create mode 100644 Contacts/images/headers/icons/send@2x.png create mode 100644 Contacts/images/headers/icons/user.png create mode 100644 Contacts/images/headers/icons/user@1.5x.png create mode 100644 Contacts/images/headers/icons/user@2x.png create mode 100644 Contacts/images/headers/ui/dark/header.png create mode 100644 Contacts/images/headers/ui/dark/negative.png create mode 100644 Contacts/images/headers/ui/dark/separator-large.png create mode 100644 Contacts/images/headers/ui/dark/separator.png create mode 100644 Contacts/images/headers/ui/dark/subheader.png create mode 100644 Contacts/images/headers/ui/header.png create mode 100644 Contacts/images/headers/ui/noise-pattern.png create mode 100644 Contacts/images/headers/ui/organic/header.png create mode 100644 Contacts/images/headers/ui/organic/negative.png create mode 100644 Contacts/images/headers/ui/organic/pattern.png create mode 100644 Contacts/images/headers/ui/organic/separator-large.png create mode 100644 Contacts/images/headers/ui/organic/separator.png create mode 100644 Contacts/images/headers/ui/organic/subheader.png create mode 100644 Contacts/images/headers/ui/overlay/header.png create mode 100644 Contacts/images/headers/ui/overlay/separator.png create mode 100644 Contacts/images/headers/ui/separator-large.png create mode 100644 Contacts/images/headers/ui/separator.png create mode 100644 Contacts/images/headers/ui/shadow.png create mode 100644 Contacts/images/headers/ui/shadow@1.5x.png create mode 100644 Contacts/images/headers/ui/shadow@2x.png create mode 100644 Contacts/images/headers/ui/subheader.png create mode 100644 Contacts/images/input_areas/icons/arrow.png create mode 100644 Contacts/images/input_areas/icons/arrow@1.5x.png create mode 100644 Contacts/images/input_areas/icons/arrow@2x.png create mode 100644 Contacts/images/input_areas/icons/clear-dark.png create mode 100644 Contacts/images/input_areas/icons/clear-dark@1.5x.png create mode 100644 Contacts/images/input_areas/icons/clear-dark@2x.png create mode 100644 Contacts/images/input_areas/icons/clear.png create mode 100644 Contacts/images/input_areas/icons/clear@1.5x.png create mode 100644 Contacts/images/input_areas/icons/clear@2x.png create mode 100644 Contacts/images/input_areas/icons/search-dark.png create mode 100644 Contacts/images/input_areas/icons/search-dark@1.5x.png create mode 100644 Contacts/images/input_areas/icons/search-dark@2x.png create mode 100644 Contacts/images/input_areas/icons/search.png create mode 100644 Contacts/images/input_areas/icons/search@1.5x.png create mode 100644 Contacts/images/input_areas/icons/search@2x.png create mode 100644 Contacts/images/input_areas/ui/active.png create mode 100644 Contacts/images/input_areas/ui/background-dark.png create mode 100644 Contacts/images/input_areas/ui/background.png create mode 100644 Contacts/images/input_areas/ui/separator-dark.png create mode 100644 Contacts/images/input_areas/ui/separator-dark@1.5x.png create mode 100644 Contacts/images/input_areas/ui/separator-dark@2x.png create mode 100644 Contacts/images/input_areas/ui/separator.png create mode 100644 Contacts/images/input_areas/ui/separator@1.5x.png create mode 100644 Contacts/images/input_areas/ui/separator@2x.png create mode 100644 Contacts/images/input_areas/ui/shadow-invert.png create mode 100644 Contacts/images/input_areas/ui/shadow-invert@1.5x.png create mode 100644 Contacts/images/input_areas/ui/shadow-invert@2x.png create mode 100644 Contacts/images/input_areas/ui/shadow-search.png create mode 100644 Contacts/images/input_areas/ui/shadow-search@1.5x.png create mode 100644 Contacts/images/input_areas/ui/shadow-search@2x.png create mode 100644 Contacts/images/input_areas/ui/shadow.png create mode 100644 Contacts/images/input_areas/ui/shadow@1.5x.png create mode 100644 Contacts/images/input_areas/ui/shadow@2x.png create mode 100644 Contacts/index.html create mode 100644 Contacts/js/app.js create mode 100644 Contacts/manifest.webapp create mode 100644 Contacts/sample.html diff --git a/.project b/.project new file mode 100644 index 0000000..0c94d3d --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + F_WebAPI + + + + + + + + diff --git a/Contacts/contact_create.html b/Contacts/contact_create.html new file mode 100644 index 0000000..d24312d --- /dev/null +++ b/Contacts/contact_create.html @@ -0,0 +1,53 @@ + + + +Contacts + + + + + + + + +
+
+ back +

create

+
+
+
+
+ Name +
+

+ + +

+
+
+
+ Tel +
+

+ + +

+
+
+
+ +
+
+
+
+ + + \ No newline at end of file diff --git a/Contacts/contact_read.html b/Contacts/contact_read.html new file mode 100644 index 0000000..3d1c9d6 --- /dev/null +++ b/Contacts/contact_read.html @@ -0,0 +1,56 @@ + + + +Contacts + + + + + + + + +
+ +
+ back +

Contacts

+
+
+
+
+ Name +
+

+ + +

+
+
+
+ Tel +
+

+ + + +

+
+
+
+ + +
+
+
+ +
+ + + \ No newline at end of file diff --git a/Contacts/css/headers.css b/Contacts/css/headers.css new file mode 100644 index 0000000..4c6297d --- /dev/null +++ b/Contacts/css/headers.css @@ -0,0 +1,257 @@ +/* ---------------------------------- + * HEADERS: default + * ---------------------------------- */ +section[role="region"]>header:first-child { + position: relative; z-index: 10; padding: 0; height: 5rem; color: #fff; + background: url(../images/headers/ui/header.png) repeat-x 0 0; background-size: auto 100%; border: none; +} + +section[role="region"]>header:first-child:after { + content: ""; display: block; height: 0.3rem; position: absolute; top: 100%; left: 0; right: 0; + background: url(../images/headers/ui/shadow.png) repeat-x; background-size: auto 100%; +} + +section[role="region"]>header:first-child h1 { + font-size: 2.5rem; line-height: 4.8rem; text-align: left; color: #fff; white-space: nowrap; text-overflow: ellipsis; + display: block; overflow: hidden; margin: 0 0 0 3rem; padding-right: 1rem; height: 100%; font-weight: normal; +} + +section[role="region"]>header:first-child h1 em { + font-weight: 400; font-size: 1.5rem; line-height: 1em; font-style: normal; +} + +section[role="region"]>header:first-child form { + display: block; overflow: hidden; position: relative; padding: 1rem 1rem 0 0.5rem; margin-left: 2.5rem; +} + +section[role="region"]>header:first-child input[type="text"] { + width: 100%; height: 3rem; -moz-box-sizing: border-box; padding: 0 0.8rem; border: solid 0.1rem #9d4123; + border-top-color: #a6501e; border-radius: 0.3rem; + background: #fff url(../images/headers/ui/shadow.png) repeat-x left -0.1rem; font-size: 1.5rem; line-height: 3em; + box-shadow: none; +} + +section[role="region"]>header:first-child form button[type="reset"] { + font-size: 0; overflow: hidden; position: absolute; right: 1rem; top: 1rem; bottom: 0; width: 3rem; height: auto; + margin: 0; display: none; border: none; + background: url(../images/headers/icons/clear.png) no-repeat center center/1.7rem auto; +} + +section[role="region"]>header:first-child input[type="text"]:valid+button[type="reset"] { + display: block; +} + +/* Generic set of actions in toolbar */ +section[role="region"]>header:first-child menu[type="toolbar"] { + height: 100%; float: right; +} + +section[role="region"]>header:first-child menu[type="toolbar"] a,section[role="region"]>header:first-child menu[type="toolbar"] button + { + -moz-box-sizing: border-box; position: relative; float: left; width: auto; min-width: 5rem; height: 5rem; + margin-bottom: 0; padding: 0 1rem; border-radius: 0; line-height: 5rem; background: none; text-align: center; + text-shadow: none; z-index: 5; +} + +section[role="region"]>header:first-child menu[type="toolbar"] a:last-child,section[role="region"]>header:first-child menu[type="toolbar"] button:last-child + { + background: url(../images/headers/ui/separator.png) no-repeat left center/auto 4.8rem; margin-left: -0.2rem; z-index: 1; +} + +section[role="region"]>header:first-child menu[type="toolbar"] { + padding: 0; margin: 0; +} + +section[role="region"]>header:first-child a,section[role="region"]>header:first-child button { + border: none; padding: 0; overflow: hidden; font-weight: 400; font-size: 1.5rem; line-height: 1.1em; color: #fff; + border-radius: 0; text-decoration: none; +} + +/* Pressed state */ +section[role="region"]>header:first-child a::-moz-focus-inner,section[role="region"]>header:first-child button::-moz-focus-inner,section[role="region"]>header:first-child a:active,section[role="region"]>header:first-child button:active,section[role="region"]>header:first-child a:focus,section[role="region"]>header:first-child button:focus + { + outline: none !important; border: none !important; +} + +section[role="region"]>header:first-child a:not ([aria-disabled="true"] + ):active .icon:after,section[role="region"]>header:first-child button:not + (:disabled ):active .icon:after,section[role="region"]>header:first-child menu[type="toolbar"] a:not + ([aria-disabled="true"] ):active,section[role="region"]>header:first-child menu[type="toolbar"] button:not + (:disabled ):active { + background: #008aaa !important; transition: background 0.2s ease; +} + +/* Disabled state */ +section[role="region"]>header:first-child menu[type="toolbar"] a[aria-disabled="true"],section[role="region"]>header:first-child menu[type="toolbar"] button[disabled] + { + opacity: 0.5; +} + +section[role="region"]>header:first-child a:first-letter,section[role="region"]>header:first-child button:first-letter { + text-transform: uppercase; +} + +/* Icon definitions */ +section[role="region"]>header:first-child .icon { + position: relative; float: none; display: inline-block; vertical-align: top; width: 3rem; height: 4.9rem; + margin: 0 -1rem; background: transparent no-repeat center center/3rem auto; font-size: 0; overflow: hidden; +} + +section[role="region"]>header:first-child .icon.icon-add { + background-image: url(../images/headers/icons/add.png); +} + +section[role="region"]>header:first-child .icon.icon-compose { + background-image: url(../images/headers/icons/compose.png); +} + +section[role="region"]>header:first-child .icon.icon-edit { + background-image: url(../images/headers/icons/edit.png); +} + +section[role="region"]>header:first-child .icon.icon-send { + background-image: url(../images/headers/icons/send.png); +} + +section[role="region"]>header:first-child .icon.icon-close { + background-image: url(../images/headers/icons/close.png); +} + +section[role="region"]>header:first-child .icon.icon-back { + background-image: url(../images/headers/icons/back.png); +} + +section[role="region"]>header:first-child .icon.icon-menu { + background-image: url(../images/headers/icons/menu.png); +} + +section[role="region"]>header:first-child .icon.icon-user { + background-image: url(../images/headers/icons/user.png); +} + +section[role="region"]>header:first-child .icon.icon-reply { + background-image: url(../images/headers/icons/reply.png); +} + +section[role="region"]>header:first-child .icon.icon-reply-all { + background-image: url(../images/headers/icons/reply-all.png); +} + +/* Navigation links (back, cancel, etc) */ +section[role="region"]>header:first-child>button,section[role="region"]>header:first-child>a { + position: absolute; left: 0; width: 5rem; height: 5rem; + background: url(../images/headers/ui/separator-large.png) no-repeat 2rem top/0.2rem 5rem; overflow: hidden; +} + +section[role="region"]>header:first-child>button::-moz-focus-inner { + border: 0; padding: 0; +} + +section[role="region"]>header:first-child>button .icon,section[role="region"]>header:first-child>a .icon { + position: static; display: block; width: 2rem; height: 4.9rem; margin: 0; overflow: visible; font-size: 0; +} + +section[role="region"]>header:first-child>button .icon:after,section[role="region"]>header:first-child>a .icon:after { + content: ""; position: absolute; left: 0; top: 0; z-index: -1; width: 2rem; height: 4.9rem; background-color: #a03f25; +} + +section[role="region"]>header>a .icon.icon-menu,section[role="region"]>header>button .icon.icon-menu { + background-position: -1.1rem center; +} + +/* ---------------------------------- + * HEADERS: subheader + * ---------------------------------- */ +section[role="region"]>header { + z-index: 0; height: auto; +} + +section[role="region"]>header:after { + display: none; +} + +section[role="region"] header h2 { + margin: 0; padding: 0.8rem 3rem; color: #424242; font-weight: 400; font-size: 1.5rem; line-height: 1.8rem; + border-bottom: solid 0.1rem #e6e6e6; +} + +/* ---------------------------------- + * HEADERS: dark + * ---------------------------------- */ +section[role="region"].skin-dark>header:first-child,.skin-dark section[role="region"]>header:first-child { + background-image: url(../images/headers/ui/dark/header.png); +} + +section[role="region"].skin-dark>header:first-child menu[type="toolbar"] a:last-child,.skin-dark section[role="region"]>header:first-child menu[type="toolbar"] a:last-child,section[role="region"].skin-dark>header:first-child menu[type="toolbar"] button:last-child,.skin-dark section[role="region"]>header:first-child menu[type="toolbar"] button:last-child + { + background: url(../images/headers/ui/dark/separator.png) no-repeat left center/auto 4.8rem; +} + +/* Navigation links (back, cancel, etc) */ +section[role="region"].skin-dark>header:first-child>a .icon:after,.skin-dark section[role="region"]>header:first-child>a .icon:after,section[role="region"].skin-dark>header:first-child>button .icon:after,.skin-dark section[role="region"]>header:first-child>button .icon:after + { + background-image: url(../images/headers/ui/dark/negative.png); background-color: transparent; +} + +section[role="region"].skin-dark>header:first-child a,.skin-dark section[role="region"]>header:first-child a,section[role="region"].skin-dark>header:first-child button,.skin-dark section[role="region"]>header:first-child button + { + background: url(../images/headers/ui/dark/separator-large.png) no-repeat 2rem top/0.2rem 4.8rem; +} + +section[role="region"].skin-dark header h2,.skin-dark section[role="region"] header h2 { + background: #2e3c3f url(../images/headers/ui/organic/subheader.png); color: #fff; border: none; +} + +/* ---------------------------------- + * HEADERS: organic + * ---------------------------------- */ +section[role="region"].skin-organic>header:first-child,.skin-organic section[role="region"]>header:first-child { + background-image: url(../images/headers/ui/noise-pattern.png), url(../images/headers/ui/organic/header.png); + background-size: auto; +} + +section[role="region"].skin-organic>header:first-child menu[type="toolbar"] a:last-child,.skin-organic section[role="region"]>header:first-child menu[type="toolbar"] a:last-child,section[role="region"].skin-organic>header:first-child menu[type="toolbar"] button:last-child,.skin-organic section[role="region"]>header:first-child menu[type="toolbar"] button:last-child + { + background: url(../images/headers/ui/organic/separator.png) no-repeat left center/auto 4.8rem; +} + +/* Navigation links (back, cancel, etc) */ +section[role="region"].skin-organic>header:first-child>a .icon:after,.skin-organic section[role="region"]>header:first-child>a .icon:after,section[role="region"].skin-organic>header:first-child>button .icon:after,.skin-organic section[role="region"]>header>button .icon:after + { + background: #23292b url(../images/headers/ui/noise-pattern.png); background-size: auto; +} + +section[role="region"].skin-organic>header:first-child a,.skin-organic section[role="region"]>header:first-child a,section[role="region"].skin-organic>header:first-child button,.skin-organic section[role="region"]>header:first-child button + { + background: url(../images/headers/ui/organic/separator-large.png) no-repeat 2rem top/0.2rem 4.8rem; +} + +section[role="region"].skin-organic header h2,.skin-organic section[role="region"] header h2 { + background: #5c6a6d url(../images/headers/ui/organic/subheader.png); color: #fff; border: none; +} + +/* ---------------------------------- + * HEADERS: right-to-left tweaks + * ---------------------------------- */ +html[dir="rtl"] section[role="region"]>header:first-child h1 { + text-align: right; margin: 0 3rem 0 0; +} + +html[dir="rtl"] section[role="region"]>header:first-child button,html[dir="rtl"] section[role="region"]>header:first-child a + { + left: inherit; right: 0; +} + +html[dir="rtl"] section[role="region"]>header:first-child>button .icon,html[dir="rtl"] section[role="region"]>header:first-child>a .icon + { + margin-left: 0; margin-right: -2rem; +} + +html[dir="rtl"] section[role="region"]>header:first-child>button .icon:after,html[dir="rtl"] section[role="region"]>header:first-child>a .icon:after + { + left: inherit; right: 0; +} + +html[dir="rtl"] section[role="region"]>header:first-child .icon.icon-back { + background-image: url(../images/headers/icons/back-rtl.png); +} \ No newline at end of file diff --git a/Contacts/css/input_areas.css b/Contacts/css/input_areas.css new file mode 100644 index 0000000..c03c182 --- /dev/null +++ b/Contacts/css/input_areas.css @@ -0,0 +1,263 @@ +/* ---------------------------------- +* Input areas +* ---------------------------------- */ +input[type="text"],input[type="password"],input[type="email"],input[type="tel"],input[type="search"],input[type="url"],input[type="number"],textarea + { + -moz-box-sizing: border-box; display: block; overflow: hidden; width: 100%; height: 4rem; resize: none; + padding: 0 1.2rem; font-size: 1.8rem; line-height: 4rem; border: 0.1rem solid #ccc; border-radius: 0.3rem; + box-shadow: none; + /* override the box-shadow from the system (performance issue) */ + background: #fff url(../images/input_areas/ui/shadow.png) repeat-x; +} + +textarea { + height: 10rem; max-height: 10rem; line-height: 2rem; margin: 0; +} + +/* fix for required inputs with wrong or empty value e.g. [type=email] */ +input:invalid,textarea:invalid { + border: 0.1rem solid #820000; color: #b90000; +} + +input::-moz-placeholder,textarea::-moz-placeholder { + color: #858585; opacity: 1; +} + +input:-moz-placeholder,textarea:-moz-placeholder { + color: #858585; opacity: 1; +} + +form p { + position: relative; margin: 0; +} + +form p+p { + margin-top: 1rem; +} + +form p input+button[type="reset"],form p textarea+button[type="reset"] { + position: absolute; top: 50%; right: 0; width: 3rem; height: 4rem; padding: 0; border: none; font-size: 0; opacity: 0; + pointer-events: none; background: transparent url(../images/input_areas/icons/clear.png) no-repeat 50% 50%/1.7rem auto; +} + +form.skin-dark p input+button[type="reset"],form.skin-dark p textarea+button[type="reset"] { + background-image: url(../images/input_areas/icons/clear-dark.png); +} + +/* To avoid colission with BB butons */ +li input+button[type="reset"]:after,li textarea+button[type="reset"]:after { + background: none; +} + +form p input+button[type="reset"],form p textarea+button[type="reset"] { + top: 0; margin: 0; +} + +textarea { + padding: 1.2rem; +} + +form p input:focus { + padding-right: 3rem; +} + +form p input:focus+button[type="reset"],form p textarea:focus+button[type="reset"] { + opacity: 1; pointer-events: all; +} + +/* Fieldset */ +fieldset { + position: relative; overflow: hidden; margin: 0; padding: 0; border-radius: 0.3rem; + border: 0.1rem solid rgba(0, 0, 0, .2); font-size: 1.8rem; line-height: 1em; + background: #fff url(../images/input_areas/ui/shadow.png) repeat-x left top; +} + +fieldset+fieldset { + margin-top: 1.5rem; +} + +fieldset legend { + -moz-box-sizing: border-box; position: absolute; width: 9.5rem; height: 100%; padding: 0 0.5rem 0 1.5rem; + white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: #333; line-height: 4rem; + text-transform: uppercase; +} + +fieldset legend.action { + background: url(../images/input_areas/icons/arrow.png) no-repeat 100% 100%/1.2rem; +} + +fieldset legend:active { + background-color: #008caa; text-shadow: 0.1rem 0.1rem 0 rgba(255, 255, 255, .3); +} + +fieldset section input[type="text"],fieldset section input[type="password"],fieldset section input[type="email"],fieldset section input[type="tel"],fieldset section input[type="search"],fieldset section input[type="number"],fieldset section textarea + { + height: 4rem; border: none; border-radius: 0; background: none; +} + +fieldset section { + display: block; border-left: 0.1rem solid #ddd; border-radius: 0 0.3rem 0.3rem 0; overflow: hidden; margin-left: 9.5rem; +} + +fieldset section p { + margin: 0; border-bottom: 0.1rem solid #ddd; +} + +fieldset section p:last-child { + border-bottom: none; +} + +/* Tidy (search/submit) */ +form[role="search"] { + position: relative; height: 3.7rem; background: #dbe3eb; +} + +form[role="search"].skin-dark { + background: url(../images/input_areas/ui/background-dark.png) repeat; background-size: 2rem; +} + +form[role="search"].bottom { + background: #fff; +} + +form[role="search"]:before { + content: ""; position: absolute; top: 1rem; left: 1rem; height: 1.6rem; width: 1.6rem; + background: url(../images/input_areas/icons/search.png) no-repeat; background-size: 1.6rem; +} + +form[role="search"].bottom:before { + display: none; +} + +form[role="search"].skin-dark:before { + background-image: url(../images/input_areas/icons/search-dark.png); +} + +form[role="search"]:after { + content: ""; position: absolute; top: 3.6rem; right: 0; left: 0; height: 0.4rem; + background: url(../images/input_areas/ui/shadow-search.png) repeat-x left top; border-top: 0.1rem solid #fff; +} + +form[role="search"].bottom:after { + content: ""; position: absolute; top: -0.4rem; + background: url(../images/input_areas/ui/shadow-invert.png) repeat-x 0 100%; border-color: transparent; +} + +form[role="search"].skin-dark:after { + border-color: #2b3538; +} + +section[role="region"]>header:first-child+form[role="search"]:after { + background: none; +} + +form[role="search"] p { + padding: 0.4rem 1.2rem 0 3.2rem; overflow: hidden; +} + +form[role="search"].bottom p { + padding: 0.4rem 1.2rem 0 1.2rem; +} + +form[role="search"] p input,form[role="search"] p textarea { + height: 3rem; border: none; background: none; font-size: 1.8rem; padding: 0.5rem 0; +} + +form[role="search"] p input:focus { + padding: 0 2rem 0 0; +} + +form[role="search"] p input:invalid,form[role="search"] p textarea:invalid { + border: none; +} + +form[role="search"].skin-dark p input,form[role="search"].skin-dark p textarea { + color: #fff; +} + +form[role="search"] button.icon { + float: left; height: 3.7rem; width: 3rem; border: none; font-size: 0; + background: url(../images/input_areas/ui/separator.png) no-repeat 100% 50%, url(../images/input_areas/ui/background.png) + repeat-x 0 100%; background-size: auto 100%; border-radius: 0; margin: 0; padding: 0; margin: 0; position: relative; +} + +form[role="search"] button.icon:before { + content: ""; position: absolute; width: 3rem; height: 3.7rem; background: transparent center no-repeat; top: 0; left: 0; +} + +form[role="search"] p button[type="reset"] { + right: 0; +} + +form[role="search"] button[type="submit"] { + float: right; min-width: 6rem; height: 3.7rem; padding: 0 1.5rem; border: none; color: #000; font-weight: 500; + font-size: 1.6rem; line-height: 3.2rem; background: url(../images/input_areas/ui/separator.png) no-repeat 0 50%; + background-size: auto 100%; border-radius: 0; width: auto; border-radius: 0; margin: 0; +} + +form[role="search"].bottom button[type="submit"] { + color: #333; + background: url(../images/input_areas/ui/separator.png) no-repeat 0 50%, url(../images/input_areas/ui/active.png) + repeat-x 0 100%; +} + +form[role="search"].skin-dark button[type="submit"] { + color: #fff; background-image: url(../images/input_areas/ui/separator-dark.png); +} + +form[role="search"] button[type="submit"]+p>textarea { + height: 3rem; line-height: 2rem; font-size: 1.8rem; +} + +form[role="search"] button[type="submit"]+p button { + height: 3.7rem; +} + +form[role="search"].full button[type="submit"] { + display: none; +} + +form[role="search"] button.icon:active,form[role="search"] button[type="submit"]:active { + background: #008caa; text-shadow: 0.1rem 0.1rem 0 rgba(255, 255, 255, .3); +} + +form[role="search"] button[type="submit"][disabled] { + color: #adadad; + background: url(../images/input_areas/ui/separator.png) no-repeat 0 50%, url(../images/input_areas/ui/background.png) + repeat-x 0 100%; +} + +form p button[type="reset"]:focus,form p button[type="reset"]::-moz-focus-inner { + border: none; outline: none; +} + +/****************************************************************************** + * Right-to-Left layout + */ +html[dir="rtl"] form p input:valid,html[dir="rtl"] form p input:valid:focus { + padding: 0 1.2rem 0 3rem; +} + +html[dir="rtl"] form p input+button[type="reset"],html[dir="rtl"] form p textarea+button[type="reset"] { + right: auto; left: 0; +} + +html[dir="rtl"] fieldset legend.action:after { + margin: 0 0.5rem 0 0; +} + +html[dir="rtl"] fieldset legend { + padding: 0 1.5rem 0 0.5rem; +} + +html[dir="rtl"] form[role="search"] p input { + padding: 0; +} + +html[dir="rtl"] form[role="search"] p input:focus { + padding: 0 0 0 2rem; +} + +html[dir="rtl"] form[role="search"] button[type="submit"]+p>button { + left: 0; +} \ No newline at end of file diff --git a/Contacts/css/lists.css b/Contacts/css/lists.css new file mode 100644 index 0000000..f71de2f --- /dev/null +++ b/Contacts/css/lists.css @@ -0,0 +1,124 @@ +/* ---------------------------------- + * Lists + * ---------------------------------- */ +[data-type="list"] { + font-weight: 400; padding: 0 1.5rem; +} + +[data-type="list"] ul { + list-style: none; margin: 0; padding: 0; overflow: hidden; +} + +[data-type="list"] strong { + font-weight: 500; +} + +/* Title divisors */ +[data-type="list"] header { + border-bottom: 0.1rem solid #ff4E00; padding: 0.5rem 1rem; margin: 0; font-size: 1.6rem; line-height: 1.8rem; + font-weight: normal; color: #ff4E00; text-transform: uppercase; +} + +/* List items */ +[data-type="list"] li { + width: 100%; height: 6rem; -moz-box-sizing: border-box; transition: transform 0.3s ease, padding 0.3s ease; + border-bottom: solid 0.1rem #dbd9d9; color: #000; margin: 0; display: block; position: relative; z-index: 1; +} + +[data-type="list"] li:last-child { + border: none; +} + +/* Pressed State */ +[data-type="list"] li>a { + text-decoration: none; color: #000; display: block; height: 6rem; position: relative; border: none; outline: none; +} + +[data-type="list"] li>a:after { + content: ""; background-color: #b1f1ff; opacity: 0; pointer-events: none; position: absolute; left: 0; top: 0; right: 0; + bottom: 0; z-index: 0; +} + +[data-type="list"] li>a:active:after { + opacity: 0.6; + /* Only transition on 'press', not on 'release' */ transition: opacity 0.2s ease; +} + +/* Disabled */ +[data-type="list"] li[aria-disabled="true"]:after { + content: ""; background-color: #e6e6e6; opacity: 0.7; position: absolute; left: 0; top: 0; right: 0; bottom: 0; +} + +[data-type="list"] li[aria-disabled="true"] { + pointer-events: none; +} + +/* Graphic content */ +[data-type="list"] aside { + float: left; margin: 0 1.5rem 0 0; height: 100%; position: relative; z-index: 2; +} + +[data-type="list"] li>a aside,[data-type="list"] li>a aside.icon { + background-color: transparent; z-index: -1; +} + +[data-type="list"] aside.pack-end { + text-align: right; +} + +[data-type="list"] aside.icon { + width: 3rem; height: 6rem; background: #fff no-repeat left center/100% auto; font: 0/0 a; display: block; + overflow: hidden; +} + +[data-type="list"] aside img { + display: block; overflow: hidden; width: 6rem; height: 6rem; background: transparent center center/cover; + position: relative; z-index: 1; +} + +/* Text content */ +[data-type="list"] li p { + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border: none; display: block; margin: 0; color: #5b5b5b; + font-size: 1.5rem; line-height: 2rem; +} + +[data-type="list"] li p:first-of-type { + font-size: 1.8rem; line-height: 2.2rem; color: #000; padding: 1rem 0 0; +} + +[data-type="list"] li p:only-child,[data-type="list"] li p:first-of-type:last-of-type { + line-height: 4rem; +} + +[data-type="list"] li p em { + font-size: 1.5rem; font-style: normal; +} + +[data-type="list"] li p time { + margin-right: 0.3rem; text-transform: uppercase; +} + +/* Checkable content */ +[data-type="list"] li>.pack-checkbox,[data-type="list"] li>.pack-radio,[data-type="list"] li>.pack-switch { + pointer-events: none; position: absolute; top: -0.1rem; bottom: 0; right: 0; left: -4rem; z-index: 1; width: auto; + height: auto; border-top: solid 0.1rem #dbd9d9; +} + +[data-type="list"] li>.pack-checkbox input+span,[data-type="list"] li>.pack-radio input+span,[data-type="list"] li>.pack-switch input+span + { + left: 0; margin-left: 0; +} + +/* Edit mode */ +[data-type="list"] [data-type="edit"] li { + transform: translateX(4rem); padding-left: 0; +} + +[data-type="list"] [data-type="edit"] li>.pack-checkbox,[data-type="list"] [data-type="edit"] li>.pack-radio,[data-type="list"] [data-type="edit"] li>.pack-switch + { + pointer-events: auto; +} + +[data-type="list"] [data-type="edit"] li>a:active:after { + display: none; +} \ No newline at end of file diff --git a/Contacts/css/style.css b/Contacts/css/style.css new file mode 100644 index 0000000..2e6eced --- /dev/null +++ b/Contacts/css/style.css @@ -0,0 +1,66 @@ +@import url(./headers.css); + +@import url(./input_areas.css); + +@import url(./lists.css); + +html,body { + margin: 0; padding: 0; font-size: 10px; background-color: #fff; +} + +#index { + height: 100%; +} + +/* contacts read */ +.search { + position: relative; z-index: 1; +} + +.contacts_read { + padding: 1rem; overflow: hidden; +} + +/* contact read */ +.contact_read { + position: absolute; left: 0; top: 5rem; width: 90%; padding: 1.5rem; +} + +/* contact create */ +.contact_create { + position: absolute; left: 0; top: 5rem; width: 90%; padding: 1.5rem; +} + +/* common button */ +div.bb-docs { + padding-top: 1rem; +} + +div.bb-docs button { + width: 100%; height: 3.8rem; margin: 0 0 1rem; padding: 0 1.5rem; -moz-box-sizing: border-box; display: inline-block; + vertical-align: middle; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; border-radius: 0.2rem; + font-weight: 500; font-size: 1.6rem; line-height: 3.8rem; text-align: center; + text-shadow: 0.1rem 0.1rem 0 rgba(255, 255, 255, 0.3); text-decoration: none; outline: none; +} + +button.recommend { + background: #00caf2 url(../images/buttons/ui/recommend.png) repeat-x left bottom/auto 100%; color: #333; + border: 0.1rem solid #008eab; +} + +button.recommend:active { + border-color: #008aaa; background: #008aaa; background-size: auto 100%; color: #333; +} + +button.danger { + background-image: url(../images/buttons/ui/danger.png); background-color: #b70404; color: #fff; text-shadow: none; + border: 0.1rem solid #820000; +} + +button.danger:active { + background-image: url(../images/buttons/ui/danger-press.png); background-color: #890707; +} + +.contact_read button.recommend,.contact_read button.danger { + width: 100%; +} \ No newline at end of file diff --git a/Contacts/images/buttons/icons/dialog.png b/Contacts/images/buttons/icons/dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..6cda241891a7c1f84c455043cd672832795cc240 GIT binary patch literal 1167 zcmeAS@N?(olHy`uVBq!ia0vp^Aa)c78<1?=bKDC^NtU=qlmzFem6RtIr7}3C)9WTXpJp<7&;SCUwvn^&w1Gr=XbIJqdZpd>RtPXT0NVp4u- ziLDaQr4TRV7Ql_oD~1LWFu?RH5)1SV^$b8>f+_U%#ji9s7p}UvBq$Z(UaSTehg24% z>IbD3=a&{G10ya?8Dv#~m2**QVo82cNPd0}EEEGW@=NlIGx7@*oP$jjd=ry1^FVyC zdS72F&%EN2#JuEGPZwJypb2`JnJHGzj)p*B;A(2(Y;0)gYUF6{Y++&P=wj(&XkcOF z>xNS=C@JI?0Bv?jEy^rQO>ryA&s6|>*(wvaTbyy42i2Q` z+bu3Q_38s1qYsK$q=<$I0aFi%2~V~_4m{zf<^fZC5inWTa=cVwU|?kSba4!+xb^1R zUd}@f630Fsxxo<@*7Sg(DKzS!_fQ-YYR%HvPKk*(a@#XIu z1zp}f&=jiMd0?W=o;sQ1^Uh{fPCM=R_|sv7oRZ^9dGAc9z0JV1NmaXaVY6(J!sa(_ zvTr6D&wP?U?cs!&lPms|$n~A<{o;GvShZaC)B~HlE3>VXzrI?0wp06s`R~9T`!5{) zzs`2He$9r6)46P3w|sUhFSwAlRUjmDGZ)L%ZIO&kTXMg(DJ0KU6A c(S0lu4AXgH9zopr0GeQwS^xk5 literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/icons/dialog@1.5x.png b/Contacts/images/buttons/icons/dialog@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8bf0f762da6817401c9cafdb8ac2bc398046b53 GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0vp^{6O5!!3-q-z5aX_NU@|l`Z_W&Z0zU$lgJ9>GZqKA zJ29*~C-V}>QAqX(@?~JCQe$9fXklRZ1r%y{!N5>zz`*b-fq}tl1_Oh5!JJ)zHb9Bh z0X`wFK-$>YSSl{>`0?XF2B`q3kt77Pg(LuU55#T%|No!1EV&x!T+@;uzhEHEz!Ja~ ze?RUabIjvM8Bb(rZA@b59q?5Rc<;FCNcxG8Ab^JnXwzrG;T(o1c@f$Hu?^@~6GF+w9`B zODL&q{-5=ItvjAf^*S><`qACL%zMLD2}P{7_u?#k>Zx|y;^xtdc6@vr%X{Vq=kRVc zJa$Y%+I-cdKX+;lc81NKHoqn83x90+sZ*(G&!^sa`}Jk1LCA@Vvx5Zqk7?aJc2ckJ zTVX-R-sCrPlCnE`4b6_-s4xn7@-nASxLZ}%o^$OB`Cad(q)HZl_4^Z%|Dts7)f0E) zvU`fNx+cfUynXyYp!)a?%cIu>q?2=Mez;_PbiMNE$KPh*{qsCw#%9_E7FGrZvZ5#a zQ8eV{r(~v8;?|JkQSce4K@wy`aDG}zd16s2gJVj5QmTSyZen_BP-r5%(GQ`zk9!uLS~AsQn;zFfp39xYDT62(s|s5su(?)1Hb_`sNdc^+B->UA;;0DU00rm#qErP_Jp*lEl2^R8JRMC7=mjVYIrvD;$%zZbnownZNgVd#K9z0h+btoQ?e8w6+gS{sy%%C&! zfX*`3?ip+%i9rE9o(`g6OjjfLOcFIO^c-~%-^OzHhDb|7zCasqu>KR}CygxoCj@65 zKiUp7n1xeF#RF(V##{UT>A73)C>^|R#%8^2>wayyB~JyN8;s9zuQTA6IJzc5XmdlP z54V^hug0Mz3nV5tXsuycwNWPHP|yO&?nb>F&RrWdIS$@a;E`SycVgkAx7|pFH+|Dx z@Oqd1-$TYiHtlz^Rob#Dj|e>A`P`&^hS|+fd&Uu+1hLCau0G6N2AUejR2Fb)H)iRu z&)Oi8aV%*8cXZSJxE!v18>F*X4s1yDXr1FU&qLr>{jBZ!AlKi~`JsG(VIP;jfXETP Qo1jw2)78&qol`;+00XP4nE(I) literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/icons/view.png b/Contacts/images/buttons/icons/view.png new file mode 100644 index 0000000000000000000000000000000000000000..de62f59ed07f05dcf1814ced24c3ed15fde19107 GIT binary patch literal 1235 zcmeAS@N?(olHy`uVBq!ia0vp^Aa)c78<1?=bKDC^NtU=qlmzFem6RtIr7}3C)9WTXpJp<7&;SCUwvn^&w1Gr=XbIJqdZpd>RtPXT0NVp4u- ziLDaQr4TRV7Ql_oD~1LWFu?RH5)1SV^$b8>f+_U%#ji9s7p}UvBq$Z(UaSTehg24% z>IbD3=a&{G10ya?8Dv#~m2**QVo82cNPd0}EEEGW@=NlIGx7@*oP$jjd=ry1^FVyC zdS72F&%EN2#JuEGPZwJypb2`JnJHGzj)ov$WNPAUY-s3elx_*6SPI=bTrIalC!=IIqN^nVTQJzMwsQq2Dv1yfpRA zE)}i8FY09;GQDKAGWb<=?f#NBKDdV-sOXbc(9|E_kLa9!_5Q~HZxjC7DgCZ>`S!cx&3D0@@0B;*KVBrcsXuepD?6o^ hs3^2{j&wc~55v{db#D}Y%H9DLGoG$~F6*2UngBRjy}|$h literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/icons/view@1.5x.png b/Contacts/images/buttons/icons/view@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..9004f30a1ea7f85beda09dbe48cccc641dd06259 GIT binary patch literal 1105 zcmeAS@N?(olHy`uVBq!ia0vp^{6O5!!3-q-z5aX_NU@|l`Z_W&Z0zU$lgJ9>GZqKA zJ29*~C-V}>QAqX(@?~JCQe$9fXklRZ1r%y{!N5>zz`*b-fq}tl1_Oh5!JJ)zHb8w| z0X`wFKn2Fe#!_*4$B!QeGN=xKCesZ8y+CIG3@%8}{r~^JFQLr>7@AonL4LtNnn6I3 zQEj2i<%^E0=bg^Y9AO&^Nc zKbCWqa&sQ4l=0zZWD>VySKpD&qIUUZn(D=;sjSbFpC$dC!1ZgMq|_XVOMlKTP%Mz) zytnw5Fwio_ByV?@+}&&pYk};1PZ!4!kK=DIx`!VM5MWL45D5|Rej~a@qs%q4i}mQe zz`%fwv!DE5|MltAnI~s0mcI9HcCmhep4|C(`}Nmzt5&T3F8Eto%Ja~D5sqIM7Fs5> zMXfj+AfR<7O*=$pF_(ErOQ>s9*p$fD8#&qPW>!`kckkM3kze2?ZTsZ6Ys9U9k~N3! z2&Db~@-4CI7dzX@I_JZ7Mmwti-&+0dvdOE07CAS!<0lepk|xP43ckEivZUi&RPn}2 z-rG?fj;%MNTDp=$9=3IDSmp6QY??_}fo*%s|$!j?==Joex`pbJuzsrAG|DOH(#@Ug_J+lzq_7@Aud8(SHhX&YEr85qclp72M}kei>9 znO2EgLykwmXP^d2kPX54X(i=}MX3yqDfvmM3ZA)%>8U}fi7AzZCsTo0n}Na8)z4*} HQ$iB}#SzPX literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/icons/view@2x.png b/Contacts/images/buttons/icons/view@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d565bd66452bf7a79b2752b4b4983ffbbc2c28a GIT binary patch literal 1385 zcmaJ>e@q)?7(N&QHdun#5C?`F#};LQ_O7Lro)qX07)>ZC<;+kg;d(vbWcOothb?5f zL9j$vqH)e3CZsS&5CJtXOi?!jWSe1(Rl0^G7kWDK@?UgR$59?f~Dnn2qSmVoWurzyaE@86ZNDB+R0jq(LsOy za1jD2hYmWdw!jw7NY+s$O*~oARE7~v^@P>|7370?E>serNf8HK^if7YT{>t(7nRnb zZ3P5wK*V|-v}vl+Vg-#XPl9SWoJGJnFqnhL5mmNEqsau7Faj%Jr24wV!JS}gw$rRi<7Alk@h zes>fWutttl*hqnG;0fvCYSKfgIMm3KxXAJt%N`A%qP30{S)q>QKx2g(wBQ8AgyIdn z#e$j{LBtt?G@Epgq#&m#2Wm7JRccdqu0~s&jUYwJT!TSt$knS2xk|VQMwDT$i6t6n zk`cpP$1|?>x!h1I(43UnMDog-tl-j|ITC2@bB6>v9Q|;_!lk3>Q%NAGp zT&_YgqX=E>e=a(_C3R0|x!tx>u-*71BXv73we?id>NEgE+%}u^nCr&FMP1osVS;-( z>R9BP`^%Om=8rUYceRiBd_qc`_g-`f_VUEwfkOMz=TGh*lFe$a^&OX8UON*^{hode zn_22{#U|#NA02<%+4oh{TmHv>&5!*Tep?&s9yl@icP2WXk%5g*A<_s`w^W9`btnyB50 z`%69s^)0VNRNc|d`@Qb#es3l^DD1-qg>r02cwv4}sFDo`sj^|=)ztwZc6C@tN*)lB zlZS=Gt^pxE`|Xvc(JyDzqhm8a6%<@w@VXZkyr~^6P*TL}SL3=mV_IQZD-tE*Ne?b% z!>#7(mr|ND24m(H^G{LR*`uDu9Qo{A{L$5bU)Ef*vkl zEI%ADTAhIrpEWS&;{vCBSRke6_gnt62fW|(ocFTbE91BP-%5ihw@yKx_D21S!IKH@ z7TA4Kel_xTXS5sM9Z#ggA3Uy3zS-veNUD1BiL4rkPh7n=@lWXK1ORhUnQ7Qi-SRKo C3I}ii literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/ui/danger-disabled.png b/Contacts/images/buttons/ui/danger-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2a14bfb61afd7834191128ac9544aef7620ed541 GIT binary patch literal 1020 zcmbVLJ#W)M7&fq=N|l(9_!v$ObZTs$W4p0cxAG?qs!NncB4Zu<(paf|#=a7_V}~MG zP&YRI0W%T<9T0+r2_%FN17c@j2hK@c7^)7nY~Q_i@AJIhkJ}q}=I5@@F$^=`TC+QJ zy+FT(%NObY$+tn9F4u_DBb#_Y#(stvBgB0KTCu;4I>-0W0{Un>N_6(;tJf@uLY=)YdxDo*Xc(>SXJ~VOqZ{mx0ySh; zSHNVW_uP!tYIvZBC6 zAPP|A1^Oy=C~2~yiA!Miu+&->4z!N#&TLUhXNQEO8qbf%V{Y8waJJ1uRaHw4QLIyq zdcKzszo;j9tzxiI9%NBUBAkGd(eLA3qO;V~X$W!Zc_+k4K1&o$8DID*4>^I4<1(&^ zc1}9zpBtxY=iR*&@g0=o-7KK>7}P2-&E46CN=538b}x%)QT!bn2fHy!NXyn)dc%cL zs2P&z3SwhPX^Miu?@!!{(zR1Cqg4N->Bfu?FhM>I`nx=>V9 zvBI{JocKwAD!UQ2JHwi1Vl^v6KEYWR+i)GhwOr9r1qaGYHao+H=gApQo#D&o_^(;2Bie!G z_N4Wxa56k7p%atQ(U|-3{3ac%#g=V!i!c3`pFY2Pb9~Ia{bNYA+OywJZykO({B`v4 id*@NIu#z8rWv*;7>vwNly*(Nol=IkfHtZMX*1=z!g*|=% literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/ui/danger-press.png b/Contacts/images/buttons/ui/danger-press.png new file mode 100644 index 0000000000000000000000000000000000000000..d7529b5bc8ffa79614465cc5205917034663d439 GIT binary patch literal 1015 zcmbVLJ#W)M7at~>+5@^zMs(_>m@@)0#Gn&-W8A}DaPsmqZgJebQP>~Qf%{DJNhElM zj*v$QLvvhfJ5N0S5K}P3<1p6w-yc5mAPjW=x$H`AV&X}-bDHA))7`#*dg!YGzx@QX za*Yv0n0g?Oj^a$qb$-UHv3+qY@?fSy4|RU-)WGcmlcX5PLapjc5CTOJU|m)e_!uAw zB2i+mQiXL*Ry5QAi-%{{(qN?ZEN5YhNjg8FG|@zHI-LsBnn2RA2vt=rI1s8bjcRrh zQ!lT^*=EUL;ml9NgoY#r1*114$5iK;r}Ge^#C30o<7|;AmNGH-5)lfL7)3=~GwqD_ z@LxA>)z11S2^M=eBgd)F>M`0Z!7O)o8!8l;H`-nrvZ8oL7V(cG9Mg`a^Xx_l!ay_X z$dOR3p)`@CG$B-F$97bOW!AK9*>FmZ+px8Iy{#Bh(=w0@p$*%r1#Q%B!?pvFqM{Pp zi8JcOJ}&Ks%w^~y?( aTdr{L9zD3ax_|bm7{!jgYrStDoc{sl;W*L& literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/ui/danger.png b/Contacts/images/buttons/ui/danger.png new file mode 100644 index 0000000000000000000000000000000000000000..400e3ae35da04c5bc503ea165854eb6054b75e9c GIT binary patch literal 1031 zcmbVLJ#W)M7&5e zu(Go;@&_1@DuiG}EC?YcCYBCVjD>R&7lx_>mhHRu?tPy3`=Gsc=hDLU1&-q`wN{-D zTj$t!bN&MRKm9gnv*j9fdvu))=on>~vqI9xpcSJ{+`%Z^dGG-*bKJ#2)a}upf7b{| zETB?HDB_f%Ic|BSNKvqbDd^+PC^7k?*Kc?bg(iPr^(8;G@i1E5&G7o}S~u9;3iOa) zxeb;JgAv4-B2dJmBsU6^pYR%NUmlA*n5fV#lb<@(^V`5C83w9QuLTl>K+^=MsG0_E z0a=2wD6v!}m5R(8<6aiAqM(sOg6$Y5wB?vQyAi@D zG%Q8-B)Q(umSjm=f>2jI*V8qYS=)70%d0rf!Zy{WUWazWv1A287dCYVx^lA#n;w)k zU9PaLB&R3|aAh}Qc4t`aT&!Vd7*UdS2^m!#&>j*>@*zoqy{-Zu1yNGUWqGF2Iyj3S z;?T=T3?}(CqBHF4_L8INssgQP+?MA`p6$u5F1b)`IQ$G7{!h+C=8RZ2$3M+d9kC89 zx2LVogwx@{37eRVjfOH`)Yw=xT8`B%zVtu8J3KsovA=&X_ryBh^SqaPl6LjCedY0| rVgLP)6ZG-fNLW4EQ+}Q-e&sH2aBsUezB}UcU*%}F+%@M_bK}t;cd|p% literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/ui/default.png b/Contacts/images/buttons/ui/default.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff298a1fe9a23230d1276a797db804d06a324b3 GIT binary patch literal 1014 zcmbVLJ#W)M7ApRupR?Scd> zEkgVUegKG>fti^FF))BSF)&qPBAk=BFjO6|Y~Q_i@AJIhNA0aUiwidwIF4IvZK4ia z=h(M$d7k}`zYf}LS)xvlZj%8W`5ETSkn}NV#r_WNU_U%~^bxOfTx}3_d$i}>)dLa> zeyJlAamvsfx4u!Nez1!v=;NIzG5DYFKky(54gP`RNnUE>VYGRe;qAk%Zg998Xd%CG z8>|;PBZx8eK@smIxn3CjgjZ+#@>t}-M1}4e{M4zQ*9JDpFi?cmdLTgvR8@ctMOEP~ zAWKjdCHAUy*w7VKm)F4T;hD889Oxb7&TKKs;D?l^x+soDBVn{EkZebUnx>T;vRr2x z_52{Aeo;^I<%$8}JjkMyMkE0xqu(d{)Zm$?(-7j+^UjEqe3mGdGO_Se5ekwR$7Ng- z?VNV-UpLOx&btRG7CSg6`&q#1F<7p^EO!?hDixVG`n@b-Me+9#3HD>0&=xXyb|ZvQ zsGAMhmE_emwJA$#6GBaK9amFXW^Kn&Ot<1V4{Iq_LqW(!rrdzgftH4#BU=`dnmEDNhonfsDvAUgMpOUOg$X?X}?IEEgACeT<+Y0dfAWBNPEYCDrgtO=| z4&98zV3J=wI>)|dH<79-4QNi|HeE+@ZC7?Q$$`om;%C_Ke{v==XT-8O{%Mx#h;?AO zJ!^d?oDC07*u-RPG>WB5Cv2=%TFC4cU;4jJf84lMtJOY@$K!Y3o{WF{C*NNm-GBD- c)$_UetK60A$=lPPx# literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/ui/disabled.png b/Contacts/images/buttons/ui/disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2e97135f5799251d829082d7b96ddccfe4f14f08 GIT binary patch literal 1013 zcmbVLy>HV%6gLDRs8k7wrF;mTTv35UY@ZXmv8k#2Nh9GBrIEN#La?) z!~h$A0TO=z{{Tbh4lGD43@|e>!UE--#D$^ifMxscy?ejk`?&XBb~f)XE?iyUIBv1M z;dI%0hJ7m+&a(fjFT)O7u28p6x5$u=QHD7)Bm)fEG1|smjKcjVhj@+SYQw14r+xo{ z9*|f-rHxR;DMNGI+Io?qU)?~96Om+e- z&S;Q^{?K&jbi*Z8Rj={4N zA&f%ZY|5S_H&)e_EU7IBHN|s1O=Xp}T~{%^isK}#rC3@6TApLdO$c3RX%2K{%VH`h ztD0P4+euDQ65z^j#Qe^&?x|Sa&M=}R>k+bBbwFoCD9J}81@@K#d=x}UDVNtX%hthJ z^c06)Mq)6nuO6M?U$a||swquq&hj=rSMqF6b~VX`%BsW9vEl#JOk}}`Wpn(~ER~9N zV7WbReI^_a4^G&`WNb8o7p(~!tD9}d>=mB}KY#zad%0GtT|YWHdh_k;!LwUSE9c+7 f{`B!u?c5UgW9iz(+lL=+l!MrIH=TFZ!`C>J literal 0 HcmV?d00001 diff --git a/Contacts/images/buttons/ui/recommend.png b/Contacts/images/buttons/ui/recommend.png new file mode 100644 index 0000000000000000000000000000000000000000..42aed39003dec4f5855b4cb069ee1c8565d19a8b GIT binary patch literal 1020 zcmbVLJ#W)M7&dgNDs=~zo?Hp3Qe*qBu^U@8m7TMxC0wF35*h2*m&R)CGxn9Z-2zkl z3)m4We}DloG9ocC@DC7OkU&C|a}pPZssonoyZ7#Wp7;B#v-@y)>E4nc2+Q6M?(+2( z|L!l|=Ku3A!wz5WGN;e>=#Y(roCsD#2LyOYa6q~wh)$kk+}T; zY?THlNC*o+nH;5sQJUhE*Wml=SQf!lg&msW%&ETL0d1NSph_E!P=OF=ngpAwronZ9 z6o_Pnzghz}4OKJHCYV1Wx0Xjkql?|SEiRejh_TF&$UU8fkYv7pMVuD%MDdi#Wsu2GQsgA5;+kp~ ztV{m7ajkaIJIRRLB?UdsLtc;JY7OSOyV+2s$h|Qh=P@rzaD-`ioRE}x*cADV6vdHY zHIb{JjZLkE6s-lJuDXt^Ydo`U$5Ab}=C}@Pt9Dbxj)E=JgwTPuj-i8W8`>^JnvQC$ zmliBYLsHv~x!oBSyEkHuc1{9D^B$!~bq91tl+j{DGtk~sfggl%TFF&;X3=7j$InRQ z<}?A*{2K8!_VsoPYr5Km)+}zzbriSlB1cyosBU6$j*b2&XEJw2uA1YYW~q;O2Ugpw z*5|_2@Q{>GOwLEcgNv{ESgm{5>Xn}d`>pS1XOqc9`F*)^ehJ~P7lTN#>8jdO&Oo&io-U3d6}OTS n5)vk)r6nZ%Uh@rWav9Xo0nYMw2 zm4Sh*=m~!m4Y~O#nQ4`{HRN~{dt_Z<2pl2DG3vMAwf zL8zW&3G%0yfgv7;u`OPH`!0eou*DaKr+7&nPr|b$#ocAA=P#$e6^JKKK{bP1Ai@lR zEIN-mPN3Fu&FIx1=aW3piU?ThNKsLMOA@mN@~e4P4x-T6jhTI{+dO# z1Pv2vWw3rk?u`Z`*m0U`U;Jc?6UGuK%k%kMn(GpwV_CHm#H!_xI~S>JFS;?E)+vkf=6=9)XX z`7lHY_v~OAzQRG1k_fDlhT-m5^qqQZZm>I+(oU|-gOT&r{?+P@iO)~I-3~54Y)2o* zeBLP^>`&gU*ZfjEaGld$_G^d+1La^?xC1Ws{5K!ei??@$8wEjP`?r5aU*F}|$8EHn IFSWt@KTk6oW&i*H literal 0 HcmV?d00001 diff --git a/Contacts/images/comms_icons.png b/Contacts/images/comms_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..0c307294f9c5b89e8838885887eea8dbccc22f01 GIT binary patch literal 9669 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 DLo@Ej literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/.DS_Store b/Contacts/images/headers/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1c9513d19de43d7cbec0b83dd71fdd1d36203e6d GIT binary patch literal 6148 zcmeHK%}T>S5Z<+|Ca92$(BtB{NdKrFJcLleqmV)mRx~kU10g9*Y7aFUd?DY$NAP)^ z+1)@(a~82PF#FBU&u;dE>$k*tcaZ0% zVVKsJadLWgc|G!8^SAdx@yCH^DaRU1_yA*VAusMcj*|Epyk$k1Nk|M31H=F^u;UEq zgTXl5aUN*-!~ij{%>eEX0u<5KSSXZR2Q+wn#&{hO1#EmvAPSAP#zG-PK)5OeRHa-$ zF}NxRztDNM#zLVgXI#z<YbS^@e1ih_9s8X#bATmqnj`$$s;Ra~GAdA7zvA&!E6 RSq?}S0Z9lo#K12w@B{hqNNWH9 literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/.DS_Store b/Contacts/images/headers/icons/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8f33539702b664cc951f2249dd2840cd91b2b18e GIT binary patch literal 12292 zcmeI1!EVz)5Qb-yNVqsIfm4q@aNq(`k+@q`LE;K`MAJkF2n{L}m75=fhvETv03Lt` zK!Sf}H}2Tk&E61{*~*^Cp3naC=eONWh{zpXEDnhdh^WBAbyi{(8N8pDtuYE)?xH&I zMDOX0UOio{Pv@(xZrflEm;>g3IbaT$1Al`9cxLk`63>0V*Vg8MIq+XP!1sq53)d#p z)>pZ8U?o!k)Co4rz-!C{gsDSqLT!B&6vyZ9aE6JDh!GAboAnw`o!+^|WNk`&FA;MVjG*Uk>5k`PVJ22@6^Bu4Z6 zPW4%L_$ryvYym$P^cvSw)Ky7~?ytK3j7mw3CQC&o9p${ZLgl4^n@fC?coEmfIqCIR zU4KR&=cPxMicIR`r1Yo?SIrWi_liE_zI1|`xG!;5dgPr5nbFM2=^bMhJw{SJC#T2n zDL(r7b6$GHz9KSeIXgXe+GCR{IXOM9kgNV|*Hg(|s?1bfe@3CCN0X%@llmMdM^gpT z$@iti{Zlfd`>U=$qfauU$x@L?eUcJQ;Z~X*W8ZPW^Z&=`@Bg#Mu?BO%9Qbz~aFgTb z$4Af~=GI&9gy-5dmX}y~a9``IAXv$C9Cd=tyubUw5U=a7tqHaD6?-uL_!j~CKMi~S zt6yw4Gd_F%U;T=`@#I=Q|K<9#l{sJzm;>g3IbaT$1LlA^U=ElA=72e14qRUcegmYm B+F}3z literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/add.png b/Contacts/images/headers/icons/add.png new file mode 100644 index 0000000000000000000000000000000000000000..92a5a247ab215a1ab5af758072f53b3f72fe701f GIT binary patch literal 1335 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij{?{rK_Q# zp{0?5k%5_op`nG5k)xBVqq&8ltA&Z9ktNIwYZ*c=cL27o{ea zu$h8}Z(?$09!NkF6hRRGx}+9mmZhe+73JqDfJ4|S6N?K>os3PKoy<*)&7nSbHZ*ZF zH!*N@Hg$1!HURn@qBn({P}2uGMjwb!t(znE@~Hy zR%JZpcR}ZHzq7o&fW5;bZHABPGFkRbo207Bk{BX;`Wn}g=n7g;k8ra4^V;YvFw>85Vi(8ScjnI@dT(0JvqqN;cAv>4~pkM8fU z-yE=%)rrHy!{bk8W@cf{=V!gAUSD5-U*4wT1MkYT2Rf@iGI=cJKc%(i!W4e5i~Bt@ ke;M?BQ)%0Kl!1|rA$cX+M6)`ro1mi1)78&qol`;+0QeTtw*UYD literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/add@1.5x.png b/Contacts/images/headers/icons/add@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..e78368f3a6ca05f235cac1addf7a1fab1885edff GIT binary patch literal 733 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s)6q&xaLGB9lH=l+w(3gj~u2e~^j ztUD+3639_V_6YK2V5m}KU}$JzVE6?TYIwoGP-?)y@G60U!D@87>qo;(Q@`S$JGiWMuqe*L<1>CzuRejGh|6j|9n7=Q?V`SJyB z@~2OqAnXqxJ^&fNzyN3hkOnFS>H{(!K70t2I&$R5fddD&Z{L3A%o(6KP|fk<$7ju& z1(bpVpaW*koC)MEUc4B{2C4yq=g*(__4UEkKo~&7y_EiQ138{0L4Lsu%9i%l8XWUK z{`?+%sfCq^ pp|*jAm4QKL;klJ48glbfGSez?Yxtp4CJNNR;OXk;vd$@?2>{U9PYM74 literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/add@2x.png b/Contacts/images/headers/icons/add@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ef23815604661c702b4cc3ec4f8f2031065cfe GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$>^XU@Y=A{l)B|-JB?Yr1ylb8qm6d0G;>ub9ql@?p3W^syzlcixA2Tp!x`9;kTU3vCc@QrNK}_xDAU zv(NWG`(2lABDMEalc3X#X{olpoAlS;ejE45X7**a>w&_#3$L-5*8i3%lUd&Un_c+b zZCB|P2lJzlToo?*X4gCBYirMnNCbB;dQoE`BjwbQ@aOY6X&$!xy>aikzF$x0jdAzR xke6MUT++mMkuPhC4fp>mPVk`c+3;!~<4va@p;0vtuL2{1!PC{xWt~$(69ABXw0!^o literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/back-rtl.png b/Contacts/images/headers/icons/back-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..a71c7c05d8e3878952ad8e2f46a8c75e24a2b9df GIT binary patch literal 1335 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij{?{rK_Q# zp{0?5k%5_op`nG5k)xBVqq&8ltA&Z9ktNIwYNUly*UGslHL)bWC?r2W2bKZ?GV)9Ei!<^I z6r6+26f}GjlQZ)`0-B%*g80`ZwJ5VJHN~wcKUV=9!d97BTwv;CY~t)>ZenZ>^|`a5 ziJQ5Jfupmji?g!<(B}}nDddEjKF~4xpyYv+Twp@LGzenC6F-mx&pxSnz&uj~%p9+| zT2C`DFapEOF{I*F(x3nT?GHOJsI@UNEf%}XyJ5nj86TgxxBY+i=afSl*MwM458D9U z&{`SJBccw@)-PnQ%nR5hlToQ|tLxS`&!|XO{cI99 z^%b72Sg|7D=hxTQTmP?EF!|vTcD9tB>pGKk*d#rgo?h8HgXQ$fd_%_5_O-u4{7xjf z1!buRFg8uQ;V^A8#yqpjz3}Q&UY9G-rhhc}$BscqH%6j*YkO+^G?p@N-(# zPYKi2ADBM|K5;4i`|E3{gEDVpM2Ff+sjQcVHPeFbCMD^rrWjfl?qTiFo%lE;IC!({ zi5iYAZ)A0|)!n>wRj)siof73$#h9dcU{CS!zOxS8p$!#EJEt`@_byQq=4cSH7BObj nt@Y2F-Cejv-SCYr8;1ddp3G_%y%#AbK}DITtDnm{r-UW|;pfXl literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/back-rtl@1.5x.png b/Contacts/images/headers/icons/back-rtl@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..5e00eb8b99ac2981b060997b3fc0ce3d6fbd7851 GIT binary patch literal 937 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s)6q&xaLGB9lH=l+w(3gj~u2e~^j ztUD+3639_V_6YK2V5m}KU}$JzVE6?TYIwoGP-?)y@G60U!DPJ3Ar%0Sc%Y5IFabI#EiLWVty@#4P6e9*Qa?{$$r#8;J8r*%6%)*%X?^zl<*Mg_1f~TIdr9J1%dd8ReikC0tu^$s(+N+Ji-1pVw_g&GD zS@i4gEUCqR4mq()|2yi-yYRRVAEVDP-`^*Fc{pbt^V?bD_DO#4S@tkLHV(J6`f8v> zj7i?^E{y+~bngM#oSrU@As)xyUV3ePC_(1fN81+9O+J&e0#B{%5IB2crOd5ca~8`S z`uzVt_uK8__ukd*d0O{(XWjMhRc4;Q7AN;~zPM<}sMp`Fo^VcS@z-~io|XGz)5CO&b*&GM@IJh4t#NpNj@3Kc4`uxQ|DG=QD`+$SDS7V0 zvONbRuiSlWDx=f<{y-Qn*Qy&dCkxICTWH{;%?JkE|V7nhLCEBYeY#( zVo9o1a#1RfVlXl=G}bjR*EKKAcMGBA)8J>id{AvZrIGp!Q0h8&NA Q&!EWmboFyt=akR{0E4#gS^xk5 literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/back-rtl@2x.png b/Contacts/images/headers/icons/back-rtl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..67931b25024e900e1118bf6210c9055ae9064852 GIT binary patch literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2K80(?STfiyAT|Ns9GWkANFMT_8U zetv#FFaV0*y?giZN{%xoN-JiPouBBByfGIEN_I>siZW@bKt zLCKjp`NfT0eUqonT)J-K#%()y?>Thx_LEm{-+uV^J-s$f5@^U`PZ!4!kIuJe-G!P0 zL|iVi6(7@iHitRw{y+0)4^A_^NEc=PH+TN7hO=(rky;;I!fg0juFvCG@4o0lb>NHH zAFSTiSG;}39(H{Bb;DP!Uf(6(?&r08&e6N`;P@bD|gC zHQT(!c1!o3w^M`?=i68Nv>gpi+!z?aBYN#?1vfimE@Qcl`ZcA{`=zIsv`*IC5I_5^ ae=VcSTG!T>N-iOw@b+}|b6Mw<&;$T?LF2#x literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/back.png b/Contacts/images/headers/icons/back.png new file mode 100644 index 0000000000000000000000000000000000000000..5383ee24de586e91e8af7db6982ce7a424dafaef GIT binary patch literal 1372 zcmbVMTTC2P7@pmtDG-Vzb(Pl8VbDh6?#`THuLBD#JG(n6~ZN?FeUi#}8zoXpHQ z=b!KU{>%B#oTv=$%ShXmhGAHSe?MD|#vJY0{y2IUQX?OtAzSsjN(`yc{-j8pa$8M-Ussib`S;j&Fe~9)eAx2zuuG;Kl%Q?yf3xtK|c<|P$a808f) zqKdMFYl>V*ZdY9digY7|a3m1e5|*Nyg+e7GV_bv;W{M1lwY=8RQMDTW9mXTk(b~=k zB&%UmZdZ7;AB}lQGOFEwJJNtC8s;TMM4Q63vNGQuhLY-MT?G1K7DRz@c%5DVfRm2lU%f&Q)Q)AmRpk@P}wZ2a{GY0kC>T;} zkAJjF(u8_Yn{G8fT5KI3D4{c>pu-`aZhQ{IbbWr-T^pMVttJvBS4y$HZ|U?yhOaZ? zx6TMfD_Iv85(}#*ONTR$U(kQ^y>3~&!#`V*Ufi?x{^XI|ao@djzE5^O(`q#4l=cmN zY#3@t(~rIWQ18tquN$Wuf0;S8=i;kfT?YNTH~sf?@!J!}vV*Vn^7vrZ@jnxJZ)EN% zJ~SGSM|8XLGL}<{N2zOjr$Zs*vEiY!QFTKg;!M`z?rXENvuXFCb@%QD*TCH@ z{CBpU505>Hg#XfnabXW#_Nd4>!kpqPqOl zxo>CcjXig7UCys$&Ue3;es#I&##z(h&tgl4b3Z?|_#~b(cW8WJ#|!gNj;>Ws h&3}3Hw|M+%d>s2JR^z$eZ4PMvJHI!`j+7mF^DjxY}hYug-&z}#GojZ4~ zni|jr48_I8aFxiGeE$3ys775~9Vqzo=g-p8Qi!tGuU`WhfByV=`0yc+@#DvjfB*i$ zHE!Cp38)b+A}J}ka^*^(2vC8UnHkU};^N{!*8(-l$;ko5-@SVWWG`R794K|^(j_39 zmzNi4I8Yam4HSI-{CQbf*`h^@)~;P^XlMvD=SsQ08&EE?B*-tAfk9NCg=y+C8L?>} zd?$WxW!ld*<=-{&3D=VN?k7t!dJBn67V3`ra4$*n)(bDeFY81e$}{JEIcvr&H|Oi$ zLoBLGqy^@)oM7i$d`v=lUOzv}$2iu-+f9|dgb(@O5CU4lnB?v5!uX#__a2b*(bL5- z#N+te3&(?)97S3mYA;YZsHSCfz+;MrR}lML!wIaNN&EkI-`G20?Q-$3$ky_|S6A-W zyZHa_rJHZ~WaQ;6V^`P~RPXpMaW!xL{LjK{X%#Hb8WpA_a&w+OJW=CIZ}3hTyY9Kl zl8T*`G2SW-PO)7-Z`^N)tl&A-pjR5)IC3Kp}=K>_>iQy|4BaU`;YRp z71f%wnQS~c`@v<&WiM-uo_szkbma)!>aT1^o9c7y3w?7=ihPl~FCM+pR_}Xh=yagx zRZCnWN>UO_QmvAUQh^kMk%6JHu7R1Zp-G65k(H^1m5HIYfrXWUL1*DPP~0IjXx6UYF9@87=zHNJWC=JV&zZ{NNJiv0TZ>)W?)K&eTvAHMzgbJcQo6VQ;2o-U3d9>?Eaapz+)m_Hna^}z&^fXHzsl)JzE3_cjVil+;BDV?rtLLXcci|vj+p0p=aZ*$b)SwsPu~6H z=G&PI_WYf>bjzDlx5N{w=ik^S6us-lO!bDP28U)dY%q)yo4}rMoNsr7sPgVN>FSo} zo_yzv3ghRCy1M6|e=U2T%ha`Y=8eh|!}MRZyiS~$P@Dan<65?J%d5u@i)VzaR66n8 b`8U(FlWwc`{hp8pbUcHntDnm{r-UW|ub$^D literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/clear.png b/Contacts/images/headers/icons/clear.png new file mode 100644 index 0000000000000000000000000000000000000000..9990d010a568842f6f962bd1e4a55c6343093970 GIT binary patch literal 3278 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 M07*qoM6N<$g0QO{9{>OV literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/clear@1.5x.png b/Contacts/images/headers/icons/clear@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..b408f9b3d630edae9e2ace2fe36e56ebab381935 GIT binary patch literal 1215 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI13?%1G+4BcTv7|ftIx;Y9?C1WI$O_~$76-XI zF|0c$^AgBWNcITwWnidMV_;}#VPNi7 z|NsB#)2DOi&fU3l=lAd5fByWre*OCX{rj(7yY}P9kAMIEy?OKI#EBD+A3uKm`t{zu zdvDyh@!`XV0|yS=yLa#J-@jkJe7Sx5_L(zhUc7km>({TVSFavDdi2PVBgc;)ugHvP z14dz1NswPK0|UQpR91eRhb*I9`Odo^|9p9JY@#VEPyE>*e;>9$G=DOF-THwHuanYf1|3=z6yTXe(oqx4TQZTguPtKz6UEi(`n!`PfP6(T5xaTHe25 zNa07$POn8?UVfgwzmFH}vQnPxaq3b^_Fsxm^m6j|NT&ULhV_rPN-cOfq&zT?JQ1$zT>95=mmp>~k+qbJM<_E{g zE0HgG+1U=d?WG{Z6D=>45|H=D8{^!rI9k}zyDQW?u zMb5<(;l@)tLQXwguqktTc-Zx8=4NlBuT9X}q!zWUd>6CsA7(eZ?U!;^repzQNwvf^ zq9i4;B-JXpC>2OC7#SEE>l&Er8W@Hcnp+tgTN#^a8(3Hw7|4pA@JG>*o1c=IR*73f Tjz_^~paup{S3j3^P6b@?P)*GzchKC9NV4}K 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 IM6N<$f^@eqyZ`_I literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/compose.png b/Contacts/images/headers/icons/compose.png new file mode 100644 index 0000000000000000000000000000000000000000..d11379fba35b438090d6709cb8cb6574584d9996 GIT binary patch literal 1577 zcmbVMdr;GM9FO=!hPQJ}MQ)k}oPe}VLZ6YUZBw+T#Zr2J%uUlKZF96qOe2&!pA(p; zb1>M%`WUz!PITyeZMs8{`JB%i$`0Aob8a{B>U%OD%%wox{_y-`xg@{e@0-u(^L_lj zzpS!kO^+Qub~pe4v8EZgRUF5KpJ7A9_hh(ni#Ws!#(W`%bqd7Db^?Nyy4FDNa{T$&aqy*4TxoAcU-Ttl_0%=kU zLzzjbo3V11j0R3JMgR7w%KLa9X3Komw$87$sP2_nZ7N(@zj{TC#9<4GrG z#WVYTi7PGS76cBH$%>1MrN!w|mUqbzjYbpJKv9W^koZa%f$&QhUt&Z7r+f~c<^-B$ zz_21=XBP@uNQ|^E1uthdKNn_v{e==sCi4@V43WYzuQ!}mFWM(qsei+GA=+mv;V7Av z^05nfhqxck#0Xie-OC+?fnqe+Y@QZ3h4A34W1*K~1QV`>#4l2kCNZ^9V?+={gTg4R zR3nHQMRj_kPNhbSYPk;8L^NK+#gTLkjH{I>j-Uu)L`AsTh=^PxtVB=+9^sl8pFl7U zD&m(G{q}PeFXdteo+1R6x3R1z(g7AXE3iH{%YlX*C75g`95fR)q=Yx9FJGME=^~2E zs1oz(;?S#yHu8n+^8+r^ur|4&MM=;gD2XlU68dt>8l!7`lg%D zx?)!fPONIZ<$O%}llkiAjmNd!D<`hxenJM_3YMvtv@HEQKFIHm>pZe|L`h6XDbsp( zs|%@SbH{fsCH+lW^P*jI}Zb;qgEevt-|ejpHfv5Tz3jWgM(+B^S<9V zu}(X3bDg}hHL&SD-SLsM9iDV+5~1tKe_CtZwxjz=PY+zXq-D`ITWVf%TzjDDvd;45 zc)01@q62epy*uTzd4=+^T2xJe zQ#%&_zH`XUpm51^X!+3u?(Q$snnu_D8EA5M|N7`|**G{lXU#rX6%}|8buY#add^g? k5aOSndsg+=vzF$;V}N67HMA4~lEOc4lQ9c#)X!h>59jkz;Q#;t literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/compose@1.5x.png b/Contacts/images/headers/icons/compose@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..0d7035e57906a64a538c585085a6072001fd1615 GIT binary patch literal 1529 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 PhyL%G`W&KO`)1WYS(#V` literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/edit@1.5x.png b/Contacts/images/headers/icons/edit@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..49fb8e3e0c646d5bde21a7c5d4ebbd8679356cbb GIT binary patch literal 1612 zcmaJ>c}&x182*(*xeGxjG`@B!y@0XrGNDDMJ zur@#t#5joJPY3I|`P0+h%m~eIgV9MO?hksVg>Zd+eQ0Rt$dM!JlIEVAoGd7S?QL!b+CiA6q;}@!=B`}1q5<^w z_G$o7()deDOI1}>00RJU~T5C}kFad9#12iT}o>dMLr$b$nUY8WVo zXCjeENl8h3KEI=*N&~ z7?hTdvvf2{dryG=35D`~g@cw&{TX!R*;Hpe^o{ikI=aS2CI#=0&Rjr+j*cg6@$FtX z|Dm%$Rqj-?`p^?!NxrOXr5N0Q=45W9pSvKBGWD5Z?%?Ka)lQrqO|ftui#9A=nG8Gd zX8N?PLGCR_%NK3C2`^W!J6c2+rnzikOjcT8n`-de&Mkhs#p;gGPv5R?B*d~<)g9*5 z-L^c;LT`kv|RrH|80;zIgIi= zE@r29o|(?Mi1w%LpVzU!`1-SxD6#`4+))39Pd3fpqKPp?#i!q7>jyaz@7`j)rbc<+ zWasDx5FMPIn!T}i*%Q{K(S47?C&woE?Io`~aUOg2^6$wyMRI|;_;PJ+J^!r9)(msMWS;D0kJYSVY9n zPqT=+$tmG#o5hOS+ji$+-CVGrWmi|!8QJSz&VLmYU@zqt@M+&){VQ1uSv?DK6~PI z!UX5_PTYKMhm&d22aojUEnSEWX&tf8>_gfmTt0h*^7lgS_$sek0^rm`$Gi8{NLma16rpQ<6ir3}Mk!aF!LNOuZ zz1;g^-1C~sqoO(CoUk?Y7fFodMC1$fpW727Ubir0FVH5m!_0lZ63Hl?HnhdQ+eC82 z4-G^s-A-+UUC7OMIF{)MZ*R{Dh~&gGIV?h41`7-n*TA>HIW;5GqpB!1xXLdixhgx^GDXSWPQj+a3TQxXYDuC( zMQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}1aVY^Z-9bxeo?A|sh)vuvVoa_f|;S7p|Od% zxw(#lk%6IszJZaxp^>hkxs|bzm4Sf*6et00D@sYT3UYCS+6CmKL-|y0U7xv`NbLe1q#l=rV74^$(eZ|K3Ki4 zua#$BaYIY!$G4{~3r_ExRewt3P=`TV*bxCHO#$VFRRZ#}ek2Gv)~lT8IHg{D^19QD)YAqL ztlQfEc}%X-x*{jVTiWFFr+HRR_M>P2cI+;cR|&d%1mvR!Du`i_qqY%Y1UAM)^iuk;{*Z41|5H@WRM#25mW%gL;pbbn&Q zWwQdWuH>$Yv%#+ER(P!T&pT`q1~ z$aVXI^{2%RXIu6ex~1d;OE2wL1s%_K#iS&BI$99Y{`!*Ir>*)#w4dFq3)cJ} z+v4PZPMwp^G6+-Sy``?=L&{&-ij7FGq1Y3`uo9o z%awMldp2p35br!)k0)ufE_|zLGyQu&bLQIBt5>V8(=K=M6Dhd!I5F#dWJmJ*gk44d zHn0BJd1zYT_poUh2?xKmzdZLu?vZfz)?3{cSu0LQoDetD{NA1^uC6<8o9?%E=Xq*B zcU<~cu&7~jWxd5R`>iUk{~5@in{reB8S|W=--ins{f?^qy&l9gtwA+`GXg|CXjy8{ a#KU0n<=Y~UbW=%CRqN^M=d#Wzp$P!5NIhf# literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/menu.png b/Contacts/images/headers/icons/menu.png new file mode 100644 index 0000000000000000000000000000000000000000..d1462c8e2c92269acfe0fbf6a7f04f393269ea25 GIT binary patch literal 1161 zcmbVMTWHfz7>=8G0}&L|?Lk8ZqG+3(EKS?2wab!Bt9Bc0(fZ&eP0rT1) zX6~HEIRrt>O|F&GcwFK?vu5CT3p02Q4-H7kp^V*)N~#M9QMdDuOqyyBOhZ+#?0f`c z1W{iwvN@DXZ4flu45~gRST-HZCWu&~?5J8VL}VWJ7*?G6aO*Bb8hV`C6iP8EM}h@o zZNCdM{T*4YzgLUuRAMz5D+^e_gh(aJW}oE=f~x zNQQ#V0gVBG$L(`Wh@7z=(iXv5;C0SYA_2L57~@8V)jSi}V%Myj?_b3VS*cg6X7E zlfsr)O%zTUT~-|$1R2^i{kX=_9!kSMZcK^xvK0r?Y3SKSSHtJg-Bcsv-2K~-55(RG zovwioMeUPqt!P3ECFMAUzXWwd7a~ej0RTi10?yFTmSHVWM zSFjyY%JAg!l&Tq)zp=tUpow^8=o-7A-tO8aIi6v`n8JflTQeuMg}LT%HF61X?O~1) zrI0L1432z)tN%~dXzUE_m&ae_Qrp5c=uan$A1@}`2U@siT-+Qx&;}DX){UerX3H=0 zqhn)1JmlxFPyjc(B`YNS$q+h-LYdYI?sMrTCXkq_276h_pxw%dR|=DcYF7@ zLH^iC{m4;y=GUiZ60b6ir|4~WM)yDVZti&!t9*XFrLL~-?3JyzN19fCV!+Rq;=AW5 z^2?&(H}^NXV1R0v-*{>Ix%#C}L>4<9~!@ZbTE zymswcRaF(xKr{e19%#bz=g)y=9y)Yr^XAQPD^{;w{rU6fpJ4FuN!FK1gBW+I8z@ znz8VUONekwRrgfNymkw<`tmtM|I+KLo&qkBQGSXi-#w}Wn!%Xl?e4<(pGo%~kkjkw z;uzv_{O#rKLQM`LZix{*31ZBPl-zhYk{oLPt8d=)Dd*ssa{)WzYghd~Z_48<8XVy> zBcR)B>eW{Px6jQsofWYC)}&pRTX$Wbe&rp*tA`nHCU)AlR+;gOX~ayko$j>yYg=x) z>pR)E3#a8*HvFoXbmgPuE0w()-f(?=`|rfX&!OKKxL)f2`zjy5rnZ(rj??Q$Na_zG zpu<#4Tq8?+%sfCq^p|*jAm4QKL;klJ48glbf ZGSez?Yxtp4CJNNR;OXk;vd$@?2>@nRCSCvl literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/menu@2x.png b/Contacts/images/headers/icons/menu@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..35a9cfd4a2ac045705b8d392369f189ea864d61f GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i84?SHRLo)8Yy=BOC$U%bjA>+m^ z0@Z?BHwx-2RtUXMd7t=3N7$xO!D*6`g6EIi+?;aO^oOz!lr_r|IywGja){|fY)ClR z#QI-HLP3d7u<*>DTCWeLM)UW**FT^l`eUZ_ozlCqGnO;$FKTX2%xFl}D)`DA|ATQ& zaO3Ga54PpzAJAg02noHqGIQ3Vb+3)CcP+AD?iP7qXuxcCK=1Ol15z{8elE2?A0K1G z!Y!tABWlyMHLBSsp;UJ}$mVG8Ym>I7=te@QpDSF!?g6R>J8b`3Ue`^QHJ)w_szA>& Nc)I$ztaD0e0s!JeaS{Lk literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/reply-all.png b/Contacts/images/headers/icons/reply-all.png new file mode 100644 index 0000000000000000000000000000000000000000..5c0c8b99de40bf25e043fee646f77b6818b4945e GIT binary patch literal 1286 zcmbVMTWs4@7Q1Tq~oF51D5S` z&hP*G{<~jE4L#n~xvLXFkgoV%Ar062ou~aa_zn;!kHh62JC?PFjl5lzOn^icBL~p9 zCKW&$NXq#B??4biwiVS(*3KpqoNQOY$hN(HtnKdI(!xSj13O z31Lq$Ng`S1K~dd1VS?d_p^Q8+D*F{I5=MhH4iadmg}|WywcTiXbVRfH&(VX^vqzY5;9s7_??8c`hx8 zO92Dh-8g6S`x22j}xAwFc1YpUgTDDa~M;%5f zXH@JE20h&fK`SSdo5Z@+OcYERUX#i==^=1UbK+Xpw(K;x;l`HQR%W~m@HDWDiYdc- z%f)%4;i(@M+&x*7d8x;Ir%1@FpDjK60KkXH~te>HMB-6sib<37?8MN%G&~6jU z-xSO7CXj5y%os+g)d8uZVH;M_D5Lx^i}ocYS=Ajuzf+)%cm-gpV?Ys2Lqpdy%&A*= z5EChyrYW8jZ$!@1EFr=ucyfTknpoxkWDSST;7)t|r(Iei*n`e?v-#m+b9{gfXU2rX z;nSoZ1aZ-EA)2ZEl)K(&M816tdFZg~mJhn$7)b<>b3WOong$IVYAnUOI9|b!7b7pC{((^`%~xW&3wFe);j!(`(nS{dL#$$opKs zs;VEKdUi3~Hh15FvFDbi-)#re3)R)xwZH$k(w|;A+Lr4meKj+){5zz+S}#=&Mw5wo z*V8**U%Wk^&(FV@W`0=lp(m1GoE4ONS@Z&`kf}iA%{#GkxhLkjb}S_lvmfs$=YHqA=X~d!wihFL z9D7?2TZE83H-g27(|_$_W4VSjZLEO9Dv5c3iO??vc1r?0+;LJqXCJzy^EAN4D=~t9 z0HO0f2r07>S^!8ng3viCLZk5rF-j0}J9Fbf)Lw)v4o2>eW&>e$b=7Dz5{bm6rKQEi zMU%RM1x(9_eS*Xw6yX2!%!!GK z+qZ864ZwHr-gR_zfJo2`E)0Yn*2|YKA$xas_vGXxxFBYIeLcvot*vcqYlC`$1EDfA zGuKl?b%20Ki9`Zz*|1@QTCD~q6eyR=F&ZR=>|I@5KvO6bzy}RdsTA`92n~V$7z~Ew zx8wImX09RV*^CWgRuZf*`DU{`Q~ zJQ&ve`vqR8w6n7lMgUD4A0Homzd#Qt0aspL9!wKlGMNmA!@)4PRHePAv=%912R0M(P*HGJS|)Msy4~^ zyhCvQ_oAM233)OW6x?DAn~Ee7HxY0vlZNND2h&)pBlonF*)aLoQjAAJ0q`MIUV zb9igPfLVTAsAybx2e9~M@6wc1(Ie1hr8@QC}mPeXqy~$xq6`SPYf4Z~No1zZ0 zXYKm+58gM0hC6=z$_|37>ITxK#`PUa-r!EM{~>OJY0;-?*7dr_+jW z9^rplnyRPQNldJ7Yi_2pxb6{+D6_eabETr9s`5hCS3eT%{6dqqlY=F!qZ~Jj>1lhy zvon4{^iY-U{{8LRXJ;$#)b3R|)YPP$sl4-BV`N5CZD{Fjic0!aVk=&rsxVjHYy%|2lU7l`bS4*-h_XKbK&^|)? zQ+h~}@NtaUNIxMOj^Ey?ZEp)eJ6@Z8cluso7rhSH!9INK+R;q!2Ns_Co%!Fyv^wjK z#9f%kf6=prGdjB2qv2-d{hTO7&dFD&R8&2ehD56F{aRhmaS{+q!_O~1{r(5VW7ZAl z&{OnJ2)yeI`@=50GTNr_`I=|@_CyEjuD{J3h%i2!xATf$dCdO0;IDv&^3r0Ffqr+( zpKXUVnm=NyyK3Tc+g=e~ybaQ7yKRO|HsYR#B0rvxji;<98nJH-G1 literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/reply-all@2x.png b/Contacts/images/headers/icons/reply-all@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3d74a2d20e8f01a9dd0c8411bc9441d7449b75 GIT binary patch literal 1606 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 UZ^<5-3Mza(UHx3vIVCg!07iT;od5s; literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/reply@1.5x.png b/Contacts/images/headers/icons/reply@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..e45eb0f24d5c8854033a61a2398bba91fb751279 GIT binary patch literal 1561 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 literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/user@1.5x.png b/Contacts/images/headers/icons/user@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..ba0edf5804085717c1243b1729fc71ccba0d3bb2 GIT binary patch literal 1640 zcmb_bc~Dbl5Pvx!6ar|Xh*T&xYB-EWV?hFqfB_K}@%>m>f7MA6_HO2c(`*0ta@#hrb7c+{rc3?K1!y^$o|z6DgN28v(!PyhmWSXdYY3x&dwkr5~bAShW`Spf2QJef>3IXMZqTCIjJrlh2x(P(hx=jXSy zwDk7&4h#$o4GqDFq*7^daWR=p1}{7tHf%V0^k{N&a!^o^9?>`Q$t4gTA0PjBS)j^h zv-Jqf5Vi?A^xog!uLmIon1kNk-3=1Vj*bpc+S}VI8I^Di&juHyDBq)i$qPUaLtbV0H~ZrWu$eDP|i3@C&0F z)x#nmb0cbENlpEOD-k4PLkoNAN+OPkUJ_B9a^tjtpGuu++SqH8H1h70)M>$FQwt-e zfwWq7l6A&lcBsv6Tq zm3H^m5pxfvu8mzJXVhqRKOG**{bi#q)hPBI_H^c#A~TcRCuIf8*E?8UcUtAN#-=vH za4fUFn1B1#MOlTw(DMnMM00c{JFl%Rx-BV4+vV*YWjOZgeEZ$WEMJ_(c5if6%?qd?$944i#@RDqWD_j9nsFa1HOktT}jMa;o?h4AAP{pavaXUI1h!Y|Gx{C+m)@%M3sSgur3vT3Q+c+mApUTJyZGm~?9 zVMRPFxsE5$;_-D$_e(wNla%8wK?~eQ9;*HfZra-H<7<1t!d7Lm#&bt+jm9|OHs8K# zG_onaEbI>9YaAu?WT;vvA9gw5zv+nlaL12jl{<4o@An!C`TSVaTW0*Mp6lZ)?mX(->h!qg(RpZ zh~&V1m>aEE8@SDJ3f;+bolmYcb@~R_crQ!K&lRplkP0-r-pk5f372H0z$-++-zSKq z^AaNAK-N>&(I`}B3UwWKoim+Aqtl!msT=83s`X+?;C~WgV)+N7zWe`#XjYsG5|Axk L0nBpG@btd{6H1gC literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/icons/user@2x.png b/Contacts/images/headers/icons/user@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9e2d4ff4c95256a8b2583386d62c64dabf82de1b GIT binary patch literal 974 zcmV;<12O!GP)Cz~k{8!SPR}vdLs}simdmGRCZ+`J}~Hxg;D8Ut@Dta4Dw- z1_th6tP{XMdh>wjLFw%5Y&(xv^WhRSrd4@p)C1DA?06dvXbJ@*dHB7k{J_AC4Co^d-yLCdW zW=@3hzb3E*c(##NB+Ih|nzAa4zZ-Y94dl{_WO)*xF)PA2Hf7d(=F*B}dF08-$!gKU z3fnkbn#(F`@HyE-ix^?Py1#(Zco-^lMB+U?J+&f*I{>LfB9Vt|l|>1Eq$Z4A*e6U) z5+&@XCY(qlf~;>XN;pJKcx`R%2c~vRlyHFH3WwQVT9oiNYQph&+$VB{$4J@omu*Ky z3BRHy9E-(1h`eb%rY0N=2H6YqL!yLlQxir<^a1OUi4wj*P1xyl+F1`=gs>i;B_KgX zmc3o9udhFgxfO{JCU>V^SXl64N+*F%q;MA%VV}?UoZX>C?uQLHK1W5^;c#4M8wZiX zdMeMo802Ykm-?orj3jhEB07*qoM6N<$f|g0XcK`qY literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/dark/header.png b/Contacts/images/headers/ui/dark/header.png new file mode 100644 index 0000000000000000000000000000000000000000..df83859bfbd2502e8b5d56d416cb7dbc8bc82c5c GIT binary patch literal 974 zcmaJ=J#W)M7&cIes#1kOEHE7oLV$?vb83fJaZ3^>Gzdo_jYP&e_9d}W`&|1%oGg4~ zp<4NU%P|IHJ`)I9Ss+#?_ znX=fGWsnXPO5h-3fY8}+10_`15wAk`k(p<~$c403_AsfMUIsbrBOq~!xG6vgWSN6Y zk}Sh(Kop?J3-p!aa7mG5MNES6!_sKJ)le#0VH}H|RJKKkr|^8Y+vU0m4*N|Wrc$Yh zLlooGBOdfzVuW!wh)ozY6qvs45gWT8Vl?WwLsXV#dRT(vO=;a=+$P#EJ~TWYaza$n z#8KD(@9H>H?|@X$QNI5q4yrv5@f8%{j&IVzHDXaHPs#bnAlR>ByfNuwxrGT1TG#`* zH5pvi4byfb!<7+2*Oj6h5W_W5QBzsU!P&N@XvsuYf`Xh&zyySOF(qb_*OOWS7PMSG zl}${r8a6u)a>)d19buC*v5^=Yk4DyzZ{I^!!N(356|LB_b6J|nH^y4CbCG6Zd72C# zjrOlmPfS!l(RM0adYDQdxm52y751&iSLf)ZxKY$H)$mjOqadUD`uc+}2M5Fb*qh9+ z`)B2+`=@qJz8vg<l#40m KOWLdK`lCOFXEXHx literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/dark/negative.png b/Contacts/images/headers/ui/dark/negative.png new file mode 100644 index 0000000000000000000000000000000000000000..6f092a510fa6c8e93d3cec44beaa2f184edb40df GIT binary patch literal 989 zcmaJ=&ui0A9M4u6G8_y=#EJMwRa9(}m$c~`m(4C|U1gc0E7;>+lh-zM$&1OG&2|!p z2SL1e5)Xn$LH_{{9(EE1^&p7gNxXRR;$dE#FWuUC*bGVDdtbhv&-e5F@$N4!TpJsm z809!_tTJa-**e5N`S39NAANlOD_c&|Qk^c5ChejSb47 zb!&B6x8^mQcmhg%gxCuhn&YNs;sDtlOhE&;TwmvZzIx3A*U|Z#IZLtv1Gn9|^$;(u zFVyVyj$Ls0nQ1T;YmC6d6oJ@V@gptP`5v#v_K8{KLC=MDbbd!v-C6_&2{FhCO2(ET z1ga{)Y))0-WgtsX7A5wo8JN{_swU^b?!&Waq0`i=W_dRjJL!Cz(m)f%ZnrCR6@i2; z5f%!CghQ4y%p()6`4q(&KT7u*OdQ#v8&H?{AYnuevPyNHDcwoI3kI})v|A=tFfm4f z2n8ugsqbi6|9ADgfpC zwd`P>gSDs!Y7v{8sQn8jNBrSUmh|A+nTOlP nr(u{*9Xs(9C|8v9)jLDni$~Kx?pe>DBp0qyS}TlOrx+Mv*0jFskAdYv+meVyV<(4n_JEz>q1sUjx)#IN$1kc(Os9I z5FreLiXtd`2#RhH5%^F&WRaLb^;AI@h@N^$Eu;tOp)=}g4{gKDoO6D@@B6Q3s5Q2y ztYlLOK@erpW+9H(W%zTiEXMzxg?9(=Qh~zlsLkj?X~}{_P%%0oh-y+2#-XJ2ADe)F zf>>UyCfZTE*uu+(MoA8a%4jBL6NJApV@h&2M4%HURXspXJ$^z0RSA&$y`oz*LolT_ zXD!&4jV0u4x9n5M#$CXl;jw@QkpwbYk8bms06C}2NxBT9LV&~?l&UIxsGbudtl$lK z7$3ugSsxp0*wG+Fn1~Px`h z^T*=JtGB>a^2bu2mrLVdXs5M*wK`|Q^W$t62Nxd}M<42V-Yq=X@<_59Uy55%A(+T~ zKyR2e&)lU&t=qJN#nfog$yNHqs8{OT4O077{~V8PzE~<)Gc)CfhCWXI8h@L$r-?f9 zPQY_Ccy@5ZnH7~A?^kabu?E*Z9WH-<{fAIBvrV7@*AO2J_Q(QW5YAby^8M*m=%71`)_xhpf dyL#zJK{4^DGXACZf%?L^$AY7FW{6Fs1S7jIrj@I=%YP@@M;H0mp|>A~5weeeDA`~Ci(?_6v1q2i*- zB7z`_<4r;WudDIrTVII(``1nk<7FF)b)t5o7iA<15)sAdfgr9)DVTtgGI;7a3=zZ{ zkDBa6o#IhmHZ)3dF_fd3m`xC&ddHOHeuzL1OsRU9{P5@r2~;Iab_7J9Xhvb5+B9Ur z_MzsaJk&1-6|(*S2su0!&>)h4qYdab?}W)^T^{dUGfjeJ2C!4^{Q;(RL10i;}GBu3^tILlpVAZX-#TVO$84Sc6hkg%8#VLAEZ?7!?{= zhKaEaLWJ2D@JC{tkMr-VjbyokA*VH{qbyg+aXDXJt~(5xi9HL@Qcpvr(K0l!oHVcI zk44Cb0%DV(erF^Yr!SzN6k?htt19+>?sIJXe9f2M_`?$$(l@7OAG~<=mODP*LXXT| go!I_h3Use3B);!p3sPl|J?>?W$C`yZ4JU_x0r&%7#{d8T literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/dark/subheader.png b/Contacts/images/headers/ui/dark/subheader.png new file mode 100644 index 0000000000000000000000000000000000000000..4c7699fcf7db4c54b0ee65931934684f2cd82418 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI}!2~3QW~$uzopr0PmU`e*gdg literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/header.png b/Contacts/images/headers/ui/header.png new file mode 100644 index 0000000000000000000000000000000000000000..24796f67c81dce9cac422c58e4ead22a5a02c603 GIT binary patch literal 985 zcmaJ=J#5oJ6n2Y5OGSl*SYSH2i2v9=Cw5}DZq?Wc4b)MTMrs&}aP3QCwe}hNO56@0 zbwFZZfdv?l*eM$WVgQLQMMC^6NT5oHp$h{eE9bOH8B#3UclY$Z?|tv*?p4Z{M@LSL zFbp$VnlY+$9iX2$JV^h?AD`K#%SlqGlR4ZVZ7W2~w1XEBD0x;BRgvYa-rPbH40GtT zTdR}0Ijh>(uBt}WC~`Wqn10f7NWVe za?M^_vK5D&ngkQEN(nqfED(Fkex$}4+u>E|J~8tw=(vz2jolShH!DELAp#PYPT2y4 zK$ba}kz^TO0-^v#UZAg>f*DnkRWS?p9+pN6orYR9ihHr>Nn=}t1S-$B+ik9$=5W~L zp`s`WhbX3~M=DzNi4~{(XspX%pvVs0fVkKP38S@$SBS<^rMoG3L66pt_R2&H#>ZB` zLrzFi>N=X{|6M(==N*wM+Sl8cII67%h_9juuY@*jTw^Q=6{vcMEP}%t#>?F*R$7?g zsD%Td&&lANY1yuy7|wSPrm2?vh*-XjN`}T#4$gHQ73M`DBNs9{ET$nWh4Y3X2d!hu+xis6&i{?qENiOx^5?F}wH^hO`~blyWc*y@GoGrbg7OU869{zl4M zqYN0n`21&3{xx!Y;q4vm$mZtIvrk{vA3R*IFz>J3oj<#&OpZUfKG@#5|7YPx{Bq~R m*YB?$z56)zbZBGa*uY`tXeiBIIbn<^m#tJN8!z%V*8c)ry*04_ literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/noise-pattern.png b/Contacts/images/headers/ui/noise-pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..9c78da8830739ed775f13bb1efbea156edb92cec GIT binary patch literal 4837 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 NtXNpppXE31{Q=TVI5YqN literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/organic/negative.png b/Contacts/images/headers/ui/organic/negative.png new file mode 100644 index 0000000000000000000000000000000000000000..b6639019763a45d58b0b742a5bf29d76d323794d GIT binary patch literal 73 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 literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/organic/separator.png b/Contacts/images/headers/ui/organic/separator.png new file mode 100644 index 0000000000000000000000000000000000000000..e315f0e8aa456a80e9ffc2002d6765df2b2d358b GIT binary patch literal 1081 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 T%3JmN6^P^M>gTe~DWM4f?nDt{ literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/overlay/separator.png b/Contacts/images/headers/ui/overlay/separator.png new file mode 100644 index 0000000000000000000000000000000000000000..e02f24a0da39cc1b3a20f281eeae47add9c63b26 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^OhBx}!3HEtr8tCuRH&zmV~9j}=?QPHLk0}22R(Q_aIPRP~w34H%)Q zw&O-NhjYr1s3DV8Jq%kmZNjFgNUUtDS`lJ;6y^;p%6xmi&d`P)WiAF4zhXrCt{9Vv@Mz=T+(%jSgTisdL%)fLI!Gjj}Gh2Ub8*$XPCq-Y5_kPfl| zpXLXE76cab1_c3}p?N>xIX`&?ALtc>g2?yLwTB_z9DPho%L6rE

EJ7~3Mpl}aVH z6kw5)=Ri0d_B43jM-V=D#=>gZXSqFf1sS@UW7yb07VRmjqi70884~GU3Z~tVwcJ{n zNWr+WYIA_~dnwg{it>M`X*SRxX#u0xdhmR>kWfx6VEbqjA^J3ILM@{NsC7FScIl} zHLl(~mcFK3js(Mbt^KRjbrYE%Z`&ALa%hY`w8*?WWU$S*9pmIuTuaLR+46_kTNm0} z!67-Yu_zsm+|2(d!1ZlGyFEXh_`2D1XXEPU$@RJh%<#_WUC!G%k^Pe$gxeDBEJkDZQe>?}Rg&Rd$Z{F zlu6QsEP@^-d{Cl2>TdGSDm7bai&xQu`$e7pE5+L8$i4RbSfH4e3^Ja;EK!=Z63iT7#xTx&AlcF z^|pki-fqb&6ZN}rUy4BjDu5!MQhPLuNwGvmmqB~mOcHno0=rpaF{p^pigUUNaF4Uv zA-O0Dr)eiuDpZqkKb+CkMY9-492;@O8l-b^{l1o@_{FLYvw7=#8xlF4M! znXGo|W+zE`yW zuJ`1s*c#KJZpCy1=R!2TO%NqTvklub3_)N5ngvBo0s)>SkcLxHWQJ;RyK3l0j-#5Y zDXP)kz;U&89&eq$&dX8mIzGqcbt$d_4d%G=GMCTGwTD49kY^s4N&?7Drmo_dq!}fD zEdIQDS+1NvmWI4s5(Purt^KRjITM;6d%HBa=&&^UKtuCxqQQQ(52t1i z4y@1${Ursbr}qE4J4bKXGo6^+I2>%7<$gx0kFzJSSkaD!3)hQ^zMlVBB$llm8h#x= zG2C^lU}W9&5L404tUC9ta6Z}hFy4NXok~<)eK)vXe13c8+2`1O?ESs|YXdHB&7t|K zPoeS0qZhx=mH#+4v*G2$X6nji{!;s$x%R=WiT-rShn1nRk;7-xPsbk>ys4PPPW|pO TDqrk9U|-)rV+%jpaOBJ%Fc4w& literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/shadow.png b/Contacts/images/headers/ui/shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..70e7e1d8f7cdc4c830cbcb640922c0cc3bb7abf0 GIT binary patch literal 1000 zcmbVLJ#W)M7jr!` zZf(N9|DBz~a!+)I;+Rjwf@Vx=g?!9VFQ!x0XEa>C`oeYrFpCC5G4!93fX50gb(A7b z0WC?pdqqlv6DH7@O{2t-e|`KUqbPLb7foODQri6dV)HS~{=%QJ?WO1&0n7$d__aHDA$_z}`Itg9Nl zMh!Pe(;&Ku){hLdjUgTOHS}YrxUbZM|h$rq{(?&+XXldWG#Jxu8kF zD!UQbU1QtVVu_nEDtI>F{Iu$TqZt=GpYasA#|C=f(;!Mp!NamZ7x8*5i(a#^oADT} zGEAZ?Jkanzk-NCjF%84hEX#0PhP=jx|C2QpoKeg6_^Vwi5%gfWy=;CsT#gS*U}iEH zj>*rj1P1GF&ua~eZ{yKu^fuVM^JD+!&iNn{1`8H{_q~40ArH3y9?`&{Fldp93f8^#}JO| z$q5MpDFI0aX$6c7OdJfWWq$7u2Fj|IxJHzuB$lLFB^RXvDF!10Lt|Y7b6o?&5JPh- tV`D30Gi?J4D+2>r(G&hC8glbfGSez?Ysm2^_zcv*;OXk;vd$@?2>>q7OFaMp literal 0 HcmV?d00001 diff --git a/Contacts/images/headers/ui/shadow@2x.png b/Contacts/images/headers/ui/shadow@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9f54ae6851b02ed8e745d7cee35dce2ae22f8d82 GIT binary patch literal 89 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-W!3HE>s{0!ODFsg##}JO_YGyMPme>3NL W=8Y!Lk3Is*F?hQAxvXqWJO16dc;5N!!$h#knS}D=u}kWh=UaS@PD#E_pF|U9%lL zh#rOq5xfoYAbx-_Ja`bqkAW92$^)h-Pp@b0IZiplJwlmR5lUs2TG&Kf@u4 z+I`9_m2p`e6Ln-UTHwR@mP61KH8kuynqGq#Ov8$4OZ2a|A82425$b z=uwUXg1~U`gdlL|03YReHcDP0!o|geAo5AD_0S}mYs`oRCA$@ioFux6u_LlP|O$VFE1_7fsjp|sUiPBaImeZlNy{$5l zg0a5lupAQ&QffP@>i=CWtK;qA0^HWymDnrIJCH3v57k|rG;U@f2<3>f3pI?~5<;`> zDvnnXMqU*;KrRa4jH>CT9T*0i2vrqxwud!ahdD)}2?t}EhM0lUr2=VXzz$S%I!O2aT+YEYM6^G`nayA4_NA z0+%IxvF=)0Sfh)U7M73hh-HZwHfZfXt!|sh`~=(1;F3dU^r21W-6ezlyLRss zeE$9=)ca5TJosm_ymC_8cO?|szw7Rj6RIrFz1z4SUauWqUkmk7kH1W8HV(Y`7TmsE LCa)}~uiyR)@U=dQ literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/arrow@1.5x.png b/Contacts/images/input_areas/icons/arrow@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8290165472c8a5e5ca22ea82251c1297a6a8958 GIT binary patch literal 613 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5l$a3U z6XFV_jg5`}|Njppfxyzz5=a^u8Ch6Z!s1 zl>zytFyQ3mGg6@lmAvn7H0q3&w^NQJ`VP|72tR0iRb0tzkc2iVs~%p>20#+;^XILQdwr057fYz zlzq_7@Aud8(SHhX&YEr85qclp72M}kei>9nO2EgLykwm yXP^d2kPX54X(i=}MX3yqDfvmM3ZA)%>8U}fi7AzZCsRSu&EVfXVmOZEW;6{MFWLa0M@vy;8iUG2~|@aDb$IC7IVEYf$*3NNDVvC}DJpurj8tt5VvvWUh83fKK3kxHp~vVmL4{LL5*CgAX$KBX z59YM#F)gCg$9q7uED-?{VilClam$s;F?v&1B4_WKrNJfykHzS%poWzUNZJkrL52%x zT!;f9p5eQ?!{M+W2prF`oWSxzfDcPug2Zv4^3lYbqZg#C+*k2MtQcLy7)dN!DwUX0 z7h^l4EFXzPJPknz5JbS8vanhXSZ-%kL58m87zi7-1w2JHZ%^VFO(NY&!9?4#mRl(k zDHvN;5z8~2mr@m|DF26=<~G{JS-2DLKZV`g6oPCPy7r`_k;WA|Jy%FdI#9*7le6vd zY85j@8{2NtMj$y91d6H|mS=C`6-7#0E>AT8eP32)8iet$Cen|gAXk-?G731`-d+IMq~D^Zj72Z}!pr{IR+RM;@Nv^#<)fmrA8>&d0Bg ziyu2%XIDQwrJk(bI@|jW4fw$;0zqDsyrG7$aZ(o5eEiHoszHe)58#k=Q_{fjv9sOfN n?|&`CcYod3*k~;_Qg!>Nh4mwQKjnX4^B#CQH7Gw$j9mExri)?< literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/clear-dark.png b/Contacts/images/input_areas/icons/clear-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..eb8acf859da98acbc91f53adcb836ae7a217e089 GIT binary patch literal 1258 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)y-fM)1rW~NxV89G@QyE-~M891338oC-e8JoB`J36~s7?>JZ z7`i#Z^t$9Hm*%GCmB93-AoRN6)C)=sxdlL*T~doO%TiO^it=+6z@E0s#O)SGoaRCG zrr>sq6HdMQK*#8Vq82HtVM4(417gAxE|3FH`l)%q^j-u^*wcG`jxsPX#(26ohE&{| zGG(Kev!O`a>_x15yP7q&@dtD(H0^V63=}Y5*ev_%74r`xzp?PY-ou76N)hLyMGj@q0WOJBc7d%jy<=1O3ka?nD8N&bQ0od)g;*M;XyJkykF zFza;Q`Uf3{;wNeS^q%Z_{DF^ExklK@3tgw-@$Y(g!TV#vDe>I`re-uk$6!3=}71FZ?-?h5*QA(W_xPi Sk6Q;SeLP+LT-G@yGywp~Ih+L^k;M!Q+`=Ht$S`Y;1W-Ynr;B5V#`)Aqwa!fj0>{c5+B{WqKAJguP4VJz zt}?!SZ_B>_>aWaPHojZ`w(j=ZZ+DzKI2Zy#)?Uq%f4QnjI*5Ip^{v9|6E50bw65lO zmU(`Y=48j*)#cA}1b57fZ|3^NxPHdVuem;NIFi3rW}Na)-`A_&yG!9P*Effw*%w~A z_PB{pKO8Zk!eUp4M)xtU2`>8&1z$I>nWWTxx#xadvZ%I4M^Vr88z)%J{U2M*ee_63 z_+qSMTI|O>`CuFE(=jrVNo~KrA2EI+{F2!y_VEM1;GY?i6Q;SGSk^y5<-?5dmW}F{ z)(LccQC6^$1bH;$a1rptHhg4(;jsfsiAc7^@EVS4^_P>r@U zmnZx8B^HA5ac2APIN2_~D(z|0ZS?EkL1WD+Q$L?C_gRwY2OC7#SEE>l&Er x8W@Hc8d(__SQ#5@8(07t3fDV-qG-s?PsvQH#H}H)%Mg^A7(9VVY@Jg=69E2W_YMF6 literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/clear-dark@2x.png b/Contacts/images/input_areas/icons/clear-dark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..92a3ec4be13569c9e5c72f607fa6d48864cc9729 GIT binary patch literal 3722 zcmV;54t4Q~P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000BENklv zyac`gNhd(6z$kD@jKp+yg+K#%0ldy)Ckx0v;5sm@PIlv}3CIkvSp>*_;4W}t7eUxy zmVqe=`yUOs%W*9OM9CB1PG4?(130ZQDtSOgGnS()VMf+{)|DzIw(eapBO1pGw#15M-=@x}OGANj7X`p2!sL#7yd z#`t8CUIMISY_*d7B8!QZWmqkNxuX~?&HVAyCB_m~fy8XzHQ=KYoG5tA5}nP2ZB~H; z=B@>16d2c}630~Z`lJT$vdfeE?;~Ncn>^xlV#okYeJ%I?$Vj2Dl3?=GIyaPXGOxis+mOpapbIv zg?BqWa@tGRuTpQ&*-=Ff;gP-w%;^h3M~85iodW`MOyGhXZ5Ur#1%7≺dTRA8KmA oA)S+}R@t~A5KRqUSloXH0G}F1O5nr_J^%m!07*qoM6N<$f;dLgWB>pF literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/clear.png b/Contacts/images/input_areas/icons/clear.png new file mode 100644 index 0000000000000000000000000000000000000000..56ceb33d1cd5ea5770eef5c478ca1be6b49d3322 GIT binary patch literal 1367 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 C=$4QG literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/search-dark.png b/Contacts/images/input_areas/icons/search-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6d217cfeb36c7f1814b3877133e3dc33103ef31d GIT binary patch literal 1228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvO-#c64^NFfcW+ zFm!W*>2=9ZF3nBND}m`vLFjeFsTY(OatnYqyQCInmZhe+73JqDfIV%MiQ6saIL(9V zO~LIJ3!HlOfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;u&o}n&SPL;wDWXv45_#^ z<vbTJ@JFpBq?fN zjX=Q_<1@)3u~rINx9^%Q&1T;(ae*;0Qv4K)$j1&d*#iC71v43TpH92;szJHt^iQu) zp{o{G81+viG45qN`;9GZ>CZdwrJfhG+NjO_z3#Y#-^DHtp*qHVBX-LrA9d{4XarX@ z@?SY+%_*CZ;&c3BC+AFV>ua_h$tO5({^kEzb1r&9{i5u6r=lVgX(7&;r%tu;JeG~G l_~i36)j4UKnrrfDl&-t<_`#_K@uKXpr~m%@ z^!DA?FPoW)PuAEfs(MYnf7O#YdYa14a|UYD1+|aQ0ptn``kY-QWw?%vc^A=Cu%sojsR(97L#Tau_PT3Uuo!wOxO_6c;?Dm}ys$29= zfL)uNg-uaXRr=0R{)cTXWv!J;CN1tRZjN{5WQC>Ki^Uc%kEvlgbIN7ix+N)Y6GW7g zy|nzpqpW;F*~-Jy!pt;WN{T9W?JD}b;Nc04+4}cG10tS;#{@~;WMxU!GLQ^+e_M1> zZ{xakU8hzVP4Jngt@CD8cGl}Zucf7Cw>+BFXtYzxz?S2|txG(Hyp~Oh&yF?v7(YyK zVDITsxEys`!XPy!TIrUxgye>k5+z1P3=D~j+&qqCdjX@KLAAs+q9i4;B-JXpC>2OC z7#SEE>l&Er8W@Hc8d(__SQ#5@8(07t3fDV-qG-s?PsvQH#H}H)%Mer;NP=t#&QB{T pPb^Aha7@WhN>%X8O-xS>N=;0uEIgSCEIAk$JYD@<);T3K0RSBS2dw}A literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/search-dark@2x.png b/Contacts/images/input_areas/icons/search-dark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1d31a2163de4eb4bf3ee4f8411f564a4b6f48a43 GIT binary patch literal 1577 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)y-fM)1rW~NvfxR_g7m>ZZl88}%O8oC-e8JoB`J36~s7?>JZ z7`i#Z^t$9Hm*%GCmB93-AoQBz)C)=sxdlL*T~doO%TiO^it=+6z@E0s#Nrl5BNrD} z3lk@xd8XLi0@0g-#Vt_1&N%hz10ACeidv+oh6w@F4~Pj*xIhj(>8Iua(|ZvxVM{es zO=e(Vn(gW07*cWT$aG(ikU){+&krv$(CJV(?zE-fHLz`lt4pSb2+P{87u{w-EP+~j zS(oFk795 zUkMAYbB&>L=ijg`KWJXSX>u_<`i$~E8J-4hNww+QCOE}6$nNBd;FfD%tMpCeN@LLm z36X#sjs?rnD9^b2z;TA#KiRJ|)%A%RYF=eJ$Ms*t zBeigi`VZ%Q#Wf65vRHDS*hy8hyJIO{vt<&eiFaa zjzr&}x~1{U1UG~nxz}ED_BM-I`LP;%#zMi_T%HGJe0W^Pw67x~(SzyDs()jgEr1<(nF656NHPc#&S)zu{f@6N8^NVtUzkr5GnaShRvu_Rpf6 zHLN0+>sjVytbb(oq3<7Cfi1USdW7xTt!yhvpGg z%PG|Mp>5c4zl~DIK1u2q&%7hE-8OG>z>(SwPTB|V^({N7!PxuetDB7O%#$C|c(2mFs* z@ZtC%^igKcd`-q67yj&{X}{%-tZvtz|IcZ_5PM?c-Zqs!9Z=!z>FVdQ&MBb@0A|if ArvLx| literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/search.png b/Contacts/images/input_areas/icons/search.png new file mode 100644 index 0000000000000000000000000000000000000000..64684db168691f3913af9e89a9337d73fc1ee694 GIT binary patch literal 1265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvO-#c64^NFfcW+ zFm!W*>2=9ZF3nBND}m`vLFl!_sTY(OatnYqyQCInmZhe+73JqDfIV%MiQ6q^IL(9V zO~LIJbDVnhfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;ushcC*)lLNCVRR#hE&{| zGWoo=OQ6W{`?LR?XxV5YG_&q_yg#9QC_-f-iFO%s>~e-Pkh`eh^{#iT zLsM_6GD^+nl-|IhyKk2Kjdl?y`DG3+vuAT;Ml|J01WdGxXpY>mP%n+kBqJvLwy=-o z_qp~5#d;+lnZ7wxbAYk^?b4HOpZ_QQ@7usreC7M>aEZX(>|sBwn&KslSs%@^Z!dkk z$f2S+FZhA$=ZYB&*N&#Lr}#E%|Csjs>W)JuCWlfT7_#3Vv5iPPl`!?CZHsT_vVZ&D zI4@cddQVbl16RA!nYt-8Zu5k!9ttnBuwMH`^;Ge@15I(d{Dx86p#n8m06Vm5vL9PJGxAdOYdT%p2{C;#A|OGtU=xpCwrH bM>v5Y{6YO>9sU+QP$A^$>gTe~DWM4fg!93| literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/search@1.5x.png b/Contacts/images/input_areas/icons/search@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf564cdeacd257c46b111182e805cd830403d05 GIT binary patch literal 1203 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~$76-XI zF|0c$^AgBWNcITwWnidMV_;}#VPNRFm=@@bT=yY%?MsRi+(?6If+{`>Uy z-PbRhnMzL9*ea@eO}>BClR0LZ%Fc5JYSRU^kI&^Q`s4G)Vs)MHnp&OnpB)&@GWW5X z+{HBRnMIK40IM_lDE4{PY(AbXCOP+)5S4F<9u=g1CyJZn_8M! zm|2;d8=DG)$g>Ae9zA>b^s%^r%d{jBAu&Nw;pr2myqY#Gabl`V$7#>5liC_unyXi= zDqWqOaY%KG%91Um5{?eRf#E*>@~c`eHuzt;&>@&Ld!y&}m69$_*X}g=&lG&e=dG=s z%@KX!*deipB5u~zf$SXTFP^-~da`pJ-`#Hl>t@et;oG$Qj;pQBK^^^k`S=u0`@s5+ z=Bdm~%@cYi@xFW3Uf}Gs`>>6m)FEZ1#S8NK`#O7@ExRuo+bIgBr3!_Y7jY?jbWJog z?Okqd%e+i$@@{KwYjzPOtDQD??^gc2P>?c3cfxx;9j$NLn!4R@*qVw&XY{OIT-KVg zJ)*okHMG>yL+!q(Sefb8(y#w`dwtJ373w<7wBem0$5N1++c=|5=CDBVV~1rk3k()8 zySYus%zeu7V`FUt3m`+`dgo6R4Y~O#nQ4`{H3W7Ug31F)kPX54X(i=} nMX3yqDfvmM3ZA)%>8U}fi7AzZCsToi2LpqrtDnm{r-UW|00??e literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/icons/search@2x.png b/Contacts/images/input_areas/icons/search@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3618e8ba684edcfe4efd93eb6e5185a2827b8fa2 GIT binary patch literal 1588 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)y-fM)1rW~NvfxR_g7m>W1d88}%O8oC-e8JoB`J36~s7?>JZ z7`i#Z^t$9Hm*%GCmB93-AoRN6)C)=sxdlL*T~doO%TiO^it=+6z@E0s#O)SGoaRCG zrr>sq6HdMQK*#8Vq82HtVM4(417gAxE|3FH`l)%q^j-u^*o=+RQ49=B%RF5iLn>|^ znI50vS157(zWo)K#anLpoGMWCsfzUc*B7I)Q(@*4H&0EyorUYoiWRlJbT@LVdV0;w z{U@?lTih(@bc>VTnfVvf`pyTRU%C8pby?l>Ip4P~x7)k_^Pc7R-~YDRZ-4%MitYK+ zK1+Q+OSd{HzL~4Drd@V}P*$Q?f9frJ5X7Bnox%KEori#q9 z=N8{6-ZAk@f@8~?+1<aG{`{SPk4C|CwWM>d56C>cqQt zgU9Xum%nGe4!pyczh$q~u18%8zl5V~YqPt9x!u09nJhcMdm;NYiyqtVgHM0hihtN{ zeU&M>pGj%f7M=2pr9AJRr$!xVdysMB?5cDl!Nl@IxdpOWOz;1h8Cfa;BU*!rYY8QLKG#M)kZqf499p@cGLBSbhUb z=UpA^;(xEazV-5hNu1)0iTAnU7BJnq`#?u&dcpc?!KV>dv72c1GLFKrotDnm{r-UW| DYeQyX literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/active.png b/Contacts/images/input_areas/ui/active.png new file mode 100644 index 0000000000000000000000000000000000000000..48e84d8a1f8dfbe89a88c5585b256c1d91dc4c2b GIT binary patch literal 1014 zcmaJ=O=#0l91l8V4(G?oDT0qoLBS?Xo2E@zom-Q+fGMRb*n@{<$?KYR$;*;An+?Se za7+-UFc{A34u0T1EKACz-mSb2c;vrPRRo#PBpNU2wP;Gq_=Amv*O>Dp(irRb1 zDim>1yCfONX7mul1hz}q6xGukxVlk+7>vMC%SqGQFJIBXGSl?sgcjA@3@lrN(;gg} z&K8X6iXobG?|IM@NJPMfSO|NlQeGaY`y!__UB=jzShiZNGSxVP zyit}DMKRQf#Uca|@uwWD2NB2bZYapmH$2P57IHwSsE?pYoTf>nJ1N+1Q`Yh8Wg-P* z1KnjgCK{&H0BYL*p|;&b`#2AG8 zDo|1x^%{Se)aOn3zcR zXZU0?&JQR_MGzWX85xr{bZ~=f?sEHDa>HS;UE*1Wo^=(P10J$LEosSW9ZRyMUY%>U zjwRKS%aUN&u(f}+x?v*o6K

OAgJ^hYp!{j|}#;@hj`(Qj}G>uMlj_-&YUbjJ7M! zKX+~4$R?e!JBPMzrPlZdpWYhf*H6Y4-W*xlJUn}SCh>7z-#?N4UR}>!IPgxMWmkiT zosU;bT`Ps*dz*`oUMyBV%q`D-dC&j;_H};g#E-Vf%rmjAi(2^Q92M7Aeug(uRkHGO H|M2ZU9V$mV literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/background-dark.png b/Contacts/images/input_areas/ui/background-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f376b7c4f1cb0c032cf7b6d634abaaf41b61c1a5 GIT binary patch literal 1266 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjy$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)y-fM)1rW~Nw~SX!7nJDOTL8JHOw8oC-e8JoB`J36~s7?>JZ z7`i#Z^t$9Hm*%GCmB93-AoM!o)C)=sxdlL*T~doO%TiO^it=+6z@E0s#O)SyoaRCG zrr>sq1x~&CK*#8Vq82HtVM4(417gAxE|3FH`l)%q^j-u^*p_OHeGCkYDV{ElAr-fL zCVL7s8}P7fYz$vA>Hq(Ux@)r}-ZW2Klj|n*_VZug%O$bb_q|`cwQ^o)_50_QMT?Uj z$-XX>vASdTqQ*ey^r8cj%9b+%1bagC%nu9sHvWj)Eg{l)Oi71aqkbsRr5S>)Q6 zEPBx9v`Iv60<({C-HK}uk5$>aX9XRYIsGU@_v!nyb~G`mFN{1O^3qkj)AfV%*7S#8lhSQ(sWr}i_<}BM%aY;HkYxC@og-Xrto886i`jkr&H{6;y zZ_TwM4{UbKowGRXghEzb^7ngtU*8o>*xx9W%-}k z|B6q6)%U!s#{W4~8doW9n2_ME6dbZ%9opu+8(pt>I`zW>*m{ASnox!z~LL8vpBLD$uz(mWpAZX8oTMKYtD)*8IT}Q&s;xxDbZO$YQ7>^wT$*-d zV`1Viu<{2Om|2h*kbsGQfM8C+(rcIb{tm$?4o>3dQagv&7K57@wYggqLH zZjKSNFy?GQs5i3M^`?Y@AsGje4!^&B2SMQL@NvaKPHd1#&{`&>w`}*l<)Nn(J@(Qr^myxEU$G*uO5i*y7!jFE?$= zgH7X;h$%?D6{~X8 zI4}&Wig)k{wC+XU@rrWv&(;R!(Q*VvQ?N(Rz?^6TEG+A3fX7v_4=V`$DG>k%iD;DJqxC zkvR{kn|%}$3(S+v5-tG)8I_!)-(9pb_Xs~7Y=@z;acjJ6GnSU=& zU34td`^!Jns0S}Q$C_rJS5N#{x^{2kLi34=6Kg*O-=0BnS$?`&&%B$Td2{%6YY2|nGTqoO5DY(|}2Tl`b_e~|fPtP{4Z+O1c ze|>ee(oByJL~lNN;XFTC_T)g!xmexzAainUqQTr~Y1Do_Y`royGrW1I7n^s~Hf$`? PXYA`6k9P43k>2q?757^v literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/separator-dark@1.5x.png b/Contacts/images/input_areas/ui/separator-dark@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a781a4503b80e01aba1351fcfb17a76f5897ba GIT binary patch literal 1122 zcmeAS@N?(olHy`uVBq!ia0vp^%s_0x0V4UmH$4VYEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP~Xu2 zpAc6`d3j9}Q@em5d3AMdGjmN-Q!O)d9Sci6Ya5^xP#jKbn_B?6QVI${hOK`fI>RqO zN>LFcg^eK%ma_2+porlM(+*@Pf$XwDF#KU6K!y@nicSomb;Q{Saj-u$1mJ!_3KNjC zv4tK`ToN4YcK(6z=zvGf|NsB3T>=__F+Hs$$S)X3LjWf`H-``-pEQSKD&$TeGBh%i1Y>w#`1W zZ{g|V%P*ZekTHbd6o+7#-)B8ft2~we*U)$)zQiFW&=sgb5@bVgep*R+Vo@rCV@iHfs)A>3 cVtQ&&YGO)d;mK5BUT0wNboFyt=akR{0LaZ$tN;K2 literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/separator-dark@2x.png b/Contacts/images/input_areas/ui/separator-dark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb0a3f28190a509f906b2428b3bb51e7fa4a5ed GIT binary patch literal 1253 zcmeAS@N?(olHy`uVBq!ia0vp^EI{nV!3HGfEdH7Vq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfglRhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&i0B&qvF*KNf0j6J(SfFpHX8`gNOrftYexnUy@&(kzb(T9Bihb;hUJ8nFkWk z1ncniwerj>E=kNwPW5!LRRWr!mzkMjx1pIn-onpXnTn*!JCY=BcQC^6&~0Bv?jEy^rQO>ryA&s6|>+A0&bTU>CO z2i2Q`(=AS}IQ8lS9itD5TBN9k2?5g&hzU=)Kn^_Vr{)3Edl4{UPtDHoV_;wm_jGX# zskqfL#XJ9yfk4aSt-_0*U2s0Sl%wc;!-cq%-@PUH=h#C;qZOMtyQGisdhc_+l6oQ z55z3$+Oeu5Tj9}$vp<@6jv1%^+xdF+g2Rc`-`d{pPn>-F$lbUmj;pp0RW)`z(5kU6 zDR8@al3n(S#?PXu&B}Qb_~&rG)0lfubQ!PhxdvNN)3jOZzHu6#3GX@({(DkF*y7s< zu4Vtt(?2osa@<5o@$$oFRa@8&Wbj-zv}#s-{A__xz)XoMo`?7UZq6XH+7Yk RZ91sn@pScbS?83{1OQPWzViS8 literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/separator.png b/Contacts/images/input_areas/ui/separator.png new file mode 100644 index 0000000000000000000000000000000000000000..32bcc464910029047f74266899904e0f8daed826 GIT binary patch literal 1000 zcmaJ=PiWIn91hBcE1L+yP!Iad5Cm=VlCJ9#7H5~VYhW3rE7*gFWy#ALyX3{>ZOx{L z3_R#b4;}_yJP9g#6+BGQi-&>WMDV6~7+!W15yY3S?L1fmFYo;x-}n9gzT4&5>7mq# z6vHq>dP%F${QzBO4)xQ2{nYqlx*aEl8kxfmX__Ho@-|*TK=;f=R6(Y_di5QeV3>of zTdk3rF(X^p>FRuzNw(j51Jhh(MNuX$y`) zFeY$9W;B<}od+TmAP+@e5Ys|V&WJLEp#8DbTWC9SMJu*_QA=U#gak6rH=9kanc;A_ z$P1DrB^sibrigU3>Ju|g`_V{8K|_%hx&d*q4-!Rl0WTAUrIGHX;00Y-KWdkW7L1S0 zfEPHJq|^Z##{Z$7*F{I9g7)M6r*KqV4G>>J5nc{0+Bjz!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP+xq2 zPl)TaYu7ey+Vtz!FJyA_=FLFypFe+Y*|G)5`0?WhoUwK5R-nlD@85}GY}>XCsQBBr zZ&YMZ(KKSbfT;%PBY5}#0}aSU3q43k0>%IT|Gy~e`*dI&6qf|~1v9X+a&QORRbox!bsh`h=#&r^Oe$_|=D3AG~|;?Ax<9f8V@& z_xktihaVnZe{%iQ)l++q?p?cO?YxEaCQO{rP}fk9U62@+80;DBYUygBWg#fVCMC=$ z%*DmR!p1f&fb%=hdd4JgcbAg;xhrykoYkH#jv*Y^=bn3R#>Bwj@G!b_S(}IEmZ>-O z6r-X-+&V7B1wHzEzR<7#LjUjY*5Zs#E^8FhrkZw&%#3L)ifxTroa(&&$&*KfdyIrgW7&o0g;J zzp&zX?Mk1g4<{~vuBE>||H?i473OxC+isQY+Iw{Un)L|=GKT+VeK2OC7#SEE>l&Er8W@Hc8d(__SQ#5@8(07t3fDV- zqG-s?PsvQH#H}H)%g`05K@wy`aDG}zd16s2gJVj5QmTSyZen_BP-|6H_V+Po~;1FfglRhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&i0B&qvF*KNf0j6J(SfFpHX8`gNOrftYexnUy@&(kzb(T9Bihb;hUJ8nFkWk z1ncniwerj>E=kNwPW5!LRRWr!mzkMjx1pIn-onpXnTn}X15fm1IiG2|8iZFWg5$}CGwaVyHtRRDY1Die!a3|!1D zEzAvEf#z9YcMC*s3U0TU;dF~W&@uX;s6~oum=G}ifSB-v3*^9)erg^ty%zx!_P(6k zDGUsZ!k#XUAr-gYT#4puG7w6@` zf-+l0fVw|deNMpXC`Y z;lo}Vv~+kHvpA={@(^s0K6v)hag|ygoww;)?^F*kxK9mza3kbAJE+j`boFyt=akR{ E09c5Pa{vGU literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/shadow-invert.png b/Contacts/images/input_areas/ui/shadow-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..1694bbfcb8bd6b8bb6b079c53eef76ebe2f82f4a GIT binary patch literal 932 zcmaJ=J#W)M7&b+ssG<^L0;ZF@V*BiTxVB=d#CE6!jv^-#8ROX3#7gZm=L>N%FqEl( zfTbHhfPs~P8L==UAtCVtkoX0hlQ?Bav2?zBPtWtb&%O8FWw-O}@Zj+Q$8m?wspYZx z78|$k-eG_52fAR>BWe$551-MwPY~A(@dyDY_Q%LWezalA!m z)I-;PcM50yMT#U3Wq3vcc5!D%MXFRc3Gyi>eT>h`Dt0HB;%tIbVD@Uj^@AuW;uYR? zbtlQFp9ILU44x^7Q55P;Q_(D?4I#8lS+*6;v`y1in~Eh@ns%#RaxEOpVwBL58(wqe z8@WX*#3{>cArietVVmF>td6WlJG^LB4YsS6%JhzRds%bC9bPuv;~TjWGb0rj`_Dy} zTdaGE<+g2Eux)&lux=-;t-t-bY_TWt(6O5R{QGD)9R3{bJ$Qfb>pS6U|NfBMf4leb S>erj+#k+Crj`g86y!Z?9FdmTr literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/shadow-invert@1.5x.png b/Contacts/images/input_areas/ui/shadow-invert@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..7676c3a79cea5def435b999115d8013ad57d84ef GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-a!VDzm&Q(|sq*&4&eH|GXHuiJ>Nn{1`8Hzm0Xkxq!^4042^XS%ykV6 xLk!KWjE${~&9n_HtPBifMNjynXvob^$xN%nts%#w;4@GIgQu&X%Q~loCIG;s{0!ODK$?Q#}E$LRQdewq15gKpr>mdKI;Vst08}Fs&;S4c literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/shadow-search.png b/Contacts/images/input_areas/ui/shadow-search.png new file mode 100644 index 0000000000000000000000000000000000000000..234e7e47fa0152ee6a0ec45641c9564d5039743e GIT binary patch literal 930 zcmaJ=J#W)M73sK|p67W#??b=$>h$FKi6984_O<2my~5Yg!(;w; ze~??gJ!73A8_)?`;gkr?fQ|{UBRnN8!NL0NSJL1FG4zIP=)6WgjU-%Pq&!METM!yo zd4l~pVPH(AVQh-OKYtNH7?|RX=0GQDlUaDZNy%W-^Zd=+Hv;kM5;Ste1tP*Q$fHG^ zq1+U=x`>~PYgq(a2%DSYT~I@(585;(K$BqAhjj?*ilo%ebzOe}RH#51sacBKMXC6XaUmoiA>g;*7Bb$?|Hol2$c|rc+rl45QFc)hb6+vvtgHUX8P}Qo$mb zpN0twX$%TQJf=%#iagT06ryA=8)v&R@q)=YPGm)bMM@>masCgDqCGleF1e5QpTe29 zPKfN1j4o53H*RuPxJpnvC799FqjXVLu|K1XW;2?A_CNy;_QSZaw|K`vcAPOB`^2_P zkt;}H7@)3dX=<%*z;mOmC>^!c(sfI%TZYlnv@X<2u0{Q2L}FHQgL`iCAh#HWDB+$h zl7{a{&`oIswkf0Va4h;ky&X3=9LvQ)uFQjxi^l%d=<Nn{1`8HQ60X4(c8Rt5&Lq9^=OH00)|WTsW(){x^-@ENFq!PC{xWt~$(697|?OL+hQ literal 0 HcmV?d00001 diff --git a/Contacts/images/input_areas/ui/shadow-search@2x.png b/Contacts/images/input_areas/ui/shadow-search@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..58f4c7dc167c4ae62aa3b93d4e38a2f4e7cc8178 GIT binary patch literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-W!3HE>s{0!ODS1y9#}E$Lc4ijXar)~RdPH*U&wB5D@3TL@>$IPpo;)}a1mV=ZL|s0Y_&BN(We0s#E`^*`z9vQQRPqEMl$p`~C_9wWD{c!p68?Fn&Eivj3*uZ;k1|*jJ0wd*d z%GrWYzsOTRm|+G+coHR+`0Mi*5k#RSzR*1Ar8b^Mmn({Ut9CzF%>pA7FP?yUZgPPb zGauyfRg#&xC9ZW%zAm<95v(C>W{De91Fr*YLNU-JSPozff|?>Jm8!1mkAVsmC_`0N z)Uu+R71e|gY(J4_qv6=>qSiJSk1TP@SZd1hVzH1G6^YP^tQdw-XsBwLBg)w_VSZjt zvh$q+!dXD0ltm-~g`z(qb7qO$>86A@-ODD~_L%sA$+@4(iUf<2c0kYjKQxZ_=!|vo zwcmrnS$~;gxr;M0rvbmX@p+LdHEoK0MrfaqtKBJfri77fN>X6=G~oF`loatA?|G)1 zWXw+j>>^9#3Q`n>rsHUOO>t~kZ77Q3sLiIXBejMMqp4{vsO`9j1oIdtY{w0+x#&i2 z(F$?OGb2o+S2%1@5`%TgW^}+yOGTPmsWoBMun&9LaKi&$wp?Dv4P2Rh@rWav9Xo0nYMw2 lm4Sh*=m~!m4Y~O#nQ4`{HRN~{dbP0l+XkKgoF`M literal 0 HcmV?d00001 diff --git a/Contacts/index.html b/Contacts/index.html new file mode 100644 index 0000000..a94cf62 --- /dev/null +++ b/Contacts/index.html @@ -0,0 +1,42 @@ + + + +Contacts + + + + + + + + +

+ +
+ + + +

Contacts

+
+ +
+
+
+
    + +
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/Contacts/js/app.js b/Contacts/js/app.js new file mode 100644 index 0000000..3f0f712 --- /dev/null +++ b/Contacts/js/app.js @@ -0,0 +1,218 @@ +var app = function(){ + + return { + /** + * common + */ + $: function(id){ + if(!id){ + return null; + } + return document.getElementById(id); + }, + + addEvent: function(id, event, callBack){ + var obj = $(id); + if (obj.addEventListener) { + obj.addEventListener(event, callBack, false); + } + else{ + obj.attachEvent('on'+event, callBack, false); + } + }, + + getURLParameter: function(name) { + return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null + }, + + back: function(){ + document.location = "index.html"; + }, + + /** + * contacts read + */ + contactsRead: function(){ + app.addEvent('btnCreateOnContactsRead', 'click', function(){ + document.location = 'contact_create.html'; + }); + + var filter = { + sortBy: "name", + sortOrder: "descending" + }; + + var allContacts = navigator.mozContacts.getAll(filter); + + allContacts.onsuccess = function (event) { + var cursor = event.target; + var tmpl = ''; + var person = {}; + if (cursor.result) { + person.id = cursor.result.id; + person.name = cursor.result.name || ''; + person.tel = cursor.result.tel ? cursor.result.tel[0].value : ''; + + tmpl += '
  • '; + tmpl += ' '; + tmpl += '

    name : ' + person.name + '

    '; + tmpl += '

    tel : ' + person.tel + '

    '; + tmpl += '
    '; + tmpl += '
  • '; + + $('contactsList').innerHTML += tmpl; + + cursor.continue(); + } + else { + console.log('No more contacts'); + } + } + + allContacts.onerror = function() { + console.warn("Something went terribly wrong! :("); + } + }, + /** + * contact create + */ + contactCreate: function(event){ + event.preventDefault ? event.preventDefault() : event.returnValue = false; + + var name = $('name').value; + var tel = $('tel').value; + var person = { + name : [ name ], + familyName : [ name ], + tel : [ { + type : 'home', + value : tel + } ] + }; + + var saving = navigator.mozContacts.save(person); + saving.onsuccess = function() { + app.back(); + console.log('new contact saved'); + }; + saving.onerror = function(err) { + console.error('save err : ', err); + }; + }, + /** + * contact read + */ + contactRead: function(){ + console.log('contactread'); + app.addEvent('btnBackOnContactRead', 'click', app.back); + app.addEvent('btnUpdateOnContactRead', 'click', app.contactUpdate); + app.addEvent('btnDeleteOnContactRead', 'click', app.contactDelete); + + var id = app.getURLParameter('id'); + var options = { + filterValue : id, + filterBy : ["id"], + filterOp : "equals" + }; + var search = navigator.mozContacts.find(options); + + search.onsuccess = function() { + if (search.result.length === 1) { + var person = search.result[0]; + + $('id').value = person.id; + $('name').value = person.name || ''; + $('tel').value = person.tel ? person.tel[0].value : ''; + + console.log("Found:" + person.givenName[0] + " " + person.familyName[0]); + } else { + console.log("Sorry, there is no such contact."); + } + } + search.onerror = function() { + console.warn("Uh! Something goes wrong, no result found!"); + } + }, + /** + * contact update + */ + contactUpdate: function(event){ + + event.preventDefault ? event.preventDefault() : event.returnValue = false; + + var id = $('id').value; + var name = $('name').value; + var tel = $('tel').value; + + + var options = { + filterValue : id, + filterBy : ["id"], + filterOp : "equals" + }; + + var updateSearch = navigator.mozContacts.find(options); + + updateSearch.onsuccess = function(){ + if(updateSearch.result.length == 1){ + var person = updateSearch.result[0]; + person.name = name; + person.tel[0].value = tel; + + var upadte = navigator.mozContacts.save(person); + upadte.onsuccess = function() { + document.location = "index.html"; + }; + + upadte.onerror = function(err) { + console.error(err); + }; + } + } + updateSearch.onerror = function() { + console.warn("Uh! Something goes wrong, no result found!"); + } + }, + /** + * contactDelete + */ + contactDelete: function(event){ + event.preventDefault ? event.preventDefault() : event.returnValue = false; + + if (confirm("Really?")) { + + var id = $('id').value; + + var options = { + filterValue : id, + filterBy : ["id"], + filterOp : "equals" + }; + + var removeSearch = navigator.mozContacts.find(options); + + removeSearch.onsuccess = function(){ + if(removeSearch.result.length == 1){ + var person = removeSearch.result[0]; + var remove = navigator.mozContacts.remove(person); + + remove.onsuccess = function() { + document.location = "index.html"; + }; + + remove.onerror = function(err) { + console.error('remove error : ' + err); + }; + } + } + removeSearch.onerror = function() { + console.warn("Uh! Something goes wrong, no result found!"); + } + + } + } + + } //-- return +}(); + +window.$ = app.$; diff --git a/Contacts/manifest.webapp b/Contacts/manifest.webapp new file mode 100644 index 0000000..f710ed1 --- /dev/null +++ b/Contacts/manifest.webapp @@ -0,0 +1,20 @@ +{ + "version": "0.1", + "name": "Contacts", + "type" : "privileged", + "csp" : "default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'", + "launch_path": "/index.html", + "installs_allowed_from": ["*"], + "default_locale": "en", + "permissions": { + "contacts": { + "description": "Contacts App", + "access": "readwrite" + } + }, + "icons": { + "16": "img/icon-16.png", + "48": "img/icon-48.png", + "128": "img/icon-128.png" + } +} \ No newline at end of file diff --git a/Contacts/sample.html b/Contacts/sample.html new file mode 100644 index 0000000..10fba6a --- /dev/null +++ b/Contacts/sample.html @@ -0,0 +1,85 @@ + + + + + + + + + + \ No newline at end of file From bd4d2aaa3114e8761fa3cf49478b3c7ac403e0a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EA=B2=BD=ED=9D=AC?= Date: Fri, 9 Aug 2013 10:31:24 +0900 Subject: [PATCH 2/2] Contacts API --- Contacts/contact_create.html | 8 ++++---- Contacts/contact_read.html | 4 ++-- Contacts/index.html | 8 ++++---- Contacts/js/app.js | 6 +----- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/Contacts/contact_create.html b/Contacts/contact_create.html index d24312d..30aa056 100644 --- a/Contacts/contact_create.html +++ b/Contacts/contact_create.html @@ -3,7 +3,7 @@ Contacts + content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> @@ -16,7 +16,7 @@ -
    +
    back @@ -47,7 +47,7 @@

    create

    -
    - +
    + \ No newline at end of file diff --git a/Contacts/contact_read.html b/Contacts/contact_read.html index 3d1c9d6..c755a0f 100644 --- a/Contacts/contact_read.html +++ b/Contacts/contact_read.html @@ -3,7 +3,7 @@ Contacts + content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> @@ -37,7 +37,7 @@

    Contacts

    Tel

    - +

    diff --git a/Contacts/index.html b/Contacts/index.html index a94cf62..083159e 100644 --- a/Contacts/index.html +++ b/Contacts/index.html @@ -16,7 +16,7 @@
    - +
    - + \ No newline at end of file diff --git a/Contacts/js/app.js b/Contacts/js/app.js index 3f0f712..22ab8bc 100644 --- a/Contacts/js/app.js +++ b/Contacts/js/app.js @@ -10,7 +10,6 @@ var app = function(){ } return document.getElementById(id); }, - addEvent: function(id, event, callBack){ var obj = $(id); if (obj.addEventListener) { @@ -20,11 +19,9 @@ var app = function(){ obj.attachEvent('on'+event, callBack, false); } }, - getURLParameter: function(name) { return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null }, - back: function(){ document.location = "index.html"; }, @@ -77,6 +74,7 @@ var app = function(){ * contact create */ contactCreate: function(event){ + event.preventDefault ? event.preventDefault() : event.returnValue = false; var name = $('name').value; @@ -208,10 +206,8 @@ var app = function(){ removeSearch.onerror = function() { console.warn("Uh! Something goes wrong, no result found!"); } - } } - } //-- return }();