From b7a027c92c64646eef64748e33cc207ab41306f3 Mon Sep 17 00:00:00 2001 From: BPower0036 <80090789+BPower0036@users.noreply.github.com> Date: Sat, 7 May 2022 08:51:29 +0000 Subject: [PATCH] Add files via upload --- src/manifest.json | 4 +- src/popup.css | 2389 +++++++++++++++++++++++++++++++++++++++++++++ src/update.json | 4 +- 3 files changed, 2393 insertions(+), 4 deletions(-) create mode 100644 src/popup.css diff --git a/src/manifest.json b/src/manifest.json index 1cff08f..b50e840 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "author": "BPower0036", "name": "Multi-Account Containers (Wildcard)", - "version": "8.0.7.7", + "version": "8.0.7.8", "incognito": "not_allowed", "description": "__MSG_extensionDescription__", "icons": { @@ -151,4 +151,4 @@ "page": "options.html", "browser_style": true } -} +} \ No newline at end of file diff --git a/src/popup.css b/src/popup.css new file mode 100644 index 0000000..da64199 --- /dev/null +++ b/src/popup.css @@ -0,0 +1,2389 @@ +@font-face { + font-family: "Metropolis"; + font-style: normal; + font-weight: 800; + src: url("/fonts/Metropolis-Medium.woff2") format("woff2"); +} + +@font-face { + font-family: "Metropolis-Light"; + font-style: normal; + font-weight: 300; + src: url("/fonts/Metropolis-Light.woff2") format("woff2"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + src: url("/fonts/Inter-Regular.woff2") format("woff2"); +} + +@font-face { + font-family: "Inter-Medium"; + font-style: normal; + font-weight: 500; + src: url("/fonts/Inter-Medium.woff2") format("woff2"); +} + +[data-theme="light"], +:root { + --fontInter: "Inter", sans-serif; + --fontInterMedium: "Inter-Medium", sans-serif; + --fontMetropolis: "Metropolis", sans-serif; + --fontMetropolisLight: "Metropolis-Light", sans-serif; + --iconArrowLeft: url("/img/arrow-icon-left.svg"); + --iconArrowRight: url("/img/arrow-icon-right.svg"); + --iconCloseX: url("/img/close.svg"); + --iconGear: url("/img/gear-icon.svg"); + --iconProxyWarning: url("/img/proxy-warning.svg"); + --logoMozillaVpn: url("/img/moz-vpn-logo.svg"); + --menuItemHeight: 28px; + --marginInline: 16px; + --footerHeight: 48px; + --panelSize: 560px; + --rowHeight: 48px; + + /* calculated from 12px */ + --font-size-heading: 1.33rem; /* 16px */ + --block-line-space-size: 0.5rem; /* 6px */ + --inline-item-space-size: 0.5rem; /* 6px */ + --block-line-separation-size: 0.33rem; /* 10px */ + --inline-icon-space-size: 0.833rem; /* 10px */ + + /* Use for url and icon size */ + --block-url-label-size: 2rem; /* 24px */ + --inline-start-size: 1.66rem; /* 20px */ + --inline-button-size: 5.833rem; /* 70px */ + --icon-size: 1.166rem; /* 14px */ + --small-text-size: 0.833rem; /* 10px */ + --small-radius: 3px; + --icon-button-size: calc(calc(var(--block-line-separation-size) * 2) + 1.66rem); /* 20px */ + --inactive-opacity: 0.3; + --overflow-size: 1px; + --icon-fit: 9; + + background: var(--bgColor); + margin-block: 0; + margin-inline: 0; + + /* Proton Colors */ + --badge-destructive-bg-color: #e22850; + --badge-destructive-text-color: #fbfbfe; + --button-bg-color-primary: #0060df; + --button-bg-active-color-primary: #054096; + --button-bg-hover-color-primary: #0250bb; + --button-bg-focus-color-primary: #0060df; + --button-text-color-primary: #fbfbfe; + --button-bg-color-secondary: #f0f0f4; + --button-bg-active-color-secondary: #cfcfd8; + --button-bg-hover-color-secondary: #e0e0e6; + --button-destructive-bg-color: #e22850; + --button-destructive-bg-active-color: #810220; + --button-destructive-bg-hover-color: #c50042; + --button-destructive-bg-focus-color: #e22850; + --button-destructive-text-color: #fbfbfe; + --input-bg-color: #fff; + --input-bg-focus-color: #fff; + --input-bg-active-color: #054096; + --input-border-color: #8f8f9d; + --input-border-focus-color: #0060df; + --input-border-active-color: #054096; + --text-color-primary: #15141a; + --menu-bg-active-color: #cfcfd8; + --menu-bg-hover-color: #e0e0e6; + --panel-bg-color: #fff; + --panel-separator-color: rgba(240, 240, 244, 1); + --link-color: #0060df; + --link-hover-color: #0250bb; + --toggle-off-bg-color: #f0f0f4; + --toggle-off-bg-active-color: #cfcfd8; + --toggle-off-bg-hover-color: #e0e0e6; + --toggle-off-bg-focus-color: #f0f0f4; + --toggle-off-border-color: #8f8f9d; + --toggle-on-bg-color: #0060df; + --toggle-on-bg-active-color: #054096; + --toggle-on-bg-hover-color: #0250bb; + --toggle-on-bg-focus-color: #0060df; + --toggle-on-border-color: #0060df; + --toggle-on-handle-bg-color: #fff; + --usercontext-bg-active-color: #e0e0e6; + --usercontext-bg-focus-color: #cfcaf6; + --usercontext-bg-hover-color: #e0e0e6; + --moz-vpn-tout-shadow: 0 0 7px 0 #9498a25e; +} +[data-theme="dark"] { + --iconCloseX: url("/img/close-light.svg"); + --iconGear: url("/img/gear-icon-light.svg"); + --iconArrowRight: url("/img/arrow-icon-right-light.svg"); + --iconArrowLeft: url("/img/arrow-icon-left-light.svg"); + --iconProxyWarning: url("/img/proxy-warning-light.svg"); + --logoMozillaVpn: url("/img/moz-vpn-logo-light.svg"); + --bgColor: #42404c; + --text-normal-color: #f9f9fa; + --primaryCtaDefault: var(--blue40); + --primaryCtaHover: var(--blue50); + --primaryCtaActive: var(--blue60); + --controllerActive: rgb(90, 89, 102); + --bgDark: #2b2932; + + /* Proton Colors */ + --badge-destructive-bg-color: #ff8480; + --badge-destructive-text-color: #15141a; + --button-bg-color-primary: #0df; + --button-bg-active-color-primary: #aaf2ff; + --button-bg-hover-color-primary: #80ebff; + --button-bg-focus-color-primary: #0df; + --button-text-color-primary: #15141a; + --button-bg-color-secondary: #2b2a33; + --button-bg-active-color-secondary: #5b5b66; + --button-bg-hover-color-secondary: #52525e; + --button-destructive-bg-color: #ff8480; + --button-destructive-bg-active-color: #ffdfe7; + --button-destructive-bg-hover-color: #ffbdc5; + --button-destructive-bg-focus-color: #ff8480; + --button-destructive-text-color: #15141a; + + /* for the input background, we use dark-grey-60 instead of dark-grey-30 + * instead the panel background is lighter than the page background + */ + --input-bg-color: #2b2a33; + --input-bg-active-color: #aaf2ff; + --input-bg-focus-color: #52525e; + --input-border-color: #8f8f9d; + --input-border-active-color: #aaf2ff; + --input-border-focus-color: #0df; + --link-color: #0df; + --link-hover-color: #80ebff; + --text-color-primary: #fbfbfe; + --menu-bg-active-color: #5b5b66; + --menu-bg-hover-color: #52525e; + --panel-bg-color: #42414d; + --panel-separator-color: rgba(82, 82, 94, 1); + + /* Toggle is currently called `.slider` in the code below. This should be + * changed in a follow-up patch to make it more inline with the terms used in + * the Proton Design System + */ + --toggle-off-bg-color: #2b2a33; + --toggle-off-bg-active-color: #5b5b66; + --toggle-off-bg-hover-color: #52525e; + --toggle-off-bg-focus-color: #2b2a33; + --toggle-off-border-color: #8f8f9d; + --toggle-on-bg-color: #0df; + --toggle-on-bg-active-color: #aaf2ff; + --toggle-on-bg-hover-color: #80ebff; + --toggle-on-bg-focus-color: #0df; + --toggle-on-border-color: #0df; + --toggle-on-handle-bg-color: #42414d; + --usercontext-bg-active-color: #5b5b66; + --usercontext-bg-focus-color: #2b2a33; + --usercontext-bg-hover-color: #52525e; + --moz-vpn-tout-shadow: 0 0 7px 0 #7478825e; +} + +/* General Rules and Resets */ + +* { + font-size: inherit; + margin-block-end: 0; + margin-block-start: 0; + margin-inline-end: 0; + margin-inline-start: 0; + padding-block-end: 0; + padding-block-start: 0; + padding-inline-end: 0; + padding-inline-start: 0; +} + +html { + background-color: var(--panel-bg-color); + box-sizing: border-box; + font-size: 12px; + overscroll-behavior: none; +} + +body { + background-color: var(--panel-bg-color); + color: var(--text-color-primary); + font-family: var(--fontInter); + font-size: 13px; + inline-size: 352px; + letter-spacing: -0.125px; + min-inline-size: 352px; +} + +html, +body { + block-size: 100%; /* Bugfix: issue 948 */ + max-block-size: 650px; + min-block-size: 300px; + + /* stylelint-disable */ + scrollbar-width: none; + /* stylelint-enable */ + transition: height 0.1s ease-in-out; +} + +/* Hack for menu icons to use a light color without affecting container icons */ +[data-theme="light"] img.delete-assignment, +[data-theme="dark"] .trash-button, +[data-theme="dark"] img.menu-icon, +[data-theme="dark"] .menu-icon > img, +[data-theme="dark"] .menu-arrow > img, +[data-theme="dark"] .info-icon > img { + filter: invert(1); +} + +[data-theme="dark"] img.delete-assignment, +[data-theme="dark"] #edit-sites-assigned .menu-icon, +[data-theme="dark"] #container-info-table .menu-icon { + filter: invert(0); +} + +[data-theme="dark"] [data-identity-color="grey"] { + --identity-icon-color: var(--text-color-primary); +} + +[data-theme="dark"] [data-identity-color="grey"]:hover { + --identity-icon-color: var(--text-color-primary); +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +table { + border: 0; + border-spacing: 0; + inline-size: 100%; +} + +/* Helper Classes */ +.hide { + display: none !important; +} + +.scrollable { + flex: 1; + inline-size: 100%; + block-size: 100%; + overscroll-behavior: none; + overflow-y: auto; + overflow-x: hidden; + padding-block-end: 8px; +} + +.offpage { + opacity: 0; +} + +[hidden] { + display: none !important; +} + +/* effect borrowed from tabs in firefox, ensure that the element flexes to the full width */ +.truncate-text { + inline-size: calc(100vw - 80px); + overflow: hidden; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; +} + +.truncate-text::after { + background: var(--bgColor); + content: " "; + block-size: 100%; + inline-size: 100px; + inset-inline-end: 0; + mask-image: linear-gradient(to right, transparent, var(--bgColor) 70%); + position: absolute; +} + +.hover-highlight:hover .truncate-text::after { + background-color: var(--menu-bg-hover-color); + mask-image: linear-gradient(to right, transparent, var(--menu-bg-hover-color) 50%); +} + +/* Color and icon helpers */ +[data-identity-color="blue"] { + --identity-tab-color: #37adff; + --identity-icon-color: #37adff; +} + +[data-identity-color="turquoise"] { + --identity-tab-color: #00c79a; + --identity-icon-color: #00c79a; +} + +[data-identity-color="green"] { + --identity-tab-color: #51cd00; + --identity-icon-color: #51cd00; +} + +/* We disable no-descending-specificity so we can keep [data-theme="dark"] + * rules grouped together at the beginning of the file + */ +/* stylelint-disable no-descending-specificity */ +[data-identity-color="grey"] { + /* Only used for the edit panel */ + --identity-icon-color: #616161; +} +/* stylelint-enable no-descending-specificity */ + +[data-identity-color="yellow"] { + --identity-tab-color: #ffcb00; + --identity-icon-color: #ffcb00; +} + +[data-identity-color="orange"] { + --identity-tab-color: #ff9f00; + --identity-icon-color: #ff9f00; +} + +[data-identity-color="red"] { + --identity-tab-color: #ff613d; + --identity-icon-color: #ff613d; +} + +[data-identity-color="pink"] { + --identity-tab-color: #ff4bda; + --identity-icon-color: #ff4bda; +} + +[data-identity-color="purple"] { + --identity-tab-color: #af51f5; + --identity-icon-color: #af51f5; +} + +[data-identity-color="toolbar"] { + --identity-tab-color: var(--toolbar-field-color); + --identity-icon-color: var(--toolbar-field-color); +} + +[data-identity-icon="fingerprint"] { + --identity-icon: url("/img/usercontext.svg#fingerprint"); +} + +[data-identity-icon="briefcase"] { + --identity-icon: url("/img/usercontext.svg#briefcase"); +} + +[data-identity-icon="dollar"] { + --identity-icon: url("/img/usercontext.svg#dollar"); +} + +[data-identity-icon="cart"] { + --identity-icon: url("/img/usercontext.svg#cart"); +} + +[data-identity-icon="circle"] { + --identity-icon: url("/img/usercontext.svg#circle"); +} + +[data-identity-icon="food"] { + --identity-icon: url("/img/usercontext.svg#food"); +} + +[data-identity-icon="gift"] { + --identity-icon: url("/img/usercontext.svg#gift"); +} + +[data-identity-icon="vacation"] { + --identity-icon: url("/img/usercontext.svg#vacation"); +} + +[data-identity-icon="fruit"] { + --identity-icon: url("/img/usercontext.svg#fruit"); +} + +[data-identity-icon="pet"] { + --identity-icon: url("/img/usercontext.svg#pet"); +} + +[data-identity-icon="tree"] { + --identity-icon: url("/img/usercontext.svg#tree"); +} + +[data-identity-icon="chill"] { + --identity-icon: url("/img/usercontext.svg#chill"); +} + +[data-identity-icon="fence"] { + --identity-icon: url("/img/usercontext.svg#fence"); +} + +#current-tab [data-identity-icon="default-tab"] { + background: center center no-repeat url("/img/blank-tab.svg"); + fill: currentColor; +} + +/* Buttons */ + +.button { + background-color: var(--button-bg-color-secondary); + color: var(--text-color-primary); +} + +.button.primary { + background-color: var(--button-bg-color-primary); + color: var(--button-text-color-primary); +} + +.button.primary:hover { + background-color: var(--button-bg-hover-color-primary); +} + +.button.primary:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +.button.secondary:hover { + background-color: var(--button-bg-hover-color-secondary); +} + +.button.secondary:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +.button.primary:active { + background-color: var(--button-bg-active-color-primary); + outline: none; +} + +.button.secondary:active { + background-color: var(--button-bg-active-color-secondary); + outline: none; +} + +/* Mozilla VPN status icon */ + +.moz-vpn-status-icon { + color: var(--text-color-primary); + background-size: 17px; + background-position: left center; + font-size: 13px; + padding-inline-start: 22px; + padding-inline-end: 32px; +} + +.moz-vpn-status-icon.connected { + background-image: url("/img/moz-vpn-status-icons/moz-vpn-connected.svg"); +} + +.moz-vpn-status-icon.disconnected { + background-image: url("/img/moz-vpn-status-icons/moz-vpn-disconnected.svg"); +} + +.moz-vpn-logotype.vpn-status-container-list { + color: var(--text-color-primary); + background-size: 16px; + background-position: left center; + font-size: 12px; + padding-inline-start: 19px; + padding-inline-end: 22px; + align-items: center; +} + +.moz-vpn-connection-status-indicator.container-list-status-icon { + block-size: 16px; + inline-size: 16px; +} + +/* Toggle Switch */ + +.switch { + display: inline-block; + block-size: 24px; + position: relative; + inline-size: 45px; +} + +.switch .switch-input { + block-size: 0; + opacity: 0; + inline-size: 0; +} + +.slider { + background-color: var(--toggle-off-bg-color); + border-radius: 13px; + inset-block-end: 0; + box-shadow: 0 0 0 2px var(--toggle-off-border-color); + inset-inline-start: 0; + position: absolute; + inset-inline-end: 0; + inset-block-start: 0; + transition: 0.1s ease-in-out; +} + +.slider::before { + background-color: var(--toggle-off-border-color); + border-radius: 50%; + inset-block-end: 3px; + content: ""; + block-size: 18px; + inset-inline-start: 3px; + position: absolute; + transition: 0.1s ease-in-out; + inline-size: 18px; +} + +input:hover + .slider { + background-color: var(--toggle-off-bg-hover-color); +} + +input:focus + .slider { + box-shadow: + 0 0 0 2px var(--toggle-off-border-color), + 0 0 0 4px var(--toggle-off-bg-color), + 0 0 0 6px var(--toggle-on-border-color); +} + +input:active + .slider { + background-color: var(--toggle-off-bg-active-color); +} + +input:checked + .slider { + background-color: var(--toggle-on-bg-color); + box-shadow: 0 0 0 2px var(--toggle-on-border-color); +} + +input:checked + .slider::before { + background-color: var(--toggle-on-handle-bg-color); + transform: translateX(21px); +} + +input:checked:hover + .slider { + background-color: var(--toggle-on-bg-hover-color); + box-shadow: 0 0 0 2px var(--toggle-on-bg-hover-color); +} + +input:checked:focus + .slider { + box-shadow: + 0 0 0 2px var(--toggle-on-border-color), + 0 0 0 4px var(--toggle-off-bg-color), + 0 0 0 6px var(--toggle-on-border-color); +} + +input:checked:active + .slider { + background-color: var(--toggle-on-bg-active-color); +} + +input:checked:hover:focus + .slider { + background-color: var(--toggle-on-bg-hover-color); + box-shadow: + 0 0 0 2px var(--toggle-on-bg-hover-color), + 0 0 0 4px var(--toggle-off-bg-color), + 0 0 0 6px var(--toggle-on-border-color); +} + +.hidden { + visibility: hidden; +} + +/* Primary CTA Buttons */ + +.primary-cta { + block-size: 32px; + background-color: var(--button-bg-color-primary); + border: transparent; + border-radius: 4px; + color: var(--button-text-color-primary); + transition: background-color 0.2s ease-in-out; +} + +.primary-cta:hover { + background-color: var(--button-bg-hover-color-primary); +} + +.primary-cta:focus { + outline: none; + box-shadow: + 0 0 0 2px var(--button-bg-color-secondary), + 0 0 0 4px var(--button-bg-color-primary); +} + +.primary-cta:active { + background-color: var(--button-bg-active-color-primary); +} + +/* Mozilla VPN tout */ + +#moz-vpn-tout { + opacity: 0; + background-color: var(--panel-bg-color); + visibility: visible; + max-block-size: 500px; + position: absolute; + inset-block-end: var(--footerHeight); + inset-inline-start: 0; + inset-inline-end: 0; + box-shadow: var(--moz-vpn-tout-shadow); + animation: appear 0.2s ease-out 0.5s forwards; + transition: opacity 0.1s ease-in-out, max-height 0.3s ease-in-out; +} + +@keyframes appear { + 0% { + opacity: 0; + transform: translateY(10%); + } + + 100% { + opacity: 1; + transform: translateY(0%); + } +} + +/* Mozilla VPN Controller UI in Container Management Panel */ + +.moz-vpn-content, +.moz-vpn-controller-content { + display: flex; + position: relative; + flex-direction: column; + padding-block: 16px; + transition: max-height 0.3s ease-in-out, padding-block-end 0.2s ease-in-out; + box-shadow: 0 0 0 1px var(--panel-separator-color); +} + +.moz-vpn-connection-status-indicator { + position: absolute; + inset-inline-end: 0; + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + size: 0; + color: rgba(0, 0, 0, 0); + block-size: 24px; + inline-size: 24px; +} + +.current-country-flag { + display: inline-block; + background-repeat: no-repeat; + background-position: left center; + background-size: contain; + block-size: 16px; + inline-size: 16px; +} + +.moz-vpn-controller-content.show-server-button { + padding-block-end: 56px; + transition: 0.2s ease-in-out; +} + +.dismiss-moz-vpn-tout { + margin-inline-start: auto; + block-size: 24px; + inline-size: 24px; + background: var(--bgColor); + background-image: var(--iconCloseX); + border: none; + border-radius: 4px; +} + +.flag-img { + block-size: 13px; + margin-inline-end: 4px; + opacity: 0.9; +} + +.page-action-flag { + margin-inline-end: var(--marginInline); +} + +.display-none { + display: none; +} + +.proxy-disabled { + opacity: 0.4; +} + +fieldset.proxies { + position: absolute; + inset-block-start: 120px; + inset-inline-start: 0; + inset-inline-end: 0; + block-size: 60px; + display: flex; + background: #5cabff; + justify-content: center; + align-content: center; + align-items: center; + flex-direction: row; + pointer-events: none; +} + +input.proxies { + font-size: 6px; + block-size: 20px; + max-block-size: 20px; + padding-block: 0 !important; + padding-inline: 0 !important; + display: inline-flex; + inline-size: 40% !important; + pointer-events: none; +} + +.moz-vpn-cta { + block-size: 32px; + margin-block-start: 16px; + margin-block-end: 4px; + margin-inline: var(--marginInline); + text-align: center; +} + +.apply-to-container { + block-size: 32px; + inline-size: 100%; + text-align: center; + margin-block: 16px; +} + +#moz-vpn-current-server { + align-items: center; + border: none; + border-radius: 4px; + display: flex; + block-size: 32px; + margin-block-start: 8px; + background-color: var(--panel-bg-color); + background-image: var(--iconArrowRight); + background-position: calc(100% - 24px) center; + background-repeat: no-repeat; + background-size: 9px; + outline: none; + padding-inline-start: 20px; + margin-inline: 8px; + margin-block: 8px; + visibility: visible; + position: absolute; + inset-block-end: 0; + inline-size: calc(100% - 16px); + opacity: 0; + transition: opacity 0.2s ease-in-out; +} + +#moz-vpn-current-server:hover { + background-color: var(--button-bg-hover-color-secondary); +} + +#moz-vpn-current-server:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +#moz-vpn-current-server:active { + background-color: var(--button-bg-active-color-secondary); + outline: none; +} + +.moz-vpn-controller-content.show-server-button #moz-vpn-current-server { + opacity: 1; +} + +.moz-vpn-controller-content.show-server-button #moz-vpn-current-server[disabled] { + opacity: 0.5; + cursor: not-allowed; +} + +@keyframes serverButtonAppear { + 0% { + opacity: 0; + visibility: hidden; + z-index: -1; + } + + 90% { + z-index: -1; + visibility: hidden; + } + + 100% { + visibility: visible; + z-index: 1; + opacity: 1; + } +} + +#moz-vpn-current-server.hidden { + block-size: 0; + opacity: 0; + visibility: hidden; + z-index: -1; +} + +.current-city-name { + padding-inline-start: 12px; +} + +.collapsible-content { + max-block-size: 0; + opacity: 0; + visibility: hidden; + display: none; + background-color: var(--bgColor); + transition: max-height 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out; +} + +.moz-vpn-subtitle { + font-size: 12px; + flex: 0 1 80%; + color: var(--text-normal-color); +} + +.collapsible-content > .flx-row.flx-space-between { + inline-size: calc(100% - 40px); + margin-inline: auto; + padding-block-start: 12px; +} + +[disabled] { + pointer-events: none; + opacity: 0.5; +} + +#current-proxy { + font-size: 12px; + color: var(--grey30); + line-height: 13px; +} + +.expanded .collapsible-content { + display: flex; + max-block-size: 500px; + opacity: 1; + visibility: visible; +} + +.hide-label, +.show-label { + line-height: 100%; + position: absolute; + inset-inline-end: 0; + transition: visibility 0.2s ease-in-out, color 0.2s ease-in-out, opacity 0.2s ease-in-out; +} + +.expanded .hide-label, +.show-label { + visibility: visible; + opacity: 1; +} + +/* stylelint-disable */ +.hide-label, +.expanded .show-label { + visibility: hidden; + opacity: 0; +} + +/* stylelint-enable */ + +.expand-collapse { + inline-size: 50%; + margin-inline-start: auto; + pointer-events: all; +} + +.button-wrapper { + margin-inline: 20px; +} + +/* Advanced Proxy Settings Button */ + +#edit-advanced-proxy-input { + padding-inline-end: 40px; +} + +#edit-advanced-proxy-input.valid:focus { + box-shadow: 0 0 0 3px #3fe1b030; + border-color: var(--green80); +} + +.advanced-proxy-settings-btn { + background-color: var(--panel-bg-color); + background-image: var(--iconGear), var(--iconArrowRight); + background-position: 16px center, calc(100% - 24px) center; + background-repeat: no-repeat; + background-size: 24px 24px, 9px; + border: none; + border-radius: 4px; + color: var(--text-color-primary); + block-size: 32px; + line-height: 19px; + display: flex; + flex-direction: column; + justify-content: center; + outline: none; + padding-inline-start: 44px; + z-index: 2; + transition: opacity 0.1s ease-in-out, background-color 0.1s ease-in-out; + margin-inline: 8px; + margin-block: 8px; +} + +.disabled { + opacity: 0.5; + cursor: not-allowed; + pointer-events: none; +} + +.advanced-proxy-settings-btn:hover { + background-color: var(--button-bg-hover-color-secondary); +} + +.advanced-proxy-settings-btn:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +.advanced-proxy-settings-btn:active { + background-color: var(--button-bg-active-color-secondary); + outline: none; +} + +#clear-advanced-proxy-input { + position: absolute; + inset-inline-end: 8px; + inset-block-start: 7px; + border: none; + block-size: 22px; + inline-size: 22px; + border-radius: 50%; + background-image: var(--iconCloseX); + background-repeat: no-repeat; + background-position: center center; + background-size: 16px; + font-size: 1; + color: var(--bgColor); +} + +.proxy-title-container-color { + block-size: 12px; + inline-size: 12px; + z-index: 10; + border-radius: 50%; +} + +.advanced-proxy-panel-content { + padding-block: 16px; + padding-inline: 20px; + margin-block-start: 56px; + display: flex; + flex-direction: column; +} + +.advanced-proxy-input-wrapper { + margin-block-start: 12px; + position: relative; + display: flex; + flex-direction: column; +} + +.proxy-validity { + position: absolute; + inset-block-start: 42px; + inset-inline-start: 16px; + visibility: hidden; + opacity: 0; + background-color: var(--badge-destructive-bg-color); + color: var(--badge-destructive-text-color); + border-radius: 4px; + padding-block: 2px; + padding-inline: 4px; + transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out; +} + +.proxy-validity::after { + content: ""; + block-size: 8px; + inline-size: 8px; + background-color: var(--badge-detructive-bg-color); + inset-block-start: -4px; + position: absolute; + transform: rotate(45deg); + inset-inline-start: 12px; +} + +.invalid .proxy-validity { + opacity: 1; + z-index: 10; + visibility: visible; +} + +.invalid .proxy-host.primary-input { + border-color: var(--red50); + box-shadow: 0 0 0 3px #ff848b70; +} + +.invalid button { + pointer-events: none; + opacity: 0.5; +} + +/* Mozilla VPN Server list */ + +.moz-vpn-logo, +.moz-vpn-logotype { + color: var(--text-color-primary); + background-image: var(--logoMozillaVpn); + background-repeat: no-repeat; + background-size: 24px; + background-position: left center; + font-family: var(--fontMetropolis); + font-size: 15px; + line-height: 24px; + padding-inline-start: 28px; + position: relative; + padding-inline-end: 32px; +} + +#moz-vpn-server-list-panel { + block-size: var(--panelSize); + max-block-size: var(--panelSize); + min-block-size: var(--panelSize); + overflow-x: hidden; + overflow-y: hidden; +} + +.proxy-panel-title { + line-height: var(--rowHeight); + block-size: var(--rowHeight); + border-block-end: 1px solid var(--panel-separator-color); + position: fixed; + z-index: 1; + background-color: var(--bgColor); + transition: box-shadow 0.5s ease; +} + +.moz-vpn-server-list { + padding-block-start: 4px; + font-size: 15px; + color: var(--grey50); + position: absolute; + inset-block-start: var(--rowHeight); + inset-inline-start: 0; + inset-inline-end: 0; + overflow: scroll; + overflow-x: hidden; + overscroll-behavior: none; + block-size: calc(var(--panelSize) - var(--rowHeight)); + min-block-size: calc(var(--panelSize) - var(--rowHeight)); +} + +#moz-vpn-return { + z-index: 2; +} + +.server-list-item { + display: flex; + flex-direction: column; + position: relative; + background-color: var(--panel-bg-color); +} + +.server-country-flag { + inline-size: 16px; + margin-inline-start: 16px; + margin-block: auto; + pointer-events: none; +} + +.server-country-name { + padding-block: 0; + padding-inline-end: 0; + padding-inline-start: 20px; + font-family: var(--fontMetropolis); + pointer-events: none; + color: var(--text-color-primary); +} + +.server-city-list-item, +.server-city-list-visibility-btn { + block-size: 40px; + border-radius: 4px; + margin-block-start: 4px; + margin-block-end: 4px; + margin-inline-start: 8px; + margin-inline-end: 8px; + inline-size: calc(100% - 16px); +} + +/* We need to temporarily use !important for this button to make sure the right color applies */ +.server-city-list-visibility-btn { + display: flex; + background-color: var(--panel-bg-color) !important; + border-radius: 4px; + border: none; + transition: background-color 0.3s ease; +} + +.server-city-list-visibility-btn:hover { + background-color: var(--button-bg-hover-color-secondary) !important; +} + +.server-city-list-visibility-btn:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +.server-city-list-visibility-btn:active { + background-color: var(--button-bg-active-color-secondary) !important; + outline: none; +} + +.toggle { + background-image: url("/img/arrow-toggle.svg"); + background-position: center center; + background-repeat: no-repeat; + block-size: 24px; + margin-inline-start: 8px; + pointer-events: none; + transform: rotate(-90deg); + transition: transform 0.275s ease-in-out; + inline-size: 24px; +} + +.expanded .toggle { + transform: rotate(0deg); +} + +.server-city-list { + block-size: 0; + opacity: 0; + transition: height 0.3s ease-in-out, opacity 0.3s ease, visibility 0.4s ease; + list-style-type: none; + visibility: hidden; +} + +.expanded .server-city-list { + opacity: 1; + visibility: visible; +} + +.server-city-list-item { + align-items: center; + display: flex; + position: relative; +} + +.server-city-list-item:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +.server-city-list-item:hover { + background-color: var(--button-bg-hover-color-secondary); +} + +.server-city-list-item:active { + background-color: var(--button-bg-active-color-secondary); + outline: none; +} + +.server-city-name { + font-family: var(--fontMetropolisLight); + font-weight: 300; + color: var(--text-color-primary); + padding-inline-start: 18px; +} + +/* ----- controller buttons ------- */ + +.controller { + background-color: var(--button-bg-color-secondary); + color: var(--text-color-primary); + transition: background-color 0.1s ease-in-out; +} + +.btn-return.controller { + background-color: transparent; +} + +.controller:hover { + background-color: var(--button-bg-hover-color-secondary); +} + +.controller:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +.controller:active { + background-color: var(--button-bg-active-color-secondary); + outline: none; +} + +/* WARNING MODAL ---- */ + +.modal-warning { + position: absolute; + inset-block-start: 0; + inset-block-end: 0; + inset-inline-start: 0; + background-color: #42404c89; + z-index: 4; + display: flex; + justify-content: center; +} + +.modal-content { + background-color: var(--bgColor); + inline-size: 80%; + block-size: 80%; + margin-inline: auto; + margin-block: auto; + border-radius: 16px; + box-shadow: 1px 2px 10px 10px var(--bgDark); + padding-block: 20px; + padding-inline: 20px; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} + +/* ----- MozillaVPN Proxy Unavailable-Specific -------- */ + +[data-moz-proxy-warning="proxy-unavailable"] { + position: relative; +} + +.flag-img.proxy-unavailable { + opacity: 0.5; +} + +/* ----- MozillaVPN Status Tooltips -------- */ + +.tooltip { + opacity: 0; + position: absolute; + z-index: 10; + inset-block-start: 24px; + inset-inline-end: -3px; + font-size: 11px; + font-family: var(--fontInter) !important; + font-weight: 300; + color: var(--text-color-primary); + background-color: var(--panel-bg-color); + padding-inline: 8px; + padding-block: 4px; + border-radius: 4px; + box-shadow: 0 0 12px 3px #0000001c; + transform: translateY(-2px); + transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; + min-inline-size: 170px; + line-height: 1.3; + text-align: center; + pointer-events: none; +} + +.tooltip::before { + content: ""; + block-size: 7px; + inline-size: 7px; + border-radius: 1px; + transform: rotate(45deg); + background: inherit; + position: absolute; + inset-block-start: -3px; + inset-inline-end: 9px; +} + +[data-moz-proxy-warning="proxy-unavailable"]:hover .tooltip, +[data-moz-proxy-warning="proxy-unavailable"]:active .tooltip { + opacity: 1; + transform: translateY(0); + transition: opacity 0.2s ease-in-out 0.5s, transform 0.2s ease-in-out 0.5s; +} + +.moz-vpn-logotype.vpn-status-container-list:hover .tooltip { + opacity: 1; + transform: translateY(0); + transition: opacity 0.2s ease-in-out 1s, transform 0.2s ease-in-out 1s; +} + +.tooltip.proxy-unavailable::after { + inset-inline-start: 4px; + inset-inline-end: auto; +} + +.tooltip.proxy-unavailable::before { + inset-inline-start: 12px; +} + +.tooltip.proxy-unavailable { + inset-inline-start: 32px; + inset-block-start: 32px; + padding-inline-start: 32px; + text-align: left; + background-image: var(--iconProxyWarning); + background-size: 24px 24px; + background-repeat: no-repeat; + background-position: 4px 4px; +} + +/* ------------ SERVER LIST RADIO BUTTONS ------------ */ + +.server-radio-btn { + block-size: 20px; + opacity: 0; + position: fixed; + inline-size: 20px; +} + +.server-radio-control { + border-radius: 50%; + border: 2px solid var(--input-border-color); + block-size: 20px; + margin-inline-start: 46px; + pointer-events: none; + position: relative; + inline-size: 20px; +} + +.server-radio-btn:checked + .server-radio-control { + border-color: var(--input-border-focus-color); + border: 2px solid var(--input-border-focus-color); +} + +.server-radio-control::after { + border: 2px solid var(--input-border-color); + border-radius: 50%; + inset-block-end: 0; + content: ""; + block-size: 12px; + inset-inline-start: 0; + margin-inline: auto; + margin-block: auto; + opacity: 0; + position: absolute; + inset-inline-end: 0; + inset-block-start: 0; + inline-size: 12px; +} + +/* Checked radio button rules */ + +.server-radio-btn:checked + .server-radio-control::after { + background-color: var(--input-border-focus-color); + border: 2px solid var(--input-border-focus-color); + opacity: 1; +} + +/* Active state */ +.server-radio-btn:active + .server-radio-control { + border: 2px solid var(--input-border-active-color); +} + +.server-radio-btn:active + .server-radio-control::after { + background-color: var(--input-bg-active-color); + border: 2px solid var(--input-border-active-color); + opacity: 1; +} + +.server-radio-btn:checked:active + .server-radio-control { + border: 2px solid var(--input-border-active-color); +} + +.server-radio-btn:checked:active + .server-radio-control::after { + background-color: var(--input-bg-active-color); + border: 2px solid var(--input-border-active-color); +} + +/* Helpers */ + +.add-bg-color { + background-color: var(--bgColor); + z-index: 2; +} + +.flx-space-between { + justify-content: space-between; +} + +.flx-row { + align-items: center; + display: flex; + flex-direction: row; +} + +/* stylelint-disable */ + +v-padding-hack16 { + block-size: 16px; +} + +v-padding-hack-4 { + block-size: 4px; + inline-size: 100%; +} + +v-padding-hack-footer { + block-size: var(--footerHeight); + inline-size: 100%; +} + +/* stylelint-enable */ + +.flx-col { + display: flex; + flex-direction: column; +} + +fieldset, +.options-header { + padding-block-end: 16px; +} + +.options-header { + display: none; +} + +/* ------ Input ----- */ + +input[type=text] { + block-size: 36px; + border-radius: 4px; + background-color: var(--input-bg-color); + color: var(--text-color-primary); + padding-block: 8px; + padding-inline: 8px; +} + +/* Blue links */ + +.blue-link { + box-sizing: content-box; + text-decoration: none; + align-items: center; + background-color: transparent; + border: none; + color: var(--link-color); + display: flex; + block-size: 24px; + line-height: 24px; + position: relative; + margin-inline: auto; + transition: color 0.1s ease-in-out; +} + +.blue-link, +.hide-show-label { + block-size: 24px; + line-height: 24px; +} + +.blue-link:hover { + color: var(--link-hover-color); +} + +.blue-link:focus, +.blue-link:focus .hide-show-label { + text-decoration: underline; + outline: none; +} + +/* ------------ ------------ ------------ ------------ */ + +/* Panels keep everything together */ +.panel { + display: flex; + flex-direction: column; + justify-content: space-between; + position: relative; + max-block-size: 601px; + background-color: var(--bgColor); + transition: height 0.1s ease-in-out; +} + +.container-panel { + min-block-size: 500px; +} + +.delete-container-panel { + min-block-size: 300px; +} + +.panel.onboarding, +.achievement-panel { + align-items: center; + margin-block: var(--marginInline); + margin-inline: var(--marginInline); + min-block-size: 360px; +} + +.panel.onboarding-panel-8.optional-permissions-disabled { + min-block-size: 420px; + margin-block-end: 0; + margin-inline: 0; +} + +.optional-permissions-disabled #moz-vpn-fw-onboarding-done { + display: none !important; +} + +.moz-vpn-permissions { + padding-block: var(--marginInline); + padding-inline: var(--marginInline); + border-block-start: 1px solid var(--panel-separator-color); + display: none; +} + +.optional-permissions-disabled .moz-vpn-permissions { + display: block; + inline-size: 100%; +} + +.moz-vpn-onboarding-content { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + padding-inline: var(--marginInline); + padding-block-end: var(--marginInline); +} + +.moz-vpn-permissions-copy { + padding-inline: 20px; + font-size: 12px; + margin-block-end: 16px; +} + +.panel-content { + flex: 1; + padding-block-start: 16px; +} + +.panel-footer .button { + align-items: center; + block-size: 32px; + border-radius: 4px; + display: flex; + flex: 1; + justify-content: center; +} + +.panel-footer .button + .button { + margin-inline: 8px; +} + +/* Onboarding styles */ +.onboarding * { + text-align: center; +} + +.onboarding-img { + block-size: 132px; + inline-size: 180px; +} + +.onboarding-title { + color: var(--text-color-primary); + font-size: var(--font-size-heading); + margin-block: 12px; + margin-inline-end: 0; + margin-inline-start: 0; + max-inline-size: 80%; + font-family: var(--fontMetropolis); +} + +.onboarding p { + color: var(--text-normal-color); + font-size: 14px; + margin-block-end: 16px; + max-inline-size: 84%; +} + +.onboarding-button { + align-items: center; + background-color: var(--button-bg-color-primary); + border-radius: 3px; + color: var(--button-text-color-primary); + display: flex; + flex: 0 0 44px; + font-size: 14px; + inline-size: 100%; + justify-content: center; + text-decoration: none; + transition: background-color 75ms; +} + +.half-button-wrapper { + align-items: center; + display: flex; + flex-direction: row; + block-size: 44px; + inline-size: 100%; + font-family: var(--fontMetropolis); +} + +.half-onboarding-button { + align-items: center; + background-color: var(--button-bg-color-primary); + border-radius: 3px; + color: var(--button-text-color-primary); + display: flex; + flex: 1 0 auto; + font-size: 14px; + block-size: 44px; + inline-size: 50%; + justify-content: center; + margin-inline-end: 4px; + text-decoration: none; + transition: background-color 75ms; +} + +.grey-button { + background-color: var(--button-bg-color-secondary); + color: var(--text-color-primary); +} + +.grey-button:hover.half-onboarding-button:hover { + background-color: var(--button-bg-hover-color-secondary); +} + +.grey-button:active.half-onboarding-button:active { + background-color: var(--button-bg-active-color-secondary); +} + +.onboarding-button:hover, +.half-onboarding-button:hover { + background-color: var(--button-bg-hover-color-primary); +} + +.onboarding-button:focus, +.half-onboarding-button:focus { + box-shadow: + 0 0 0 2px var(--button-bg-color-secondary), + 0 0 0 4px var(--button-bg-focus-color-primary); +} + +.onboarding-button:active, +.half-onboarding-button:active { + background-color: var(--button-bg-active-color-primary); +} + +/* Pop buttons are the square shaped buttons used to +manage things like container crud */ +.pop-button { + align-items: center; + block-size: var(--icon-button-size); + cursor: pointer; + display: flex; + flex: 0 0 var(--icon-button-size); + justify-content: center; +} + +.panel-footer a { + text-decoration: none; +} + +.userContext-wrapper { + align-items: center; + display: flex; + flex: 1 1; + transition: background-color 75ms; +} + +.edit-containers-panel .userContext-wrapper { + max-inline-size: calc(var(--overflow-size) + 203px); +} + +.disable-edit-containers { + opacity: var(--inactive-opacity); + pointer-events: none; +} + +.userContext-icon-wrapper { + block-size: var(--icon-button-size); + flex: 0 0 var(--icon-button-size); + margin-inline-start: var(--inline-icon-space-size); +} + +/* .userContext-icon is used natively, Bug 1333811 was raised to fix */ +.usercontext-icon { + background-image: var(--identity-icon); + background-position: center center; + background-repeat: no-repeat; + background-size: 16px; + block-size: 100%; + fill: var(--identity-icon-color); + filter: url('/img/filters.svg#fill'); +} + +.usercontext-icon::before { + transform: scale(1); + transform-origin: center; + transition: fill 0.1s ease-in-out, transform 0.1s ease-in-out; +} + +.radio-container:active .usercontext-icon::before { + transform: scale(0.95); +} + +.mac-icon { + background-image: url('/img/multiaccountcontainer-16.svg'); + background-position: center center; + background-repeat: no-repeat; + background-size: 16px; + block-size: 100%; +} + +.container-panel-row:hover .clickable .usercontext-icon, +.container-panel-row:focus .clickable .usercontext-icon, +.container-panel-row .clickable:focus .usercontext-icon { + background-image: url('/img/container-newtab.svg'); + fill: #979797; + filter: url('/img/filters.svg#fill'); +} + +.container-panel-row .clickable:hover .usercontext-icon, +.container-panel-row .clickable:focus .usercontext-icon { + fill: #0094fb; +} + +/* Panel footer */ +.panel-footer { + align-items: center; + color: #000; + display: flex; + font-size: 13px; + inline-size: 100%; + justify-content: space-between; + padding-block: 8px; + padding-inline: 8px; +} + +#container-info-panel { + block-size: 100vh; +} + +.container-info-has-tabs, +.container-info-tab-row { + align-items: center; + display: flex; + flex: 0 0 28px; + font-size: 14px; + justify-content: flex-start; + margin-block-end: 0; + margin-block-start: 0; + margin-inline-end: 0; + margin-inline-start: 0; + padding-inline-end: 16px; + padding-inline-start: 16px; +} + +/* We disable no-descending-specificity so we can keep [data-theme="dark"] + * rules grouped together at the beginning of the file + */ +/* stylelint-disable no-descending-specificity */ +.container-info-has-tabs img, +.container-info-tab-row img { + block-size: 16px; + flex: 0 0 16px; + margin-inline-end: 4px; +} +/* stylelint-enable no-descending-specificity */ + +.container-info-tab-row img[src=""] { + margin-inline-end: 0; +} + +.delete-container-confirm { + padding-inline-end: 20px; + padding-inline-start: 20px; +} + +.delete-container-confirm-title { + color: var(--text-color-primary); + font-size: var(--font-size-heading); +} + +#edit-sites-assigned h3 { + font-size: 14px; + font-weight: normal; + padding-block-end: 6px; + padding-block-start: 6px; + padding-inline-end: 16px; + padding-inline-start: 16px; +} + +#edit-sites-assigned .hostname .subdomain:hover { + text-decoration: underline; +} + +#edit-sites-assigned .hostname .subdomain.wildcardSubdomain { + opacity: 0.2; +} + +.assigned-sites-list > div { + display: flex; + padding-block-end: 6px; + padding-block-start: 6px; +} + +.assigned-sites-list > div > .icon { + margin-inline-end: 10px; +} + +.assigned-sites-list > div > .hostname { + flex: 1; +} + +.radio-choice > .radio-container { + align-items: center; + block-size: 32px; + display: flex; + justify-content: center; + flex: 0 0 calc(100% / var(--icon-fit)); +} + +.radio-choice > .radio-container > label { + background: none; + block-size: 23px; + border: 0; + border-radius: 50%; + filter: none; + inline-size: 23px; + margin-block-end: 0; + margin-block-start: 0; + margin-inline-end: 0; + margin-inline-start: 0; + padding-block-end: 0; + padding-block-start: 0; + padding-inline-end: 0; + padding-inline-start: 0; +} + +.radio-choice > .radio-container > label:hover { + background-color: var(--usercontext-bg-hover-color); +} + +.radio-choice > .radio-container > label:active { + background-color: var(--usercontext-bg-active-color); +} + +.radio-choice > .radio-container > label::before { + background-color: unset; + background-image: var(--identity-icon); + background-position: center; + background-repeat: no-repeat; + background-size: 16px; + block-size: 23px; + border: none; + content: ""; + display: block; + fill: var(--identity-icon-color); + filter: url('/img/filters.svg#fill'); + inline-size: 23px; + position: relative; +} + +.radio-choice > .radio-container > [type="radio"] { + -moz-appearance: none; + display: inline; + opacity: 0; + position: absolute; + margin-block: auto; + margin-inline: auto; +} + +.radio-choice > .radio-container > [type="radio"]:checked + label { + background-color: var(--usercontext-bg-focus-color); + border-radius: 100%; +} + +/* When focusing the element add a thin blue highlight to match input fields. This gives a distinction to other selected radio items */ +.radio-choice > .radio-container > [type="radio"]:focus + label { + outline: solid 1px var(--input-border-focus-color); + -moz-outline-radius: 100%; +} + +.edit-container-panel fieldset { + background: none; + border: none; + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + +#edit-container-choose-color { + justify-content: space-between; +} + +.edit-container-panel input[type="text"] { + inline-size: 100%; + margin-inline: 4px; +} + +input[type="text"]:focus { + /* Both a border and box-shadow of 1px are needed because using a 2px border + * would redraw the input 1px farther to the left. + */ + border: solid 1px var(--input-border-focus-color); + box-shadow: 0 0 0 1px var(--input-border-focus-color); + outline: none; +} + +.edit-container-panel legend, +.options-header { + margin-inline: 4px; + flex: 1 0; +} + +/* Achievement panel elements */ +.share-ctas { + padding-block-end: 0.5em; + padding-block-start: 0.5em; + padding-inline-end: 0.5em; + padding-inline-start: 0.5em; + text-align: center; +} + +.cta-link { + text-decoration: none; +} + +.cta { + color: #fff; + font-size: 0.7em; + font-weight: bold; + margin-block-end: 0.4em; + margin-block-start: 0.4em; + margin-inline-end: 0.4em; + margin-inline-start: 0.4em; + padding-block-end: 0.5em; + padding-block-start: 0.5em; + padding-inline-end: 0.5em; + padding-inline-start: 0.5em; + text-transform: uppercase; +} + +.cta-icon { + block-size: 18px; + padding-inline-end: 0.5em; + vertical-align: middle; +} + +.fb-share-cta { + background: #375496; +} + +.fb-share-cta .cta-icon { + margin-block-start: -5px; +} + +.tweet-cta { + background: #37bae7; +} + +.amo-rate-cta { + background: #0f1126; +} + +h3.title { + block-size: 48px; + color: var(--text-color-primary); + font-family: var(--fontMetropolis); + font-size: 14px; + font-weight: bold; + inline-size: 100%; + letter-spacing: -0.1px; + line-height: 48px; + text-align: center; +} + +.menu { + border-style: none; + inline-size: 100%; + padding-block: 8px; + padding-inline: 8px; +} + +.menu-item { + align-items: center; + block-size: 32px; + border-radius: 4px; + cursor: pointer; + display: flex; + inline-size: 100%; + line-height: var(--menuItemHeight); +} + +.menu-text { + color: var(--text-color-primary); + display: flex; + flex: 1; +} + +.menu-item td { + align-items: center; + display: flex; + inline-size: 100%; + padding-inline: 8px; +} + +.menu-item.drag-over td { + border-block-start: 2px solid var(--panel-separator-color); +} + +.disabled-menu-item { + cursor: default; + font-style: italic; + opacity: 0.4; +} + +.hover-highlight { + transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out; +} + +.hover-highlight:hover { + background-color: var(--menu-bg-hover-color); +} + +.hover-highlight:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +.hover-highlight:active { + background-color: var(--menu-bg-active-color); + outline: none; +} + +.menu-item-name { + display: flex; + inline-size: calc(100% - 40px); + max-inline-size: 260px; + cursor: default; +} + +/* We disable no-descending-specificity so we can keep [data-theme="dark"] + * rules grouped together at the beginning of the file + */ +/* stylelint-disable no-descending-specificity */ +.menu-icon { + display: block; + block-size: 16px; + inline-size: 23px; + margin-block-end: auto; + margin-block-start: auto; + margin-inline-end: 8px; + text-align: center; +} + +/* Maintain 1:1 square ratio for favicons of websites added to a specific container */ +#edit-sites-assigned .menu-icon, +#container-info-table .menu-icon { + inline-size: 16px; +} +/* stylelint-enable no-descending-specificity */ + +.menu-right-float { + text-align: right; + margin-inline-start: auto; + margin-inline-end: 0; + display: flex; + justify-content: flex-end; + align-items: center; + padding-inline-start: 16px; +} + +.container-count { + opacity: 0.7; + text-align: center; + min-inline-size: 24px; + margin-inline-end: 4px; +} + +.menu-arrow { + align-items: center; + display: flex; + justify-content: flex-end; + block-size: 24px; + text-align: center; +} + +/* We disable no-descending-specificity so we can keep [data-theme="dark"] + * rules grouped together at the beginning of the file + */ +/* stylelint-disable no-descending-specificity */ +.menu-arrow img { + block-size: 24px; + inline-size: 12px; + padding-block-end: 2px; + padding-block-start: 2px; + padding-inline-end: 2px; + padding-inline-start: 2px; + opacity: 0.9; +} +/* stylelint-enable no-descending-specificity */ + +hr { + border: 0; + border-block-start: 1px solid var(--panel-separator-color); + display: block; +} + +.sub-header-wrapper { + margin-block-start: 12px; + padding-inline: 16px; +} + +.sub-header { + color: var(--text-color-primary); + block-size: 24px; + line-height: 24px; + padding-block-end: 0; + padding-block-start: 0; + font-family: var(--fontInterMedium); +} + +.edit-form { + color: var(--text-color-primary); + flex: 1; + padding-block-end: 16px; + padding-block-start: 16px; + padding-inline-end: 16px; + padding-inline-start: 16px; +} + +.bottom-btn { + block-size: 32px; + border-radius: 4px; + color: var(--text-color-primary); + cursor: pointer; + font-family: var(--fontMetropolis); + font-size: 14px; + inline-size: calc(100% - 16px); + inset-block-end: 0; + line-height: 32px; + margin-block: 8px; + margin-inline: 8px; + padding-inline: 8px; + pointer-events: all; + position: absolute; + text-align: center; +} + +.delete-btn { + background-color: var(--button-destructive-bg-color); + block-size: 32px; + border: none; + border-radius: 4px; + color: var(--button-destructive-text-color); + cursor: default; + display: flex; + justify-content: center; + line-height: 32px; + margin-block: 8px; + margin-inline: 8px; + pointer-events: all; +} + +.alert-text { + font-family: var(--fontMetropolis); + cursor: pointer; + text-align: center; +} + +.alert-text:hover { + background-color: var(--button-destructive-bg-hover-color); +} + +.alert-text:focus { + outline: 2px solid var(--button-destructive-bg-focus-color); + outline-offset: 2px; +} + +.alert-text:active { + background-color: var(--button-destructive-bg-active-color); + outline: none; +} + +.btn-return.arrow-left { + background-image: var(--iconArrowLeft); + border: 0; + cursor: pointer; + inset-block-start: 8px; + inset-inline-start: 8px; + position: absolute; + z-index: 2; + block-size: 32px; + inline-size: 32px; + background-repeat: no-repeat; + border-radius: 4px; + background-position: center center; +} + +input { + border: solid 1px var(--input-border-color); + border-radius: 4px; +} + +.form-header { + padding-block-end: 0; + padding-block-start: 0; + padding-inline-end: 0; + padding-inline-start: 0; +} + +.edit-container-panel-name-input { + color: var(--text-color-primary); + block-size: 32px; +} + +.container-options { + block-size: 24px; + margin-inline: 4px; + display: flex; + justify-content: space-between; +} + +.site-isolation { + inset-block-end: auto; +} + +.options-label { + cursor: pointer; + pointer-events: none; +} + +.info-icon { + cursor: pointer; + block-size: 32px; + inline-size: 32px; + inset-block-start: 8px; + position: absolute; + inset-inline-end: 8px; + text-align: center; + text-decoration: none; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; +} + +.info-icon:hover { + background-color: var(--button-bg-hover-color-secondary); +} + +.info-icon:focus { + outline: 2px solid var(--button-bg-focus-color-primary); + outline-offset: 2px; +} + +.info-icon:active { + background-color: var(--button-bg-active-color-secondary); + outline: none; +} + +.info-icon-alert::after { + block-size: 12px; + inline-size: 12px; + background-color: var(--badge-destructive-bg-color); + content: "1"; + border-radius: 50%; + position: absolute; + inset-block-start: 2px; + inset-inline-end: 2px; + box-shadow: 0 0 1px #00000075; + font-size: 8px; + color: var(--badge-destructive-text-color); + display: flex; + align-items: center; + justify-content: center; + font-weight: bolder; +} + +.delete-warning { + padding-block-end: 8px; + padding-block-start: 8px; + padding-inline-end: 0; + padding-inline-start: 0; +} + +/* We disable no-descending-specificity so we can keep [data-theme="dark"] + * rules grouped together at the beginning of the file + */ +/* stylelint-disable no-descending-specificity */ +.trash-button { + display: inline-block; + block-size: 20px; + inline-size: 20px; + margin-block-end: 4px; + margin-block-start: 4px; + text-align: center; +} + +tr > td > .trash-button { + display: none; +} + +tr:hover > td > .trash-button { + display: block; +} + +.move-button { + cursor: move; + display: inline-block; +} + +.move-button > img { + block-size: 16px; +} +/* stylelint-enable no-descending-specificity */ + +/* ----- Permissions Overlay ---------- */ + +#advanced-proxy-settings-panel, +.advanced-proxy-panel-content { + position: absolute; + inset-block: 0; + inset-inline: 0; +} + +.permissions-overlay { + position: absolute; + inset-inline: 0 0; + inset-block-start: 40px; + inset-block-end: 0; + justify-content: center; + align-content: center; + flex-direction: column; + background-color: var(--panel-bg-color); + padding-block: 2.25rem; + padding-inline: 2.25rem; + display: none; +} + +#enable-proxy-permissions { + text-align: center; + font-family: var(--fontMetropolis); + font-size: 14px; + margin-block-start: 1rem; +} + +/* OVERFLOW MENU */ + +.overflow body, +.overflow html { + inline-size: 100%; +} + +.overflow .container-panel { + min-block-size: 100%; +} + +.overflow .panel.onboarding { + margin-block: auto; +} diff --git a/src/update.json b/src/update.json index 9a0dffc..cbb6644 100644 --- a/src/update.json +++ b/src/update.json @@ -3,9 +3,9 @@ "@testpilot-containers-wildcard": { "updates": [ { - "version": "8.0.7.7", + "version": "8.0.7.8", "browser_specific_settings": { "gecko": { "strict_min_version": "91.1.0" } }, - "update_link": "https://github.com/BPower0036/multi-account-containers/releases/download/8.0.7.7/multi_account_containers_wildcard-8.0.7.7-fx.xpi" + "update_link": "https://github.com/BPower0036/multi-account-containers/releases/download/8.0.7.8/multi_account_containers_wildcard-8.0.7.8-fx.xpi" } ] }