Appmanager: UI Rework

Change-Id: I2f809f96e274adac7df9f63d44b0a794bfa3a0dc
diff --git a/core/installer/values-tmpl/url-shortener.cue b/core/installer/values-tmpl/url-shortener.cue
index a7293d5..a2e4994 100644
--- a/core/installer/values-tmpl/url-shortener.cue
+++ b/core/installer/values-tmpl/url-shortener.cue
@@ -11,7 +11,7 @@
 namespace: "app-url-shortener"
 readme: "URL shortener application will be installed on \(input.network.name) network and be accessible at https://\(_domain)"
 description: "Provides URL shortening service. Can be configured to be reachable only from private network or publicly."
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='40.63' height='50' viewBox='0 0 13 16'><circle cx='2' cy='10' r='1' fill='currentColor'/><circle cx='2' cy='6' r='1' fill='currentColor'/><path fill='currentColor' d='M4.5 14c-.06 0-.11 0-.17-.03a.501.501 0 0 1-.3-.64l4-11a.501.501 0 0 1 .94.34l-4 11c-.07.2-.27.33-.47.33m3 0c-.06 0-.11 0-.17-.03a.501.501 0 0 1-.3-.64l4-11a.501.501 0 0 1 .94.34l-4 11c-.07.2-.27.33-.47.33'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 13 16'><circle cx='2' cy='10' r='1' fill='currentColor'/><circle cx='2' cy='6' r='1' fill='currentColor'/><path fill='currentColor' d='M4.5 14c-.06 0-.11 0-.17-.03a.501.501 0 0 1-.3-.64l4-11a.501.501 0 0 1 .94.34l-4 11c-.07.2-.27.33-.47.33m3 0c-.06 0-.11 0-.17-.03a.501.501 0 0 1-.3-.64l4-11a.501.501 0 0 1 .94.34l-4 11c-.07.2-.27.33-.47.33'/></svg>"
 
 _httpPortName: "http"
 
diff --git a/core/installer/welcome/appmanager-tmpl/app.html b/core/installer/welcome/appmanager-tmpl/app.html
index 5ce3534..d76dde9 100644
--- a/core/installer/welcome/appmanager-tmpl/app.html
+++ b/core/installer/welcome/appmanager-tmpl/app.html
@@ -81,7 +81,8 @@
 {{ end }}
 
 {{ define "header" }}
-  <h1>{{ .App.Icon }}{{ .App.Name }}</h1>
+  {{ .App.Icon }}
+  <h1>{{ .App.Name }}</h1>
 {{ end }}
 
 {{ define "extra_menu" }}
diff --git a/core/installer/welcome/appmanager-tmpl/base.html b/core/installer/welcome/appmanager-tmpl/base.html
index 759ce87..a227233 100644
--- a/core/installer/welcome/appmanager-tmpl/base.html
+++ b/core/installer/welcome/appmanager-tmpl/base.html
@@ -3,14 +3,14 @@
 	<head>
 		<meta charset="utf-8" />
         <link rel="stylesheet" href="/static/pico.2.0.6.min.css">
-        <link rel="stylesheet" type="text/css" href="/static/appmanager.css?v=0.0.2">
+        <link rel="stylesheet" type="text/css" href="/static/appmanager.css?v=0.0.8">
 		<meta name="viewport" content="width=device-width, initial-scale=1" />
 	</head>
 	<body>
       <header class="is-fixed-above-lg is-fixed">
         {{ block "header" . }}{{ end }}
       </header>
-      <main class="container page-index">
+      <main class="container-fluid page-index">
           <aside id="menu-nav">
             <nav id="menu" class="is-sticky-above-lg">
                 <ul>
diff --git a/core/installer/welcome/appmanager-tmpl/index.html b/core/installer/welcome/appmanager-tmpl/index.html
index 356dc28..d934cd3 100644
--- a/core/installer/welcome/appmanager-tmpl/index.html
+++ b/core/installer/welcome/appmanager-tmpl/index.html
@@ -13,14 +13,12 @@
                     <a href="/app/{{ .Slug }}" class="app-link">
                         <article>
                             <div class="icon">
-                                <div>
-                                    {{ .Icon }}
-                                </div>
+                                {{ .Icon }}
                             </div>
                             <div class="card-content">
                                 <div class="app-details">
                                     <div class="app-name-container">
-                                        <p class="app">{{ .Name }}</p>
+                                        <h3 class="app">{{ .Name }}</h3>
                                         <span class="instance-count" data-tooltip="Instances {{ len .Instances }}" data-placement="bottom">{{ len .Instances }}</span>
                                     </div>
                                     <p class="description">{{ .ShortDescription }}</p>
diff --git a/core/installer/welcome/launcher-tmpl/launcher.html b/core/installer/welcome/launcher-tmpl/launcher.html
index 6d404ad..ca15ee9 100644
--- a/core/installer/welcome/launcher-tmpl/launcher.html
+++ b/core/installer/welcome/launcher-tmpl/launcher.html
@@ -5,7 +5,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>dodo: Launcher</title>
     <link rel="stylesheet" type="text/css" href="/static/pico.2.0.6.min.css">
-    <link rel="stylesheet" type="text/css" href="/static/launcher.css?v=0.0.13">
+    <link rel="stylesheet" type="text/css" href="/static/launcher.css?v=0.0.15">
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/hack-font/3.3.0/web/hack.min.css">
 </head>
 <body class="container-fluid">
@@ -80,6 +80,6 @@
             {{ template "help-content-template" (dict "Help" $h.Children "First" false) }}
         {{ end }}
     {{ end }}
-    <script src="/static/launcher.js?v=0.0.13"></script>
+    <script src="/static/launcher.js?v=0.0.14"></script>
 </body>
 </html>
diff --git a/core/installer/welcome/static/appmanager.css b/core/installer/welcome/static/appmanager.css
index 2f3564f..f48a1ea 100644
--- a/core/installer/welcome/static/appmanager.css
+++ b/core/installer/welcome/static/appmanager.css
@@ -1,7 +1,110 @@
-@media screen and (min-width: 801px) {
-  #main {
-    width: 600px;
+[data-theme="light"],
+:root:not([data-theme="dark"]) {
+  --pico-font-family: Hack, monospace;
+  --pico-font-size: 14px;
+  --pico-header-height: 56px;
+  --pico-border-radius: 0;
+  --pico-background-color: #d6d6d6;
+  --pico-form-element-border-color: #3a3a3a;
+  --pico-form-element-active-border-color: #7f9f7f;
+  --pico-form-element-focus-color: #7f9f7f;
+  --pico-form-element-background-color: #d6d6d6;
+  --pico-form-element-active-background-color: #d6d6d6;
+  --pico-form-element-selected-background-color: #d6d6d6;
+  --pico-primary: #7f9f7f;
+  --pico-primary-background: #7f9f7f;
+  --pico-primary-hover: #d4888d;
+  --pico-primary-hover-background: #d4888d;
+  --pico-grid-spacing-horizontal: 0;
+  --search-background-color: #d6d6d6;
+  --pico-color: #3a3a3a;
+  --pico-form-element-color: var(--pico-muted-color);
+  --pico-primary-inverse: #3a3a3a;
+  h3,
+  p {
+    color: var(--pico-accordion-open-summary-color);
   }
+  label {
+    color: var(--pico-secondary);
+  }
+  input:is([type="checkbox"]) {
+    --pico-form-element-focus-color: none;
+    --pico-border-color: var(--pico-secondary);
+  }
+}
+
+@media (max-width: 768px) {
+  body > main {
+    grid-template-columns: 9rem 1fr !important;
+    column-gap: 0 !important;
+  }
+
+  .container-fluid {
+    padding-left: 1px;
+    padding-right: 1px;
+    margin-left: 0;
+    margin-right: 0;
+  }
+}
+
+body > header {
+  z-index: 4;
+  position: relative;
+}
+
+html {
+  scroll-behavior: smooth;
+  overflow-x: hidden;
+}
+
+body > header.is-fixed-above-lg + main {
+  --pico-main-top-offset: var(--pico-header-height);
+}
+
+body > header.is-fixed-above-lg {
+  height: var(--pico-header-height);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  z-index: 2;
+  position: sticky;
+  top: 0;
+  -webkit-backdrop-filter: blur(1rem);
+  backdrop-filter: blur(1rem);
+  background-color: var(--pico-form-element-border-color);
+  transition: border-top-color 0.4s ease-in-out, box-shadow 0.4s ease-in-out;
+}
+
+body > main > aside > nav.is-sticky-above-lg {
+  position: sticky;
+  top: calc(
+    var(--pico-main-top-offset) + var(--pico-block-spacing-vertical) / 2
+  );
+  max-height: calc(var(--max-height) - var(--pico-spacing));
+  overflow: auto;
+  transition: top var(--pico-transition);
+  transition-delay: 50ms;
+}
+
+body > main {
+  display: grid;
+  grid-template-rows: auto auto 1fr;
+  grid-template-columns: 11rem 1fr;
+  grid-template-areas: "menu content";
+  column-gap: 2rem;
+  margin-top: 1rem;
+  padding: 0;
+}
+
+header > h1,
+header > svg {
+  margin-bottom: 2.5px;
+  color: var(--pico-primary-hover);
+}
+
+.search-bar {
+  max-width: 616px;
+  width: 100%;
 }
 
 article {
@@ -14,8 +117,9 @@
 }
 
 .icon {
-  margin-right: 10px;
+  margin: 0 6px;
   flex-shrink: 0;
+  color: var(--pico-accordion-open-summary-color);
 }
 
 .app-details {
@@ -35,11 +139,16 @@
   margin-bottom: 2px;
   margin-top: 0px;
   margin-left: 5px;
+  font-weight: bold;
+  font-size: 16px;
+}
+
+.app-link:hover h3.app,
+.app-link:hover .icon {
+  color: var(--pico-primary-hover);
 }
 
 .description {
-  --pico-color: var(--pico-secondary);
-  font-size: medium;
   margin-bottom: 3px;
   margin-left: 5px;
   text-decoration: none !important;
@@ -53,17 +162,14 @@
   display: flex;
   justify-content: center;
   align-items: center;
-  width: 24px;
-  height: 24px;
+  width: 22px;
+  height: 22px;
   border-radius: 50%;
-  background-color: white;
-  color: var(--pico-color);
-  font-size: 16px;
   font-weight: bold;
   border: 2px solid var(--pico-color) !important;
   position: absolute;
-  top: 14px;
-  right: 11px;
+  top: 10px;
+  right: 10px;
   transform: translate(50%, -50%);
 }
 
@@ -95,6 +201,8 @@
   padding-top: 0px;
   padding-bottom: 2px;
   text-decoration: none;
+  width: 100%;
+  padding-right: 0;
 }
 
 nav li {
@@ -104,6 +212,7 @@
 
 input[type="search"] {
   margin-bottom: 0;
+  height: 100%;
 }
 
 .page {
@@ -112,11 +221,6 @@
   flex-direction: column;
 }
 
-.search-bar {
-  max-width: 616px;
-  min-width: 500px;
-}
-
 .card-content {
   width: 100%;
 }
@@ -125,64 +229,22 @@
   margin-bottom: 6px;
 }
 
-header {
-  height: 80px !important;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-
-header > h1 {
-  margin-bottom: 0px;
-}
-
 nav {
   height: 100%;
 }
 
 #config-form label {
   width: auto !important;
+  padding: 0 5px 0 5px;
 }
 
-html {
-  scroll-behavior: smooth;
-  --pico-header-height: 80px;
+#config-form > label:nth-of-type(2) label {
+  padding-left: 0;
+  padding-right: 0;
 }
 
-body > header.is-fixed-above-lg + main {
-  --pico-main-top-offset: var(--pico-header-height);
-}
-
-body > header.is-fixed-above-lg {
-  z-index: 2;
-  position: sticky;
-  top: 0;
-  -webkit-backdrop-filter: blur(1rem);
-  backdrop-filter: blur(1rem);
-  background-color: var(--pico-header-background);
-  transition: border-top-color 0.4s ease-in-out, box-shadow 0.4s ease-in-out;
-}
-
-body > header.is-fixed-above-lg.is-fixed {
-  border-bottom-color: var(--pico-header-border-color);
-  box-shadow: var(--pico-card-box-shadow);
-}
-
-body > header {
-  z-index: 4;
-  position: relative;
-  padding: 0.5rem 0;
-  border-bottom: var(--pico-border-width) solid transparent;
-}
-
-body > main {
-  display: grid;
-  grid-template-rows: auto auto 1fr;
-  grid-template-columns: 11rem 1fr;
-  grid-template-areas: "menu content";
-  column-gap: 2rem;
-  margin-top: 1rem;
-  padding: 0;
+input[type="checkbox"]:checked {
+  border-color: var(--pico-form-element-focus-color) !important;
 }
 
 #menu-nav {
@@ -193,22 +255,6 @@
   grid-area: content;
 }
 
-main > aside {
-  --pico-font-size: 16px;
-  font-size: var(--pico-font-size);
-}
-
-body > main > aside > nav.is-sticky-above-lg {
-  position: sticky;
-  top: calc(
-    var(--pico-main-top-offset) + var(--pico-block-spacing-vertical) / 2
-  );
-  max-height: calc(var(--max-height) - var(--pico-spacing));
-  overflow: auto;
-  transition: top var(--pico-transition);
-  transition-delay: 50ms;
-}
-
 main > aside#menu-nav nav {
   margin-bottom: var(--pico-spacing);
   margin-block: calc(var(--pico-outline-width) * -1);
diff --git a/core/installer/welcome/static/launcher.css b/core/installer/welcome/static/launcher.css
index d6038f9..12d24fe 100644
--- a/core/installer/welcome/static/launcher.css
+++ b/core/installer/welcome/static/launcher.css
@@ -32,8 +32,6 @@
   display: flex;
   flex-direction: column;
   align-items: center;
-  margin-top: 5px;
-  margin-bottom: 5px;
 }
 
 .app-list {
@@ -44,8 +42,6 @@
   overflow-x: hidden;
   padding-top: 3px;
   width: 95% !important;
-  /* scrollbar-width: thin;
-  scrollbar-color: var(--bodyBg) var(--bg); */
 }
 
 .scrollbar-custom {
@@ -53,11 +49,6 @@
   scrollbar-color: var(--bodyBg) var(--bg);
 }
 
-/* .app-list:hover::-webkit-scrollbar {
-  width: 6px;
-  scrollbar-color: var(--bodyBg) var(--bg);
-} */
-
 .scrollbar-custom::-webkit-scrollbar {
   width: 6px;
 }
@@ -75,38 +66,28 @@
   background-color: var(--bodyBg);
 }
 
-/* .layout-scrollbar::-webkit-scrollbar-thumb:active {
-  background-color: var(--bodyBg);
-} */
-
 #right-panel {
   flex: 1;
   background-color: none !important;
-  margin: 5px 0 5px 5px;
-  padding: 2px;
+  padding: 0 0 0 2px;
 }
 
 .appFrame {
-  border-radius: 10px;
+  border-radius: 0;
   width: 100%;
   height: 100%;
   border: 0;
 }
 
 .app-icon {
-  /* position: relative; */
-  /* display: inline-block; */
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
-  /* cursor: initial; */
   width: 80px !important;
   height: 50px !important;
   margin-bottom: 10px !important;
   cursor: pointer !important;
-  /* --pico-background-color: unset !important;
-  --pico-color: unset !important; */
 }
 
 .tooltip {
@@ -161,7 +142,6 @@
 
 .modal-right {
   flex: 1;
-  /* width: 70%; */
   overflow-y: auto;
   float: right;
   margin-left: 2px;