diff --git a/.gitignore b/.gitignore
index 76a825a..5d08de8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
oeffisearch
cache
data
+node_modules
\ No newline at end of file
diff --git a/client/css/product_selector.css b/client/css/product_selector.css
deleted file mode 100644
index 9154b6b..0000000
--- a/client/css/product_selector.css
+++ /dev/null
@@ -1,84 +0,0 @@
-.product_selector > label {
- width: 32px;
- height: 32px;
-
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
-
- -o-user-select: none;
- user-select: none;
-}
-
-.product_selector > input {
- display: none;
-}
-
-input[id=national] + label[for=national] {
- content: url("../img/product_highspeed_grey.svg");
-}
-
-input[id=national]:checked + label[for=national] {
- content: url("../img/product_highspeed_color.svg");
-}
-
-
-input[id=regional] + label[for=regional] {
- content: url("../img/product_train_grey.svg");
-}
-
-input[id=regional]:checked + label[for=regional] {
- content: url("../img/product_train_color.svg");
-}
-
-
-input[id=suburban] + label[for=suburban] {
- content: url("../img/product_suburban_grey.svg");
-}
-
-input[id=suburban]:checked + label[for=suburban] {
- content: url("../img/product_suburban_color.svg");
-}
-
-
-input[id=subway] + label[for=subway] {
- content: url("../img/product_subway_grey.svg");
-}
-
-input[id=subway]:checked + label[for=subway] {
- content: url("../img/product_subway_color.svg");
-}
-
-input[id=tram] + label[for=tram] {
- content: url("../img/product_tram_grey.svg");
-}
-
-input[id=tram]:checked + label[for=tram] {
- content: url("../img/product_tram_color.svg");
-}
-
-
-input[id=bus] + label[for=bus] {
- content: url("../img/product_bus_grey.svg");
-}
-
-input[id=bus]:checked + label[for=bus] {
- content: url("../img/product_bus_color.svg");
-}
-
-
-input[id=ferry] + label[for=ferry] {
- content: url("../img/product_ferry_grey.svg");
-}
-
-input[id=ferry]:checked + label[for=ferry] {
- content: url("../img/product_ferry_color.svg");
-}
-
-input[id=taxi] + label[for=taxi] {
- content: url("../img/product_call_grey.svg");
-}
-
-input[id=taxi]:checked + label[for=taxi] {
- content: url("../img/product_call_color.svg");
-}
diff --git a/client/css/style.css b/client/css/style.css
deleted file mode 100644
index 005d2af..0000000
--- a/client/css/style.css
+++ /dev/null
@@ -1,687 +0,0 @@
-html, body {
- margin: 0;
- font-family: Roboto, Arial, sans-serif;
-}
-
-.hidden {
- display: none !important;
-}
-
-* {
- box-sizing: border-box;
- border-collapse: collapse;
-}
-
-canvas {
- flex-grow: 1;
-}
-
-table {
- border-bottom: 1px solid rgba(0, 0, 0, 0.3);
- width: 100%;
-}
-
-table, tr {
- background-color: #fff;
- margin: 0 0 15px 0;
-}
-
-#journeysView table {
- margin: 15px auto;
-}
-
-td, th {
- text-align: center;
- padding: 5px 3px;
- overflow: hidden;
-}
-
-tr:nth-child(odd) {
- background-color: #f2f2f2;
-}
-
-tbody tr {
- cursor: pointer;
-}
-
-tbody tr:hover {
- background-color: #ddd;
-}
-
-tbody tr:hover td {
- background-color: transparent;
-}
-
-
-input[type="date"],
-input[type="time"],
-input[type="text"],
-#deparr {
- box-sizing: border-box;
- width: 100%;
- padding: .3em .5em;
- border-radius: 3px;
- font-size: 1.5em;
- padding: 7px;
- border: none;
- outline: none;
- box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
- background-color: white;
- color: black;
- margin-top: 8px;
-}
-
-#datetime {
- display: flex;
- flex-direction: row;
-}
-
-#deparr {
- padding: 0 !important;
- overflow: hidden;
- width: 84px;
- flex-shrink: 0;
- display: inline-block;
-}
-
-.switch {
- position: relative;
- display: inline-block;
- width: 84px;
- height: 100%;
-}
-
-/* Hide default HTML checkbox */
-.switch input {
- opacity: 0;
- width: 0;
- height: 0;
-}
-
-/* The slider */
-.slider {
- position: absolute;
- cursor: pointer;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: #bbb;
- height: 100%;
-}
-
-.slider:before {
- position: absolute;
- font-size: 13px;
- padding-top: calc(25% - 7px);
- line-height: 100%;
- text-align: center;
- content: "DEP";
- height: 100%;
- width: 42px;
- background-color: white;
- transition: .2s;
- box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
-}
-
-input:checked + .slider:before {
- content: "ARR";
- transform: translateX(42px);
-}
-
-input:active,
-input:focus{
- box-shadow: 0 .1em .5em rgba(0, 0, 0, .6);
-}
-
-#header {
- position: relative;
- box-shadow: 0 0 15px rgba(0, 0, 0, .6);
- background-color: #43a047;
- color: white;
- padding: 0 0 0 9vw;
-}
-
-#departuresView,
-#searchView,
-#journeyView,
-#journeysView {
- display: flex;
- flex-direction: column;
-}
-
-#settingsView {
- padding: 10px;
-}
-
-#journeyView tbody td:nth-child(3) {
- text-align: left;
-}
-
-#journeyView tbody:not(:last-child) {
- border-bottom: 1px solid rgba(0, 0, 0, .2);
-}
-
-#journeyView p {
- color: white;
- width: 100%;
-}
-
-#journeyView p::before {
- -webkit-filter: drop-shadow( 0 0 5px rgba(0, 0, 0, .6) );
- filter: drop-shadow( 0 0 5px rgba(0, 0, 0, .6) );
- margin-right: 4px;
- vertical-align: sub;
-}
-
-#journeyView p.change,
-#journeyView p.walk,
-#journeyView p.transfer {
- text-shadow: 0 0 15px rgba(0, 0, 0, .6);
- text-align: center;
-}
-
-#journeyView p.change::before {
- content: url("../img/baseline-import_export-24px.svg");
-}
-
-#journeyView p.walk::before {
- content: url("../img/baseline-directions_walk-24px.svg");
-}
-
-#journeyView p.transfer::before {
- content: url("../img/baseline-directions-24px_white.svg");
-}
-
-#searchView {
- background-color: rgba(67, 160, 71, 0.6);
- color: white;
-}
-
-#searchView table {
- width: 100%;
- color: black;
-}
-
-#searchView .button,
-#searchView label:not(.switch) {
- cursor: pointer;
- border-radius: 3px;
- background-color: white;
- width: 40px;
- padding: 3px;
- height: 40px;
- display: inline-block;
- margin-top: 8px;
- margin-bottom: 8px;
- box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -o-user-select: none;
- user-select: none;
-}
-
-#searchView #date {
- flex-grow: 1;
- margin-left: 8px;
-}
-
-#searchView .product_selector {
- margin-right: auto;
-}
-
-#searchView .row {
- display: flex;
- flex-direction: row;
-}
-
-
-#searchView .swap {
- margin-left: 5px;
- content: url("../img/baseline-swap_vert-24px.svg");
-}
-
-#searchView .settings {
- margin-left: 5px;
- content: url("../img/baseline-settings-20px.svg");
-}
-
-#searchView .search {
- margin-left: 5px;
- content: url("../img/baseline-navigation-24px.svg");
- color: blue;
-}
-
-#searchView .departures {
- content: url("../img/baseline-departure_board-24px.svg");
-}
-
-#searchView .directions {
- content: url("../img/baseline-directions-24px.svg");
-}
-
-#departuresView tbody td {
- text-align: right;
-}
-
-#departuresView tbody td:first-child {
- text-align: left;
-}
-
-.suggestionsbox {
- border-radius: 3px;
- width: 100%;
- box-shadow: 0 .4em .8em rgba(0, 0, 0, .5);
-}
-.suggestions {
- position: relative;
- display: none;
- overflow: visible;
- z-index: 999;
- height: 0;
-}
-
-.suggestions.typing,
-.suggestions.mouseover {
- display: block;
-}
-
-.loadMore {
- cursor: pointer;
- content: url("../img/baseline-expand_more-24px.svg");
- border-radius: 100%;
- height: 48px;
- width: 48px;
- background-color: #eee;
- margin: 0 auto;
- transition: box-shadow 150ms;
- border: 1px solid rgba(0, 0, 0, .1);
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -o-user-select: none;
- user-select: none;
-}
-
-.flipped {
- transform: rotate(180deg);
-}
-
-.loadMore:hover {
- box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .3);
-}
-.loadMore.flipped {
- margin-top: 15px;
-}
-
-.suggestionsbox p {
- font-size: 1.2em;
- background-color: white;
- color: black;
- margin: 0;
- border-top: 1px solid rgba(0, 0, 0, .2);
- padding: .3em .6em;
- cursor: pointer;
-}
-
-.back {
- cursor: pointer;
- position: absolute;
- left: 17px;
- top: 17px;
- width: 32px;
- height: 32px;
- content: url("../img/back.svg");
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -o-user-select: none;
- user-select: none;
-}
-
-.reload {
- cursor: pointer;
- position: absolute;
- right: 17px;
- top: 17px;
- width: 32px;
- height: 32px;
- content: url("../img/baseline-refresh-24px.svg");
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -o-user-select: none;
- user-select: none;
-}
-
-.reload.spinning {
- animation: spin 2s linear infinite;
-}
-
-.btn {
- color: #fff;
- position: relative;
-
- margin-top: 30px;
- padding: 0;
-
- overflow: hidden;
-
- border-width: 0;
- outline: none;
- border-radius: 2px;
-
- content: 'OK';
- border-radius: 4px;
- color: white;
- width: fit-content;
- margin-left: 5px;
- margin-top: 10px;
- transition: background-color 100ms;
- cursor: pointer;
- background-color: rgba(20, 30, 255, .7);
-}
-
-.btn:hover, .btn:focus {
- background-color: rgba(70, 100, 255, .8);
- }
-.btn > * {
- position: relative;
-}
-
-.btn span {
- display: block;
- padding: 12px 24px;
-}
-
-.btn.orange {
- background-color: #e36420;;
-}
-
-.btn.orange:hover, .btn.orange:focus {
- background-color: #e67e22;
-}
-
-.buttons {
- justify-content: flex-end;
- display: flex;
-}
-
-.btn.red {
- background-color: #d0493b;
-}
-
-.btn.red:hover, .btn.red:focus {
- background-color: #e74c3c;
-}
-
-#spinner {
- margin: calc(50vh - 60px) auto;
- border: 2px solid rgba(255, 255, 255, .7); /* Light grey */
- border-top: 4px solid #3498db; /* Blue */
- border-radius: 50%;
- width: 120px;
- height: 120px;
- animation: spin 2s linear infinite;
-}
-
-@keyframes spin {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(360deg); }
-}
-
-#journeysView {
- min-height: 100vh;
-}
-
-#journeysCanvas {
- flex-grow: 1;
- flex-direction: column;
- display: flex;
-}
-
-#modal {
- display: flex;
-}
-
-#modal-box {
- margin: auto;
- border-radius: 4px;
- background-color: white;
- width: fit-content;
- width: -moz-fit-content;
- padding: 15px;
- box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
-}
-
-#dismiss {
- content: 'OK';
- border-radius: 4px;
- background-color: rgba(20, 30, 255, .7);
- color: white;
- width: fit-content;
- width: -moz-fit-content;
- padding: 8px 20px;
- margin-left: auto;
- margin-top: 10px;
- transition: background-color 300ms;
-}
-
-#dismiss:hover {
- background-color: rgba(70, 100, 255, .8);
- cursor: pointer;
-}
-
-@media (max-width: 799px) {
- #searchView {
- padding: 10px;
- }
- div#settings {
- padding: 15px 5vw;
- }
- #header {
- padding: 0 0 0 50px;
- }
- .back {
- left: 10px;
- }
- #datetime {
- flex-wrap: wrap;
- }
- #searchView #date {
- width: initial;
- }
- #searchView #time {
- width: 100%;
- flex-shrink: 0;
- }
- #searchView table {
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4);
- border-radius: 5px;
- overflow: hidden;
- border: none;
- }
-}
-
-@media (min-width: 800px) {
- #searchView {
- box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .4);
- padding: 50px;
- margin: auto;
- width: 80vw;
- max-width: 800px;
- color: white;
- }
- #searchView #date {
- margin-right: 8px;
- }
- #searchView #time {
- width: 40%;
- }
- div#settings {
- padding: 30px 30px;
- margin: 0 8vw;
- }
- #header {
- padding: 0 10vw;
- }
- td p {
- display: inline;
- margin-right: 5px;
- }
- td, th {
- padding: 10px 5px;
- }
- table {
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4);
- border-radius: 5px;
- overflow: hidden;
- border: none;
- margin: 50px auto;
- width: 80vw;
- }
-}
-
-
-.modal {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1050;
- overflow: hidden;
- -webkit-overflow-scrolling: touch;
- outline: 0;
-}
-
-.modal-header {
- background-color: #43a047;
- color: white;
- border-radius: 6px 6px 0px 0px;
- min-height: 16.4;
- padding: 15px;
- border-bottom: 1px solid #e5e5e5;
-}
-
-.modal-header .close {
- margin-top: -2px;
-}
-
-.modal-header .modal-close {
- width:53px;
- float:right;
- margin:-15px;
- margin-left:0px;
- height:53px;
- border-left: 1px solid #00000040;
-
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAABO0lEQVR42u3bURKDIAwEUNiLoyfXC3Ss4mYTh81Xv4R90wqEad+2ra1caIuXAQxgAAMYwAAGMIABDGAAA0zVGOMYYxzqibPGxdtJ/PqsCM8aF4xJKBHY40IxwcrPngbY970rJ3r1zKu5hH4DVAhR4Sk/gWiEyPC0d0AUQnR46kuQjaAIT18FWAiq8CHL4FsEZfiws8Asgjp86GHoKUJG+PDT4F2ErPCttdYVd4OzS2F0eFk/YCaIIry0IfIkkCq8FOBuMGV4OUDFkgK83Qh9GoC1Ff4kAPsw9CmAf5scdWdJCnB3h5eJgOzw2QioED4TAVXCZyGgUvgMBFQLr0ZAxfBKBFQNr0JA5fAKBFQPH40gbYtXfDb1dljRzGCPS7sdVnZymON2/2Nk8TKAAQxgAAMYwAAGMIABDLBmnWRS+u5G6HkFAAAAAElFTkSuQmCC') center no-repeat;
- background-size:30px;
- cursor:pointer;
-}
-
-.modal-header .modal-close:hover {
- border-radius: 0px 6px 0px 0px;
-}
-
-.modal-title {
- margin: 0;
- line-height: 1.4;
-}
-
-.modal-open {
- overflow: hidden;
-}
-
-.modal-open .modal {
- overflow-x: hidden;
- overflow-y: auto;
-}
-
-.modal-dialog {
- position: relative;
- width: auto;
- margin: 10px;
-}
-
-.modal-content {
- position: relative;
- background-color: #fff;
- -webkit-background-clip: padding-box;
- background-clip: padding-box;
- border: 1px solid #999;
- border: 1px solid rgba(0, 0, 0, .2);
- border-radius: 6px;
- outline: 0;
- -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
- box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
-}
-
-.modal-body {
- position: relative;
-}
-
-@media (min-width: 768px) {
- .modal-dialog {
- width: 600px;
- margin: 30px auto;
- }
-
- .modal-content {
- box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
- }
-}
-
-.cancelled {
- text-decoration-line: line-through;
-}
-
-.showremarks {
- vertical-align: bottom;
- cursor: pointer;
-}
-.remark {
- vertical-align: middle;
-}
-.showremarks.hint,
-.remark.hint {
- content: url("../img/info-24px.svg");
-}
-.showremarks.status,
-.remark.status {
- content: url("../img/warning-24px.svg");
-}
-.showremarks.other,
-.remark.other {
- content: url("../img/help-24px.svg");
-}
-.remarks td {
- margin: 0 10px;
- text-align: left;
- display: block;
-}
-/*.remarks {
- display: none;
- position: absolute;
- z-index: 1;
-}*/
-.remarks {
- /*background: #000000d0;*/
- border: 1px solid #ddd;
- padding: 0;
- width: 100%;
- margin: 0;
- box-shadow: none;
-}
-/*.showremarks:hover+.remarks {
- display: inline-block;
-}*/
-
-
-.travelynx {
- vertical-align: bottom;
- cursor: pointer;
- content: url("../img/travelynx.svg");
-}
\ No newline at end of file
diff --git a/client/favicon-512x512.png b/client/favicon-512x512.png
new file mode 100755
index 0000000..ab6515d
Binary files /dev/null and b/client/favicon-512x512.png differ
diff --git a/client/favicon-64x64.png b/client/favicon-64x64.png
new file mode 100755
index 0000000..36487a6
Binary files /dev/null and b/client/favicon-64x64.png differ
diff --git a/client/img/back.svg b/client/img/back.svg
deleted file mode 100644
index 3251c9e..0000000
--- a/client/img/back.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/client/img/baseline-beenhere-24px.svg b/client/img/baseline-beenhere-24px.svg
deleted file mode 100644
index afe02c7..0000000
--- a/client/img/baseline-beenhere-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-departure_board-24px.svg b/client/img/baseline-departure_board-24px.svg
deleted file mode 100644
index a35fc3f..0000000
--- a/client/img/baseline-departure_board-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-directions-24px.svg b/client/img/baseline-directions-24px.svg
deleted file mode 100644
index bea8287..0000000
--- a/client/img/baseline-directions-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-directions-24px_white.svg b/client/img/baseline-directions-24px_white.svg
deleted file mode 100644
index 01a17b2..0000000
--- a/client/img/baseline-directions-24px_white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-directions_walk-24px.svg b/client/img/baseline-directions_walk-24px.svg
deleted file mode 100644
index 453908e..0000000
--- a/client/img/baseline-directions_walk-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/client/img/baseline-expand_more-24px.svg b/client/img/baseline-expand_more-24px.svg
deleted file mode 100644
index 690a0a1..0000000
--- a/client/img/baseline-expand_more-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-import_export-24px.svg b/client/img/baseline-import_export-24px.svg
deleted file mode 100644
index 4547ce1..0000000
--- a/client/img/baseline-import_export-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/client/img/baseline-navigation-24px.svg b/client/img/baseline-navigation-24px.svg
deleted file mode 100644
index 2a6d867..0000000
--- a/client/img/baseline-navigation-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-place-24px.svg b/client/img/baseline-place-24px.svg
deleted file mode 100644
index 87530f8..0000000
--- a/client/img/baseline-place-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-refresh-24px.svg b/client/img/baseline-refresh-24px.svg
deleted file mode 100644
index f68e554..0000000
--- a/client/img/baseline-refresh-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-settings-20px.svg b/client/img/baseline-settings-20px.svg
deleted file mode 100644
index 0737ecb..0000000
--- a/client/img/baseline-settings-20px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/baseline-swap_vert-24px.svg b/client/img/baseline-swap_vert-24px.svg
deleted file mode 100644
index aa707b8..0000000
--- a/client/img/baseline-swap_vert-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/bg.webp b/client/img/bg.webp
deleted file mode 100644
index 745a9a3..0000000
Binary files a/client/img/bg.webp and /dev/null differ
diff --git a/client/img/bus.svg b/client/img/bus.svg
new file mode 100644
index 0000000..65cf832
--- /dev/null
+++ b/client/img/bus.svg
@@ -0,0 +1,74 @@
+
+
diff --git a/client/img/d.svg b/client/img/d.svg
new file mode 100644
index 0000000..41887a9
--- /dev/null
+++ b/client/img/d.svg
@@ -0,0 +1,70 @@
+
+
diff --git a/client/img/help-24px.svg b/client/img/help-24px.svg
deleted file mode 100644
index ac7a460..0000000
--- a/client/img/help-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/ic.svg b/client/img/ic.svg
new file mode 100644
index 0000000..f86c46b
--- /dev/null
+++ b/client/img/ic.svg
@@ -0,0 +1,74 @@
+
+
diff --git a/client/img/ice.svg b/client/img/ice.svg
new file mode 100644
index 0000000..3361097
--- /dev/null
+++ b/client/img/ice.svg
@@ -0,0 +1,78 @@
+
+
diff --git a/client/img/ice_ic.svg b/client/img/ice_ic.svg
new file mode 100644
index 0000000..4355d94
--- /dev/null
+++ b/client/img/ice_ic.svg
@@ -0,0 +1,87 @@
+
+
diff --git a/client/img/info-24px.svg b/client/img/info-24px.svg
deleted file mode 100644
index c98b8ac..0000000
--- a/client/img/info-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/nv.svg b/client/img/nv.svg
new file mode 100644
index 0000000..db3d27f
--- /dev/null
+++ b/client/img/nv.svg
@@ -0,0 +1,74 @@
+
+
diff --git a/client/img/product_bus_color.svg b/client/img/product_bus_color.svg
deleted file mode 100644
index 93c4e98..0000000
--- a/client/img/product_bus_color.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_bus_grey.svg b/client/img/product_bus_grey.svg
deleted file mode 100644
index 5cb2471..0000000
--- a/client/img/product_bus_grey.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_call_color.svg b/client/img/product_call_color.svg
deleted file mode 100644
index c1d3a33..0000000
--- a/client/img/product_call_color.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_call_grey.svg b/client/img/product_call_grey.svg
deleted file mode 100644
index e736bcc..0000000
--- a/client/img/product_call_grey.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_ferry_color.svg b/client/img/product_ferry_color.svg
deleted file mode 100644
index 41f2e49..0000000
--- a/client/img/product_ferry_color.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_ferry_grey.svg b/client/img/product_ferry_grey.svg
deleted file mode 100644
index 3754de5..0000000
--- a/client/img/product_ferry_grey.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_highspeed_color.svg b/client/img/product_highspeed_color.svg
deleted file mode 100644
index 0f0cd4b..0000000
--- a/client/img/product_highspeed_color.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_highspeed_grey.svg b/client/img/product_highspeed_grey.svg
deleted file mode 100644
index 4ec1024..0000000
--- a/client/img/product_highspeed_grey.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_suburban_color.svg b/client/img/product_suburban_color.svg
deleted file mode 100644
index e5e7254..0000000
--- a/client/img/product_suburban_color.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_suburban_grey.svg b/client/img/product_suburban_grey.svg
deleted file mode 100644
index 38345ea..0000000
--- a/client/img/product_suburban_grey.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_subway_color.svg b/client/img/product_subway_color.svg
deleted file mode 100644
index 0e56faf..0000000
--- a/client/img/product_subway_color.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_subway_grey.svg b/client/img/product_subway_grey.svg
deleted file mode 100644
index 6257f46..0000000
--- a/client/img/product_subway_grey.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_train_color.svg b/client/img/product_train_color.svg
deleted file mode 100644
index 306d2f6..0000000
--- a/client/img/product_train_color.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_train_grey.svg b/client/img/product_train_grey.svg
deleted file mode 100644
index 4e027d6..0000000
--- a/client/img/product_train_grey.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_tram_color.svg b/client/img/product_tram_color.svg
deleted file mode 100644
index 3f958eb..0000000
--- a/client/img/product_tram_color.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/product_tram_grey.svg b/client/img/product_tram_grey.svg
deleted file mode 100644
index 93f5316..0000000
--- a/client/img/product_tram_grey.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
\ No newline at end of file
diff --git a/client/img/s.svg b/client/img/s.svg
new file mode 100644
index 0000000..3f6e208
--- /dev/null
+++ b/client/img/s.svg
@@ -0,0 +1,70 @@
+
+
diff --git a/client/img/tram.svg b/client/img/tram.svg
new file mode 100644
index 0000000..6b7b770
--- /dev/null
+++ b/client/img/tram.svg
@@ -0,0 +1,74 @@
+
+
diff --git a/client/img/travelynx.svg b/client/img/travelynx.svg
index 9a553f2..3a7d83a 100644
--- a/client/img/travelynx.svg
+++ b/client/img/travelynx.svg
@@ -1,79 +1,22 @@
-
\ No newline at end of file
diff --git a/client/img/u.svg b/client/img/u.svg
new file mode 100644
index 0000000..5943417
--- /dev/null
+++ b/client/img/u.svg
@@ -0,0 +1,70 @@
+
+