diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 641ce17bc..9f38e2af9 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9257,8 +9257,7 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash._reinterpolate": { "version": "3.0.0", @@ -10836,6 +10835,11 @@ "ts-pnp": "^1.1.6" } }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, "portfinder": { "version": "1.0.26", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", @@ -13987,6 +13991,16 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, + "v-tooltip": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v-tooltip/-/v-tooltip-2.0.3.tgz", + "integrity": "sha512-KZZY3s+dcijzZmV2qoDH4rYmjMZ9YKGBVoUznZKQX0e3c2GjpJm3Sldzz8HHH2Ud87JqhZPB4+4gyKZ6m98cKQ==", + "requires": { + "lodash": "^4.17.15", + "popper.js": "^1.16.0", + "vue-resize": "^0.4.5" + } + }, "v8-compile-cache": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", @@ -14364,6 +14378,11 @@ } } }, + "vue-resize": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-0.4.5.tgz", + "integrity": "sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg==" + }, "vue-router": { "version": "3.4.5", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.5.tgz", diff --git a/frontend/package.json b/frontend/package.json index cfed53d11..ff7622d81 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,6 +12,7 @@ "core-js": "^3.6.4", "crypto-random-string": "^3.3.0", "lodash.debounce": "^4.0.8", + "v-tooltip": "^2.0.3", "vue": "^2.6.12", "vue-apollo": "^3.0.4", "vue-infinite-loading": "^2.4.5", diff --git a/frontend/src/AppFrontend.vue b/frontend/src/AppFrontend.vue index 21a1f0ab9..88580bdd0 100644 --- a/frontend/src/AppFrontend.vue +++ b/frontend/src/AppFrontend.vue @@ -95,30 +95,28 @@ - - - Dark mode - - mdi-weather-night - - - - Light mode - - mdi-white-balance-sunny - - - - - Sign out - - + + Sign out + @@ -227,13 +225,11 @@ a:hover { .no-decor a:hover { text-decoration: none; } -.userMenu .v-list-item--active::before { - opacity: 0; -} -.theme--dark { - /* color: #cfcdcc !important; */ -} +/* .theme--dark { + /color: #cfcdcc !important; +} */ + /* don't like fat text */ .v-list-item--dense .v-list-item__title, .v-list-item--dense .v-list-item__subtitle, @@ -241,4 +237,114 @@ a:hover { .v-list--dense .v-list-item .v-list-item__subtitle { font-weight: 400 !important; } + +/* TOOLTIPs */ + +.tooltip { + display: block !important; + z-index: 10000; + font-family: "Roboto", sans-serif !important; + font-size: 0.75rem !important; +} + +.tooltip .tooltip-inner { + background: rgba(0, 0, 0, 0.5); + color: white; + border-radius: 16px; + padding: 5px 10px 4px; +} + +.tooltip .tooltip-arrow { + width: 0; + height: 0; + border-style: solid; + position: absolute; + margin: 5px; + border-color: rgba(0, 0, 0, 0.5); + z-index: 1; +} + +.tooltip[x-placement^="top"] { + margin-bottom: 5px; +} + +.tooltip[x-placement^="top"] .tooltip-arrow { + border-width: 5px 5px 0 5px; + border-left-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; + bottom: -5px; + left: calc(50% - 5px); + margin-top: 0; + margin-bottom: 0; +} + +.tooltip[x-placement^="bottom"] { + margin-top: 5px; +} + +.tooltip[x-placement^="bottom"] .tooltip-arrow { + border-width: 0 5px 5px 5px; + border-left-color: transparent !important; + border-right-color: transparent !important; + border-top-color: transparent !important; + top: -5px; + left: calc(50% - 5px); + margin-top: 0; + margin-bottom: 0; +} + +.tooltip[x-placement^="right"] { + margin-left: 5px; +} + +.tooltip[x-placement^="right"] .tooltip-arrow { + border-width: 5px 5px 5px 0; + border-left-color: transparent !important; + border-top-color: transparent !important; + border-bottom-color: transparent !important; + left: -5px; + top: calc(50% - 5px); + margin-left: 0; + margin-right: 0; +} + +.tooltip[x-placement^="left"] { + margin-right: 5px; +} + +.tooltip[x-placement^="left"] .tooltip-arrow { + border-width: 5px 0 5px 5px; + border-top-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; + right: -5px; + top: calc(50% - 5px); + margin-left: 0; + margin-right: 0; +} + +.tooltip.popover .popover-inner { + background: #f9f9f9; + color: black; + padding: 24px; + border-radius: 5px; + box-shadow: 0 5px 30px rgba(black, 0.1); +} + +.tooltip.popover .popover-arrow { + border-color: #f9f9f9; +} + +.tooltip[aria-hidden="true"] { + visibility: hidden; + opacity: 0; + transition: opacity 0.15s, visibility 0.15s; +} + +.tooltip[aria-hidden="false"] { + visibility: visible; + opacity: 1; + transition: opacity 0.15s; +} diff --git a/frontend/src/components/BtnClickCopy.vue b/frontend/src/components/BtnClickCopy.vue index 6eab99165..88dc28d37 100644 --- a/frontend/src/components/BtnClickCopy.vue +++ b/frontend/src/components/BtnClickCopy.vue @@ -1,6 +1,6 @@