diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 541c511..91eea31 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -15,4 +15,4 @@ # custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] github: [black7375] -ko_fi: [black7375] +ko_fi: black7375 diff --git a/.github/actions/node-setup/action.yml b/.github/actions/node-setup/action.yml index f0f138e..efe3547 100644 --- a/.github/actions/node-setup/action.yml +++ b/.github/actions/node-setup/action.yml @@ -1,18 +1,23 @@ name: "Setup" +description: "Yarn cache action" runs: using: "composite" steps: + - name: Corepack enable + run: corepack enable + shell: bash + # https://github.com/actions/cache/blob/main/examples.md#node---yarn # https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ - name: Get yarn cache directory path id: yarn-cache-dir-path - run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT shell: bash - name: Node cache id: node-cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ${{ steps.yarn-cache-dir-path.outputs.dir }} @@ -22,5 +27,5 @@ runs: ${{ runner.os }}-node- - name: Package Install - run: yarn install + run: yarn install --immutable shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 853e83f..d2e79f9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup uses: ./.github/actions/node-setup diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bc619ec..4545552 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,7 +7,7 @@ jobs: sync-branches: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -42,17 +42,17 @@ jobs: - mode: "STANDARD" name: "Lepton-Proton-Style" branch: "proton-style" - - mode: "ESR" - name: "ESR-Lepton" + - mode: "LegacyV117" + name: "LegacyV117-Lepton" branch: "master" - - mode: "ESR" - name: "ESR-Lepton-Photon-Style" + - mode: "LegacyV117" + name: "LegacyV117-Lepton-Photon-Style" branch: "photon-style" - - mode: "ESR" - name: "ESR-Lepton-Proton-Style" + - mode: "LegacyV117" + name: "LegacyV117-Lepton-Proton-Style" branch: "proton-style" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ matrix.branch }} @@ -75,8 +75,8 @@ jobs: rm css/leptonChromeESR.css rm css/leptonContentESR.css - - name: Processing for ESR - if: matrix.mode == 'ESR' + - name: Processing for LegacyV117 + if: matrix.mode == 'LegacyV117' run: | sed -i "s/\.css/ESR\.css/g" userChrome.css sed -i "s/\.css/ESR\.css/g" userContent.css diff --git a/.gitignore b/.gitignore index e79a5cb..bc286c1 100644 --- a/.gitignore +++ b/.gitignore @@ -115,7 +115,7 @@ dist # Zero install # .pnp.* # If not zero install .yarn/* -!.yarn/cache +.yarn/cache !.yarn/patches !.yarn/plugins !.yarn/releases diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 0000000..3186f3f --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/CREDITS b/CREDITS index 24c1a9c..d7b8fbf 100644 --- a/CREDITS +++ b/CREDITS @@ -28,7 +28,8 @@ W: https://github.com/zapSNH ---------- Sponsors -N: Private sponsors - 4 +N: Private sponsors - 5 +- https://ko-fi.com/home/coffeeshop?txid=be854d98-0856-48a6-8ec2-3f2a42f0b9d0 N: Alessandro Rubino W: https://github.com/Babbiorsetto @@ -37,9 +38,18 @@ N: Alex Besogonov E: Alex.Besogonov@gmail.com W: https://github.com/Cyberax +N: aslam karachiwala +W: https://github.com/akwala + N: AuRiMaS666 W: https://github.com/AuRiMaS666 +N: BrowserWorks +W: https://github.com/BrowserWorks + +N: Christoph Mewes +W: https://github.com/xrstf + N: Duncanyoyo1 W: https://ko-fi.com/duncanyoyo1 @@ -64,6 +74,9 @@ W: https://github.com/kanlukasz N: Mike-Kennelly W: https://github.com/Mike-Kennelly +N: Minithra +W: https://Ko-fi.com/home/coffeeshop?txid=a84c4838-f0e8-45b4-8b61-46684697e9b2&mode=public&img=ogsomeoneboughtme + N: nikkehtine E: nikkehtine@int.pl W: https://github.com/nikkehtine @@ -73,12 +86,18 @@ W: https://www.oss.kr/ N: Safira +N: Sunghyun Cho +W: https://github.com/anaclumos + N: Ygg01 W: https://github.com/Ygg01 N: ZachKnife1 W: https://github.com/ZachKnife1 +N: Zachary Schuessler +W: https://github.com/zschuessler + ---------- Contributors @@ -134,6 +153,10 @@ N: hellojaccc E: kim@taekyeong.me W: https://github.com/hellojaccc +N: irhdevel +E: irihi.design@gmail.com +W: https://github.com/irhdevel + N: James Upjohn E: jammehcow@jammehcow.co.nz W: https://github.com/jammehcow @@ -151,6 +174,9 @@ N: menndouyukkuri E: menndoukusagari@gmail.com W: https://github.com/menndouyukkuri +N: mid-kid +W: https://github.com/mid-kid + N: Mizuki W: https://github.com/MagicalDrizzle diff --git a/README.org b/README.org index b707874..5c6029a 100644 --- a/README.org +++ b/README.org @@ -200,23 +200,27 @@ Thanks to all sponsors & contributors to this project for providing help and dev *Sponsors* [[https://www.oss.kr/][https://user-images.githubusercontent.com/25581533/203210367-9f2eed69-666a-4218-acde-128892aa09d8.png]] -[[https://github.com/ojaha065][@@html:@@]] -[[https://github.com/DPS0340][@@html:@@]] +[[https://github.com/BrowserWorks][@@html:@@]] +[[https://github.com/ojaha065][@@html:@@]] +[[https://github.com/DPS0340][@@html:@@]] [[https://github.com/ZachKnife1][@@html:@@]] -[[https://github.com/kanlukasz][@@html:@@]] -[[https://github.com/nikkehtine][@@html:@@]] -[[https://github.com/Babbiorsetto][@@html:@@]] -[[https://github.com/Mike-Kennelly][@@html:@@]] +[[https://github.com/kanlukasz][@@html:@@]] +[[https://github.com/nikkehtine][@@html:@@]] +[[https://github.com/Babbiorsetto][@@html:@@]] +[[https://github.com/Mike-Kennelly][@@html:@@]] [[https://github.com/Cyberax][@@html:@@]] [[https://github.com/AuRiMaS666][@@html:@@]] [[https://github.com/firefox9067][@@html:@@]] [[https://github.com/Ygg01][@@html:@@]] [[https://github.com/engelju][@@html:@@]] +[[https://github.com/xrstf][@@html:@@]] +[[https://github.com/akwala][@@html:@@]] - A donation was received on [[https://ko-fi.com/black7375][Ko-Fi]] - [[https://ko-fi.com/home/coffeeshop?txid=97e5fa0d-c73e-4308-a2fd-6b44b08cd828][Safira]] - - [[https://ko-fi.com/duncanyoyo1][https://ko-fi.com/duncanyoyo1]] -- Private sponsors: 4 + - [[https://ko-fi.com/duncanyoyo1][duncanyoyo1]] + - [[https://ko-fi.com/home/coffeeshop?txid=a84c4838-f0e8-45b4-8b61-46684697e9b2][Minithra]] +- Private sponsors: 5 *Contributors* diff --git a/__tests__/mode.test.scss b/__tests__/mode.test.scss index a02856e..52c1062 100644 --- a/__tests__/mode.test.scss +++ b/__tests__/mode.test.scss @@ -29,11 +29,11 @@ } @include test("support pref") { - @include mode.SUPPORT_PREF; + @include mode.SUPPORT_BOOL_PREF; @include assert { @include output { - @if mode.isMediaPref() { + @if mode.isMediaBoolPref() { @include example; } } @@ -44,11 +44,11 @@ } @include test("media pref") { - @include mode.MEDIA_PREF; + @include mode.MEDIA_BOOL_PREF; @include assert { @include output { - @if mode.isMediaPref() { + @if mode.isMediaBoolPref() { @include example; } } @@ -86,11 +86,11 @@ } @include test("support pref") { - @include mode.SUPPORT_PREF; + @include mode.SUPPORT_BOOL_PREF; @include assert { @include output { - @if mode.isMediaPref() { + @if mode.isMediaBoolPref() { @include example; } } @@ -101,11 +101,11 @@ } @include test("media pref") { - @include mode.MEDIA_PREF; + @include mode.MEDIA_BOOL_PREF; @include assert { @include output { - @if mode.isMediaPref() { + @if mode.isMediaBoolPref() { @include example; } } diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index 0290ecb..425b09c 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -137,7 +137,7 @@ @include test-module("Native Menu Option - Standard [mix]") { @include mode.STANDARD; - @include mode.SUPPORT_PREF; + @include mode.SUPPORT_BOOL_PREF; @include test("simple") { @include assert { @@ -256,7 +256,7 @@ @include test-module("Native Menu Option - MediaPref [mix]") { @include mode.STANDARD; - @include mode.MEDIA_PREF; + @include mode.MEDIA_BOOL_PREF; @include test("simple") { @include assert { diff --git a/__tests__/one_liner.test.scss b/__tests__/one_liner.test.scss index 77fec07..5155f68 100644 --- a/__tests__/one_liner.test.scss +++ b/__tests__/one_liner.test.scss @@ -51,7 +51,7 @@ @include test-module("One Liner - MediaPref [mix]") { @include mode.STANDARD; - @include mode.MEDIA_PREF; + @include mode.MEDIA_BOOL_PREF; @include test("content") { @include assert { @@ -167,9 +167,9 @@ } } -@include test-module("One Liner for Responsive - MEDIA_PREF [mix]") { +@include test-module("One Liner for Responsive - MEDIA_BOOL_PREF [mix]") { @include mode.STANDARD; - @include mode.MEDIA_PREF; + @include mode.MEDIA_BOOL_PREF; @include test("Tabs on bottom") { @include assert { diff --git a/__tests__/option.test.scss b/__tests__/option.test.scss index b47e8df..7a8bb74 100644 --- a/__tests__/option.test.scss +++ b/__tests__/option.test.scss @@ -81,7 +81,7 @@ @include test-module("If exist pref - Standard [mix]") { @include mode.STANDARD; - @include mode.SUPPORT_PREF; + @include mode.SUPPORT_BOOL_PREF; @include test("simple") { @include assert { @@ -156,9 +156,9 @@ } } -@include test-module("If exist pref - MediaPref [mix]") { +@include test-module("If exist pref - MediaBoolPref [mix]") { @include mode.STANDARD; - @include mode.MEDIA_PREF; + @include mode.MEDIA_BOOL_PREF; @include test("simple") { @include assert { @@ -233,6 +233,83 @@ } } +@include test-module("If exist pref - Media [mix]") { + @include mode.STANDARD; + @include mode.MEDIA_PREF; + + @include test("simple") { + @include assert { + @include output { + @include option.Option("userChrome.tab.photon") { + @include example; + } + } + @include expect { + @#{media} #{'-moz-pref("userChrome.tab.photon")'} { + @include example; + } + } + } + } + + @include test("multiple") { + @include assert { + @include output { + @include option.Option("userChrome.tab.photon", "userChrome.padding.photon") { + @include example; + } + } + @include expect { + @#{media} #{'-moz-pref("userChrome.tab.photon") or -moz-pref("userChrome.padding.photon")'} { + @include example; + } + } + } + } + + @include test("simple `and`") { + @include assert { + @include output { + @include option.Option("userChrome.tab.photon" "userChrome.padding.photon") { + @include example; + } + } + @include expect { + @#{media} #{'(-moz-pref("userChrome.tab.photon") and -moz-pref("userChrome.padding.photon"))'} { + @include example; + } + } + } + } + + @include test("multiple `and`") { + @include assert { + @include output { + @include option.Option("userChrome.tab.photon" "userChrome.padding.photon", "userChrome.tab.box_shadow") { + @include example; + } + @include option.Option("userChrome.tab.photon" "userChrome.padding.photon", "userChrome.tab.box_shadow", "userChrome.icon.panel_full") { + @include example; + } + @include option.Option("userChrome.tab.photon" "userChrome.padding.photon", "userChrome.tab.box_shadow" "userChrome.icon.panel_full") { + @include example; + } + } + @include expect { + @#{media} #{'(-moz-pref("userChrome.tab.photon") and -moz-pref("userChrome.padding.photon")) or -moz-pref("userChrome.tab.box_shadow")'} { + @include example; + } + @#{media} #{'(-moz-pref("userChrome.tab.photon") and -moz-pref("userChrome.padding.photon")) or -moz-pref("userChrome.tab.box_shadow") or -moz-pref("userChrome.icon.panel_full")'} { + @include example; + } + @#{media} #{'(-moz-pref("userChrome.tab.photon") and -moz-pref("userChrome.padding.photon")) or (-moz-pref("userChrome.tab.box_shadow") and -moz-pref("userChrome.icon.panel_full"))'} { + @include example; + } + } + } + } +} + @include test-module("If not exist pref - ESR [mx]") { @include mode.ESR; @@ -312,7 +389,7 @@ @include test-module("If not exist pref - Standard [mx]") { @include mode.STANDARD; - @include mode.SUPPORT_PREF; + @include mode.SUPPORT_BOOL_PREF; @include test("simple") { @include assert { @@ -372,9 +449,9 @@ } } -@include test-module("If not exist pref - MediaPref [mx]") { +@include test-module("If not exist pref - MediaBoolPref [mx]") { @include mode.STANDARD; - @include mode.MEDIA_PREF; + @include mode.MEDIA_BOOL_PREF; @include test("simple") { @include assert { @@ -433,3 +510,65 @@ } } } + +@include test-module("If not exist pref - MediaPref [mx]") { + @include mode.STANDARD; + @include mode.MEDIA_PREF; + + @include test("simple") { + @include assert { + @include output { + @include option.NotOption("userChrome.tab.photon") { + @include example; + } + } + @include expect { + @#{media} #{'not -moz-pref("userChrome.tab.photon")'} { + @include example; + } + } + } + } + + @include test("multiple") { + @include assert { + @include output { + @include option.NotOption("userChrome.tab.photon", "userChrome.padding.photon") { + @include example; + } + } + @include expect { + @#{media} #{'(not -moz-pref("userChrome.tab.photon")) or (not -moz-pref("userChrome.padding.photon"))'} { + @include example; + } + } + } + } + + @include test("multiple `and`") { + @include assert { + @include output { + @include option.NotOption("userChrome.tab.photon" "userChrome.padding.photon", "userChrome.tab.box_shadow") { + @include example; + } + @include option.NotOption("userChrome.tab.photon" "userChrome.padding.photon", "userChrome.tab.box_shadow", "userChrome.icon.panel_full") { + @include example; + } + @include option.NotOption("userChrome.tab.photon" "userChrome.padding.photon", "userChrome.tab.box_shadow" "userChrome.icon.panel_full") { + @include example; + } + } + @include expect { + @#{media} #{'((not -moz-pref("userChrome.tab.photon")) and (not -moz-pref("userChrome.padding.photon"))) or (not -moz-pref("userChrome.tab.box_shadow"))'} { + @include example; + } + @#{media} #{'((not -moz-pref("userChrome.tab.photon")) and (not -moz-pref("userChrome.padding.photon"))) or (not -moz-pref("userChrome.tab.box_shadow")) or (not -moz-pref("userChrome.icon.panel_full"))'} { + @include example; + } + @#{media} #{'((not -moz-pref("userChrome.tab.photon")) and (not -moz-pref("userChrome.padding.photon"))) or ((not -moz-pref("userChrome.tab.box_shadow")) and (not -moz-pref("userChrome.icon.panel_full")))'} { + @include example; + } + } + } + } +} \ No newline at end of file diff --git a/css/leptonChrome.css b/css/leptonChrome.css index dac3290..2fbb895 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -2,7 +2,7 @@ @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace html url("http://www.w3.org/1999/xhtml"); /** Default Theme - Contrast **************************************************/ -@supports -moz-bool-pref("userChrome.theme.built_in_contrast") { +@media -moz-pref("userChrome.theme.built_in_contrast") { /*= Lightmode - Color darker =================================================*/ :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { @@ -14,7 +14,7 @@ background-color: var(--lwt-accent-color) !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { background-color: var(--lwt-accent-color) !important; @@ -28,7 +28,7 @@ } /** Compatibility Fixes *******************************************************/ /*= Theme - Compatibility ====================================================*/ -@supports -moz-bool-pref("userChrome.compatibility.theme") { +@media -moz-pref("userChrome.compatibility.theme") { /*= Hotfix #98 ===============================================================*/ /* Hidden Tab Panel Padding */ #allTabsMenu-hiddenTabsView .all-tabs-item { @@ -59,7 +59,7 @@ padding-inline-end: var(--arrowpanel-menuitem-padding-inline) !important; } /*= First visible tab margin at maximized #332 ===============================*/ - :root[tabsintitlebar="true"][sizemode="maximized"] #TabsToolbar { + :root:is([tabsintitlebar="true"], [customtitlebar="true"])[sizemode="maximized"] #TabsToolbar { margin-left: -1px; } /*= Disabled menu background color ===========================================*/ @@ -68,7 +68,7 @@ background-color: transparent !important; } /*= Remove Tab Border ========================================================*/ - @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + @media -moz-pref("userChrome.tab.connect_to_window") { /* TARGET: original, photon */ #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) @@ -116,7 +116,7 @@ :root[lwtheme-image] > body { background-size: contain; } - @supports -moz-bool-pref("userChrome.compatibility.covered_header_image") { + @media -moz-pref("userChrome.compatibility.covered_header_image") { :root[lwtheme-image] > body { background-size: cover; } @@ -133,9 +133,18 @@ --tabs-border-color: rgba(0, 0, 0, 0.4); /* Legacy: v96, (0, 0, 0, 0.3) -> (0, 0, 0, 0.4) */ --lwt-tabs-border-color: rgba(0, 0, 0, 0.4); } + #main-window { + background-color: WindowFrame !important; + } + :root[lwtheme][lwtheme-image] #customization-container { + background-image: none !important; + } #customization-container { background-color: transparent !important; /* Original: color-mix(in srgb, -moz-dialog 85%, white) */ } + :root:not([lwtheme]) #customization-container { + background-color: var(--toolbar-non-lwt-bgcolor) !important; + } /*= Findbar Border Color =====================================================*/ html|input.findbar-textbox { border: 1px solid var(--input-border-color, var(--toolbar-field-border-color, ThreeDShadow)) !important; /* Original: 1px solid var(--input-border-color, var(--toolbar-field-border-color)) */ @@ -158,7 +167,7 @@ padding-inline-start: var(--tab-overflow-pinned-tabs-width) !important; margin-inline-start: 0 !important; } - @supports -moz-bool-pref("userChrome.tab.static_separator") { + @media -moz-pref("userChrome.tab.static_separator") { #tabbrowser-tabs { border-inline-start: none !important; padding-inline-start: var(--tab-overflow-pinned-tabs-width) !important; @@ -174,14 +183,18 @@ align-items: center !important; } /*= Inactive transparent #882 ================================================*/ - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; color: color-mix(in srgb, currentColor calc(var(--inactive-titlebar-opacity, 0.75) * 100%), transparent) !important; --inactive-toolbarbutton-icon-fill-opacity: calc( var(--toolbarbutton-icon-fill-opacity, 1) * var(--inactive-titlebar-opacity, 0.75) ); } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .toolbarbutton-icon { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .toolbarbutton-icon, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .toolbarbutton-icon, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .toolbarbutton-icon { fill-opacity: var(--inactive-toolbarbutton-icon-fill-opacity, 1); } /*= Tabpreviw transparent #890 ===============================================*/ @@ -193,24 +206,36 @@ --arrowpanel-color ) !important; /* Original: var(--tab-selected-textcolor, var(--toolbar-color)) */ } + /*= Design token =============================================================*/ + :root, + :host { + --button-color: var(--button-text-color); + --button-bgcolor: var(--button-background-color); + --button-hover-bgcolor: var(--button-background-color-hover); + --button-active-bgcolor: var(--button-background-color-active); + --button-primary-color: var(--button-text-color-primary); + --button-primary-bgcolor: var(--button-background-color-primary); + --button-primary-hover-bgcolor: var(--button-background-color-primary-hover); + --button-primary-active-bgcolor: var(--button-background-color-primary-active); + } } /*= OS - Compatibility =======================================================*/ -@supports -moz-bool-pref("userChrome.compatibility.os") { +@media -moz-pref("userChrome.compatibility.os") { /*= Windows 10 - Top border of accent color at ESR #358 ======================*/ @media (-moz-platform: windows) { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top: 0.5px solid rgb(47, 47, 47) !important; } - :root[sizemode="normal"][tabsintitlebar]:-moz-window-inactive #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]):-moz-window-inactive #navigator-toolbox { border-top-color: rgb(57, 57, 57) !important; } } @media (-moz-platform: windows) and (-moz-windows-accent-color-in-titlebar) { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top-color: ActiveBorder !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + @media -moz-pref("userChrome.compatibility.accent_color") { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top-color: -moz-accent-color !important; } } @@ -225,28 +250,6 @@ color: inherit !important; /* Original: -moz-menubarhovertext */ background-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* Original: -moz-menuhover */ } - /*= Linux - Titlebar button at lwtheme =====================================*/ - @supports not -moz-bool-pref("userChrome.compatibility.os.linux_non_native_titlebar_button") { - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button { - appearance: none !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button > .toolbarbutton-icon { - appearance: auto !important; - width: unset !important; - height: unset !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-min, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-max, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-restore, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-close { - list-style-image: none !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button:hover:active { - background-color: unset !important; - color: unset !important; - } - } } /*= Linux - Light System Default Theme's Selected Tab ========================*/ @media (-moz-gtk-csd-available) and (prefers-color-scheme: light) { @@ -274,46 +277,50 @@ } /*= Titlebar Container Size at maximized #384 ================================*/ @media (-moz-platform: windows) { - @supports not -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { - :root[tabsintitlebar] #titlebar { + @media not -moz-pref("userChrome.compatibility.os.windows_maximized") { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar { /* -moz-default-appearance: -moz-window-titlebar */ appearance: none !important; } } - @supports -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { - :root[tabsintitlebar][sizemode="maximized"] #titlebar { + @media -moz-pref("userChrome.compatibility.os.windows_maximized") { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #titlebar { appearance: none !important; padding-top: 8px; } } } /*= Windows - Classic Theme #734 =============================================*/ + /*= MacOS Fullscreen clipping #1045 ==========================================*/ + :root[sizemode="fullscreen"][macOSNativeFullscreen]:not([inDOMFullscreen="true"]) #TabsToolbar { + min-height: var(--tab-min-height, fit-content) !important; + } } /*= Others - Compatibility ===================================================*/ -@supports -moz-bool-pref("userChrome.compatibility.panel_cutoff") { +@media -moz-pref("userChrome.compatibility.panel_cutoff") { #appMenu-popup panelview { width: 24.5em !important; /* can modify panel width, Original: 22.5em */ } } -@supports -moz-bool-pref("userChrome.compatibility.navbar_top_border") { +@media -moz-pref("userChrome.compatibility.navbar_top_border") { #nav-bar { box-shadow: none !important; } } /** Theme *********************************************************************/ /*= System Default Theme =====================================================*/ -@supports -moz-bool-pref("userChrome.theme.system_default") { +@media -moz-pref("userChrome.theme.system_default") { /*= Common - URL Bar focus color =============================================*/ @media (-moz-windows-accent-color-in-titlebar), (-moz-gtk-csd-available) { /* URL Bar */ - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --focus-outline-color: AccentColor !important; } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #urlbar[open] > #urlbar-background, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #urlbar[open] > #urlbar-background { border-color: color-mix( @@ -322,15 +329,15 @@ transparent ) !important; /* Like: --toolbar-field-focus-border-color */ } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + @media -moz-pref("userChrome.compatibility.accent_color") { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --focus-outline-color: -moz-accent-color !important; } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #urlbar[open] > #urlbar-background, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #urlbar[open] > #urlbar-background { border-color: color-mix( @@ -370,7 +377,7 @@ --win-accent-hover-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 27%, AccentColor); --win-accent-active-color: AccentColor; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) { --win-accent-foreground-color: -moz-accent-color-foreground; --win-accent-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 10%, -moz-accent-color); @@ -379,7 +386,7 @@ --win-accent-active-color: -moz-accent-color; } } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + @media -moz-pref("userChrome.compatibility.os.win11") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) { --win-text-color: #1a1a1a; --win-bgcolor: #e8e8e8; @@ -434,7 +441,7 @@ --win-accent-hover-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 5%, AccentColor); --win-accent-active-color: AccentColor; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)), :root[lwt-default-theme-in-dark-mode] { --win-accent-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 20%, -moz-accent-color); @@ -443,7 +450,7 @@ --win-accent-active-color: -moz-accent-color; } } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + @media -moz-pref("userChrome.compatibility.os.win11") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)), :root[lwt-default-theme-in-dark-mode] { --win-bgcolor: #202020; @@ -567,7 +574,7 @@ --download-progress-flare-color: rgba(255, 255, 255, 0.75) !important; --panelview-toolbarbutton-focus-box-shadow: inset 0 0 0 2px var(--focus-outline-color) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)), :root[lwt-default-theme-in-dark-mode] { --tab-line-color: Highlight !important; @@ -593,17 +600,20 @@ } } @media (-moz-platform: windows) { - @supports -moz-bool-pref("userChrome.theme.system_default") { + @media -moz-pref("userChrome.theme.system_default") { @media (-moz-platform: windows) and (-moz-windows-accent-color-in-titlebar) { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --toolbarseparator-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* As default */ } } } } @media (-moz-platform: windows) { - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + @media -moz-pref("userChrome.compatibility.os.win11") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)), :root[lwt-default-theme-in-dark-mode] { --chrome-content-separator-color: var(--win11-chrome-separator-color) !important; @@ -614,7 +624,7 @@ } } @media (-moz-platform: windows) { - @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + @media not -moz-pref("userChrome.tab.color_like_toolbar") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)), :root[lwt-default-theme-in-dark-mode] { --win-proton-tab-selected-bgcolor: color-mix(in srgb, var(--win-bgcolor) 5%, var(--win-component-bgcolor)); @@ -639,7 +649,11 @@ } @media (-moz-platform: windows) { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, - :root[lwt-default-theme-in-dark-mode] #titlebar { + :root[lwt-default-theme-in-dark-mode] #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root[lwt-default-theme-in-dark-mode] #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar, + :root[lwt-default-theme-in-dark-mode] #TabsToolbar { --button-hover-bgcolor: var(--win-sidebar-button-hover-bgcolor); --button-active-bgcolor: var(--win-sidebar-button-hover-active-bgcolor); --toolbarbutton-hover-background: var(--win-sidebar-button-hover-bgcolor); @@ -686,7 +700,8 @@ #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 + #appMenu-fullscreen-button2, + .unified-extensions-item-menu-button ):is(:hover), :root[lwt-default-theme-in-dark-mode] toolbarbutton.subviewbutton:not( @@ -697,7 +712,8 @@ #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 + #appMenu-fullscreen-button2, + .unified-extensions-item-menu-button ):is(:hover) { background-color: var(--win-hover-bgcolor) !important; } @@ -737,6 +753,27 @@ } } @media (-moz-platform: windows) { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root[lwtheme-mozlightdark] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox @@ -768,27 +805,43 @@ /*= Windows10 - Titlebar accent color ========================================*/ @media (-moz-windows-accent-color-in-titlebar) { /* Tab Bar */ - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .titlebar-color, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .titlebar-color { - color: AccentColorText; - background-color: AccentColor; + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .browser-titlebar, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .browser-titlebar { + color: AccentColorText !important; + background-color: AccentColor !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .titlebar-color, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .titlebar-color { - color: -moz-accent-color-foreground; - background-color: -moz-accent-color; + @media -moz-pref("userChrome.compatibility.accent_color") { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .browser-titlebar, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .browser-titlebar { + color: -moz-accent-color-foreground !important; + background-color: -moz-accent-color !important; } } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .toolbar-items, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .toolbar-items { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .toolbar-items, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .toolbar-items { --toolbarbutton-icon-fill: currentColor; --toolbarbutton-hover-background: color-mix(in srgb, AccentColorText 10%, transparent); --toolbarbutton-active-background: color-mix(in srgb, AccentColorText 15%, transparent); } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .toolbar-items, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .toolbar-items { + @media -moz-pref("userChrome.compatibility.accent_color") { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .toolbar-items, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .toolbar-items { --toolbarbutton-hover-background: color-mix(in srgb, -moz-accent-color-foreground 10%, transparent); --toolbarbutton-active-background: color-mix(in srgb, -moz-accent-color-foreground 15%, transparent); } @@ -804,7 +857,7 @@ :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) .urlbarView-url { --urlbar-popup-url-color: AccentColor; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) .urlbarView-url { --urlbar-popup-url-color: -moz-accent-color; } @@ -815,7 +868,7 @@ } } /*= Mac - Default like color =================================================*/ - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)), :root[lwt-default-theme-in-dark-mode] { /* Colors */ @@ -943,7 +996,7 @@ --download-progress-flare-color: rgba(255, 255, 255, 0.75) !important; --panelview-toolbarbutton-focus-box-shadow: inset 0 0 0 2px var(--focus-outline-color) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)), :root[lwt-default-theme-in-dark-mode] { --mac-primary-button-color: -moz-accent-color-foreground; /* or -moz-mac-menutextselect */ @@ -968,7 +1021,7 @@ } } /*- Proton Tab Selected ----------------------------------------------------*/ - @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + @media not -moz-pref("userChrome.tab.color_like_toolbar") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)), :root[lwt-default-theme-in-dark-mode] { --mac-proton-tab-selected-bgcolor: color-mix(in srgb, rgb(255, 255, 255) 20%, -moz-dialog); @@ -985,11 +1038,17 @@ :root[lwt-default-theme-in-dark-mode] #navigator-toolbox { background-color: var(--mac-bgcolor) !important; } - :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar { --mac-hover-bgcolor: ButtonFace; } :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, - :root[lwt-default-theme-in-dark-mode] #titlebar { + :root[lwt-default-theme-in-dark-mode] #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root[lwt-default-theme-in-dark-mode] #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar, + :root[lwt-default-theme-in-dark-mode] #TabsToolbar { --button-hover-bgcolor: var(--mac-hover-bgcolor); --button-active-bgcolor: var(--mac-hover-bgcolor); --toolbarbutton-hover-background: var(--mac-hover-bgcolor); @@ -1033,7 +1092,19 @@ } } /* Hard Coded */ - @supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { + @media -moz-pref("userChrome.tab.color_like_toolbar") { + :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox @@ -1058,7 +1129,7 @@ } } /*= None Native Menu =========================================================*/ -@supports -moz-bool-pref("userChrome.theme.non_native_menu") { +@media -moz-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { :root { /* Override some menu color variables for light browser themes. */ @@ -1188,8 +1259,11 @@ width: unset !important; } .menu-iconic-left .menu-iconic-icon, + .menu-iconic-left .menu-icon, menuitem[type="checkbox"] .menu-iconic-icon, - menuitem[type="radio"] .menu-iconic-icon { + menuitem[type="checkbox"] .menu-icon, + menuitem[type="radio"] .menu-iconic-icon, + menuitem[type="radio"] .menu-icon { appearance: none !important; } } @@ -1218,7 +1292,8 @@ } } @media (-moz-gtk-csd-available) { - menuitem[checked="true"] > .menu-iconic-left { + menuitem[checked="true"] > .menu-iconic-left, + menuitem[checked="true"] > .menu-icon { -moz-context-properties: fill, fill-opacity !important; fill: currentColor !important; fill-opacity: var(--menu-icon-opacity) !important; @@ -1248,7 +1323,7 @@ @media (-moz-gtk-csd-available) { menupopup { /* Disable the default appearance so we can override the native styling. */ - appearance: none !important !important; + appearance: none !important; /* Prevent any background or border around the outside of the shadow. */ background-color: transparent !important; border: none !important; @@ -1275,7 +1350,7 @@ min-width: 0 !important; min-height: 0 !important; } - @supports -moz-bool-pref("userChrome.rounding.square_menupopup") { + @media -moz-pref("userChrome.rounding.square_menupopup") { .menupopup-arrowscrollbox[part*="content"] { border-radius: 0px !important; } @@ -1331,13 +1406,15 @@ } } @media (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic > .menu-iconic-left { + #context-navigation > .menuitem-iconic > .menu-iconic-left, + #context-navigation > .menuitem-iconic > .menu-icon { margin: 0 !important; padding: 0 !important; } } @media (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic > .menu-icon { width: var(--menuitem-min-width) !important; height: 32px !important; padding: 8px 1em !important; @@ -1345,7 +1422,8 @@ } } @media (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-icon { background-color: var(--menuitem-hover-background-color) !important; } } @@ -1353,7 +1431,8 @@ #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-icon { background-color: transparent !important; } } @@ -1395,7 +1474,7 @@ } } /*= Fully Theme Mode =========================================================*/ -@supports -moz-bool-pref("userChrome.theme.proton_color") { +@media -moz-pref("userChrome.theme.proton_color") { /*= Default Colors - Hard Coded ==============================================*/ /* Based on chrome://global/skin/in-content/common.css */ :host, @@ -1578,7 +1657,7 @@ --menu-icon-opacity: var(--dark-menu-icon-opacity); } } - @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media -moz-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { :root { /* Override some menu color variables for light browser themes. */ @@ -1612,7 +1691,7 @@ } } } - @supports -moz-bool-pref("userChrome.theme.proton_color.dark_blue_accent") { + @media -moz-pref("userChrome.theme.proton_color.dark_blue_accent") { @media (prefers-color-scheme: dark) { :host, :root { @@ -1679,7 +1758,7 @@ --panel-banner-item-info-icon-bgcolor: var(--blue-30) !important; --lwt-brighttext-url-color: var(--blue-30) !important; /* Original: as primary bgcolor */ } - @supports -moz-bool-pref("userChrome.decoration.download_panel") { + @media -moz-pref("userChrome.decoration.download_panel") { :root[lwtheme-mozlightdark][lwthemetextcolor="bright"] #downloadsListBox, :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] #downloadsListBox { --button-primary-bgcolor: var(--blue-30); @@ -1689,7 +1768,7 @@ } } } -@supports -moz-bool-pref("userChrome.theme.private") { +@media -moz-pref("userChrome.theme.private") { :root[privatebrowsingmode="temporary"], :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"], :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"], @@ -1808,7 +1887,7 @@ --menu-border-color: #322560 !important; } } -@supports -moz-bool-pref("userChrome.theme.fully_color") { +@media -moz-pref("userChrome.theme.fully_color") { /*== Menu Color ==============================================================*/ html#main-window menupopup:not(.in-menulist) { /* is same as toolbar color https://github.com/mozilla/gecko-dev/blob/master/toolkit/themes/windows/global/global.css#L17-L67 */ @@ -1860,7 +1939,6 @@ > .menu-iconic-icon { background-color: var(--menuitem-hover-background-color) !important; } - html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], html#main-window menupopup #context-navigation @@ -1875,7 +1953,7 @@ --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; } } - @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media -moz-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { html#main-window menupopup:not(.in-menulist) { /* Above FF v105 #466 */ @@ -1907,7 +1985,6 @@ > .menu-iconic-icon { background-color: var(--menuitem-hover-background-color) !important; } - html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], html#main-window menupopup #context-navigation @@ -1987,6 +2064,15 @@ .notification-button:hover:active { background-color: var(--button-active-bgcolor) !important; } + .notification-button.primary { + background-color: var(--button-primary-bgcolor) !important; + } + .notification-button.primary:hover { + background-color: var(--button-primary-hover-bgcolor) !important; + } + .notification-button.primary:hover:active { + background-color: var(--button-primary-active-bgcolor) !important; + } html|button.ghost-button:not(.semi-transparent):enabled:hover { background-color: var(--button-hover-bgcolor) !important; } @@ -2023,8 +2109,8 @@ #editBMPanel_tagsSelector > richlistitem[selected="true"] { background-color: var(--button-active-bgcolor, color-mix(in srgb, currentColor 30%, transparent)) !important; } - #editBMPanel_namePicker, - #editBMPanel_tagsField { + #editBookmarkPanel #editBMPanel_namePicker, + #editBookmarkPanel #editBMPanel_tagsField { --input-bgcolor: var(--arrowpanel-background, Field); --input-color: var(--arrowpanel-color, FieldText); } @@ -2058,7 +2144,7 @@ border-color: AccentColor !important; /* Hard Coded */ outline-color: AccentColor !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { .sidebar-panel:not([lwt-sidebar]) #search-box[focused="true"], body:not([lwt-sidebar]) xul|search-textbox.tabsFilter[focused="true"] { border-color: -moz-accent-color !important; /* Hard Coded */ @@ -2139,7 +2225,7 @@ } } /*= Fully Dark Mode ==========================================================*/ -@supports -moz-bool-pref("userChrome.theme.fully_dark") { +@media -moz-pref("userChrome.theme.fully_dark") { /*= Remove White Flash =======================================================*/ #tabbrowser-tabbox, #tabbrowser-tabpanels, @@ -2210,7 +2296,7 @@ } } /*= Transparent ==============================================================*/ -@supports -moz-bool-pref("userChrome.theme.transparent.frame") { +@media -moz-pref("userChrome.theme.transparent.frame") { @media (-moz-platform: windows), (-moz-gtk-csd-available) { #main-window, #navigator-toolbox-background { @@ -2243,13 +2329,17 @@ :root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { --lwt-accent-color: rgb(45, 36, 91) !important; } - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { --uc-frame-element-background: color-mix(in srgb, var(--lwt-accent-color, Window) 60%, transparent); --toolbarbutton-hover-background: color-mix(in srgb, var(--lwt-accent-color, Window) 85%, transparent); } } @media (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { --toolbarbutton-hover-background: color-mix( in srgb, var(--lwt-accent-color, Window) 40%, @@ -2299,7 +2389,9 @@ --lwt-accent-color: transparent !important; --lwt-text-color: WindowText !important; } - #titlebar .toolbarbutton-1 { + #titlebar .toolbarbutton-1, + #toolbar-menubar .toolbarbutton-1, + #TabsToolbar .toolbarbutton-1 { --toolbarbutton-icon-fill: var(--lwt-text-color) !important; } :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { @@ -2313,7 +2405,7 @@ transform: translateY(-7px) !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { :root:not(:-moz-window-inactive) #navigator-toolbox { background-color: transparent !important; } @@ -2335,11 +2427,11 @@ } } } -@supports -moz-bool-pref("userChrome.theme.transparent.menu") { +@media -moz-pref("userChrome.theme.transparent.menu") { .menupopup-arrowscrollbox[part*="content"] { background: color-mix(in srgb, var(--menu-background-color, Menu) 90%, transparent) !important; } - @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { + @media not -moz-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { html#main-window #mainPopupSet menupopup:not(.in-menulist) { --menu-background-color: Menu !important; @@ -2347,7 +2439,7 @@ } } } -@supports -moz-bool-pref("userChrome.theme.transparent.panel") { +@media -moz-pref("userChrome.theme.transparent.panel") { panel[type="arrow"] { --panel-background: transparent !important; } @@ -2356,7 +2448,7 @@ } } /*= Proton Theme Mode ========================================================*/ -@supports -moz-bool-pref("userChrome.theme.proton_chrome") { +@media -moz-pref("userChrome.theme.proton_chrome") { /*= Proton Commons ===========================================================*/ @-moz-document url("chrome://global/content/commonDialog.xhtml"), url("chrome://pippki/content/editcacert.xhtml"), url("chrome://pippki/content/deletecert.xhtml"), url("chrome://pippki/content/exceptionDialog.xhtml"), url("chrome://mozapps/content/downloads/unknownContentType.xhtml"), url("chrome://global/content/appPicker.xhtml"), url("chrome://browser/content/pageinfo/pageInfo.xhtml") { @@ -2498,7 +2590,7 @@ fill: currentColor !important; color: var(--in-content-primary-button-text-color) !important; background-color: var(--in-content-primary-button-background) !important; - background-image: url("chrome://global/skin/icons/radio.svg") !important; + background-image: url("../icons/radio.svg") !important; border-color: transparent !important; /* Style the button also when printing with "Print Backgrounds" unchecked */ color-adjust: exact !important; @@ -2559,7 +2651,7 @@ color: var(--checkbox-checked-color, AccentColorText) !important; background-color: var(--checkbox-checked-bgcolor, AccentColor) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { .checkbox-check[checked] { color: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !important; @@ -2568,7 +2660,7 @@ checkbox:not([disabled="true"]):hover > .checkbox-check { background-color: var(--checkbox-unchecked-hover-bgcolor, color-mix(in srgb, AccentColor 4%, Field)) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { checkbox:not([disabled="true"]):hover > .checkbox-check { background-color: var( --checkbox-unchecked-hover-bgcolor, @@ -2579,7 +2671,7 @@ checkbox:not([disabled="true"]):hover:active > .checkbox-check { background-color: var(--checkbox-unchecked-active-bgcolor, color-mix(in srgb, AccentColor 8%, Field)) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { checkbox:not([disabled="true"]):hover:active > .checkbox-check { background-color: var( --checkbox-unchecked-active-bgcolor, @@ -2593,7 +2685,7 @@ color-mix(in srgb, currentColor 12.5%, AccentColor) ) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { checkbox:not([disabled="true"]):hover > .checkbox-check[checked] { background-color: var( --checkbox-checked-hover-bgcolor, @@ -2607,7 +2699,7 @@ color-mix(in srgb, currentColor 25%, AccentColor) ) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked] { background-color: var( --checkbox-checked-active-bgcolor, @@ -2619,7 +2711,7 @@ outline: 2px solid var(--focus-outline-color, AccentColor) !important; outline-offset: var(--focus-outline-offset, 2px) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { checkbox:-moz-focusring > .checkbox-check { outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; } @@ -2629,7 +2721,7 @@ /* color will set the border-color on the check due to how HCM works for in-content pages. */ color: var(--checkbox-checked-border-color, color-mix(in srgb, AccentColor 4%, Field)) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { checkbox:not([disabled="true"]):hover > .checkbox-check { /* color will set the border-color on the check due to how HCM works for in-content pages. */ color: var(--checkbox-checked-border-color, color-mix(in srgb, -moz-accent-color 4%, Field)) !important; @@ -2639,7 +2731,7 @@ color: var(--checkbox-checked-border-color, currentColor) !important; fill: var(--checkbox-checked-color, AccentColorText) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { .checkbox-check[checked] { fill: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; } @@ -2649,7 +2741,7 @@ color: var(--checkbox-checked-border-color-hover, AccentColorText) !important; fill: var(--checkbox-checked-border-color-hover, AccentColorText) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked] > .checkbox-check[checked], checkbox:not([disabled="true"]):hover > .checkbox-check[checked] > .checkbox-check[checked] { color: var(--checkbox-checked-border-color-hover, -moz-accent-color-foreground) !important; @@ -2699,7 +2791,7 @@ outline: 2px solid var(--focus-outline-color, AccentColor) !important; outline-offset: var(--focus-outline-offset, 2px) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { xul|menulist:-moz-focusring { outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; } @@ -2895,7 +2987,7 @@ outline: none !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { xul|menulist > xul|menupopup > xul|menuitem[checked="true"]::before, xul|menulist > xul|menupopup > xul|menuitem[selected="true"]::before { display: none !important; @@ -2986,7 +3078,7 @@ #viewGroup > radio .radio-icon { background-image: none !important; } - @supports not -moz-bool-pref("userChrome.rounding.square_button") { + @media not -moz-pref("userChrome.rounding.square_button") { #viewGroup > radio { border-radius: 8px !important; } @@ -2998,7 +3090,7 @@ color: var(--in-content-button-text-color) !important; /* SelectedItemText */ background-color: var(--in-content-button-background-active) !important; /* #C1D2EE; */ } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #viewGroup > radio { height: auto !important; } @@ -3020,7 +3112,7 @@ margin: 0 !important; padding: 0 6px !important; } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #viewGroup > radio > .radio-label-box { padding-top: 32px !important; /* as -moz-image-region: rect(0px, 32px, 32px, 0px); */ } @@ -3182,7 +3274,7 @@ padding: 5px !important; border-radius: 4px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_button") { + @media -moz-pref("userChrome.rounding.square_button") { #placesToolbar > toolbarbutton { border-radius: 0 !important; } @@ -3199,7 +3291,7 @@ } #placesToolbar > toolbarbutton > .toolbarbutton-icon, #placesMenu > menu > image, - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { -moz-context-properties: fill !important; fill: currentColor !important; } @@ -3214,7 +3306,7 @@ border-radius: 4px !important; margin-inline-end: 2px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_button") { + @media -moz-pref("userChrome.rounding.square_button") { #placesMenu > menu { border-radius: 0 !important; } @@ -3229,7 +3321,7 @@ background-color: var(--organizer-selected-background) !important; color: var(--organizer-selected-color) !important; } - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { margin-block: 0 !important; /* override menu.css */ padding-inline-end: 4px !important; } @@ -3245,7 +3337,7 @@ padding-block: 2px !important; min-height: 24px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_field") { + @media -moz-pref("userChrome.rounding.square_field") { #searchFilter, #detailsPane html|input { border-radius: 0 !important; @@ -3392,7 +3484,7 @@ -moz-context-properties: fill !important; fill: currentColor !important; } - @supports -moz-bool-pref("userChrome.rounding.square_button") { + @media -moz-pref("userChrome.rounding.square_button") { #editBookmarkPanelRows .expander-up, #editBookmarkPanelRows .expander-down { border-radius: 0 !important; @@ -3431,7 +3523,7 @@ min-height: 20px !important; padding-inline: 4px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_field") { + @media -moz-pref("userChrome.rounding.square_field") { #places input { border-radius: 0 !important; } @@ -3454,7 +3546,7 @@ border: 1px solid var(--organizer-border-color) !important; border-radius: 4px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_field") { + @media -moz-pref("userChrome.rounding.square_field") { #editBMPanel_tagsSelectorRow > richlistbox { border-radius: 0 !important; } @@ -3481,14 +3573,14 @@ } } /*= Monospace ================================================================*/ -@supports -moz-bool-pref("userChrome.theme.monospace") { +@media -moz-pref("userChrome.theme.monospace") { * { font-family: -moz-fixed; } } /** Decoration ****************************************************************/ /*= Cursor Types =============================================================*/ -@supports -moz-bool-pref("userChrome.decoration.cursor") { +@media -moz-pref("userChrome.decoration.cursor") { #appMenu-proton-update-banner, #appMenu-fxa-status2:not([fxastatus]) > #appMenu-fxa-label2, #appMenu-zoomReduce-button2, @@ -3532,7 +3624,7 @@ } } /*= Panel UI Button Separator ================================================*/ -@supports -moz-bool-pref("userChrome.decoration.panel_button_separator") { +@media -moz-pref("userChrome.decoration.panel_button_separator") { :root:not([chromehidden~="toolbar"]) #PanelUI-button { margin-inline-start: 3px; padding-inline-start: 2px; @@ -3547,7 +3639,7 @@ } } /*= Panel UI Arrow ===========================================================*/ -@supports -moz-bool-pref("userChrome.decoration.panel_arrow") { +@media -moz-pref("userChrome.decoration.panel_arrow") { #appMenu-popup { background-image: url("../icons/panelarrow-vertical.svg"); background-repeat: no-repeat; @@ -3570,13 +3662,13 @@ } @media (prefers-reduced-motion: no-preference) { /*= Field Border ===========================================================*/ - @supports -moz-bool-pref("userChrome.decoration.field_border") { + @media -moz-pref("userChrome.decoration.field_border") { /*- URL, Search Bar --------------------------------------------------------*/ #urlbar:hover:not([focused="true"]) > #urlbar-background, #searchbar:hover:not(:focus-within) { --toolbar-field-border-color: var(--toolbar-field-focus-border-color); } - @supports -moz-bool-pref("userChrome.combined.urlbar_with_reload") { + @media -moz-pref("userChrome.combined.urlbar_with_reload") { #nav-bar-customization-target > #stop-reload-button:hover ~ #urlbar-container @@ -3591,7 +3683,7 @@ body[lwt-sidebar] xul|search-textbox.tabsFilter:hover { border-color: var(--lwt-sidebar-highlight-background-color, AccentColor) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { .sidebar-panel[lwt-sidebar] #search-box:hover, body[lwt-sidebar] xul|search-textbox.tabsFilter:hover { border-color: var(--lwt-sidebar-highlight-background-color, Highlight) !important; @@ -3601,7 +3693,7 @@ body:not([lwt-sidebar]) xul|search-textbox.tabsFilter:hover { border-color: AccentColor !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { .sidebar-panel:not([lwt-sidebar]) #search-box:hover, body:not([lwt-sidebar]) xul|search-textbox.tabsFilter:hover { border-color: -moz-accent-color !important; @@ -3613,7 +3705,7 @@ .findbar-container .findbar-textbox:hover { --input-border-color: color-mix(in srgb, var(--focus-outline-color, AccentColor) 50%, transparent); } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { #editBMPanel_namePicker:hover, #editBMPanel_tagsField:hover, .findbar-container .findbar-textbox:hover { @@ -3622,7 +3714,7 @@ } } /*= Downloads Panel ========================================================*/ - @supports -moz-bool-pref("userChrome.decoration.download_panel") { + @media -moz-pref("userChrome.decoration.download_panel") { /* Accent Color for downloaded item */ #downloadsListBox .download-state[exists] .downloadDetails { color: var(--button-primary-bgcolor); @@ -3643,7 +3735,7 @@ } } /*= Animate ================================================================*/ - @supports -moz-bool-pref("userChrome.decoration.animate") { + @media -moz-pref("userChrome.decoration.animate") { /*- Background Color -------------------------------------------------------*/ button, toolbarbutton, @@ -3698,12 +3790,18 @@ transition: all 0.3s var(--animation-easing-function) !important; } /*- URL / Search Bar -------------------------------------------------------*/ - #urlbar-background, + #urlbar-background { + transition: border-color 1s var(--animation-easing-function), + background-color 0.5s var(--animation-easing-function) !important; + } + #urlbar-background:hover { + transition: border-color 0.5s var(--animation-easing-function), + background-color 0.5s var(--animation-easing-function) !important; + } #searchbar { transition: border-color 1s var(--animation-easing-function), background-color 1.5s var(--animation-easing-function) !important; } - #urlbar-background:hover, #searchbar:hover { transition: border-color 0.5s var(--animation-easing-function), background-color 1s var(--animation-easing-function) !important; @@ -3723,7 +3821,7 @@ #page-action-buttons > .urlbar-page-action:hover { transition: background-color 1.25s var(--animation-easing-function) !important; } - @supports -moz-bool-pref("userChrome.combined.urlbar_with_reload") { + @media -moz-pref("userChrome.combined.urlbar_with_reload") { #nav-bar-customization-target > #stop-reload-button .toolbarbutton-icon { transition: background-color 2.5s var(--animation-easing-function) !important; } @@ -3747,24 +3845,22 @@ transition: border-color 0.5s var(--animation-easing-function) !important; } /*- Sidebar ----------------------------------------------------------------*/ - @supports not -moz-bool-pref("userChrome.decoration.disable_sidebar_animate") { + @media not -moz-pref("userChrome.decoration.disable_sidebar_animate") { #sidebar-box { /* like #sidebar-box > #sidebar */ min-width: 14em; width: 18em; max-width: 36em; /* Animation */ - transition: margin-inline-start 0.25s var(--animation-easing-function), opacity 0.25s ease-in-out, - visibility 0s linear !important; - will-change: margin-inline-start, opacity, visibility; + transition: margin-inline-start 0.25s var(--animation-easing-function), visibility 0s linear !important; + will-change: margin-inline-start, visibility; } #sidebar-box[hidden="true"] { display: flex !important; display: -moz-box !important; margin-inline-start: -18em; - opacity: 0; visibility: collapse; - transition-delay: 0s, 0s, 0.25s !important; + transition-delay: 0s, 0.25s !important; } } /*- Titlebar & Full Screen -------------------------------------------------*/ @@ -3852,7 +3948,7 @@ transform: rotate(180deg); } } - @supports -moz-bool-pref("userChrome.decoration.disable_panel_animate") { + @media -moz-pref("userChrome.decoration.disable_panel_animate") { :root { --panelui-subview-transition-duration: 1ms !important; /* Disable top right corner menu sliding animation (0ms will not work!) */ } @@ -3864,12 +3960,17 @@ border-radius: var(--arrowpanel-menuitem-border-radius) !important; } -@supports -moz-bool-pref("userChrome.rounding.square_tab") { +@media -moz-pref("userChrome.rounding.square_tab") { :root { --tab-border-radius: 0 !important; /* Original: 4px */ } } -@supports -moz-bool-pref("userChrome.rounding.square_button") { +@media not -moz-pref("userChrome.rounding.square_tab") { + :root { + --tab-border-radius: 4px !important; /* Original: 4px */ + } +} +@media -moz-pref("userChrome.rounding.square_button") { :root { --urlbar-icon-border-radius: 0 !important; /* Original: calc(var(--toolbarbutton-border-radius) - 1px); */ } @@ -3894,31 +3995,31 @@ border-radius: 0 !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_tab") or -moz-bool-pref("userChrome.rounding.square_button") { +@media -moz-pref("userChrome.rounding.square_tab") or -moz-pref("userChrome.rounding.square_button") { /* Fix Tab bar button radius */ #TabsToolbar .toolbarbutton-1:not(#tabs-newtab-button), .tab-close-button { --tab-border-radius: var(--toolbarbutton-border-radius); } } -@supports -moz-bool-pref("userChrome.rounding.square_panel") { +@media -moz-pref("userChrome.rounding.square_panel") { :root { --arrowpanel-border-radius: 0 !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_panelitem") { +@media -moz-pref("userChrome.rounding.square_panelitem") { :root { --arrowpanel-menuitem-border-radius: 0 !important; --subviewbutton-border-radius: 0 !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_menupopup") { +@media -moz-pref("userChrome.rounding.square_menupopup") { menupopup { --panel-border-radius: 0px !important; border-radius: 0 !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_menuitem") { +@media -moz-pref("userChrome.rounding.square_menuitem") { xul|menulist:not([native]), xul|menulist > xul|menupopup xul|menu, xul|menulist > xul|menupopup xul|menuitem, @@ -3926,12 +4027,12 @@ border-radius: 0 !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_infobox") { +@media -moz-pref("userChrome.rounding.square_infobox") { #sanitizeEverythingWarningBox { border-radius: 0 !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_toolbar") { +@media -moz-pref("userChrome.rounding.square_toolbar") { :root { --uc-rounding-toolbar: 0; } @@ -3941,7 +4042,7 @@ border-radius: var(--uc-rounding-toolbar) !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_field") { +@media -moz-pref("userChrome.rounding.square_field") { input:not([type="radio"], [type="checkbox"]), textarea, select, @@ -3960,26 +4061,26 @@ --toolbarbutton-border-radius: 0; } } -@supports -moz-bool-pref("userChrome.rounding.square_urlView_item") { +@media -moz-pref("userChrome.rounding.square_urlView_item") { .urlbarView-row, .urlbarView-row-inner { --toolbarbutton-border-radius: 0; } } -@supports -moz-bool-pref("userChrome.rounding.square_checklabel") { +@media -moz-pref("userChrome.rounding.square_checklabel") { input[type="checkbox"], .checkbox-check { border-radius: 0 !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_dialog") { +@media -moz-pref("userChrome.rounding.square_dialog") { dialog, .dialogBox { border-radius: 0 !important; } } /*= Library ==============================================================*/ -@supports -moz-bool-pref("userChrome.rounding.square_button") { +@media -moz-pref("userChrome.rounding.square_button") { #placesToolbar > toolbarbutton, #placesMenu > menu, #editBookmarkPanelRows .expander-up, @@ -3987,7 +4088,7 @@ border-radius: 0 !important; } } -@supports -moz-bool-pref("userChrome.rounding.square_field") { +@media -moz-pref("userChrome.rounding.square_field") { #searchFilter, #detailsPane html|input, #places input #editBMPanel_tagsSelectorRow > richlistbox { @@ -3999,7 +4100,7 @@ */ /** Reduce Padding ************************************************************/ /*= Tab Bar - Distribution padding, radius ===================================*/ -@supports -moz-bool-pref("userChrome.tab.lepton_like_padding") or -moz-bool-pref("userChrome.tab.photon_like_padding") { +@media -moz-pref("userChrome.tab.lepton_like_padding") or -moz-pref("userChrome.tab.photon_like_padding") { :root { --proton-tab-block-margin: var(--tab-block-margin) !important; /* Original: 4px, Legacy */ } @@ -4008,7 +4109,7 @@ --tab-block-margin: 4px !important; } } -@supports -moz-bool-pref("userChrome.tab.lepton_like_padding") { +@media -moz-pref("userChrome.tab.lepton_like_padding") { :root { --tab-block-margin: 2px !important; /* New version of --proton-tab-block-margin */ } @@ -4019,31 +4120,31 @@ margin-block: -1px !important; } } -@supports -moz-bool-pref("userChrome.tab.photon_like_padding") { +@media -moz-pref("userChrome.tab.photon_like_padding") { :root { --tab-block-margin: 0px !important; } } /*= Tab Bar - Reduce Width, Show more tabs ===================================*/ -@supports -moz-bool-pref("userChrome.padding.first_tab") { +@media -moz-pref("userChrome.padding.first_tab") { /* for First Tab Space */ :root { --uc-space-left-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ } - @supports not -moz-bool-pref("userChrome.padding.first_tab.always") { - :root:not([tabsintitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), + @media not -moz-pref("userChrome.padding.first_tab.always") { + :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { padding-inline-start: var(--uc-space-left-tabbar) !important; } } - @supports -moz-bool-pref("userChrome.padding.first_tab.always") { - :root:not([tabsintitlebar]) #tabbrowser-tabs, + @media -moz-pref("userChrome.padding.first_tab.always") { + :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs, :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs { padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width, 0px) + var(--uc-space-left-tabbar)) !important; } } } -@supports -moz-bool-pref("userChrome.padding.tabbar_width") { +@media -moz-pref("userChrome.padding.tabbar_width") { /* Titlebar Space */ :root { --uc-title-pre-spacer: 30px; /* Original: 40px */ @@ -4053,7 +4154,7 @@ --uc-title-pre-spacer: 25px; --uc-title-post-spacer: 30px; } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-spacer[type="pre-tabs"] { width: var(--uc-title-pre-spacer) !important; } @@ -4102,20 +4203,21 @@ padding-left: var(--newtab-button-width-padding) !important; padding-right: var(--newtab-button-width-padding) !important; } - @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { + @media not -moz-pref("userChrome.tab.photon_like_padding") { #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) { margin-inline-start: 1px !important; } } - @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + @media -moz-pref("userChrome.tab.photon_like_padding") { #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) { margin-inline-start: 0 !important; } } + :root:not([uidensity="touch"]) #pinned-tabs-container, :root:not([uidensity="touch"]) #tabbrowser-arrowscrollbox { --scrollbtn-inner-padding: 1px; --scrollbtn-outer-padding: 3px; @@ -4133,23 +4235,23 @@ --toolbarbutton-outer-padding: 1px; /* Original: 2px*/ } /* Tab - Max Size */ - @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { + @media not -moz-pref("userChrome.tab.photon_like_padding") { :root { --tab-max-width: 240px; } } - @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + @media -moz-pref("userChrome.tab.photon_like_padding") { :root { --tab-max-width: 225px; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { :root { --tab-max-width: 180px; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { :root { --tab-max-width: 180px; @@ -4160,15 +4262,33 @@ .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { max-width: var(--tab-max-width) !important; /* Original: 225px */ } + #tabbrowser-tabs[orient="vertical"][expanded] .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + max-width: none !important; + } + #tabbrowser-tabs[orient="horizontal"] + tab-group[collapsed] + > .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + min-width: 0 !important; + max-width: 0 !important; + padding: 0 !important; + margin: 0 !important; + overflow-clip-margin: 0; + } /* neighbouring tabs should "pinch" together */ :root[customizing="true"] #tabbrowser-arrowscrollbox-periphery, + #tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) + > #pinned-tabs-container + > #tabbrowser-arrowscrollbox-periphery, #tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) > #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox-periphery { min-width: 3px; } - @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { - @supports -moz-bool-pref("userChrome.tab.lepton_like_padding") { + #tabbrowser-tabs[orient="horizontal"] .tab-group-label-container { + margin-inline-start: 4px !important; + } + @media not -moz-pref("userChrome.tab.photon_like_padding") { + @media -moz-pref("userChrome.tab.lepton_like_padding") { #TabsToolbar:not([multibar]) .tabbrowser-tab[pinned] { padding-inline: 1px !important; } @@ -4179,45 +4299,45 @@ margin-inline-end: -1px !important; } } - @supports not -moz-bool-pref("userChrome.tabbar.multi_row") { + @media not -moz-pref("userChrome.tabbar.multi_row") { #TabsToolbar:not([multibar]) .tabbrowser-tab:not(:last-of-type) { margin-inline-end: -2px !important; } } } - @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + @media -moz-pref("userChrome.tab.photon_like_padding") { .tabbrowser-tab { padding-inline: 0 !important; } } } /*= Tab Bar - Reduce Height, Show more contents ==============================*/ -@supports -moz-bool-pref("userChrome.padding.drag_space") { +@media -moz-pref("userChrome.padding.drag_space") { /* for Extra Drag Space */ :root { --uc-space-above-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ } @media (-moz-platform: windows) { - :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); } - @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { - :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + @media -moz-pref("userChrome.padding.drag_space.maximized") { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); } } } @media (-moz-gtk-csd-available) { - :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); } - @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { - :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + @media -moz-pref("userChrome.padding.drag_space.maximized") { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); } } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #TabsToolbar > .toolbar-items { padding-top: var(--uc-space-above-tabbar) !important; } @@ -4228,7 +4348,7 @@ :root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { padding-top: var(--uc-space-above-tabbar) !important; } - @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { + @media -moz-pref("userChrome.padding.drag_space.maximized") { :root[sizemode="maximized"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, :root[sizemode="maximized"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { padding-top: var(--uc-space-above-tabbar) !important; @@ -4236,9 +4356,9 @@ } } } -@supports -moz-bool-pref("userChrome.padding.tabbar_height") { +@media -moz-pref("userChrome.padding.tabbar_height") { /* Toolbar Height */ - @supports -moz-bool-pref("userChrome.tab.lepton_like_padding") { + @media -moz-pref("userChrome.tab.lepton_like_padding") { :root:not([uidensity]) { --tab-min-height: 36px !important; } @@ -4249,7 +4369,7 @@ --tab-min-height: 41px !important; } } - @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + @media -moz-pref("userChrome.tab.photon_like_padding") { :root:not([uidensity]) { --tab-min-height: 32px !important; } @@ -4265,8 +4385,8 @@ margin-top: 0 !important; } } - @supports not -moz-bool-pref("userChrome.tab.lepton_like_padding") { - @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { + @media not -moz-pref("userChrome.tab.lepton_like_padding") { + @media not -moz-pref("userChrome.tab.photon_like_padding") { :root:not([uidensity]) { --tab-min-height: 36px !important; /* 38px -> 36px */ } @@ -4284,7 +4404,7 @@ #TabsToolbar[multibar] .tabbrowser-tab { height: unset !important; /* Original: var(--tab-min-height_mlt) */ } - @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + @media -moz-pref("userChrome.tab.connect_to_window") { :root { --tab-min-height_mlt: calc( var(--tab-min-height) + var(--tab-block-margin, var(--proton-tab-block-margin, 0px)) @@ -4295,7 +4415,17 @@ (var(--tab-min-height) - 18px) / 2 ) !important; /* Prevent overflow pinned tab bottom margin */ } - @supports not -moz-bool-pref("userChrome.tabbar.multi_row") { + @media not -moz-pref("userChrome.tabbar.multi_row") { + :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #pinned-tabs-container, + #TabsToolbar:not([multibar]) #pinned-tabs-container[overflowing="true"] > .tabbrowser-tab[pinned="true"], + #TabsToolbar:not([multibar]) + #pinned-tabs-container[overflowing="true"] + > .tabbrowser-tab[pinned="true"] + .tab-stack, + #TabsToolbar:not([multibar]) + #pinned-tabs-container[overflowing="true"] + > .tabbrowser-tab[pinned="true"] + .tab-content, :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox, #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"], #TabsToolbar:not([multibar]) @@ -4308,12 +4438,14 @@ .tab-content { max-height: var(--tab-min-height) !important; /* Force apply height */ } + :root[uidensity="compact"] #TabsToolbar:not([multibar]) #pinned-tabs-container, :root[uidensity="compact"] #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox { height: var(--tab-min-height) !important; } } } /* Scroll Button - Size Fix */ + :root #pinned-tabs-container, :root #tabbrowser-arrowscrollbox { --scrollbtn-vertical-padding: 3px; --scrollbtn-vertical-border: 2px; @@ -4331,14 +4463,14 @@ /* Original: calc(var(--tab-border-radius) + 4px) = 8px */ border-radius: var(--scrollbtn-border-radius, calc(var(--tab-border-radius) + 4px)) !important; } - :root[tabsintitlebar]:not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar]):not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { height: calc( var(--tab-min-height) - var(--tabs-navbar-shadow-size) - 2px ); /* Compact: 28px, Normal: 33px, Touch: 38px */ } } /*= Tool Bar - Button Padding ================================================*/ -@supports -moz-bool-pref("userChrome.padding.toolbar_button") or -moz-bool-pref("userChrome.tab.newtab_button_smaller") { +@media -moz-pref("userChrome.padding.toolbar_button") or -moz-pref("userChrome.tab.newtab_button_smaller") { :root { --uc-small-toolbarbutton-inner-padding: 6px; --uc-toolbarbutton-inner-padding-default: 8px; @@ -4352,26 +4484,26 @@ --uc-toolbarbutton-inner-padding-default: 9px; } } -@supports -moz-bool-pref("userChrome.padding.toolbar_button") { +@media -moz-pref("userChrome.padding.toolbar_button") { :root[uidensity="compact"] { --toolbarbutton-outer-padding: 2px !important; /* Original: 3px, General is 2px */ } - @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + @media -moz-pref("userChrome.padding.toolbar_button.compact") { :root { --toolbarbutton-inner-padding: var(--uc-small-toolbarbutton-inner-padding) !important; } } } /*= Nav Bar - Reduce Width ===================================================*/ -@supports -moz-bool-pref("userChrome.padding.navbar_width") { +@media -moz-pref("userChrome.padding.navbar_width") { #nav-bar:not([customizing]) toolbarspring { min-width: 1px !important; max-width: 100px !important; } } /*= URL Bar - Reduce Padding =================================================*/ -@supports not -moz-bool-pref("userChrome.urlView.as_commandbar") { - @supports -moz-bool-pref("userChrome.padding.urlbar") { +@media not -moz-pref("userChrome.urlView.as_commandbar") { + @media -moz-pref("userChrome.padding.urlbar") { :root:not([uidensity="touch"]) #urlbar-container, :root:not([uidensity="touch"]) #search-container { padding-block: 3px !important; /* Original: 4px */ @@ -4391,11 +4523,6 @@ :root:not([uidensity="compact"]) #urlbar[breakout][breakout-extend-disabled][open] { height: auto !important; } - :root[uidensity="touch"] #urlbar[breakout] { - top: calc( - (var(--urlbar-toolbar-height, var(--urlbar-container-height)) - var(--urlbar-height)) / 2 + 1px - ) !important; - } /* spread menu */ :root:not([uidensity]) .urlbarView-row { padding-block: 1px !important; /* Original: 2px */ @@ -4411,25 +4538,27 @@ } } } -@supports -moz-bool-pref("userChrome.padding.urlView_expanding") or -moz-bool-pref("userChrome.urlView.as_commandbar") { +@media -moz-pref("userChrome.padding.urlView_expanding") or -moz-pref("userChrome.urlView.as_commandbar") { #urlbar[breakout][breakout-extend] { - top: calc((var(--urlbar-toolbar-height, var(--urlbar-container-height)) - var(--urlbar-height)) / 2) !important; - left: 0 !important; - width: 100% !important; + top: calc(var(--urlbar-container-height) * 2 - var(--urlbar-height)) !important; + width: var(--urlbar-width) !important; + position: relative !important; + margin: 0 !important; } - #urlbar[breakout][breakout-extend] > #urlbar-input-container { + #urlbar[breakout][breakout-extend] > #urlbar-input-container, + #urlbar[breakout][breakout-extend] > .urlbar-input-container { height: var(--urlbar-height) !important; padding-block: 0 !important; padding-inline: var(--urlbar-container-padding, 0px) !important; } } -@supports -moz-bool-pref("userChrome.padding.urlView_expanding") { +@media -moz-pref("userChrome.padding.urlView_expanding") { #urlbar[breakout][breakout-extend] > #urlbar-background { animation-name: none !important; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05) !important; } } -@supports -moz-bool-pref("userChrome.padding.urlView_result") { +@media -moz-pref("userChrome.padding.urlView_result") { .urlbarView { margin-inline: 0 !important; width: 100% !important; @@ -4439,19 +4568,19 @@ } } /*= BookMark Bar - Reduce Height =============================================*/ -@supports -moz-bool-pref("userChrome.padding.bookmarkbar") { +@media -moz-pref("userChrome.padding.bookmarkbar") { :root[uidensity="compact"] #PersonalToolbar toolbarbutton { margin-top: 0px !important; /* Original: 2px */ margin-bottom: 1px !important; } } /*= Info Bar - Reduce Padding ================================================*/ -@supports -moz-bool-pref("userChrome.padding.infobar") or -moz-bool-pref("userChrome.autohide.infobar") { +@media -moz-pref("userChrome.padding.infobar") or -moz-pref("userChrome.autohide.infobar") { #tab-notification-deck notification-message[message-bar-type="infobar"]:not([style*="margin-top"]) { margin: var(--infobar-message-margin, 0 4px var(--infobar-message-vertical-margin, 8px)) !important; } } -@supports -moz-bool-pref("userChrome.padding.infobar") { +@media -moz-pref("userChrome.padding.infobar") { :root:not([uidensity]) notification-message { --infobar-message-vertical-margin: 3px; --infobar-vertical-margin: 7px; @@ -4494,7 +4623,7 @@ } } /*= Menu - Reduce Padding ====================================================*/ -@supports -moz-bool-pref("userChrome.padding.menu") { +@media -moz-pref("userChrome.padding.menu") { :root { --menu-padding: 0.35em; /* Win7, 8: 0px */ } @@ -4504,7 +4633,7 @@ :root[uidensity="touch"] { --menu-padding: 0.5em; } - @supports -moz-bool-pref("userChrome.padding.menu_compact") { + @media -moz-pref("userChrome.padding.menu_compact") { :root { --menu-padding: 2px; } @@ -4533,13 +4662,13 @@ padding-block: var(--menu-padding) !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #ContentSelectDropdown > menupopup > menucaption, #ContentSelectDropdown > menupopup > menuitem { padding-block: var(--menu-padding) !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { :root:not([uidensity="touch"]) .menu-text, :root:not([uidensity="touch"]) .menu-iconic-text { padding-inline-end: 0 !important; /* Original: 2px */ @@ -4565,14 +4694,14 @@ } } /*= Bookmark Menu - Reduce Padding ===========================================*/ -@supports -moz-bool-pref("userChrome.padding.bookmark_menu") { +@media -moz-pref("userChrome.padding.bookmark_menu") { :root { --bookmark-menu-padding: 3px; } :root[uidensity="compact"] { --bookmark-menu-padding: 1.5px; } - @supports -moz-bool-pref("userChrome.padding.menu_compact") { + @media -moz-pref("userChrome.padding.menu_compact") { :root { --bookmark-menu-padding: 2px; } @@ -4585,7 +4714,7 @@ :root:not([uidensity="touch"]) #PlacesToolbar menupopup[placespopup] .openintabs-menuitem { padding-block: var(--bookmark-menu-padding) !important; } - @supports -moz-bool-pref("userChrome.padding.menu_compact") or -moz-bool-pref("userChrome.padding.bookmark_menu.compact") { + @media -moz-pref("userChrome.padding.menu_compact") or -moz-pref("userChrome.padding.bookmark_menu.compact") { :root:not([uidensity="touch"]) #BMB_bookmarksPopup .bookmark-item, :root:not([uidensity="touch"]) #PlacesToolbar menupopup[placespopup] .bookmark-item { min-height: unset !important; /* Original: 24px */ @@ -4593,7 +4722,7 @@ } } /*= Global Menu - Set Padding ================================================*/ -@supports -moz-bool-pref("userChrome.padding.global_menubar") { +@media -moz-pref("userChrome.padding.global_menubar") { /* Vertical Align - Center & Height: 100% */ #main-menubar { flex: 1 !important; @@ -4621,7 +4750,7 @@ #main-menubar > menu > menupopup menu { padding-block: var(--bookmark-menu-padding) !important; } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + @media -moz-pref("userChrome.compatibility.os.win11") { #main-menubar > menu > menupopup menuitem, #main-menubar > menu > menupopup menu { --bookmark-menu-padding: 3px; @@ -4633,7 +4762,7 @@ } } /*= Panel - Reduce padding ===================================================*/ -@supports -moz-bool-pref("userChrome.padding.panel") { +@media -moz-pref("userChrome.padding.panel") { :root { --arrowpanel-menuitem-margin-block: 0; /* FF 102 compatibility */ --arrowpanel-menuitem-margin-inline: 8px; @@ -4655,8 +4784,8 @@ .all-tabs-item { margin: var(--arrowpanel-menuitem-margin) !important; } - @supports not -moz-bool-pref("userChrome.icon.disabled") { - @supports not -moz-bool-pref("userChrome.icon.panel") { + @media not -moz-pref("userChrome.icon.disabled") { + @media not -moz-pref("userChrome.icon.panel") { .subviewbutton { min-height: calc(16px + var(--arrowpanel-menuitem-padding-block) * 2) !important; } @@ -4665,7 +4794,7 @@ .unified-extensions-item-menu-button.subviewbutton { padding: 0 !important; /* Original: calc(var(--arrowpanel-menuitem-margin-inline) - 1px) var(--arrowpanel-menuitem-margin-inline) */ } - @supports -moz-bool-pref("userChrome.panel.full_width_padding") { + @media -moz-pref("userChrome.panel.full_width_padding") { .unified-extensions-item-menu-button.subviewbutton { --arrowpanel-menuitem-padding-inline: var(--arrowpanel-menuitem-padding-block); } @@ -4674,14 +4803,14 @@ padding-block: 0 !important; } } -@supports -moz-bool-pref("userChrome.padding.panel_header") { +@media -moz-pref("userChrome.padding.panel_header") { .panel-header { padding: unset !important; padding-top: 4px !important; } } /*= Popup Panel - Reduce padding =============================================*/ -@supports -moz-bool-pref("userChrome.padding.popup_panel") { +@media -moz-pref("userChrome.padding.popup_panel") { #protections-popup-main-header-label { height: unset !important; /* Original: 37.6px */ } @@ -4728,12 +4857,14 @@ } /** Tab Bar UI ****************************************************************/ /*= Tabs on Bottom ===========================================================*/ -@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.fullscreen.overlap") { +@media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.fullscreen.overlap") { /* Don't use display: flex at not fullscreen!! side effect #372 */ :root[sizemode="fullscreen"] #navigator-toolbox { display: flex !important; /* Needed for content to take up entire height, compatibility with tabs on bottom */ } :root[sizemode="fullscreen"] #titlebar, + :root[sizemode="fullscreen"] #toolbar-menubar, + :root[sizemode="fullscreen"] #TabsToolbar, :root[sizemode="fullscreen"] #nav-bar, :root[sizemode="fullscreen"] #PersonalToolbar, :root[sizemode="fullscreen"] #tab-notification-deck, @@ -4745,12 +4876,13 @@ -moz-appearance: none !important; } } -@supports -moz-bool-pref("userChrome.tabbar.on_bottom") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { +@media -moz-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.one_liner") { /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /*= Tabbar - Move to bottom ==================================================*/ - #titlebar { + #titlebar, + #TabsToolbar { order: 2; -moz-box-ordinal-group: 2; --tabs-navbar-shadow-size: 0px; @@ -4765,15 +4897,15 @@ #TabsToolbar-customization-target > .toolbarbutton-1:last-child { padding-inline-end: var(--toolbar-start-end-padding, 8px); } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.above_bookmark") { + @media -moz-pref("userChrome.tabbar.on_bottom.above_bookmark") { #PersonalToolbar { order: 2; -moz-box-ordinal-group: 2; } } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom.above_bookmark") { - @supports -moz-bool-pref("userChrome.tab.connect_to_window") { - @supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { + @media not -moz-pref("userChrome.tabbar.on_bottom.above_bookmark") { + @media -moz-pref("userChrome.tab.connect_to_window") { + @media -moz-pref("userChrome.tab.color_like_toolbar") { #navigator-toolbox { border-bottom-color: var( --toolbar-bgcolor @@ -4783,7 +4915,7 @@ } } /*= Tabbar - Hidden at single tab ===========================================*/ - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.hidden_single_tab") { + @media -moz-pref("userChrome.tabbar.on_bottom.hidden_single_tab") { #tabbrowser-tabs .tabbrowser-tab:only-of-type { display: none !important; } @@ -4799,7 +4931,7 @@ } } /*= Menubar - Always on top ==================================================*/ - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + @media -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") { /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom_menubar_on_top_patch.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /* Menubar on top patch - use with tabs_on_bottom.css */ @@ -4825,7 +4957,7 @@ width: 100%; overflow: hidden; } - :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar[autohide="true"]:not([inactive="true"]) { height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ } #toolbar-menubar > .titlebar-buttonbox-container { @@ -4856,13 +4988,14 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (max-width: 1100px) { /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /*= Tabbar - Move to bottom ==================================================*/ - #titlebar { + #titlebar, + #TabsToolbar { order: 2; -moz-box-ordinal-group: 2; --tabs-navbar-shadow-size: 0px; @@ -4877,15 +5010,15 @@ #TabsToolbar-customization-target > .toolbarbutton-1:last-child { padding-inline-end: var(--toolbar-start-end-padding, 8px); } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.above_bookmark") { + @media -moz-pref("userChrome.tabbar.on_bottom.above_bookmark") { #PersonalToolbar { order: 2; -moz-box-ordinal-group: 2; } } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom.above_bookmark") { - @supports -moz-bool-pref("userChrome.tab.connect_to_window") { - @supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { + @media not -moz-pref("userChrome.tabbar.on_bottom.above_bookmark") { + @media -moz-pref("userChrome.tab.connect_to_window") { + @media -moz-pref("userChrome.tab.color_like_toolbar") { #navigator-toolbox { border-bottom-color: var( --toolbar-bgcolor @@ -4895,7 +5028,7 @@ } } /*= Tabbar - Hidden at single tab ===========================================*/ - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.hidden_single_tab") { + @media -moz-pref("userChrome.tabbar.on_bottom.hidden_single_tab") { #tabbrowser-tabs .tabbrowser-tab:only-of-type { display: none !important; } @@ -4911,7 +5044,7 @@ } } /*= Menubar - Always on top ==================================================*/ - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + @media -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") { /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom_menubar_on_top_patch.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /* Menubar on top patch - use with tabs_on_bottom.css */ @@ -4937,7 +5070,7 @@ width: 100%; overflow: hidden; } - :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar[autohide="true"]:not([inactive="true"]) { height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ } #toolbar-menubar > .titlebar-buttonbox-container { @@ -4972,15 +5105,15 @@ } } /*= Tab Bar - Oneliner =======================================================*/ -@supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { +@media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { :root { --uc-navbar-width-origin: 40vw; --uc-navbar-width: var(--uc-navbar-width-origin); --uc-tabbar-width: calc(100vw - var(--uc-navbar-width)); --uc-navbar-margin: calc(var(--uc-navbar-width) + var(--uc-navbar-gap, 0px)); } - @supports -moz-bool-pref("userChrome.autohide.fill_urlbar") { + @media -moz-pref("userChrome.autohide.fill_urlbar") { :root { --uc-navbar-width-origin: 50vw; --uc-navbar-width: 24em; @@ -4992,7 +5125,9 @@ margin-top: calc(var(--uc-tabbar-hide-height) + var(--uc-navbar-double-block)) !important; margin-bottom: var(--uc-navbar-block, 0px) !important; } - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { transform: translateY(var(--uc-navbar-block, 0px)); } #TabsToolbar > .titlebar-buttonbox-container { @@ -5002,7 +5137,7 @@ position: relative; z-index: 2; } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { :root { --uc-navbar-gap: 10px; --uc-navbar-block: 1.5px; @@ -5026,7 +5161,7 @@ min-height: calc(var(--urlbar-container-height) - 2px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { #navigator-toolbox { background-color: var(--toolbar-bgcolor) !important; } @@ -5051,7 +5186,7 @@ toolbarspring.chromeclass-toolbar-additional { display: none !important; } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-start: var(--uc-navbar-margin) !important; } @@ -5062,7 +5197,7 @@ display: none !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-end: var(--uc-navbar-margin) !important; } @@ -5074,7 +5209,7 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { :root { --uc-navbar-width-origin: 40vw; @@ -5082,7 +5217,7 @@ --uc-tabbar-width: calc(100vw - var(--uc-navbar-width)); --uc-navbar-margin: calc(var(--uc-navbar-width) + var(--uc-navbar-gap, 0px)); } - @supports -moz-bool-pref("userChrome.autohide.fill_urlbar") { + @media -moz-pref("userChrome.autohide.fill_urlbar") { :root { --uc-navbar-width-origin: 50vw; --uc-navbar-width: 24em; @@ -5094,7 +5229,9 @@ margin-top: calc(var(--uc-tabbar-hide-height) + var(--uc-navbar-double-block)) !important; margin-bottom: var(--uc-navbar-block, 0px) !important; } - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { transform: translateY(var(--uc-navbar-block, 0px)); } #TabsToolbar > .titlebar-buttonbox-container { @@ -5104,7 +5241,7 @@ position: relative; z-index: 2; } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { :root { --uc-navbar-gap: 10px; --uc-navbar-block: 1.5px; @@ -5128,7 +5265,7 @@ min-height: calc(var(--urlbar-container-height) - 2px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { #navigator-toolbox { background-color: var(--toolbar-bgcolor) !important; } @@ -5153,7 +5290,7 @@ toolbarspring.chromeclass-toolbar-additional { display: none !important; } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-start: var(--uc-navbar-margin) !important; } @@ -5164,7 +5301,7 @@ display: none !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-end: var(--uc-navbar-margin) !important; } @@ -5179,151 +5316,147 @@ } } /*= Tab Bar - Shared Layout ==================================================*/ -@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.tabbar.one_liner") or -moz-bool-pref( - "userChrome.hidden.tabbar" - ) - or -moz-bool-pref("userChrome.tabbar.as_titlebar") { +@media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.tabbar.one_liner") or -moz-pref("userChrome.hidden.tabbar") or -moz-pref("userChrome.tabbar.as_titlebar") { :root { --uc-window-control-width: 0px; /* Same as .titlebar-buttonbox-container - Space reserved for window controls */ --uc-window-drag-space-pre: 0px; /* Same as .titlebar-spacer[type="pre-tabs"] - Extra space reserved on both sides of the nav-bar to be able to drag the window */ --uc-window-drag-space-post: 0px; /* Same as .titlebar-spacer[type="post-tabs"] */ --uc-window-control-space: calc(var(--uc-window-control-width) + var(--uc-window-drag-space-post)); } - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: var(--uc-title-pre-spacer, 40px); --uc-window-drag-space-post: var(--uc-title-post-spacer, 40px); } @media (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 138px; } } @media (-moz-gtk-csd-available) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { /* 84px is default value of linux */ } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button), (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button), (-moz-gtk-csd-available) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 28px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button), (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-close-button), (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 56px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 84px; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { - :root[tabsintitlebar] { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { + :root:is([tabsintitlebar], [customtitlebar]) { --uc-window-control-width: 72px; } :root[sizemode="fullscreen"] { --uc-window-control-space: 0px; } } - :root:is([tabsintitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar][sizemode="maximized"], [customtitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { @media (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } - @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { + @media -moz-pref("userChrome.tabbar.as_titlebar") { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { --uc-window-control-space: 0px; } } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.as_titlebar") { @media (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (max-width: 1100px) { - @supports (not -moz-bool-pref("userChrome.tabbar.on_bottom")) or - (not -moz-bool-pref("userChrome.hidden.tabbar")) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + @media (not -moz-pref("userChrome.tabbar.on_bottom")) or (not -moz-pref("userChrome.hidden.tabbar")) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; --uc-window-control-space: 0px; } } } @media screen and (min-width: 1100px) { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { @media screen and (min-width: 1100px) and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } - @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { + @media -moz-pref("userChrome.tabbar.as_titlebar") { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { --uc-window-control-space: 0px; } } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.as_titlebar") { @media screen and (min-width: 1100px) and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -5339,12 +5472,10 @@ } } } -@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.tabbar.one_liner") or -moz-bool-pref( - "userChrome.hidden.tabbar" - ) { - @supports not -moz-bool-pref("userChrome.hidden.titlebar_container") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { +@media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.tabbar.one_liner") or -moz-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.titlebar_container") { + @media not -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.hidden.tabbar") { /*= Windows Control - Move to toolbar ========================================*/ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ @@ -5355,8 +5486,8 @@ #navigator-toolbox { padding-top: var(--uc-titlebar-padding) !important; } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + @media -moz-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") { #navigator-toolbox { padding-top: calc( max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) @@ -5383,12 +5514,12 @@ .titlebar-buttonbox-container > .titlebar-buttonbox { height: 100%; } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container > .titlebar-buttonbox { margin-block: 10px; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container { left: 0; right: unset !important; @@ -5401,43 +5532,43 @@ } } @media (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #toolbar-menubar:not([autohide="true"]) { visibility: visible !important; height: 0; } } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 1; visibility: visible; } - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.navbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.autohide.navbar") { #navigator-toolbox:is(:hover, :focus-within) #toolbar-menubar[inactive]:not([customizing]) > .titlebar-buttonbox-container { @@ -5457,12 +5588,12 @@ transition-delay: 0s !important; } } - @supports -moz-bool-pref("browser.fullscreen.autohide") { + @media -moz-pref("browser.fullscreen.autohide") { :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { visibility: hidden; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { visibility: visible !important; min-height: 0 !important; @@ -5471,13 +5602,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -5488,16 +5625,16 @@ > .titlebar-buttonbox-container { display: block !important; } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { visibility: hidden; } } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { /*= Windows Control - Move to toolbar ========================================*/ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ @@ -5508,8 +5645,8 @@ #navigator-toolbox { padding-top: var(--uc-titlebar-padding) !important; } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + @media -moz-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") { #navigator-toolbox { padding-top: calc( max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) @@ -5536,12 +5673,12 @@ .titlebar-buttonbox-container > .titlebar-buttonbox { height: 100%; } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container > .titlebar-buttonbox { margin-block: 10px; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container { left: 0; right: unset !important; @@ -5554,43 +5691,43 @@ } } @media (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #toolbar-menubar:not([autohide="true"]) { visibility: visible !important; height: 0; } } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 1; visibility: visible; } - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.navbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.autohide.navbar") { #navigator-toolbox:is(:hover, :focus-within) #toolbar-menubar[inactive]:not([customizing]) > .titlebar-buttonbox-container { @@ -5610,12 +5747,12 @@ transition-delay: 0s !important; } } - @supports -moz-bool-pref("browser.fullscreen.autohide") { + @media -moz-pref("browser.fullscreen.autohide") { :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { visibility: hidden; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { visibility: visible !important; min-height: 0 !important; @@ -5624,13 +5761,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -5641,13 +5784,13 @@ > .titlebar-buttonbox-container { display: block !important; } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { visibility: hidden; } } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { /*= Windows Control - Move to toolbar ========================================*/ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ @@ -5658,8 +5801,8 @@ #navigator-toolbox { padding-top: var(--uc-titlebar-padding) !important; } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + @media -moz-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") { #navigator-toolbox { padding-top: calc( max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) @@ -5686,12 +5829,12 @@ .titlebar-buttonbox-container > .titlebar-buttonbox { height: 100%; } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container > .titlebar-buttonbox { margin-block: 10px; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container { left: 0; right: unset !important; @@ -5704,43 +5847,43 @@ } } @media (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #toolbar-menubar:not([autohide="true"]) { visibility: visible !important; height: 0; } } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 1; visibility: visible; } - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.navbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.autohide.navbar") { #navigator-toolbox:is(:hover, :focus-within) #toolbar-menubar[inactive]:not([customizing]) > .titlebar-buttonbox-container { @@ -5760,12 +5903,12 @@ transition-delay: 0s !important; } } - @supports -moz-bool-pref("browser.fullscreen.autohide") { + @media -moz-pref("browser.fullscreen.autohide") { :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { visibility: hidden; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { visibility: visible !important; min-height: 0 !important; @@ -5774,13 +5917,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -5791,15 +5940,15 @@ > .titlebar-buttonbox-container { display: block !important; } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { visibility: hidden; } } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.hidden.tabbar") { @media screen and (max-width: 1100px) { /*= Windows Control - Move to toolbar ========================================*/ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 @@ -5811,8 +5960,8 @@ #navigator-toolbox { padding-top: var(--uc-titlebar-padding) !important; } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + @media -moz-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") { #navigator-toolbox { padding-top: calc( max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) @@ -5842,14 +5991,14 @@ .titlebar-buttonbox-container > .titlebar-buttonbox { height: 100%; } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container > .titlebar-buttonbox { margin-block: 10px; } } } @media screen and (max-width: 1100px) { - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container { left: 0; right: unset !important; @@ -5863,19 +6012,19 @@ } } @media screen and (max-width: 1100px) and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @media screen and (max-width: 1100px) { - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #toolbar-menubar:not([autohide="true"]) { visibility: visible !important; height: 0; @@ -5883,18 +6032,18 @@ } } @media screen and (max-width: 1100px) { - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 1; visibility: visible; } - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.navbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; @@ -5903,8 +6052,8 @@ } } @media screen and (max-width: 1100px) { - @supports -moz-bool-pref("userChrome.hidden.tabbar") { - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.autohide.navbar") { #navigator-toolbox:is(:hover, :focus-within) #toolbar-menubar[inactive]:not([customizing]) > .titlebar-buttonbox-container { @@ -5926,14 +6075,14 @@ } } @media screen and (max-width: 1100px) { - @supports -moz-bool-pref("browser.fullscreen.autohide") { + @media -moz-pref("browser.fullscreen.autohide") { :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { visibility: hidden; } } } @media screen and (max-width: 1100px) { - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { visibility: visible !important; min-height: 0 !important; @@ -5942,13 +6091,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -5962,7 +6117,7 @@ } } @media screen and (max-width: 1100px) { - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { @@ -5972,7 +6127,7 @@ } } @media screen and (min-width: 1100px) { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { /*= Windows Control - Move to toolbar ========================================*/ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ @@ -5983,8 +6138,8 @@ #navigator-toolbox { padding-top: var(--uc-titlebar-padding) !important; } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + @media -moz-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") { #navigator-toolbox { padding-top: calc( max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) @@ -6011,12 +6166,12 @@ .titlebar-buttonbox-container > .titlebar-buttonbox { height: 100%; } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container > .titlebar-buttonbox { margin-block: 10px; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container { left: 0; right: unset !important; @@ -6029,43 +6184,43 @@ } } @media screen and (min-width: 1100px) and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #toolbar-menubar:not([autohide="true"]) { visibility: visible !important; height: 0; } } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 1; visibility: visible; } - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.navbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.autohide.navbar") { #navigator-toolbox:is(:hover, :focus-within) #toolbar-menubar[inactive]:not([customizing]) > .titlebar-buttonbox-container { @@ -6085,12 +6240,12 @@ transition-delay: 0s !important; } } - @supports -moz-bool-pref("browser.fullscreen.autohide") { + @media -moz-pref("browser.fullscreen.autohide") { :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { visibility: hidden; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { visibility: visible !important; min-height: 0 !important; @@ -6099,13 +6254,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -6116,7 +6277,7 @@ > .titlebar-buttonbox-container { display: block !important; } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { @@ -6124,7 +6285,7 @@ } } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { /*= Windows Control - Move to toolbar ========================================*/ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ @@ -6135,8 +6296,8 @@ #navigator-toolbox { padding-top: var(--uc-titlebar-padding) !important; } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + @media -moz-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") { #navigator-toolbox { padding-top: calc( max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) @@ -6163,12 +6324,12 @@ .titlebar-buttonbox-container > .titlebar-buttonbox { height: 100%; } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container > .titlebar-buttonbox { margin-block: 10px; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container { left: 0; right: unset !important; @@ -6181,43 +6342,43 @@ } } @media screen and (min-width: 1100px) and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #toolbar-menubar:not([autohide="true"]) { visibility: visible !important; height: 0; } } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 1; visibility: visible; } - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.navbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; visibility: collapse; } } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { - @supports -moz-bool-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.autohide.navbar") { #navigator-toolbox:is(:hover, :focus-within) #toolbar-menubar[inactive]:not([customizing]) > .titlebar-buttonbox-container { @@ -6237,12 +6398,12 @@ transition-delay: 0s !important; } } - @supports -moz-bool-pref("browser.fullscreen.autohide") { + @media -moz-pref("browser.fullscreen.autohide") { :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { visibility: hidden; } } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { visibility: visible !important; min-height: 0 !important; @@ -6251,13 +6412,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -6268,7 +6435,7 @@ > .titlebar-buttonbox-container { display: block !important; } - @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.hidden.tabbar") { :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { @@ -6279,7 +6446,7 @@ } } } - @supports not -moz-bool-pref("userChrome.navbar.as_sidebar") { + @media not -moz-pref("userChrome.navbar.as_sidebar") { /*= Navbar - Padding for window controls =====================================*/ /* Customized https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/window_control_placeholder_support.css */ #nav-bar { @@ -6287,21 +6454,21 @@ border-inline-color: transparent; } @media (-moz-platform: windows) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner") { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); border-inline-end-width: var(--uc-window-control-space); } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); border-inline-end-width: var(--uc-window-control-space); } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.hidden.tabbar") { @media screen and (-moz-platform: windows) and (max-width: 1100px) { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); @@ -6311,28 +6478,28 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-drag-space-pre) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-end: var(--uc-window-control-space) !important; } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (-moz-platform: windows) and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-drag-space-pre) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-end: var(--uc-window-control-space) !important; } @@ -6343,21 +6510,21 @@ } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner") { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); border-inline-end-width: var(--uc-window-control-space); } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); border-inline-end-width: var(--uc-window-control-space); } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.hidden.tabbar") { @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) and (max-width: 1100px) { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); @@ -6367,28 +6534,28 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-drag-space-pre) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-end: var(--uc-window-control-space) !important; } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-drag-space-pre) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-end: var(--uc-window-control-space) !important; } @@ -6398,22 +6565,22 @@ } } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { + @media not -moz-pref("userChrome.tabbar.one_liner") { #nav-bar { border-inline-start-width: var(--uc-window-control-space); border-inline-end-width: var(--uc-window-drag-space-pre); } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { #nav-bar { border-inline-start-width: var(--uc-window-control-space); border-inline-end-width: var(--uc-window-drag-space-pre); } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.hidden.tabbar") { @media screen and (max-width: 1100px) { #nav-bar { border-inline-start-width: var(--uc-window-control-space); @@ -6423,28 +6590,28 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-control-space, 0px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-control-space, 0px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } @@ -6453,18 +6620,18 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } @@ -6472,13 +6639,13 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { #TabsToolbar { margin-inline-start: var(--uc-window-control-width, 0px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { #TabsToolbar { margin-inline-start: var(--uc-window-control-width, 0px) !important; @@ -6489,21 +6656,21 @@ } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner") { #nav-bar { border-inline-start-width: var(--uc-window-control-space); border-inline-end-width: var(--uc-window-drag-space-pre); } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { #nav-bar { border-inline-start-width: var(--uc-window-control-space); border-inline-end-width: var(--uc-window-drag-space-pre); } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media -moz-pref("userChrome.tabbar.on_bottom") or -moz-pref("userChrome.hidden.tabbar") { @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (max-width: 1100px) { #nav-bar { border-inline-start-width: var(--uc-window-control-space); @@ -6513,28 +6680,28 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-control-space, 0px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-control-space, 0px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } @@ -6543,18 +6710,18 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.combine_navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } @@ -6562,13 +6729,13 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { #TabsToolbar { margin-inline-start: var(--uc-window-control-width, 0px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { #TabsToolbar { margin-inline-start: var(--uc-window-control-width, 0px) !important; @@ -6578,7 +6745,7 @@ } } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { :root[sizemode="fullscreen"] #TabsToolbar > .titlebar-buttonbox-container:last-child, :root[sizemode="fullscreen"] #window-controls { right: unset; @@ -6588,8 +6755,8 @@ } } /*= Tab Bar - Show only current tab ==========================================*/ -@supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { - :root:not([tabsintitlebar="true"]) #tabbrowser-tabs, +@media -moz-pref("userChrome.tabbar.as_titlebar") { + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs, #scrollbutton-up, #scrollbutton-down, .titlebar-spacer[type="pre-tabs"], @@ -6621,6 +6788,7 @@ width: 100%; } /* Pinned */ + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned][selected="true"], #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned][selected="true"] { position: relative !important; } @@ -6639,27 +6807,33 @@ width: unset !important; } /* Padding */ - @supports not -moz-bool-pref("userChrome.centered.tab") { + @media not -moz-pref("userChrome.centered.tab") { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { margin-inline: 2px !important; } + :root[sizemode="normal"] #pinned-tabs-container, :root[sizemode="normal"] #tabbrowser-arrowscrollbox { margin-inline: 6px !important; } } - @supports -moz-bool-pref("userChrome.centered.tab") { - @supports -moz-bool-pref("userChrome.centered.tab.label") { + @media -moz-pref("userChrome.centered.tab") { + @media -moz-pref("userChrome.centered.tab.label") { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { margin-inline: 2px !important; } + :root[sizemode="normal"] #pinned-tabs-container, :root[sizemode="normal"] #tabbrowser-arrowscrollbox { margin-inline: 6px !important; } } } - @supports -moz-bool-pref("browser.tabs.tabmanager.enabled") { - :root:not([tabsintitlebar="true"]) #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) ~ #alltabs-button, - :root:not([tabsintitlebar="true"]) + @media -moz-pref("browser.tabs.tabmanager.enabled") { + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) + #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) + ~ #alltabs-button, + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs[hasadjacentnewtabbutton]:not([overflow="true"]) ~ #new-tab-button { display: flex !important; @@ -6668,7 +6842,7 @@ } } /*= Tab Bar - Multi Row ======================================================*/ -@supports -moz-bool-pref("userChrome.tabbar.multi_row") { +@media -moz-pref("userChrome.tabbar.multi_row") { /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/multi-row_tabs.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ :root { @@ -6694,6 +6868,7 @@ } } .scrollbox-clip[orient="horizontal"], + #pinned-tabs-container, #tabbrowser-arrowscrollbox { overflow: -moz-hidden-unscrollable; display: block; @@ -6729,7 +6904,7 @@ } } /*= Tab Bar - Scollmode disabled =============================================*/ -@supports -moz-bool-pref("userChrome.tabbar.unscroll") { +@media -moz-pref("userChrome.tabbar.unscroll") { /* Disable scrollbox */ spacer[part="overflow-start-indicator"] + .scrollbox-clip > scrollbox { overflow: -moz-hidden-unscrollable !important; @@ -6771,6 +6946,7 @@ > #tabs-newtab-button { z-index: 2 !important; } + #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] #pinned-tabs-container, #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] #tabbrowser-arrowscrollbox { padding-inline-end: calc( 16px + (var(--toolbarbutton-inner-padding) + var(--toolbarbutton-outer-padding)) * 2 @@ -6778,7 +6954,7 @@ } } /*= Tab Bar - Fill width tab =================================================*/ -@supports -moz-bool-pref("userChrome.tabbar.fill_width") { +@media -moz-pref("userChrome.tabbar.fill_width") { /* Why 100vw? Tab closing requires width animation to end and "none" can't be animated */ .tabbrowser-tab[fadein]:not([style^="max-width"]) { --tab-max-width: 100vw; @@ -6787,35 +6963,53 @@ } /** Tab UI ********************************************************************/ /*= Tab - Connect to window ==============================================*/ -@supports -moz-bool-pref("userChrome.tab.connect_to_window") { - #tabbrowser-tabs[orient="vertical"] { - --uc-tab-border-bottom-radius: var(--tab-border-radius); +@media -moz-pref("userChrome.tab.connect_to_window") { + #TabsToolbar #tabbrowser-tabs:not([orient="vertical"]) { + max-height: var(--tab-min-height); } - .tab-background { + #TabsToolbar #tabbrowser-tabs:not([orient="vertical"])[movingtab] { + padding-bottom: unset !important; + margin-bottom: unset !important; + } + #TabsToolbar[multibar] #tabbrowser-tabs:not([orient="vertical"]) { + max-height: var(--tab-min-height_mlt); + } + #tabbrowser-tabs:not([orient="vertical"]) { + min-height: unset !important; /* Original: var(--tabstrip-min-height) */ + } + #tabbrowser-tabs:not([orient="vertical"]) .tab-background { border-radius: var(--tab-border-radius) var(--tab-border-radius) var(--uc-tab-border-bottom-radius, 0px) var(--uc-tab-border-bottom-radius, 0px) !important; margin-bottom: 0px !important; } - .tab-content { + #tabbrowser-tabs:not([orient="vertical"]) .tab-content { margin-top: 0px; } - .tab-stack { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack { margin-top: 0px !important; margin-bottom: 0px !important; } + #tabbrowser-tabs:not([orient="vertical"]) tab-group .tabbrowser-tab:is([selected], [multiselected]) .tab-group-line { + transform: translateY(calc(var(--tab-group-line-thickness) * -1)); + } + #tabbrowser-tabs[orient="vertical"] { + --uc-tab-border-bottom-radius: var(--tab-border-radius); + } /* Remove line at Toolbar's top */ #tabbrowser-tabs { z-index: 1 !important; } - @supports not -moz-bool-pref("userChrome.tabbar.multi_row") { + @media not -moz-pref("userChrome.tabbar.multi_row") { #TabsToolbar:not([multibar]) { overflow: clip; /* Prevent toolbar area over */ } } /* Pinned Tab - tabbrowser-arrowscrollbox overflowing */ + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned], #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] { z-index: 0 !important; } + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned] .tab-stack, #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] .tab-stack { /* Temporary solution for compatibility #513 */ overflow-y: clip; @@ -6833,19 +7027,14 @@ } /*= Selected Tab =============================================================*/ /*= Selected Tab - Bold ======================================================*/ -@supports not -moz-bool-pref("userChrome.tab.selected_bold") { - .tab-label:is([selected], [attention]) { - font-weight: 400 !important; - } -} -@supports -moz-bool-pref("userChrome.tab.selected_bold") { +@media -moz-pref("userChrome.tab.selected_bold") { .tab-label:is([selected], [attention]) { font-weight: 600; } } /*= Selected Tab - Color like toolbar ========================================*/ -@supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { +@media -moz-pref("userChrome.tab.color_like_toolbar") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) { /* Fix for windows's system default theme. Using --toolbar-bgcolor, --toolbar-bgimage fallback */ --tab-selected-bgcolor: unset !important; /* Original: rgb(255,255,255); */ @@ -6855,6 +7044,26 @@ .tab-background:is([selected], [multiselected]) { background-color: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)) !important; } + :root:is(:-moz-lwtheme, [lwtheme]) #pinned-tabs-container > .tabbrowser-tab > .tab-stack > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root:is(:-moz-lwtheme, [lwtheme]) #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -6865,6 +7074,19 @@ > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[selected] { /* Original: linear-gradient(var(--lwt-selected-tab-background-color, transparent), var(--lwt-selected-tab-background-color, transparent)), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) */ @@ -6874,7 +7096,31 @@ background-attachment: scroll, scroll, fixed; background-repeat: repeat-x, repeat-x, no-repeat !important; } - @supports -moz-bool-pref("userChrome.theme.transparent.frame") { + @media -moz-pref("userChrome.theme.transparent.frame") { + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -6885,6 +7131,19 @@ > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[selected] { background-image: linear-gradient(transparent, transparent), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-additional-images, none) !important; @@ -6894,17 +7153,36 @@ } } /*= Multi Selected Color - More Contrast =====================================*/ -@supports -moz-bool-pref("userChrome.tab.multi_selected") { - #TabsToolbar { +@media -moz-pref("userChrome.tab.multi_selected") { + #TabsToolbar, + #vertical-tabs { --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 28%, var(--toolbar-bgcolor, transparent)); } - #TabsToolbar[brighttext] { + #TabsToolbar[brighttext], + #vertical-tabs[brighttext] { --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 16%, var(--toolbar-bgcolor, transparent)); } + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[multiselected]:not([selected]), + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[multiselected]:not([selected]) { /* Original: background-attachment: scroll, scroll, fixed; @@ -6924,12 +7202,12 @@ background-repeat: repeat-x, no-repeat !important; background-size: auto 100%, auto auto !important; } - @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + @media -moz-pref("userChrome.tab.connect_to_window") { .tab-background[multiselected="true"] { outline: none !important; } } - @supports not -moz-bool-pref("userChrome.tab.connect_to_window") { + @media not -moz-pref("userChrome.tab.connect_to_window") { /* Backport from FF 99 */ .tab-background[multiselected="true"] { outline: 1px solid color-mix(in srgb, var(--focus-outline-color, currentColor) 40%, transparent); @@ -6942,7 +7220,7 @@ } } /*= Selected Tab - Box Shadow ================================================*/ -@supports -moz-bool-pref("userChrome.tab.box_shadow") { +@media -moz-pref("userChrome.tab.box_shadow") { #TabsToolbar { --uc-tab-shadow-color: var( --tab-line-color, @@ -7010,12 +7288,12 @@ } } /*= Selected Tab - Bottom Rounded Corner =====================================*/ -@supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { - @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") { - @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.australis") { - @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome") { - @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") { - @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { +@media -moz-pref("userChrome.tab.bottom_rounded_corner") { + @media not -moz-pref("userChrome.tab.bottom_rounded_corner.wave") { + @media not -moz-pref("userChrome.tab.bottom_rounded_corner.australis") { + @media not -moz-pref("userChrome.tab.bottom_rounded_corner.chrome") { + @media not -moz-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") { + @media not -moz-pref("userChrome.tab.bottom_rounded_corner.edge") { #TabsToolbar { --uc-tab-corner-rounding: 3px; /* 10px looks about like chromium - 17px looks close to Australis tabs */ --uc-tab-corner-padding: 0px; @@ -7042,13 +7320,13 @@ background-repeat: no-repeat; background-position-y: bottom; } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.all") { :root:not([customizing="true"]) .tabbrowser-tab .tab-background::before, :root:not([customizing="true"]) .tabbrowser-tab .tab-background::after { content: ""; } } - @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + @media not -moz-pref("userChrome.tab.color_like_toolbar") { :root:not([customizing="true"]) .tabbrowser-tab .tab-background::before, :root:not([customizing="true"]) .tabbrowser-tab .tab-background::after { /* Based on tab background @@ -7077,7 +7355,7 @@ fill: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)); stroke: var(--tab-line-color, var(--tabs-border-color, rgba(128, 128, 142, 0.9))); } - @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + @media not -moz-pref("userChrome.tab.bottom_rounded_corner.all") { :root:not([customizing="true"]) .tabbrowser-tab[visuallyselected] .tab-background::before, :root:not([customizing="true"]) .tabbrowser-tab[visuallyselected] .tab-background::after { content: ""; @@ -7095,7 +7373,7 @@ .tab-background::after { fill: color-mix(in srgb, currentColor 11%, transparent); } - @supports -moz-bool-pref("userChrome.tab.multi_selected") { + @media -moz-pref("userChrome.tab.multi_selected") { :root:not([customizing="true"]) .tabbrowser-tab[multiselected]:not([visuallyselected]) .tab-background::before, @@ -7159,11 +7437,7 @@ } } } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.australis" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.chrome" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-pref("userChrome.tab.bottom_rounded_corner.australis") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-pref("userChrome.tab.bottom_rounded_corner.edge") { #TabsToolbar { --uc-tab-corner-height: calc(var(--tab-min-height) + 1px); --uc-tab-corner-size: var(--uc-tab-corner-height); @@ -7171,7 +7445,7 @@ --uc-tab-corner-half-size-reverse: calc(var(--uc-tab-corner-half-size) * -1); --uc-tab-corner-bgimage: none; } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.wave") { #TabsToolbar { --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-wave.svg"); --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-wave.svg#svgClipPath"); @@ -7181,7 +7455,7 @@ --uc-tab-corner-right-side-svg-clipped: url("../icons/tab-bottom-corner-right-wave-clipped.svg"); } } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.australis") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.australis") { #TabsToolbar { --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-australis.svg"); --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-australis.svg#svgClipPath"); @@ -7191,7 +7465,7 @@ --uc-tab-corner-right-side-svg-clipped: url("../icons/tab-bottom-corner-right-australis-cilpped.svg"); } } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.chrome") { #TabsToolbar { --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-chrome.svg"); --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-chrome.svg#svgClipPath"); @@ -7202,7 +7476,7 @@ --uc-tab-corner-size: 16px; } } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") { #TabsToolbar { --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-chromeLegacy.svg"); --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-chromeLegacy.svg#svgClipPath"); @@ -7212,7 +7486,7 @@ --uc-tab-corner-right-side-svg-clipped: url("../icons/tab-bottom-corner-right-chromeLegacy-clipped.svg"); } } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.edge") { #TabsToolbar { --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-edge.svg"); --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-edge.svg#svgClipPath"); @@ -7223,7 +7497,7 @@ --uc-tab-corner-size: 14px; } } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.all") { .tabbrowser-tab { padding-inline: 0 !important; overflow-clip-margin: var(--uc-tab-corner-half-size) !important; @@ -7234,7 +7508,7 @@ position: relative; } } - @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + @media not -moz-pref("userChrome.tab.bottom_rounded_corner.all") { .tabbrowser-tab[visuallyselected] { padding-inline: 0 !important; overflow-clip-margin: var(--uc-tab-corner-half-size) !important; @@ -7268,13 +7542,13 @@ background-position: bottom, right top; background-attachment: scroll, fixed; } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.all") { .tabbrowser-tab .tab-background::before, .tabbrowser-tab .tab-background::after { content: ""; } } - @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + @media not -moz-pref("userChrome.tab.color_like_toolbar") { .tabbrowser-tab .tab-background::before, .tabbrowser-tab .tab-background::after { /* Based on tab background @@ -7314,7 +7588,7 @@ .tabbrowser-tab:hover:not([visuallyselected], [multiselected]) .tab-background::after { fill: color-mix(in srgb, currentColor 11%, transparent); } - @supports -moz-bool-pref("userChrome.tab.multi_selected") { + @media -moz-pref("userChrome.tab.multi_selected") { .tabbrowser-tab[multiselected]:not([visuallyselected]) .tab-background::before, .tabbrowser-tab[multiselected]:not([visuallyselected]) .tab-background::after { fill: var(--uc-multiselected-tab-bgcolor); @@ -7328,7 +7602,7 @@ } @media (-moz-gtk-csd-available) { /* Fill color for GTK */ - @supports -moz-bool-pref("userChrome.tab.box_shadow") { + @media -moz-pref("userChrome.tab.box_shadow") { :root:not([lwtheme="true"]) .tabbrowser-tab { --uc-tab-shadow-color: rgba(0, 0, 0, 0.4); } @@ -7345,7 +7619,7 @@ --uc-tab-corner-bgimage: linear-gradient(var(--toolbar-non-lwt-bgcolor), var(--toolbar-non-lwt-bgcolor)); fill: rgba(255, 255, 255, 0.075); } - @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + @media not -moz-pref("userChrome.tab.color_like_toolbar") { :root:not([lwtheme="true"]) .tabbrowser-tab[visuallyselected] .tab-background::before, :root:not([lwtheme="true"]) .tabbrowser-tab[visuallyselected] .tab-background::after { fill: rgba(255, 255, 255, 0.15); @@ -7364,21 +7638,19 @@ } } /*= Selected Tab - Photon like contextline ===================================*/ -@supports -moz-bool-pref("userChrome.tab.photon_like_contextline") or -moz-bool-pref("userChrome.tab.static_separator") or -moz-bool-pref( - "userChrome.tab.bar_separator" - ) { - @supports -moz-bool-pref("userChrome.tab.blue_accent") { +@media -moz-pref("userChrome.tab.photon_like_contextline") or -moz-pref("userChrome.tab.static_separator") or -moz-pref("userChrome.tab.bar_separator") { + @media -moz-pref("userChrome.tab.blue_accent") { :root, #tabbrowser-tabs { --tab-line-color: rgb(10, 132, 255) !important; } } - @supports not -moz-bool-pref("userChrome.tab.blue_accent") { + @media not -moz-pref("userChrome.tab.blue_accent") { @media (-moz-gtk-csd-available) { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs { --tab-line-color: AccentColor !important; /* -moz-accent-color */ } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs { --tab-line-color: Highlight !important; /* -moz-accent-color */ } @@ -7386,7 +7658,7 @@ } } } -@supports -moz-bool-pref("userChrome.tab.photon_like_contextline") { +@media -moz-pref("userChrome.tab.photon_like_contextline") { .tab-context-line { display: inline-flex !important; display: -moz-inline-box !important; @@ -7460,15 +7732,138 @@ margin: unset !important; } } +/*= Selected Tab - Supernova like contextline ===================================*/ +@media not -moz-pref("userChrome.tab.photon_like_contextline") { + @media -moz-pref("userChrome.tab.supernova_like_contextline") { + /* context line styles */ + tabs tab.tabbrowser-tab > .tab-stack > .tab-background > .tab-context-line { + display: inline-flex !important; + display: -moz-inline-box !important; + } + tabs tab.tabbrowser-tab > .tab-stack > .tab-background > .tab-context-line::before { + content: ""; + height: 1px !important; + border-radius: 9999px !important; + transform: translateY(5px); + margin-top: -1px !important; + margin-left: 5px; + margin-right: 5px; + width: 100%; + } + /* Override container-tab style */ + tabs tab.tabbrowser-tab[usercontextid] > .tab-stack > .tab-background > .tab-context-line { + margin: unset !important; + } + /* selected tab style */ + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] .tab-context-line, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] .tab-context-line { + --tab-line-color: #45a1ff; + } + .tabbrowser-tab:is([selected], [multiselected]) .tab-context-line::before { + background-color: var(--tab-line-color, var(--lwt-tab-line-color, #45a1ff)) !important; + } + /* Set the active effect */ + .tabbrowser-tab:active > .tab-stack > .tab-background > .tab-context-line::before { + filter: brightness(70%); + margin-left: 6px; + margin-right: 6px; + } + /* Set the hover effect */ + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + background-color: rgba(0, 0, 0, 0.4) !important; + opacity: 1 !important; + } + #TabsToolbar[brighttext] + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + background-color: rgba(255, 255, 255, 0.4) !important; + } + /* Animation */ + @media (prefers-reduced-motion: no-preference) { + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + animation: toWide 0.2s cubic-bezier(0, 0.9, 0.15, 1); + } + } + /* Animation for hover effect */ + @keyframes toWide { + 0% { + opacity: 0.8; + margin-left: 40%; + margin-right: 40%; + } + 100% { + opacity: 1; + margin-left: 5px; + margin-right: 5px; + } + } + /* --- copied (not modified) from _photon_like_contextline.scss --- */ + /* Prevent identity color flashing */ + .tabbrowser-tab[usercontextid] .tab-context-line { + --identity-icon-color: none; + } + :root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::before, + :root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::after { + /* As Selected Tab - Box Shadow */ + stroke: var(--toolbar-color) !important; + } + /* Remove side's background color border */ + :root:is(:-moz-lwtheme, [lwtheme]) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + > .tab-stack + > .tab-background { + --tabs-border-color: rgba(0, 0, 0, 0.3) !important; + box-shadow: 0 0 1px var(--tabs-border-color) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)) */ + } + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + > .tab-stack + > .tab-background { + box-shadow: 0 0 1px var(--tabs-border-color), 0 0 4px rgba(128, 128, 142, 0.5) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)), 0 0 4px rgba(128,128,142,0.5) */ + } + @media -moz-pref("userChrome.tab.contextline_blue_accent") { + #tabbrowser-tabs .tab-context-line { + --tab-line-color: #45a1ff !important; + } + } + @media not -moz-pref("userChrome.tab.contextline_blue_accent") { + @media (-moz-gtk-csd-available) { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs .tab-context-line { + --tab-line-color: AccentColor !important; /* -moz-accent-color */ + } + @media -moz-pref("userChrome.compatibility.accent_color") { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs .tab-context-line { + --tab-line-color: Highlight !important; /* -moz-accent-color */ + } + } + } + } + } +} /*= Unselected Tab - Divide line =============================================*/ /*= Unselected Tab - Dynamic Separator =======================================*/ -@supports -moz-bool-pref("userChrome.tab.dynamic_separator") { +@media -moz-pref("userChrome.tab.dynamic_separator") { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { --start-tab-separator-position-x: -1.5px; --end-tab-separator-position-x: 1.5px; --tab-separator-position-x: -2.5px; --tab-separator-position-y: calc(-50% + 1px); } + #pinned-tabs-container:-moz-locale-dir(rtl), #tabbrowser-arrowscrollbox:-moz-locale-dir(rtl) { --start-tab-separator-position-x: 1.5px; --end-tab-separator-position-x: -1.5px; @@ -7477,9 +7872,9 @@ #tabbrowser-arrowscrollbox-periphery { position: relative; } - @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - .tab-stack::before, - #tabs-newtab-button::before { + @media -moz-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { /* Box Model */ content: ""; display: block; @@ -7495,19 +7890,20 @@ /* More position */ transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } - @supports -moz-bool-pref("userChrome.compatibility.dynamic_separator") { - .tab-stack::before, - #tabs-newtab-button::before { + @media -moz-pref("userChrome.compatibility.dynamic_separator") { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { background-color: var(--tabs-border-color); } } - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { left: calc(50% - (8px + var(--toolbarbutton-inner-padding))); } } - @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - .tab-stack::before, - #tabbrowser-arrowscrollbox:not([overflowing]) + @media not -moz-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { /* Box Model */ @@ -7523,36 +7919,49 @@ opacity: 0; background-color: var(--toolbarseparator-color); } - @supports -moz-bool-pref("userChrome.compatibility.dynamic_separator") { - .tab-stack::before, - #tabbrowser-arrowscrollbox:not([overflowing]) + @media -moz-pref("userChrome.compatibility.dynamic_separator") { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { background-color: var(--tabs-border-color); } } - .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before { transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; } - .tabbrowser-tab:last-of-type .tab-stack::after { + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type .tab-stack::after { right: 0; transform: translateX(var(--end-tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; } } - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) .tab-stack::before { + #pinned-tabs-container:not([orient="vertical"]):not(:empty):not( + :has(.tabbrowser-tab[pinned]:is([visuallyselected], [multiselected], :hover):last-of-type) + ) + ~ #tabbrowser-arrowscrollbox:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) + .tab-stack::before { opacity: var(--tab-separator-opacity); } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before { opacity: var(--tab-separator-opacity); transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before { opacity: var(--tab-separator-opacity); transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } @@ -7560,19 +7969,28 @@ } } } - @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button:not(:hover, [open])::before { + @media -moz-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:not(:hover, [open])::before { opacity: var(--tab-separator-opacity); } } - @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - #tabbrowser-arrowscrollbox:not([overflowing]) + @media not -moz-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { opacity: var(--tab-separator-opacity); } } + #tabbrowser-tabs:not([orient="vertical"]) + tab-group:has(.tabbrowser-tab:last-child:is(:hover, [selected])) + + .tabbrowser-tab + .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) tab-group[collapsed] + .tabbrowser-tab .tab-stack::before { + opacity: 0 !important; + } #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))):is( [visuallyselected], [multiselected], @@ -7580,51 +7998,60 @@ ) .tab-stack::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox[overflowing] tab.tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) .tab-stack::before { opacity: 0 !important; } - @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + @media -moz-pref("userChrome.tab.newtab_button_like_tab") { #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + .tabbrowser-tab .tab-stack::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) ~ #tabs-newtab-button::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) ~ #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button::before { opacity: 0 !important; } } - @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + @media not -moz-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + .tabbrowser-tab:not([visuallyselected]) .tab-stack::before { opacity: 0 !important; } - :root:not([uidensity="compact"]) #tabs-newtab-button > .toolbarbutton-icon { + :root:not([uidensity="compact"]) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button + > .toolbarbutton-icon { margin-left: 2px; } - :root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + :root[uidensity="compact"] #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button > .toolbarbutton-icon { margin-left: 1px; } } /* Animate */ @media (prefers-reduced-motion: no-preference) { - .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } - @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button::before { + @media -moz-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } } - @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - #tabbrowser-arrowscrollbox:not([overflowing]) + @media not -moz-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ @@ -7632,12 +8059,12 @@ } } /* Latest Tab & New tab margin */ - #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { margin-inline-end: 1px !important; } } /*= Unselected Tab - Static Separator ========================================*/ -@supports -moz-bool-pref("userChrome.tab.static_separator") { +@media -moz-pref("userChrome.tab.static_separator") { #TabsToolbar { --toolbarseparator-color: color-mix(in srgb, currentColor 30%, transparent); } @@ -7663,14 +8090,14 @@ .tab-stack::after { right: 0; } - @supports -moz-bool-pref("userChrome.tab.static_separator.selected_accent") { + @media -moz-pref("userChrome.tab.static_separator.selected_accent") { .tabbrowser-tab[visuallyselected] .tab-stack::before, .tabbrowser-tab[visuallyselected] + .tabbrowser-tab .tab-stack::before, .tabbrowser-tab[visuallyselected] .tab-stack::after { --toolbarseparator-color: var(--tab-line-color, var(--lwt-tab-line-color, rgb(10, 132, 255))); } } - @supports not -moz-bool-pref("userChrome.tab.static_separator.selected_accent") { + @media not -moz-pref("userChrome.tab.static_separator.selected_accent") { .tabbrowser-tab[visuallyselected] .tab-stack::before, .tabbrowser-tab[visuallyselected] + .tabbrowser-tab .tab-stack::before, .tabbrowser-tab[visuallyselected] .tab-stack::after { @@ -7686,7 +8113,7 @@ } } /*= Unselected Tab - Bar Separator ===========================================*/ -@supports -moz-bool-pref("userChrome.tab.bar_separator") { +@media -moz-pref("userChrome.tab.bar_separator") { .tab-stack::before { /* Box Model */ content: ""; @@ -7727,7 +8154,7 @@ .tab-stack::before { --uc-bar-separator-color: var(--lwt-tab-loading-fill-inactive, #84c1ff); } - @supports -moz-bool-pref("userChrome.tab.unloaded") { + @media -moz-pref("userChrome.tab.unloaded") { :root[sessionrestored] .tabbrowser-tab[pending] .tab-stack::before { opacity: 0.7; } @@ -7735,17 +8162,17 @@ } /*= New tab button ============================================================*/ /*= New tab button - Looks like tab ==========================================*/ -@supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - @supports -moz-bool-pref("userChrome.tab.connect_to_window") { - #tabs-newtab-button { +@media -moz-pref("userChrome.tab.newtab_button_like_tab") { + @media -moz-pref("userChrome.tab.connect_to_window") { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { /* Size */ align-items: stretch !important; -moz-box-align: stretch !important; padding-top: var(--tab-block-margin) !important; } } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { - #tabs-newtab-button { + @media -moz-pref("userChrome.tab.bottom_rounded_corner") { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { /* Original: margin: 0 0 var(--tabs-navbar-shadow-size) !important => Can't override style. Therefore, we should approach it by bypass. @@ -7765,12 +8192,8 @@ fill: var(--uc-newtab-bgcolor) !important; -moz-context-properties: fill !important; } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.australis" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.chrome" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-pref("userChrome.tab.bottom_rounded_corner.australis") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-pref("userChrome.tab.bottom_rounded_corner.edge") { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { --uc-newtab-position: 0px; --uc-newtab-non-corner-bgwidth: 0px; --uc-tab-corner-half-height: calc(var(--uc-tab-corner-height) / 2); @@ -7789,8 +8212,8 @@ var(--uc-tab-corner-height) var(--uc-tab-corner-height); background-origin: padding-box; } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-pref("userChrome.tab.bottom_rounded_corner.edge") { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { --uc-newtab-non-corner-bgwidth: calc(2 * var(--toolbarbutton-inner-padding)); } } @@ -7804,24 +8227,30 @@ --uc-newtab-bgcolor: var(--toolbarbutton-active-background); } @media (-moz-windows-accent-color-in-titlebar) { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { fill: color-mix(in srgb, AccentColorText 10%, transparent) !important; /* Hardcoded for compatibility */ } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover:active { fill: color-mix(in srgb, AccentColorText 15%, transparent) !important; /* Hardcoded for compatibility */ } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.australis" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.chrome" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + @media -moz-pref("userChrome.tab.bottom_rounded_corner") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-pref("userChrome.tab.bottom_rounded_corner.australis") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-pref("userChrome.tab.bottom_rounded_corner.edge") { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( to left, @@ -7830,9 +8259,11 @@ ), var(--uc-tab-corner-right-side-svg); } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( @@ -7844,19 +8275,24 @@ } } } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + @media -moz-pref("userChrome.compatibility.accent_color") { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { fill: color-mix( in srgb, -moz-accent-color-foreground 10%, transparent ) !important; /* Hardcoded for compatibility */ } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active { fill: color-mix( in srgb, @@ -7864,15 +8300,17 @@ transparent ) !important; /* Hardcoded for compatibility */ } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.australis" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.chrome" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + @media -moz-pref("userChrome.tab.bottom_rounded_corner") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-pref("userChrome.tab.bottom_rounded_corner.australis") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-pref("userChrome.tab.bottom_rounded_corner.edge") { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( to left, @@ -7881,9 +8319,14 @@ ), var(--uc-tab-corner-right-side-svg); } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( @@ -7898,7 +8341,7 @@ } } /* '+'Icon */ - #tabs-newtab-button .toolbarbutton-icon { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button .toolbarbutton-icon { border-radius: var(--tab-border-radius) var(--tab-border-radius) 0 0 !important; /* Original: var(--tab-border-radius) */ padding: calc(var(--toolbarbutton-inner-padding) - var(--tab-block-margin) / 4) var(--toolbarbutton-inner-padding) calc(var(--toolbarbutton-inner-padding) + var(--tab-block-margin) / 4 + var(--uc-tabs-navbar-shadow-size)) !important; @@ -7906,12 +8349,8 @@ fill: var(--toolbarbutton-icon-fill); fill-opacity: var(--toolbarbutton-icon-fill-opacity); } - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.australis" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( - "userChrome.tab.bottom_rounded_corner.chrome" - ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button .toolbarbutton-icon { + @media -moz-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-pref("userChrome.tab.bottom_rounded_corner.australis") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-pref("userChrome.tab.bottom_rounded_corner.edge") { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button .toolbarbutton-icon { --tab-border-radius: 0px; width: unset !important; padding-inline: 0px !important; @@ -7920,14 +8359,14 @@ } } /* Fix tab overlap #678 */ - @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { + @media -moz-pref("userChrome.tab.bottom_rounded_corner") { tab:where([visuallyselected]) { z-index: 1; } } } /*= New tab button - Smaller button ==========================================*/ -@supports -moz-bool-pref("userChrome.tab.newtab_button_smaller") { +@media -moz-pref("userChrome.tab.newtab_button_smaller") { #tabs-newtab-button > .toolbarbutton-icon { --tab-border-radius: var(--toolbarbutton-border-radius); margin-left: 1px; @@ -7936,20 +8375,20 @@ } } /*= New tab button - Proton like button ======================================*/ -@supports -moz-bool-pref("userChrome.tab.newtab_button_proton") { +@media -moz-pref("userChrome.tab.newtab_button_proton") { :root:not([uidensity="touch"]) #tabs-newtab-button > .toolbarbutton-icon { --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 1px); } } /*= Unloaded Tab - Contents Opacity ===========================================*/ -@supports -moz-bool-pref("userChrome.tab.unloaded") { +@media -moz-pref("userChrome.tab.unloaded") { .tabbrowser-tab[pending] .tab-content { opacity: 0.7; } } /*= Clipped tabs =============================================================*/ /** Clipped tabs - Letters cleary *********************************************/ -@supports -moz-bool-pref("userChrome.tab.letters_cleary") { +@media -moz-pref("userChrome.tab.letters_cleary") { #tabbrowser-tabs[closebuttons="activetab"] { --inline-tab-padding: 7px !important; /* Original: 8px */ } @@ -7975,6 +8414,10 @@ --tab-label-mask-size: 25%; } .tabbrowser-tab[visuallyselected]:not([labelendaligned]):hover .tab-label-container, + #tabbrowser-tabs:not([closebuttons="activetab"]) + > #pinned-tabs-container + > .tabbrowser-tab:not([visuallyselected], [labelendaligned]):hover + .tab-label-container, #tabbrowser-tabs:not([closebuttons="activetab"]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab:not([visuallyselected], [labelendaligned]):hover @@ -7983,7 +8426,13 @@ } } /** Clipped tabs - Show close button at hover *********************************/ -@supports -moz-bool-pref("userChrome.tab.close_button_at_hover") { +@media -moz-pref("userChrome.tab.close_button_at_hover") { + #tabbrowser-tabs[closebuttons="activetab"] + > #pinned-tabs-container + > .tabbrowser-tab:not([pinned]) + > .tab-stack + > .tab-content + > .tab-close-button:not([selected]), #tabbrowser-tabs[closebuttons="activetab"] > #tabbrowser-arrowscrollbox > .tabbrowser-tab:not([pinned]) @@ -8001,13 +8450,13 @@ visibility: visible !important; opacity: 1; } - @supports -moz-bool-pref("userChrome.tab.close_button_at_hover.with_selected") { + @media -moz-pref("userChrome.tab.close_button_at_hover.with_selected") { #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([pinned]):not(:hover) .tab-close-button { visibility: collapse !important; opacity: 0; } } - @supports -moz-bool-pref("userChrome.tab.close_button_at_hover.always") { + @media -moz-pref("userChrome.tab.close_button_at_hover.always") { .tabbrowser-tab:not([visuallyselected]) .tab-close-button { visibility: collapse !important; opacity: 0; @@ -8016,7 +8465,7 @@ visibility: visible !important; opacity: 1; } - @supports -moz-bool-pref("userChrome.tab.close_button_at_hover.with_selected") { + @media -moz-pref("userChrome.tab.close_button_at_hover.with_selected") { .tabbrowser-tab:not([pinned]):not(:hover) .tab-close-button { visibility: collapse !important; opacity: 0; @@ -8065,8 +8514,8 @@ } } /** Clipped tabs - Show close button at pinned tab ****************************/ -@supports -moz-bool-pref("userChrome.tab.close_button_at_pinned") { - @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { +@media -moz-pref("userChrome.tab.close_button_at_pinned") { + @media not -moz-pref("userChrome.tabbar.as_titlebar") { #tabbrowser-tabs { --uc-close-button-size: 24px; --uc-close-button-padding: 6px; @@ -8096,7 +8545,7 @@ .tabbrowser-tab[pinned][visuallyselected]:not([style*="transform: translateX"]):hover .tab-icon-image { display: none !important; } - @supports -moz-bool-pref("userChrome.tab.close_button_at_pinned.always") { + @media -moz-pref("userChrome.tab.close_button_at_pinned.always") { .tabbrowser-tab[pinned][visuallyselected]:not([busy]) .tab-close-button { display: flex !important; display: -moz-box !important; @@ -8117,7 +8566,7 @@ display: none !important; } } - @supports -moz-bool-pref("userChrome.tab.close_button_at_pinned.background") { + @media -moz-pref("userChrome.tab.close_button_at_pinned.background") { .tabbrowser-tab[pinned]:not([style*="transform: translateX"]):hover:not([busy]) .tab-close-button { display: flex !important; display: -moz-box !important; @@ -8146,7 +8595,7 @@ } } /** Clipped tabs - Always show tab icon ***************************************/ -@supports -moz-bool-pref("userChrome.tab.always_show_tab_icon") { +@media -moz-pref("userChrome.tab.always_show_tab_icon") { .tab-icon-image:not([src], [pinned], [crashed], [busy]) { display: inline-flex !important; display: -moz-inline-box !important; @@ -8154,22 +8603,22 @@ } /*= Sound Tab ================================================================*/ /*= Sound Tab - Hide Label ===================================================*/ -@supports -moz-bool-pref("userChrome.tab.sound_hide_label") { - @supports not -moz-bool-pref("userChrome.tab.sound_show_label") { +@media -moz-pref("userChrome.tab.sound_hide_label") { + @media not -moz-pref("userChrome.tab.sound_show_label") { .tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]) { display: none !important; } } } /*= Sound Tab - Show Label ===================================================*/ -@supports -moz-bool-pref("userChrome.tab.sound_show_label") { +@media -moz-pref("userChrome.tab.sound_show_label") { .tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]) { display: flex !important; display: -moz-box !important; } } /*= Sound Tab - Show with Favicons ===========================================*/ -@supports -moz-bool-pref("userChrome.tab.sound_with_favicons") { +@media -moz-pref("userChrome.tab.sound_with_favicons") { /* Makes the favicons always visible (also on hover) */ .tab-icon-image:not([pinned]) { opacity: 1 !important; @@ -8183,7 +8632,7 @@ .tabbrowser-tab:-moz-locale-dir(rtl) { --uc-sound-tab-icon-position-x: calc(-1 * var(--uc-sound-tab-icon-position-x-default)); } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { + @media -moz-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned]) { --uc-sound-tab-icon-position-x-default: 7px; --uc-sound-tab-icon-position-y: -1px; @@ -8202,6 +8651,24 @@ width: 17px !important; height: 17px !important; } + .tab-icon-overlay:not([crashed]):is([soundplaying], [muted], [activemedia-blocked]) { + -moz-context-properties: fill, fill-opacity, stroke !important; + fill: currentColor !important; + border: none !important; + } + .tab-icon-overlay:not([crashed]):is([pinned], [sharing]) { + stroke: var(--tab-icon-overlay-stroke, light-dark(white, black)); + color: var(--tab-icon-overlay-fill, light-dark(black, white)); + } + .tab-icon-overlay:not([crashed])[soundplaying] { + list-style-image: url("./icons/tab-audio-playing-small.svg"); + } + .tab-icon-overlay:not([crashed])[muted] { + list-style-image: url("./icons/tab-audio-muted-small.svg"); + } + .tab-icon-overlay:not([crashed])[activemedia-blocked] { + list-style-image: url("./icons/tab-audio-blocked-small.svg"); + } .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { /* Color */ color: currentColor !important; @@ -8210,13 +8677,36 @@ fill-opacity: 0.8 !important; opacity: 1 !important; } + .tab-audio-button:not([crashed]), + .tab-audio-button[pinned][crashed][selected] { + /* Position */ + margin-inline-start: -8px !important; + margin-inline-end: -4px !important; + z-index: 1 !important; + transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(var(--uc-sound-tab-icon-position-y)); + /* Shape */ + --button-size-icon-small: 17px !important; + --button-min-height-small: 17px !important; + --button-border-radius: 100% !important; + width: 17px !important; + height: 17px !important; + border-radius: 100%; + overflow: clip; + --button-text-color-ghost-hover: light-dark(white, black); + --button-background-color-ghost-hover: light-dark(black, white); + } + .tab-audio-button:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { + display: flex !important; + fill-opacity: 0.8 !important; + opacity: 1 !important; + } /* Label */ - @supports not -moz-bool-pref("userChrome.hidden.tab_icon") { + @media not -moz-pref("userChrome.hidden.tab_icon") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { --uc-sound-tab-label-position-x-default: 4px; } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { + @media -moz-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { --uc-sound-tab-label-position-x-default: 8px; @@ -8240,13 +8730,13 @@ transform: translateX(var(--uc-sound-tab-label-position-x)); } } - @supports -moz-bool-pref("userChrome.hidden.tab_icon") { - @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { + @media -moz-pref("userChrome.hidden.tab_icon") { + @media not -moz-pref("userChrome.hidden.tab_icon.always") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { --uc-sound-tab-label-position-x-default: 4px; } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { + @media -moz-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { --uc-sound-tab-label-position-x-default: 8px; @@ -8282,7 +8772,7 @@ } } /* None exist favicon - Size bigger */ - @supports not -moz-bool-pref("userChrome.tab.always_show_tab_icon") { + @media not -moz-pref("userChrome.tab.always_show_tab_icon") { .tabbrowser-tab .tab-label-container[labeldirection="ltr"], .tabbrowser-tab .tab-label-container:not([labeldirection]):-moz-locale-dir(ltr) { --uc-sound-tab-no-icon-position-x: -0.5px; @@ -8293,7 +8783,7 @@ --uc-sound-tab-no-icon-position-x: 0.5px; --uc-sound-tab-no-icon-label-position-x: -3px; } - @supports not -moz-bool-pref("userChrome.hidden.tab_icon") { + @media not -moz-pref("userChrome.hidden.tab_icon") { .tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]) { transform: translateX(var(--uc-sound-tab-no-icon-position-x)) translateY(-1px); inset-inline-end: 0 !important; @@ -8313,8 +8803,8 @@ transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); } } - @supports -moz-bool-pref("userChrome.hidden.tab_icon") { - @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { + @media -moz-pref("userChrome.hidden.tab_icon") { + @media not -moz-pref("userChrome.hidden.tab_icon.always") { .tabbrowser-tab .tab-icon-overlay:not([pinned], [sharing], [crashed]) { transform: translateX(var(--uc-sound-tab-no-icon-position-x)) translateY(-1px); inset-inline-end: 0 !important; @@ -8369,7 +8859,7 @@ } } /*= PictureInPicture Tab - Show PIP Icon =====================================*/ -@supports -moz-bool-pref("userChrome.tab.pip") { +@media -moz-pref("userChrome.tab.pip") { #tabbrowser-tabs:not([closebuttons="activetab"]) .tabbrowser-tab[pictureinpicture]:not([pinned]) .tab-content::after, #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab[pictureinpicture]:not([pinned], :hover) @@ -8410,9 +8900,9 @@ } } /*= Container Tab - Color line at icon's bottom ==============================*/ -@supports -moz-bool-pref("userChrome.tab.container") { - @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { - @supports not -moz-bool-pref("userChrome.tab.photon_like_contextline") { +@media -moz-pref("userChrome.tab.container") { + @media not -moz-pref("userChrome.tabbar.as_titlebar") { + @media not -moz-pref("userChrome.tab.photon_like_contextline") { .tab-context-line { display: none; } @@ -8427,7 +8917,7 @@ #tabbrowser-tabs:-moz-locale-dir(rtl) { --uc-container-position-x: -9px; } - @supports -moz-bool-pref("userChrome.tab.container.on_top") { + @media -moz-pref("userChrome.tab.container.on_top") { #tabbrowser-tabs { --uc-container-position-y: calc(var(--uc-container-position-y-bottom) * -1); } @@ -8454,7 +8944,7 @@ .tabbrowser-tab[visuallyselected] .tab-content::before { opacity: 1; } - @supports not -moz-bool-pref("userChrome.tab.container.always_long") { + @media not -moz-pref("userChrome.tab.container.always_long") { .tab-content::before { width: 25%; } @@ -8477,12 +8967,12 @@ transform: translateY(var(--uc-container-position-y)); width: 16px; } - @supports -moz-bool-pref("userChrome.tab.close_button_at_pinned") { + @media -moz-pref("userChrome.tab.close_button_at_pinned") { .tabbrowser-tab[pinned][visuallyselected]:not([busy]):hover .tab-content::before { opacity: 0; } } - @supports not -moz-bool-pref("userChrome.tab.container.on_top") { + @media not -moz-pref("userChrome.tab.container.on_top") { .tabbrowser-tab:is([image], [pinned])[usercontextid] > .tab-stack > .tab-content[attention]:not([selected])::before, @@ -8527,7 +9017,7 @@ --uc-titlechanged-container-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px); } } - @supports -moz-bool-pref("userChrome.tab.container.on_top") { + @media -moz-pref("userChrome.tab.container.on_top") { .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected]), .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected]) { /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ @@ -8537,14 +9027,14 @@ } } /*= Crashed Tab - Don't show Favicons ========================================*/ -@supports -moz-bool-pref("userChrome.tab.crashed") { +@media -moz-pref("userChrome.tab.crashed") { .tab-icon-image[crashed] { display: none !important; } } /** Nav Bar UI ****************************************************************/ /*= Nav Bar - Navbar comabine with sidebar===================================*/ -@supports -moz-bool-pref("userChrome.navbar.as_sidebar") { +@media -moz-pref("userChrome.navbar.as_sidebar") { :root { --uc-navbar-margin-block: var(--toolbarbutton-inner-padding); --uc-urlbar-margin-top: calc(var(--uc-navbar-height) + var(--uc-navbar-margin-block)); @@ -8583,13 +9073,13 @@ opacity: 0; visibility: hidden; } - :root:has(#sidebar-box[positionend="true"]) #nav-bar { + :root:has(#sidebar-box[positionend]) #nav-bar { right: 0; } } @media (prefers-reduced-motion: no-preference) { - @supports -moz-bool-pref("userChrome.decoration.animate") { - @supports not -moz-bool-pref("userChrome.decoration.disable_sidebar_animate") { + @media -moz-pref("userChrome.decoration.animate") { + @media not -moz-pref("userChrome.decoration.disable_sidebar_animate") { #nav-bar { transition: margin-inline-start 0.25s var(--animation-easing-function), opacity 0.25s ease-in-out, visibility 0s linear, @@ -8603,7 +9093,7 @@ transition-delay: 0s, 0s, 0.25s, 0s, 0s !important; } } - @supports -moz-bool-pref("userChrome.decoration.disable_sidebar_animate") { + @media -moz-pref("userChrome.decoration.disable_sidebar_animate") { #nav-bar { transition: margin-top var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), @@ -8646,7 +9136,7 @@ position: absolute; height: 100%; } - :root[customizing="true"] #browser[collapsed="true"] #sidebar-box[positionend="true"] { + :root[customizing="true"] #browser[collapsed="true"] #sidebar-box[positionend] { right: 0; } :root[customizing="true"] #customization-container { @@ -8654,15 +9144,15 @@ width: calc(100% - var(--uc-sidebar-activate-width)); height: calc(100% - var(--uc-customization-conatiner-margin)); } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { :root[customizing="true"] #customization-container { --uc-customization-conatiner-margin: calc(var(--uc-navbar-height-default) - var(--uc-tabbar-height-default)); } } - :root[customizing="true"]:has(#sidebar-box:not([positionend="true"])) #customization-container { + :root[customizing="true"]:has(#sidebar-box:not([positionend])) #customization-container { margin-inline-start: var(--uc-sidebar-activate-width); } - :root[customizing="true"]:has(#sidebar-box[positionend="true"]) #customization-container { + :root[customizing="true"]:has(#sidebar-box[positionend]) #customization-container { margin-inline-end: var(--uc-sidebar-activate-width); } :root[customizing="true"] #customization-palette-container, @@ -8671,7 +9161,7 @@ } } /** Bookark Bar UI ************************************************************/ -@supports -moz-bool-pref("userChrome.bookmarkbar.multi_row") { +@media -moz-pref("userChrome.bookmarkbar.multi_row") { #PersonalToolbar { --uc-multirow-bookmark-rows: 3; --uc-multirow-bookmark-row-margin: 2px; @@ -8705,7 +9195,7 @@ } /** Url View UI ***************************************************************/ /*= Url Bar - Icon box as Separator ==========================================*/ -@supports -moz-bool-pref("userChrome.urlbar.iconbox_with_separator") { +@media -moz-pref("userChrome.urlbar.iconbox_with_separator") { #identity-box { /* separator */ position: relative; @@ -8750,14 +9240,14 @@ } } /*= Url View - Share Layout ==================================================*/ -@supports -moz-bool-pref("userChrome.urlView.as_commandbar") or -moz-bool-pref("userChrome.urlView.full_width_padding") { +@media -moz-pref("userChrome.urlView.as_commandbar") or -moz-pref("userChrome.urlView.full_width_padding") { .urlbarView { --uc-urlView-padding: calc(5px + var(--urlbar-container-padding)); margin-inline: 0 !important; /* Original: calc(5px + var(--urlbar-container-padding)) */ } } /*= Url View - Looks like Launcher ===========================================*/ -@supports -moz-bool-pref("userChrome.urlView.as_commandbar") { +@media -moz-pref("userChrome.urlView.as_commandbar") { /* Init & Base Layout */ .urlbarView { --urlbarView-favicon-width: 32px; /* Original: 16px */ @@ -8781,7 +9271,7 @@ border-radius: var(--toolbarbutton-border-radius) !important; box-shadow: 0 2px 14px rgba(0, 0, 0, 0.13); } - @supports not -moz-bool-pref("userChrome.urlView.full_width_padding") { + @media not -moz-pref("userChrome.urlView.full_width_padding") { .urlbarView { padding-inline: var(--uc-urlView-padding) !important; } @@ -8849,12 +9339,12 @@ } } /*= Url View - Full Width Pddding ============================================*/ -@supports -moz-bool-pref("userChrome.urlView.full_width_padding") { +@media -moz-pref("userChrome.urlView.full_width_padding") { .urlbarView { --uc-urlView-padding-double: calc(var(--uc-urlView-padding) * 2); --uc-urlView-full-width-padding: var(--uc-urlView-padding-double); } - @supports not -moz-bool-pref("userChrome.urlView.as_commandbar") { + @media not -moz-pref("userChrome.urlView.as_commandbar") { .urlbarView { --uc-urlView-full-width-padding: var(--uc-urlView-padding); width: 100% !important; @@ -8882,14 +9372,14 @@ } } /*= Url View - Always show page actions ======================================*/ -@supports -moz-bool-pref("userChrome.urlbar.always_show_page_actions") { +@media -moz-pref("userChrome.urlbar.always_show_page_actions") { #urlbar:not([breakout-extend="true"]) #pageActionButton { display: block !important; visibility: visible !important; } } /*= Url View - Move icon to left =============================================*/ -@supports -moz-bool-pref("userChrome.urlView.move_icon_to_left") { +@media -moz-pref("userChrome.urlView.move_icon_to_left") { .urlbarView-type-icon { min-width: 16px !important; height: 16px !important; @@ -8901,25 +9391,25 @@ } } /*= Url View - Go button when typing =========================================*/ -@supports -moz-bool-pref("userChrome.urlView.go_button_when_typing") { +@media -moz-pref("userChrome.urlView.go_button_when_typing") { #urlbar-input-container[pageproxystate="invalid"] #urlbar-go-button { display: block !important; } } /*= Url View - Item Focus Border =============================================*/ -@supports -moz-bool-pref("userChrome.urlView.focus_item_border") { +@media -moz-pref("userChrome.urlView.focus_item_border") { .urlbarView-row:not([type="tip"], [type="dynamic"])[selected] > .urlbarView-row-inner, .urlbarView-row-inner[selected] { box-shadow: 3px 0 var(--toolbar-field-focus-border-color) inset !important; } } /** Panel UI ******************************************************************/ -@supports -moz-bool-pref("userChrome.panel.remove_strip") { +@media -moz-pref("userChrome.panel.remove_strip") { #appMenu-fxa-separator { --panel-separator-zap-gradient: none; /* Original: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%) */ } } -@supports -moz-bool-pref("userChrome.panel.full_width_separator") { +@media -moz-pref("userChrome.panel.full_width_separator") { /* Full width separators */ :root { /* Original @@ -8930,7 +9420,7 @@ --panel-separator-margin-horizontal: 0 !important; } } -@supports -moz-bool-pref("userChrome.panel.full_width_padding") { +@media -moz-pref("userChrome.panel.full_width_padding") { /* Original --arrowpanel-menuitem-margin: 0 8px; --arrowpanel-menuitem-padding-block: 8px; @@ -8945,9 +9435,7 @@ } } /** Sidebar UI ****************************************************************/ -@supports -moz-bool-pref("userChrome.sidebar.overlap") or -moz-bool-pref("userChrome.autohide.sidebar") or -moz-bool-pref( - "userChrome.navbar.as_sidebar" - ) { +@media -moz-pref("userChrome.sidebar.overlap") or -moz-pref("userChrome.autohide.sidebar") or -moz-pref("userChrome.navbar.as_sidebar") { :root { /* Original min-width: 14em; @@ -8971,14 +9459,14 @@ display: none !important; } } -@supports -moz-bool-pref("userChrome.sidebar.overlap") or -moz-bool-pref("userChrome.autohide.sidebar") { +@media -moz-pref("userChrome.sidebar.overlap") or -moz-pref("userChrome.autohide.sidebar") { #sidebar-box { --uc-sidebar-shadow-color: #28282f; - z-index: 1 !important; + z-index: var(--browser-area-z-index-sidebar-splitter, 3) !important; position: relative !important; box-shadow: var(--uc-sidebar-shadow-position) 0px 15px -10px var(--uc-sidebar-shadow-color); } - #sidebar-box[positionend="true"] { + #sidebar-box[positionend] { --uc-sidebar-shadow-position: calc(-1 * var(--uc-sidebar-shadow-position-default)); } #sidebar { @@ -8988,8 +9476,8 @@ z-index: 2 !important; } } -@supports -moz-bool-pref("userChrome.sidebar.overlap") { - #sidebar-box[positionend="true"] { +@media -moz-pref("userChrome.sidebar.overlap") { + #sidebar-box[positionend] { direction: rtl; } #sidebar-header, @@ -9004,7 +9492,7 @@ #sidebar-header > #sidebar-switcher-target { font-size: 1.333em; } - @supports not -moz-bool-pref("userChrome.autohide.sidebar") { + @media not -moz-pref("userChrome.autohide.sidebar") { #sidebar-box, #sidebar-header, #sidebar { @@ -9029,11 +9517,7 @@ } /** Combined UI ***************************************************************/ /*= Combined - At URL bar ====================================================*/ -@supports -moz-bool-pref("userChrome.combined.nav_button") or -moz-bool-pref( - "userChrome.combined.nav_button.home_button" - ) or -moz-bool-pref("userChrome.combined.urlbar.nav_button") or -moz-bool-pref( - "userChrome.combined.urlbar.home_button" - ) or -moz-bool-pref("userChrome.combined.urlbar.reload_button") { +@media -moz-pref("userChrome.combined.nav_button") or -moz-pref("userChrome.combined.nav_button.home_button") or -moz-pref("userChrome.combined.urlbar.nav_button") or -moz-pref("userChrome.combined.urlbar.home_button") or -moz-pref("userChrome.combined.urlbar.reload_button") { #nav-bar { --uc-combined-circlebutton-background: hsla(0, 100%, 100%, 0.5); --uc-combined-circlebutton-hover-background: var(--uc-combined-circlebutton-background); @@ -9063,7 +9547,7 @@ -moz-box-ordinal-group: 7; } } -@supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") or -moz-bool-pref("userChrome.combined.urlbar.home_button") { +@media -moz-pref("userChrome.combined.urlbar.nav_button") or -moz-pref("userChrome.combined.urlbar.home_button") { #nav-bar-customization-target > #urlbar-container { /* var(--urlbar-margin-inline) */ margin-inline-start: calc(-1 * var(--uc-urlbar-combined-margin, 0px)) !important; @@ -9071,18 +9555,18 @@ #nav-bar-customization-target > #urlbar-container > #urlbar:not([breakout][breakout-extend]) { padding-left: var(--uc-urlbar-combined-margin, 0px); } - @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @media -moz-pref("userChrome.combined.urlbar.nav_button") { #nav-bar-customization-target > #urlbar-container { --uc-urlbar-combined-margin: var(--uc-toolbarbutton-size); } } - @supports not -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @media not -moz-pref("userChrome.combined.urlbar.nav_button") { #nav-bar-customization-target > #urlbar-container { --uc-urlbar-combined-margin: var(--uc-toolbarbutton-halfsize); } - @supports -moz-bool-pref("userChrome.combined.nav_button") { - @supports -moz-bool-pref("userChrome.combined.nav_button.home_button") { - @supports -moz-bool-pref("userChrome.combined.urlbar.home_button") { + @media -moz-pref("userChrome.combined.nav_button") { + @media -moz-pref("userChrome.combined.nav_button.home_button") { + @media -moz-pref("userChrome.combined.urlbar.home_button") { #nav-bar-customization-target > #urlbar-container { --uc-urlbar-combined-margin: var(--uc-toolbarbutton-size); } @@ -9090,8 +9574,8 @@ } } } - @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { - @supports -moz-bool-pref("userChrome.autohide.forward_button") { + @media -moz-pref("userChrome.combined.urlbar.nav_button") { + @media -moz-pref("userChrome.autohide.forward_button") { #nav-bar-customization-target > #forward-button[disabled="true"] ~ #urlbar-container @@ -9108,10 +9592,8 @@ } } } -@supports -moz-bool-pref("userChrome.combined.nav_button") or -moz-bool-pref("userChrome.combined.urlbar.nav_button") { - @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") or - (not -moz-bool-pref("userChrome.combined.sub_button.as_normal")) or - (-moz-bool-pref("userChrome.combined.nav_button") and -moz-bool-pref("userChrome.combined.urlbar.home_button")) { +@media -moz-pref("userChrome.combined.nav_button") or -moz-pref("userChrome.combined.urlbar.nav_button") { + @media -moz-pref("userChrome.combined.urlbar.nav_button") or ((not -moz-pref("userChrome.combined.sub_button.as_normal")) or (-moz-pref("userChrome.combined.nav_button") and -moz-pref("userChrome.combined.urlbar.home_button"))) { #nav-bar-customization-target > #forward-button { --uc-forward-button-margin: calc(-1 * var(--uc-toolbarbutton-boundary) + 1px); z-index: 2; @@ -9122,15 +9604,15 @@ padding-block: var(--urlbar-icon-padding) !important; height: var(--uc-urlbar-icon-size) !important; } - @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @media -moz-pref("userChrome.combined.urlbar.nav_button") { #nav-bar-customization-target > #forward-button { padding-inline-end: 0px !important; /* Original: var(--toolbarbutton-outer-padding) */ } } - @supports not -moz-bool-pref("userChrome.combined.urlbar.nav_button") { - @supports not -moz-bool-pref("userChrome.combined.sub_button.none_background") { - @supports -moz-bool-pref("userChrome.combined.urlbar.home_button") { - @supports not -moz-bool-pref("userChrome.combined.nav_button.home_button") { + @media not -moz-pref("userChrome.combined.urlbar.nav_button") { + @media not -moz-pref("userChrome.combined.sub_button.none_background") { + @media -moz-pref("userChrome.combined.urlbar.home_button") { + @media not -moz-pref("userChrome.combined.nav_button.home_button") { #nav-bar-customization-target > #forward-button > .toolbarbutton-icon { background-color: var(--uc-combined-circlebutton-background); } @@ -9152,14 +9634,14 @@ ) !important; fill: color-mix(in srgb, var(--toolbarbutton-icon-fill), transparent 60%); } - @supports not -moz-bool-pref("userChrome.autohide.forward_button") { + @media not -moz-pref("userChrome.autohide.forward_button") { #nav-bar-customization-target > #forward-button[disabled="true"][disabled="true"] { opacity: 1 !important; /* Original: 0.4 */ } } } } - @supports not -moz-bool-pref("userChrome.combined.urlbar.home_button") { + @media not -moz-pref("userChrome.combined.urlbar.home_button") { #nav-bar-customization-target > #forward-button > .toolbarbutton-icon { background-color: var(--uc-combined-circlebutton-background); } @@ -9181,7 +9663,7 @@ ) !important; fill: color-mix(in srgb, var(--toolbarbutton-icon-fill), transparent 60%); } - @supports not -moz-bool-pref("userChrome.autohide.forward_button") { + @media not -moz-pref("userChrome.autohide.forward_button") { #nav-bar-customization-target > #forward-button[disabled="true"][disabled="true"] { opacity: 1 !important; /* Original: 0.4 */ } @@ -9189,12 +9671,12 @@ } } } - @supports not -moz-bool-pref("userChrome.autohide.forward_button") { + @media not -moz-pref("userChrome.autohide.forward_button") { #nav-bar-customization-target > #forward-button { margin-inline-start: var(--uc-forward-button-margin) !important; } } - @supports -moz-bool-pref("userChrome.autohide.forward_button") { + @media -moz-pref("userChrome.autohide.forward_button") { #nav-bar-customization-target > #forward-button:not([disabled="true"]) { margin-inline-start: var(--uc-forward-button-margin) !important; } @@ -9203,8 +9685,8 @@ #nav-bar-customization-target > #back-button { position: relative; } - @supports not -moz-bool-pref("userChrome.combined.urlbar.home_button") { - @supports not -moz-bool-pref("userChrome.combined.nav_button.home_button") { + @media not -moz-pref("userChrome.combined.urlbar.home_button") { + @media not -moz-pref("userChrome.combined.nav_button.home_button") { #nav-bar-customization-target > #back-button > .toolbarbutton-icon { background-color: var(--uc-combined-circlebutton-background); } @@ -9226,22 +9708,22 @@ ) !important; fill: color-mix(in srgb, var(--toolbarbutton-icon-fill), transparent 60%); } - @supports not -moz-bool-pref("userChrome.autohide.back_button") { + @media not -moz-pref("userChrome.autohide.back_button") { #nav-bar-customization-target > #back-button[disabled="true"][disabled="true"] { opacity: 1 !important; /* Original: 0.4 */ } } } } - @supports -moz-bool-pref("userChrome.combined.nav_button.home_button") or -moz-bool-pref("userChrome.combined.urlbar.home_button") { + @media -moz-pref("userChrome.combined.nav_button.home_button") or -moz-pref("userChrome.combined.urlbar.home_button") { #nav-bar-customization-target > #back-button { z-index: 2; } - @supports not -moz-bool-pref("userChrome.combined.sub_button.as_normal") { + @media not -moz-pref("userChrome.combined.sub_button.as_normal") { #nav-bar-customization-target > #back-button { margin-inline-end: calc(-1 * var(--uc-toolbarbutton-boundary) - 1px) !important; } - @supports not -moz-bool-pref("userChrome.combined.sub_button.none_background") { + @media not -moz-pref("userChrome.combined.sub_button.none_background") { #nav-bar-customization-target > #back-button > .toolbarbutton-icon { background-color: var(--uc-combined-circlebutton-background); } @@ -9263,7 +9745,7 @@ ) !important; fill: color-mix(in srgb, var(--toolbarbutton-icon-fill), transparent 60%); } - @supports not -moz-bool-pref("userChrome.autohide.back_button") { + @media not -moz-pref("userChrome.autohide.back_button") { #nav-bar-customization-target > #back-button[disabled="true"][disabled="true"] { opacity: 1 !important; /* Original: 0.4 */ } @@ -9276,9 +9758,9 @@ } } } - @supports not -moz-bool-pref("userChrome.combined.nav_button.home_button") { - @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { - @supports not -moz-bool-pref("userChrome.combined.urlbar.home_button") { + @media not -moz-pref("userChrome.combined.nav_button.home_button") { + @media -moz-pref("userChrome.combined.urlbar.nav_button") { + @media not -moz-pref("userChrome.combined.urlbar.home_button") { #nav-bar-customization-target > #back-button { z-index: 3 !important; background-color: var(--toolbar-bgcolor) !important; @@ -9286,19 +9768,19 @@ border-radius: 100%; padding-block: 0 !important; } - @supports -moz-bool-pref("userChrome.padding.toolbar_button") { - @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + @media -moz-pref("userChrome.padding.toolbar_button") { + @media -moz-pref("userChrome.padding.toolbar_button.compact") { #nav-bar-customization-target > #back-button { --toolbarbutton-inner-padding: var(--uc-toolbarbutton-inner-padding-default); } } } - @supports not -moz-bool-pref("userChrome.autohide.back_button") { + @media not -moz-pref("userChrome.autohide.back_button") { #nav-bar-customization-target > #back-button { padding-inline-end: 0 !important; } } - @supports -moz-bool-pref("userChrome.autohide.back_button") { + @media -moz-pref("userChrome.autohide.back_button") { #nav-bar-customization-target > #back-button:not([disabled="true"]) { padding-inline-end: 0 !important; } @@ -9319,7 +9801,7 @@ } } } - @supports not -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @media not -moz-pref("userChrome.combined.urlbar.nav_button") { #nav-bar-customization-target > #back-button { z-index: 3 !important; background-color: var(--toolbar-bgcolor) !important; @@ -9327,19 +9809,19 @@ border-radius: 100%; padding-block: 0 !important; } - @supports -moz-bool-pref("userChrome.padding.toolbar_button") { - @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + @media -moz-pref("userChrome.padding.toolbar_button") { + @media -moz-pref("userChrome.padding.toolbar_button.compact") { #nav-bar-customization-target > #back-button { --toolbarbutton-inner-padding: var(--uc-toolbarbutton-inner-padding-default); } } } - @supports not -moz-bool-pref("userChrome.autohide.back_button") { + @media not -moz-pref("userChrome.autohide.back_button") { #nav-bar-customization-target > #back-button { padding-inline-end: 0 !important; } } - @supports -moz-bool-pref("userChrome.autohide.back_button") { + @media -moz-pref("userChrome.autohide.back_button") { #nav-bar-customization-target > #back-button:not([disabled="true"]) { padding-inline-end: 0 !important; } @@ -9361,8 +9843,8 @@ } } } -@supports -moz-bool-pref("userChrome.combined.nav_button") { - @supports -moz-bool-pref("userChrome.combined.nav_button.home_button") { +@media -moz-pref("userChrome.combined.nav_button") { + @media -moz-pref("userChrome.combined.nav_button.home_button") { #nav-bar-customization-target > #home-button { position: relative; z-index: 3 !important; @@ -9372,8 +9854,8 @@ padding-block: 0 !important; padding-inline-end: 0 !important; } - @supports -moz-bool-pref("userChrome.padding.toolbar_button") { - @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + @media -moz-pref("userChrome.padding.toolbar_button") { + @media -moz-pref("userChrome.padding.toolbar_button.compact") { #nav-bar-customization-target > #home-button { --toolbarbutton-inner-padding: var(--uc-toolbarbutton-inner-padding-default); } @@ -9402,7 +9884,7 @@ } } } -@supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { +@media -moz-pref("userChrome.combined.urlbar.nav_button") { #nav-bar-customization-target > #back-button { order: 2; -moz-box-ordinal-group: 2; @@ -9411,7 +9893,7 @@ order: 4; -moz-box-ordinal-group: 4; } - @supports -moz-bool-pref("userChrome.combined.urlbar.home_button") { + @media -moz-pref("userChrome.combined.urlbar.home_button") { #nav-bar-customization-target > :first-child:is(#back-button, #forward-button, #home-button) + :is(toolbarbutton, toolbaritem):not(#back-button, #forward-button, #home-button), @@ -9427,7 +9909,7 @@ padding-inline-start: var(--toolbar-start-end-padding) !important; } } - @supports not -moz-bool-pref("userChrome.combined.urlbar.home_button") { + @media not -moz-pref("userChrome.combined.urlbar.home_button") { #nav-bar-customization-target > :first-child:is(#back-button, #forward-button) + :is(toolbarbutton, toolbaritem):not(#back-button, #forward-button), @@ -9439,12 +9921,12 @@ } } } -@supports -moz-bool-pref("userChrome.combined.urlbar.home_button") { +@media -moz-pref("userChrome.combined.urlbar.home_button") { #nav-bar-customization-target > #home-button { order: 3; -moz-box-ordinal-group: 3; } - @supports not -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @media not -moz-pref("userChrome.combined.urlbar.nav_button") { #nav-bar-customization-target > #home-button:is(:first-child) + :is(toolbarbutton, toolbaritem) { padding-inline-start: var(--toolbar-start-end-padding) !important; } @@ -9458,8 +9940,8 @@ padding-block: 0 !important; padding-inline-end: 0 !important; } - @supports -moz-bool-pref("userChrome.padding.toolbar_button") { - @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + @media -moz-pref("userChrome.padding.toolbar_button") { + @media -moz-pref("userChrome.padding.toolbar_button.compact") { #nav-bar-customization-target > #home-button { --toolbarbutton-inner-padding: var(--uc-toolbarbutton-inner-padding-default); } @@ -9487,7 +9969,7 @@ border-color: hsla(240deg, 5%, 5%, 0.4); } } -@supports -moz-bool-pref("userChrome.combined.urlbar.reload_button") { +@media -moz-pref("userChrome.combined.urlbar.reload_button") { #nav-bar-customization-target > #stop-reload-button { order: 6; -moz-box-ordinal-group: 6; @@ -9510,7 +9992,7 @@ } /** Others UI *****************************************************************/ /*= Counter for Tab ==========================================================*/ -@supports -moz-bool-pref("userChrome.counter.tab") { +@media -moz-pref("userChrome.counter.tab") { #tabbrowser-tabs { counter-reset: tab-counts; } @@ -9528,15 +10010,15 @@ align-content: safe center; align-items: safe center; } - @supports -moz-bool-pref("userChrome.centered.tab") { - @supports not -moz-bool-pref("userChrome.centered.tab.label") { + @media -moz-pref("userChrome.centered.tab") { + @media not -moz-pref("userChrome.centered.tab.label") { .tabbrowser-tab:not([hidden="true"]) .tab-label-container { justify-content: start; justify-items: start; } } } - @supports not -moz-bool-pref("userChrome.centered.tab") { + @media not -moz-pref("userChrome.centered.tab") { .tabbrowser-tab:not([hidden="true"]) .tab-label-container { justify-content: start; justify-items: start; @@ -9560,8 +10042,8 @@ .tab-secondary-label { overflow: hidden; } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons") { - @supports not -moz-bool-pref("userChrome.hidden.tab_icon") { + @media -moz-pref("userChrome.tab.sound_with_favicons") { + @media not -moz-pref("userChrome.hidden.tab_icon") { .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] .tab-label-container[labeldirection="ltr"], .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] @@ -9579,8 +10061,8 @@ transform: translateX(var(--uc-sound-tab-label-position-x, 0px)); } } - @supports -moz-bool-pref("userChrome.hidden.tab_icon") { - @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { + @media -moz-pref("userChrome.hidden.tab_icon") { + @media not -moz-pref("userChrome.hidden.tab_icon.always") { .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] .tab-label-container[labeldirection="ltr"], .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] @@ -9605,7 +10087,7 @@ } } /*= Counter for Bookmark menu ================================================*/ -@supports -moz-bool-pref("userChrome.counter.bookmark_menu") { +@media -moz-pref("userChrome.counter.bookmark_menu") { menupopup[placespopup="true"] > menu.bookmark-item > .menu-right { counter-reset: bookmark-counts 0; } @@ -9624,7 +10106,7 @@ counter-increment: bookmark-counts; } } -@supports -moz-bool-pref("userChrome.findbar.floating_on_top") { +@media -moz-pref("userChrome.findbar.floating_on_top") { /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/floating_findbar_on_top.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /* Note that privacy.resistFingerprinting.letterboxing prevents this from working properly */ @@ -9700,39 +10182,50 @@ } } /** Fullscreen - Overlap toolbar **********************************************/ -@supports -moz-bool-pref("userChrome.fullscreen.overlap") { - @supports -moz-bool-pref("browser.fullscreen.autohide") { - :root[sizemode="fullscreen"] #navigator-toolbox { +@media -moz-pref("userChrome.fullscreen.overlap") { + @media -moz-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #navigator-toolbox { position: fixed !important; /* Needed for content to take up entire height */ z-index: 1000 !important; /* Puts the UI above the content */ } - :root[sizemode="fullscreen"] :-moz-any(#navigator-toolbox, #titlebar, #nav-bar, #PersonalToolbar) { + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #navigator-toolbox:is(:hover, :focus-within) { + margin-top: 0 !important; + } + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) + :-moz-any(#navigator-toolbox, #titlebar, #toolbar-menubar, #TabsToolbar, #nav-bar, #PersonalToolbar) { width: 100%; /* Makes the UI take up the entire width */ } + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #urlbar:popover-open { + position: fixed !important; + } @media (-moz-gtk-csd-available) { /* Fix transparent background */ - :root[tabsintitlebar][sizemode="fullscreen"]:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="fullscreen"]:not([inDOMFullscreen="true"]):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ) + #TabsToolbar { appearance: auto !important; } } } } -@supports -moz-bool-pref("userChrome.fullscreen.show_bookmarkbar") { - :root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized="true"]:not([collapsed="true"]), - :root[sizemode="fullscreen"] #PersonalToolbar[initialized="true"] { +@media -moz-pref("userChrome.fullscreen.show_bookmarkbar") { + :root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized]:not([collapsed="true"]), + :root[sizemode="fullscreen"] #PersonalToolbar[initialized] { visibility: unset !important; /* Makes the bookmarks toolbar visible if enabled */ } } /** Centered ******************************************************************/ /*= Centered - Tab ===========================================================*/ -@supports -moz-bool-pref("userChrome.centered.tab") { - @supports -moz-bool-pref("userChrome.centered.tab.label") { +@media -moz-pref("userChrome.centered.tab") { + @media -moz-pref("userChrome.centered.tab.label") { .tabbrowser-tab[selected]:not(:hover) .tab-label-container:not([textoverflow]), .tabbrowser-tab:not(:hover, [pinned]) .tab-label-container:not([textoverflow]) { margin-inline-end: 5px; } } - @supports -moz-bool-pref("userChrome.tab.close_button_at_hover") { + @media -moz-pref("userChrome.tab.close_button_at_hover") { #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not(:hover, [pinned]) .tab-label-container:not([textoverflow]) { @@ -9745,7 +10238,7 @@ padding-inline-end: 18px; } } - @supports not -moz-bool-pref("userChrome.centered.tab.label") { + @media not -moz-pref("userChrome.centered.tab.label") { .tab-icon-stack { margin-inline-start: auto; } @@ -9753,14 +10246,14 @@ max-width: min-content; margin-inline-end: auto; } - @supports -moz-bool-pref("userChrome.tab.close_button_at_hover") { + @media -moz-pref("userChrome.tab.close_button_at_hover") { .tabbrowser-tab:not(:hover, [pinned]) > .tab-stack > .tab-content > .tab-close-button { padding-inline-start: 6px !important; /* Original: 0px */ width: 24px !important; /* Original: 17px */ } } } - @supports -moz-bool-pref("userChrome.centered.tab.label") { + @media -moz-pref("userChrome.centered.tab.label") { /* Based on https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/centered_tab_label.css */ .tab-label-container { display: grid; @@ -9778,21 +10271,21 @@ } } /*= Centered - URL Bar =======================================================*/ -@supports -moz-bool-pref("userChrome.centered.urlbar") { +@media -moz-pref("userChrome.centered.urlbar") { #urlbar:not([focused]) #urlbar-input, #urlbar:not([focused]) .urlbar-input { text-align: center !important; } } /*= Centered - Bookmark Bar ==================================================*/ -@supports -moz-bool-pref("userChrome.centered.bookmarkbar") { +@media -moz-pref("userChrome.centered.bookmarkbar") { #PlacesToolbarItems { display: flex !important; justify-content: safe center !important; } } /** Auto Hide *****************************************************************/ -@supports -moz-bool-pref("userChrome.autohide.back_button") or -moz-bool-pref("userChrome.autohide.forward_button") { +@media -moz-pref("userChrome.autohide.back_button") or -moz-pref("userChrome.autohide.forward_button") { :root { --uc-toolbarbutton-hide-size: calc( -1 * (16px + (2 * (var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding)))) @@ -9801,7 +10294,7 @@ } @-moz-document url("chrome://browser/content/browser.xhtml") { - @supports -moz-bool-pref("userChrome.autohide.back_button") { + @media -moz-pref("userChrome.autohide.back_button") { :root:not([customizing="true"]) #back-button[disabled="true"] { margin-left: var(--uc-toolbarbutton-hide-size) !important; opacity: 0 !important; @@ -9817,7 +10310,7 @@ } } } - @supports -moz-bool-pref("userChrome.autohide.forward_button") { + @media -moz-pref("userChrome.autohide.forward_button") { :root:not([customizing="true"]) #forward-button[disabled="true"] { margin-left: var(--uc-toolbarbutton-hide-size) !important; opacity: 0 !important; @@ -9834,7 +10327,7 @@ } } } -@supports -moz-bool-pref("userChrome.autohide.page_action") { +@media -moz-pref("userChrome.autohide.page_action") { #page-action-buttons > .urlbar-page-action { margin-inline-end: calc(-16px - 2 * var(--urlbar-icon-padding)); opacity: 0; @@ -9850,7 +10343,7 @@ transition: margin-inline-end 50ms var(--animation-easing-function) 900ms, opacity 1.5s var(--animation-easing-function) 600ms !important; } - @supports -moz-bool-pref("userChrome.decoration.animate") { + @media -moz-pref("userChrome.decoration.animate") { #page-action-buttons > .urlbar-page-action { transition: margin-inline-end 50ms var(--animation-easing-function) 900ms, opacity 1.5s var(--animation-easing-function) 600ms, background-color 2.5s var(--animation-easing-function) !important; @@ -9863,20 +10356,20 @@ } } } -@supports -moz-bool-pref("userChrome.autohide.tab") { - @supports not -moz-bool-pref("userChrome.autohide.tab.opacity") { - @supports not -moz-bool-pref("userChrome.autohide.tab.blur") { +@media -moz-pref("userChrome.autohide.tab") { + @media not -moz-pref("userChrome.autohide.tab.opacity") { + @media not -moz-pref("userChrome.autohide.tab.blur") { .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { margin-bottom: -64px; } } } - @supports -moz-bool-pref("userChrome.autohide.tab.opacity") { + @media -moz-pref("userChrome.autohide.tab.opacity") { .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { opacity: 0%; } } - @supports -moz-bool-pref("userChrome.autohide.tab.blur") { + @media -moz-pref("userChrome.autohide.tab.blur") { .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { filter: blur(8px); } @@ -9890,19 +10383,19 @@ .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]):is(:hover, :focus-within) { transition-delay: 0s; } - @supports not -moz-bool-pref("userChrome.autohide.tab.opacity") { - @supports not -moz-bool-pref("userChrome.autohide.tab.blur") { + @media not -moz-pref("userChrome.autohide.tab.opacity") { + @media not -moz-pref("userChrome.autohide.tab.blur") { .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { transition-property: margin-bottom; } } } - @supports -moz-bool-pref("userChrome.autohide.tab.opacity") { + @media -moz-pref("userChrome.autohide.tab.opacity") { .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { transition-property: opacity; } } - @supports -moz-bool-pref("userChrome.autohide.tab.blur") { + @media -moz-pref("userChrome.autohide.tab.blur") { .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { transition-property: filter; } @@ -9914,12 +10407,7 @@ --uc-autohide-toolbar-delay: 600ms; } -@supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") or -moz-bool-pref( - "userChrome.autohide.bookmarkbar" - ) - or -moz-bool-pref("userChrome.tabbar.one_liner") or -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") or -moz-bool-pref( - "userChrome.hidden.tabbar" - ) or -moz-bool-pref("userChrome.navbar.as_sidebar") { +@media -moz-pref("userChrome.autohide.tabbar") or -moz-pref("userChrome.autohide.navbar") or -moz-pref("userChrome.autohide.bookmarkbar") or -moz-pref("userChrome.tabbar.one_liner") or -moz-pref("userChrome.tabbar.on_bottom.menubar_on_top") or -moz-pref("userChrome.hidden.tabbar") or -moz-pref("userChrome.navbar.as_sidebar") { :root { --uc-tabbar-height: var(--uc-tabbar-height-default); --uc-tabbar-height-default: var(--tab-min-height); @@ -9939,14 +10427,14 @@ --uc-menubar-height-default: calc(1.6rem + 2px); --uc-menubar-inner-height: calc(1.6rem - 2px); } - @supports -moz-bool-pref("userChrome.hidden.tabbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.hidden.tabbar") { + @media not -moz-pref("userChrome.tabbar.one_liner") { :root { --uc-tabbar-height: 0px; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (max-width: 1100px) { :root { --uc-tabbar-height: 0px; @@ -9955,40 +10443,40 @@ } } } - @supports -moz-bool-pref("userChrome.hidden.navbar") { + @media -moz-pref("userChrome.hidden.navbar") { :root { --uc-navbar-height: 0px; } } @supports selector(:has(a)) { - :root:not([tabsintitlebar]):has(#toolbar-menubar) { + :root:not([tabsintitlebar]):not([customtitlebar]):has(#toolbar-menubar) { --uc-menubar-height: var(--uc-menubar-height-default); } @media (-moz-gtk-csd-available) { - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"]) { --uc-menubar-height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin)); } } @media (-moz-platform: windows) { - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"]) { --uc-menubar-height: calc(var(--tab-min-height) - var(--tabs-navbar-shadow-size)); } } - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="false"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="false"]) { --uc-menubar-height: var(--uc-titlebar-buttonbox-height); } - :root:not([tabsintitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]), - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"][inactive="true"]) { + :root:not([tabsintitlebar]):not([customtitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]), + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]) { --uc-menubar-height: 0px; } #navigator-toolbox:has(#PersonalToolbar[collapsed="true"]) { --uc-bm-height: 0px; } - @supports -moz-bool-pref("userChrome.navbar.as_sidebar") { + @media -moz-pref("userChrome.navbar.as_sidebar") { #navigator-toolbox:has(#PersonalToolbar[collapsed="false"]) #nav-bar { --uc-bm-height: var(--uc-bm-height-default); } - @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:has(#PersonalToolbar[collapsed="false"]):not(:hover) #nav-bar { --uc-bm-height: 0px; } @@ -9996,10 +10484,7 @@ } } } -@supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") or -moz-bool-pref( - "userChrome.autohide.bookmarkbar" - ) - or -moz-bool-pref("userChrome.autohide.infobar") { +@media -moz-pref("userChrome.autohide.tabbar") or -moz-pref("userChrome.autohide.navbar") or -moz-pref("userChrome.autohide.bookmarkbar") or -moz-pref("userChrome.autohide.infobar") { #navigator-toolbox { position: relative; } @@ -10024,13 +10509,13 @@ position: relative; z-index: 2 !important; } - @supports -moz-bool-pref("userChrome.autohide.toolbar_overlap") { + @media -moz-pref("userChrome.autohide.toolbar_overlap") { #navigator-toolbox { --uc-toolbar-hide-height: calc(-1 * var(--uc-toolbar-height, 0)); margin-bottom: var(--uc-toolbar-hide-height) !important; } @media (prefers-reduced-motion: no-preference) { - @supports -moz-bool-pref("userChrome.decoration.animate") { + @media -moz-pref("userChrome.decoration.animate") { #navigator-toolbox { will-change: margin-top, margin-bottom, background-color !important; transition: margin-top 1s ease, @@ -10060,7 +10545,7 @@ background-color 0.5s var(--animation-easing-function) !important; } } - @supports not -moz-bool-pref("userChrome.decoration.animate") { + @media not -moz-pref("userChrome.decoration.animate") { #navigator-toolbox { transition: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), @@ -10071,40 +10556,40 @@ } } } - @supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") { - @supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.autohide.tabbar") or -moz-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.tabbar") or -moz-pref("userChrome.tabbar.one_liner") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: var(--uc-tabbar-height); } - @supports not -moz-bool-pref("userChrome.autohide.navbar") { - @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media not -moz-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-bm-height)); } } } - @supports -moz-bool-pref("userChrome.autohide.navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media -moz-pref("userChrome.autohide.navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-navbar-height)); } } - @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-navbar-height) + var(--uc-bm-height)); } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (max-width: 1100px) { - @supports not -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media not -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-navbar-height)); } } - @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-navbar-height) + var(--uc-bm-height)); } @@ -10115,37 +10600,37 @@ } } } - @supports not -moz-bool-pref("userChrome.autohide.tabbar") { - @supports not -moz-bool-pref("userChrome.autohide.navbar") { - @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media not -moz-pref("userChrome.autohide.tabbar") { + @media not -moz-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: var(--uc-bm-height); } } } - @supports -moz-bool-pref("userChrome.autohide.navbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.autohide.navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media -moz-pref("userChrome.autohide.navbar") or -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.autohide.navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: var(--uc-navbar-height); } } - @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: calc(var(--uc-navbar-height) + var(--uc-bm-height)); } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (max-width: 1100px) { - @supports not -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media not -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: var(--uc-navbar-height); } } - @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + @media -moz-pref("userChrome.autohide.bookmarkbar") { #navigator-toolbox:is(:hover, :focus-within) { --uc-toolbar-height: calc(var(--uc-navbar-height) + var(--uc-bm-height)); } @@ -10158,106 +10643,112 @@ } } } -@supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") { - @supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - :root:not([customizing]) #titlebar { +@media -moz-pref("userChrome.autohide.tabbar") or -moz-pref("userChrome.autohide.navbar") { + @media -moz-pref("userChrome.autohide.tabbar") or -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } #TabsToolbar:not([customizing]) { will-change: opacity; } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.on_bottom") { #TabsToolbar:not([customizing]), #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { opacity: 0; } } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom") { #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { opacity: 0; } } - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.on_bottom") { #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar, #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar .titlebar-buttonbox-container { opacity: 1; } } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom") { #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar > *:not(.titlebar-buttonbox-container) { opacity: 1; } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { - :root:not([customizing]) #titlebar { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } #TabsToolbar:not([customizing]) { will-change: opacity; } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.on_bottom") { #TabsToolbar:not([customizing]), #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { opacity: 0; } } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom") { #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { opacity: 0; } } - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.on_bottom") { #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar, #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar .titlebar-buttonbox-container { opacity: 1; } } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom") { #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar > *:not(.titlebar-buttonbox-container) { opacity: 1; } } } - @supports -moz-bool-pref("userChrome.autohide.tabbar") { - :root:not([customizing]) #titlebar { + @media -moz-pref("userChrome.autohide.tabbar") { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } #TabsToolbar:not([customizing]) { will-change: opacity; } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.on_bottom") { #TabsToolbar:not([customizing]), #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { opacity: 0; } } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom") { #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { opacity: 0; } } - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.on_bottom") { #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar, #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar .titlebar-buttonbox-container { opacity: 1; } } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom") { #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar > *:not(.titlebar-buttonbox-container) { opacity: 1; } @@ -10270,14 +10761,14 @@ var(--uc-autohide-toolbar-delay), background-color 1s var(--animation-easing-function) !important; } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.on_bottom") { #TabsToolbar:not([customizing]), #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { transition: opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom") { #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { transition: opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay) !important; @@ -10289,13 +10780,13 @@ #navigator-toolbox:is(:hover, :focus-within) > #titlebar:not([customizing]) { transition-delay: 0s !important; } - @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media not -moz-pref("userChrome.tabbar.on_bottom") { #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar:not([customizing]), #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { transition-delay: 0s !important; } } - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @media -moz-pref("userChrome.tabbar.on_bottom") { #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { @@ -10304,35 +10795,56 @@ } } } - @supports -moz-bool-pref("userChrome.autohide.navbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.autohide.navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.autohide.navbar") or -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.autohide.navbar") { + @media not -moz-pref("userChrome.tabbar.one_liner") { #nav-bar:not([customizing]) { margin-bottom: var(--uc-navbar-hide-height); + } + #nav-bar:not([customizing]), + #nav-bar:not([customizing]) #urlbar { opacity: 0; will-change: margin-bottom, opacity; } #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { margin-bottom: 0; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { opacity: 1; } + #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { + pointer-events: none; + } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (max-width: 1100px) { #nav-bar:not([customizing]) { margin-bottom: var(--uc-navbar-hide-height); + } + #nav-bar:not([customizing]), + #nav-bar:not([customizing]) #urlbar { opacity: 0; will-change: margin-bottom, opacity; } #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { margin-bottom: 0; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { opacity: 1; } + #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { + pointer-events: none; + } } } } } + #mainPopupSet:not(:hover) ~ #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) { + -moz-window-dragging: no-drag; + } @media (prefers-reduced-motion: no-preference) { #nav-bar:not([customizing]) { transition: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) @@ -10340,7 +10852,7 @@ opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), var(--ext-theme-background-transition) !important; } - @supports -moz-bool-pref("userChrome.autohide.fill_urlbar") { + @media -moz-pref("userChrome.autohide.fill_urlbar") { #nav-bar:not([customizing]) { transition: margin-inline var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), @@ -10350,20 +10862,25 @@ var(--ext-theme-background-transition) !important; } } - #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { + #nav-bar:not([customizing]) #urlbar { + transition: opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay) !important; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { transition-delay: 0s !important; } } } } -@supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { +@media -moz-pref("userChrome.autohide.bookmarkbar") { #PersonalToolbar:not([customizing]) { margin-bottom: var(--uc-bm-hide-height); opacity: 0; will-change: margin-bottom, opacity; } - @supports -moz-bool-pref("userChrome.autohide.toolbar_overlap") { - @supports not -moz-bool-pref("userChrome.autohide.toolbar_overlap.allow_layout_shift") { + @media -moz-pref("userChrome.autohide.toolbar_overlap") { + @media not -moz-pref("userChrome.autohide.toolbar_overlap.allow_layout_shift") { @supports not selector(:has(a)) { #PersonalToolbar:not([customizing])[collapsed="true"] { visibility: visible !important; @@ -10388,7 +10905,7 @@ } } } -@supports -moz-bool-pref("userChrome.autohide.infobar") { +@media -moz-pref("userChrome.autohide.infobar") { #tab-notification-deck:not([customizing]) > .notificationbox-stack { --infobar-height: calc( 25px + (var(--infobar-button-vertical-margin, 4px) * 2) + var(--infobar-message-vertical-margin, 8px) @@ -10406,7 +10923,7 @@ --infobar-message-margin: 0 4px var(--infobar-message-vertical-margin, 8px); opacity: 1; } - @supports -moz-bool-pref("userChrome.autohide.toolbar_overlap") { + @media -moz-pref("userChrome.autohide.toolbar_overlap") { #tab-notification-deck:not([customizing]) { height: 0; } @@ -10426,7 +10943,7 @@ } } } -@supports -moz-bool-pref("userChrome.autohide.sidebar") { +@media -moz-pref("userChrome.autohide.sidebar") { #sidebar-box { min-width: var(--uc-sidebar-width) !important; max-width: var(--uc-sidebar-width) !important; @@ -10435,7 +10952,7 @@ min-width: var(--uc-sidebar-activate-width) !important; max-width: var(--uc-sidebar-activate-width) !important; } - @supports -moz-bool-pref("userChrome.sidebar.overlap") { + @media -moz-pref("userChrome.sidebar.overlap") { #sidebar-header, #sidebar { min-width: var(--uc-sidebar-width) !important; @@ -10501,7 +11018,7 @@ } } } - @supports not -moz-bool-pref("userChrome.sidebar.overlap") { + @media not -moz-pref("userChrome.sidebar.overlap") { #sidebar-box { --uc-sidebar-fullscreen-margin: calc( var(--uc-sidebar-fullscreen-width) + var(--uc-sidebar-activate-width-reverse) @@ -10514,18 +11031,18 @@ min-width: var(--uc-sidebar-activate-width) !important; max-width: var(--uc-sidebar-activate-width) !important; } - :root[inFullscreen="true"] #sidebar-box:not([positionend="true"]) { + :root[inFullscreen="true"] #sidebar-box:not([positionend]) { margin-inline-start: var(--uc-sidebar-fullscreen-margin) !important; will-change: margin-inline-start; } - :root[inFullscreen="true"] #sidebar-box:not([positionend="true"]):is(:hover, :focus-within) { + :root[inFullscreen="true"] #sidebar-box:not([positionend]):is(:hover, :focus-within) { margin-inline-start: 0 !important; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"] { + :root[inFullscreen="true"] #sidebar-box[positionend] { margin-inline-end: var(--uc-sidebar-fullscreen-margin) !important; will-change: margin-inline-end; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"]:is(:hover, :focus-within) { + :root[inFullscreen="true"] #sidebar-box[positionend]:is(:hover, :focus-within) { margin-inline-end: 0 !important; } @media (prefers-reduced-motion: no-preference) { @@ -10542,7 +11059,7 @@ transition: margin-inline-start var(--uc-autohide-fullscreen-sidebar-speed) var(--animation-easing-function) var(--uc-autohide-sidebar-delay) !important; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"] { + :root[inFullscreen="true"] #sidebar-box[positionend] { transition-property: margin-inline-end !important; } :root[inFullscreen="true"] #sidebar-box:is(:hover, :focus-within), @@ -10552,7 +11069,7 @@ } } } -@supports -moz-bool-pref("userChrome.autohide.fill_urlbar") { +@media -moz-pref("userChrome.autohide.fill_urlbar") { #nav-bar:not(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) #urlbar-container { order: -1; -moz-box-ordinal-group: 0; @@ -10561,14 +11078,14 @@ (2 * var(--urlbar-margin-inline) + var(--uc-window-drag-space-pre, 0px) + var(--uc-navbar-gap, 0px)) ) !important; } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner") { #nav-bar:is(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) { --uc-tabbar-width: calc(100vw - var(--uc-navbar-width-origin)); } } @media (prefers-reduced-motion: no-preference) { - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner.responsive") { #nav-bar { transition: margin-inline var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), @@ -10578,7 +11095,7 @@ transition-delay: 0s !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (prefers-reduced-motion: no-preference) and (min-width: 1100px) { #nav-bar { transition: margin-inline var(--uc-autohide-toolbar-speed) var(--animation-easing-function) @@ -10591,7 +11108,7 @@ } } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media not -moz-pref("userChrome.tabbar.one_liner") { #urlbar-container { transition: min-width var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay); @@ -10600,8 +11117,8 @@ transition-delay: 0s !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (prefers-reduced-motion: no-preference) and (max-width: 1100px) { #urlbar-container { transition: min-width var(--uc-autohide-toolbar-speed) var(--animation-easing-function) @@ -10616,27 +11133,27 @@ } } /** Hidden ********************************************************************/ -@supports not -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.hidden.tabbar") { +@media not -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.hidden.tabbar") { #TabsToolbar { display: none !important; } } - @supports -moz-bool-pref("userChrome.hidden.navbar") { + @media -moz-pref("userChrome.hidden.navbar") { #nav-bar { visibility: collapse; /* display: none is not work */ } } } -@supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { +@media -moz-pref("userChrome.tabbar.one_liner") { + @media -moz-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (max-width: 1100px) { - @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @media -moz-pref("userChrome.hidden.tabbar") { #TabsToolbar { display: none !important; } } - @supports -moz-bool-pref("userChrome.hidden.navbar") { + @media -moz-pref("userChrome.hidden.navbar") { #nav-bar { visibility: collapse; /* display: none is not work */ } @@ -10644,36 +11161,36 @@ } } } -@supports -moz-bool-pref("userChrome.hidden.tab_icon") { - @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { +@media -moz-pref("userChrome.hidden.tab_icon") { + @media not -moz-pref("userChrome.hidden.tab_icon.always") { .tabbrowser-tab:not([pinned="true"]) .tab-icon-image { display: none; } } - @supports -moz-bool-pref("userChrome.hidden.tab_icon.always") { + @media -moz-pref("userChrome.hidden.tab_icon.always") { .tabbrowser-tab:not([pinned="true"]) .tab-icon-stack { display: none; } } } -@supports -moz-bool-pref("userChrome.hidden.private_indicator") { +@media -moz-pref("userChrome.hidden.private_indicator") { .private-browsing-indicator, #private-browsing-indicator-with-label { display: none; } } -@supports -moz-bool-pref("userChrome.hidden.titlebar_container") { +@media -moz-pref("userChrome.hidden.titlebar_container") { .titlebar-buttonbox-container { display: none !important; } } -@supports -moz-bool-pref("userChrome.hidden.sidebar_header") { - @supports not -moz-bool-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { +@media -moz-pref("userChrome.hidden.sidebar_header") { + @media not -moz-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { #sidebar-header { display: none !important; } } - @supports -moz-bool-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { + @media -moz-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { #sidebar-box:is( [sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"], [sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"], @@ -10684,8 +11201,8 @@ } } } -@supports -moz-bool-pref("userChrome.hidden.urlbar_iconbox") { - @supports not -moz-bool-pref("userChrome.hidden.urlbar_iconbox.label_only") { +@media -moz-pref("userChrome.hidden.urlbar_iconbox") { + @media not -moz-pref("userChrome.hidden.urlbar_iconbox.label_only") { #identity-box[pageproxystate="valid"].notSecureText #identity-icon-label, #identity-box[pageproxystate="valid"].chromeUI #identity-icon-box, #identity-box[pageproxystate="valid"].extensionPage #identity-icon-box { @@ -10695,7 +11212,7 @@ padding-inline-end: 5px; /* Original: 8px */ } } - @supports -moz-bool-pref("userChrome.hidden.urlbar_iconbox.label_only") { + @media -moz-pref("userChrome.hidden.urlbar_iconbox.label_only") { #identity-box[pageproxystate="valid"].notSecureText, #identity-box[pageproxystate="valid"].chromeUI, #identity-box[pageproxystate="valid"].extensionPage { @@ -10705,7 +11222,7 @@ #identity-box[pageproxystate="valid"].extensionPage #identity-icon-box:not(:hover) { background-color: transparent !important; } - @supports not -moz-bool-pref("userChrome.urlbar.iconbox_with_separator") { + @media not -moz-pref("userChrome.urlbar.iconbox_with_separator") { #identity-box[pageproxystate="valid"].chromeUI #identity-icon-box, #identity-box[pageproxystate="valid"].extensionPage #identity-icon-box { padding-inline: var(--urlbar-icon-padding) !important; @@ -10716,23 +11233,23 @@ } } } -@supports -moz-bool-pref("userChrome.hidden.bookmarkbar_icon") { +@media -moz-pref("userChrome.hidden.bookmarkbar_icon") { #PlacesToolbarItems .bookmark-item > .toolbarbutton-icon { display: none; } } -@supports -moz-bool-pref("userChrome.hidden.bookmarkbar_label") { +@media -moz-pref("userChrome.hidden.bookmarkbar_label") { #PlacesToolbarItems .bookmark-item > .toolbarbutton-text { visibility: collapse; /* display: none is not work */ } } -@supports -moz-bool-pref("userChrome.hidden.disabled_menu") { +@media -moz-pref("userChrome.hidden.disabled_menu") { menu[disabled="true"], menuitem:not(#context-back, #context-forward)[disabled="true"] { visibility: collapse !important; } - @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + @media -moz-pref("widget.macos.native-context-menus") or -moz-pref("widget.gtk.native-context-menus") { #context-back[disabled="true"], #context-forward[disabled="true"] { visibility: collapse !important; @@ -10740,7 +11257,7 @@ } } /** Icons *********************************************************************/ -@supports not -moz-bool-pref("userChrome.icon.disabled") { +@media not -moz-pref("userChrome.icon.disabled") { /** Icons - List **************************************************************/ :root { --uc-folder-icon: url("chrome://global/skin/icons/folder.svg"); @@ -10757,12 +11274,12 @@ --uc-sidebar-icon: url("chrome://browser/skin/sidebars.svg"); --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars-right.svg"); } - @supports -moz-bool-pref("userChrome.icon.library") { + @media -moz-pref("userChrome.icon.library") { :root { --uc-folder-icon: url("../icons/folder.svg"); } } - @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + @media -moz-pref("userChrome.tab.connect_to_window") { :root { --uc-tab-icon: url("../icons/tab-photon.svg"); --uc-tab-copy-icon: url("../icons/tab-copy-photon.svg"); @@ -10776,7 +11293,7 @@ } } @supports selector(:has(a)) { - :root:has(#sidebar-box[positionend="true"]) { + :root:has(#sidebar-box[positionend]) { --uc-sidebar-icon: url("chrome://browser/skin/sidebars-right.svg"); --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars.svg"); } @@ -10789,7 +11306,7 @@ list-style-image: var(--uc-tab-icon) !important; } /** Library - Icons Replace ***************************************************/ - @supports -moz-bool-pref("userChrome.icon.library") { + @media -moz-pref("userChrome.icon.library") { /*= Standard Folder - More Visible ===========================================*/ /* on Toolbar and Menus */ :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) @@ -10962,7 +11479,7 @@ } } /** Panel - Icons *************************************************************/ - @supports -moz-bool-pref("userChrome.icon.panel") { + @media -moz-pref("userChrome.icon.panel") { /*= Padding ==================================================================*/ :root { --arrowpanel-menuicon-padding: 8px; @@ -10975,7 +11492,7 @@ .subviewbutton > .toolbarbutton-icon { width: 16px; } - @supports not -moz-bool-pref("userChrome.icon.panel_full") { + @media not -moz-pref("userChrome.icon.panel_full") { :root { /* Global */ --arrowpanel-menuicon-paddingx2: calc(var(--arrowpanel-menuicon-padding) * 2); @@ -11095,15 +11612,26 @@ background-size: 16px !important; background-image: var(--avatar-image-url) !important; } + #appMenu-profiles-button > image, + #appMenu-empty-profiles-button > image { + fill: transparent !important; + } + #appMenu-empty-profiles-button, + #PanelUI-fxa-menu-empty-profiles-button { + list-style-image: url("chrome://browser/content/profiles/assets/16_heart.svg"); + } + #profiles-manage-profiles-button { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } #new-tab-button { list-style-image: var(--uc-new-tab-icon) !important; } - @supports -moz-bool-pref("userChrome.icon.panel_full") or -moz-bool-pref("userChrome.icon.panel_photon") { + @media -moz-pref("userChrome.icon.panel_full") or -moz-pref("userChrome.icon.panel_photon") { #appMenu-new-tab-button2 { list-style-image: var(--uc-new-tab-icon); } } - @supports -moz-bool-pref("userChrome.icon.panel_photon") { + @media -moz-pref("userChrome.icon.panel_photon") { #appMenu-save-file-button2, #appMenu-find-button2, #appMenu-more-button2 { @@ -11115,8 +11643,8 @@ padding-inline-start: var(--arrowpanel-menuimageblank-padding-horizontal) !important; } } - @supports not -moz-bool-pref("userChrome.icon.panel_photon") { - @supports not -moz-bool-pref("userChrome.icon.panel_full") { + @media not -moz-pref("userChrome.icon.panel_photon") { + @media not -moz-pref("userChrome.icon.panel_full") { #appMenu-new-tab-button2, #appMenu-passwords-button, #appMenu-extensions-themes-button, @@ -11149,7 +11677,7 @@ #appMenu-downloads-button { list-style-image: url("chrome://browser/skin/downloads/downloads.svg"); } - @supports -moz-bool-pref("userChrome.icon.panel_full") or -moz-bool-pref("userChrome.icon.panel_photon") { + @media -moz-pref("userChrome.icon.panel_full") or -moz-pref("userChrome.icon.panel_photon") { #appMenu-passwords-button { list-style-image: url("chrome://browser/skin/login.svg"); } @@ -11160,7 +11688,7 @@ #appMenu-print-button2 { list-style-image: url("chrome://global/skin/icons/print.svg"); } - @supports -moz-bool-pref("userChrome.icon.panel_full") { + @media -moz-pref("userChrome.icon.panel_full") { #appMenu-save-file-button2 { list-style-image: url("../icons/toolbarButton-download.svg"); } @@ -11211,12 +11739,12 @@ #appMenu-settings-button { list-style-image: url("chrome://global/skin/icons/settings.svg"); } - @supports -moz-bool-pref("userChrome.icon.panel_full") { + @media -moz-pref("userChrome.icon.panel_full") { #appMenu-more-button2 { list-style-image: url("../icons/ion.svg"); } } - @supports -moz-bool-pref("userChrome.icon.panel_full") or -moz-bool-pref("userChrome.icon.panel_photon") { + @media -moz-pref("userChrome.icon.panel_full") or -moz-pref("userChrome.icon.panel_photon") { #appMenu-help-button2 { list-style-image: url("chrome://global/skin/icons/help.svg"); } @@ -11242,13 +11770,13 @@ background-image: var(--avatar-image-url); margin-inline-end: var(--arrowpanel-menuicon-padding); } - @supports -moz-bool-pref("userChrome.icon.account_image_to_right") { + @media -moz-pref("userChrome.icon.account_image_to_right") { #fxa-manage-account-button::before { order: 2 !important; -moz-box-ordinal-group: 2 !important; } } - @supports -moz-bool-pref("userChrome.icon.account_label_to_right") { + @media -moz-pref("userChrome.icon.account_label_to_right") { #fxa-menu-header-title, #fxa-menu-header-description { text-align: right; @@ -11315,7 +11843,8 @@ #PanelUI-signedin-panel[hidden="true"] + #PanelUI-fxa-cta-menu #PanelUI-products-separator { display: none; } - #PanelUI-fxa-menu > :first-child { + #PanelUI-fxa-menu > :first-child, + #fxa-manage-account-button { order: -1; -moz-box-ordinal-group: 0; } @@ -11330,6 +11859,21 @@ .sendToDevice-device.subviewbutton.sync-menuitem.sendtab-target:not([clientType]) { list-style-image: url("chrome://global/skin/icons/settings.svg"); } + .sendToDevice-device[clientType="phone"] { + list-style-image: url("../icons/device-phone.svg") !important; + } + .sendToDevice-device[clientType="tablet"] { + list-style-image: url("../icons/device-tablet.svg") !important; + } + .sendToDevice-device[clientType="desktop"] { + list-style-image: url("../icons/device-desktop.svg") !important; + } + .sendToDevice-device[clientType="tv"] { + list-style-image: url("../icons/device-tv.svg") !important; + } + .sendToDevice-device[clientType="vr"] { + list-style-image: url("../icons/device-vr.svg") !important; + } /*= Panel - Bookmark =========================================================*/ #panelMenuBookmarkThisPage { list-style-image: url("chrome://browser/skin/bookmark-hollow.svg"); @@ -11484,6 +12028,9 @@ #allTabsMenu-searchTabs { list-style-image: url("chrome://global/skin/icons/search-glass.svg"); } + #allTabsMenu-syncedTabs { + list-style-image: url("../icons/synced-tabs.svg"); + } #allTabsMenu-closeDuplicateTabs { list-style-image: var(--uc-tab-close-duplicate-icon); } @@ -11513,7 +12060,7 @@ #BMB_bookmarksToolbar { --menuitem-image: url("../icons/bookmarks-toolbar-alt.svg"); } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #BMB_bookmarksShowAllTop { list-style-image: url("chrome://browser/skin/bookmark-star-on-tray.svg") !important; } @@ -11536,6 +12083,9 @@ fill: currentColor; margin-inline-end: 1em; } + #protections-popup-report-broken-site-button { + list-style-image: url("chrome://global/skin/icons/lightbulb.svg"); + } #protections-popup-settings-button > .protections-popup-settings-icon, #protections-popup-multiView .panel-subview-footer-button { list-style-image: url("chrome://global/skin/icons/settings.svg"); @@ -11580,6 +12130,12 @@ #sidebar-switcher-tabs:is(menuitem) { --menuitem-image: url("../icons/synced-tabs.svg"); } + #sidebar-switcher-genai-chat.subviewbutton { + list-style-image: url("chrome://mozapps/skin/extensions/category-discover.svg"); + } + #sidebar-switcher-genai-chat:is(menuitem) { + --menuitem-image: url("chrome://mozapps/skin/extensions/category-discover.svg"); + } #sidebar-reverse-position.subviewbutton { list-style-image: var(--uc-sidebar-icon-reverse); } @@ -11592,6 +12148,44 @@ #sidebarMenu-popup > *:is(menuitem)[data-l10n-id="sidebar-menu-close"] { --menuitem-image: url("chrome://global/skin/icons/close.svg"); } + /*= sidebar-context-menu =====================================================*/ + #sidebar-context-menu-manage-extension { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + #sidebar-context-menu-remove-extension { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #sidebar-context-menu-report-extension { + --menuitem-image: url("../icons/send.svg"); + } + #sidebar-context-menu-unpin-extension { + --menuitem-image: url("../icons/unpin-tab.svg"); + } + #sidebar-context-menu-hide-sidebar { + --menuitem-image: url("../icons/eye-hide.svg"); + } + #sidebar-context-menu-customize-sidebar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } + #sidebar-context-menu-enable-vertical-tabs { + --menuitem-image: url("chrome://browser/skin/sidebar-collapsed.svg"); + } + /*= chrome://browser/content/syncedtabs/sidebar.xhtml ========================*/ + .item.client[clientType="phone"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-phone.svg") !important; + } + .item.client[clientType="tablet"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-tablet.svg") !important; + } + .item.client[clientType="desktop"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-desktop.svg") !important; + } + .item.client[clientType="tv"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-tv.svg") !important; + } + .item.client[clientType="vr"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-vr.svg") !important; + } /*= unified-extensions-view ===================================================*/ #unified-extensions-manage-extensions { list-style-image: url("chrome://mozapps/skin/extensions/extension.svg"); @@ -11609,11 +12203,13 @@ } } /** Menu - Icons Layout *******************************************************/ - @supports -moz-bool-pref("userChrome.icon.menu") { + @media -moz-pref("userChrome.icon.menu") { menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, #main-menubar > menu { -moz-appearance: none !important; /* Linux: menulist */ } @@ -11632,10 +12228,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -11645,10 +12243,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -11659,7 +12259,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -11681,7 +12282,7 @@ fill: currentColor !important; } /* For native context menus */ - @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + @media -moz-pref("widget.macos.native-context-menus") or -moz-pref("widget.gtk.native-context-menus") { :not(menu, #ContentSelectDropdown) > menupopup:not(.in-menulist) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -11717,10 +12318,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -11730,10 +12333,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -11744,7 +12349,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -11766,7 +12372,7 @@ margin-inline-start: var(--arrowpanel-menuitem-margin-inline) !important; } /* Menubar */ - @supports -moz-bool-pref("userChrome.icon.global_menubar") { + @media -moz-pref("userChrome.icon.global_menubar") { #main-menubar > menu { background-position: var(--uc-menu-background-position) var(--context-menu-background-padding-default) center !important; padding-inline-start: calc(16px + var(--context-menu-background-padding-default)) !important; @@ -11780,7 +12386,18 @@ #main-menubar > menu menupopup { --menuitem-image: none; /* Prevent Image Inheritance */ } - @supports not -moz-bool-pref("userChrome.padding.global_menubar") { + @media (-moz-platform: windows) { + #main-menubar > menu > :is(.menubar-text, .menu-text) { + transform: translateY(-1px) !important; /* Fix menu top padding position */ + padding-inline-start: 0.3em !important; + } + } + @media (-moz-gtk-csd-available) { + #main-menubar > menu > :is(.menubar-text, .menu-text) { + padding-inline-start: 3px; + } + } + @media not -moz-pref("userChrome.padding.global_menubar") { #main-menubar > menu { padding-block: 2px !important; } @@ -11811,10 +12428,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -11824,10 +12443,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -11838,7 +12459,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -11852,9 +12474,12 @@ .menupopup-arrowscrollbox { padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */ } + menupopup[needsgutter] > :is(menu, menuitem) > .menu-icon { + display: none !important; + } } @media (-moz-platform: windows), (-moz-gtk-csd-available) { - @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media -moz-pref("userChrome.theme.non_native_menu") { @media (-moz-platform: windows) and (-moz-gtk-csd-available), (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { :root { @@ -11879,10 +12504,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -11892,10 +12519,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -11907,7 +12536,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -11921,6 +12551,9 @@ .menupopup-arrowscrollbox { padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */ } + menupopup[needsgutter] > :is(menu, menuitem) > .menu-icon { + display: none !important; + } } } } @@ -11941,12 +12574,15 @@ --context-menu-background-padding-default: 6px; --context-menu-text-padding: 21px; } - #main-menubar > menu > .menubar-text { - padding-inline-start: 3px; + .menu-icon { + display: unset !important; + } + #main-menubar > menu > .menu-icon { + display: none !important; } } /* Padding - Mac */ - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { :root { --context-menu-background-padding-default: 10px; --context-menu-mac-padding: 21px; @@ -11973,7 +12609,7 @@ padding-inline-start: calc(var(--context-menu-background-padding) + var(--context-menu-mac-padding)) !important; } /* Global Menu */ - @supports -moz-bool-pref("userChrome.icon.global_menu.mac") { + @media -moz-pref("userChrome.icon.global_menu.mac") { menupopup:is( #menu_FilePopup, #menu_EditPopup, @@ -11981,10 +12617,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item), menupopup:is( @@ -11994,10 +12632,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic) { list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; @@ -12047,10 +12687,14 @@ /* Windows */ @media (-moz-platform: windows) { /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; padding-inline-start: var(--bookmark-menu-icon-text-padding) !important; background-position: var(--uc-menu-background-position) var(--bookmark-menu-icon-background-padding) center !important; @@ -12069,54 +12713,84 @@ margin-inline-start: -1px !important; } /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--context-menu-background-padding) + 2px) !important; } - @supports -moz-bool-pref("userChrome.theme.non_native_menu") { - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + @media -moz-pref("userChrome.theme.non_native_menu") { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; } } menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] - menuitem:not(.menuitem-iconic, [disabled="true"]) + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) .menu-text, - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) .menu-text { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text { margin-inline-start: var(--context-menu-text-padding) !important; } } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { /* Bookmark Popup - As Arrow Panel */ #PersonalToolbar menupopup menuitem, #PersonalToolbar menupopup menu { padding-inline: var(--arrowpanel-menuitem-padding-inline) !important; } /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 3px) !important; } - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 1px) !important; } menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] - menuitem:not(.menuitem-iconic, [disabled="true"]) + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) > .menu-text, - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) > .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) > .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) > .menu-text { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text { padding-inline-start: var(--context-menu-mac-padding) !important; } } - @supports -moz-bool-pref("userChrome.icon.context_menu") { + @media -moz-pref("userChrome.icon.context_menu") { /** Context Menu - Icons ******************************************************/ /*= tabContextMenu ===========================================================*/ #context_openANewTab, #treestyletab_piro_sakura_ne_jp-menuitem-_context_newTab, @@ -12140,8 +12814,13 @@ #sidebartabs_asamuzak_jp-menuitem-_reloadAllTabs { --menuitem-image: url("../icons/reload.svg"); } + #context_playTab, + #context_playSelectedTabs { + --menuitem-image: url("../icons/play-fill.svg"); + } #context_toggleMuteTab, #context_toggleMuteSelectedTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab[label="Mute Tab"], #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-mute, #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab, #sidebartabs_asamuzak_jp-menuitem-_muteTab { @@ -12150,6 +12829,7 @@ } #context_toggleMuteTab[muted], #context_toggleMuteSelectedTabs[muted], + #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab[label="Unmute Tab"], #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-unmute, #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab[label="Unmute Tab"], #sidebartabs_asamuzak_jp-menuitem-_muteTab[label="Unmute Tab"] { @@ -12169,6 +12849,12 @@ #sidebartabs_asamuzak_jp-menuitem-_pinTab[label="Unpin Tab"] { --menuitem-image: url("../icons/unpin-tab.svg"); } + #treestyletab_piro_sakura_ne_jp-menuitem-_context_topLevel_toggleSticky[label="Stick Tab to Edges"] { + --menuitem-image: url("../icons/align-distribute-top.svg"); + } + #treestyletab_piro_sakura_ne_jp-menuitem-_context_topLevel_toggleSticky[label="Unstick Tab to Edges"] { + --menuitem-image: url("../icons/align-space-evenly-vertical.svg"); + } #context_duplicateTab, #context_duplicateTabs, #treestyletab_piro_sakura_ne_jp-menuitem-_context_duplicateTab, @@ -12203,7 +12889,7 @@ /* At windows */ --menuitem-image: url("../icons/share.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #context_shareTabURL, menuitem.share-tab-url-item { --menuitem-image: url("../icons/share.svg"); @@ -12229,12 +12915,13 @@ #sidebartabs_asamuzak_jp-menuitem-_closeTab { --menuitem-image: url("chrome://global/skin/icons/close.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { + #treestyletab_piro_sakura_ne_jp-menuitem-_context_closeDuplicatedTabs, #context_closeDuplicateTabs { --menuitem-image: var(--uc-tab-close-duplicate-icon); } } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #context_closeTabOptions, #treestyletab_piro_sakura_ne_jp-menuitem-_context_closeMultipleTabs, #tabcenter-reborn_ariasuni-menuitem-_contextMenuCloseTabs, @@ -12299,6 +12986,12 @@ #toolbar-context-undoCloseTab { --menuitem-image: url("../icons/undo.svg"); } + #toolbar-context-customize-sidebar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } + #toolbar-context-toggle-vertical-tabs { + --menuitem-image: url("chrome://browser/skin/sidebar-collapsed.svg"); + } #toggle_toolbar-menubar { /* checkbox */ --menuitem-image: url("../icons/calendar-agenda.svg"); @@ -12323,7 +13016,7 @@ display: none; } } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #tm-duplicateinWin { --menuitem-image: url("../icons/tab-desktop-multiple-bottom.svg"); } @@ -12332,7 +13025,7 @@ } } #tm-renameTab { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #tm-copyTabUrl { --menuitem-image: url("../icons/link.svg"); @@ -12343,12 +13036,12 @@ #context_reloadTabOptions { --menuitem-image: url("../icons/reload.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #context_reloadTabOptions { --menuitem-image: url("../icons/filter-reload.svg"); } } - @supports not -moz-bool-pref("userChrome.icon.menu.full") { + @media not -moz-pref("userChrome.icon.menu.full") { #context_reloadTabOptions + #context_reloadTab { --menuitem-image: url("../icons/blank.svg"); } @@ -12362,12 +13055,12 @@ #tm-protectTab { --menuitem-image: url("../icons/shield-task.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #tm-lockTab { --menuitem-image: url("../icons/lock-closed.svg"); } } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #context_bookmarkAllTabs { --menuitem-image: url("../icons/bookmark-multiple.svg"); } @@ -12543,7 +13236,7 @@ #context-pdfjs-undo { --menuitem-image: url("../icons/undo.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #context-redo, #context-pdfjs-redo { --menuitem-image: url("../icons/redo.svg"); @@ -12591,6 +13284,9 @@ #context-translate-selection { --menuitem-image: url("../icons/translations.svg"); } + #context-ask-chat { + --menuitem-image: url("../icons/chat-sparkle.svg"); + } #frame { --menuitem-image: url("../icons/command-frames.svg"); } @@ -12623,7 +13319,7 @@ #context-media-eme-learnmore { /* iconic */ } - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { #context-back { --menuitem-image: url("chrome://browser/skin/back.svg"); } @@ -12640,6 +13336,35 @@ --menuitem-image: url("chrome://browser/skin/bookmark.svg"); } } + /*= context-ask-chat =========================================================*/ + #ask-chat-shortcuts .toolbarbutton-icon { + order: -1; + margin-inline-end: var(--arrowpanel-menuitem-margin-inline) !important; + } + #ask-chat-shortcuts .subviewbutton:nth-child(1) { + list-style-image: url("../icons/apps-list-detail.svg"); + } + #ask-chat-shortcuts .subviewbutton:nth-child(2) { + list-style-image: url("../icons/code-text.svg"); + } + #ask-chat-shortcuts .subviewbutton:nth-child(3) { + list-style-image: url("../icons/tetris-app.svg"); + } + #ask-chat-shortcuts .subviewbutton:nth-child(4) { + list-style-image: url("../icons/arrow-up-exclamation.svg"); + } + #context-ask-chat menuitem:nth-child(1) { + --menuitem-image: url("../icons/apps-list-detail.svg"); + } + #context-ask-chat menuitem:nth-child(2) { + --menuitem-image: url("../icons/code-text.svg"); + } + #context-ask-chat menuitem:nth-child(3) { + --menuitem-image: url("../icons/tetris-app.svg"); + } + #context-ask-chat menuitem:nth-child(4) { + --menuitem-image: url("../icons/arrow-up-exclamation.svg"); + } /*= main-context-menu-frame ==================================================*/ #context-showonlythisframe { --menuitem-image: url("../icons/eye-show.svg"); @@ -12778,7 +13503,7 @@ #placesContext_show_bookmark\:info, #placesContext_show\:info, #placesContext_show_folder\:info { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #placesContext_deleteBookmark, #placesContext_deleteFolder, @@ -12842,7 +13567,7 @@ --menuitem-image: url("chrome://global/skin/icons/check.svg"); } #blockedPopupOptions > menuitem[oncommand="gPopupBlockerObserver.editPopupSettings();"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #blockedPopupDontShowMessage { /* checkbox */ @@ -12948,7 +13673,7 @@ #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_undo"] { --menuitem-image: url("../icons/undo.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_redo"] { --menuitem-image: url("../icons/redo.svg"); } @@ -12959,7 +13684,7 @@ #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_copy"] { --menuitem-image: url("../icons/edit-copy.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #strip-on-share { --menuitem-image: url("../icons/link-no-tracking.svg"); } @@ -12967,7 +13692,7 @@ #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_paste"] { --menuitem-image: url("../icons/edit-paste.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #paste-and-go { --menuitem-image: url("../icons/edit-paste-go.svg"); } @@ -12983,7 +13708,7 @@ .textbox-contextmenu > menuitem[data-l10n-id="text-action-undo"] { --menuitem-image: url("../icons/undo.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { .textbox-contextmenu > menuitem[data-l10n-id="text-action-redo"] { --menuitem-image: url("../icons/redo.svg"); } @@ -13004,7 +13729,7 @@ --menuitem-image: url("../icons/select-all-on.svg"); } /* Only searchbar */ - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { menuitem.searchbar-paste-and-search { --menuitem-image: url("../icons/edit-paste-search.svg"); } @@ -13057,6 +13782,9 @@ --menuitem-image: url("../icons/send.svg"); } /*= urlbarView-result-menu ===================================================*/ + .urlbarView-result-menuitem[data-command="trendingblock"] { + --menuitem-image: url("../icons/eye-hide.svg"); + } .urlbarView-result-menuitem[data-command="dismiss"] { --menuitem-image: url("chrome://global/skin/icons/delete.svg"); } @@ -13078,13 +13806,13 @@ --menuitem-image: url("chrome://global/skin/icons/info.svg"); } } - @supports -moz-bool-pref("userChrome.icon.global_menubar") { + @media -moz-pref("userChrome.icon.global_menubar") { /*= main-menubar =============================================================*/ #file-menu { --menuitem-image: url("../icons/mail-inbox-all.svg"); } #edit-menu { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #view-menu { --menuitem-image: url("../icons/content-view.svg"); @@ -13095,6 +13823,10 @@ #bookmarksMenu { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); } + #profiles-menu:is(menu) { + fill: transparent !important; + --menuitem-image: url("chrome://browser/content/profiles/assets/16_heart.svg"); + } #tools-menu { --menuitem-image: url("../icons/toolbox.svg"); } @@ -13104,8 +13836,20 @@ #helpMenu { --menuitem-image: url("chrome://global/skin/icons/help.svg"); } + /*= Others ===================================================================*/ + #alltabs-button { + list-style-image: url("chrome://global/skin/icons/arrow-down.svg") !important; + } + #alltabs-button > .toolbarbutton-badge-stack > .toolbarbutton-icon { + /* Original + width: 20px; + margin: -2px; + */ + width: 16px !important; + margin: 0 !important; + } } - @supports -moz-bool-pref("userChrome.icon.global_menu") { + @media -moz-pref("userChrome.icon.global_menu") { /** Global Menu ***************************************************************/ /*= menu_FilePopup ===========================================================*/ #menu_newNavigatorTab { @@ -13126,7 +13870,7 @@ #menu_close { --menuitem-image: var(--uc-tab-close-icon); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #menu_closeWindow { --menuitem-image: url("../icons/close-window.svg"); } @@ -13161,7 +13905,7 @@ #menu_undo { --menuitem-image: url("../icons/undo.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #menu_redo { --menuitem-image: url("../icons/redo.svg"); } @@ -13184,7 +13928,7 @@ #menu_find { --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #menu_findAgain { --menuitem-image: url("../icons/find-again.svg"); } @@ -13302,6 +14046,10 @@ #menu_searchBookmarks { --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); } + /*= menu_ProfilesPopup =======================================================*/ + #menu_manageProfiles { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } /*= menu_ToolsPopup ==========================================================*/ #menu_openDownloads { --menuitem-image: url("chrome://browser/skin/downloads/downloads.svg"); @@ -13398,7 +14146,7 @@ --menuitem-image: url("chrome://global/skin/icons/info.svg"); } } - @supports -moz-bool-pref("userChrome.icon.library") { + @media -moz-pref("userChrome.icon.library") { /*= organizeButtonPopup ======================================================*/ #newbookmark { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); @@ -13412,7 +14160,7 @@ #orgUndo { --menuitem-image: url("../icons/undo.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #orgRedo { --menuitem-image: url("../icons/redo.svg"); } @@ -13446,7 +14194,7 @@ #backupBookmarks { --menuitem-image: url("../icons/datastore.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #fileRestoreMenu { --menuitem-image: url("../icons/datarestore.svg"); } @@ -13463,7 +14211,7 @@ } } /** Icons - 1.25px Stroke Width ***********************************************/ - @supports -moz-bool-pref("userChrome.icon.1-25px_stroke") { + @media -moz-pref("userChrome.icon.1-25px_stroke") { #firefox-view-button { list-style-image: url("../icons/firefox-view.svg") !important; } @@ -13482,15 +14230,19 @@ { content: url("../icons/developer.svg") !important; } + .tabbrowser-tab:is([image="chrome://browser/skin/controlcenter/dashboard.svg"]) .tab-icon-image + { + content: url("../icons/dashboard.svg") !important; + } } /** Icons for fork browsers ***************************************************/ /*= Waterfox =================================================================*/ - @supports -moz-bool-pref("userChrome.icon.panel") { + @media -moz-pref("userChrome.icon.panel") { #appMenu-restart-button { list-style-image: url("../icons/refresh-cw.svg") !important; } } - @supports -moz-bool-pref("userChrome.icon.menu") { + @media -moz-pref("userChrome.icon.menu") { #menu_FileRestartItem { --menuitem-image: url("../icons/refresh-cw.svg"); } @@ -13500,9 +14252,12 @@ menuitem.privatetab-icon { --menuitem-image: url("../icons/private-favicon.svg"); } + #sidebar_waterfox_net-menuitem-_openAllBookmarksWithStructure { + --menuitem-image: url("../icons/organization-horizontal.svg"); + } } /*= Tor Browser ==============================================================*/ - @supports -moz-bool-pref("userChrome.icon.panel") { + @media -moz-pref("userChrome.icon.panel") { #appMenuNewIdentity { list-style-image: url("chrome://browser/skin/new_identity.svg"); } @@ -13513,7 +14268,7 @@ list-style-image: url("chrome://browser/skin/onion.svg"); } } - @supports -moz-bool-pref("userChrome.icon.menu") { + @media -moz-pref("userChrome.icon.menu") { #menu_newIdentity { --menuitem-image: url("chrome://browser/skin/new_identity.svg"); } @@ -13531,7 +14286,7 @@ #ssbPageAction-image[open-ssb="true"] { list-style-image: url("../icons/pwa-launch.svg"); } - @supports -moz-bool-pref("userChrome.icon.panel") { + @media -moz-pref("userChrome.icon.panel") { #rebootappmenu { list-style-image: url("../icons/refresh-cw.svg"); } @@ -13548,7 +14303,7 @@ list-style-image: url("../icons/pwa-launch.svg"); } } - @supports -moz-bool-pref("userChrome.icon.menu") { + @media -moz-pref("userChrome.icon.menu") { #toggle_sharemode { --menuitem-image: url("chrome://branding/content/about-logo-private.png"); } @@ -13562,7 +14317,7 @@ --menuitem-image: url("chrome://global/skin/icons/reload.svg"); } #usercssloader-submenupopup > menuitem[data-l10n-id="make-browsercss-file"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #usercssloader-submenupopup > menuitem[data-l10n-id="open-css-folder"] { --menuitem-image: var(--uc-folder-icon); @@ -13602,7 +14357,7 @@ } } } -/*@ NIGHTLY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ +/*@ DEPRECATED @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /** Default Theme - Contrast **************************************************/ @media (-moz-bool-pref: "userChrome.theme.built_in_contrast") { /*= Lightmode - Color darker =================================================*/ @@ -13663,7 +14418,7 @@ padding-inline-end: var(--arrowpanel-menuitem-padding-inline) !important; } /*= First visible tab margin at maximized #332 ===============================*/ - :root[tabsintitlebar="true"][sizemode="maximized"] #TabsToolbar { + :root:is([tabsintitlebar="true"], [customtitlebar="true"])[sizemode="maximized"] #TabsToolbar { margin-left: -1px; } /*= Disabled menu background color ===========================================*/ @@ -13683,6 +14438,7 @@ /*= Infobar Align #858 =======================================================*/ /*= Inactive transparent #882 ================================================*/ /*= Tabpreviw transparent #890 ===============================================*/ + /*= Design token =============================================================*/ } @media (-moz-bool-pref: "userChrome.compatibility.theme") and (-moz-bool-pref: "userChrome.tab.connect_to_window") { /* TARGET: original, photon */ @@ -13753,11 +14509,26 @@ --lwt-tabs-border-color: rgba(0, 0, 0, 0.4); } } +@media (-moz-bool-pref: "userChrome.compatibility.theme") { + #main-window { + background-color: WindowFrame !important; + } +} +@media (-moz-bool-pref: "userChrome.compatibility.theme") { + :root[lwtheme][lwtheme-image] #customization-container { + background-image: none !important; + } +} @media (-moz-bool-pref: "userChrome.compatibility.theme") { #customization-container { background-color: transparent !important; /* Original: color-mix(in srgb, -moz-dialog 85%, white) */ } } +@media (-moz-bool-pref: "userChrome.compatibility.theme") { + :root:not([lwtheme]) #customization-container { + background-color: var(--toolbar-non-lwt-bgcolor) !important; + } +} @media (-moz-bool-pref: "userChrome.compatibility.theme") { html|input.findbar-textbox { border: 1px solid var(--input-border-color, var(--toolbar-field-border-color, ThreeDShadow)) !important; /* Original: 1px solid var(--input-border-color, var(--toolbar-field-border-color)) */ @@ -13803,14 +14574,18 @@ } } @media (-moz-bool-pref: "userChrome.compatibility.theme") { - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; color: color-mix(in srgb, currentColor calc(var(--inactive-titlebar-opacity, 0.75) * 100%), transparent) !important; --inactive-toolbarbutton-icon-fill-opacity: calc( var(--toolbarbutton-icon-fill-opacity, 1) * var(--inactive-titlebar-opacity, 0.75) ); } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .toolbarbutton-icon { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .toolbarbutton-icon, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .toolbarbutton-icon, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .toolbarbutton-icon { fill-opacity: var(--inactive-toolbarbutton-icon-fill-opacity, 1); } } @@ -13824,6 +14599,19 @@ ) !important; /* Original: var(--tab-selected-textcolor, var(--toolbar-color)) */ } } +@media (-moz-bool-pref: "userChrome.compatibility.theme") { + :root, + :host { + --button-color: var(--button-text-color); + --button-bgcolor: var(--button-background-color); + --button-hover-bgcolor: var(--button-background-color-hover); + --button-active-bgcolor: var(--button-background-color-active); + --button-primary-color: var(--button-text-color-primary); + --button-primary-bgcolor: var(--button-background-color-primary); + --button-primary-hover-bgcolor: var(--button-background-color-primary-hover); + --button-primary-active-bgcolor: var(--button-background-color-primary-active); + } +} /*= OS - Compatibility =======================================================*/ @media (-moz-bool-pref: "userChrome.compatibility.os") { /*= Windows 10 - Top border of accent color at ESR #358 ======================*/ @@ -13833,22 +14621,23 @@ /*= Linux - Light System Default Theme's Selected Tab ========================*/ /*= Titlebar Container Size at maximized #384 ================================*/ /*= Windows - Classic Theme #734 =============================================*/ + /*= MacOS Fullscreen clipping #1045 ==========================================*/ } @media (-moz-bool-pref: "userChrome.compatibility.os") and (-moz-platform: windows) { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top: 0.5px solid rgb(47, 47, 47) !important; } - :root[sizemode="normal"][tabsintitlebar]:-moz-window-inactive #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]):-moz-window-inactive #navigator-toolbox { border-top-color: rgb(57, 57, 57) !important; } } @media (-moz-bool-pref: "userChrome.compatibility.os") and (-moz-platform: windows) and (-moz-windows-accent-color-in-titlebar) { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top-color: ActiveBorder !important; } } @media (-moz-bool-pref: "userChrome.compatibility.os") and (-moz-platform: windows) and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.compatibility.accent_color") { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top-color: -moz-accent-color !important; } } @@ -13859,28 +14648,6 @@ color: inherit !important; /* Original: -moz-menubarhovertext */ background-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* Original: -moz-menuhover */ } - /*= Linux - Titlebar button at lwtheme =====================================*/ -} -@media (-moz-bool-pref: "userChrome.compatibility.os") and (-moz-gtk-csd-available) and (not (-moz-bool-pref: "userChrome.compatibility.os.linux_non_native_titlebar_button")) { - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button { - appearance: none !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button > .toolbarbutton-icon { - appearance: auto !important; - width: unset !important; - height: unset !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-min, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-max, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-restore, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-close { - list-style-image: none !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button:hover:active { - background-color: unset !important; - color: unset !important; - } } @media (-moz-bool-pref: "userChrome.compatibility.os") and (-moz-gtk-csd-available) and (prefers-color-scheme: light) { /* Because of @@ -13906,17 +14673,22 @@ } } @media (-moz-bool-pref: "userChrome.compatibility.os") and (-moz-platform: windows) and (not (-moz-bool-pref: "userChrome.compatibility.os.windows_maximized")) { - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar { /* -moz-default-appearance: -moz-window-titlebar */ appearance: none !important; } } @media (-moz-bool-pref: "userChrome.compatibility.os") and (-moz-platform: windows) and (-moz-bool-pref: "userChrome.compatibility.os.windows_maximized") { - :root[tabsintitlebar][sizemode="maximized"] #titlebar { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #titlebar { appearance: none !important; padding-top: 8px; } } +@media (-moz-bool-pref: "userChrome.compatibility.os") { + :root[sizemode="fullscreen"][macOSNativeFullscreen]:not([inDOMFullscreen="true"]) #TabsToolbar { + min-height: var(--tab-min-height, fit-content) !important; + } +} /*= Others - Compatibility ===================================================*/ @media (-moz-bool-pref: "userChrome.compatibility.panel_cutoff") { #appMenu-popup panelview { @@ -13938,14 +14710,16 @@ @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-windows-accent-color-in-titlebar), (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-gtk-csd-available) { /* URL Bar */ - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --focus-outline-color: AccentColor !important; } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #urlbar[open] > #urlbar-background, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #urlbar[open] > #urlbar-background { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #urlbar[open] + > #urlbar-background { border-color: color-mix( in srgb, AccentColor 50%, @@ -13955,14 +14729,16 @@ } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.compatibility.accent_color"), (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --focus-outline-color: -moz-accent-color !important; } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #urlbar[open] > #urlbar-background, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #urlbar[open] > #urlbar-background { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #urlbar[open] + > #urlbar-background { border-color: color-mix( in srgb, -moz-accent-color 50%, @@ -14221,8 +14997,8 @@ } } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-platform: windows) and (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-windows-accent-color-in-titlebar) { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --toolbarseparator-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* As default */ } } @@ -14259,7 +15035,11 @@ } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-platform: windows) { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, - :root[lwt-default-theme-in-dark-mode] #titlebar { + :root[lwt-default-theme-in-dark-mode] #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root[lwt-default-theme-in-dark-mode] #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar, + :root[lwt-default-theme-in-dark-mode] #TabsToolbar { --button-hover-bgcolor: var(--win-sidebar-button-hover-bgcolor); --button-active-bgcolor: var(--win-sidebar-button-hover-active-bgcolor); --toolbarbutton-hover-background: var(--win-sidebar-button-hover-bgcolor); @@ -14306,7 +15086,8 @@ #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 + #appMenu-fullscreen-button2, + .unified-extensions-item-menu-button ):is(:hover), :root[lwt-default-theme-in-dark-mode] toolbarbutton.subviewbutton:not( @@ -14317,7 +15098,8 @@ #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 + #appMenu-fullscreen-button2, + .unified-extensions-item-menu-button ):is(:hover) { background-color: var(--win-hover-bgcolor) !important; } @@ -14357,6 +15139,27 @@ } } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-platform: windows) { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root[lwtheme-mozlightdark] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox @@ -14387,30 +15190,46 @@ } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-windows-accent-color-in-titlebar) { /* Tab Bar */ - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .titlebar-color, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .titlebar-color { - color: AccentColorText; - background-color: AccentColor; + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .browser-titlebar, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .browser-titlebar { + color: AccentColorText !important; + background-color: AccentColor !important; } } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .titlebar-color, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .titlebar-color { - color: -moz-accent-color-foreground; - background-color: -moz-accent-color; + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .browser-titlebar, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .browser-titlebar { + color: -moz-accent-color-foreground !important; + background-color: -moz-accent-color !important; } } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-windows-accent-color-in-titlebar) { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .toolbar-items, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .toolbar-items { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .toolbar-items, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .toolbar-items { --toolbarbutton-icon-fill: currentColor; --toolbarbutton-hover-background: color-mix(in srgb, AccentColorText 10%, transparent); --toolbarbutton-active-background: color-mix(in srgb, AccentColorText 15%, transparent); } } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .toolbar-items, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .toolbar-items { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .toolbar-items, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .toolbar-items { --toolbarbutton-hover-background: color-mix(in srgb, -moz-accent-color-foreground 10%, transparent); --toolbarbutton-active-background: color-mix(in srgb, -moz-accent-color-foreground 15%, transparent); } @@ -14610,13 +15429,19 @@ } } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") { - :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar { --mac-hover-bgcolor: ButtonFace; } } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, - :root[lwt-default-theme-in-dark-mode] #titlebar { + :root[lwt-default-theme-in-dark-mode] #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root[lwt-default-theme-in-dark-mode] #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar, + :root[lwt-default-theme-in-dark-mode] #TabsToolbar { --button-hover-bgcolor: var(--mac-hover-bgcolor); --button-active-bgcolor: var(--mac-hover-bgcolor); --toolbarbutton-hover-background: var(--mac-hover-bgcolor); @@ -14666,6 +15491,18 @@ } } @media (-moz-bool-pref: "userChrome.theme.system_default") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") and (-moz-bool-pref: "userChrome.tab.color_like_toolbar") { + :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox @@ -14819,8 +15656,11 @@ width: unset !important; } .menu-iconic-left .menu-iconic-icon, + .menu-iconic-left .menu-icon, menuitem[type="checkbox"] .menu-iconic-icon, - menuitem[type="radio"] .menu-iconic-icon { + menuitem[type="checkbox"] .menu-icon, + menuitem[type="radio"] .menu-iconic-icon, + menuitem[type="radio"] .menu-icon { appearance: none !important; } } @@ -14849,7 +15689,8 @@ } } @media (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available) { - menuitem[checked="true"] > .menu-iconic-left { + menuitem[checked="true"] > .menu-iconic-left, + menuitem[checked="true"] > .menu-icon { -moz-context-properties: fill, fill-opacity !important; fill: currentColor !important; fill-opacity: var(--menu-icon-opacity) !important; @@ -14879,7 +15720,7 @@ @media (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available) { menupopup { /* Disable the default appearance so we can override the native styling. */ - appearance: none !important !important; + appearance: none !important; /* Prevent any background or border around the outside of the shadow. */ background-color: transparent !important; border: none !important; @@ -14962,13 +15803,15 @@ } } @media (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic > .menu-iconic-left { + #context-navigation > .menuitem-iconic > .menu-iconic-left, + #context-navigation > .menuitem-iconic > .menu-icon { margin: 0 !important; padding: 0 !important; } } @media (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic > .menu-icon { width: var(--menuitem-min-width) !important; height: 32px !important; padding: 8px 1em !important; @@ -14976,7 +15819,8 @@ } } @media (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-icon { background-color: var(--menuitem-hover-background-color) !important; } } @@ -14984,7 +15828,8 @@ #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-icon { background-color: transparent !important; } } @@ -15493,7 +16338,6 @@ > .menu-iconic-icon { background-color: var(--menuitem-hover-background-color) !important; } - html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], html#main-window menupopup #context-navigation @@ -15539,7 +16383,6 @@ > .menu-iconic-icon { background-color: var(--menuitem-hover-background-color) !important; } - html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], html#main-window menupopup #context-navigation @@ -15626,6 +16469,17 @@ background-color: var(--button-active-bgcolor) !important; } } +@media (-moz-bool-pref: "userChrome.theme.fully_color") { + .notification-button.primary { + background-color: var(--button-primary-bgcolor) !important; + } + .notification-button.primary:hover { + background-color: var(--button-primary-hover-bgcolor) !important; + } + .notification-button.primary:hover:active { + background-color: var(--button-primary-active-bgcolor) !important; + } +} @media (-moz-bool-pref: "userChrome.theme.fully_color") { html|button.ghost-button:not(.semi-transparent):enabled:hover { background-color: var(--button-hover-bgcolor) !important; @@ -15672,8 +16526,8 @@ } } @media (-moz-bool-pref: "userChrome.theme.fully_color") { - #editBMPanel_namePicker, - #editBMPanel_tagsField { + #editBookmarkPanel #editBMPanel_namePicker, + #editBookmarkPanel #editBMPanel_tagsField { --input-bgcolor: var(--arrowpanel-background, Field); --input-color: var(--arrowpanel-color, FieldText); } @@ -15909,13 +16763,17 @@ :root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { --lwt-accent-color: rgb(45, 36, 91) !important; } - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { --uc-frame-element-background: color-mix(in srgb, var(--lwt-accent-color, Window) 60%, transparent); --toolbarbutton-hover-background: color-mix(in srgb, var(--lwt-accent-color, Window) 85%, transparent); } } @media (-moz-bool-pref: "userChrome.theme.transparent.frame") and (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { --toolbarbutton-hover-background: color-mix( in srgb, var(--lwt-accent-color, Window) 40%, @@ -15965,7 +16823,9 @@ --lwt-accent-color: transparent !important; --lwt-text-color: WindowText !important; } - #titlebar .toolbarbutton-1 { + #titlebar .toolbarbutton-1, + #toolbar-menubar .toolbarbutton-1, + #TabsToolbar .toolbarbutton-1 { --toolbarbutton-icon-fill: var(--lwt-text-color) !important; } :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { @@ -16161,7 +17021,7 @@ fill: currentColor !important; color: var(--in-content-primary-button-text-color) !important; background-color: var(--in-content-primary-button-background) !important; - background-image: url("chrome://global/skin/icons/radio.svg") !important; + background-image: url("../icons/radio.svg") !important; border-color: transparent !important; /* Style the button also when printing with "Print Backgrounds" unchecked */ color-adjust: exact !important; @@ -16877,7 +17737,7 @@ @media (-moz-bool-pref: "userChrome.theme.proton_chrome") and (-moz-gtk-csd-available) { #placesToolbar > toolbarbutton > .toolbarbutton-icon, #placesMenu > menu > image, - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { -moz-context-properties: fill !important; fill: currentColor !important; } @@ -16915,7 +17775,7 @@ } } @media (-moz-bool-pref: "userChrome.theme.proton_chrome") and (-moz-gtk-csd-available) { - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { margin-block: 0 !important; /* override menu.css */ padding-inline-end: 4px !important; } @@ -17453,11 +18313,18 @@ } } @media (prefers-reduced-motion: no-preference) and (-moz-bool-pref: "userChrome.decoration.animate") { - #urlbar-background, + #urlbar-background { + transition: border-color 1s var(--animation-easing-function), background-color 0.5s var(--animation-easing-function) !important; + } + #urlbar-background:hover { + transition: border-color 0.5s var(--animation-easing-function), + background-color 0.5s var(--animation-easing-function) !important; + } +} +@media (prefers-reduced-motion: no-preference) and (-moz-bool-pref: "userChrome.decoration.animate") { #searchbar { transition: border-color 1s var(--animation-easing-function), background-color 1.5s var(--animation-easing-function) !important; } - #urlbar-background:hover, #searchbar:hover { transition: border-color 0.5s var(--animation-easing-function), background-color 1s var(--animation-easing-function) !important; } @@ -17509,17 +18376,15 @@ width: 18em; max-width: 36em; /* Animation */ - transition: margin-inline-start 0.25s var(--animation-easing-function), opacity 0.25s ease-in-out, - visibility 0s linear !important; - will-change: margin-inline-start, opacity, visibility; + transition: margin-inline-start 0.25s var(--animation-easing-function), visibility 0s linear !important; + will-change: margin-inline-start, visibility; } #sidebar-box[hidden="true"] { display: flex !important; display: -moz-box !important; margin-inline-start: -18em; - opacity: 0; visibility: collapse; - transition-delay: 0s, 0s, 0.25s !important; + transition-delay: 0s, 0.25s !important; } } @media (prefers-reduced-motion: no-preference) and (-moz-bool-pref: "userChrome.decoration.animate") { @@ -17632,6 +18497,11 @@ --tab-border-radius: 0 !important; /* Original: 4px */ } } +@media not (-moz-bool-pref: "userChrome.rounding.square_tab") { + :root { + --tab-border-radius: 4px !important; /* Original: 4px */ + } +} @media (-moz-bool-pref: "userChrome.rounding.square_button") { :root { --urlbar-icon-border-radius: 0 !important; /* Original: calc(var(--toolbarbutton-border-radius) - 1px); */ @@ -17795,13 +18665,13 @@ } } @media (-moz-bool-pref: "userChrome.padding.first_tab") and (not (-moz-bool-pref: "userChrome.padding.first_tab.always")) { - :root:not([tabsintitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), + :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { padding-inline-start: var(--uc-space-left-tabbar) !important; } } @media (-moz-bool-pref: "userChrome.padding.first_tab") and (-moz-bool-pref: "userChrome.padding.first_tab.always") { - :root:not([tabsintitlebar]) #tabbrowser-tabs, + :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs, :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs { padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width, 0px) + var(--uc-space-left-tabbar)) !important; } @@ -17889,6 +18759,7 @@ } } @media (-moz-bool-pref: "userChrome.padding.tabbar_width") { + :root:not([uidensity="touch"]) #pinned-tabs-container, :root:not([uidensity="touch"]) #tabbrowser-arrowscrollbox { --scrollbtn-inner-padding: 1px; --scrollbtn-outer-padding: 3px; @@ -17936,15 +18807,35 @@ .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { max-width: var(--tab-max-width) !important; /* Original: 225px */ } + #tabbrowser-tabs[orient="vertical"][expanded] .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + max-width: none !important; + } + #tabbrowser-tabs[orient="horizontal"] + tab-group[collapsed] + > .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + min-width: 0 !important; + max-width: 0 !important; + padding: 0 !important; + margin: 0 !important; + overflow-clip-margin: 0; + } } @media (-moz-bool-pref: "userChrome.padding.tabbar_width") { :root[customizing="true"] #tabbrowser-arrowscrollbox-periphery, + #tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) + > #pinned-tabs-container + > #tabbrowser-arrowscrollbox-periphery, #tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) > #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox-periphery { min-width: 3px; } } +@media (-moz-bool-pref: "userChrome.padding.tabbar_width") { + #tabbrowser-tabs[orient="horizontal"] .tab-group-label-container { + margin-inline-start: 4px !important; + } +} @media (-moz-bool-pref: "userChrome.padding.tabbar_width") and (not (-moz-bool-pref: "userChrome.tab.photon_like_padding")) and (-moz-bool-pref: "userChrome.tab.lepton_like_padding") { #TabsToolbar:not([multibar]) .tabbrowser-tab[pinned] { padding-inline: 1px !important; @@ -17974,22 +18865,22 @@ } } @media (-moz-bool-pref: "userChrome.padding.drag_space") and (-moz-platform: windows) { - :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); } } @media (-moz-bool-pref: "userChrome.padding.drag_space") and (-moz-platform: windows) and (-moz-bool-pref: "userChrome.padding.drag_space.maximized") { - :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); } } @media (-moz-bool-pref: "userChrome.padding.drag_space") and (-moz-gtk-csd-available) { - :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); } } @media (-moz-bool-pref: "userChrome.padding.drag_space") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.padding.drag_space.maximized") { - :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); } } @@ -18078,6 +18969,10 @@ } } @media (-moz-bool-pref: "userChrome.padding.tabbar_height") and (-moz-bool-pref: "userChrome.tab.connect_to_window") and (not (-moz-bool-pref: "userChrome.tabbar.multi_row")) { + :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #pinned-tabs-container, + #TabsToolbar:not([multibar]) #pinned-tabs-container[overflowing="true"] > .tabbrowser-tab[pinned="true"], + #TabsToolbar:not([multibar]) #pinned-tabs-container[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-stack, + #TabsToolbar:not([multibar]) #pinned-tabs-container[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-content, :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox, #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"], #TabsToolbar:not([multibar]) @@ -18090,11 +18985,13 @@ .tab-content { max-height: var(--tab-min-height) !important; /* Force apply height */ } + :root[uidensity="compact"] #TabsToolbar:not([multibar]) #pinned-tabs-container, :root[uidensity="compact"] #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox { height: var(--tab-min-height) !important; } } @media (-moz-bool-pref: "userChrome.padding.tabbar_height") { + :root #pinned-tabs-container, :root #tabbrowser-arrowscrollbox { --scrollbtn-vertical-padding: 3px; --scrollbtn-vertical-border: 2px; @@ -18116,7 +19013,7 @@ } } @media (-moz-bool-pref: "userChrome.padding.tabbar_height") { - :root[tabsintitlebar]:not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar]):not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { height: calc( var(--tab-min-height) - var(--tabs-navbar-shadow-size) - 2px ); /* Compact: 28px, Normal: 33px, Touch: 38px */ @@ -18175,11 +19072,6 @@ :root:not([uidensity="compact"]) #urlbar[breakout][breakout-extend-disabled][open] { height: auto !important; } - :root[uidensity="touch"] #urlbar[breakout] { - top: calc( - (var(--urlbar-toolbar-height, var(--urlbar-container-height)) - var(--urlbar-height)) / 2 + 1px - ) !important; - } /* spread menu */ :root:not([uidensity]) .urlbarView-row { padding-block: 1px !important; /* Original: 2px */ @@ -18196,11 +19088,13 @@ } @media (-moz-bool-pref: "userChrome.padding.urlView_expanding"), (-moz-bool-pref: "userChrome.urlView.as_commandbar") { #urlbar[breakout][breakout-extend] { - top: calc((var(--urlbar-toolbar-height, var(--urlbar-container-height)) - var(--urlbar-height)) / 2) !important; - left: 0 !important; - width: 100% !important; + top: calc(var(--urlbar-container-height) * 2 - var(--urlbar-height)) !important; + width: var(--urlbar-width) !important; + position: relative !important; + margin: 0 !important; } - #urlbar[breakout][breakout-extend] > #urlbar-input-container { + #urlbar[breakout][breakout-extend] > #urlbar-input-container, + #urlbar[breakout][breakout-extend] > .urlbar-input-container { height: var(--urlbar-height) !important; padding-block: 0 !important; padding-inline: var(--urlbar-container-padding, 0px) !important; @@ -18526,6 +19420,8 @@ display: flex !important; /* Needed for content to take up entire height, compatibility with tabs on bottom */ } :root[sizemode="fullscreen"] #titlebar, + :root[sizemode="fullscreen"] #toolbar-menubar, + :root[sizemode="fullscreen"] #TabsToolbar, :root[sizemode="fullscreen"] #nav-bar, :root[sizemode="fullscreen"] #PersonalToolbar, :root[sizemode="fullscreen"] #tab-notification-deck, @@ -18541,7 +19437,8 @@ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /*= Tabbar - Move to bottom ==================================================*/ - #titlebar { + #titlebar, + #TabsToolbar { order: 2; -moz-box-ordinal-group: 2; --tabs-navbar-shadow-size: 0px; @@ -18613,7 +19510,7 @@ width: 100%; overflow: hidden; } - :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar[autohide="true"]:not([inactive="true"]) { height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ } #toolbar-menubar > .titlebar-buttonbox-container { @@ -18647,7 +19544,8 @@ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /*= Tabbar - Move to bottom ==================================================*/ - #titlebar { + #titlebar, + #TabsToolbar { order: 2; -moz-box-ordinal-group: 2; --tabs-navbar-shadow-size: 0px; @@ -18719,7 +19617,7 @@ width: 100%; overflow: hidden; } - :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar[autohide="true"]:not([inactive="true"]) { height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ } #toolbar-menubar > .titlebar-buttonbox-container { @@ -18773,7 +19671,9 @@ } } @media (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) { - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { transform: translateY(var(--uc-navbar-block, 0px)); } } @@ -18890,7 +19790,9 @@ } } @media screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) { - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { transform: translateY(var(--uc-navbar-block, 0px)); } } @@ -18995,7 +19897,7 @@ --uc-window-drag-space-post: 0px; /* Same as .titlebar-spacer[type="post-tabs"] */ --uc-window-control-space: calc(var(--uc-window-control-width) + var(--uc-window-drag-space-post)); } - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: var(--uc-title-pre-spacer, 40px); --uc-window-drag-space-post: var(--uc-title-post-spacer, 40px); } @@ -19004,7 +19906,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 138px; } } @@ -19012,7 +19914,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-gtk-csd-available), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-gtk-csd-available), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-gtk-csd-available) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { /* 84px is default value of linux */ } } @@ -19028,7 +19930,7 @@ (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-gtk-csd-available) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 28px; } } @@ -19044,7 +19946,7 @@ (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-close-button), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 56px; } } @@ -19052,7 +19954,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 84px; } } @@ -19060,7 +19962,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled"), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled"), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") { - :root[tabsintitlebar] { + :root:is([tabsintitlebar], [customtitlebar]) { --uc-window-control-width: 72px; } :root[sizemode="fullscreen"] { @@ -19071,7 +19973,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner"), (-moz-bool-pref: "userChrome.hidden.tabbar"), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") { - :root:is([tabsintitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar][sizemode="maximized"], [customtitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @@ -19079,7 +19981,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @@ -19087,7 +19989,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @@ -19095,7 +19997,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled"), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled"), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -19103,7 +20005,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -19111,7 +20013,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "userChrome.tabbar.as_titlebar"), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "userChrome.tabbar.as_titlebar"), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { --uc-window-control-space: 0px; } } @@ -19119,7 +20021,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-platform: windows), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-platform: windows), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -19127,7 +20029,7 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0), (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -19139,7 +20041,7 @@ screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (max-width: 1100px) and (not (-moz-bool-pref: "userChrome.hidden.tabbar")), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (max-width: 1100px) and (not (-moz-bool-pref: "userChrome.tabbar.on_bottom")), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (max-width: 1100px) and (not (-moz-bool-pref: "userChrome.hidden.tabbar")) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; --uc-window-control-space: 0px; } @@ -19148,7 +20050,7 @@ screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @@ -19156,7 +20058,7 @@ screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @@ -19164,7 +20066,7 @@ screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled"), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled"), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -19172,7 +20074,7 @@ screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -19180,7 +20082,7 @@ screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "userChrome.tabbar.as_titlebar"), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "userChrome.tabbar.as_titlebar"), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { --uc-window-control-space: 0px; } } @@ -19188,7 +20090,7 @@ screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -19196,7 +20098,7 @@ screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0), screen and (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.as_titlebar")) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -19324,14 +20226,14 @@ (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner")) and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.hidden.tabbar") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner")) and (-moz-bool-pref: "userChrome.tabbar.on_bottom") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.hidden.tabbar") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner")) and (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -19432,13 +20334,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -19548,14 +20456,14 @@ @media (-moz-bool-pref: "userChrome.tabbar.on_bottom") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.hidden.tabbar") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -19632,13 +20540,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -19742,14 +20656,14 @@ @media (-moz-bool-pref: "userChrome.tabbar.on_bottom") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.hidden.tabbar") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -19826,13 +20740,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -19966,14 +20886,14 @@ screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.hidden.tabbar") and (max-width: 1100px) and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.tabbar.on_bottom") and (max-width: 1100px) and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.hidden.tabbar") and (max-width: 1100px) and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -20074,13 +20994,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -20190,14 +21116,14 @@ @media screen and (-moz-bool-pref: "userChrome.tabbar.on_bottom") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first") and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -20274,13 +21200,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -20384,14 +21316,14 @@ @media screen and (-moz-bool-pref: "userChrome.tabbar.on_bottom") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") and (-moz-platform: windows), screen and (-moz-bool-pref: "userChrome.hidden.tabbar") and (not (-moz-bool-pref: "userChrome.hidden.titlebar_container")) and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -20468,13 +21400,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -20791,7 +21729,7 @@ } /*= Tab Bar - Show only current tab ==========================================*/ @media (-moz-bool-pref: "userChrome.tabbar.as_titlebar") { - :root:not([tabsintitlebar="true"]) #tabbrowser-tabs, + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs, #scrollbutton-up, #scrollbutton-down, .titlebar-spacer[type="pre-tabs"], @@ -20823,6 +21761,7 @@ width: 100%; } /* Pinned */ + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned][selected="true"], #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned][selected="true"] { position: relative !important; } @@ -20843,24 +21782,30 @@ /* Padding */ } @media (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (not (-moz-bool-pref: "userChrome.centered.tab")) { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { margin-inline: 2px !important; } + :root[sizemode="normal"] #pinned-tabs-container, :root[sizemode="normal"] #tabbrowser-arrowscrollbox { margin-inline: 6px !important; } } @media (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "userChrome.centered.tab") and (-moz-bool-pref: "userChrome.centered.tab.label") { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { margin-inline: 2px !important; } + :root[sizemode="normal"] #pinned-tabs-container, :root[sizemode="normal"] #tabbrowser-arrowscrollbox { margin-inline: 6px !important; } } @media (-moz-bool-pref: "userChrome.tabbar.as_titlebar") and (-moz-bool-pref: "browser.tabs.tabmanager.enabled") { - :root:not([tabsintitlebar="true"]) #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) ~ #alltabs-button, - :root:not([tabsintitlebar="true"]) + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) + #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) + ~ #alltabs-button, + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs[hasadjacentnewtabbutton]:not([overflow="true"]) ~ #new-tab-button { display: flex !important; @@ -20894,6 +21839,7 @@ } } .scrollbox-clip[orient="horizontal"], + #pinned-tabs-container, #tabbrowser-arrowscrollbox { overflow: -moz-hidden-unscrollable; display: block; @@ -20971,6 +21917,7 @@ > #tabs-newtab-button { z-index: 2 !important; } + #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] #pinned-tabs-container, #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] #tabbrowser-arrowscrollbox { padding-inline-end: calc( 16px + (var(--toolbarbutton-inner-padding) + var(--toolbarbutton-outer-padding)) * 2 @@ -20988,21 +21935,37 @@ /** Tab UI ********************************************************************/ /*= Tab - Connect to window ==============================================*/ @media (-moz-bool-pref: "userChrome.tab.connect_to_window") { - #tabbrowser-tabs[orient="vertical"] { - --uc-tab-border-bottom-radius: var(--tab-border-radius); + #TabsToolbar #tabbrowser-tabs:not([orient="vertical"]) { + max-height: var(--tab-min-height); } - .tab-background { + #TabsToolbar #tabbrowser-tabs:not([orient="vertical"])[movingtab] { + padding-bottom: unset !important; + margin-bottom: unset !important; + } + #TabsToolbar[multibar] #tabbrowser-tabs:not([orient="vertical"]) { + max-height: var(--tab-min-height_mlt); + } + #tabbrowser-tabs:not([orient="vertical"]) { + min-height: unset !important; /* Original: var(--tabstrip-min-height) */ + } + #tabbrowser-tabs:not([orient="vertical"]) .tab-background { border-radius: var(--tab-border-radius) var(--tab-border-radius) var(--uc-tab-border-bottom-radius, 0px) var(--uc-tab-border-bottom-radius, 0px) !important; margin-bottom: 0px !important; } - .tab-content { + #tabbrowser-tabs:not([orient="vertical"]) .tab-content { margin-top: 0px; } - .tab-stack { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack { margin-top: 0px !important; margin-bottom: 0px !important; } + #tabbrowser-tabs:not([orient="vertical"]) tab-group .tabbrowser-tab:is([selected], [multiselected]) .tab-group-line { + transform: translateY(calc(var(--tab-group-line-thickness) * -1)); + } + #tabbrowser-tabs[orient="vertical"] { + --uc-tab-border-bottom-radius: var(--tab-border-radius); + } /* Remove line at Toolbar's top */ #tabbrowser-tabs { z-index: 1 !important; @@ -21016,9 +21979,11 @@ } } @media (-moz-bool-pref: "userChrome.tab.connect_to_window") { + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned], #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] { z-index: 0 !important; } + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned] .tab-stack, #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] .tab-stack { /* Temporary solution for compatibility #513 */ overflow-y: clip; @@ -21037,11 +22002,6 @@ } /*= Selected Tab =============================================================*/ /*= Selected Tab - Bold ======================================================*/ -@media not (-moz-bool-pref: "userChrome.tab.selected_bold") { - .tab-label:is([selected], [attention]) { - font-weight: 400 !important; - } -} @media (-moz-bool-pref: "userChrome.tab.selected_bold") { .tab-label:is([selected], [attention]) { font-weight: 600; @@ -21059,6 +22019,26 @@ .tab-background:is([selected], [multiselected]) { background-color: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)) !important; } + :root:is(:-moz-lwtheme, [lwtheme]) #pinned-tabs-container > .tabbrowser-tab > .tab-stack > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root:is(:-moz-lwtheme, [lwtheme]) #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -21069,6 +22049,19 @@ > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[selected] { /* Original: linear-gradient(var(--lwt-selected-tab-background-color, transparent), var(--lwt-selected-tab-background-color, transparent)), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) */ @@ -21080,6 +22073,30 @@ } } @media (-moz-bool-pref: "userChrome.tab.color_like_toolbar") and (-moz-bool-pref: "userChrome.theme.transparent.frame") { + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -21090,6 +22107,19 @@ > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[selected] { background-image: linear-gradient(transparent, transparent), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-additional-images, none) !important; @@ -21099,16 +22129,35 @@ } /*= Multi Selected Color - More Contrast =====================================*/ @media (-moz-bool-pref: "userChrome.tab.multi_selected") { - #TabsToolbar { + #TabsToolbar, + #vertical-tabs { --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 28%, var(--toolbar-bgcolor, transparent)); } - #TabsToolbar[brighttext] { + #TabsToolbar[brighttext], + #vertical-tabs[brighttext] { --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 16%, var(--toolbar-bgcolor, transparent)); } + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[multiselected]:not([selected]), + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[multiselected]:not([selected]) { /* Original: background-attachment: scroll, scroll, fixed; @@ -21783,15 +22832,144 @@ margin: unset !important; } } +/*= Selected Tab - Supernova like contextline ===================================*/ +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") { + /* context line styles */ + tabs tab.tabbrowser-tab > .tab-stack > .tab-background > .tab-context-line { + display: inline-flex !important; + display: -moz-inline-box !important; + } + tabs tab.tabbrowser-tab > .tab-stack > .tab-background > .tab-context-line::before { + content: ""; + height: 1px !important; + border-radius: 9999px !important; + transform: translateY(5px); + margin-top: -1px !important; + margin-left: 5px; + margin-right: 5px; + width: 100%; + } + /* Override container-tab style */ + tabs tab.tabbrowser-tab[usercontextid] > .tab-stack > .tab-background > .tab-context-line { + margin: unset !important; + } + /* selected tab style */ + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] .tab-context-line, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] .tab-context-line { + --tab-line-color: #45a1ff; + } + .tabbrowser-tab:is([selected], [multiselected]) .tab-context-line::before { + background-color: var(--tab-line-color, var(--lwt-tab-line-color, #45a1ff)) !important; + } + /* Set the active effect */ + .tabbrowser-tab:active > .tab-stack > .tab-background > .tab-context-line::before { + filter: brightness(70%); + margin-left: 6px; + margin-right: 6px; + } + /* Set the hover effect */ + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + background-color: rgba(0, 0, 0, 0.4) !important; + opacity: 1 !important; + } + #TabsToolbar[brighttext] + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + background-color: rgba(255, 255, 255, 0.4) !important; + } + /* Animation */ + /* Animation for hover effect */ + /* --- copied (not modified) from _photon_like_contextline.scss --- */ + /* Prevent identity color flashing */ + /* Remove side's background color border */ +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") and (prefers-reduced-motion: no-preference) { + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + animation: toWide 0.2s cubic-bezier(0, 0.9, 0.15, 1); + } +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") { + @keyframes toWide { + 0% { + opacity: 0.8; + margin-left: 40%; + margin-right: 40%; + } + 100% { + opacity: 1; + margin-left: 5px; + margin-right: 5px; + } + } +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") { + .tabbrowser-tab[usercontextid] .tab-context-line { + --identity-icon-color: none; + } +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") { + :root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::before, + :root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::after { + /* As Selected Tab - Box Shadow */ + stroke: var(--toolbar-color) !important; + } +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") { + :root:is(:-moz-lwtheme, [lwtheme]) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + > .tab-stack + > .tab-background { + --tabs-border-color: rgba(0, 0, 0, 0.3) !important; + box-shadow: 0 0 1px var(--tabs-border-color) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)) */ + } +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") { + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + > .tab-stack + > .tab-background { + box-shadow: 0 0 1px var(--tabs-border-color), 0 0 4px rgba(128, 128, 142, 0.5) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)), 0 0 4px rgba(128,128,142,0.5) */ + } +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") and (-moz-bool-pref: "userChrome.tab.contextline_blue_accent") { + #tabbrowser-tabs .tab-context-line { + --tab-line-color: #45a1ff !important; + } +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") and (not (-moz-bool-pref: "userChrome.tab.contextline_blue_accent")) and (-moz-gtk-csd-available) { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs .tab-context-line { + --tab-line-color: AccentColor !important; /* -moz-accent-color */ + } +} +@media (not (-moz-bool-pref: "userChrome.tab.photon_like_contextline")) and (-moz-bool-pref: "userChrome.tab.supernova_like_contextline") and (not (-moz-bool-pref: "userChrome.tab.contextline_blue_accent")) and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.compatibility.accent_color") { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs .tab-context-line { + --tab-line-color: Highlight !important; /* -moz-accent-color */ + } +} /*= Unselected Tab - Divide line =============================================*/ /*= Unselected Tab - Dynamic Separator =======================================*/ @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { --start-tab-separator-position-x: -1.5px; --end-tab-separator-position-x: 1.5px; --tab-separator-position-x: -2.5px; --tab-separator-position-y: calc(-50% + 1px); } + #pinned-tabs-container:-moz-locale-dir(rtl), #tabbrowser-arrowscrollbox:-moz-locale-dir(rtl) { --start-tab-separator-position-x: 1.5px; --end-tab-separator-position-x: -1.5px; @@ -21804,8 +22982,8 @@ /* Latest Tab & New tab margin */ } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") { - .tab-stack::before, - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { /* Box Model */ content: ""; display: block; @@ -21823,19 +23001,20 @@ } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.compatibility.dynamic_separator") { - .tab-stack::before, - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { background-color: var(--tabs-border-color); } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { left: calc(50% - (8px + var(--toolbarbutton-inner-padding))); } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (not (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab")) { - .tab-stack::before, - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { /* Box Model */ @@ -21853,55 +23032,79 @@ } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (not (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab")) and (-moz-bool-pref: "userChrome.compatibility.dynamic_separator") { - .tab-stack::before, - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { background-color: var(--tabs-border-color); } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (not (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab")) { - .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before { transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (not (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab")) { - .tabbrowser-tab:last-of-type .tab-stack::after { + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type .tab-stack::after { right: 0; transform: translateX(var(--end-tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") { - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) .tab-stack::before { + #pinned-tabs-container:not([orient="vertical"]):not(:empty):not( + :has(.tabbrowser-tab[pinned]:is([visuallyselected], [multiselected], :hover):last-of-type) + ) + ~ #tabbrowser-arrowscrollbox:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) + .tab-stack::before { opacity: var(--tab-separator-opacity); } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) { - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before { opacity: var(--tab-separator-opacity); transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } } @media screen and (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.tabbar_first")) and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) { - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before { opacity: var(--tab-separator-opacity); transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button:not(:hover, [open])::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:not(:hover, [open])::before { opacity: var(--tab-separator-opacity); } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (not (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab")) { - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { opacity: var(--tab-separator-opacity); } } +@media (-moz-bool-pref: "userChrome.tab.dynamic_separator") { + #tabbrowser-tabs:not([orient="vertical"]) + tab-group:has(.tabbrowser-tab:last-child:is(:hover, [selected])) + + .tabbrowser-tab + .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) tab-group[collapsed] + .tabbrowser-tab .tab-stack::before { + opacity: 0 !important; + } +} @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") { #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))):is( [visuallyselected], [multiselected], @@ -21909,6 +23112,7 @@ ) .tab-stack::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox[overflowing] tab.tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) .tab-stack::before { @@ -21917,13 +23121,16 @@ } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") { #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + .tabbrowser-tab .tab-stack::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) ~ #tabs-newtab-button::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) ~ #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button::before { @@ -21931,37 +23138,39 @@ } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (not (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab")) { - .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + .tabbrowser-tab:not([visuallyselected]) .tab-stack::before { opacity: 0 !important; } - :root:not([uidensity="compact"]) #tabs-newtab-button > .toolbarbutton-icon { + :root:not([uidensity="compact"]) #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button > .toolbarbutton-icon { margin-left: 2px; } - :root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + :root[uidensity="compact"] #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button > .toolbarbutton-icon { margin-left: 1px; } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (prefers-reduced-motion: no-preference) { - .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (prefers-reduced-motion: no-preference) and (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") and (prefers-reduced-motion: no-preference) and (not (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab")) { - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } } @media (-moz-bool-pref: "userChrome.tab.dynamic_separator") { - #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { margin-inline-end: 1px !important; } } @@ -22072,7 +23281,7 @@ /* Fix tab overlap #678 */ } @media (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.connect_to_window") { - #tabs-newtab-button { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { /* Size */ align-items: stretch !important; -moz-box-align: stretch !important; @@ -22080,7 +23289,7 @@ } } @media (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") { - #tabs-newtab-button { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { /* Original: margin: 0 0 var(--tabs-navbar-shadow-size) !important => Can't override style. Therefore, we should approach it by bypass. @@ -22106,7 +23315,7 @@ (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome_legacy"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { --uc-newtab-position: 0px; --uc-newtab-non-corner-bgwidth: 0px; --uc-tab-corner-half-height: calc(var(--uc-tab-corner-height) / 2); @@ -22135,7 +23344,7 @@ (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.edge"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.edge") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.edge") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { --uc-newtab-non-corner-bgwidth: calc(2 * var(--toolbarbutton-inner-padding)); } } @@ -22150,13 +23359,20 @@ } } @media (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-windows-accent-color-in-titlebar) { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { fill: color-mix(in srgb, AccentColorText 10%, transparent) !important; /* Hardcoded for compatibility */ } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover:active { fill: color-mix(in srgb, AccentColorText 15%, transparent) !important; /* Hardcoded for compatibility */ } } @@ -22165,8 +23381,12 @@ (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome_legacy"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.edge") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( to left, @@ -22175,9 +23395,12 @@ ), var(--uc-tab-corner-right-side-svg); } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover:active { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( to left, @@ -22188,17 +23411,24 @@ } } @media (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { fill: color-mix( in srgb, -moz-accent-color-foreground 10%, transparent ) !important; /* Hardcoded for compatibility */ } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover:active { fill: color-mix( in srgb, -moz-accent-color-foreground 15%, @@ -22211,8 +23441,12 @@ (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.compatibility.accent_color") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome_legacy"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.compatibility.accent_color") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "userChrome.compatibility.accent_color") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.edge") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( to left, @@ -22221,9 +23455,12 @@ ), var(--uc-tab-corner-right-side-svg); } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover:active { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( to left, @@ -22234,7 +23471,7 @@ } } @media (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button .toolbarbutton-icon { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button .toolbarbutton-icon { border-radius: var(--tab-border-radius) var(--tab-border-radius) 0 0 !important; /* Original: var(--tab-border-radius) */ padding: calc(var(--toolbarbutton-inner-padding) - var(--tab-block-margin) / 4) var(--toolbarbutton-inner-padding) calc(var(--toolbarbutton-inner-padding) + var(--tab-block-margin) / 4 + var(--uc-tabs-navbar-shadow-size)) !important; @@ -22248,7 +23485,7 @@ (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome_legacy"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.chrome"), (-moz-bool-pref: "userChrome.tab.newtab_button_like_tab") and (-moz-bool-pref: "userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button .toolbarbutton-icon { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button .toolbarbutton-icon { --tab-border-radius: 0px; width: unset !important; padding-inline: 0px !important; @@ -22310,6 +23547,10 @@ --tab-label-mask-size: 25%; } .tabbrowser-tab[visuallyselected]:not([labelendaligned]):hover .tab-label-container, + #tabbrowser-tabs:not([closebuttons="activetab"]) + > #pinned-tabs-container + > .tabbrowser-tab:not([visuallyselected], [labelendaligned]):hover + .tab-label-container, #tabbrowser-tabs:not([closebuttons="activetab"]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab:not([visuallyselected], [labelendaligned]):hover @@ -22319,6 +23560,12 @@ } /** Clipped tabs - Show close button at hover *********************************/ @media (-moz-bool-pref: "userChrome.tab.close_button_at_hover") { + #tabbrowser-tabs[closebuttons="activetab"] + > #pinned-tabs-container + > .tabbrowser-tab:not([pinned]) + > .tab-stack + > .tab-content + > .tab-close-button:not([selected]), #tabbrowser-tabs[closebuttons="activetab"] > #tabbrowser-arrowscrollbox > .tabbrowser-tab:not([pinned]) @@ -22553,6 +23800,26 @@ height: 17px !important; } } +@media (-moz-bool-pref: "userChrome.tab.sound_with_favicons") { + .tab-icon-overlay:not([crashed]):is([soundplaying], [muted], [activemedia-blocked]) { + -moz-context-properties: fill, fill-opacity, stroke !important; + fill: currentColor !important; + border: none !important; + } + .tab-icon-overlay:not([crashed]):is([pinned], [sharing]) { + stroke: var(--tab-icon-overlay-stroke, light-dark(white, black)); + color: var(--tab-icon-overlay-fill, light-dark(black, white)); + } + .tab-icon-overlay:not([crashed])[soundplaying] { + list-style-image: url("./icons/tab-audio-playing-small.svg"); + } + .tab-icon-overlay:not([crashed])[muted] { + list-style-image: url("./icons/tab-audio-muted-small.svg"); + } + .tab-icon-overlay:not([crashed])[activemedia-blocked] { + list-style-image: url("./icons/tab-audio-blocked-small.svg"); + } +} @media (-moz-bool-pref: "userChrome.tab.sound_with_favicons") { .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { /* Color */ @@ -22563,6 +23830,33 @@ opacity: 1 !important; } } +@media (-moz-bool-pref: "userChrome.tab.sound_with_favicons") { + .tab-audio-button:not([crashed]), + .tab-audio-button[pinned][crashed][selected] { + /* Position */ + margin-inline-start: -8px !important; + margin-inline-end: -4px !important; + z-index: 1 !important; + transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(var(--uc-sound-tab-icon-position-y)); + /* Shape */ + --button-size-icon-small: 17px !important; + --button-min-height-small: 17px !important; + --button-border-radius: 100% !important; + width: 17px !important; + height: 17px !important; + border-radius: 100%; + overflow: clip; + --button-text-color-ghost-hover: light-dark(white, black); + --button-background-color-ghost-hover: light-dark(black, white); + } +} +@media (-moz-bool-pref: "userChrome.tab.sound_with_favicons") { + .tab-audio-button:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { + display: flex !important; + fill-opacity: 0.8 !important; + opacity: 1 !important; + } +} @media (-moz-bool-pref: "userChrome.tab.sound_with_favicons") and (not (-moz-bool-pref: "userChrome.hidden.tab_icon")) { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { @@ -22953,7 +24247,7 @@ opacity: 0; visibility: hidden; } - :root:has(#sidebar-box[positionend="true"]) #nav-bar { + :root:has(#sidebar-box[positionend]) #nav-bar { right: 0; } } @@ -23019,7 +24313,7 @@ position: absolute; height: 100%; } - :root[customizing="true"] #browser[collapsed="true"] #sidebar-box[positionend="true"] { + :root[customizing="true"] #browser[collapsed="true"] #sidebar-box[positionend] { right: 0; } :root[customizing="true"] #customization-container { @@ -23034,12 +24328,12 @@ } } @media (-moz-bool-pref: "userChrome.navbar.as_sidebar") { - :root[customizing="true"]:has(#sidebar-box:not([positionend="true"])) #customization-container { + :root[customizing="true"]:has(#sidebar-box:not([positionend])) #customization-container { margin-inline-start: var(--uc-sidebar-activate-width); } } @media (-moz-bool-pref: "userChrome.navbar.as_sidebar") { - :root[customizing="true"]:has(#sidebar-box[positionend="true"]) #customization-container { + :root[customizing="true"]:has(#sidebar-box[positionend]) #customization-container { margin-inline-end: var(--uc-sidebar-activate-width); } } @@ -23373,11 +24667,11 @@ @media (-moz-bool-pref: "userChrome.sidebar.overlap"), (-moz-bool-pref: "userChrome.autohide.sidebar") { #sidebar-box { --uc-sidebar-shadow-color: #28282f; - z-index: 1 !important; + z-index: var(--browser-area-z-index-sidebar-splitter, 3) !important; position: relative !important; box-shadow: var(--uc-sidebar-shadow-position) 0px 15px -10px var(--uc-sidebar-shadow-color); } - #sidebar-box[positionend="true"] { + #sidebar-box[positionend] { --uc-sidebar-shadow-position: calc(-1 * var(--uc-sidebar-shadow-position-default)); } #sidebar { @@ -23388,7 +24682,7 @@ } } @media (-moz-bool-pref: "userChrome.sidebar.overlap") { - #sidebar-box[positionend="true"] { + #sidebar-box[positionend] { direction: rtl; } #sidebar-header, @@ -24161,23 +25455,34 @@ } /** Fullscreen - Overlap toolbar **********************************************/ @media (-moz-bool-pref: "userChrome.fullscreen.overlap") and (-moz-bool-pref: "browser.fullscreen.autohide") { - :root[sizemode="fullscreen"] #navigator-toolbox { + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #navigator-toolbox { position: fixed !important; /* Needed for content to take up entire height */ z-index: 1000 !important; /* Puts the UI above the content */ } - :root[sizemode="fullscreen"] :-moz-any(#navigator-toolbox, #titlebar, #nav-bar, #PersonalToolbar) { + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #navigator-toolbox:is(:hover, :focus-within) { + margin-top: 0 !important; + } + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) + :-moz-any(#navigator-toolbox, #titlebar, #toolbar-menubar, #TabsToolbar, #nav-bar, #PersonalToolbar) { width: 100%; /* Makes the UI take up the entire width */ } + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #urlbar:popover-open { + position: fixed !important; + } } @media (-moz-bool-pref: "userChrome.fullscreen.overlap") and (-moz-bool-pref: "browser.fullscreen.autohide") and (-moz-gtk-csd-available) { /* Fix transparent background */ - :root[tabsintitlebar][sizemode="fullscreen"]:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="fullscreen"]:not([inDOMFullscreen="true"]):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ) + #TabsToolbar { appearance: auto !important; } } @media (-moz-bool-pref: "userChrome.fullscreen.show_bookmarkbar") { - :root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized="true"]:not([collapsed="true"]), - :root[sizemode="fullscreen"] #PersonalToolbar[initialized="true"] { + :root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized]:not([collapsed="true"]), + :root[sizemode="fullscreen"] #PersonalToolbar[initialized] { visibility: unset !important; /* Makes the bookmarks toolbar visible if enabled */ } } @@ -24434,7 +25739,7 @@ (-moz-bool-pref: "userChrome.hidden.tabbar"), (-moz-bool-pref: "userChrome.navbar.as_sidebar") { @supports selector(:has(a)) { - :root:not([tabsintitlebar]):has(#toolbar-menubar) { + :root:not([tabsintitlebar]):not([customtitlebar]):has(#toolbar-menubar) { --uc-menubar-height: var(--uc-menubar-height-default); } @media (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-gtk-csd-available), @@ -24444,7 +25749,7 @@ (-moz-bool-pref: "userChrome.tabbar.on_bottom.menubar_on_top") and (-moz-gtk-csd-available), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-gtk-csd-available), (-moz-bool-pref: "userChrome.navbar.as_sidebar") and (-moz-gtk-csd-available) { - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"]) { --uc-menubar-height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin)); } } @@ -24455,15 +25760,15 @@ (-moz-bool-pref: "userChrome.tabbar.on_bottom.menubar_on_top") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.hidden.tabbar") and (-moz-platform: windows), (-moz-bool-pref: "userChrome.navbar.as_sidebar") and (-moz-platform: windows) { - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"]) { --uc-menubar-height: calc(var(--tab-min-height) - var(--tabs-navbar-shadow-size)); } } - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="false"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="false"]) { --uc-menubar-height: var(--uc-titlebar-buttonbox-height); } - :root:not([tabsintitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]), - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"][inactive="true"]) { + :root:not([tabsintitlebar]):not([customtitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]), + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]) { --uc-menubar-height: 0px; } #navigator-toolbox:has(#PersonalToolbar[collapsed="true"]) { @@ -24753,7 +26058,8 @@ (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.tabbar") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) { - :root:not([customizing]) #titlebar { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } @@ -24782,7 +26088,8 @@ (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.tabbar") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive")) { - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } } @@ -24807,7 +26114,8 @@ screen and (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px), screen and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px), screen and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) { - :root:not([customizing]) #titlebar { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } @@ -24836,7 +26144,8 @@ screen and (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px), screen and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px), screen and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (min-width: 1100px) { - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } } @@ -24861,7 +26170,8 @@ (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.autohide.tabbar"), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.autohide.tabbar"), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.autohide.tabbar") { - :root:not([customizing]) #titlebar { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } @@ -24890,7 +26200,8 @@ (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.autohide.tabbar"), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.autohide.tabbar"), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (-moz-bool-pref: "userChrome.autohide.tabbar") { - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } } @@ -24974,13 +26285,22 @@ (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.autohide.navbar") and (not (-moz-bool-pref: "userChrome.tabbar.one_liner")) { #nav-bar:not([customizing]) { margin-bottom: var(--uc-navbar-hide-height); + } + #nav-bar:not([customizing]), + #nav-bar:not([customizing]) #urlbar { opacity: 0; will-change: margin-bottom, opacity; } #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { margin-bottom: 0; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { opacity: 1; } + #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { + pointer-events: none; + } } @media screen and (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (max-width: 1100px), screen and (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (max-width: 1100px), @@ -24988,13 +26308,30 @@ screen and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (-moz-bool-pref: "userChrome.tabbar.one_liner.responsive") and (max-width: 1100px) { #nav-bar:not([customizing]) { margin-bottom: var(--uc-navbar-hide-height); + } + #nav-bar:not([customizing]), + #nav-bar:not([customizing]) #urlbar { opacity: 0; will-change: margin-bottom, opacity; } #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { margin-bottom: 0; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { opacity: 1; } + #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { + pointer-events: none; + } +} +@media (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.autohide.navbar"), + (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner"), + (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.navbar"), + (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") { + #mainPopupSet:not(:hover) ~ #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) { + -moz-window-dragging: no-drag; + } } @media (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.autohide.navbar") and (prefers-reduced-motion: no-preference), (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (prefers-reduced-motion: no-preference), @@ -25023,7 +26360,17 @@ (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (prefers-reduced-motion: no-preference), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.navbar") and (prefers-reduced-motion: no-preference), (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (prefers-reduced-motion: no-preference) { - #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { + #nav-bar:not([customizing]) #urlbar { + transition: opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay) !important; + } +} +@media (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.autohide.navbar") and (prefers-reduced-motion: no-preference), + (-moz-bool-pref: "userChrome.autohide.tabbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (prefers-reduced-motion: no-preference), + (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.autohide.navbar") and (prefers-reduced-motion: no-preference), + (-moz-bool-pref: "userChrome.autohide.navbar") and (-moz-bool-pref: "userChrome.tabbar.one_liner") and (prefers-reduced-motion: no-preference) { + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { transition-delay: 0s !important; } } @@ -25184,18 +26531,18 @@ min-width: var(--uc-sidebar-activate-width) !important; max-width: var(--uc-sidebar-activate-width) !important; } - :root[inFullscreen="true"] #sidebar-box:not([positionend="true"]) { + :root[inFullscreen="true"] #sidebar-box:not([positionend]) { margin-inline-start: var(--uc-sidebar-fullscreen-margin) !important; will-change: margin-inline-start; } - :root[inFullscreen="true"] #sidebar-box:not([positionend="true"]):is(:hover, :focus-within) { + :root[inFullscreen="true"] #sidebar-box:not([positionend]):is(:hover, :focus-within) { margin-inline-start: 0 !important; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"] { + :root[inFullscreen="true"] #sidebar-box[positionend] { margin-inline-end: var(--uc-sidebar-fullscreen-margin) !important; will-change: margin-inline-end; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"]:is(:hover, :focus-within) { + :root[inFullscreen="true"] #sidebar-box[positionend]:is(:hover, :focus-within) { margin-inline-end: 0 !important; } } @@ -25213,7 +26560,7 @@ transition: margin-inline-start var(--uc-autohide-fullscreen-sidebar-speed) var(--animation-easing-function) var(--uc-autohide-sidebar-delay) !important; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"] { + :root[inFullscreen="true"] #sidebar-box[positionend] { transition-property: margin-inline-end !important; } :root[inFullscreen="true"] #sidebar-box:is(:hover, :focus-within), @@ -25434,7 +26781,7 @@ } @media not (-moz-bool-pref: "userChrome.icon.disabled") { @supports selector(:has(a)) { - :root:has(#sidebar-box[positionend="true"]) { + :root:has(#sidebar-box[positionend]) { --uc-sidebar-icon: url("chrome://browser/skin/sidebars-right.svg"); --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars.svg"); } @@ -25664,6 +27011,8 @@ /*= protections-popup ========================================================*/ /*= identity-popup ===========================================================*/ /*= sidebarMenu-popup ========================================================*/ + /*= sidebar-context-menu =====================================================*/ + /*= chrome://browser/content/syncedtabs/sidebar.xhtml ========================*/ /*= unified-extensions-view ===================================================*/ /*= Compatibility ============================================================*/ /*= Tab Mix Plus =============================================================*/ @@ -25828,6 +27177,23 @@ background-image: var(--avatar-image-url) !important; } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #appMenu-profiles-button > image, + #appMenu-empty-profiles-button > image { + fill: transparent !important; + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #appMenu-empty-profiles-button, + #PanelUI-fxa-menu-empty-profiles-button { + list-style-image: url("chrome://browser/content/profiles/assets/16_heart.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #profiles-manage-profiles-button { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { #new-tab-button { list-style-image: var(--uc-new-tab-icon) !important; @@ -26109,7 +27475,8 @@ } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { - #PanelUI-fxa-menu > :first-child { + #PanelUI-fxa-menu > :first-child, + #fxa-manage-account-button { order: -1; -moz-box-ordinal-group: 0; } @@ -26131,6 +27498,23 @@ list-style-image: url("chrome://global/skin/icons/settings.svg"); } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + .sendToDevice-device[clientType="phone"] { + list-style-image: url("../icons/device-phone.svg") !important; + } + .sendToDevice-device[clientType="tablet"] { + list-style-image: url("../icons/device-tablet.svg") !important; + } + .sendToDevice-device[clientType="desktop"] { + list-style-image: url("../icons/device-desktop.svg") !important; + } + .sendToDevice-device[clientType="tv"] { + list-style-image: url("../icons/device-tv.svg") !important; + } + .sendToDevice-device[clientType="vr"] { + list-style-image: url("../icons/device-vr.svg") !important; + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { #panelMenuBookmarkThisPage { list-style-image: url("chrome://browser/skin/bookmark-hollow.svg"); @@ -26349,6 +27733,11 @@ list-style-image: url("chrome://global/skin/icons/search-glass.svg"); } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #allTabsMenu-syncedTabs { + list-style-image: url("../icons/synced-tabs.svg"); + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { #allTabsMenu-closeDuplicateTabs { list-style-image: var(--uc-tab-close-duplicate-icon); @@ -26418,6 +27807,11 @@ margin-inline-end: 1em; } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #protections-popup-report-broken-site-button { + list-style-image: url("chrome://global/skin/icons/lightbulb.svg"); + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { #protections-popup-settings-button > .protections-popup-settings-icon, #protections-popup-multiView .panel-subview-footer-button { @@ -26478,6 +27872,14 @@ --menuitem-image: url("../icons/synced-tabs.svg"); } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #sidebar-switcher-genai-chat.subviewbutton { + list-style-image: url("chrome://mozapps/skin/extensions/category-discover.svg"); + } + #sidebar-switcher-genai-chat:is(menuitem) { + --menuitem-image: url("chrome://mozapps/skin/extensions/category-discover.svg"); + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { #sidebar-reverse-position.subviewbutton { list-style-image: var(--uc-sidebar-icon-reverse); @@ -26494,6 +27896,66 @@ --menuitem-image: url("chrome://global/skin/icons/close.svg"); } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #sidebar-context-menu-manage-extension { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #sidebar-context-menu-remove-extension { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #sidebar-context-menu-report-extension { + --menuitem-image: url("../icons/send.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #sidebar-context-menu-unpin-extension { + --menuitem-image: url("../icons/unpin-tab.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #sidebar-context-menu-hide-sidebar { + --menuitem-image: url("../icons/eye-hide.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #sidebar-context-menu-customize-sidebar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + #sidebar-context-menu-enable-vertical-tabs { + --menuitem-image: url("chrome://browser/skin/sidebar-collapsed.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + .item.client[clientType="phone"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-phone.svg") !important; + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + .item.client[clientType="tablet"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-tablet.svg") !important; + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + .item.client[clientType="desktop"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-desktop.svg") !important; + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + .item.client[clientType="tv"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-tv.svg") !important; + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { + .item.client[clientType="vr"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-vr.svg") !important; + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { #unified-extensions-manage-extensions { list-style-image: url("chrome://mozapps/skin/extensions/extension.svg"); @@ -26516,7 +27978,9 @@ menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, #main-menubar > menu { -moz-appearance: none !important; /* Linux: menulist */ } @@ -26535,10 +27999,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -26548,10 +28014,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -26562,7 +28030,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -26639,10 +28108,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -26652,10 +28123,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -26666,7 +28139,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -26705,6 +28179,17 @@ --menuitem-image: none; /* Prevent Image Inheritance */ } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menubar") and (-moz-platform: windows) { + #main-menubar > menu > :is(.menubar-text, .menu-text) { + transform: translateY(-1px) !important; /* Fix menu top padding position */ + padding-inline-start: 0.3em !important; + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menubar") and (-moz-gtk-csd-available) { + #main-menubar > menu > :is(.menubar-text, .menu-text) { + padding-inline-start: 3px; + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menubar") and (not (-moz-bool-pref: "userChrome.padding.global_menubar")) { #main-menubar > menu { padding-block: 2px !important; @@ -26732,10 +28217,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -26745,10 +28232,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -26759,7 +28248,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -26773,6 +28263,9 @@ .menupopup-arrowscrollbox { padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */ } + menupopup[needsgutter] > :is(menu, menuitem) > .menu-icon { + display: none !important; + } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-platform: windows) and (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available), (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available) { @@ -26796,10 +28289,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -26809,10 +28304,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -26823,7 +28320,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -26837,6 +28335,9 @@ .menupopup-arrowscrollbox { padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */ } + menupopup[needsgutter] > :is(menu, menuitem) > .menu-icon { + display: none !important; + } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-platform: windows) { :root { @@ -26853,8 +28354,11 @@ --context-menu-background-padding-default: 6px; --context-menu-text-padding: 21px; } - #main-menubar > menu > .menubar-text { - padding-inline-start: 3px; + .menu-icon { + display: unset !important; + } + #main-menubar > menu > .menu-icon { + display: none !important; } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "layout.css.osx-font-smoothing.enabled") { @@ -26892,10 +28396,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item), menupopup:is( @@ -26905,10 +28411,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic) { list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; @@ -26957,10 +28465,14 @@ } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-platform: windows) { /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; padding-inline-start: var(--bookmark-menu-icon-text-padding) !important; background-position: var(--uc-menu-background-position) var(--bookmark-menu-icon-background-padding) center !important; @@ -26977,26 +28489,44 @@ margin-inline-start: -1px !important; } /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--context-menu-background-padding) + 2px) !important; } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.theme.non_native_menu") { - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-gtk-csd-available) { - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) .menu-text, - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) .menu-text { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text, + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text { margin-inline-start: var(--context-menu-text-padding) !important; } } @@ -27007,18 +28537,32 @@ padding-inline: var(--arrowpanel-menuitem-padding-inline) !important; } /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 3px) !important; } - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 1px) !important; } - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) > .menu-text, - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) > .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) > .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) > .menu-text { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text, + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text { padding-inline-start: var(--context-menu-mac-padding) !important; } } @@ -27046,8 +28590,13 @@ #sidebartabs_asamuzak_jp-menuitem-_reloadAllTabs { --menuitem-image: url("../icons/reload.svg"); } + #context_playTab, + #context_playSelectedTabs { + --menuitem-image: url("../icons/play-fill.svg"); + } #context_toggleMuteTab, #context_toggleMuteSelectedTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab[label="Mute Tab"], #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-mute, #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab, #sidebartabs_asamuzak_jp-menuitem-_muteTab { @@ -27056,6 +28605,7 @@ } #context_toggleMuteTab[muted], #context_toggleMuteSelectedTabs[muted], + #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab[label="Unmute Tab"], #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-unmute, #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab[label="Unmute Tab"], #sidebartabs_asamuzak_jp-menuitem-_muteTab[label="Unmute Tab"] { @@ -27075,6 +28625,12 @@ #sidebartabs_asamuzak_jp-menuitem-_pinTab[label="Unpin Tab"] { --menuitem-image: url("../icons/unpin-tab.svg"); } + #treestyletab_piro_sakura_ne_jp-menuitem-_context_topLevel_toggleSticky[label="Stick Tab to Edges"] { + --menuitem-image: url("../icons/align-distribute-top.svg"); + } + #treestyletab_piro_sakura_ne_jp-menuitem-_context_topLevel_toggleSticky[label="Unstick Tab to Edges"] { + --menuitem-image: url("../icons/align-space-evenly-vertical.svg"); + } #context_duplicateTab, #context_duplicateTabs, #treestyletab_piro_sakura_ne_jp-menuitem-_context_duplicateTab, @@ -27113,6 +28669,7 @@ /*= toolbar-context-menu =====================================================*/ /*= Tab Mix Plus =============================================================*/ /*= contentAreaContextMenu ===================================================*/ + /*= context-ask-chat =========================================================*/ /*= main-context-menu-frame ==================================================*/ /*= Tab Mix Plus =============================================================*/ /*= downloadsContextMenu =====================================================*/ /*= placeContext =============================================================*/ /*= Notification =============================================================*/ @@ -27169,6 +28726,7 @@ } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") and (-moz-bool-pref: "userChrome.icon.menu.full") { + #treestyletab_piro_sakura_ne_jp-menuitem-_context_closeDuplicatedTabs, #context_closeDuplicateTabs { --menuitem-image: var(--uc-tab-close-duplicate-icon); } @@ -27266,6 +28824,16 @@ --menuitem-image: url("../icons/undo.svg"); } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #toolbar-context-customize-sidebar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #toolbar-context-toggle-vertical-tabs { + --menuitem-image: url("chrome://browser/skin/sidebar-collapsed.svg"); + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { #toggle_toolbar-menubar { /* checkbox */ @@ -27309,7 +28877,7 @@ } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { #tm-renameTab { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @@ -27710,6 +29278,11 @@ --menuitem-image: url("../icons/translations.svg"); } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #context-ask-chat { + --menuitem-image: url("../icons/chat-sparkle.svg"); + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { #frame { --menuitem-image: url("../icons/command-frames.svg"); @@ -27779,6 +29352,52 @@ --menuitem-image: url("chrome://browser/skin/bookmark.svg"); } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #ask-chat-shortcuts .toolbarbutton-icon { + order: -1; + margin-inline-end: var(--arrowpanel-menuitem-margin-inline) !important; + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #ask-chat-shortcuts .subviewbutton:nth-child(1) { + list-style-image: url("../icons/apps-list-detail.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #ask-chat-shortcuts .subviewbutton:nth-child(2) { + list-style-image: url("../icons/code-text.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #ask-chat-shortcuts .subviewbutton:nth-child(3) { + list-style-image: url("../icons/tetris-app.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #ask-chat-shortcuts .subviewbutton:nth-child(4) { + list-style-image: url("../icons/arrow-up-exclamation.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #context-ask-chat menuitem:nth-child(1) { + --menuitem-image: url("../icons/apps-list-detail.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #context-ask-chat menuitem:nth-child(2) { + --menuitem-image: url("../icons/code-text.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #context-ask-chat menuitem:nth-child(3) { + --menuitem-image: url("../icons/tetris-app.svg"); + } +} +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + #context-ask-chat menuitem:nth-child(4) { + --menuitem-image: url("../icons/arrow-up-exclamation.svg"); + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { #context-showonlythisframe { --menuitem-image: url("../icons/eye-show.svg"); @@ -27994,7 +29613,7 @@ #placesContext_show_bookmark\:info, #placesContext_show\:info, #placesContext_show_folder\:info { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @@ -28094,7 +29713,7 @@ } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { #blockedPopupOptions > menuitem[oncommand="gPopupBlockerObserver.editPopupSettings();"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @@ -28393,6 +30012,9 @@ } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { + .urlbarView-result-menuitem[data-command="trendingblock"] { + --menuitem-image: url("../icons/eye-hide.svg"); + } .urlbarView-result-menuitem[data-command="dismiss"] { --menuitem-image: url("chrome://global/skin/icons/delete.svg"); } @@ -28426,7 +30048,7 @@ --menuitem-image: url("../icons/mail-inbox-all.svg"); } #edit-menu { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #view-menu { --menuitem-image: url("../icons/content-view.svg"); @@ -28437,6 +30059,10 @@ #bookmarksMenu { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); } + #profiles-menu:is(menu) { + fill: transparent !important; + --menuitem-image: url("chrome://browser/content/profiles/assets/16_heart.svg"); + } #tools-menu { --menuitem-image: url("../icons/toolbox.svg"); } @@ -28446,6 +30072,18 @@ #helpMenu { --menuitem-image: url("chrome://global/skin/icons/help.svg"); } + /*= Others ===================================================================*/ + #alltabs-button { + list-style-image: url("chrome://global/skin/icons/arrow-down.svg") !important; + } + #alltabs-button > .toolbarbutton-badge-stack > .toolbarbutton-icon { + /* Original + width: 20px; + margin: -2px; + */ + width: 16px !important; + margin: 0 !important; + } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menu") { /** Global Menu ***************************************************************/ @@ -28477,6 +30115,7 @@ /*= goPopup ==================================================================*/ /* sub menu */ /*= bookmarksMenuPopup =======================================================*/ + /*= menu_ProfilesPopup =======================================================*/ /*= menu_ToolsPopup ==========================================================*/ /* menuWebDeveloperPopup sub menu */ /*= windowPopup ==============================================================*/ @@ -28747,6 +30386,11 @@ --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); } } +@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menu") { + #menu_manageProfiles { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } +} @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menu") { #menu_openDownloads { --menuitem-image: url("chrome://browser/skin/downloads/downloads.svg"); @@ -29000,6 +30644,10 @@ { content: url("../icons/developer.svg") !important; } + .tabbrowser-tab:is([image="chrome://browser/skin/controlcenter/dashboard.svg"]) .tab-icon-image + { + content: url("../icons/dashboard.svg") !important; + } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { #appMenu-restart-button { @@ -29016,6 +30664,9 @@ menuitem.privatetab-icon { --menuitem-image: url("../icons/private-favicon.svg"); } + #sidebar_waterfox_net-menuitem-_openAllBookmarksWithStructure { + --menuitem-image: url("../icons/organization-horizontal.svg"); + } } @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { #appMenuNewIdentity { @@ -29078,7 +30729,7 @@ --menuitem-image: url("chrome://global/skin/icons/reload.svg"); } #usercssloader-submenupopup > menuitem[data-l10n-id="make-browsercss-file"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #usercssloader-submenupopup > menuitem[data-l10n-id="open-css-folder"] { --menuitem-image: var(--uc-folder-icon); diff --git a/css/leptonChromeESR.css b/css/leptonChromeESR.css index 699c3e0..bba6411 100644 --- a/css/leptonChromeESR.css +++ b/css/leptonChromeESR.css @@ -59,7 +59,7 @@ padding-inline-end: var(--arrowpanel-menuitem-padding-inline) !important; } /*= First visible tab margin at maximized #332 ===============================*/ - :root[tabsintitlebar="true"][sizemode="maximized"] #TabsToolbar { + :root:is([tabsintitlebar="true"], [customtitlebar="true"])[sizemode="maximized"] #TabsToolbar { margin-left: -1px; } /*= Disabled menu background color ===========================================*/ @@ -133,9 +133,18 @@ --tabs-border-color: rgba(0, 0, 0, 0.4); /* Legacy: v96, (0, 0, 0, 0.3) -> (0, 0, 0, 0.4) */ --lwt-tabs-border-color: rgba(0, 0, 0, 0.4); } + #main-window { + background-color: WindowFrame !important; + } + :root[lwtheme][lwtheme-image] #customization-container { + background-image: none !important; + } #customization-container { background-color: transparent !important; /* Original: color-mix(in srgb, -moz-dialog 85%, white) */ } + :root:not([lwtheme]) #customization-container { + background-color: var(--toolbar-non-lwt-bgcolor) !important; + } /*= Findbar Border Color =====================================================*/ html|input.findbar-textbox { border: 1px solid var(--input-border-color, var(--toolbar-field-border-color, ThreeDShadow)) !important; /* Original: 1px solid var(--input-border-color, var(--toolbar-field-border-color)) */ @@ -174,14 +183,18 @@ align-items: center !important; } /*= Inactive transparent #882 ================================================*/ - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; color: color-mix(in srgb, currentColor calc(var(--inactive-titlebar-opacity, 0.75) * 100%), transparent) !important; --inactive-toolbarbutton-icon-fill-opacity: calc( var(--toolbarbutton-icon-fill-opacity, 1) * var(--inactive-titlebar-opacity, 0.75) ); } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .toolbarbutton-icon { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .toolbarbutton-icon, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .toolbarbutton-icon, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .toolbarbutton-icon { fill-opacity: var(--inactive-toolbarbutton-icon-fill-opacity, 1); } /*= Tabpreviw transparent #890 ===============================================*/ @@ -193,25 +206,37 @@ --arrowpanel-color ) !important; /* Original: var(--tab-selected-textcolor, var(--toolbar-color)) */ } + /*= Design token =============================================================*/ + :root, + :host { + --button-color: var(--button-text-color); + --button-bgcolor: var(--button-background-color); + --button-hover-bgcolor: var(--button-background-color-hover); + --button-active-bgcolor: var(--button-background-color-active); + --button-primary-color: var(--button-text-color-primary); + --button-primary-bgcolor: var(--button-background-color-primary); + --button-primary-hover-bgcolor: var(--button-background-color-primary-hover); + --button-primary-active-bgcolor: var(--button-background-color-primary-active); + } } /*= OS - Compatibility =======================================================*/ @supports -moz-bool-pref("userChrome.compatibility.os") { /*= Windows 10 - Top border of accent color at ESR #358 ======================*/ @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top: 0.5px solid rgb(47, 47, 47) !important; } - :root[sizemode="normal"][tabsintitlebar]:-moz-window-inactive #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]):-moz-window-inactive #navigator-toolbox { border-top-color: rgb(57, 57, 57) !important; } } @media (-moz-os-version: windows-win10) and (-moz-windows-accent-color-in-titlebar), (-moz-platform: windows-win10) and (-moz-windows-accent-color-in-titlebar) { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top-color: ActiveBorder !important; } @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox { border-top-color: -moz-accent-color !important; } } @@ -354,28 +379,6 @@ color: inherit !important; /* Original: -moz-menubarhovertext */ background-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* Original: -moz-menuhover */ } - /*= Linux - Titlebar button at lwtheme =====================================*/ - @supports not -moz-bool-pref("userChrome.compatibility.os.linux_non_native_titlebar_button") { - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button { - appearance: none !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button > .toolbarbutton-icon { - appearance: auto !important; - width: unset !important; - height: unset !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-min, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-max, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-restore, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-close { - list-style-image: none !important; - } - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button, - :root:is(:-moz-lwtheme, [lwtheme]) .titlebar-button:hover:active { - background-color: unset !important; - color: unset !important; - } - } } /*= Linux - Light System Default Theme's Selected Tab ========================*/ @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: light), @@ -408,7 +411,7 @@ (-moz-os-version: windows-win10), (-moz-platform: windows) { @supports not -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar { /* -moz-default-appearance: -moz-window-titlebar */ appearance: none !important; } @@ -428,13 +431,13 @@ (-moz-platform: windows) and (-moz-platform: windows-win7), (-moz-platform: windows) and (-moz-os-version: windows-win8), (-moz-platform: windows) and (-moz-platform: windows-win8) { - :root[tabsintitlebar][sizemode="maximized"] #titlebar { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #titlebar { padding-top: 8px; } } } @supports -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { - :root[tabsintitlebar][sizemode="maximized"] #titlebar { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #titlebar { appearance: none !important; padding-top: 8px; } @@ -445,18 +448,19 @@ (-moz-os-version: windows-win8) and (-moz-windows-classic), (-moz-os-version: windows-win10) and (-moz-windows-classic), (-moz-platform: windows) and (-moz-windows-classic) { - :root[tabsintitlebar][sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { appearance: auto !important; -moz-default-appearance: -moz-window-titlebar !important; } - :root[tabsintitlebar][sizemode="maximized"]:not(:-moz-lwtheme) #navigator-toolbox { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"]:not(:-moz-lwtheme) #navigator-toolbox { appearance: auto !important; -moz-default-appearance: -moz-window-titlebar !important; } - :root[tabsintitlebar]:not(:-moz-lwtheme) #tabbrowser-arrowscrollbox { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-lwtheme) #pinned-tabs-container, + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-lwtheme) #tabbrowser-arrowscrollbox { color: -moz-dialogtext !important; } - :root[tabsintitlebar][sizemode="normal"] #navigator-toolbox:-moz-lwtheme { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #navigator-toolbox:-moz-lwtheme { background-image: linear-gradient( to bottom, ThreeDLightShadow 0, @@ -469,6 +473,10 @@ ) !important; } } + /*= MacOS Fullscreen clipping #1045 ==========================================*/ + :root[sizemode="fullscreen"][macOSNativeFullscreen]:not([inDOMFullscreen="true"]) #TabsToolbar { + min-height: var(--tab-min-height, fit-content) !important; + } } /*= Others - Compatibility ===================================================*/ @supports -moz-bool-pref("userChrome.compatibility.panel_cutoff") { @@ -487,14 +495,14 @@ /*= Common - URL Bar focus color =============================================*/ @media (-moz-windows-accent-color-in-titlebar), (-moz-gtk-csd-available) { /* URL Bar */ - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --focus-outline-color: AccentColor !important; } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #urlbar[open] > #urlbar-background, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #urlbar[open] > #urlbar-background { border-color: color-mix( @@ -504,14 +512,14 @@ ) !important; /* Like: --toolbar-field-focus-border-color */ } @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --focus-outline-color: -moz-accent-color !important; } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #urlbar[open] > #urlbar-background, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #urlbar[open] > #urlbar-background { border-color: color-mix( @@ -811,8 +819,11 @@ @supports -moz-bool-pref("userChrome.theme.system_default") { @media (-moz-os-version: windows-win10) and (-moz-windows-accent-color-in-titlebar), (-moz-platform: windows-win10) and (-moz-windows-accent-color-in-titlebar) { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)), - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ), + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --toolbarseparator-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* As default */ } } @@ -855,7 +866,11 @@ } @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, - :root[lwt-default-theme-in-dark-mode] #titlebar { + :root[lwt-default-theme-in-dark-mode] #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root[lwt-default-theme-in-dark-mode] #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar, + :root[lwt-default-theme-in-dark-mode] #TabsToolbar { --button-hover-bgcolor: var(--win-sidebar-button-hover-bgcolor); --button-active-bgcolor: var(--win-sidebar-button-hover-active-bgcolor); --toolbarbutton-hover-background: var(--win-sidebar-button-hover-bgcolor); @@ -905,7 +920,8 @@ #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 + #appMenu-fullscreen-button2, + .unified-extensions-item-menu-button ):is(:hover), :root[lwt-default-theme-in-dark-mode] toolbarbutton.subviewbutton:not( @@ -916,7 +932,8 @@ #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 + #appMenu-fullscreen-button2, + .unified-extensions-item-menu-button ):is(:hover) { background-color: var(--win-hover-bgcolor) !important; } @@ -959,6 +976,27 @@ } } @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root[lwtheme-mozlightdark] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox @@ -990,27 +1028,43 @@ /*= Windows10 - Titlebar accent color ========================================*/ @media (-moz-windows-accent-color-in-titlebar) { /* Tab Bar */ - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .titlebar-color, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .titlebar-color { - color: AccentColorText; - background-color: AccentColor; + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .browser-titlebar, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .browser-titlebar { + color: AccentColorText !important; + background-color: AccentColor !important; } @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .titlebar-color, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .titlebar-color { - color: -moz-accent-color-foreground; - background-color: -moz-accent-color; + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .browser-titlebar, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .titlebar-color, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .browser-titlebar { + color: -moz-accent-color-foreground !important; + background-color: -moz-accent-color !important; } } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .toolbar-items, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .toolbar-items { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .toolbar-items, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .toolbar-items { --toolbarbutton-icon-fill: currentColor; --toolbarbutton-hover-background: color-mix(in srgb, AccentColorText 10%, transparent); --toolbarbutton-active-background: color-mix(in srgb, AccentColorText 15%, transparent); } @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) .toolbar-items, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .toolbar-items { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + .toolbar-items, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + .toolbar-items { --toolbarbutton-hover-background: color-mix(in srgb, -moz-accent-color-foreground 10%, transparent); --toolbarbutton-active-background: color-mix(in srgb, -moz-accent-color-foreground 15%, transparent); } @@ -1207,11 +1261,17 @@ :root[lwt-default-theme-in-dark-mode] #navigator-toolbox { background-color: var(--mac-bgcolor) !important; } - :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar { --mac-hover-bgcolor: ButtonFace; } :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #titlebar, - :root[lwt-default-theme-in-dark-mode] #titlebar { + :root[lwt-default-theme-in-dark-mode] #titlebar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #toolbar-menubar, + :root[lwt-default-theme-in-dark-mode] #toolbar-menubar, + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar, + :root[lwt-default-theme-in-dark-mode] #TabsToolbar { --button-hover-bgcolor: var(--mac-hover-bgcolor); --button-active-bgcolor: var(--mac-hover-bgcolor); --toolbarbutton-hover-background: var(--mac-hover-bgcolor); @@ -1256,6 +1316,18 @@ } /* Hard Coded */ @supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { + :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox @@ -1411,8 +1483,11 @@ width: unset !important; } .menu-iconic-left .menu-iconic-icon, + .menu-iconic-left .menu-icon, menuitem[type="checkbox"] .menu-iconic-icon, - menuitem[type="radio"] .menu-iconic-icon { + menuitem[type="checkbox"] .menu-icon, + menuitem[type="radio"] .menu-iconic-icon, + menuitem[type="radio"] .menu-icon { appearance: none !important; } } @@ -1441,7 +1516,8 @@ } } @media (-moz-gtk-csd-available) { - menuitem[checked="true"] > .menu-iconic-left { + menuitem[checked="true"] > .menu-iconic-left, + menuitem[checked="true"] > .menu-icon { -moz-context-properties: fill, fill-opacity !important; fill: currentColor !important; fill-opacity: var(--menu-icon-opacity) !important; @@ -1471,7 +1547,7 @@ @media (-moz-gtk-csd-available) { menupopup { /* Disable the default appearance so we can override the native styling. */ - appearance: none !important !important; + appearance: none !important; /* Prevent any background or border around the outside of the shadow. */ background-color: transparent !important; border: none !important; @@ -1554,13 +1630,15 @@ } } @media (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic > .menu-iconic-left { + #context-navigation > .menuitem-iconic > .menu-iconic-left, + #context-navigation > .menuitem-iconic > .menu-icon { margin: 0 !important; padding: 0 !important; } } @media (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic > .menu-icon { width: var(--menuitem-min-width) !important; height: 32px !important; padding: 8px 1em !important; @@ -1568,7 +1646,8 @@ } } @media (-moz-gtk-csd-available) { - #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-icon { background-color: var(--menuitem-hover-background-color) !important; } } @@ -1576,7 +1655,8 @@ #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-icon { background-color: transparent !important; } } @@ -2085,7 +2165,6 @@ > .menu-iconic-icon { background-color: var(--menuitem-hover-background-color) !important; } - html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], html#main-window menupopup #context-navigation @@ -2133,7 +2212,6 @@ > .menu-iconic-icon { background-color: var(--menuitem-hover-background-color) !important; } - html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], html#main-window menupopup #context-navigation @@ -2214,6 +2292,15 @@ .notification-button:hover:active { background-color: var(--button-active-bgcolor) !important; } + .notification-button.primary { + background-color: var(--button-primary-bgcolor) !important; + } + .notification-button.primary:hover { + background-color: var(--button-primary-hover-bgcolor) !important; + } + .notification-button.primary:hover:active { + background-color: var(--button-primary-active-bgcolor) !important; + } html|button.ghost-button:not(.semi-transparent):enabled:hover { background-color: var(--button-hover-bgcolor) !important; } @@ -2250,8 +2337,8 @@ #editBMPanel_tagsSelector > richlistitem[selected="true"] { background-color: var(--button-active-bgcolor, color-mix(in srgb, currentColor 30%, transparent)) !important; } - #editBMPanel_namePicker, - #editBMPanel_tagsField { + #editBookmarkPanel #editBMPanel_namePicker, + #editBookmarkPanel #editBMPanel_tagsField { --input-bgcolor: var(--arrowpanel-background, Field); --input-color: var(--arrowpanel-color, FieldText); } @@ -2480,7 +2567,9 @@ :root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { --lwt-accent-color: rgb(45, 36, 91) !important; } - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { --uc-frame-element-background: color-mix(in srgb, var(--lwt-accent-color, Window) 60%, transparent); --toolbarbutton-hover-background: color-mix(in srgb, var(--lwt-accent-color, Window) 85%, transparent); } @@ -2495,7 +2584,9 @@ (-moz-platform: windows-win7) and (prefers-color-scheme: dark), (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { --toolbarbutton-hover-background: color-mix( in srgb, var(--lwt-accent-color, Window) 40%, @@ -2575,7 +2666,9 @@ --lwt-accent-color: transparent !important; --lwt-text-color: WindowText !important; } - #titlebar .toolbarbutton-1 { + #titlebar .toolbarbutton-1, + #toolbar-menubar .toolbarbutton-1, + #TabsToolbar .toolbarbutton-1 { --toolbarbutton-icon-fill: var(--lwt-text-color) !important; } :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { @@ -2815,7 +2908,7 @@ fill: currentColor !important; color: var(--in-content-primary-button-text-color) !important; background-color: var(--in-content-primary-button-background) !important; - background-image: url("chrome://global/skin/icons/radio.svg") !important; + background-image: url("../icons/radio.svg") !important; border-color: transparent !important; /* Style the button also when printing with "Print Backgrounds" unchecked */ color-adjust: exact !important; @@ -3519,7 +3612,7 @@ } #placesToolbar > toolbarbutton > .toolbarbutton-icon, #placesMenu > menu > image, - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { -moz-context-properties: fill !important; fill: currentColor !important; } @@ -3549,7 +3642,7 @@ background-color: var(--organizer-selected-background) !important; color: var(--organizer-selected-color) !important; } - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { margin-block: 0 !important; /* override menu.css */ padding-inline-end: 4px !important; } @@ -4018,12 +4111,18 @@ transition: all 0.3s var(--animation-easing-function) !important; } /*- URL / Search Bar -------------------------------------------------------*/ - #urlbar-background, + #urlbar-background { + transition: border-color 1s var(--animation-easing-function), + background-color 0.5s var(--animation-easing-function) !important; + } + #urlbar-background:hover { + transition: border-color 0.5s var(--animation-easing-function), + background-color 0.5s var(--animation-easing-function) !important; + } #searchbar { transition: border-color 1s var(--animation-easing-function), background-color 1.5s var(--animation-easing-function) !important; } - #urlbar-background:hover, #searchbar:hover { transition: border-color 0.5s var(--animation-easing-function), background-color 1s var(--animation-easing-function) !important; @@ -4074,17 +4173,15 @@ width: 18em; max-width: 36em; /* Animation */ - transition: margin-inline-start 0.25s var(--animation-easing-function), opacity 0.25s ease-in-out, - visibility 0s linear !important; - will-change: margin-inline-start, opacity, visibility; + transition: margin-inline-start 0.25s var(--animation-easing-function), visibility 0s linear !important; + will-change: margin-inline-start, visibility; } #sidebar-box[hidden="true"] { display: flex !important; display: -moz-box !important; margin-inline-start: -18em; - opacity: 0; visibility: collapse; - transition-delay: 0s, 0s, 0.25s !important; + transition-delay: 0s, 0.25s !important; } } /*- Titlebar & Full Screen -------------------------------------------------*/ @@ -4189,6 +4286,11 @@ --tab-border-radius: 0 !important; /* Original: 4px */ } } +@supports not -moz-bool-pref("userChrome.rounding.square_tab") { + :root { + --tab-border-radius: 4px !important; /* Original: 4px */ + } +} @supports -moz-bool-pref("userChrome.rounding.square_button") { :root { --urlbar-icon-border-radius: 0 !important; /* Original: calc(var(--toolbarbutton-border-radius) - 1px); */ @@ -4351,13 +4453,13 @@ --uc-space-left-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ } @supports not -moz-bool-pref("userChrome.padding.first_tab.always") { - :root:not([tabsintitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), + :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { padding-inline-start: var(--uc-space-left-tabbar) !important; } } @supports -moz-bool-pref("userChrome.padding.first_tab.always") { - :root:not([tabsintitlebar]) #tabbrowser-tabs, + :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs, :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs { padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width, 0px) + var(--uc-space-left-tabbar)) !important; } @@ -4439,6 +4541,7 @@ margin-inline-start: 0 !important; } } + :root:not([uidensity="touch"]) #pinned-tabs-container, :root:not([uidensity="touch"]) #tabbrowser-arrowscrollbox { --scrollbtn-inner-padding: 1px; --scrollbtn-outer-padding: 3px; @@ -4483,13 +4586,31 @@ .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { max-width: var(--tab-max-width) !important; /* Original: 225px */ } + #tabbrowser-tabs[orient="vertical"][expanded] .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + max-width: none !important; + } + #tabbrowser-tabs[orient="horizontal"] + tab-group[collapsed] + > .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + min-width: 0 !important; + max-width: 0 !important; + padding: 0 !important; + margin: 0 !important; + overflow-clip-margin: 0; + } /* neighbouring tabs should "pinch" together */ :root[customizing="true"] #tabbrowser-arrowscrollbox-periphery, + #tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) + > #pinned-tabs-container + > #tabbrowser-arrowscrollbox-periphery, #tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) > #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox-periphery { min-width: 3px; } + #tabbrowser-tabs[orient="horizontal"] .tab-group-label-container { + margin-inline-start: 4px !important; + } @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { @supports -moz-bool-pref("userChrome.tab.lepton_like_padding") { #TabsToolbar:not([multibar]) .tabbrowser-tab[pinned] { @@ -4521,11 +4642,11 @@ --uc-space-above-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ } @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); } @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { - :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); } } @@ -4535,11 +4656,11 @@ (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-gtk-csd-available) { - :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); } @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { - :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); } } @@ -4641,6 +4762,16 @@ ) !important; /* Prevent overflow pinned tab bottom margin */ } @supports not -moz-bool-pref("userChrome.tabbar.multi_row") { + :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #pinned-tabs-container, + #TabsToolbar:not([multibar]) #pinned-tabs-container[overflowing="true"] > .tabbrowser-tab[pinned="true"], + #TabsToolbar:not([multibar]) + #pinned-tabs-container[overflowing="true"] + > .tabbrowser-tab[pinned="true"] + .tab-stack, + #TabsToolbar:not([multibar]) + #pinned-tabs-container[overflowing="true"] + > .tabbrowser-tab[pinned="true"] + .tab-content, :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox, #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"], #TabsToolbar:not([multibar]) @@ -4653,12 +4784,14 @@ .tab-content { max-height: var(--tab-min-height) !important; /* Force apply height */ } + :root[uidensity="compact"] #TabsToolbar:not([multibar]) #pinned-tabs-container, :root[uidensity="compact"] #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox { height: var(--tab-min-height) !important; } } } /* Scroll Button - Size Fix */ + :root #pinned-tabs-container, :root #tabbrowser-arrowscrollbox { --scrollbtn-vertical-padding: 3px; --scrollbtn-vertical-border: 2px; @@ -4676,7 +4809,7 @@ /* Original: calc(var(--tab-border-radius) + 4px) = 8px */ border-radius: var(--scrollbtn-border-radius, calc(var(--tab-border-radius) + 4px)) !important; } - :root[tabsintitlebar]:not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar]):not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { height: calc( var(--tab-min-height) - var(--tabs-navbar-shadow-size) - 2px ); /* Compact: 28px, Normal: 33px, Touch: 38px */ @@ -4736,11 +4869,6 @@ :root:not([uidensity="compact"]) #urlbar[breakout][breakout-extend-disabled][open] { height: auto !important; } - :root[uidensity="touch"] #urlbar[breakout] { - top: calc( - (var(--urlbar-toolbar-height, var(--urlbar-container-height)) - var(--urlbar-height)) / 2 + 1px - ) !important; - } /* spread menu */ :root:not([uidensity]) .urlbarView-row { padding-block: 1px !important; /* Original: 2px */ @@ -4758,11 +4886,13 @@ } @supports -moz-bool-pref("userChrome.padding.urlView_expanding") or -moz-bool-pref("userChrome.urlView.as_commandbar") { #urlbar[breakout][breakout-extend] { - top: calc((var(--urlbar-toolbar-height, var(--urlbar-container-height)) - var(--urlbar-height)) / 2) !important; - left: 0 !important; - width: 100% !important; + top: calc(var(--urlbar-container-height) * 2 - var(--urlbar-height)) !important; + width: var(--urlbar-width) !important; + position: relative !important; + margin: 0 !important; } - #urlbar[breakout][breakout-extend] > #urlbar-input-container { + #urlbar[breakout][breakout-extend] > #urlbar-input-container, + #urlbar[breakout][breakout-extend] > .urlbar-input-container { height: var(--urlbar-height) !important; padding-block: 0 !important; padding-inline: var(--urlbar-container-padding, 0px) !important; @@ -5096,6 +5226,8 @@ display: flex !important; /* Needed for content to take up entire height, compatibility with tabs on bottom */ } :root[sizemode="fullscreen"] #titlebar, + :root[sizemode="fullscreen"] #toolbar-menubar, + :root[sizemode="fullscreen"] #TabsToolbar, :root[sizemode="fullscreen"] #nav-bar, :root[sizemode="fullscreen"] #PersonalToolbar, :root[sizemode="fullscreen"] #tab-notification-deck, @@ -5112,7 +5244,8 @@ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /*= Tabbar - Move to bottom ==================================================*/ - #titlebar { + #titlebar, + #TabsToolbar { order: 2; -moz-box-ordinal-group: 2; --tabs-navbar-shadow-size: 0px; @@ -5187,7 +5320,7 @@ width: 100%; overflow: hidden; } - :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar[autohide="true"]:not([inactive="true"]) { height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ } #toolbar-menubar > .titlebar-buttonbox-container { @@ -5224,7 +5357,8 @@ /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 See the above repository for updates as well as full license text. */ /*= Tabbar - Move to bottom ==================================================*/ - #titlebar { + #titlebar, + #TabsToolbar { order: 2; -moz-box-ordinal-group: 2; --tabs-navbar-shadow-size: 0px; @@ -5299,7 +5433,7 @@ width: 100%; overflow: hidden; } - :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar[autohide="true"]:not([inactive="true"]) { height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ } #toolbar-menubar > .titlebar-buttonbox-container { @@ -5354,7 +5488,9 @@ margin-top: calc(var(--uc-tabbar-hide-height) + var(--uc-navbar-double-block)) !important; margin-bottom: var(--uc-navbar-block, 0px) !important; } - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { transform: translateY(var(--uc-navbar-block, 0px)); } #TabsToolbar > .titlebar-buttonbox-container { @@ -5456,7 +5592,9 @@ margin-top: calc(var(--uc-tabbar-hide-height) + var(--uc-navbar-double-block)) !important; margin-bottom: var(--uc-navbar-block, 0px) !important; } - #titlebar { + #titlebar, + #toolbar-menubar, + #TabsToolbar { transform: translateY(var(--uc-navbar-block, 0px)); } #TabsToolbar > .titlebar-buttonbox-container { @@ -5551,7 +5689,7 @@ --uc-window-drag-space-post: 0px; /* Same as .titlebar-spacer[type="post-tabs"] */ --uc-window-control-space: calc(var(--uc-window-control-width) + var(--uc-window-drag-space-post)); } - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: var(--uc-title-pre-spacer, 40px); --uc-window-drag-space-post: var(--uc-title-post-spacer, 40px); } @@ -5559,48 +5697,48 @@ (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 105px; } } @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 138px; } } @media (-moz-gtk-csd-available) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { /* 84px is default value of linux */ } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button), (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button), (-moz-gtk-csd-available) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 28px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button), (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-close-button), (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 56px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 84px; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { - :root[tabsintitlebar] { + :root:is([tabsintitlebar], [customtitlebar]) { --uc-window-control-width: 72px; } :root[sizemode="fullscreen"] { --uc-window-control-space: 0px; } } - :root:is([tabsintitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar][sizemode="maximized"], [customtitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } @supports -moz-bool-pref("userChrome.tabbar.one_liner") { @@ -5610,27 +5748,27 @@ (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { --uc-window-control-space: 0px; } } @@ -5641,12 +5779,12 @@ (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -5657,7 +5795,7 @@ @media screen and (max-width: 1100px) { @supports (not -moz-bool-pref("userChrome.tabbar.on_bottom")) or (not -moz-bool-pref("userChrome.hidden.tabbar")) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; --uc-window-control-space: 0px; } @@ -5669,27 +5807,27 @@ screen and (min-width: 1100px) and (-moz-os-version: windows-win8), screen and (min-width: 1100px) and (-moz-os-version: windows-win10), screen and (min-width: 1100px) and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { --uc-window-control-space: 0px; } } @@ -5700,12 +5838,12 @@ screen and (min-width: 1100px) and (-moz-os-version: windows-win8), screen and (min-width: 1100px) and (-moz-os-version: windows-win10), screen and (min-width: 1100px) and (-moz-platform: windows) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } @@ -5786,17 +5924,17 @@ (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) { --uc-titlebar-padding: 8px; } - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -5859,13 +5997,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -5945,17 +6089,17 @@ (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) { --uc-titlebar-padding: 8px; } - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -6018,13 +6162,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -6101,17 +6251,17 @@ (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) { --uc-titlebar-padding: 8px; } - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -6174,13 +6324,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -6267,17 +6423,17 @@ screen and (max-width: 1100px) and (-moz-os-version: windows-win8), screen and (max-width: 1100px) and (-moz-os-version: windows-win10), screen and (max-width: 1100px) and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) { --uc-titlebar-padding: 8px; } - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -6349,13 +6505,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -6440,17 +6602,17 @@ screen and (min-width: 1100px) and (-moz-os-version: windows-win8), screen and (min-width: 1100px) and (-moz-os-version: windows-win10), screen and (min-width: 1100px) and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) { --uc-titlebar-padding: 8px; } - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -6513,13 +6675,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -6599,17 +6767,17 @@ screen and (min-width: 1100px) and (-moz-os-version: windows-win8), screen and (min-width: 1100px) and (-moz-os-version: windows-win10), screen and (min-width: 1100px) and (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) { --uc-titlebar-padding: 8px; } - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #navigator-toolbox-background { margin-top: calc(-1 * var(--uc-titlebar-padding)); } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -6672,13 +6840,19 @@ :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { visibility: collapse !important; } - :root[tabsintitlebar] #titlebar { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar { z-index: 1; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; } - :root[tabsintitlebar] #titlebar:-moz-window-inactive .titlebar-buttonbox { + :root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive .titlebar-buttonbox, + :root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive .titlebar-buttonbox { opacity: var(--inactive-titlebar-opacity); } } @@ -7019,7 +7193,7 @@ } /*= Tab Bar - Show only current tab ==========================================*/ @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { - :root:not([tabsintitlebar="true"]) #tabbrowser-tabs, + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs, #scrollbutton-up, #scrollbutton-down, .titlebar-spacer[type="pre-tabs"], @@ -7051,6 +7225,7 @@ width: 100%; } /* Pinned */ + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned][selected="true"], #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned][selected="true"] { position: relative !important; } @@ -7070,26 +7245,32 @@ } /* Padding */ @supports not -moz-bool-pref("userChrome.centered.tab") { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { margin-inline: 2px !important; } + :root[sizemode="normal"] #pinned-tabs-container, :root[sizemode="normal"] #tabbrowser-arrowscrollbox { margin-inline: 6px !important; } } @supports -moz-bool-pref("userChrome.centered.tab") { @supports -moz-bool-pref("userChrome.centered.tab.label") { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { margin-inline: 2px !important; } + :root[sizemode="normal"] #pinned-tabs-container, :root[sizemode="normal"] #tabbrowser-arrowscrollbox { margin-inline: 6px !important; } } } @supports -moz-bool-pref("browser.tabs.tabmanager.enabled") { - :root:not([tabsintitlebar="true"]) #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) ~ #alltabs-button, - :root:not([tabsintitlebar="true"]) + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) + #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) + ~ #alltabs-button, + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs[hasadjacentnewtabbutton]:not([overflow="true"]) ~ #new-tab-button { display: flex !important; @@ -7124,6 +7305,7 @@ } } .scrollbox-clip[orient="horizontal"], + #pinned-tabs-container, #tabbrowser-arrowscrollbox { overflow: -moz-hidden-unscrollable; display: block; @@ -7201,6 +7383,7 @@ > #tabs-newtab-button { z-index: 2 !important; } + #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] #pinned-tabs-container, #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] #tabbrowser-arrowscrollbox { padding-inline-end: calc( 16px + (var(--toolbarbutton-inner-padding) + var(--toolbarbutton-outer-padding)) * 2 @@ -7218,21 +7401,37 @@ /** Tab UI ********************************************************************/ /*= Tab - Connect to window ==============================================*/ @supports -moz-bool-pref("userChrome.tab.connect_to_window") { - #tabbrowser-tabs[orient="vertical"] { - --uc-tab-border-bottom-radius: var(--tab-border-radius); + #TabsToolbar #tabbrowser-tabs:not([orient="vertical"]) { + max-height: var(--tab-min-height); } - .tab-background { + #TabsToolbar #tabbrowser-tabs:not([orient="vertical"])[movingtab] { + padding-bottom: unset !important; + margin-bottom: unset !important; + } + #TabsToolbar[multibar] #tabbrowser-tabs:not([orient="vertical"]) { + max-height: var(--tab-min-height_mlt); + } + #tabbrowser-tabs:not([orient="vertical"]) { + min-height: unset !important; /* Original: var(--tabstrip-min-height) */ + } + #tabbrowser-tabs:not([orient="vertical"]) .tab-background { border-radius: var(--tab-border-radius) var(--tab-border-radius) var(--uc-tab-border-bottom-radius, 0px) var(--uc-tab-border-bottom-radius, 0px) !important; margin-bottom: 0px !important; } - .tab-content { + #tabbrowser-tabs:not([orient="vertical"]) .tab-content { margin-top: 0px; } - .tab-stack { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack { margin-top: 0px !important; margin-bottom: 0px !important; } + #tabbrowser-tabs:not([orient="vertical"]) tab-group .tabbrowser-tab:is([selected], [multiselected]) .tab-group-line { + transform: translateY(calc(var(--tab-group-line-thickness) * -1)); + } + #tabbrowser-tabs[orient="vertical"] { + --uc-tab-border-bottom-radius: var(--tab-border-radius); + } /* Remove line at Toolbar's top */ #tabbrowser-tabs { z-index: 1 !important; @@ -7243,9 +7442,11 @@ } } /* Pinned Tab - tabbrowser-arrowscrollbox overflowing */ + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned], #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] { z-index: 0 !important; } + #tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned] .tab-stack, #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] .tab-stack { /* Temporary solution for compatibility #513 */ overflow-y: clip; @@ -7263,11 +7464,6 @@ } /*= Selected Tab =============================================================*/ /*= Selected Tab - Bold ======================================================*/ -@supports not -moz-bool-pref("userChrome.tab.selected_bold") { - .tab-label:is([selected], [attention]) { - font-weight: 400 !important; - } -} @supports -moz-bool-pref("userChrome.tab.selected_bold") { .tab-label:is([selected], [attention]) { font-weight: 600; @@ -7285,6 +7481,26 @@ .tab-background:is([selected], [multiselected]) { background-color: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)) !important; } + :root:is(:-moz-lwtheme, [lwtheme]) #pinned-tabs-container > .tabbrowser-tab > .tab-stack > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root:is(:-moz-lwtheme, [lwtheme]) #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -7295,6 +7511,19 @@ > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[selected] { /* Original: linear-gradient(var(--lwt-selected-tab-background-color, transparent), var(--lwt-selected-tab-background-color, transparent)), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) */ @@ -7305,6 +7534,30 @@ background-repeat: repeat-x, repeat-x, no-repeat !important; } @supports -moz-bool-pref("userChrome.theme.transparent.frame") { + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -7315,6 +7568,19 @@ > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root:not([lwtheme-image]):is(:-moz-lwtheme, [lwtheme]) + #tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[selected] { background-image: linear-gradient(transparent, transparent), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-additional-images, none) !important; @@ -7325,16 +7591,35 @@ } /*= Multi Selected Color - More Contrast =====================================*/ @supports -moz-bool-pref("userChrome.tab.multi_selected") { - #TabsToolbar { + #TabsToolbar, + #vertical-tabs { --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 28%, var(--toolbar-bgcolor, transparent)); } - #TabsToolbar[brighttext] { + #TabsToolbar[brighttext], + #vertical-tabs[brighttext] { --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 16%, var(--toolbar-bgcolor, transparent)); } + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[multiselected]:not([selected]), + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[multiselected]:not([selected]) { /* Original: background-attachment: scroll, scroll, fixed; @@ -7890,15 +8175,138 @@ margin: unset !important; } } +/*= Selected Tab - Supernova like contextline ===================================*/ +@supports not -moz-bool-pref("userChrome.tab.photon_like_contextline") { + @supports -moz-bool-pref("userChrome.tab.supernova_like_contextline") { + /* context line styles */ + tabs tab.tabbrowser-tab > .tab-stack > .tab-background > .tab-context-line { + display: inline-flex !important; + display: -moz-inline-box !important; + } + tabs tab.tabbrowser-tab > .tab-stack > .tab-background > .tab-context-line::before { + content: ""; + height: 1px !important; + border-radius: 9999px !important; + transform: translateY(5px); + margin-top: -1px !important; + margin-left: 5px; + margin-right: 5px; + width: 100%; + } + /* Override container-tab style */ + tabs tab.tabbrowser-tab[usercontextid] > .tab-stack > .tab-background > .tab-context-line { + margin: unset !important; + } + /* selected tab style */ + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] .tab-context-line, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] .tab-context-line { + --tab-line-color: #45a1ff; + } + .tabbrowser-tab:is([selected], [multiselected]) .tab-context-line::before { + background-color: var(--tab-line-color, var(--lwt-tab-line-color, #45a1ff)) !important; + } + /* Set the active effect */ + .tabbrowser-tab:active > .tab-stack > .tab-background > .tab-context-line::before { + filter: brightness(70%); + margin-left: 6px; + margin-right: 6px; + } + /* Set the hover effect */ + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + background-color: rgba(0, 0, 0, 0.4) !important; + opacity: 1 !important; + } + #TabsToolbar[brighttext] + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + background-color: rgba(255, 255, 255, 0.4) !important; + } + /* Animation */ + @media (prefers-reduced-motion: no-preference) { + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + animation: toWide 0.2s cubic-bezier(0, 0.9, 0.15, 1); + } + } + /* Animation for hover effect */ + @keyframes toWide { + 0% { + opacity: 0.8; + margin-left: 40%; + margin-right: 40%; + } + 100% { + opacity: 1; + margin-left: 5px; + margin-right: 5px; + } + } + /* --- copied (not modified) from _photon_like_contextline.scss --- */ + /* Prevent identity color flashing */ + .tabbrowser-tab[usercontextid] .tab-context-line { + --identity-icon-color: none; + } + :root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::before, + :root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::after { + /* As Selected Tab - Box Shadow */ + stroke: var(--toolbar-color) !important; + } + /* Remove side's background color border */ + :root:is(:-moz-lwtheme, [lwtheme]) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + > .tab-stack + > .tab-background { + --tabs-border-color: rgba(0, 0, 0, 0.3) !important; + box-shadow: 0 0 1px var(--tabs-border-color) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)) */ + } + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + > .tab-stack + > .tab-background { + box-shadow: 0 0 1px var(--tabs-border-color), 0 0 4px rgba(128, 128, 142, 0.5) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)), 0 0 4px rgba(128,128,142,0.5) */ + } + @supports -moz-bool-pref("userChrome.tab.contextline_blue_accent") { + #tabbrowser-tabs .tab-context-line { + --tab-line-color: #45a1ff !important; + } + } + @supports not -moz-bool-pref("userChrome.tab.contextline_blue_accent") { + @media (-moz-gtk-csd-available) { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs .tab-context-line { + --tab-line-color: AccentColor !important; /* -moz-accent-color */ + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root:is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabbrowser-tabs .tab-context-line { + --tab-line-color: Highlight !important; /* -moz-accent-color */ + } + } + } + } + } +} /*= Unselected Tab - Divide line =============================================*/ /*= Unselected Tab - Dynamic Separator =======================================*/ @supports -moz-bool-pref("userChrome.tab.dynamic_separator") { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { --start-tab-separator-position-x: -1.5px; --end-tab-separator-position-x: 1.5px; --tab-separator-position-x: -2.5px; --tab-separator-position-y: calc(-50% + 1px); } + #pinned-tabs-container:-moz-locale-dir(rtl), #tabbrowser-arrowscrollbox:-moz-locale-dir(rtl) { --start-tab-separator-position-x: 1.5px; --end-tab-separator-position-x: -1.5px; @@ -7908,8 +8316,8 @@ position: relative; } @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - .tab-stack::before, - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { /* Box Model */ content: ""; display: block; @@ -7926,18 +8334,19 @@ transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } @supports -moz-bool-pref("userChrome.compatibility.dynamic_separator") { - .tab-stack::before, - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { background-color: var(--tabs-border-color); } } - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { left: calc(50% - (8px + var(--toolbarbutton-inner-padding))); } } @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - .tab-stack::before, - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { /* Box Model */ @@ -7954,35 +8363,48 @@ background-color: var(--toolbarseparator-color); } @supports -moz-bool-pref("userChrome.compatibility.dynamic_separator") { - .tab-stack::before, - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { background-color: var(--tabs-border-color); } } - .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before { transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; } - .tabbrowser-tab:last-of-type .tab-stack::after { + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type .tab-stack::after { right: 0; transform: translateX(var(--end-tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; } } - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) .tab-stack::before { + #pinned-tabs-container:not([orient="vertical"]):not(:empty):not( + :has(.tabbrowser-tab[pinned]:is([visuallyselected], [multiselected], :hover):last-of-type) + ) + ~ #tabbrowser-arrowscrollbox:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) + .tab-stack::before { opacity: var(--tab-separator-opacity); } @supports -moz-bool-pref("userChrome.tabbar.one_liner") { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before { opacity: var(--tab-separator-opacity); transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } } @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type + .tab-stack::before { opacity: var(--tab-separator-opacity); transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } @@ -7991,18 +8413,27 @@ } } @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button:not(:hover, [open])::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:not(:hover, [open])::before { opacity: var(--tab-separator-opacity); } } @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { opacity: var(--tab-separator-opacity); } } + #tabbrowser-tabs:not([orient="vertical"]) + tab-group:has(.tabbrowser-tab:last-child:is(:hover, [selected])) + + .tabbrowser-tab + .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) tab-group[collapsed] + .tabbrowser-tab .tab-stack::before { + opacity: 0 !important; + } #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))):is( [visuallyselected], [multiselected], @@ -8010,6 +8441,7 @@ ) .tab-stack::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox[overflowing] tab.tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) .tab-stack::before { @@ -8017,13 +8449,16 @@ } @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + .tabbrowser-tab .tab-stack::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) ~ #tabs-newtab-button::before, #navigator-toolbox:not([movingtab]) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) ~ #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button::before { @@ -8031,30 +8466,35 @@ } } @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + #tabbrowser-tabs:not([orient="vertical"]) + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + .tabbrowser-tab:not([visuallyselected]) .tab-stack::before { opacity: 0 !important; } - :root:not([uidensity="compact"]) #tabs-newtab-button > .toolbarbutton-icon { + :root:not([uidensity="compact"]) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button + > .toolbarbutton-icon { margin-left: 2px; } - :root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + :root[uidensity="compact"] #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button > .toolbarbutton-icon { margin-left: 1px; } } /* Animate */ @media (prefers-reduced-motion: no-preference) { - .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } } @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ @@ -8062,7 +8502,7 @@ } } /* Latest Tab & New tab margin */ - #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { margin-inline-end: 1px !important; } } @@ -8167,7 +8607,7 @@ /*= New tab button - Looks like tab ==========================================*/ @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { @supports -moz-bool-pref("userChrome.tab.connect_to_window") { - #tabs-newtab-button { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { /* Size */ align-items: stretch !important; -moz-box-align: stretch !important; @@ -8175,7 +8615,7 @@ } } @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { - #tabs-newtab-button { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { /* Original: margin: 0 0 var(--tabs-navbar-shadow-size) !important => Can't override style. Therefore, we should approach it by bypass. @@ -8200,7 +8640,7 @@ ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( "userChrome.tab.bottom_rounded_corner.chrome" ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { --uc-newtab-position: 0px; --uc-newtab-non-corner-bgwidth: 0px; --uc-tab-corner-half-height: calc(var(--uc-tab-corner-height) / 2); @@ -8220,7 +8660,7 @@ background-origin: padding-box; } @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { --uc-newtab-non-corner-bgwidth: calc(2 * var(--toolbarbutton-inner-padding)); } } @@ -8234,13 +8674,20 @@ --uc-newtab-bgcolor: var(--toolbarbutton-active-background); } @media (-moz-windows-accent-color-in-titlebar) { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { fill: color-mix(in srgb, AccentColorText 10%, transparent) !important; /* Hardcoded for compatibility */ } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover:active { fill: color-mix(in srgb, AccentColorText 15%, transparent) !important; /* Hardcoded for compatibility */ } @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { @@ -8249,9 +8696,12 @@ ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( "userChrome.tab.bottom_rounded_corner.chrome" ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( to left, @@ -8260,9 +8710,11 @@ ), var(--uc-tab-corner-right-side-svg); } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( @@ -8275,18 +8727,23 @@ } } @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { fill: color-mix( in srgb, -moz-accent-color-foreground 10%, transparent ) !important; /* Hardcoded for compatibility */ } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active { fill: color-mix( in srgb, @@ -8300,9 +8757,15 @@ ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( "userChrome.tab.bottom_rounded_corner.chrome" ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) + #tabs-newtab-button:hover { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( to left, @@ -8311,9 +8774,14 @@ ), var(--uc-tab-corner-right-side-svg); } - :root[tabsintitlebar]:not(:-moz-window-inactive):is(:not([lwtheme]), :not(:-moz-lwtheme)) + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient( @@ -8328,7 +8796,7 @@ } } /* '+'Icon */ - #tabs-newtab-button .toolbarbutton-icon { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button .toolbarbutton-icon { border-radius: var(--tab-border-radius) var(--tab-border-radius) 0 0 !important; /* Original: var(--tab-border-radius) */ padding: calc(var(--toolbarbutton-inner-padding) - var(--tab-block-margin) / 4) var(--toolbarbutton-inner-padding) calc(var(--toolbarbutton-inner-padding) + var(--tab-block-margin) / 4 + var(--uc-tabs-navbar-shadow-size)) !important; @@ -8341,7 +8809,7 @@ ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( "userChrome.tab.bottom_rounded_corner.chrome" ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { - #tabs-newtab-button .toolbarbutton-icon { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button .toolbarbutton-icon { --tab-border-radius: 0px; width: unset !important; padding-inline: 0px !important; @@ -8405,6 +8873,10 @@ --tab-label-mask-size: 25%; } .tabbrowser-tab[visuallyselected]:not([labelendaligned]):hover .tab-label-container, + #tabbrowser-tabs:not([closebuttons="activetab"]) + > #pinned-tabs-container + > .tabbrowser-tab:not([visuallyselected], [labelendaligned]):hover + .tab-label-container, #tabbrowser-tabs:not([closebuttons="activetab"]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab:not([visuallyselected], [labelendaligned]):hover @@ -8414,6 +8886,12 @@ } /** Clipped tabs - Show close button at hover *********************************/ @supports -moz-bool-pref("userChrome.tab.close_button_at_hover") { + #tabbrowser-tabs[closebuttons="activetab"] + > #pinned-tabs-container + > .tabbrowser-tab:not([pinned]) + > .tab-stack + > .tab-content + > .tab-close-button:not([selected]), #tabbrowser-tabs[closebuttons="activetab"] > #tabbrowser-arrowscrollbox > .tabbrowser-tab:not([pinned]) @@ -8632,6 +9110,24 @@ width: 17px !important; height: 17px !important; } + .tab-icon-overlay:not([crashed]):is([soundplaying], [muted], [activemedia-blocked]) { + -moz-context-properties: fill, fill-opacity, stroke !important; + fill: currentColor !important; + border: none !important; + } + .tab-icon-overlay:not([crashed]):is([pinned], [sharing]) { + stroke: var(--tab-icon-overlay-stroke, light-dark(white, black)); + color: var(--tab-icon-overlay-fill, light-dark(black, white)); + } + .tab-icon-overlay:not([crashed])[soundplaying] { + list-style-image: url("./icons/tab-audio-playing-small.svg"); + } + .tab-icon-overlay:not([crashed])[muted] { + list-style-image: url("./icons/tab-audio-muted-small.svg"); + } + .tab-icon-overlay:not([crashed])[activemedia-blocked] { + list-style-image: url("./icons/tab-audio-blocked-small.svg"); + } .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { /* Color */ color: currentColor !important; @@ -8640,6 +9136,29 @@ fill-opacity: 0.8 !important; opacity: 1 !important; } + .tab-audio-button:not([crashed]), + .tab-audio-button[pinned][crashed][selected] { + /* Position */ + margin-inline-start: -8px !important; + margin-inline-end: -4px !important; + z-index: 1 !important; + transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(var(--uc-sound-tab-icon-position-y)); + /* Shape */ + --button-size-icon-small: 17px !important; + --button-min-height-small: 17px !important; + --button-border-radius: 100% !important; + width: 17px !important; + height: 17px !important; + border-radius: 100%; + overflow: clip; + --button-text-color-ghost-hover: light-dark(white, black); + --button-background-color-ghost-hover: light-dark(black, white); + } + .tab-audio-button:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { + display: flex !important; + fill-opacity: 0.8 !important; + opacity: 1 !important; + } /* Label */ @supports not -moz-bool-pref("userChrome.hidden.tab_icon") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) @@ -9013,7 +9532,7 @@ opacity: 0; visibility: hidden; } - :root:has(#sidebar-box[positionend="true"]) #nav-bar { + :root:has(#sidebar-box[positionend]) #nav-bar { right: 0; } } @@ -9076,7 +9595,7 @@ position: absolute; height: 100%; } - :root[customizing="true"] #browser[collapsed="true"] #sidebar-box[positionend="true"] { + :root[customizing="true"] #browser[collapsed="true"] #sidebar-box[positionend] { right: 0; } :root[customizing="true"] #customization-container { @@ -9089,10 +9608,10 @@ --uc-customization-conatiner-margin: calc(var(--uc-navbar-height-default) - var(--uc-tabbar-height-default)); } } - :root[customizing="true"]:has(#sidebar-box:not([positionend="true"])) #customization-container { + :root[customizing="true"]:has(#sidebar-box:not([positionend])) #customization-container { margin-inline-start: var(--uc-sidebar-activate-width); } - :root[customizing="true"]:has(#sidebar-box[positionend="true"]) #customization-container { + :root[customizing="true"]:has(#sidebar-box[positionend]) #customization-container { margin-inline-end: var(--uc-sidebar-activate-width); } :root[customizing="true"] #customization-palette-container, @@ -9404,11 +9923,11 @@ @supports -moz-bool-pref("userChrome.sidebar.overlap") or -moz-bool-pref("userChrome.autohide.sidebar") { #sidebar-box { --uc-sidebar-shadow-color: #28282f; - z-index: 1 !important; + z-index: var(--browser-area-z-index-sidebar-splitter, 3) !important; position: relative !important; box-shadow: var(--uc-sidebar-shadow-position) 0px 15px -10px var(--uc-sidebar-shadow-color); } - #sidebar-box[positionend="true"] { + #sidebar-box[positionend] { --uc-sidebar-shadow-position: calc(-1 * var(--uc-sidebar-shadow-position-default)); } #sidebar { @@ -9419,7 +9938,7 @@ } } @supports -moz-bool-pref("userChrome.sidebar.overlap") { - #sidebar-box[positionend="true"] { + #sidebar-box[positionend] { direction: rtl; } #sidebar-header, @@ -10132,24 +10651,35 @@ /** Fullscreen - Overlap toolbar **********************************************/ @supports -moz-bool-pref("userChrome.fullscreen.overlap") { @supports -moz-bool-pref("browser.fullscreen.autohide") { - :root[sizemode="fullscreen"] #navigator-toolbox { + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #navigator-toolbox { position: fixed !important; /* Needed for content to take up entire height */ z-index: 1000 !important; /* Puts the UI above the content */ } - :root[sizemode="fullscreen"] :-moz-any(#navigator-toolbox, #titlebar, #nav-bar, #PersonalToolbar) { + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #navigator-toolbox:is(:hover, :focus-within) { + margin-top: 0 !important; + } + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) + :-moz-any(#navigator-toolbox, #titlebar, #toolbar-menubar, #TabsToolbar, #nav-bar, #PersonalToolbar) { width: 100%; /* Makes the UI take up the entire width */ } + :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #urlbar:popover-open { + position: fixed !important; + } @media (-moz-gtk-csd-available) { /* Fix transparent background */ - :root[tabsintitlebar][sizemode="fullscreen"]:is(:not([lwtheme]), :not(:-moz-lwtheme)) #TabsToolbar { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="fullscreen"]:not([inDOMFullscreen="true"]):is( + :not([lwtheme]), + :not(:-moz-lwtheme) + ) + #TabsToolbar { appearance: auto !important; } } } } @supports -moz-bool-pref("userChrome.fullscreen.show_bookmarkbar") { - :root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized="true"]:not([collapsed="true"]), - :root[sizemode="fullscreen"] #PersonalToolbar[initialized="true"] { + :root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized]:not([collapsed="true"]), + :root[sizemode="fullscreen"] #PersonalToolbar[initialized] { visibility: unset !important; /* Makes the bookmarks toolbar visible if enabled */ } } @@ -10391,16 +10921,16 @@ } } @supports selector(:has(a)) { - :root:not([tabsintitlebar]):has(#toolbar-menubar) { + :root:not([tabsintitlebar]):not([customtitlebar]):has(#toolbar-menubar) { --uc-menubar-height: var(--uc-menubar-height-default); } @media (-moz-gtk-csd-available) { - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"]) { --uc-menubar-height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin)); } } @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"]) { --uc-menubar-height: calc(var(--tab-min-height) - var(--tabs-navbar-shadow-size)); } } @@ -10408,15 +10938,15 @@ (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"]) { --uc-menubar-height: calc(var(--tab-min-height) + var(--tab-block-margin)); } } - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="false"]) { + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="false"]) { --uc-menubar-height: var(--uc-titlebar-buttonbox-height); } - :root:not([tabsintitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]), - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"][inactive="true"]) { + :root:not([tabsintitlebar]):not([customtitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]), + :root:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]) { --uc-menubar-height: 0px; } #navigator-toolbox:has(#PersonalToolbar[collapsed="true"]) { @@ -10599,7 +11129,8 @@ @supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") { @supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - :root:not([customizing]) #titlebar { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } @@ -10617,7 +11148,8 @@ opacity: 0; } } - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { @@ -10634,7 +11166,8 @@ } @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (min-width: 1100px) { - :root:not([customizing]) #titlebar { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } @@ -10652,7 +11185,8 @@ opacity: 0; } } - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { @@ -10668,7 +11202,8 @@ } } @supports -moz-bool-pref("userChrome.autohide.tabbar") { - :root:not([customizing]) #titlebar { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } @@ -10686,7 +11221,8 @@ opacity: 0; } } - #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + #navigator-toolbox:is(:hover, :focus-within) > #titlebar, + #navigator-toolbox:is(:hover, :focus-within) > #TabsToolbar { margin-bottom: 0px; } @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { @@ -10747,30 +11283,51 @@ @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { #nav-bar:not([customizing]) { margin-bottom: var(--uc-navbar-hide-height); + } + #nav-bar:not([customizing]), + #nav-bar:not([customizing]) #urlbar { opacity: 0; will-change: margin-bottom, opacity; } #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { margin-bottom: 0; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { opacity: 1; } + #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { + pointer-events: none; + } } @supports -moz-bool-pref("userChrome.tabbar.one_liner") { @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { @media screen and (max-width: 1100px) { #nav-bar:not([customizing]) { margin-bottom: var(--uc-navbar-hide-height); + } + #nav-bar:not([customizing]), + #nav-bar:not([customizing]) #urlbar { opacity: 0; will-change: margin-bottom, opacity; } #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { margin-bottom: 0; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { opacity: 1; } + #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { + pointer-events: none; + } } } } } + #mainPopupSet:not(:hover) ~ #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) { + -moz-window-dragging: no-drag; + } @media (prefers-reduced-motion: no-preference) { #nav-bar:not([customizing]) { transition: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) @@ -10788,7 +11345,12 @@ var(--ext-theme-background-transition) !important; } } - #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { + #nav-bar:not([customizing]) #urlbar { + transition: opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay) !important; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { transition-delay: 0s !important; } } @@ -10952,18 +11514,18 @@ min-width: var(--uc-sidebar-activate-width) !important; max-width: var(--uc-sidebar-activate-width) !important; } - :root[inFullscreen="true"] #sidebar-box:not([positionend="true"]) { + :root[inFullscreen="true"] #sidebar-box:not([positionend]) { margin-inline-start: var(--uc-sidebar-fullscreen-margin) !important; will-change: margin-inline-start; } - :root[inFullscreen="true"] #sidebar-box:not([positionend="true"]):is(:hover, :focus-within) { + :root[inFullscreen="true"] #sidebar-box:not([positionend]):is(:hover, :focus-within) { margin-inline-start: 0 !important; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"] { + :root[inFullscreen="true"] #sidebar-box[positionend] { margin-inline-end: var(--uc-sidebar-fullscreen-margin) !important; will-change: margin-inline-end; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"]:is(:hover, :focus-within) { + :root[inFullscreen="true"] #sidebar-box[positionend]:is(:hover, :focus-within) { margin-inline-end: 0 !important; } @media (prefers-reduced-motion: no-preference) { @@ -10980,7 +11542,7 @@ transition: margin-inline-start var(--uc-autohide-fullscreen-sidebar-speed) var(--animation-easing-function) var(--uc-autohide-sidebar-delay) !important; } - :root[inFullscreen="true"] #sidebar-box[positionend="true"] { + :root[inFullscreen="true"] #sidebar-box[positionend] { transition-property: margin-inline-end !important; } :root[inFullscreen="true"] #sidebar-box:is(:hover, :focus-within), @@ -11214,7 +11776,7 @@ } } @supports selector(:has(a)) { - :root:has(#sidebar-box[positionend="true"]) { + :root:has(#sidebar-box[positionend]) { --uc-sidebar-icon: url("chrome://browser/skin/sidebars-right.svg"); --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars.svg"); } @@ -11533,6 +12095,17 @@ background-size: 16px !important; background-image: var(--avatar-image-url) !important; } + #appMenu-profiles-button > image, + #appMenu-empty-profiles-button > image { + fill: transparent !important; + } + #appMenu-empty-profiles-button, + #PanelUI-fxa-menu-empty-profiles-button { + list-style-image: url("chrome://browser/content/profiles/assets/16_heart.svg"); + } + #profiles-manage-profiles-button { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } #new-tab-button { list-style-image: var(--uc-new-tab-icon) !important; } @@ -11753,7 +12326,8 @@ #PanelUI-signedin-panel[hidden="true"] + #PanelUI-fxa-cta-menu #PanelUI-products-separator { display: none; } - #PanelUI-fxa-menu > :first-child { + #PanelUI-fxa-menu > :first-child, + #fxa-manage-account-button { order: -1; -moz-box-ordinal-group: 0; } @@ -11768,6 +12342,21 @@ .sendToDevice-device.subviewbutton.sync-menuitem.sendtab-target:not([clientType]) { list-style-image: url("chrome://global/skin/icons/settings.svg"); } + .sendToDevice-device[clientType="phone"] { + list-style-image: url("../icons/device-phone.svg") !important; + } + .sendToDevice-device[clientType="tablet"] { + list-style-image: url("../icons/device-tablet.svg") !important; + } + .sendToDevice-device[clientType="desktop"] { + list-style-image: url("../icons/device-desktop.svg") !important; + } + .sendToDevice-device[clientType="tv"] { + list-style-image: url("../icons/device-tv.svg") !important; + } + .sendToDevice-device[clientType="vr"] { + list-style-image: url("../icons/device-vr.svg") !important; + } /*= Panel - Bookmark =========================================================*/ #panelMenuBookmarkThisPage { list-style-image: url("chrome://browser/skin/bookmark-hollow.svg"); @@ -11922,6 +12511,9 @@ #allTabsMenu-searchTabs { list-style-image: url("chrome://global/skin/icons/search-glass.svg"); } + #allTabsMenu-syncedTabs { + list-style-image: url("../icons/synced-tabs.svg"); + } #allTabsMenu-closeDuplicateTabs { list-style-image: var(--uc-tab-close-duplicate-icon); } @@ -11974,6 +12566,9 @@ fill: currentColor; margin-inline-end: 1em; } + #protections-popup-report-broken-site-button { + list-style-image: url("chrome://global/skin/icons/lightbulb.svg"); + } #protections-popup-settings-button > .protections-popup-settings-icon, #protections-popup-multiView .panel-subview-footer-button { list-style-image: url("chrome://global/skin/icons/settings.svg"); @@ -12018,6 +12613,12 @@ #sidebar-switcher-tabs:is(menuitem) { --menuitem-image: url("../icons/synced-tabs.svg"); } + #sidebar-switcher-genai-chat.subviewbutton { + list-style-image: url("chrome://mozapps/skin/extensions/category-discover.svg"); + } + #sidebar-switcher-genai-chat:is(menuitem) { + --menuitem-image: url("chrome://mozapps/skin/extensions/category-discover.svg"); + } #sidebar-reverse-position.subviewbutton { list-style-image: var(--uc-sidebar-icon-reverse); } @@ -12030,6 +12631,44 @@ #sidebarMenu-popup > *:is(menuitem)[data-l10n-id="sidebar-menu-close"] { --menuitem-image: url("chrome://global/skin/icons/close.svg"); } + /*= sidebar-context-menu =====================================================*/ + #sidebar-context-menu-manage-extension { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + #sidebar-context-menu-remove-extension { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #sidebar-context-menu-report-extension { + --menuitem-image: url("../icons/send.svg"); + } + #sidebar-context-menu-unpin-extension { + --menuitem-image: url("../icons/unpin-tab.svg"); + } + #sidebar-context-menu-hide-sidebar { + --menuitem-image: url("../icons/eye-hide.svg"); + } + #sidebar-context-menu-customize-sidebar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } + #sidebar-context-menu-enable-vertical-tabs { + --menuitem-image: url("chrome://browser/skin/sidebar-collapsed.svg"); + } + /*= chrome://browser/content/syncedtabs/sidebar.xhtml ========================*/ + .item.client[clientType="phone"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-phone.svg") !important; + } + .item.client[clientType="tablet"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-tablet.svg") !important; + } + .item.client[clientType="desktop"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-desktop.svg") !important; + } + .item.client[clientType="tv"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-tv.svg") !important; + } + .item.client[clientType="vr"] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-vr.svg") !important; + } /*= unified-extensions-view ===================================================*/ #unified-extensions-manage-extensions { list-style-image: url("chrome://mozapps/skin/extensions/extension.svg"); @@ -12051,7 +12690,9 @@ menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, #main-menubar > menu { -moz-appearance: none !important; /* Linux: menulist */ } @@ -12070,10 +12711,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -12083,10 +12726,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -12097,7 +12742,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -12155,10 +12801,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -12168,10 +12816,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -12182,7 +12832,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -12218,6 +12869,20 @@ #main-menubar > menu menupopup { --menuitem-image: none; /* Prevent Image Inheritance */ } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + #main-menubar > menu > :is(.menubar-text, .menu-text) { + transform: translateY(-1px) !important; /* Fix menu top padding position */ + padding-inline-start: 0.3em !important; + } + } + @media (-moz-gtk-csd-available) { + #main-menubar > menu > :is(.menubar-text, .menu-text) { + padding-inline-start: 3px; + } + } @supports not -moz-bool-pref("userChrome.padding.global_menubar") { #main-menubar > menu { padding-block: 2px !important; @@ -12252,10 +12917,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -12265,10 +12932,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -12279,7 +12948,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -12293,6 +12963,9 @@ .menupopup-arrowscrollbox { padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */ } + menupopup[needsgutter] > :is(menu, menuitem) > .menu-icon { + display: none !important; + } } @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), @@ -12327,10 +13000,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -12340,10 +13015,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -12355,7 +13032,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -12369,6 +13047,9 @@ .menupopup-arrowscrollbox { padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */ } + menupopup[needsgutter] > :is(menu, menuitem) > .menu-icon { + display: none !important; + } } } } @@ -12512,10 +13193,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), menupopup:is( @@ -12525,10 +13208,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) @@ -12539,7 +13224,8 @@ #context-sendpagetodevice-popup, #context-sendlinktodevice-popup, #frame > menupopup, - #spell-dictionaries-menu + #spell-dictionaries-menu, + #context-ask-chat > menupopup ) > menuitem:not([type="checkbox"][checked="true"], [type="radio"]), .openintabs-menuitem, @@ -12557,8 +13243,11 @@ --context-menu-background-padding-default: 6px; --context-menu-text-padding: 21px; } - #main-menubar > menu > .menubar-text { - padding-inline-start: 3px; + .menu-icon { + display: unset !important; + } + #main-menubar > menu > .menu-icon { + display: none !important; } } /* Padding - Mac */ @@ -12597,10 +13286,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menuitem:not(.menuitem-iconic, .bookmark-item), menupopup:is( @@ -12610,10 +13301,12 @@ #goPopup, #historyMenuPopup, #bookmarksMenuPopup, + #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, - #usercssloader-menupopup + #usercssloader-menupopup, + #sidebar-context-menu ) menu:not(.menu-iconic) { list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; @@ -12666,10 +13359,14 @@ (-moz-os-version: windows-win10), (-moz-platform: windows) { /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; padding-inline-start: var(--bookmark-menu-icon-text-padding) !important; background-position: var(--uc-menu-background-position) var(--bookmark-menu-icon-background-padding) center !important; @@ -12697,26 +13394,44 @@ margin-inline-start: -1px !important; } /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--context-menu-background-padding) + 2px) !important; } @supports -moz-bool-pref("userChrome.theme.non_native_menu") { - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar + menupopup[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; } } menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] - menuitem:not(.menuitem-iconic, [disabled="true"]) + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) .menu-text, - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) .menu-text { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + .menu-text { margin-inline-start: var(--context-menu-text-padding) !important; } } @@ -12727,20 +13442,32 @@ padding-inline: var(--arrowpanel-menuitem-padding-inline) !important; } /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 3px) !important; } - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) { padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 1px) !important; } menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] - menuitem:not(.menuitem-iconic, [disabled="true"]) + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) > .menu-text, - menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) > .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) > .menu-text, - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) > .menu-text { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text, + #PersonalToolbar + menupopup[placespopup="true"] + menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden="true"])) + > .menu-text { padding-inline-start: var(--context-menu-mac-padding) !important; } } @@ -12768,8 +13495,13 @@ #sidebartabs_asamuzak_jp-menuitem-_reloadAllTabs { --menuitem-image: url("../icons/reload.svg"); } + #context_playTab, + #context_playSelectedTabs { + --menuitem-image: url("../icons/play-fill.svg"); + } #context_toggleMuteTab, #context_toggleMuteSelectedTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab[label="Mute Tab"], #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-mute, #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab, #sidebartabs_asamuzak_jp-menuitem-_muteTab { @@ -12778,6 +13510,7 @@ } #context_toggleMuteTab[muted], #context_toggleMuteSelectedTabs[muted], + #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab[label="Unmute Tab"], #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-unmute, #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab[label="Unmute Tab"], #sidebartabs_asamuzak_jp-menuitem-_muteTab[label="Unmute Tab"] { @@ -12797,6 +13530,12 @@ #sidebartabs_asamuzak_jp-menuitem-_pinTab[label="Unpin Tab"] { --menuitem-image: url("../icons/unpin-tab.svg"); } + #treestyletab_piro_sakura_ne_jp-menuitem-_context_topLevel_toggleSticky[label="Stick Tab to Edges"] { + --menuitem-image: url("../icons/align-distribute-top.svg"); + } + #treestyletab_piro_sakura_ne_jp-menuitem-_context_topLevel_toggleSticky[label="Unstick Tab to Edges"] { + --menuitem-image: url("../icons/align-space-evenly-vertical.svg"); + } #context_duplicateTab, #context_duplicateTabs, #treestyletab_piro_sakura_ne_jp-menuitem-_context_duplicateTab, @@ -12858,6 +13597,7 @@ --menuitem-image: url("chrome://global/skin/icons/close.svg"); } @supports -moz-bool-pref("userChrome.icon.menu.full") { + #treestyletab_piro_sakura_ne_jp-menuitem-_context_closeDuplicatedTabs, #context_closeDuplicateTabs { --menuitem-image: var(--uc-tab-close-duplicate-icon); } @@ -12927,6 +13667,12 @@ #toolbar-context-undoCloseTab { --menuitem-image: url("../icons/undo.svg"); } + #toolbar-context-customize-sidebar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } + #toolbar-context-toggle-vertical-tabs { + --menuitem-image: url("chrome://browser/skin/sidebar-collapsed.svg"); + } #toggle_toolbar-menubar { /* checkbox */ --menuitem-image: url("../icons/calendar-agenda.svg"); @@ -12963,7 +13709,7 @@ } } #tm-renameTab { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #tm-copyTabUrl { --menuitem-image: url("../icons/link.svg"); @@ -13222,6 +13968,9 @@ #context-translate-selection { --menuitem-image: url("../icons/translations.svg"); } + #context-ask-chat { + --menuitem-image: url("../icons/chat-sparkle.svg"); + } #frame { --menuitem-image: url("../icons/command-frames.svg"); } @@ -13271,6 +14020,35 @@ --menuitem-image: url("chrome://browser/skin/bookmark.svg"); } } + /*= context-ask-chat =========================================================*/ + #ask-chat-shortcuts .toolbarbutton-icon { + order: -1; + margin-inline-end: var(--arrowpanel-menuitem-margin-inline) !important; + } + #ask-chat-shortcuts .subviewbutton:nth-child(1) { + list-style-image: url("../icons/apps-list-detail.svg"); + } + #ask-chat-shortcuts .subviewbutton:nth-child(2) { + list-style-image: url("../icons/code-text.svg"); + } + #ask-chat-shortcuts .subviewbutton:nth-child(3) { + list-style-image: url("../icons/tetris-app.svg"); + } + #ask-chat-shortcuts .subviewbutton:nth-child(4) { + list-style-image: url("../icons/arrow-up-exclamation.svg"); + } + #context-ask-chat menuitem:nth-child(1) { + --menuitem-image: url("../icons/apps-list-detail.svg"); + } + #context-ask-chat menuitem:nth-child(2) { + --menuitem-image: url("../icons/code-text.svg"); + } + #context-ask-chat menuitem:nth-child(3) { + --menuitem-image: url("../icons/tetris-app.svg"); + } + #context-ask-chat menuitem:nth-child(4) { + --menuitem-image: url("../icons/arrow-up-exclamation.svg"); + } /*= main-context-menu-frame ==================================================*/ #context-showonlythisframe { --menuitem-image: url("../icons/eye-show.svg"); @@ -13409,7 +14187,7 @@ #placesContext_show_bookmark\:info, #placesContext_show\:info, #placesContext_show_folder\:info { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #placesContext_deleteBookmark, #placesContext_deleteFolder, @@ -13473,7 +14251,7 @@ --menuitem-image: url("chrome://global/skin/icons/check.svg"); } #blockedPopupOptions > menuitem[oncommand="gPopupBlockerObserver.editPopupSettings();"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #blockedPopupDontShowMessage { /* checkbox */ @@ -13688,6 +14466,9 @@ --menuitem-image: url("../icons/send.svg"); } /*= urlbarView-result-menu ===================================================*/ + .urlbarView-result-menuitem[data-command="trendingblock"] { + --menuitem-image: url("../icons/eye-hide.svg"); + } .urlbarView-result-menuitem[data-command="dismiss"] { --menuitem-image: url("chrome://global/skin/icons/delete.svg"); } @@ -13715,7 +14496,7 @@ --menuitem-image: url("../icons/mail-inbox-all.svg"); } #edit-menu { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #view-menu { --menuitem-image: url("../icons/content-view.svg"); @@ -13726,6 +14507,10 @@ #bookmarksMenu { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); } + #profiles-menu:is(menu) { + fill: transparent !important; + --menuitem-image: url("chrome://browser/content/profiles/assets/16_heart.svg"); + } #tools-menu { --menuitem-image: url("../icons/toolbox.svg"); } @@ -13735,6 +14520,18 @@ #helpMenu { --menuitem-image: url("chrome://global/skin/icons/help.svg"); } + /*= Others ===================================================================*/ + #alltabs-button { + list-style-image: url("chrome://global/skin/icons/arrow-down.svg") !important; + } + #alltabs-button > .toolbarbutton-badge-stack > .toolbarbutton-icon { + /* Original + width: 20px; + margin: -2px; + */ + width: 16px !important; + margin: 0 !important; + } } @supports -moz-bool-pref("userChrome.icon.global_menu") { /** Global Menu ***************************************************************/ @@ -13933,6 +14730,10 @@ #menu_searchBookmarks { --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); } + /*= menu_ProfilesPopup =======================================================*/ + #menu_manageProfiles { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } /*= menu_ToolsPopup ==========================================================*/ #menu_openDownloads { --menuitem-image: url("chrome://browser/skin/downloads/downloads.svg"); @@ -14113,6 +14914,10 @@ { content: url("../icons/developer.svg") !important; } + .tabbrowser-tab:is([image="chrome://browser/skin/controlcenter/dashboard.svg"]) .tab-icon-image + { + content: url("../icons/dashboard.svg") !important; + } } /** Icons for fork browsers ***************************************************/ /*= Waterfox =================================================================*/ @@ -14131,6 +14936,9 @@ menuitem.privatetab-icon { --menuitem-image: url("../icons/private-favicon.svg"); } + #sidebar_waterfox_net-menuitem-_openAllBookmarksWithStructure { + --menuitem-image: url("../icons/organization-horizontal.svg"); + } } /*= Tor Browser ==============================================================*/ @supports -moz-bool-pref("userChrome.icon.panel") { @@ -14193,7 +15001,7 @@ --menuitem-image: url("chrome://global/skin/icons/reload.svg"); } #usercssloader-submenupopup > menuitem[data-l10n-id="make-browsercss-file"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #usercssloader-submenupopup > menuitem[data-l10n-id="open-css-folder"] { --menuitem-image: var(--uc-folder-icon); diff --git a/css/leptonContent.css b/css/leptonContent.css index 7e5a57a..d8e968d 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -42,6 +42,9 @@ box-sizing: content-box; padding: 0 !important; } + button[data-l10n-id="addon-updates-manual-updates-found"] { + height: 100%; + } #categories { padding-inline-end: 1px !important; /* Original: 4px */ } @@ -53,7 +56,7 @@ } /** Video player **************************************************************/ /* Control Bar Size */ -@supports -moz-bool-pref("userContent.player.size") { +@media -moz-pref("userContent.player.size") { #controlsContainer { --controlBar-height: 40px; /* Original: 40px, Replace to this value */ } @@ -79,7 +82,7 @@ } } /* Control Bar UI */ -@supports -moz-bool-pref("userContent.player.ui") { +@media -moz-pref("userContent.player.ui") { audio { --duration-color: #929292; /* Like Original */ --media-background: rgba(26, 26, 26, 0.8); /* Like Original */ @@ -113,7 +116,7 @@ #controlsContainer .duration { color: var(--duration-color) !important; /* Original: #929292 */ } - @supports -moz-bool-pref("userContent.player.ui.twoline") { + @media -moz-pref("userContent.player.ui.twoline") { audio { /* #controlsContainer .controlBar */ --controlBar-flex-wrap: unset; @@ -203,7 +206,7 @@ } } } -@supports -moz-bool-pref("userContent.player.icon") { +@media -moz-pref("userContent.player.icon") { #controlsContainer .fullscreenButton { background-image: url("../icons/enter-fullscreen.svg") !important; } @@ -211,14 +214,14 @@ background-image: url("../icons/exit-fullscreen.svg") !important; } } -@supports -moz-bool-pref("userContent.player.noaudio") { +@media -moz-pref("userContent.player.noaudio") { #controlsContainer .muteButton[noAudio] { /* Remove volume button at noAudio */ display: none !important; } } /* Click to play UI */ -@supports -moz-bool-pref("userContent.player.click_to_play") { +@media -moz-pref("userContent.player.click_to_play") { #controlsContainer .clickToPlay { cursor: pointer; opacity: 0.65 !important; @@ -232,7 +235,7 @@ } } /* Animation */ -@supports -moz-bool-pref("userContent.player.animate") { +@media -moz-pref("userContent.player.animate") { @media (prefers-reduced-motion: no-preference) { /* Control Bar */ #controlsContainer .controlBar { @@ -264,7 +267,7 @@ /** Activity Stream ***********************************************************/ @-moz-document url("about:home"), url("about:newtab") { /** Activity Stream - Search Focus Border: like URL *************************/ - @supports -moz-bool-pref("userContent.page.field_border") { + @media -moz-pref("userContent.page.field_border") { /* At DarkMode, Color */ body[style*="--newtab-background-color:rgba(28, 27, 34, 1);"], body[style*="--newtab-background-color:rgba(42, 42, 46, 1);"], @@ -282,8 +285,8 @@ /* For Nightly */ --newtab-primary-action-background: var(--newtab-focus-border) !important; } - @supports -moz-bool-pref("userContent.page.proton_color") { - @supports -moz-bool-pref("userContent.page.proton_color.dark_blue_accent") { + @media -moz-pref("userContent.page.proton_color") { + @media -moz-pref("userContent.page.proton_color.dark_blue_accent") { body[style*="--newtab-background-color:rgba(28, 27, 34, 1);"], body[style*="--newtab-background-color:rgba(42, 42, 46, 1);"], body[style*="--newtab-background-color: rgba(42, 42, 46, 1);"], @@ -295,7 +298,7 @@ } } /** Activity Stream - Menu Icons ********************************************/ - @supports -moz-bool-pref("userChrome.icon.context_menu") { + @media -moz-pref("userChrome.icon.context_menu") { .context-menu-list .context-menu-item button { padding-inline-start: 0 !important; } @@ -321,7 +324,7 @@ --menuitem-image: url("../icons/unpin-tab.svg"); } .context-menu-item span[data-l10n-id="newtab-menu-edit-topsites"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } .context-menu-item span[data-l10n-id="newtab-menu-bookmark"] { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); @@ -338,7 +341,7 @@ .context-menu-item span[data-l10n-id="newtab-menu-show-file"] { --menuitem-image: url("chrome://global/skin/icons/folder.svg"); } - @supports -moz-bool-pref("userChrome.icon.library") { + @media -moz-pref("userChrome.icon.library") { .context-menu-item span[data-l10n-id="newtab-menu-show-file"] { --menuitem-image: url("../icons/folder.svg"); } @@ -357,8 +360,13 @@ } } /** Activity Stream - Web Site Icon: full size ******************************/ - @supports -moz-bool-pref("userContent.newTab.full_icon") { + @media -moz-pref("userContent.newTab.full_icon") { + .top-site-outer { + width: 120px !important; /* v135: calc(var(--size-item-large) * 3); */ + } .top-site-outer .tile { + width: 80px !important; /* v135: calc(var(--size-item-large) * 2); */ + height: 80px !important; /* v135: calc(var(--size-item-large) * 2); */ overflow: hidden; } .top-site-outer .icon-wrapper { @@ -371,13 +379,16 @@ } .top-site-outer .context-menu-button { top: 0px !important; /* Original: -20px */ + right: 0px !important; + width: 22px !important; + height: 22px !important; } .top-site-outer .context-menu { top: 16.75px !important; /* Original: 6.75px */ } } /** Activity Stream - Animate ***********************************************/ - @supports -moz-bool-pref("userContent.newTab.animate") { + @media -moz-pref("userContent.newTab.animate") { @media (prefers-reduced-motion: no-preference) { :root { --animation-easing-function: cubic-bezier(0.07, 0.95, 0, 1); @@ -407,7 +418,7 @@ .search-wrapper .search-inner-wrapper > .search-handoff-button:focus { transition: border-color 0.5s var(--animation-easing-function), box-shadow 1s var(--animation-easing-function); } - @supports -moz-bool-pref("userContent.page.field_border") { + @media -moz-pref("userContent.page.field_border") { .search-wrapper .search-inner-wrapper:hover > input, .search-wrapper .search-inner-wrapper:hover > .search-handoff-button { border-color: var(--newtab-primary-action-background) !important; @@ -417,10 +428,11 @@ } } /** Activity Stream - Pocket order to last **********************************/ - @supports -moz-bool-pref("userContent.newTab.pocket_to_last") { + @media -moz-pref("userContent.newTab.pocket_to_last") { .body-wrapper.on { display: flex; - flex-wrap: wrap; + flex-wrap: wrap !important; + flex-direction: row !important; } .body-wrapper.on > .discovery-stream.ds-layout { flex-basis: 100%; @@ -433,7 +445,7 @@ } } /** Activity Stream - Home Search Bar looks like proton *********************/ - @supports -moz-bool-pref("userContent.newTab.searchbar") { + @media -moz-pref("userContent.newTab.searchbar") { /* Dropdown Colors */ #root { --newtab-search-background-color: rgba(255, 255, 255, 1); /* Same as light theme's --panel-background */ @@ -511,7 +523,7 @@ } } /** Activity Stream - Hide Firefox's logo ***********************************/ - @supports -moz-bool-pref("userContent.newTab.hidden_logo") { + @media -moz-pref("userContent.newTab.hidden_logo") { .logo-and-wordmark { display: none !important; } @@ -520,7 +532,7 @@ } } /** Activity Stream - Custom background image *******************************/ - @supports -moz-bool-pref("userContent.newTab.background_image") { + @media -moz-pref("userContent.newTab.background_image") { body::before { content: ""; position: fixed; @@ -541,7 +553,7 @@ } } /** Error Page - Restore illustrations ****************************************/ -@supports -moz-bool-pref("userContent.page.illustration") { +@media -moz-pref("userContent.page.illustration") { @-moz-document url-prefix("about:neterror"), url-prefix("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml"), url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") { /* Illustrations Position */ @@ -648,7 +660,7 @@ } /** Fully Dark Mode ***********************************************************/ /*= Fully Dark Mode - Dark Mode Colors =======================================*/ -@supports -moz-bool-pref("userContent.page.proton_color") { +@media -moz-pref("userContent.page.proton_color") { @-moz-document url-prefix("about:"), url-prefix("chrome://"), url-prefix("https://addons.mozilla.org"), url-prefix("https://support.mozilla.org"), url-prefix("https://accounts.firefox.com"), url-prefix("view-source"), regexp("^((jar:)?file:///).*/$") { /*= Default Colors - Hard Coded ==============================================*/ @@ -835,7 +847,7 @@ --menu-icon-opacity: var(--dark-menu-icon-opacity); } } - @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media -moz-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { :root { /* Override some menu color variables for light browser themes. */ @@ -869,7 +881,15 @@ } } } - @supports -moz-bool-pref("userContent.page.proton_color.dark_blue_accent") { + @media -moz-pref("userContent.page.proton_color.dark_blue_accent") or -moz-pref("userContent.page.proton_color.system_accent") { + :root, + :host(.anonymous-content-host) { + --color-accent-primary: var(--in-content-primary-button-background) !important; + --color-accent-primary-hover: var(--in-content-primary-button-background-hover) !important; + --color-accent-primary-active: light-dark(var(--color-blue-70), var(--color-cyan-20)); + } + } + @media -moz-pref("userContent.page.proton_color.dark_blue_accent") { @media (prefers-color-scheme: dark) { :host, :root { @@ -925,7 +945,7 @@ } } } - @supports -moz-bool-pref("userContent.page.proton_color.system_accent") { + @media -moz-pref("userContent.page.proton_color.system_accent") { :host, :root { --in-content-primary-button-text-color: AccentColorText !important; @@ -933,7 +953,7 @@ --in-content-primary-button-background-hover: color-mix(in srgb, black 10%, AccentColor) !important; --in-content-primary-button-background-active: color-mix(in srgb, black 20%, AccentColor) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { :host, :root { --in-content-primary-button-text-color: HighlightText !important; @@ -945,7 +965,7 @@ } } } -@supports -moz-bool-pref("userContent.page.dark_mode") { +@media -moz-pref("userContent.page.dark_mode") { @media (prefers-color-scheme: dark) { /*= Addons.org =============================================================*/ @-moz-document url-prefix("https://addons.mozilla.org") @@ -1827,7 +1847,7 @@ box-shadow: 0 0 0 3px color-mix(in srgb, var(--in-content-primary-button-background-hover) 80%, transparent) !important; } } - @supports -moz-bool-pref("userContent.page.dark_mode.pdf") { + @media -moz-pref("userContent.page.dark_mode.pdf") { @-moz-document unobservable-document() { @-moz-document regexp("^(?!.*\\.pdf\\?n).*") { #outerContainer { @@ -1847,7 +1867,7 @@ } } /** Fully Proton Mode *********************************************************/ -@supports -moz-bool-pref("userContent.page.proton") { +@media -moz-pref("userContent.page.proton") { /*= Common contents ==========================================================*/ /*= abouts' common ===========================================================*/ @-moz-document url-prefix("about:"), url-prefix("chrome://pippki/content/"), url-prefix("chrome://browser/content/") { @@ -1918,7 +1938,7 @@ /* Ensure font-size isn't overridden by widget styling (e.g. in forms.css) */ font-size: 1em !important; } - @supports -moz-bool-pref("userChrome.rounding.square_button") { + @media -moz-pref("userChrome.rounding.square_button") { button, select, input[type="color"] { @@ -1998,7 +2018,7 @@ margin-inline: 0 6px !important; flex-shrink: 0 !important; /* avoid shrinking inside flex container */ } - @supports -moz-bool-pref("userChrome.rounding.square_checklabel") { + @media -moz-pref("userChrome.rounding.square_checklabel") { input[type="checkbox"] { border-radius: 0 !important; } @@ -2092,7 +2112,7 @@ } } /*= Field Border =============================================================*/ - @supports -moz-bool-pref("userContent.page.field_border") { + @media -moz-pref("userContent.page.field_border") { @media (prefers-reduced-motion: no-preference) { @-moz-document url-prefix("about:") { html|input:is( @@ -2251,14 +2271,31 @@ background-color: var(--in-content-box-background-odd); } } + @-moz-document url-prefix("about:preferences") { + .privacy-extra-information > .custom-option:not(:first-child) { + margin-block: 2px !important; /* Original: 10px */ + } + .extra-information-label:not(:first-child) { + margin-top: 4px !important; /* Original: 19px */ + } + } /*= about:processes ==========================================================*/ - @-moz-document url-prefix("about:processes") { + @-moz-document url-prefix("about:processes"), url-prefix("about:performance") { td.type.favicon[style*='background-image: url("chrome://global/skin/icons/link.svg");'] { background-image: url("../icons/link.svg") !important; } .profiler-icon { - background: url("../icons/performance.svg") no-repeat center !important; + cursor: pointer; + background-image: url("../icons/performance.svg") !important; + background-repeat: no-repeat !important; + background-position: center !important; + color: inherit !important; + } + @media not -moz-pref("userChrome.rounding.square_button") { + .profiler-icon { + border-radius: 8px !important; + } } } @-moz-document url-prefix("about:profiling") { @@ -2266,11 +2303,30 @@ background-image: url("../icons/performance.svg") !important; } } + /*= about:processes ==========================================================*/ + @-moz-document url-prefix("about:support") { + #reset-box-button { + --in-content-focus-outline-color: var(--in-content-danger-button-background) !important; + background-color: var(--in-content-danger-button-background) !important; + color: var(--in-content-primary-button-text-color) !important; + border-color: var(--in-content-primary-button-border-color) !important; + } + #reset-box-button:enabled:hover { + background-color: var(--in-content-danger-button-background-hover) !important; + color: var(--in-content-primary-button-text-color-hover) !important; + border-color: var(--in-content-primary-button-border-hover) !important; + } + #reset-box-button:enabled:hover:active { + background-color: var(--in-content-danger-button-background-active) !important; + color: var(--in-content-primary-button-text-color-active) !important; + border-color: var(--in-content-primary-button-border-active) !important; + } + } /*= chrome://browser/content/places/places.xhtml =============================*/ @-moz-document url("chrome://browser/content/places/places.xhtml") { /** Library - Icons Replace *************************************************/ - @supports -moz-bool-pref("userChrome.icon.library") { + @media -moz-pref("userChrome.icon.library") { /*= Standard Folder - More Visible ===========================================*/ /* on Toolbar and Menus */ :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) @@ -2449,7 +2505,7 @@ background-position: right center; } /*= Proton ===============================================================*/ - @supports -moz-bool-pref("userContent.page.proton") { + @media -moz-pref("userContent.page.proton") { :root { --organizer-color: -moz-DialogText; --organizer-deemphasized-color: GrayText; @@ -2524,7 +2580,7 @@ padding: 5px !important; border-radius: 4px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_button") { + @media -moz-pref("userChrome.rounding.square_button") { #placesToolbar > toolbarbutton { border-radius: 0 !important; } @@ -2541,7 +2597,7 @@ } #placesToolbar > toolbarbutton > .toolbarbutton-icon, #placesMenu > menu > image, - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { -moz-context-properties: fill !important; fill: currentColor !important; } @@ -2556,7 +2612,7 @@ border-radius: 4px !important; margin-inline-end: 2px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_button") { + @media -moz-pref("userChrome.rounding.square_button") { #placesMenu > menu { border-radius: 0 !important; } @@ -2571,7 +2627,7 @@ background-color: var(--organizer-selected-background) !important; color: var(--organizer-selected-color) !important; } - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { margin-block: 0 !important; /* override menu.css */ padding-inline-end: 4px !important; } @@ -2587,7 +2643,7 @@ padding-block: 2px !important; min-height: 24px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_field") { + @media -moz-pref("userChrome.rounding.square_field") { #searchFilter, #detailsPane html|input { border-radius: 0 !important; @@ -2734,7 +2790,7 @@ -moz-context-properties: fill !important; fill: currentColor !important; } - @supports -moz-bool-pref("userChrome.rounding.square_button") { + @media -moz-pref("userChrome.rounding.square_button") { #editBookmarkPanelRows .expander-up, #editBookmarkPanelRows .expander-down { border-radius: 0 !important; @@ -2773,7 +2829,7 @@ min-height: 20px !important; padding-inline: 4px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_field") { + @media -moz-pref("userChrome.rounding.square_field") { #places input { border-radius: 0 !important; } @@ -2796,7 +2852,7 @@ border: 1px solid var(--organizer-border-color) !important; border-radius: 4px !important; } - @supports -moz-bool-pref("userChrome.rounding.square_field") { + @media -moz-pref("userChrome.rounding.square_field") { #editBMPanel_tagsSelectorRow > richlistbox { border-radius: 0 !important; } @@ -2835,7 +2891,7 @@ fill: currentColor !important; color: var(--in-content-primary-button-text-color) !important; background-color: var(--in-content-primary-button-background) !important; - background-image: url("chrome://global/skin/icons/radio.svg") !important; + background-image: url("../icons/radio.svg") !important; border-color: transparent !important; /* Style the button also when printing with "Print Backgrounds" unchecked */ color-adjust: exact !important; @@ -2897,7 +2953,7 @@ color: var(--checkbox-checked-color, AccentColorText) !important; background-color: var(--checkbox-checked-bgcolor, AccentColor) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] > .menu-iconic-icon { color: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !important; @@ -2909,7 +2965,7 @@ color-mix(in srgb, AccentColor 4%, Field) ) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"]:not([disabled="true"]):hover > .menu-iconic-left > .menu-iconic-icon { background-color: var( --checkbox-unchecked-hover-bgcolor, @@ -2923,7 +2979,7 @@ color-mix(in srgb, AccentColor 8%, Field) ) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"]:not([disabled="true"]):hover:active > .menu-iconic-left > .menu-iconic-icon { background-color: var( --checkbox-unchecked-active-bgcolor, @@ -2937,7 +2993,7 @@ color-mix(in srgb, currentColor 12.5%, AccentColor) ) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"]:not([disabled="true"]):hover > .menu-iconic-left[checked="true"] > .menu-iconic-icon { @@ -2955,7 +3011,7 @@ color-mix(in srgb, currentColor 25%, AccentColor) ) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"]:not([disabled="true"]):hover:active > .menu-iconic-left[checked="true"] > .menu-iconic-icon { @@ -2969,7 +3025,7 @@ outline: 2px solid var(--focus-outline-color, AccentColor) !important; outline-offset: var(--focus-outline-offset, 2px) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"]:focus > .menu-iconic-left > .menu-iconic-icon { outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; } @@ -2979,7 +3035,7 @@ /* color will set the border-color on the check due to how HCM works for in-content pages. */ color: var(--checkbox-checked-border-color, color-mix(in srgb, AccentColor 4%, Field)) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"]:not([disabled="true"]) > .menu-iconic-left > .menu-iconic-icon { /* color will set the border-color on the check due to how HCM works for in-content pages. */ color: var(--checkbox-checked-border-color, color-mix(in srgb, -moz-accent-color 4%, Field)) !important; @@ -2989,7 +3045,7 @@ color: var(--checkbox-checked-border-color, currentColor) !important; fill: var(--checkbox-checked-color, AccentColorText) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] { fill: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; } @@ -3003,7 +3059,7 @@ color: var(--checkbox-checked-border-color-hover, AccentColorText) !important; fill: var(--checkbox-checked-border-color-hover, AccentColorText) !important; } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + @media -moz-pref("userChrome.compatibility.accent_color") { menuitem[type="checkbox"]:not([disabled="true"]):hover:active > .menu-iconic-left[checked="true"] > .menu-iconic-icon, @@ -3036,7 +3092,7 @@ } } /** Rounding ******************************************************************/ -@supports -moz-bool-pref("userChrome.rounding.square_button") { +@media -moz-pref("userChrome.rounding.square_button") { .all-buttons-container, .highlight-buttons > button, .cancel-shot, @@ -3086,14 +3142,14 @@ } } } -@supports -moz-bool-pref("userChrome.rounding.square_dialog") { +@media -moz-pref("userChrome.rounding.square_dialog") { @-moz-document url("about:home"), url("about:newtab") { .modal { border-radius: 0 !important; } } } -@supports -moz-bool-pref("userChrome.rounding.square_checklabel") { +@media -moz-pref("userChrome.rounding.square_checklabel") { @-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$") { input[type="checkbox"]:not(.toggle-button), @@ -3102,7 +3158,7 @@ } } } -@supports -moz-bool-pref("userChrome.rounding.square_field") { +@media -moz-pref("userChrome.rounding.square_field") { @-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$") { input:is( @@ -3146,7 +3202,7 @@ } } } -@supports -moz-bool-pref("userChrome.rounding.square_menupopup") { +@media -moz-pref("userChrome.rounding.square_menupopup") { @-moz-document url-prefix("about:"), url-prefix("chrome://") { panel, @@ -3176,7 +3232,7 @@ } } } -@supports -moz-bool-pref("userChrome.rounding.square_infobox") { +@media -moz-pref("userChrome.rounding.square_infobox") { @-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$") { /* @@ -3208,7 +3264,7 @@ } } @-moz-document url-prefix("about:"), regexp(".*.pdf$") { - @supports -moz-bool-pref("userChrome.rounding.square_dialog") { + @media -moz-pref("userChrome.rounding.square_dialog") { dialog, .dialogBox { border-radius: 0 !important; @@ -3218,7 +3274,7 @@ @-moz-document url("chrome://browser/content/places/places.xhtml") { /*= Library ==============================================================*/ - @supports -moz-bool-pref("userChrome.rounding.square_button") { + @media -moz-pref("userChrome.rounding.square_button") { #placesToolbar > toolbarbutton, #placesMenu > menu, #editBookmarkPanelRows .expander-up, @@ -3226,7 +3282,7 @@ border-radius: 0 !important; } } - @supports -moz-bool-pref("userChrome.rounding.square_field") { + @media -moz-pref("userChrome.rounding.square_field") { #searchFilter, #detailsPane html|input, #places input #editBMPanel_tagsSelectorRow > richlistbox { @@ -3235,7 +3291,7 @@ } } /** Monospace *****************************************************************/ -@supports -moz-bool-pref("userContent.page.monospace") { +@media -moz-pref("userContent.page.monospace") { @-moz-document url-prefix("about:"), url-prefix("chrome://"), regexp("^((jar:)?file:///).*/$") { * { @@ -3244,14 +3300,17 @@ } } /** Menu - Icons Layout *******************************************************/ -@supports not -moz-bool-pref("userChrome.icon.disabled") { - @supports -moz-bool-pref("userChrome.icon.menu") { - :root { - --uc-folder-icon: url("chrome://global/skin/icons/folder.svg"); - } - @supports -moz-bool-pref("userChrome.icon.library") { +@media not -moz-pref("userChrome.icon.disabled") { + @media -moz-pref("userChrome.icon.menu") { + @-moz-document url-prefix("about:"), url-prefix("chrome://"), regexp("^((jar:)?file:///).*/$") + { :root { - --uc-folder-icon: url("../icons/folder.svg"); + --uc-folder-icon: url("chrome://global/skin/icons/folder.svg"); + } + @media -moz-pref("userChrome.icon.library") { + :root { + --uc-folder-icon: url("../icons/folder.svg"); + } } } @-moz-document url("chrome://browser/content/places/places.xhtml"), url("about:downloads") @@ -3259,7 +3318,9 @@ menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, - menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon { + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon { -moz-appearance: none !important; /* Linux: menulist */ } menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) @@ -3279,7 +3340,7 @@ background-image: var(--menuitem-image); } /* For native context menus */ - @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + @media -moz-pref("widget.macos.native-context-menus") or -moz-pref("widget.gtk.native-context-menus") { :not(menu, #ContentSelectDropdown) > menupopup:not(.in-menulist) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -3332,7 +3393,7 @@ } } @media (-moz-platform: windows), (-moz-gtk-csd-available) { - @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media -moz-pref("userChrome.theme.non_native_menu") { @media (-moz-platform: windows) and (-moz-gtk-csd-available), (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { :root { @@ -3375,6 +3436,12 @@ --context-menu-background-padding-default: 6px; --context-menu-text-padding: 21px; } + .menu-icon { + display: unset !important; + } + #main-menubar > menu > .menu-icon { + display: none !important; + } /* Contextmenu Checkbox Unset */ menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"] { margin-inline: 0 !important; @@ -3382,19 +3449,25 @@ menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"] > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem[type="checkbox"] + > .menu-icon { margin-inline-end: 0 !important; } menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"]:not([checked="true"]) > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem[type="checkbox"]:not([checked="true"]) + > .menu-icon { border: none !important; background-color: unset !important; } } /* Padding - Mac */ - @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @media -moz-pref("layout.css.osx-font-smoothing.enabled") { :root { --context-menu-background-padding-default: 10px; --context-menu-mac-padding: 21px; @@ -3424,7 +3497,7 @@ } } /*= Context Menu ===========================================================*/ - @supports -moz-bool-pref("userChrome.icon.context_menu") { + @media -moz-pref("userChrome.icon.context_menu") { /* Icon lists */ /*= downloadsContextMenu =====================================================*/ .downloadPauseMenuItem { @@ -3493,7 +3566,7 @@ #placesContext_show_bookmark\:info, #placesContext_show\:info, #placesContext_show_folder\:info { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #placesContext_deleteBookmark, #placesContext_deleteFolder, @@ -3543,7 +3616,7 @@ --menuitem-image: url("../icons/movetowindow-16.svg"); } } - @supports -moz-bool-pref("userChrome.icon.global_menu") { + @media -moz-pref("userChrome.icon.global_menu") { /*= organizeButtonPopup ======================================================*/ #newbookmark { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); @@ -3557,7 +3630,7 @@ #orgUndo { --menuitem-image: url("../icons/undo.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #orgRedo { --menuitem-image: url("../icons/redo.svg"); } @@ -3591,7 +3664,7 @@ #backupBookmarks { --menuitem-image: url("../icons/datastore.svg"); } - @supports -moz-bool-pref("userChrome.icon.menu.full") { + @media -moz-pref("userChrome.icon.menu.full") { #fileRestoreMenu { --menuitem-image: url("../icons/datarestore.svg"); } @@ -3608,8 +3681,8 @@ } } @-moz-document url-prefix("about:addons") { - @supports -moz-bool-pref("userChrome.icon.context_menu") { - button[role="menuitem"] { + @media -moz-pref("userChrome.icon.context_menu") { + button:is([role="menuitem"], [role="menuitemcheckbox"]) { background-image: var(--icon, url("../icons/blank.svg")); /* Don't use !important. because of [checked] */ } panel-item[action="check-for-updates"] { @@ -3638,7 +3711,7 @@ } } @-moz-document url-prefix("about:logins") { - @supports -moz-bool-pref("userChrome.icon.context_menu") { + @media -moz-pref("userChrome.icon.context_menu") { .menuitem-export { background-image: url("../icons/toolbarButton-download.svg") !important; } @@ -3649,7 +3722,7 @@ /** Download Panel ************************************************************/ @-moz-document url-prefix("about:downloads") { @media (prefers-reduced-motion: no-preference) { - @supports -moz-bool-pref("userChrome.decoration.download_panel") { + @media -moz-pref("userChrome.decoration.download_panel") { /* Accent Color for downloaded item */ #downloadsListBox .download-state[exists] .downloadDetails { color: var(--button-primary-bgcolor); @@ -3670,8 +3743,7 @@ } } } -} -/*@ NIGHTLY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ +} /*@ DEPRECATED @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /** Compatibility *************************************************************/ @-moz-document url-prefix("about:preferences") { .content-blocking-warning.info-box-container > hbox > .content-blocking-warning-image { @@ -3714,6 +3786,9 @@ box-sizing: content-box; padding: 0 !important; } + button[data-l10n-id="addon-updates-manual-updates-found"] { + height: 100%; + } #categories { padding-inline-end: 1px !important; /* Original: 4px */ } @@ -3993,7 +4068,7 @@ --menuitem-image: url("../icons/unpin-tab.svg"); } .context-menu-item span[data-l10n-id="newtab-menu-edit-topsites"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } .context-menu-item span[data-l10n-id="newtab-menu-bookmark"] { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); @@ -4038,7 +4113,12 @@ } /** Activity Stream - Web Site Icon: full size ******************************/ @media (-moz-bool-pref: "userContent.newTab.full_icon") { + .top-site-outer { + width: 120px !important; /* v135: calc(var(--size-item-large) * 3); */ + } .top-site-outer .tile { + width: 80px !important; /* v135: calc(var(--size-item-large) * 2); */ + height: 80px !important; /* v135: calc(var(--size-item-large) * 2); */ overflow: hidden; } .top-site-outer .icon-wrapper { @@ -4051,6 +4131,9 @@ } .top-site-outer .context-menu-button { top: 0px !important; /* Original: -20px */ + right: 0px !important; + width: 22px !important; + height: 22px !important; } .top-site-outer .context-menu { top: 16.75px !important; /* Original: 6.75px */ @@ -4093,12 +4176,12 @@ border-color: var(--newtab-primary-action-background) !important; transition: border-color 0.5s var(--animation-easing-function); } - } - /** Activity Stream - Pocket order to last **********************************/ + } /** Activity Stream - Pocket order to last **********************************/ @media (-moz-bool-pref: "userContent.newTab.pocket_to_last") { .body-wrapper.on { display: flex; - flex-wrap: wrap; + flex-wrap: wrap !important; + flex-direction: row !important; } .body-wrapper.on > .discovery-stream.ds-layout { flex-basis: 100%; @@ -4559,6 +4642,15 @@ --menu-icon-opacity: var(--dark-menu-icon-opacity); } } + @media (-moz-bool-pref: "userContent.page.proton_color") and (-moz-bool-pref: "userContent.page.proton_color.dark_blue_accent"), + (-moz-bool-pref: "userContent.page.proton_color") and (-moz-bool-pref: "userContent.page.proton_color.system_accent") { + :root, + :host(.anonymous-content-host) { + --color-accent-primary: var(--in-content-primary-button-background) !important; + --color-accent-primary-hover: var(--in-content-primary-button-background-hover) !important; + --color-accent-primary-active: light-dark(var(--color-blue-70), var(--color-cyan-20)); + } + } @media (-moz-bool-pref: "userContent.page.proton_color") and (-moz-bool-pref: "userContent.page.proton_color.dark_blue_accent") and (prefers-color-scheme: dark) { :host, :root { @@ -5786,6 +5878,7 @@ /*= about:memory =============================================================*/ /*= about:preferences ========================================================*/ /*= about:processes ==========================================================*/ + /*= about:processes ==========================================================*/ /*= chrome://browser/content/places/places.xhtml =============================*/ } @media (-moz-bool-pref: "userContent.page.proton") and (-moz-bool-pref: "userContent.page.field_border") and (prefers-reduced-motion: no-preference) { @@ -5950,13 +6043,32 @@ } } @media (-moz-bool-pref: "userContent.page.proton") { - @-moz-document url-prefix("about:processes") { + @-moz-document url-prefix("about:preferences") { + .privacy-extra-information > .custom-option:not(:first-child) { + margin-block: 2px !important; /* Original: 10px */ + } + .extra-information-label:not(:first-child) { + margin-top: 4px !important; /* Original: 19px */ + } + } +} +@media (-moz-bool-pref: "userContent.page.proton") { + @-moz-document url-prefix("about:processes"), url-prefix("about:performance") { td.type.favicon[style*='background-image: url("chrome://global/skin/icons/link.svg");'] { background-image: url("../icons/link.svg") !important; } .profiler-icon { - background: url("../icons/performance.svg") no-repeat center !important; + cursor: pointer; + background-image: url("../icons/performance.svg") !important; + background-repeat: no-repeat !important; + background-position: center !important; + color: inherit !important; + } + @media (-moz-bool-pref: "userContent.page.proton") and (not (-moz-bool-pref: "userChrome.rounding.square_button")) { + .profiler-icon { + border-radius: 8px !important; + } } } } @@ -5967,6 +6079,26 @@ } } } +@media (-moz-bool-pref: "userContent.page.proton") { + @-moz-document url-prefix("about:support") { + #reset-box-button { + --in-content-focus-outline-color: var(--in-content-danger-button-background) !important; + background-color: var(--in-content-danger-button-background) !important; + color: var(--in-content-primary-button-text-color) !important; + border-color: var(--in-content-primary-button-border-color) !important; + } + #reset-box-button:enabled:hover { + background-color: var(--in-content-danger-button-background-hover) !important; + color: var(--in-content-primary-button-text-color-hover) !important; + border-color: var(--in-content-primary-button-border-hover) !important; + } + #reset-box-button:enabled:hover:active { + background-color: var(--in-content-danger-button-background-active) !important; + color: var(--in-content-primary-button-text-color-active) !important; + border-color: var(--in-content-primary-button-border-active) !important; + } + } +} @media (-moz-bool-pref: "userContent.page.proton") { @-moz-document url("chrome://browser/content/places/places.xhtml") { @@ -6259,7 +6391,7 @@ @media (-moz-bool-pref: "userContent.page.proton") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userContent.page.proton") { #placesToolbar > toolbarbutton > .toolbarbutton-icon, #placesMenu > menu > image, - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { -moz-context-properties: fill !important; fill: currentColor !important; } @@ -6297,7 +6429,7 @@ } } @media (-moz-bool-pref: "userContent.page.proton") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userContent.page.proton") { - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { margin-block: 0 !important; /* override menu.css */ padding-inline-end: 4px !important; } @@ -6611,7 +6743,7 @@ fill: currentColor !important; color: var(--in-content-primary-button-text-color) !important; background-color: var(--in-content-primary-button-background) !important; - background-image: url("chrome://global/skin/icons/radio.svg") !important; + background-image: url("../icons/radio.svg") !important; border-color: transparent !important; /* Style the button also when printing with "Print Backgrounds" unchecked */ color-adjust: exact !important; @@ -7031,22 +7163,25 @@ } /** Menu - Icons Layout *******************************************************/ @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") { - :root { - --uc-folder-icon: url("chrome://global/skin/icons/folder.svg"); + @-moz-document url-prefix("about:"), url-prefix("chrome://"), regexp("^((jar:)?file:///).*/$") + { + :root { + --uc-folder-icon: url("chrome://global/skin/icons/folder.svg"); + } + @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.library") { + :root { + --uc-folder-icon: url("../icons/folder.svg"); + } + } } -} -@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.library") { - :root { - --uc-folder-icon: url("../icons/folder.svg"); - } -} -@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") { @-moz-document url("chrome://browser/content/places/places.xhtml"), url("about:downloads") { menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, - menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon { + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon { -moz-appearance: none !important; /* Linux: menulist */ } menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) @@ -7158,6 +7293,12 @@ --context-menu-background-padding-default: 6px; --context-menu-text-padding: 21px; } + .menu-icon { + display: unset !important; + } + #main-menubar > menu > .menu-icon { + display: none !important; + } /* Contextmenu Checkbox Unset */ menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"] { margin-inline: 0 !important; @@ -7165,13 +7306,19 @@ menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"] > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem[type="checkbox"] + > .menu-icon { margin-inline-end: 0 !important; } menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"]:not([checked="true"]) > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem[type="checkbox"]:not([checked="true"]) + > .menu-icon { border: none !important; background-color: unset !important; } @@ -7274,7 +7421,7 @@ #placesContext_show_bookmark\:info, #placesContext_show\:info, #placesContext_show_folder\:info { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #placesContext_deleteBookmark, #placesContext_deleteFolder, @@ -7412,11 +7559,9 @@ } } } -} -@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") { @-moz-document url-prefix("about:addons") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { - button[role="menuitem"] { + button:is([role="menuitem"], [role="menuitemcheckbox"]) { background-image: var(--icon, url("../icons/blank.svg")); /* Don't use !important. because of [checked] */ } panel-item[action="check-for-updates"] { @@ -7444,8 +7589,6 @@ } } } -} -@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") { @-moz-document url-prefix("about:logins") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { .menuitem-export { diff --git a/css/leptonContentESR.css b/css/leptonContentESR.css index 40ab7f0..fd77d24 100644 --- a/css/leptonContentESR.css +++ b/css/leptonContentESR.css @@ -42,6 +42,9 @@ box-sizing: content-box; padding: 0 !important; } + button[data-l10n-id="addon-updates-manual-updates-found"] { + height: 100%; + } #categories { padding-inline-end: 1px !important; /* Original: 4px */ } @@ -321,7 +324,7 @@ --menuitem-image: url("../icons/unpin-tab.svg"); } .context-menu-item span[data-l10n-id="newtab-menu-edit-topsites"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } .context-menu-item span[data-l10n-id="newtab-menu-bookmark"] { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); @@ -358,7 +361,12 @@ } /** Activity Stream - Web Site Icon: full size ******************************/ @supports -moz-bool-pref("userContent.newTab.full_icon") { + .top-site-outer { + width: 120px !important; /* v135: calc(var(--size-item-large) * 3); */ + } .top-site-outer .tile { + width: 80px !important; /* v135: calc(var(--size-item-large) * 2); */ + height: 80px !important; /* v135: calc(var(--size-item-large) * 2); */ overflow: hidden; } .top-site-outer .icon-wrapper { @@ -371,6 +379,9 @@ } .top-site-outer .context-menu-button { top: 0px !important; /* Original: -20px */ + right: 0px !important; + width: 22px !important; + height: 22px !important; } .top-site-outer .context-menu { top: 16.75px !important; /* Original: 6.75px */ @@ -420,7 +431,8 @@ @supports -moz-bool-pref("userContent.newTab.pocket_to_last") { .body-wrapper.on { display: flex; - flex-wrap: wrap; + flex-wrap: wrap !important; + flex-direction: row !important; } .body-wrapper.on > .discovery-stream.ds-layout { flex-basis: 100%; @@ -871,6 +883,14 @@ } } } + @supports -moz-bool-pref("userContent.page.proton_color.dark_blue_accent") or -moz-bool-pref("userContent.page.proton_color.system_accent") { + :root, + :host(.anonymous-content-host) { + --color-accent-primary: var(--in-content-primary-button-background) !important; + --color-accent-primary-hover: var(--in-content-primary-button-background-hover) !important; + --color-accent-primary-active: light-dark(var(--color-blue-70), var(--color-cyan-20)); + } + } @supports -moz-bool-pref("userContent.page.proton_color.dark_blue_accent") { @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { :host, @@ -2254,14 +2274,31 @@ background-color: var(--in-content-box-background-odd); } } + @-moz-document url-prefix("about:preferences") { + .privacy-extra-information > .custom-option:not(:first-child) { + margin-block: 2px !important; /* Original: 10px */ + } + .extra-information-label:not(:first-child) { + margin-top: 4px !important; /* Original: 19px */ + } + } /*= about:processes ==========================================================*/ - @-moz-document url-prefix("about:processes") { + @-moz-document url-prefix("about:processes"), url-prefix("about:performance") { td.type.favicon[style*='background-image: url("chrome://global/skin/icons/link.svg");'] { background-image: url("../icons/link.svg") !important; } .profiler-icon { - background: url("../icons/performance.svg") no-repeat center !important; + cursor: pointer; + background-image: url("../icons/performance.svg") !important; + background-repeat: no-repeat !important; + background-position: center !important; + color: inherit !important; + } + @supports not -moz-bool-pref("userChrome.rounding.square_button") { + .profiler-icon { + border-radius: 8px !important; + } } } @-moz-document url-prefix("about:profiling") { @@ -2269,6 +2306,25 @@ background-image: url("../icons/performance.svg") !important; } } + /*= about:processes ==========================================================*/ + @-moz-document url-prefix("about:support") { + #reset-box-button { + --in-content-focus-outline-color: var(--in-content-danger-button-background) !important; + background-color: var(--in-content-danger-button-background) !important; + color: var(--in-content-primary-button-text-color) !important; + border-color: var(--in-content-primary-button-border-color) !important; + } + #reset-box-button:enabled:hover { + background-color: var(--in-content-danger-button-background-hover) !important; + color: var(--in-content-primary-button-text-color-hover) !important; + border-color: var(--in-content-primary-button-border-hover) !important; + } + #reset-box-button:enabled:hover:active { + background-color: var(--in-content-danger-button-background-active) !important; + color: var(--in-content-primary-button-text-color-active) !important; + border-color: var(--in-content-primary-button-border-active) !important; + } + } /*= chrome://browser/content/places/places.xhtml =============================*/ @-moz-document url("chrome://browser/content/places/places.xhtml") { @@ -2544,7 +2600,7 @@ } #placesToolbar > toolbarbutton > .toolbarbutton-icon, #placesMenu > menu > image, - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { -moz-context-properties: fill !important; fill: currentColor !important; } @@ -2574,7 +2630,7 @@ background-color: var(--organizer-selected-background) !important; color: var(--organizer-selected-color) !important; } - #placesMenu > menu > .menubar-text { + #placesMenu > menu > :is(.menubar-text, .menu-text) { margin-block: 0 !important; /* override menu.css */ padding-inline-end: 4px !important; } @@ -2838,7 +2894,7 @@ fill: currentColor !important; color: var(--in-content-primary-button-text-color) !important; background-color: var(--in-content-primary-button-background) !important; - background-image: url("chrome://global/skin/icons/radio.svg") !important; + background-image: url("../icons/radio.svg") !important; border-color: transparent !important; /* Style the button also when printing with "Print Backgrounds" unchecked */ color-adjust: exact !important; @@ -3249,12 +3305,15 @@ /** Menu - Icons Layout *******************************************************/ @supports not -moz-bool-pref("userChrome.icon.disabled") { @supports -moz-bool-pref("userChrome.icon.menu") { - :root { - --uc-folder-icon: url("chrome://global/skin/icons/folder.svg"); - } - @supports -moz-bool-pref("userChrome.icon.library") { + @-moz-document url-prefix("about:"), url-prefix("chrome://"), regexp("^((jar:)?file:///).*/$") + { :root { - --uc-folder-icon: url("../icons/folder.svg"); + --uc-folder-icon: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + :root { + --uc-folder-icon: url("../icons/folder.svg"); + } } } @-moz-document url("chrome://browser/content/places/places.xhtml"), url("about:downloads") @@ -3262,7 +3321,9 @@ menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]), menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, - menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon { + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-icon { -moz-appearance: none !important; /* Linux: menulist */ } menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) @@ -3514,6 +3575,12 @@ --context-menu-background-padding-default: 6px; --context-menu-text-padding: 21px; } + .menu-icon { + display: unset !important; + } + #main-menubar > menu > .menu-icon { + display: none !important; + } /* Contextmenu Checkbox Unset */ menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"] { margin-inline: 0 !important; @@ -3521,13 +3588,19 @@ menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"] > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem[type="checkbox"] + > .menu-icon { margin-inline-end: 0 !important; } menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"]:not([checked="true"]) > .menu-iconic-left - > .menu-iconic-icon { + > .menu-iconic-icon, + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem[type="checkbox"]:not([checked="true"]) + > .menu-icon { border: none !important; background-color: unset !important; } @@ -3632,7 +3705,7 @@ #placesContext_show_bookmark\:info, #placesContext_show\:info, #placesContext_show_folder\:info { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #placesContext_deleteBookmark, #placesContext_deleteFolder, @@ -3748,7 +3821,7 @@ } @-moz-document url-prefix("about:addons") { @supports -moz-bool-pref("userChrome.icon.context_menu") { - button[role="menuitem"] { + button:is([role="menuitem"], [role="menuitemcheckbox"]) { background-image: var(--icon, url("../icons/blank.svg")); /* Don't use !important. because of [checked] */ } panel-item[action="check-for-updates"] { diff --git a/icons/align-distribute-top.svg b/icons/align-distribute-top.svg new file mode 100644 index 0000000..7347d7d --- /dev/null +++ b/icons/align-distribute-top.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/align-space-evenly-vertical.svg b/icons/align-space-evenly-vertical.svg new file mode 100644 index 0000000..9a3318a --- /dev/null +++ b/icons/align-space-evenly-vertical.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/apps-list-detail.svg b/icons/apps-list-detail.svg new file mode 100644 index 0000000..39a1bea --- /dev/null +++ b/icons/apps-list-detail.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/arrow-between-up.svg b/icons/arrow-between-up.svg new file mode 100644 index 0000000..24a77e9 --- /dev/null +++ b/icons/arrow-between-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/arrow-up-exclamation.svg b/icons/arrow-up-exclamation.svg new file mode 100644 index 0000000..e5c57bf --- /dev/null +++ b/icons/arrow-up-exclamation.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/chat-sparkle.svg b/icons/chat-sparkle.svg new file mode 100644 index 0000000..94ab3ef --- /dev/null +++ b/icons/chat-sparkle.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/code-text.svg b/icons/code-text.svg new file mode 100644 index 0000000..f55df35 --- /dev/null +++ b/icons/code-text.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/edit-active.svg b/icons/edit-active.svg new file mode 100644 index 0000000..2a43922 --- /dev/null +++ b/icons/edit-active.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/import.svg b/icons/import.svg new file mode 100644 index 0000000..1746970 --- /dev/null +++ b/icons/import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/organization-horizontal.svg b/icons/organization-horizontal.svg new file mode 100644 index 0000000..73a2630 --- /dev/null +++ b/icons/organization-horizontal.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/play-fill.svg b/icons/play-fill.svg new file mode 100644 index 0000000..59192b0 --- /dev/null +++ b/icons/play-fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/profiler-stopwatch.svg b/icons/profiler-stopwatch.svg new file mode 100644 index 0000000..70de076 --- /dev/null +++ b/icons/profiler-stopwatch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/radio.svg b/icons/radio.svg new file mode 100644 index 0000000..21ec9fd --- /dev/null +++ b/icons/radio.svg @@ -0,0 +1,6 @@ + + + + diff --git a/icons/refresh-cw.svg b/icons/refresh-cw.svg index 8d41f1c..15497e5 100644 --- a/icons/refresh-cw.svg +++ b/icons/refresh-cw.svg @@ -1,9 +1 @@ - - - - - - - - - + diff --git a/icons/tab-audio-blocked-circle-12.svg b/icons/tab-audio-blocked-circle-12.svg new file mode 100644 index 0000000..572ebf2 --- /dev/null +++ b/icons/tab-audio-blocked-circle-12.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/icons/tab-audio-muted-small.svg b/icons/tab-audio-muted-small.svg new file mode 100644 index 0000000..b36c244 --- /dev/null +++ b/icons/tab-audio-muted-small.svg @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/icons/tab-audio-playing-small.svg b/icons/tab-audio-playing-small.svg new file mode 100644 index 0000000..7f95de3 --- /dev/null +++ b/icons/tab-audio-playing-small.svg @@ -0,0 +1,6 @@ + + + + diff --git a/icons/tetris-app.svg b/icons/tetris-app.svg new file mode 100644 index 0000000..ab0ef1b --- /dev/null +++ b/icons/tetris-app.svg @@ -0,0 +1,3 @@ + + + diff --git a/icons/update-circle.svg b/icons/update-circle.svg new file mode 100644 index 0000000..5a216bd --- /dev/null +++ b/icons/update-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/install.sh b/install.sh index 5ba9579..ab47194 100755 --- a/install.sh +++ b/install.sh @@ -344,6 +344,7 @@ firefoxProfileDirPaths=( "${HOME}/.cachy" "${HOME}/.local/opt/tor-browser/app/Browser/TorBrowser/Data/Browser" "${HOME}/.var/app/org.mozilla.firefox/.mozilla/firefox" + "${HOME}/.var/app/io.gitlab.librewolf-community/.librewolf" "${HOME}/snap/firefox/common/.mozilla/firefox" "${HOME}/Library/Application Support/Firefox" "${HOME}/Library/Application Support/Waterfox" diff --git a/package.json b/package.json index cc20d98..d21a81b 100644 --- a/package.json +++ b/package.json @@ -32,5 +32,6 @@ }, "jest": { "testEnvironment": "jest-environment-node-single-context" - } + }, + "packageManager": "yarn@4.5.3" } diff --git a/src/autohide/_common.scss b/src/autohide/_common.scss index 35ed7d7..7909372 100644 --- a/src/autohide/_common.scss +++ b/src/autohide/_common.scss @@ -48,11 +48,11 @@ } @include Has { :root { - &:not([tabsintitlebar]):has(#toolbar-menubar) { + &:not([tabsintitlebar]):not([customtitlebar]):has(#toolbar-menubar) { --uc-menubar-height: var(--uc-menubar-height-default); // text 1rem, menu padding 0.3em } - &[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + &:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="true"]) { @include OS($linux) { --uc-menubar-height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin)); } @@ -63,12 +63,12 @@ --uc-menubar-height: calc(var(--tab-min-height) + var(--tab-block-margin)); } } - &[tabsintitlebar]:has(#toolbar-menubar[autohide="false"]) { + &:is([tabsintitlebar], [customtitlebar]):has(#toolbar-menubar[autohide="false"]) { --uc-menubar-height: var(--uc-titlebar-buttonbox-height); } - &:not([tabsintitlebar]), - &[tabsintitlebar] { + &:not([tabsintitlebar]):not([customtitlebar]), + &:is([tabsintitlebar], [customtitlebar]) { &:has(#toolbar-menubar[autohide="true"][inactive="true"]) { --uc-menubar-height: 0px; } diff --git a/src/autohide/_navbar.scss b/src/autohide/_navbar.scss index 5b7b47b..bb3ee89 100644 --- a/src/autohide/_navbar.scss +++ b/src/autohide/_navbar.scss @@ -1,13 +1,29 @@ @include OneLinerNavbar { #nav-bar:not([customizing]) { margin-bottom: var(--uc-navbar-hide-height); - opacity: 0; - will-change: margin-bottom, opacity; + + // Why use #urlbar? - Prevent URLbar overlay #1028 + &, #urlbar { + opacity: 0; + will-change: margin-bottom, opacity; + } } #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { margin-bottom: 0; - opacity: 1; + + &, #urlbar { + opacity: 1; + } } + // #1028 + #navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) #urlbar { + pointer-events: none; + } +} + +// Drag & Drop Event #820 +#mainPopupSet:not(:hover)~#navigator-toolbox:not(:hover, :focus-within) #nav-bar:not([customizing]) { + -moz-window-dragging: no-drag; } @include Animate { @@ -22,8 +38,14 @@ opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), var(--ext-theme-background-transition) !important; } + + #urlbar { + transition: opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay) !important; + } } #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { - transition-delay: 0s !important; + &, #urlbar { + transition-delay: 0s !important; + } } } diff --git a/src/autohide/_tabbar.scss b/src/autohide/_tabbar.scss index fe377cb..bb334db 100644 --- a/src/autohide/_tabbar.scss +++ b/src/autohide/_tabbar.scss @@ -16,7 +16,8 @@ //------------------------------------------------------------------------------ @include OneLinerTabbar { - :root:not([customizing]) #titlebar { + :root:not([customizing]) #titlebar, + :root:not([customizing]) #navigator-toolbox > #TabsToolbar { margin-bottom: var(--uc-tabbar-hide-height); will-change: margin-bottom; } @@ -28,7 +29,8 @@ } #navigator-toolbox:is(:hover, :focus-within) { - > #titlebar { + > #titlebar, + > #TabsToolbar { margin-bottom: 0px; } #TabsToolbar { diff --git a/src/autohide/sidebar/_static.scss b/src/autohide/sidebar/_static.scss index 3524e72..6742395 100644 --- a/src/autohide/sidebar/_static.scss +++ b/src/autohide/sidebar/_static.scss @@ -11,7 +11,7 @@ } :root[inFullscreen="true"] #sidebar-box { - &:not([positionend="true"]) { + &:not([positionend]) { margin-inline-start: var(--uc-sidebar-fullscreen-margin) !important; will-change: margin-inline-start; @@ -20,7 +20,7 @@ } } - &[positionend="true"] { + &[positionend] { margin-inline-end: var(--uc-sidebar-fullscreen-margin) !important; will-change: margin-inline-end; @@ -45,7 +45,7 @@ :root[inFullscreen="true"] #sidebar-box { transition: margin-inline-start var(--uc-autohide-fullscreen-sidebar-speed) var(--animation-easing-function) var(--uc-autohide-sidebar-delay) !important; - &[positionend="true"] { + &[positionend] { transition-property: margin-inline-end !important; } &:is(:hover, :focus-within), diff --git a/src/combined/_back_forward_button.scss b/src/combined/_back_forward_button.scss index 1379356..884f69b 100644 --- a/src/combined/_back_forward_button.scss +++ b/src/combined/_back_forward_button.scss @@ -3,6 +3,11 @@ @mixin _combined_forward_button() { @if mode.isMediaPref() { + @#{media} #{'-moz-pref("userChrome.combined.urlbar.nav_button") or ((not -moz-pref("userChrome.combined.sub_button.as_normal")) or (-moz-pref("userChrome.combined.nav_button") and -moz-pref("userChrome.combined.urlbar.home_button")))'} { + @content; + } + } + @else if mode.isMediaBoolPref() { @media (-moz-bool-pref: '"userChrome.combined.urlbar.nav_button"'), ((not (-moz-bool-pref: '"userChrome.combined.sub_button.as_normal"')) or ( diff --git a/src/compatibility/_os.scss b/src/compatibility/_os.scss index db4ace7..089d82a 100644 --- a/src/compatibility/_os.scss +++ b/src/compatibility/_os.scss @@ -1,6 +1,6 @@ /*= Windows 10 - Top border of accent color at ESR #358 ======================*/ @include OS($win10) { - :root[sizemode=normal][tabsintitlebar] { + :root[sizemode=normal]:is([tabsintitlebar], [customtitlebar]) { #navigator-toolbox { border-top: .5px solid rgb(47, 47, 47) !important; } @@ -167,31 +167,6 @@ color: inherit !important; /* Original: -moz-menubarhovertext */ background-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* Original: -moz-menuhover */ } - - /*= Linux - Titlebar button at lwtheme =====================================*/ - @include NotOption("userChrome.compatibility.os.linux_non_native_titlebar_button") { - @include lwtheme { - .titlebar-button { - appearance: none !important; - > .toolbarbutton-icon { - appearance: auto !important; - width: unset !important; - height: unset !important; - } - } - .titlebar-min, - .titlebar-max, - .titlebar-restore, - .titlebar-close { - list-style-image: none !important; - } - .titlebar-button, - .titlebar-button:hover:active { - background-color: unset !important; - color: unset !important; - } - } - } } /*= Linux - Light System Default Theme's Selected Tab ========================*/ @@ -231,7 +206,7 @@ $_os_linuxDefaultShadow: 0 0 4px rgba(128, 128, 142, 0.5); /*= Titlebar Container Size at maximized #384 ================================*/ @include OS($win) { - :root[tabsintitlebar] { + :root:is([tabsintitlebar], [customtitlebar]) { @include NotOption("userChrome.compatibility.os.windows_maximized") { #titlebar { // Prevent #476 FF v105 above @@ -263,21 +238,22 @@ $_os_linuxDefaultShadow: 0 0 4px rgba(128, 128, 142, 0.5); // https://github.com/mozilla/gecko-dev/blob/4334cb91a3762ac497c50a1c7b86b8004690229e/browser/themes/windows/browser-aero.css#L71-L81 @include OS($win) { @include WinClassic { - :root[tabsintitlebar][sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { appearance: auto !important; -moz-default-appearance: -moz-window-titlebar !important;; } - :root[tabsintitlebar][sizemode="maximized"]:not(:-moz-lwtheme) #navigator-toolbox { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"]:not(:-moz-lwtheme) #navigator-toolbox { appearance: auto !important;; -moz-default-appearance:-moz-window-titlebar !important;; } - :root[tabsintitlebar]:not(:-moz-lwtheme) #tabbrowser-arrowscrollbox { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-lwtheme) #pinned-tabs-container, + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-lwtheme) #tabbrowser-arrowscrollbox { color: -moz-dialogtext !important; } - :root[tabsintitlebar][sizemode="normal"] #navigator-toolbox:-moz-lwtheme { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #navigator-toolbox:-moz-lwtheme { background-image: linear-gradient( to bottom, ThreeDLightShadow 0, ThreeDLightShadow 1px, @@ -287,3 +263,8 @@ $_os_linuxDefaultShadow: 0 0 4px rgba(128, 128, 142, 0.5); } } } + +/*= MacOS Fullscreen clipping #1045 ==========================================*/ +:root[sizemode="fullscreen"][macOSNativeFullscreen]:not([inDOMFullscreen="true"]) #TabsToolbar { + min-height: var(--tab-min-height, fit-content) !important; +} diff --git a/src/compatibility/_theme.scss b/src/compatibility/_theme.scss index 2cb8861..a987fe4 100644 --- a/src/compatibility/_theme.scss +++ b/src/compatibility/_theme.scss @@ -35,7 +35,7 @@ menu.subviewbutton { } /*= First visible tab margin at maximized #332 ===============================*/ -:root[tabsintitlebar="true"][sizemode="maximized"] #TabsToolbar { +:root:is([tabsintitlebar="true"], [customtitlebar="true"])[sizemode="maximized"] #TabsToolbar { margin-left: -1px; } @@ -135,9 +135,18 @@ menu { } } +#main-window { + background-color: WindowFrame !important; +} +:root[lwtheme][lwtheme-image] #customization-container { + background-image: none !important; +} #customization-container { background-color: transparent !important; /* Original: color-mix(in srgb, -moz-dialog 85%, white) */ } +:root:not([lwtheme]) #customization-container { + background-color: var(--toolbar-non-lwt-bgcolor) !important; +} /*= Findbar Border Color =====================================================*/ html|input.findbar-textbox { @@ -184,7 +193,9 @@ vbox[part="drop-indicator-bar"] > image[part="drop-indicator"] { } /*= Inactive transparent #882 ================================================*/ -:root[tabsintitlebar] #titlebar:-moz-window-inactive { +:root:is([tabsintitlebar], [customtitlebar]) #titlebar:-moz-window-inactive, +:root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar:-moz-window-inactive, +:root:is([tabsintitlebar], [customtitlebar]) #TabsToolbar:-moz-window-inactive { opacity: 1 !important; color: color-mix(in srgb, currentColor calc(var(--inactive-titlebar-opacity, 0.75) * 100%), transparent) !important; --inactive-toolbarbutton-icon-fill-opacity: calc(var(--toolbarbutton-icon-fill-opacity, 1) * var(--inactive-titlebar-opacity, 0.75)); @@ -199,3 +210,16 @@ vbox[part="drop-indicator-bar"] > image[part="drop-indicator"] { --panel-background: var(--arrowpanel-background) !important; /* Original: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)) */ --panel-color: var(--arrowpanel-color) !important; /* Original: var(--tab-selected-textcolor, var(--toolbar-color)) */ } + +/*= Design token =============================================================*/ +:root, :host { + --button-color: var(--button-text-color); + --button-bgcolor: var(--button-background-color); + --button-hover-bgcolor: var(--button-background-color-hover); + --button-active-bgcolor: var(--button-background-color-active); + + --button-primary-color: var(--button-text-color-primary); + --button-primary-bgcolor: var(--button-background-color-primary); + --button-primary-hover-bgcolor: var(--button-background-color-primary-hover); + --button-primary-active-bgcolor: var(--button-background-color-primary-active); +} diff --git a/src/contents/_activity_stream.scss b/src/contents/_activity_stream.scss index 221d1cc..60f41c3 100644 --- a/src/contents/_activity_stream.scss +++ b/src/contents/_activity_stream.scss @@ -36,7 +36,11 @@ /** Activity Stream - Web Site Icon: full size ******************************/ @include Option("userContent.newTab.full_icon") { .top-site-outer { + width: 120px !important; /* v135: calc(var(--size-item-large) * 3); */ + .tile { + width: 80px !important; /* v135: calc(var(--size-item-large) * 2); */ + height: 80px !important; /* v135: calc(var(--size-item-large) * 2); */ overflow: hidden; } @@ -51,6 +55,9 @@ .context-menu-button { top: 0px !important; /* Original: -20px */ + right: 0px !important; + width: 22px !important; + height: 22px !important; } .context-menu { top: 16.75px !important; /* Original: 6.75px */ @@ -112,7 +119,8 @@ @include Option("userContent.newTab.pocket_to_last") { .body-wrapper.on { display: flex; - flex-wrap: wrap; + flex-wrap: wrap !important; + flex-direction: row !important; > .discovery-stream.ds-layout { flex-basis: 100%; diff --git a/src/contents/_compatibility.scss b/src/contents/_compatibility.scss index 3a205d2..031a73d 100644 --- a/src/contents/_compatibility.scss +++ b/src/contents/_compatibility.scss @@ -50,6 +50,9 @@ box-sizing: content-box; padding: 0 !important; } + button[data-l10n-id="addon-updates-manual-updates-found"] { + height: 100%; + } // #911 #categories { diff --git a/src/contents/_context_menu.scss b/src/contents/_context_menu.scss index daec5c7..c4a2e7e 100644 --- a/src/contents/_context_menu.scss +++ b/src/contents/_context_menu.scss @@ -1,6 +1,13 @@ @import "../icons/shared"; -:root { - @include initIcons; + +@include moz-document( + url-prefix "about:", + url-prefix "chrome://", + regexp "^((jar:)?file:\/\/\/).*\/$" +) { + :root { + @include initIcons; + } } @include moz-document( diff --git a/src/contents/_proton_color.scss b/src/contents/_proton_color.scss index 62dfe9c..eedfffa 100644 --- a/src/contents/_proton_color.scss +++ b/src/contents/_proton_color.scss @@ -9,6 +9,16 @@ ) { @import "../theme/proton_color"; + @include Option( + "userContent.page.proton_color.dark_blue_accent", + "userContent.page.proton_color.system_accent" + ) { + :root, :host(.anonymous-content-host) { + --color-accent-primary: var(--in-content-primary-button-background) !important; + --color-accent-primary-hover: var(--in-content-primary-button-background-hover) !important; + --color-accent-primary-active: light-dark(var(--color-blue-70), var(--color-cyan-20)); + } + } @include Option("userContent.page.proton_color.dark_blue_accent") { @include Dark { @import "../theme/dark_blue_color"; diff --git a/src/contents/_proton_contents.scss b/src/contents/_proton_contents.scss index 2a06c7a..ca094dd 100644 --- a/src/contents/_proton_contents.scss +++ b/src/contents/_proton_contents.scss @@ -32,5 +32,8 @@ /*= about:processes ==========================================================*/ @import "proton_contents/about_processes"; +/*= about:processes ==========================================================*/ +@import "proton_contents/about_others"; + /*= chrome://browser/content/places/places.xhtml =============================*/ @import "../library/contents"; diff --git a/src/contents/proton_contents/_about_others.scss b/src/contents/proton_contents/_about_others.scss new file mode 100644 index 0000000..e55a476 --- /dev/null +++ b/src/contents/proton_contents/_about_others.scss @@ -0,0 +1,19 @@ +@include moz-document(url-prefix "about:support") { + #reset-box-button { + --in-content-focus-outline-color: var(--in-content-danger-button-background) !important; + background-color: var(--in-content-danger-button-background) !important; + color: var(--in-content-primary-button-text-color) !important; + border-color: var(--in-content-primary-button-border-color) !important; + + &:enabled:hover { + background-color: var(--in-content-danger-button-background-hover) !important; + color: var(--in-content-primary-button-text-color-hover) !important; + border-color: var(--in-content-primary-button-border-hover) !important; + } + &:enabled:hover:active { + background-color: var(--in-content-danger-button-background-active) !important; + color: var(--in-content-primary-button-text-color-active) !important; + border-color: var(--in-content-primary-button-border-active) !important; + } + } +} diff --git a/src/contents/proton_contents/_about_preferences.scss b/src/contents/proton_contents/_about_preferences.scss index d8a43f1..4ef7326 100644 --- a/src/contents/proton_contents/_about_preferences.scss +++ b/src/contents/proton_contents/_about_preferences.scss @@ -23,3 +23,12 @@ } } } +@include moz-document(url-prefix "about:preferences") { + // #952 + .privacy-extra-information > .custom-option:not(:first-child) { + margin-block: 2px !important; /* Original: 10px */ + } + .extra-information-label:not(:first-child) { + margin-top: 4px !important; /* Original: 19px */ + } +} diff --git a/src/contents/proton_contents/_about_processes.scss b/src/contents/proton_contents/_about_processes.scss index 7d52b32..5a05cdc 100644 --- a/src/contents/proton_contents/_about_processes.scss +++ b/src/contents/proton_contents/_about_processes.scss @@ -1,10 +1,22 @@ -@include moz-document(url-prefix "about:processes") { +@include moz-document( + url-prefix "about:processes", + url-prefix "about:performance" +) { td.type.favicon[style*='background-image: url("chrome://global/skin/icons/link.svg");'] { background-image: url("../icons/link.svg") !important; } .profiler-icon { - background: url("../icons/performance.svg") no-repeat center !important; + cursor: pointer; + background-image: url("../icons/performance.svg") !important; + background-repeat: no-repeat !important; + background-position: center !important; + @include NotOption("userChrome.rounding.square_button") { + border-radius: 8px !important; + } + + // #960 + color: inherit !important; } } diff --git a/src/decoration/_animate.scss b/src/decoration/_animate.scss index 640fd27..3077987 100644 --- a/src/decoration/_animate.scss +++ b/src/decoration/_animate.scss @@ -64,7 +64,12 @@ } /*- URL / Search Bar -------------------------------------------------------*/ -#urlbar-background, +#urlbar-background { + transition: border-color 1s var(--animation-easing-function), background-color 0.5s var(--animation-easing-function) !important; + &:hover { + transition: border-color 0.5s var(--animation-easing-function), background-color 0.5s var(--animation-easing-function) !important; + } +} #searchbar { transition: border-color 1s var(--animation-easing-function), background-color 1.5s var(--animation-easing-function) !important; &:hover { @@ -114,16 +119,14 @@ xul|search-textbox.tabsFilter, max-width: 36em; /* Animation */ - transition: margin-inline-start 0.25s var(--animation-easing-function), opacity 0.25s ease-in-out, - visibility 0s linear !important; - will-change: margin-inline-start, opacity, visibility; + transition: margin-inline-start 0.25s var(--animation-easing-function), visibility 0s linear !important; + will-change: margin-inline-start, visibility; &[hidden="true"] { @include Box(true); margin-inline-start: -18em; - opacity: 0; visibility: collapse; - transition-delay: 0s, 0s, 0.25s !important; + transition-delay: 0s, 0.25s !important; } } } diff --git a/src/fullscreen/_overlap.scss b/src/fullscreen/_overlap.scss index 4838ed3..0f5669c 100644 --- a/src/fullscreen/_overlap.scss +++ b/src/fullscreen/_overlap.scss @@ -1,15 +1,24 @@ -:root[sizemode="fullscreen"] #navigator-toolbox { +:root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #navigator-toolbox { position: fixed !important; /* Needed for content to take up entire height */ z-index: 1000 !important; /* Puts the UI above the content */ + + &:is(:hover, :focus-within) { + margin-top: 0 !important; + } } -:root[sizemode="fullscreen"] :-moz-any(#navigator-toolbox, #titlebar, #nav-bar, #PersonalToolbar) { +:root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) :-moz-any(#navigator-toolbox, #titlebar, #toolbar-menubar, #TabsToolbar, #nav-bar, #PersonalToolbar) { width: 100%; /* Makes the UI take up the entire width */ } +:root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #urlbar:popover-open { + // Prevent URLbar overlay #1028 + position: fixed !important; +} + @include OS($linux) { /* Fix transparent background */ - :root[tabsintitlebar][sizemode="fullscreen"]#{$not_lwtheme} #TabsToolbar { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="fullscreen"]:not([inDOMFullscreen="true"])#{$not_lwtheme} #TabsToolbar { appearance: auto !important; } } diff --git a/src/fullscreen/_show_bookmarkbar.scss b/src/fullscreen/_show_bookmarkbar.scss index a91348e..d787a8d 100644 --- a/src/fullscreen/_show_bookmarkbar.scss +++ b/src/fullscreen/_show_bookmarkbar.scss @@ -1,4 +1,4 @@ -:root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized="true"]:not([collapsed="true"]), -:root[sizemode="fullscreen"] #PersonalToolbar[initialized="true"] { +:root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized]:not([collapsed="true"]), +:root[sizemode="fullscreen"] #PersonalToolbar[initialized] { visibility: unset !important; /* Makes the bookmarks toolbar visible if enabled */ } diff --git a/src/icons/_1.25px_stroke.scss b/src/icons/_1.25px_stroke.scss index ac47244..8b3a7d5 100644 --- a/src/icons/_1.25px_stroke.scss +++ b/src/icons/_1.25px_stroke.scss @@ -20,3 +20,9 @@ ) .tab-icon-image { content: url("../icons/developer.svg") !important; } + +.tabbrowser-tab:is( + [image="chrome://browser/skin/controlcenter/dashboard.svg"] +) .tab-icon-image { + content: url("../icons/dashboard.svg") !important; +} diff --git a/src/icons/_activity_stream.scss b/src/icons/_activity_stream.scss index b916a3e..bfc362b 100644 --- a/src/icons/_activity_stream.scss +++ b/src/icons/_activity_stream.scss @@ -5,7 +5,7 @@ --menuitem-image: url("../icons/unpin-tab.svg"); } .context-menu-item span[data-l10n-id="newtab-menu-edit-topsites"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } .context-menu-item span[data-l10n-id="newtab-menu-bookmark"] { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); diff --git a/src/icons/_addon_page.scss b/src/icons/_addon_page.scss index f8b0a5b..3b49c75 100644 --- a/src/icons/_addon_page.scss +++ b/src/icons/_addon_page.scss @@ -1,5 +1,5 @@ // https://github.com/mozilla/gecko-dev/commit/260e4270fca18f2f6f59a1ffe4deccb5080a15f7 -button[role="menuitem"] { +button:is([role="menuitem"], [role="menuitemcheckbox"]) { background-image: var(--icon, url("../icons/blank.svg")); /* Don't use !important. because of [checked] */ } diff --git a/src/icons/_global_menu.scss b/src/icons/_global_menu.scss index fa0de58..12eaab4 100644 --- a/src/icons/_global_menu.scss +++ b/src/icons/_global_menu.scss @@ -238,6 +238,11 @@ menu.share-tab-url-item { #menu_mobileBookmarks { } +/*= menu_ProfilesPopup =======================================================*/ +#menu_manageProfiles { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); +} + /*= menu_ToolsPopup ==========================================================*/ #menu_openDownloads { --menuitem-image: url("chrome://browser/skin/downloads/downloads.svg"); diff --git a/src/icons/_global_menubar.scss b/src/icons/_global_menubar.scss index e477397..ed59975 100644 --- a/src/icons/_global_menubar.scss +++ b/src/icons/_global_menubar.scss @@ -3,7 +3,7 @@ --menuitem-image: url("../icons/mail-inbox-all.svg"); } #edit-menu { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #view-menu { --menuitem-image: url("../icons/content-view.svg"); @@ -14,6 +14,11 @@ #bookmarksMenu { --menuitem-image: url("chrome://browser/skin/bookmark.svg"); } +#profiles-menu:is(menu) { + // Using stroke + fill: transparent !important; + --menuitem-image: url("chrome://browser/content/profiles/assets/16_heart.svg"); +} #tools-menu { --menuitem-image: url("../icons/toolbox.svg"); } @@ -23,3 +28,16 @@ #helpMenu { --menuitem-image: url("chrome://global/skin/icons/help.svg"); } + +/*= Others ===================================================================*/ +#alltabs-button { + list-style-image: url("chrome://global/skin/icons/arrow-down.svg") !important; + > .toolbarbutton-badge-stack > .toolbarbutton-icon { + /* Original + width: 20px; + margin: -2px; + */ + width: 16px !important; + margin: 0 !important; + } +} diff --git a/src/icons/_index.scss b/src/icons/_index.scss index c9fe7f8..cc76e54 100644 --- a/src/icons/_index.scss +++ b/src/icons/_index.scss @@ -28,7 +28,7 @@ --uc-sidebar-icon: url("chrome://browser/skin/sidebars.svg"); --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars-right.svg"); @include Has { - &:has(#sidebar-box[positionend="true"]) { + &:has(#sidebar-box[positionend]) { --uc-sidebar-icon: url("chrome://browser/skin/sidebars-right.svg"); --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars.svg"); } diff --git a/src/icons/_panel.scss b/src/icons/_panel.scss index e276e4b..37056e6 100644 --- a/src/icons/_panel.scss +++ b/src/icons/_panel.scss @@ -29,6 +29,20 @@ background-image: var(--avatar-image-url) !important; } +#appMenu-profiles-button > image, +#appMenu-empty-profiles-button > image { + // Using stroke + fill: transparent !important; +} +#appMenu-empty-profiles-button, +#PanelUI-fxa-menu-empty-profiles-button { + list-style-image: url("chrome://browser/content/profiles/assets/16_heart.svg"); +} + +#profiles-manage-profiles-button { + list-style-image: url("chrome://global/skin/icons/settings.svg"); +} + #new-tab-button { list-style-image: var(--uc-new-tab-icon) !important; } @@ -259,7 +273,8 @@ #PanelUI-signedin-panel[hidden="true"] + #PanelUI-fxa-cta-menu #PanelUI-products-separator { display: none; // #916 } -#PanelUI-fxa-menu > :first-child { +#PanelUI-fxa-menu > :first-child, +#fxa-manage-account-button { @include BoxOrder(0); } #PanelUI-sign-out-separator { @@ -274,6 +289,28 @@ list-style-image: url("chrome://global/skin/icons/settings.svg"); } +.sendToDevice-device { + &[clientType="phone"] { + list-style-image: url("../icons/device-phone.svg") !important; + } + + &[clientType="tablet"] { + list-style-image: url("../icons/device-tablet.svg") !important; + } + + &[clientType="desktop"] { + list-style-image: url("../icons/device-desktop.svg") !important; + } + + &[clientType="tv"] { + list-style-image: url("../icons/device-tv.svg") !important; + } + + &[clientType="vr"] { + list-style-image: url("../icons/device-vr.svg") !important; + } +} + /*= Panel - Bookmark =========================================================*/ #panelMenuBookmarkThisPage { list-style-image: url("chrome://browser/skin/bookmark-hollow.svg"); @@ -439,6 +476,9 @@ panelMenuBookmarkThisPage[starred] { #allTabsMenu-searchTabs { list-style-image: url("chrome://global/skin/icons/search-glass.svg"); } +#allTabsMenu-syncedTabs { + list-style-image: url("../icons/synced-tabs.svg"); +} #allTabsMenu-closeDuplicateTabs { list-style-image: var(--uc-tab-close-duplicate-icon); } @@ -500,6 +540,10 @@ panelMenuBookmarkThisPage[starred] { margin-inline-end: 1em; } +#protections-popup-report-broken-site-button { + list-style-image: url("chrome://global/skin/icons/lightbulb.svg"); +} + #protections-popup-settings-button > .protections-popup-settings-icon, #protections-popup-multiView .panel-subview-footer-button { list-style-image: url("chrome://global/skin/icons/settings.svg"); @@ -550,6 +594,10 @@ panelMenuBookmarkThisPage[starred] { @include _subviewMenuitem(url("../icons/synced-tabs.svg")); } +#sidebar-switcher-genai-chat { + @include _subviewMenuitem(url("chrome://mozapps/skin/extensions/category-discover.svg")); +} + #sidebar-reverse-position { @include _subviewMenuitem(var(--uc-sidebar-icon-reverse)); } @@ -561,6 +609,51 @@ panelMenuBookmarkThisPage[starred] { ); } +/*= sidebar-context-menu =====================================================*/ +#sidebar-context-menu-manage-extension { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); +} +#sidebar-context-menu-remove-extension { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); +} +#sidebar-context-menu-report-extension { + --menuitem-image: url("../icons/send.svg"); +} + +#sidebar-context-menu-unpin-extension { + --menuitem-image: url("../icons/unpin-tab.svg"); +} +#sidebar-context-menu-hide-sidebar { + --menuitem-image: url("../icons/eye-hide.svg"); +} +#sidebar-context-menu-customize-sidebar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); +} +#sidebar-context-menu-enable-vertical-tabs { + --menuitem-image: url("chrome://browser/skin/sidebar-collapsed.svg"); +} + +/*= chrome://browser/content/syncedtabs/sidebar.xhtml ========================*/ +.item.client[clientType=phone] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-phone.svg") !important; +} + +.item.client[clientType=tablet] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-tablet.svg") !important; +} + +.item.client[clientType=desktop] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-desktop.svg") !important; +} + +.item.client[clientType=tv] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-tv.svg") !important; +} + +.item.client[clientType=vr] > .item-title-container > .item-icon-container { + background-image: url("../icons/device-vr.svg") !important; +} + /*= unified-extensions-view ===================================================*/ #unified-extensions-manage-extensions { list-style-image: url("chrome://mozapps/skin/extensions/extension.svg"); diff --git a/src/icons/context_menu/_content_area.scss b/src/icons/context_menu/_content_area.scss index 7cad874..06fcdd3 100644 --- a/src/icons/context_menu/_content_area.scss +++ b/src/icons/context_menu/_content_area.scss @@ -232,6 +232,9 @@ #context-translate-selection { --menuitem-image: url("../icons/translations.svg"); } +#context-ask-chat { + --menuitem-image: url("../icons/chat-sparkle.svg"); +} #frame { --menuitem-image: url("../icons/command-frames.svg"); @@ -289,6 +292,38 @@ } } +/*= context-ask-chat =========================================================*/ +#ask-chat-shortcuts .toolbarbutton-icon { + order: -1; + margin-inline-end: var(--arrowpanel-menuitem-margin-inline) !important; +} +#ask-chat-shortcuts .subviewbutton:nth-child(1) { + list-style-image: url("../icons/apps-list-detail.svg"); +} +#ask-chat-shortcuts .subviewbutton:nth-child(2) { + list-style-image: url("../icons/code-text.svg"); +} +#ask-chat-shortcuts .subviewbutton:nth-child(3) { + list-style-image: url("../icons/tetris-app.svg"); +} +#ask-chat-shortcuts .subviewbutton:nth-child(4) { + list-style-image: url("../icons/arrow-up-exclamation.svg"); +} + + +#context-ask-chat menuitem:nth-child(1) { + --menuitem-image: url("../icons/apps-list-detail.svg"); +} +#context-ask-chat menuitem:nth-child(2) { + --menuitem-image: url("../icons/code-text.svg"); +} +#context-ask-chat menuitem:nth-child(3) { + --menuitem-image: url("../icons/tetris-app.svg"); +} +#context-ask-chat menuitem:nth-child(4) { + --menuitem-image: url("../icons/arrow-up-exclamation.svg"); +} + /*= main-context-menu-frame ==================================================*/ #context-showonlythisframe { --menuitem-image: url("../icons/eye-show.svg"); diff --git a/src/icons/context_menu/_others.scss b/src/icons/context_menu/_others.scss index 98f40ae..63c5401 100644 --- a/src/icons/context_menu/_others.scss +++ b/src/icons/context_menu/_others.scss @@ -15,7 +15,7 @@ --menuitem-image: url("chrome://global/skin/icons/check.svg"); } #blockedPopupOptions > menuitem[oncommand="gPopupBlockerObserver.editPopupSettings();"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #blockedPopupDontShowMessage { /* checkbox */ @@ -260,6 +260,9 @@ menuitem.searchbar-clear-history { /*= urlbarView-result-menu ===================================================*/ .urlbarView-result-menuitem { + &[data-command="trendingblock"] { + --menuitem-image: url("../icons/eye-hide.svg"); + } &[data-command="dismiss"] { --menuitem-image: url("chrome://global/skin/icons/delete.svg"); } diff --git a/src/icons/context_menu/_place.scss b/src/icons/context_menu/_place.scss index ff23f51..4764c72 100644 --- a/src/icons/context_menu/_place.scss +++ b/src/icons/context_menu/_place.scss @@ -24,7 +24,7 @@ #placesContext_show_bookmark\:info, #placesContext_show\:info, #placesContext_show_folder\:info { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #placesContext_deleteBookmark, #placesContext_deleteFolder, diff --git a/src/icons/context_menu/_tab_toolbar.scss b/src/icons/context_menu/_tab_toolbar.scss index 2488d3b..276bb83 100644 --- a/src/icons/context_menu/_tab_toolbar.scss +++ b/src/icons/context_menu/_tab_toolbar.scss @@ -22,8 +22,13 @@ #sidebartabs_asamuzak_jp-menuitem-_reloadAllTabs { --menuitem-image: url("../icons/reload.svg"); } +#context_playTab, +#context_playSelectedTabs { + --menuitem-image: url("../icons/play-fill.svg"); +} #context_toggleMuteTab, #context_toggleMuteSelectedTabs, +#treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab[label="Mute Tab"], #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-mute, #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab, #sidebartabs_asamuzak_jp-menuitem-_muteTab { @@ -32,6 +37,7 @@ } #context_toggleMuteTab[muted], #context_toggleMuteSelectedTabs[muted], +#treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab[label="Unmute Tab"], #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-unmute, #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab[label="Unmute Tab"], #sidebartabs_asamuzak_jp-menuitem-_muteTab[label="Unmute Tab"] { @@ -51,6 +57,12 @@ #sidebartabs_asamuzak_jp-menuitem-_pinTab[label="Unpin Tab"] { --menuitem-image: url("../icons/unpin-tab.svg"); } +#treestyletab_piro_sakura_ne_jp-menuitem-_context_topLevel_toggleSticky[label="Stick Tab to Edges"] { + --menuitem-image: url("../icons/align-distribute-top.svg"); +} +#treestyletab_piro_sakura_ne_jp-menuitem-_context_topLevel_toggleSticky[label="Unstick Tab to Edges"] { + --menuitem-image: url("../icons/align-space-evenly-vertical.svg"); +} #context_duplicateTab, #context_duplicateTabs, #treestyletab_piro_sakura_ne_jp-menuitem-_context_duplicateTab, @@ -121,6 +133,7 @@ #sidebartabs_asamuzak_jp-menuitem-_closeTab { --menuitem-image: url("chrome://global/skin/icons/close.svg"); } +#treestyletab_piro_sakura_ne_jp-menuitem-_context_closeDuplicatedTabs, #context_closeDuplicateTabs { @include Option("userChrome.icon.menu.full") { --menuitem-image: var(--uc-tab-close-duplicate-icon); @@ -205,6 +218,13 @@ --menuitem-image: url("../icons/undo.svg"); } +#toolbar-context-customize-sidebar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); +} +#toolbar-context-toggle-vertical-tabs { + --menuitem-image: url("chrome://browser/skin/sidebar-collapsed.svg"); +} + #toggle_toolbar-menubar { /* checkbox */ --menuitem-image: url("../icons/calendar-agenda.svg"); @@ -243,7 +263,7 @@ menuitem.viewCustomizeToolbar { } } #tm-renameTab { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } #tm-copyTabUrl { --menuitem-image: url("../icons/link.svg"); diff --git a/src/icons/fork_browsers/_floorp.scss b/src/icons/fork_browsers/_floorp.scss index 67c3947..7947326 100644 --- a/src/icons/fork_browsers/_floorp.scss +++ b/src/icons/fork_browsers/_floorp.scss @@ -47,7 +47,7 @@ } &[data-l10n-id="make-browsercss-file"] { - --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + --menuitem-image: url("../icons/edit-active.svg"); } &[data-l10n-id="open-css-folder"] { --menuitem-image: var(--uc-folder-icon); diff --git a/src/icons/fork_browsers/_waterfox.scss b/src/icons/fork_browsers/_waterfox.scss index 95164e0..3d53d71 100644 --- a/src/icons/fork_browsers/_waterfox.scss +++ b/src/icons/fork_browsers/_waterfox.scss @@ -15,4 +15,8 @@ menuitem.privatetab-icon { --menuitem-image: url("../icons/private-favicon.svg"); } + + #sidebar_waterfox_net-menuitem-_openAllBookmarksWithStructure { + --menuitem-image: url("../icons/organization-horizontal.svg"); + } } diff --git a/src/icons/layout/_bookmark_menu.scss b/src/icons/layout/_bookmark_menu.scss index 2c4cfbb..3f2e2c7 100644 --- a/src/icons/layout/_bookmark_menu.scss +++ b/src/icons/layout/_bookmark_menu.scss @@ -17,8 +17,8 @@ menupopup menupopup[emptyplacesresult] .menu-text, //-- Mixin --------------------------------------------------------------------- // Items -$_bookmarkMenuitem: "menuitem:not(.menuitem-iconic, [disabled=\"true\"])"; -$_bookmarkMenu: "menu:not(.menu-iconic)"; +$_bookmarkMenuitem: "menuitem:not(.menuitem-iconic, [disabled=\"true\"]):not(:has(.menu-icon[aria-hidden=\"true\"]))"; +$_bookmarkMenu: "menu:not(.menu-iconic):not(:has(.menu-icon[aria-hidden=\"true\"]))"; // Components $_bookmarkPopup: "menupopup:is(#BMB_bookmarksPopup)[placespopup=\"true\"]"; diff --git a/src/icons/layout/_menu.scss b/src/icons/layout/_menu.scss index 6b2411f..1807962 100644 --- a/src/icons/layout/_menu.scss +++ b/src/icons/layout/_menu.scss @@ -81,6 +81,15 @@ $_layoutCommonMenus: ( menupopup { --menuitem-image: none; /* Prevent Image Inheritance */ } + & > :is(.menubar-text, .menu-text) { + @include OS($win) { + transform: translateY(-1px) !important; /* Fix menu top padding position */ + padding-inline-start: 0.3em !important; + } + @include OS($linux) { + @include _layout_init_linux; + } + } @include NotOption("userChrome.padding.global_menubar") { padding-block: 2px !important; } @@ -99,6 +108,11 @@ $_layoutCommonMenus: ( .menupopup-arrowscrollbox { padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */ } + + // FF v141 #1128 + menupopup[needsgutter] > :is(menu, menuitem) > .menu-icon { + display: none !important; + } } } @@ -113,10 +127,6 @@ $_layoutCommonMenus: ( /* Padding - Linux */ @include OS($linux) { @include _layout_root_linux; - - #{$_globalMenus} > .menubar-text { - @include _layout_init_linux; - } } /* Padding - Mac */ diff --git a/src/icons/layout/_menu_common.scss b/src/icons/layout/_menu_common.scss index 3885026..68e298e 100644 --- a/src/icons/layout/_menu_common.scss +++ b/src/icons/layout/_menu_common.scss @@ -12,7 +12,7 @@ $_checkMenu: ":not([type=\"checkbox\"][checked=\"true\"], [type=\"radio\"])"; $_nestedPopup: "> menupopup:not(.in-menulist) >"; $_nestedPopupIcon: ":not(menu, #ContentSelectDropdown) #{$_nestedPopup}"; $_nestedPopupPadding: ":not(menu, #ContentSelectDropdown, #context-navigation) #{$_nestedPopup}"; -$_iconMenuPopup: "menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, #usercssloader-menupopup)"; +$_iconMenuPopup: "menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ProfilesPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup, #usercssloader-menupopup, #sidebar-context-menu)"; $_nestedPopupIconMenus: selector.nest( $_nestedPopupIcon, @@ -31,7 +31,7 @@ $_globalMenus: "#main-menubar > menu"; $_libraryMenuitem: "menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > #{$_iconMenuitem}"; $_libraryMenu: "menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > #{$_iconMenu}"; $_sendTabMenuPopup: "#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup, #context-sendlinktodevice-popup"; -$_otherPopupMenuitem: "menupopup:is(#{$_sendTabMenuPopup}, #frame > menupopup, #spell-dictionaries-menu) > menuitem#{$_checkMenu}"; +$_otherPopupMenuitem: "menupopup:is(#{$_sendTabMenuPopup}, #frame > menupopup, #spell-dictionaries-menu, #context-ask-chat > menupopup) > menuitem#{$_checkMenu}"; $_otherIconMenu: ".openintabs-menuitem, #blockedPopupDontShowMessage, #BMB_viewBookmarksToolbar, #sidebarMenu-popup:is(menupopup)"; //-- Mixin --------------------------------------------------------------------- @@ -41,7 +41,7 @@ $_initialMenus: selector.append( $_checkMenu ); $_initialMenus: $_initialMenus + "," + - selector.nest($_initialMenus, "> .menu-iconic-left > .menu-iconic-icon"); + selector.nest($_initialMenus, "> .menu-iconic-left > .menu-iconic-icon, > .menu-icon"); @mixin _initial_menus() { -moz-appearance: none !important; /* Linux: menulist */ } @@ -192,6 +192,12 @@ $_initialMenus: $_initialMenus + "," + // https://github.com/mozilla/gecko-dev/blob/e54707888510dec75db59a170b287d1db031505a/toolkit/themes/linux/global/menu.css#L103 --context-menu-text-padding: 21px; } + .menu-icon { + display: unset !important; + } + #main-menubar > menu > .menu-icon { + display: none !important; + } } @mixin _layout_init_linux() { padding-inline-start: 3px; diff --git a/src/icons/layout/_menu_contents.scss b/src/icons/layout/_menu_contents.scss index f772c6a..b1d8dd0 100644 --- a/src/icons/layout/_menu_contents.scss +++ b/src/icons/layout/_menu_contents.scss @@ -61,10 +61,12 @@ $_placesPopupSetMenus: selector.nest( /* Contextmenu Checkbox Unset */ #{$_placesPopupSet} menuitem[type="checkbox"] { margin-inline: 0 !important; - > .menu-iconic-left > .menu-iconic-icon { + > .menu-iconic-left > .menu-iconic-icon, + > .menu-icon { margin-inline-end: 0 !important; } - &:not([checked="true"]) > .menu-iconic-left > .menu-iconic-icon { + &:not([checked="true"]) > .menu-iconic-left > .menu-iconic-icon, + &:not([checked="true"]) > .menu-icon { border: none !important; background-color: unset !important; } diff --git a/src/leptonChromeNightly.scss b/src/leptonChromeNightly.scss index a6e12d3..03de202 100644 --- a/src/leptonChromeNightly.scss +++ b/src/leptonChromeNightly.scss @@ -3,8 +3,9 @@ @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace html url("http://www.w3.org/1999/xhtml"); -@import "leptonChrome"; - -/*@ NIGHTLY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ @include mode.MEDIA_PREF; @import "leptonChrome"; + +/*@ DEPRECATED @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ +@include mode.MEDIA_BOOL_PREF; +@import "leptonChrome"; diff --git a/src/leptonContentNightly.scss b/src/leptonContentNightly.scss index 87f1740..64f28e9 100644 --- a/src/leptonContentNightly.scss +++ b/src/leptonContentNightly.scss @@ -3,8 +3,9 @@ @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace html url("http://www.w3.org/1999/xhtml"); -@import "leptonContent"; - -/*@ NIGHTLY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ @include mode.MEDIA_PREF; @import "leptonContent"; + +/*@ DEPRECATED @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ +@include mode.MEDIA_BOOL_PREF; +@import "leptonContent"; diff --git a/src/library/_proton.scss b/src/library/_proton.scss index f48a152..5c3eff5 100644 --- a/src/library/_proton.scss +++ b/src/library/_proton.scss @@ -101,7 +101,7 @@ #placesToolbar > toolbarbutton > .toolbarbutton-icon, #placesMenu > menu > image, -#placesMenu > menu > .menubar-text { +#placesMenu > menu > :is(.menubar-text, .menu-text) { -moz-context-properties: fill !important; fill: currentColor !important; } @@ -131,7 +131,7 @@ background-color: var(--organizer-selected-background) !important; color: var(--organizer-selected-color) !important; } - > .menubar-text { + > :is(.menubar-text, .menu-text) { margin-block: 0 !important; /* override menu.css */ padding-inline-end: 4px !important; } diff --git a/src/navbar/_as_sidebar.scss b/src/navbar/_as_sidebar.scss index 05ef66b..2975430 100644 --- a/src/navbar/_as_sidebar.scss +++ b/src/navbar/_as_sidebar.scss @@ -41,7 +41,7 @@ opacity: 0; visibility: hidden; // If use `collapse`, inline `--urlbar-toolbar-height` variable is calculated strangely small. } - :root:has(#sidebar-box[positionend="true"]) #nav-bar { + :root:has(#sidebar-box[positionend]) #nav-bar { right: 0; } } @@ -109,7 +109,7 @@ position: absolute; height: 100%; - &[positionend="true"] { + &[positionend] { right: 0; } } @@ -125,10 +125,10 @@ height: calc(100% - var(--uc-customization-conatiner-margin)); } - &:has(#sidebar-box:not([positionend="true"])) #customization-container { + &:has(#sidebar-box:not([positionend])) #customization-container { margin-inline-start: var(--uc-sidebar-activate-width); } - &:has(#sidebar-box[positionend="true"]) #customization-container { + &:has(#sidebar-box[positionend]) #customization-container { margin-inline-end: var(--uc-sidebar-activate-width); } diff --git a/src/padding/_drag_space.scss b/src/padding/_drag_space.scss index 07e0f75..fd3c427 100644 --- a/src/padding/_drag_space.scss +++ b/src/padding/_drag_space.scss @@ -6,11 +6,11 @@ //-- Mixin --------------------------------------------------------------------- @mixin _dragSpaceHeight { - :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="normal"] #toolbar-menubar[autohide="true"] { @content; } @include Option("userChrome.padding.drag_space.maximized") { - :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + :root:is([tabsintitlebar], [customtitlebar])[sizemode="maximized"] #toolbar-menubar[autohide="true"] { @content; } } diff --git a/src/padding/_first_tab.scss b/src/padding/_first_tab.scss index 508a964..5684296 100644 --- a/src/padding/_first_tab.scss +++ b/src/padding/_first_tab.scss @@ -4,14 +4,14 @@ } @include NotOption("userChrome.padding.first_tab.always") { - :root:not([tabsintitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), + :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { padding-inline-start: var(--uc-space-left-tabbar) !important; } } @include Option("userChrome.padding.first_tab.always") { - :root:not([tabsintitlebar]) #tabbrowser-tabs, + :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs, :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs { padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width, 0px) + var(--uc-space-left-tabbar)) !important; } diff --git a/src/padding/_index.scss b/src/padding/_index.scss index 5f13bfa..32328f1 100644 --- a/src/padding/_index.scss +++ b/src/padding/_index.scss @@ -51,12 +51,14 @@ } @include Option("userChrome.padding.urlView_expanding", "userChrome.urlView.as_commandbar") { #urlbar[breakout][breakout-extend] { - top: calc((var(--urlbar-toolbar-height, var(--urlbar-container-height)) - var(--urlbar-height)) / 2) !important; - left: 0 !important; - width: 100% !important; + top: calc(var(--urlbar-container-height) * 2 - var(--urlbar-height)) !important; + width: var(--urlbar-width) !important; + position: relative !important; + margin: 0 !important; } - #urlbar[breakout][breakout-extend] > #urlbar-input-container { + #urlbar[breakout][breakout-extend] > #urlbar-input-container, + #urlbar[breakout][breakout-extend] > .urlbar-input-container { height: var(--urlbar-height) !important; padding-block: 0 !important; padding-inline: var(--urlbar-container-padding, 0px) !important; diff --git a/src/padding/_tabbar_height.scss b/src/padding/_tabbar_height.scss index 8b0b6a9..adafc8b 100644 --- a/src/padding/_tabbar_height.scss +++ b/src/padding/_tabbar_height.scss @@ -62,12 +62,17 @@ } @include NotOption("userChrome.tabbar.multi_row") { + :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #pinned-tabs-container, + #TabsToolbar:not([multibar]) #pinned-tabs-container[overflowing="true"] > .tabbrowser-tab[pinned="true"], + #TabsToolbar:not([multibar]) #pinned-tabs-container[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-stack, + #TabsToolbar:not([multibar]) #pinned-tabs-container[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-content, :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox, #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"], #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-stack, #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-content { max-height: var(--tab-min-height) !important; /* Force apply height */ } + :root[uidensity="compact"] #TabsToolbar:not([multibar]) #pinned-tabs-container, :root[uidensity="compact"] #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox { height: var(--tab-min-height) !important; } @@ -75,6 +80,7 @@ } /* Scroll Button - Size Fix */ +:root #pinned-tabs-container, :root #tabbrowser-arrowscrollbox { --scrollbtn-vertical-padding: 3px; --scrollbtn-vertical-border: 2px; @@ -94,7 +100,7 @@ border-radius: var(--scrollbtn-border-radius, calc(var(--tab-border-radius) + 4px)) !important; } -:root[tabsintitlebar]:not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { +:root:is([tabsintitlebar], [customtitlebar]):not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { height: calc( var(--tab-min-height) - var(--tabs-navbar-shadow-size) - 2px ); /* Compact: 28px, Normal: 33px, Touch: 38px */ diff --git a/src/padding/_tabbar_width.scss b/src/padding/_tabbar_width.scss index fdc5ee1..af24fad 100644 --- a/src/padding/_tabbar_width.scss +++ b/src/padding/_tabbar_width.scss @@ -60,6 +60,7 @@ } } +:root:not([uidensity="touch"]) #pinned-tabs-container, :root:not([uidensity="touch"]) #tabbrowser-arrowscrollbox { --scrollbtn-inner-padding: 1px; --scrollbtn-outer-padding: 3px; @@ -92,14 +93,30 @@ } .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { max-width: var(--tab-max-width) !important; /* Original: 225px */ + + #tabbrowser-tabs[orient="vertical"][expanded] & { + max-width: none !important; + } + #tabbrowser-tabs[orient="horizontal"] tab-group[collapsed] > & { + min-width: 0 !important; + max-width: 0 !important; + padding: 0 !important;; + margin: 0 !important; + overflow-clip-margin: 0; + } } /* neighbouring tabs should "pinch" together */ :root[customizing="true"] #tabbrowser-arrowscrollbox-periphery, +#tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) + > #pinned-tabs-container > #tabbrowser-arrowscrollbox-periphery, #tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) > #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox-periphery { min-width: 3px; // With Panorama Tab Groups #643 #846 } +#tabbrowser-tabs[orient="horizontal"] .tab-group-label-container { + margin-inline-start: 4px !important; +} @include NotOption("userChrome.tab.photon_like_padding") { @include Option("userChrome.tab.lepton_like_padding") { #TabsToolbar:not([multibar]) .tabbrowser-tab { diff --git a/src/padding/_urlbar.scss b/src/padding/_urlbar.scss index eadc489..eecbbd4 100644 --- a/src/padding/_urlbar.scss +++ b/src/padding/_urlbar.scss @@ -24,11 +24,6 @@ height: auto !important; } } - :root[uidensity="touch"] & { - // Fallback #881 - top: calc((var(--urlbar-toolbar-height, var(--urlbar-container-height)) - - var(--urlbar-height)) / 2 + 1px) !important; - } } /* spread menu */ diff --git a/src/rounding/_square.scss b/src/rounding/_square.scss index 5722402..3140184 100644 --- a/src/rounding/_square.scss +++ b/src/rounding/_square.scss @@ -3,6 +3,11 @@ --tab-border-radius: 0 !important; /* Original: 4px */ } } +@include NotOption("userChrome.rounding.square_tab") { + :root { + --tab-border-radius: 4px !important; /* Original: 4px */ + } +} @include Option("userChrome.rounding.square_button") { :root { --urlbar-icon-border-radius: 0 !important; /* Original: calc(var(--toolbarbutton-border-radius) - 1px); */ diff --git a/src/sidebar/_overlap.scss b/src/sidebar/_overlap.scss index b1f1585..84d2ced 100644 --- a/src/sidebar/_overlap.scss +++ b/src/sidebar/_overlap.scss @@ -33,11 +33,11 @@ #sidebar-box { --uc-sidebar-shadow-color: #28282F; - z-index: 1 !important; + z-index: var(--browser-area-z-index-sidebar-splitter, 3) !important; position: relative !important; box-shadow: var(--uc-sidebar-shadow-position) 0px 15px -10px var(--uc-sidebar-shadow-color); - &[positionend="true"] { + &[positionend] { --uc-sidebar-shadow-position: calc(-1 * var(--uc-sidebar-shadow-position-default)); } } @@ -53,7 +53,7 @@ } @include Option("userChrome.sidebar.overlap") { - #sidebar-box[positionend="true"] { + #sidebar-box[positionend] { direction: rtl; } diff --git a/src/tab/_connect_to_window.scss b/src/tab/_connect_to_window.scss index 89ba62b..671912f 100644 --- a/src/tab/_connect_to_window.scss +++ b/src/tab/_connect_to_window.scss @@ -1,19 +1,41 @@ +#TabsToolbar { + #tabbrowser-tabs:not([orient="vertical"]) { + max-height: var(--tab-min-height); + } + #tabbrowser-tabs:not([orient="vertical"])[movingtab] { + padding-bottom: unset !important; + margin-bottom: unset !important; + } + + &[multibar] #tabbrowser-tabs:not([orient="vertical"]) { + max-height: var(--tab-min-height_mlt); + } +} + +#tabbrowser-tabs:not([orient="vertical"]) { + min-height: unset !important; /* Original: var(--tabstrip-min-height) */ + + .tab-background { + border-radius: var(--tab-border-radius) var(--tab-border-radius) var(--uc-tab-border-bottom-radius, 0px) var(--uc-tab-border-bottom-radius, 0px) !important; + margin-bottom: 0px !important; + } + + .tab-content { + margin-top: 0px; // #892 Consider var(--tab-block-margin) + } + + .tab-stack { + margin-top: 0px !important; + margin-bottom: 0px !important; + } + + tab-group .tabbrowser-tab:is([selected], [multiselected]) .tab-group-line { + transform: translateY(calc(var(--tab-group-line-thickness) * -1)); + } +} #tabbrowser-tabs[orient="vertical"] { --uc-tab-border-bottom-radius: var(--tab-border-radius); } -.tab-background { - border-radius: var(--tab-border-radius) var(--tab-border-radius) var(--uc-tab-border-bottom-radius, 0px) var(--uc-tab-border-bottom-radius, 0px) !important; - margin-bottom: 0px !important; -} - -.tab-content { - margin-top: 0px; // #892 Consider var(--tab-block-margin) -} - -.tab-stack { - margin-top: 0px !important; - margin-bottom: 0px !important; -} /* Remove line at Toolbar's top */ #tabbrowser-tabs { @@ -26,6 +48,7 @@ } /* Pinned Tab - tabbrowser-arrowscrollbox overflowing */ +#tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned], #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] { z-index: 0 !important; diff --git a/src/tab/_selected_tab.scss b/src/tab/_selected_tab.scss index c2c3592..961d035 100644 --- a/src/tab/_selected_tab.scss +++ b/src/tab/_selected_tab.scss @@ -67,3 +67,27 @@ @include Option("userChrome.tab.photon_like_contextline") { @import "selected_tab/photon_like_contextline"; } + +/*= Selected Tab - Supernova like contextline ===================================*/ +@include NotOption("userChrome.tab.photon_like_contextline") { + @include Option("userChrome.tab.supernova_like_contextline") { + @import "selected_tab/supernova_like_contextline"; + + @include Option("userChrome.tab.contextline_blue_accent") { + #tabbrowser-tabs .tab-context-line { + --tab-line-color: #45a1ff !important; + } + } + @include NotOption("userChrome.tab.contextline_blue_accent") { + @include OS("linux") { + @include not_lwtheme { + #tabbrowser-tabs .tab-context-line { + @include AccentColor("Highlight") { + --tab-line-color: #{$accentColor} !important; /* -moz-accent-color */ + } + } + } + } + } + } +} diff --git a/src/tab/clipped_tab/_letters_cleary.scss b/src/tab/clipped_tab/_letters_cleary.scss index 2151ded..d5c5bd9 100644 --- a/src/tab/clipped_tab/_letters_cleary.scss +++ b/src/tab/clipped_tab/_letters_cleary.scss @@ -30,6 +30,7 @@ } .tabbrowser-tab[visuallyselected]:not([labelendaligned]):hover .tab-label-container, +#tabbrowser-tabs:not([closebuttons=activetab]) > #pinned-tabs-container > .tabbrowser-tab:not([visuallyselected],[labelendaligned]):hover .tab-label-container, #tabbrowser-tabs:not([closebuttons=activetab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab:not([visuallyselected],[labelendaligned]):hover .tab-label-container { --tab-label-mask-size: 0.9em; /* Original: 1em */ } diff --git a/src/tab/clipped_tab/_show_close_button_at_hover.scss b/src/tab/clipped_tab/_show_close_button_at_hover.scss index 8629f5e..34bda20 100644 --- a/src/tab/clipped_tab/_show_close_button_at_hover.scss +++ b/src/tab/clipped_tab/_show_close_button_at_hover.scss @@ -19,6 +19,11 @@ } #tabbrowser-tabs[closebuttons="activetab"] { + > #pinned-tabs-container + > .tabbrowser-tab:not([pinned]) + > .tab-stack + > .tab-content + > .tab-close-button:not([selected]), > #tabbrowser-arrowscrollbox > .tabbrowser-tab:not([pinned]) > .tab-stack diff --git a/src/tab/newtab_button/_looks_like_tab.scss b/src/tab/newtab_button/_looks_like_tab.scss index f6e7c8c..bd9303b 100644 --- a/src/tab/newtab_button/_looks_like_tab.scss +++ b/src/tab/newtab_button/_looks_like_tab.scss @@ -1,4 +1,4 @@ -#tabs-newtab-button { +#tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button { @include Option("userChrome.tab.connect_to_window") { /* Size */ @include BoxAlign("stretch", true); @@ -73,16 +73,16 @@ } @media (-moz-windows-accent-color-in-titlebar) { @include AccentColor { - :root[tabsintitlebar]:not(:-moz-window-inactive)#{$not_lwtheme} #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive)#{$not_lwtheme} #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover { fill: color-mix( in srgb, $accentTextColor 10%, transparent ) !important; /* Hardcoded for compatibility */ } - :root[tabsintitlebar]:not(:-moz-window-inactive)#{$not_lwtheme} #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive)#{$not_lwtheme} #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active { fill: color-mix( in srgb, $accentTextColor 15%, @@ -98,14 +98,14 @@ "userChrome.tab.bottom_rounded_corner.chrome", "userChrome.tab.bottom_rounded_corner.edge" ) { - :root[tabsintitlebar]:not(:-moz-window-inactive)#{$not_lwtheme} #tabs-newtab-button:hover, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive)#{$not_lwtheme} #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient(to left, color-mix(in srgb, $accentTextColor 10%, transparent), color-mix(in srgb, $accentTextColor 10%, transparent)), var(--uc-tab-corner-right-side-svg); } - :root[tabsintitlebar]:not(:-moz-window-inactive)#{$not_lwtheme} #tabs-newtab-button:hover:active, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive)#{$not_lwtheme} #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:hover:active { background-image: var(--uc-tab-corner-left-side-svg), linear-gradient(to left, color-mix(in srgb, $accentTextColor 15%, transparent), color-mix(in srgb, $accentTextColor 15%, transparent)), var(--uc-tab-corner-right-side-svg); @@ -116,7 +116,7 @@ } /* '+'Icon */ -#tabs-newtab-button .toolbarbutton-icon { +#tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button .toolbarbutton-icon { border-radius: var(--tab-border-radius) var(--tab-border-radius) 0 0 !important; /* Original: var(--tab-border-radius) */ padding: calc(var(--toolbarbutton-inner-padding) - (var(--tab-block-margin) / 4)) var(--toolbarbutton-inner-padding) diff --git a/src/tab/selected_tab/_bold.scss b/src/tab/selected_tab/_bold.scss index 0b0fa2e..5157637 100644 --- a/src/tab/selected_tab/_bold.scss +++ b/src/tab/selected_tab/_bold.scss @@ -1,7 +1,4 @@ .tab-label:is([selected], [attention]) { - @include NotOption("userChrome.tab.selected_bold") { - font-weight: 400 !important; - } @include Option("userChrome.tab.selected_bold") { font-weight: 600; } diff --git a/src/tab/selected_tab/_color_like_toolbar.scss b/src/tab/selected_tab/_color_like_toolbar.scss index d6695dd..75ede0c 100644 --- a/src/tab/selected_tab/_color_like_toolbar.scss +++ b/src/tab/selected_tab/_color_like_toolbar.scss @@ -7,6 +7,26 @@ background-color: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)) !important; } +#pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], +#tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], +#pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], +#tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack @@ -15,6 +35,17 @@ > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[selected], +#tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], +#tabbrowser-tabs[orient="horizontal"]:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[selected] { @include lwtheme(false) { /* Original: linear-gradient(var(--lwt-selected-tab-background-color, transparent), var(--lwt-selected-tab-background-color, transparent)), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) diff --git a/src/tab/selected_tab/_multi_selected.scss b/src/tab/selected_tab/_multi_selected.scss index a5605d7..8375d4d 100644 --- a/src/tab/selected_tab/_multi_selected.scss +++ b/src/tab/selected_tab/_multi_selected.scss @@ -1,4 +1,5 @@ -#TabsToolbar { +#TabsToolbar, +#vertical-tabs { --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 28%, var(--toolbar-bgcolor, transparent)); &[brighttext] { @@ -6,10 +7,27 @@ } } +#tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), +#tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > tab-group + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab > .tab-stack + > .tab-background[multiselected]:not([selected]), +#tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > tab-group + > .tabbrowser-tab + > .tab-stack > .tab-background[multiselected]:not([selected]) { /* Original: background-attachment: scroll, scroll, fixed; diff --git a/src/tab/selected_tab/_supernova_like_contextline.scss b/src/tab/selected_tab/_supernova_like_contextline.scss new file mode 100644 index 0000000..32e0830 --- /dev/null +++ b/src/tab/selected_tab/_supernova_like_contextline.scss @@ -0,0 +1,107 @@ +/* context line styles */ +tabs tab.tabbrowser-tab > .tab-stack > .tab-background > .tab-context-line { + @include InlineBox(true); + &::before { + content: ""; + height: 1px !important; + border-radius: 9999px !important; + transform: translateY(5px); + margin-top: -1px !important; + margin-left: 5px; + margin-right: 5px; + width: 100%; + } +} + +/* Override container-tab style */ +tabs tab.tabbrowser-tab[usercontextid] > .tab-stack > .tab-background > .tab-context-line { + margin: unset !important; +} + +/* selected tab style */ +#{built-in-light-theme()} .tab-context-line, +#{built-in-dark-theme()} .tab-context-line { + --tab-line-color: #45a1ff; +} +.tabbrowser-tab:is([selected], [multiselected]) .tab-context-line::before { + background-color: var(--tab-line-color, var(--lwt-tab-line-color, #45a1ff)) !important; +} + +/* Set the active effect */ +.tabbrowser-tab:active > .tab-stack > .tab-background > .tab-context-line::before { + filter: brightness(70%); + margin-left: 6px; + margin-right: 6px; +} + +/* Set the hover effect */ +.tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + background-color: rgba(0, 0, 0, 0.4) !important; + opacity: 1 !important; +} + +#TabsToolbar[brighttext] + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + background-color: rgba(255, 255, 255, 0.4) !important; +} + + +/* Animation */ +@media (prefers-reduced-motion: no-preference) { + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line::before { + animation: toWide 0.2s cubic-bezier(0, 0.9, 0.15, 1); + } +} + +/* Animation for hover effect */ +@keyframes toWide { + 0% { + opacity: 0.8; + margin-left: 40%; + margin-right: 40%; + } + 100% { + opacity: 1; + margin-left: 5px; + margin-right: 5px; + } +} + +/* --- copied (not modified) from _photon_like_contextline.scss --- */ + +/* Prevent identity color flashing */ +.tabbrowser-tab[usercontextid] .tab-context-line { + --identity-icon-color: none; +} +:root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::before, +:root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::after { + /* As Selected Tab - Box Shadow */ + stroke: var(--toolbar-color) !important; +} + +/* Remove side's background color border */ +:root#{$lwtheme} + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + > .tab-stack + > .tab-background { + --tabs-border-color: rgba(0, 0, 0, 0.3) !important; + box-shadow: 0 0 1px var(--tabs-border-color) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)) */ +} +#TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + > .tab-stack + > .tab-background { + box-shadow: 0 0 1px var(--tabs-border-color), 0 0 4px rgba(128, 128, 142, 0.5) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)), 0 0 4px rgba(128,128,142,0.5) */ +} diff --git a/src/tab/sound_tab/_show_with_favicons.scss b/src/tab/sound_tab/_show_with_favicons.scss index 4d1a5db..662bd08 100644 --- a/src/tab/sound_tab/_show_with_favicons.scss +++ b/src/tab/sound_tab/_show_with_favicons.scss @@ -60,6 +60,29 @@ width: 17px !important; height: 17px !important; } +.tab-icon-overlay:not([crashed]) { + // https://github.com/black7375/Firefox-UI-Fix/issues/1011 + &:is([soundplaying], [muted], [activemedia-blocked]) { + -moz-context-properties: fill, fill-opacity, stroke !important; + fill: currentColor !important; + border: none !important; + } + &:is([pinned], [sharing]) { + stroke: var(--tab-icon-overlay-stroke, light-dark(white, black)); + color: var(--tab-icon-overlay-fill, light-dark(black, white)); + } + + // There is a difference in size between background-image and list-style-image due to margins, etc. + &[soundplaying] { + list-style-image: url("./icons/tab-audio-playing-small.svg"); + } + &[muted] { + list-style-image: url("./icons/tab-audio-muted-small.svg"); + } + &[activemedia-blocked] { + list-style-image: url("./icons/tab-audio-blocked-small.svg"); + } +} .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { /* Color */ color: currentColor !important; @@ -69,6 +92,32 @@ opacity: 1 !important; } +.tab-audio-button:not([crashed]), +.tab-audio-button[pinned][crashed][selected] { + /* Position */ + margin-inline-start: -8px !important; + margin-inline-end: -4px !important; + z-index: 1 !important; + transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(var(--uc-sound-tab-icon-position-y)); + + /* Shape */ + --button-size-icon-small: 17px !important; + --button-min-height-small: 17px !important; + --button-border-radius: 100% !important; + width: 17px !important; + height: 17px !important; + border-radius: 100%; + overflow: clip; + + --button-text-color-ghost-hover: light-dark(white, black); + --button-background-color-ghost-hover: light-dark(black, white); +} +.tab-audio-button:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { + display: flex !important; + fill-opacity: 0.8 !important; + opacity: 1 !important; +} + /* Label */ @include _hidden_tabIcon_soundTabLabel { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { diff --git a/src/tab/unselected_tab/_dynamic_separator.scss b/src/tab/unselected_tab/_dynamic_separator.scss index 15292a9..1b9b392 100644 --- a/src/tab/unselected_tab/_dynamic_separator.scss +++ b/src/tab/unselected_tab/_dynamic_separator.scss @@ -23,6 +23,7 @@ //------------------------------------------------------------------------------ +#pinned-tabs-container, #tabbrowser-arrowscrollbox { --start-tab-separator-position-x: -1.5px; --end-tab-separator-position-x: 1.5px; @@ -40,42 +41,43 @@ } @include Option("userChrome.tab.newtab_button_like_tab") { - .tab-stack::before, - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { @include _dynamicSeparatorShape; /* More position */ transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { left: calc(50% - (8px + var(--toolbarbutton-inner-padding))); } } @include NotOption("userChrome.tab.newtab_button_like_tab") { - .tab-stack::before, - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before, + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { @include _dynamicSeparatorShape; } - .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before { transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; } - .tabbrowser-tab:last-of-type .tab-stack::after { + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type .tab-stack::after { right: 0; transform: translateX(var(--end-tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; } } -.tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) .tab-stack::before { +#pinned-tabs-container:not([orient="vertical"]):not(:empty):not(:has(.tabbrowser-tab[pinned]:is([visuallyselected], [multiselected], :hover):last-of-type)) ~ #tabbrowser-arrowscrollbox:not([orient="vertical"]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before, +#tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) .tab-stack::before { opacity: var(--tab-separator-opacity); } @include Option("userChrome.tabbar.one_liner") { @include NotOption("userChrome.tabbar.one_liner.tabbar_first") { @include OneLinerContent { - .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { opacity: var(--tab-separator-opacity); transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); } @@ -83,68 +85,75 @@ } } @include Option("userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button:not(:hover, [open])::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button:not(:hover, [open])::before { opacity: var(--tab-separator-opacity); } } @include NotOption("userChrome.tab.newtab_button_like_tab") { - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { opacity: var(--tab-separator-opacity); } } -#navigator-toolbox:not([movingtab]) +#tabbrowser-tabs:not([orient="vertical"]) tab-group { + &:has(.tabbrowser-tab:last-child:is(:hover, [selected])) + .tabbrowser-tab .tab-stack::before, + &[collapsed] + .tabbrowser-tab .tab-stack::before { + opacity: 0 !important; + } +} + +#navigator-toolbox:not([movingtab]) #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))):is([visuallyselected], [multiselected], :hover) .tab-stack::before, -#navigator-toolbox:not([movingtab]) +#navigator-toolbox:not([movingtab]) #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox[overflowing] tab.tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) .tab-stack::before { opacity: 0 !important; } @include Option("userChrome.tab.newtab_button_like_tab") { - #navigator-toolbox:not([movingtab]) + #navigator-toolbox:not([movingtab]) #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + .tabbrowser-tab .tab-stack::before, - #navigator-toolbox:not([movingtab]) + #navigator-toolbox:not([movingtab]) #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) ~ #tabs-newtab-button::before, /* Legacy - v103 */ - #navigator-toolbox:not([movingtab]) + #navigator-toolbox:not([movingtab]) #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) ~ #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button::before { opacity: 0 !important; } } @include NotOption("userChrome.tab.newtab_button_like_tab") { - .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + #tabbrowser-tabs:not([orient="vertical"]) .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + .tabbrowser-tab:not([visuallyselected]) .tab-stack::before { opacity: 0 !important; } - :root:not([uidensity="compact"]) #tabs-newtab-button > .toolbarbutton-icon { + :root:not([uidensity="compact"]) #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button > .toolbarbutton-icon { margin-left: 2px; } - :root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + :root[uidensity="compact"] #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button > .toolbarbutton-icon { margin-left: 1px; } } /* Animate */ @include Animate { - .tab-stack::before { + #tabbrowser-tabs:not([orient="vertical"]) .tab-stack::before { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } @include Option("userChrome.tab.newtab_button_like_tab") { - #tabs-newtab-button::before { + #tabbrowser-tabs:not([orient="vertical"]) #tabs-newtab-button::before { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ } } @include NotOption("userChrome.tab.newtab_button_like_tab") { - #tabbrowser-arrowscrollbox:not([overflowing]) + #tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type .tab-stack::after { transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ @@ -153,6 +162,6 @@ } /* Latest Tab & New tab margin */ -#tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { +#tabbrowser-tabs:not([orient="vertical"]) #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { margin-inline-end: 1px !important; } diff --git a/src/tabbar/_as_titlebar.scss b/src/tabbar/_as_titlebar.scss index bd0c6cd..813a38a 100644 --- a/src/tabbar/_as_titlebar.scss +++ b/src/tabbar/_as_titlebar.scss @@ -12,7 +12,7 @@ //------------------------------------------------------------------------------ -:root:not([tabsintitlebar="true"]) #tabbrowser-tabs, /* Show only */ +:root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs, /* Show only */ #scrollbutton-up, /* Defaults */ #scrollbutton-down, .titlebar-spacer[type="pre-tabs"], @@ -48,6 +48,7 @@ spacer:is([part="overflow-start-indicator"], [part="overflow-end-indicator"]), } /* Pinned */ +#tabbrowser-tabs[positionpinnedtabs] > #pinned-tabs-container > .tabbrowser-tab[pinned][selected="true"], #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned][selected="true"] { position: relative !important; } @@ -70,18 +71,19 @@ spacer:is([part="overflow-start-indicator"], [part="overflow-end-indicator"]), /* Padding */ @include _asTitlebar_preSpacer { + #pinned-tabs-container, #tabbrowser-arrowscrollbox { margin-inline: 2px !important; - } - :root[sizemode="normal"] #tabbrowser-arrowscrollbox { - margin-inline: 6px !important; + :root[sizemode="normal"] & { + margin-inline: 6px !important; + } } } @include Option("browser.tabs.tabmanager.enabled") { - :root:not([tabsintitlebar="true"]) #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) ~ #alltabs-button, - :root:not([tabsintitlebar="true"]) #tabbrowser-tabs[hasadjacentnewtabbutton]:not([overflow="true"]) ~ #new-tab-button { + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) ~ #alltabs-button, + :root:not([tabsintitlebar="true"]):not([customtitlebar="true"]) #tabbrowser-tabs[hasadjacentnewtabbutton]:not([overflow="true"]) ~ #new-tab-button { @include Box(true); } } diff --git a/src/tabbar/_index.scss b/src/tabbar/_index.scss index 2f28f58..b13c753 100644 --- a/src/tabbar/_index.scss +++ b/src/tabbar/_index.scss @@ -6,6 +6,8 @@ // flex-wrap: wrap; // Disabled at #700 } :root[sizemode="fullscreen"] #titlebar, + :root[sizemode="fullscreen"] #toolbar-menubar, + :root[sizemode="fullscreen"] #TabsToolbar, :root[sizemode="fullscreen"] #nav-bar, :root[sizemode="fullscreen"] #PersonalToolbar, :root[sizemode="fullscreen"] #tab-notification-deck, diff --git a/src/tabbar/_multi_row.scss b/src/tabbar/_multi_row.scss index d136f51..d7864a3 100644 --- a/src/tabbar/_multi_row.scss +++ b/src/tabbar/_multi_row.scss @@ -40,6 +40,7 @@ See the above repository for updates as well as full license text. */ } .scrollbox-clip[orient="horizontal"], +#pinned-tabs-container, #tabbrowser-arrowscrollbox { overflow: -moz-hidden-unscrollable; display: block; diff --git a/src/tabbar/_on_bottom.scss b/src/tabbar/_on_bottom.scss index 489bb49..456a535 100644 --- a/src/tabbar/_on_bottom.scss +++ b/src/tabbar/_on_bottom.scss @@ -2,7 +2,8 @@ See the above repository for updates as well as full license text. */ /*= Tabbar - Move to bottom ==================================================*/ -#titlebar { +#titlebar, +#TabsToolbar { @include BoxOrder(2) /* When userChrome.fullscreen.overlap */; --tabs-navbar-shadow-size: 0px; } @@ -81,7 +82,7 @@ See the above repository for updates as well as full license text. */ width: 100%; overflow: hidden; } - :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + :root:is([tabsintitlebar], [customtitlebar]) #toolbar-menubar[autohide="true"]:not([inactive="true"]) { height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ } diff --git a/src/tabbar/_one_liner.scss b/src/tabbar/_one_liner.scss index b4ccba9..52c297b 100644 --- a/src/tabbar/_one_liner.scss +++ b/src/tabbar/_one_liner.scss @@ -19,7 +19,9 @@ // transform: translateY(calc(-1 * var(--uc-navbar-block, 0px))); } -#titlebar { +#titlebar, +#toolbar-menubar, +#TabsToolbar { transform: translateY(var(--uc-navbar-block, 0px)); } #TabsToolbar > .titlebar-buttonbox-container { diff --git a/src/tabbar/_unscroll.scss b/src/tabbar/_unscroll.scss index f343b0f..24018e1 100644 --- a/src/tabbar/_unscroll.scss +++ b/src/tabbar/_unscroll.scss @@ -46,6 +46,7 @@ spacer[part="overflow-start-indicator"] + .scrollbox-clip > scrollbox { } } + #pinned-tabs-container, #tabbrowser-arrowscrollbox { padding-inline-end: calc(16px + (var(--toolbarbutton-inner-padding) + var(--toolbarbutton-outer-padding)) * 2) !important; } diff --git a/src/tabbar/layout/_window_control.scss b/src/tabbar/layout/_window_control.scss index 2c45148..bf0b908 100644 --- a/src/tabbar/layout/_window_control.scss +++ b/src/tabbar/layout/_window_control.scss @@ -53,7 +53,7 @@ See the above repository for updates as well as full license text. */ } @include OS($win) { - :root[sizemode="maximized"][tabsintitlebar] { + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) { @if mode.isESR() { --uc-titlebar-padding: 8px; } @@ -62,11 +62,11 @@ See the above repository for updates as well as full license text. */ margin-top: calc(-1 * var(--uc-titlebar-padding)); } } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { + :root[sizemode="normal"]:is([tabsintitlebar], [customtitlebar]) #titlebar, + :root[sizemode="maximized"]:is([tabsintitlebar], [customtitlebar]) #titlebar { appearance: none !important; } - .browser-toolbar:not(.titlebar-color) { + .browser-toolbar:not(.titlebar-color):not(.browser-titlebar) { background-clip: border-box !important; } } @@ -130,12 +130,16 @@ See the above repository for updates as well as full license text. */ } } - :root[tabsintitlebar] #titlebar { - z-index: 1; - &:-moz-window-inactive { - opacity: 1 !important; - .titlebar-buttonbox { - opacity: var(--inactive-titlebar-opacity); + :root:is([tabsintitlebar], [customtitlebar]) { + #titlebar, + #toolbar-menubar, + #TabsToolbar { + z-index: 1; + &:-moz-window-inactive { + opacity: 1 !important; + .titlebar-buttonbox { + opacity: var(--inactive-titlebar-opacity); + } } } } diff --git a/src/tabbar/layout/_window_control_size.scss b/src/tabbar/layout/_window_control_size.scss index 6407d1b..d9c9a62 100644 --- a/src/tabbar/layout/_window_control_size.scss +++ b/src/tabbar/layout/_window_control_size.scss @@ -40,7 +40,7 @@ //------------------------------------------------------------------------------ -:root:is([tabsintitlebar], [sizemode="fullscreen"]) { +:root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: var(--uc-title-pre-spacer, 40px); // 30px --uc-window-drag-space-post: var(--uc-title-post-spacer, 40px); // 25px @@ -71,7 +71,7 @@ } } @include OS($mac) { - :root[tabsintitlebar] { + :root:is([tabsintitlebar], [customtitlebar]) { --uc-window-control-width: 72px; } :root[sizemode="fullscreen"] { @@ -79,12 +79,12 @@ } } -:root:is([tabsintitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { +:root:is([tabsintitlebar][sizemode="maximized"], [customtitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { @include _remove_spacer_pre; } @include Option("userChrome.tabbar.one_liner") { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + :root:is([tabsintitlebar], [customtitlebar], [sizemode="fullscreen"]) { @include NotOption("userChrome.tabbar.one_liner.responsive") { @include _remove_spacer_oneLiner; } diff --git a/src/theme/_fully_color.scss b/src/theme/_fully_color.scss index 54e5449..2808b0a 100644 --- a/src/theme/_fully_color.scss +++ b/src/theme/_fully_color.scss @@ -57,7 +57,6 @@ html#main-window menupopup:not(.in-menulist) { background-color: var(--menuitem-hover-background-color) !important; } - &, &[disabled="true"] > .menu-iconic-left > .menu-iconic-icon { background-color: transparent !important; } @@ -134,6 +133,16 @@ html#main-window menupopup:not(.in-menulist) { background-color: var(--button-active-bgcolor) !important; } } +.notification-button.primary { + background-color: var(--button-primary-bgcolor) !important; + + &:hover { + background-color: var(--button-primary-hover-bgcolor) !important; + } + &:hover:active { + background-color: var(--button-primary-active-bgcolor) !important; + } +} html|button.ghost-button:not(.semi-transparent):enabled:hover { background-color: var(--button-hover-bgcolor) !important; @@ -177,8 +186,8 @@ html|button.ghost-button:not(.semi-transparent):enabled:hover:active { background-color: var(--button-active-bgcolor, color-mix(in srgb, currentColor 30%, transparent)) !important; } -#editBMPanel_namePicker, -#editBMPanel_tagsField { +#editBookmarkPanel #editBMPanel_namePicker, +#editBookmarkPanel #editBMPanel_tagsField { --input-bgcolor: var(--arrowpanel-background, Field); --input-color: var(--arrowpanel-color, FieldText); } diff --git a/src/theme/_non_native_menu.scss b/src/theme/_non_native_menu.scss index 691fab6..7ef8727 100644 --- a/src/theme/_non_native_menu.scss +++ b/src/theme/_non_native_menu.scss @@ -100,7 +100,8 @@ menuitem[type="radio"] { appearance: none !important; /* to override more specific selectors above. */ width: unset !important; - .menu-iconic-icon { + .menu-iconic-icon, + .menu-icon { appearance: none !important; } } @@ -128,7 +129,8 @@ checkboxes and radio buttons because the native drawing we use on other Windows versions looks pretty bad with the Win10 styles, so for now we'll insert a generic checkmark icon for both types. */ - menuitem[checked="true"] > .menu-iconic-left { + menuitem[checked="true"] > .menu-iconic-left, + menuitem[checked="true"] > .menu-icon { -moz-context-properties: fill, fill-opacity !important; fill: currentColor !important; fill-opacity: var(--menu-icon-opacity) !important; @@ -157,7 +159,7 @@ //-- Global - Menu Popup ----------------------------------------------------- menupopup { /* Disable the default appearance so we can override the native styling. */ - appearance: none !important !important; + appearance: none !important; /* Prevent any background or border around the outside of the shadow. */ background-color: transparent !important; @@ -233,23 +235,27 @@ background-color: transparent !important; } - #context-navigation > .menuitem-iconic > .menu-iconic-left { + #context-navigation > .menuitem-iconic > .menu-iconic-left, + #context-navigation > .menuitem-iconic > .menu-icon { margin: 0 !important; padding: 0 !important; } /* override styles from shared/contextmenu.inc.css */ - #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic > .menu-icon { width: var(--menuitem-min-width) !important; height: 32px !important; padding: 8px 1em !important; margin: 0 !important; } - #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-icon { background-color: var(--menuitem-hover-background-color) !important; // -moz-menuhover } - #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left > .menu-iconic-icon { + #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left > .menu-iconic-icon, + #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-icon { background-color: transparent !important;// -moz-menuhoverdisabled } diff --git a/src/theme/system_default_theme/_mac.scss b/src/theme/system_default_theme/_mac.scss index f48da86..8f34b91 100644 --- a/src/theme/system_default_theme/_mac.scss +++ b/src/theme/system_default_theme/_mac.scss @@ -184,10 +184,14 @@ background-color: var(--mac-bgcolor) !important; } - :root#{$not_lwtheme} #titlebar { + :root#{$not_lwtheme} #titlebar, + :root#{$not_lwtheme} #toolbar-menubar, + :root#{$not_lwtheme} #TabsToolbar { --mac-hover-bgcolor: ButtonFace; } - #{selector.nest(system-default-theme(), "#titlebar")} { + #{selector.nest(system-default-theme(), "#titlebar")}, + #{selector.nest(system-default-theme(), "#toolbar-menubar")}, + #{selector.nest(system-default-theme(), "#TabsToolbar")} { --button-hover-bgcolor: var(--mac-hover-bgcolor); --button-active-bgcolor: var(--mac-hover-bgcolor); --toolbarbutton-hover-background: var(--mac-hover-bgcolor); @@ -237,6 +241,18 @@ /* Hard Coded */ @include Option("userChrome.tab.color_like_toolbar") { + :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] /* Legacy */ + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected], :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] /* Legacy */ #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox diff --git a/src/theme/system_default_theme/_urlbar_focus_color.scss b/src/theme/system_default_theme/_urlbar_focus_color.scss index 029b598..eefdd96 100644 --- a/src/theme/system_default_theme/_urlbar_focus_color.scss +++ b/src/theme/system_default_theme/_urlbar_focus_color.scss @@ -1,7 +1,7 @@ /*= Common - URL Bar focus color =============================================*/ // TODO: `OS` Not covered case -$_urlBarFocusSelector: ":root[tabsintitlebar]:not(:-moz-window-inactive)#{$not_lwtheme}"; -$_urlBarFocusDarkSelector: ":root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive)"; +$_urlBarFocusSelector: ":root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive)#{$not_lwtheme}"; +$_urlBarFocusDarkSelector: ":root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive)"; @media (-moz-windows-accent-color-in-titlebar), (-moz-gtk-csd-available) { /* URL Bar */ diff --git a/src/theme/system_default_theme/_win10.scss b/src/theme/system_default_theme/_win10.scss index 3d9c7e8..0b5f1b4 100644 --- a/src/theme/system_default_theme/_win10.scss +++ b/src/theme/system_default_theme/_win10.scss @@ -244,8 +244,8 @@ @include Option("userChrome.theme.system_default") { @media (-moz-windows-accent-color-in-titlebar) { - :root[tabsintitlebar]:not(:-moz-window-inactive)#{$not_lwtheme}, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive)#{$not_lwtheme}, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --toolbarseparator-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* As default */ } } @@ -286,7 +286,9 @@ } /*- Toolbar ----------------------------------------------------------------*/ - #{selector.nest(system-default-theme(), "#titlebar")} { + #{selector.nest(system-default-theme(), "#titlebar")}, + #{selector.nest(system-default-theme(), "#toolbar-menubar")}, + #{selector.nest(system-default-theme(), "#TabsToolbar")} { --button-hover-bgcolor: var(--win-sidebar-button-hover-bgcolor); --button-active-bgcolor: var(--win-sidebar-button-hover-active-bgcolor); --toolbarbutton-hover-background: var(--win-sidebar-button-hover-bgcolor); @@ -320,7 +322,7 @@ } $panelZoomButtons: "#appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2"; - #{selector.nest(system-default-theme(), "toolbarbutton.subviewbutton:not([disabled], [open], :active, #{$panelZoomButtons}):is(:hover)")} { + #{selector.nest(system-default-theme(), "toolbarbutton.subviewbutton:not([disabled], [open], :active, #{$panelZoomButtons}, .unified-extensions-item-menu-button):is(:hover)")} { background-color: var(--win-hover-bgcolor) !important; } #{selector.nest(system-default-theme(), "toolbarbutton.subviewbutton:not([disabled], #{$panelZoomButtons}):is([open], :hover:active)")} { @@ -340,6 +342,24 @@ } } + :root#{$not_lwtheme} + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root[lwtheme-mozlightdark] /* Legacy */ + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + #tabbrowser-tabs:not([movingtab]) + > #pinned-tabs-container + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), :root#{$not_lwtheme} #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox @@ -369,12 +389,13 @@ /*= Windows10 - Titlebar accent color ========================================*/ @media (-moz-windows-accent-color-in-titlebar) { /* Tab Bar */ - :root[tabsintitlebar]:not(:-moz-window-inactive)#{$not_lwtheme}, - :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { - .titlebar-color { + :root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive)#{$not_lwtheme}, + :root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + .titlebar-color, + .browser-titlebar { @include AccentColor { - color: $accentTextColor; - background-color: $accentColor; // TODO: Use $accentBorder + color: $accentTextColor !important; + background-color: $accentColor !important; // TODO: Use $accentBorder } } diff --git a/src/theme/transparent/_general_element_background.scss b/src/theme/transparent/_general_element_background.scss index 7287ce3..dea3edd 100644 --- a/src/theme/transparent/_general_element_background.scss +++ b/src/theme/transparent/_general_element_background.scss @@ -17,7 +17,9 @@ ); } -#titlebar { +#titlebar, +#toolbar-menubar, +#TabsToolbar { --uc-frame-element-background: #{ frameTransparent() }; --toolbarbutton-hover-background: #{ frameTransparent(85%) }; diff --git a/src/theme/transparent/_win11.scss b/src/theme/transparent/_win11.scss index 73f661b..adea6e9 100644 --- a/src/theme/transparent/_win11.scss +++ b/src/theme/transparent/_win11.scss @@ -7,8 +7,12 @@ --lwt-text-color: WindowText !important; } -#titlebar .toolbarbutton-1 { - --toolbarbutton-icon-fill: var(--lwt-text-color) !important; +#titlebar, +#toolbar-menubar, +#TabsToolbar { + .toolbarbutton-1 { + --toolbarbutton-icon-fill: var(--lwt-text-color) !important; + } } :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { diff --git a/src/utils/_mode.scss b/src/utils/_mode.scss index 0543dae..6b65c20 100644 --- a/src/utils/_mode.scss +++ b/src/utils/_mode.scss @@ -1,5 +1,5 @@ $_osESR: false !default; -$_mediaPref: false !default; +$_pref: "support-bool-pref" !default; // "support-bool-pref" | "media-bool-pref" | "media-pref" @mixin ESR() { $_osESR: true !global; @@ -9,12 +9,16 @@ $_mediaPref: false !default; $_osESR: false !global; } -@mixin SUPPORT_PREF() { - $_mediaPref: false !global; +@mixin SUPPORT_BOOL_PREF() { + $_pref: "support-bool-pref" !global; +} + +@mixin MEDIA_BOOL_PREF() { + $_pref: "media-bool-pref" !global; } @mixin MEDIA_PREF() { - $_mediaPref: true !global; + $_pref: "media-pref" !global; } @function isESR() { @@ -25,6 +29,14 @@ $_mediaPref: false !default; @return not $_osESR; } -@function isMediaPref() { - @return isSTANDARD() and $_mediaPref; +@function isSupportBoolPref() { + @return isESR() and $_pref == "support-bool-pref"; +} + +@function isMediaBoolPref() { + @return isSTANDARD() and $_pref == "media-bool-pref"; +} + +@function isMediaPref() { + @return isSTANDARD() and $_pref == "media-pref"; } diff --git a/src/utils/_option.scss b/src/utils/_option.scss index 6649f91..604db93 100644 --- a/src/utils/_option.scss +++ b/src/utils/_option.scss @@ -11,14 +11,17 @@ @return if($positive, $str, "(not " + $str + ")"); } -@function _pref($option) { +@function _supportPref($option) { @return "-moz-bool-pref(\"#{$option}\")"; } -@function _prefMedia($option) { +@function _mediaBoolPref($option) { @return "(-moz-bool-pref: \"#{$option}\")"; } +@function _mediaPref($option) { + @return "-moz-pref(\"#{$option}\")"; +} -@function _getOption($optionNames, $positive: true) { +@function _getOptionSupports($optionNames, $positive: true) { $result: ""; @for $i from 1 through length($optionNames) { $option: nth($optionNames, $i); @@ -30,27 +33,27 @@ $result: $result + _prefix($separator, $i); @if type-of($option) == "list" { - $result: $result + "(" + _getOption($option, $positive) + ")"; + $result: $result + "(" + _getOptionSupports($option, $positive) + ")"; } @else { - $result: $result + _not(_pref($option), $positive); + $result: $result + _not(_supportPref($option), $positive); } } @return $result; } -@function _optionWrapper($optionNames, $positive: true) { +@function _getOptionSupportsWrapper($optionNames, $positive: true) { // Test warning for top level `not` @if length($optionNames) == 1 { $option: nth($optionNames, 1); @if not (type-of($option) == "list") { - $option: _pref($option); + $option: _supportPref($option); @return if($positive, $option, "not " + $option); } } - @return _getOption($optionNames, $positive); + @return _getOptionSupports($optionNames, $positive); } -@function _getOptionMedia($optionNames, $positive: true) { +@function _getOptionMediaBool($optionNames, $positive: true) { $result: ""; @for $i from 1 through length($optionNames) { $option: nth($optionNames, $i); @@ -62,23 +65,60 @@ $result: $result + _prefix($separator, $i); @if type-of($option) == "list" { - $result: $result + _getOptionMedia($option, $positive) ; + $result: $result + _getOptionMediaBool($option, $positive) ; } @else { - $result: $result + _not(_prefMedia($option), $positive); + $result: $result + _not(_mediaBoolPref($option), $positive); } } @return $result; } +@function _getOptionMedia($optionNames, $positive: true) { + $result: ""; + @for $i from 1 through length($optionNames) { + $option: nth($optionNames, $i); + $separator: if( + list-separator($optionNames) == "comma", "or", if( + list-separator($optionNames) == "space", "and", null + ) + ); + $result: $result + _prefix($separator, $i); + + @if type-of($option) == "list" { + $result: $result + "(" + _getOptionMedia($option, $positive) + ")"; + } + @else { + $result: $result + _not(_mediaPref($option), $positive); + } + } + @return $result; +} +@function _getOptionMediaWrapper($optionNames, $positive: true) { + // Test warning for top level `not` + @if length($optionNames) == 1 { + $option: nth($optionNames, 1); + @if not (type-of($option) == "list") { + $option: _mediaPref($option); + @return if($positive, $option, "not " + $option); + } + } + @return _getOptionMedia($optionNames, $positive); +} + @mixin Option($optionNames...) { @if mode.isMediaPref() { - @media #{_getOptionMedia($optionNames)} { + @#{media} #{_getOptionMediaWrapper($optionNames)} { + @content; + } + } + @else if mode.isMediaBoolPref() { + @media #{_getOptionMediaBool($optionNames)} { @content; } } @else { - @supports #{_optionWrapper($optionNames)} { + @supports #{_getOptionSupportsWrapper($optionNames)} { @content; } } @@ -86,12 +126,17 @@ @mixin NotOption($optionNames...) { @if mode.isMediaPref() { - @media #{_getOptionMedia($optionNames, false)} { + @#{media} #{_getOptionMediaWrapper($optionNames, false)} { + @content; + } + } + @else if mode.isMediaBoolPref() { + @media #{_getOptionMediaBool($optionNames, false)} { @content; } } @else { - @supports #{_optionWrapper($optionNames, false)} { + @supports #{_getOptionSupportsWrapper($optionNames, false)} { @content; } } diff --git a/src/utils/_proton_elements.scss b/src/utils/_proton_elements.scss index 24b8d5e..bdc0acf 100644 --- a/src/utils/_proton_elements.scss +++ b/src/utils/_proton_elements.scss @@ -31,7 +31,7 @@ color: var(--in-content-primary-button-text-color) !important; background-color: var(--in-content-primary-button-background) !important; - background-image: url("chrome://global/skin/icons/radio.svg") !important; + background-image: url("../icons/radio.svg") !important; border-color: transparent !important; /* Style the button also when printing with "Print Backgrounds" unchecked */ diff --git a/user.js b/user.js index 06aa26f..7a47f7d 100644 --- a/user.js +++ b/user.js @@ -47,6 +47,9 @@ user_pref("userChrome.tab.bottom_rounded_corner", true); user_pref("userChrome.tab.photon_like_contextline", false); user_pref("userChrome.rounding.square_tab", false); +// Proton Only +// user_pref("userChrome.tab.supernova_like_contextline", true); + // == Theme Compatibility Settings ============================================= // user_pref("userChrome.compatibility.accent_color", true); // Firefox v103 Below // user_pref("userChrome.compatibility.covered_header_image", true); @@ -54,7 +57,6 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.compatibility.navbar_top_border", true); // user_pref("userChrome.compatibility.dynamic_separator", true); // Need dynamic_separator -// user_pref("userChrome.compatibility.os.linux_non_native_titlebar_button", true); // user_pref("userChrome.compatibility.os.windows_maximized", true); // user_pref("userChrome.compatibility.os.win11", true); @@ -283,7 +285,7 @@ user_pref("userContent.page.proton", true); // Need proton_color // ** Useful Options *********************************************************** // Tab preview // https://blog.nightly.mozilla.org/2024/02/06/a-preview-of-tab-previews-these-weeks-in-firefox-issue-153/ -user_pref("browser.tabs.cardPreview.enabled", true); +user_pref("browser.tabs.hoverPreview.enabled", true); // Paste suggestion at urlbar // https://blog.nightly.mozilla.org/2023/12/04/url-gonna-want-to-check-this-out-these-weeks-in-firefox-issue-150/ diff --git a/yarn.lock b/yarn.lock index b4142e8..ca52965 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,2448 +1,3966 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/compat-data@^7.20.5": - version "7.20.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" - integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" - integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.7" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/generator@^7.20.7", "@babel/generator@^7.7.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" - integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== - dependencies: - "@babel/types" "^7.20.7" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== - dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.20.7": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" - integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helpers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" - integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" - integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== - -"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" - integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - slash "^3.0.0" - -"@jest/core@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" - integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== - dependencies: - "@jest/console" "^29.3.1" - "@jest/reporters" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.2.0" - jest-config "^29.3.1" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-resolve-dependencies "^29.3.1" - jest-runner "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - jest-watcher "^29.3.1" - micromatch "^4.0.4" - pretty-format "^29.3.1" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== - dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-mock "^29.3.1" - -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== - dependencies: - jest-get-type "^29.2.0" - -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== - dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" - -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== - dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" - -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" - -"@jest/reporters@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" - integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@jridgewell/trace-mapping" "^0.3.15" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - jest-worker "^29.3.1" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/source-map@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" - integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== - dependencies: - "@jridgewell/trace-mapping" "^0.3.15" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" - integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== - dependencies: - "@jest/console" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" - integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== - dependencies: - "@jest/test-result" "^29.3.1" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - slash "^3.0.0" - -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== - dependencies: - "@jest/schemas" "^29.0.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@jridgewell/trace-mapping@^0.3.17": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@types/babel__core@^7.1.14": - version "7.1.20" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" - integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== - dependencies: - "@babel/types" "^7.3.0" - -"@types/css@^0.0.33": - version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/css/-/css-0.0.33.tgz#d0b49c4090c09c8e5dc01364560627e5ebb770f2" - integrity sha512-qjeDgh86R0LIeEM588q65yatc8Yyo/VvSIYFqq8JOIHDolhGNX0rz7k/OuxqDpnpqlefoHj8X4Ai/6hT9IWtKQ== - -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/node@*": - version "18.11.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" - integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== - -"@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^17.0.8": - version "17.0.18" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.18.tgz#466225ab4fbabb9aa711f5b406796daf1374a5b7" - integrity sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw== - dependencies: - "@types/yargs-parser" "*" - -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -babel-jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" - integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== - dependencies: - "@jest/transform" "^29.3.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.2.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" - integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" - integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== - dependencies: - babel-plugin-jest-hoist "^29.2.0" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001400: - version "1.0.30001441" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" - integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -"chokidar@>=3.0.0 <4.0.0": - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -ci-info@^3.2.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" - integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -clap@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/clap/-/clap-3.1.1.tgz#c2d2688f89eb90a68e7b8a6619ed2303b43c2c04" - integrity sha512-vp42956Ax06WwaaheYEqEOgXZ3VKJxgccZ0gJL0HpyiupkIS9RVJFo5eDU1BPeQAOqz+cclndZg4DCqG1sJReQ== - dependencies: - ansi-colors "^4.1.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-tree@^2.0.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" - integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== - dependencies: - mdn-data "2.0.30" - source-map-js "^1.0.1" - -css@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" - integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== - dependencies: - inherits "^2.0.4" - source-map "^0.6.1" - source-map-resolve "^0.6.0" - -csstree-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/csstree-validator/-/csstree-validator-3.0.0.tgz#041579bf815d88b0a72452453605b32b2a1f422f" - integrity sha512-Y5OSq3wI0Xz6L7DCgJQtQ97U+v99SkX9r663VjpvUMJPhEr0A149OxiAGqcnokB5bt81irgnMudspBzujzqn0w== - dependencies: - clap "^3.0.0" - css-tree "^2.0.2" - resolve "^1.20.0" - -debug@^4.1.0, debug@^4.1.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" - integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== - -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== - -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== - dependencies: - "@jest/expect-utils" "^29.3.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - -fast-glob@^3.2.12: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fastq@^1.6.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" - integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -immutable@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" - integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" - integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== - dependencies: - execa "^5.0.0" - p-limit "^3.1.0" - -jest-circus@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" - integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - p-limit "^3.1.0" - pretty-format "^29.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" - integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== - dependencies: - "@jest/core" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" - integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.1" - "@jest/types" "^29.3.1" - babel-jest "^29.3.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.3.1" - jest-environment-node "^29.3.1" - jest-get-type "^29.2.0" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-runner "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.3.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-docblock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" - integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" - integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== - dependencies: - "@jest/types" "^29.3.1" - chalk "^4.0.0" - jest-get-type "^29.2.0" - jest-util "^29.3.1" - pretty-format "^29.3.1" - -jest-environment-node-single-context@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-node-single-context/-/jest-environment-node-single-context-29.0.0.tgz#1959273b6b33b6ec63605863d8768488a247b91d" - integrity sha512-/XB09Hje38Kl5k9ISUpXNom3M4DQo5ifEsnELPFP5r3yrJDRyNQCEjL/9ScUN6z6UeF4FCNZUsiJIX/tGtTXNw== - dependencies: - jest-environment-node "^29.0.1" - -jest-environment-node@^29.0.1, jest-environment-node@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" - integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" - -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== - dependencies: - "@jest/types" "^29.3.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" - integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== - dependencies: - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== - dependencies: - chalk "^4.0.0" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-util "^29.3.1" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" - integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== - -jest-resolve-dependencies@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" - integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== - dependencies: - jest-regex-util "^29.2.0" - jest-snapshot "^29.3.1" - -jest-resolve@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" - integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-pnp-resolver "^1.2.2" - jest-util "^29.3.1" - jest-validate "^29.3.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" - integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== - dependencies: - "@jest/console" "^29.3.1" - "@jest/environment" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.2.0" - jest-environment-node "^29.3.1" - jest-haste-map "^29.3.1" - jest-leak-detector "^29.3.1" - jest-message-util "^29.3.1" - jest-resolve "^29.3.1" - jest-runtime "^29.3.1" - jest-util "^29.3.1" - jest-watcher "^29.3.1" - jest-worker "^29.3.1" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" - integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/globals" "^29.3.1" - "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.3.1" - graceful-fs "^4.2.9" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - natural-compare "^1.4.0" - pretty-format "^29.3.1" - semver "^7.3.5" - -jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" - integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== - dependencies: - "@jest/types" "^29.3.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.2.0" - leven "^3.1.0" - pretty-format "^29.3.1" - -jest-watcher@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" - integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== - dependencies: - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.3.1" - string-length "^4.0.1" - -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== - dependencies: - "@types/node" "*" - jest-util "^29.3.1" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" - integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== - dependencies: - "@jest/core" "^29.3.1" - "@jest/types" "^29.3.1" - import-local "^3.0.2" - jest-cli "^29.3.1" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json5@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -mdn-data@2.0.30: - version "2.0.30" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" - integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.6: - version "2.0.8" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" - integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -prettier@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" - integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== - -pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.20.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -sass-true@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/sass-true/-/sass-true-7.0.0.tgz#eabbc92f29b2d602a57234ec0fe65050fb0df930" - integrity sha512-sRdXX7MrrYdg+lPRm+/vIr8wVvDrNtWj3ttOVyIMHZQ8vNoV67+YjZKTsY9+B4Ecee+/U3ryXKJLi1YcMEkaJQ== - dependencies: - "@types/css" "^0.0.33" - css "^3.0.0" - jest-diff "^29.3.1" - lodash "^4.17.21" - -sass@^1.57.1: - version "1.57.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" - integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - -semver@^6.0.0, semver@^6.3.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.5: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-resolve@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" - integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -v8-to-istanbul@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" - integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.3.1: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@ampproject/remapping@npm:^2.1.0": + version: 2.2.0 + resolution: "@ampproject/remapping@npm:2.2.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.1.0" + "@jridgewell/trace-mapping": "npm:^0.3.9" + checksum: 10c0/d267d8def81d75976bed4f1f81418a234a75338963ed0b8565342ef3918b07e9043806eb3a1736df7ac0774edb98e2890f880bba42817f800495e4ae3fac995e + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/code-frame@npm:7.18.6" + dependencies: + "@babel/highlight": "npm:^7.18.6" + checksum: 10c0/e3966f2717b7ebd9610524730e10b75ee74154f62617e5e115c97dbbbabc5351845c9aa850788012cb4d9aee85c3dc59fe6bef36690f244e8dcfca34bd35e9c9 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.22.13": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": "npm:^7.22.13" + chalk: "npm:^2.4.2" + checksum: 10c0/f4cc8ae1000265677daf4845083b72f88d00d311adb1a93c94eb4b07bf0ed6828a81ae4ac43ee7d476775000b93a28a9cddec18fbdc5796212d8dcccd5de72bd + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.20.5": + version: 7.20.10 + resolution: "@babel/compat-data@npm:7.20.10" + checksum: 10c0/5394197084af5118287e20ea8e4942c43bb4047943ddb12cb19d44c19eeeaf038459b087adb2e6b7d46780543d10b3a1a415441fc8fb98f6dc9d7e902a19e325 + languageName: node + linkType: hard + +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3": + version: 7.20.7 + resolution: "@babel/core@npm:7.20.7" + dependencies: + "@ampproject/remapping": "npm:^2.1.0" + "@babel/code-frame": "npm:^7.18.6" + "@babel/generator": "npm:^7.20.7" + "@babel/helper-compilation-targets": "npm:^7.20.7" + "@babel/helper-module-transforms": "npm:^7.20.7" + "@babel/helpers": "npm:^7.20.7" + "@babel/parser": "npm:^7.20.7" + "@babel/template": "npm:^7.20.7" + "@babel/traverse": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + convert-source-map: "npm:^1.7.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.1" + semver: "npm:^6.3.0" + checksum: 10c0/d94ba353a18550e181a7510aecbd7fd307d29d586f6532e00b57c540f29314623cc77b0a894f28abeb478b14426c6f6d01cd8d9f52bd9a5d30c9b2e0497d3e1c + languageName: node + linkType: hard + +"@babel/generator@npm:^7.20.7, @babel/generator@npm:^7.7.2": + version: 7.20.7 + resolution: "@babel/generator@npm:7.20.7" + dependencies: + "@babel/types": "npm:^7.20.7" + "@jridgewell/gen-mapping": "npm:^0.3.2" + jsesc: "npm:^2.5.1" + checksum: 10c0/b22032867dfad3115404ea74fd063079883428cf838ec490a1f64d2e5e4dd82f94f77df90eb95a57740fb387a115b5ffe655e768cb50862832c6f9f6ffb4be79 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" + dependencies: + "@babel/types": "npm:^7.23.0" + "@jridgewell/gen-mapping": "npm:^0.3.2" + "@jridgewell/trace-mapping": "npm:^0.3.17" + jsesc: "npm:^2.5.1" + checksum: 10c0/b7d8727c574119b5ef06e5d5d0d8d939527d51537db4b08273caebb18f3f2b1d4517b874776085e161fd47d28f26b22c08e7f270b64f43b2afd4a60c5936d6cd + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helper-compilation-targets@npm:7.20.7" + dependencies: + "@babel/compat-data": "npm:^7.20.5" + "@babel/helper-validator-option": "npm:^7.18.6" + browserslist: "npm:^4.21.3" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/68c3e12e04c8f26c82a1aabb8003610b818d4171e0b885d1ca87c700acd7f0c50a7f4f1d3c0044947e327cb5670294b55c666d09109144b3b01021c587401e4c + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/helper-environment-visitor@npm:7.18.9" + checksum: 10c0/a69dd50ea91d8143b899a40ca7a387fa84dbaa02e606d8692188c7c59bd4007bcd632c189f7b7dab72cb7a016e159557a6fccf7093ab9b584d87cf2ea8cf36b7 + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: 10c0/e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": "npm:^7.22.15" + "@babel/types": "npm:^7.23.0" + checksum: 10c0/d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428 + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/60a3077f756a1cd9f14eb89f0037f487d81ede2b7cfe652ea6869cd4ec4c782b0fb1de01b8494b9a2d2050e3d154d7d5ad3be24806790acfb8cbe2073bf1e208 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-module-imports@npm:7.18.6" + dependencies: + "@babel/types": "npm:^7.18.6" + checksum: 10c0/a92e28fc4b5dbb0d0afd4a313efc0cf5b26ce1adc0c01fc22724c997789ac7d7f4f30bc9143d94a6ba8b0a035933cf63a727a365ce1c57dbca0935f48de96244 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.20.7": + version: 7.20.11 + resolution: "@babel/helper-module-transforms@npm:7.20.11" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.18.9" + "@babel/helper-module-imports": "npm:^7.18.6" + "@babel/helper-simple-access": "npm:^7.20.2" + "@babel/helper-split-export-declaration": "npm:^7.18.6" + "@babel/helper-validator-identifier": "npm:^7.19.1" + "@babel/template": "npm:^7.20.7" + "@babel/traverse": "npm:^7.20.10" + "@babel/types": "npm:^7.20.7" + checksum: 10c0/a6cc533c3c9a2ed939f041002c142611a657a6defffda195f56936793f7ceb6c9abcc0c5e77e49da9e1584f60442e04107937394dbd6560d1094cfd7f3a9a152 + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.20.2 + resolution: "@babel/helper-plugin-utils@npm:7.20.2" + checksum: 10c0/bf4de040e57b7ddff36ea599e963c391eb246d5a95207bb9ef3e33073c451bcc0821e3a9cc08dfede862a6dcc110d7e6e7d9a483482f852be358c5b60add499c + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.20.2": + version: 7.20.2 + resolution: "@babel/helper-simple-access@npm:7.20.2" + dependencies: + "@babel/types": "npm:^7.20.2" + checksum: 10c0/79cea28155536c74b37839748caea534bc413fac8c512e6101e9eecfe83f670db77bc782bdb41114caecbb1e2a73007ff6015d6a5ce58cae5363b8c5bd2dcee9 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-split-export-declaration@npm:7.18.6" + dependencies: + "@babel/types": "npm:^7.18.6" + checksum: 10c0/1335b510a9aefcbf60d89648e622715774e56040d72302dc5e176c8d837c9ab81414ccfa9ed771a9f98da7192579bb12ab7a95948bfdc69b03b4a882b3983e48 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/d83e4b623eaa9622c267d3c83583b72f3aac567dc393dda18e559d79187961cb29ae9c57b2664137fc3d19508370b12ec6a81d28af73a50e0846819cb21c6e44 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.19.4": + version: 7.19.4 + resolution: "@babel/helper-string-parser@npm:7.19.4" + checksum: 10c0/e20c81582e75df2a020a1c547376668a6e1e1c2ca535a6b7abb25b83d5536c99c0d113184bbe87c1a26e923a9bb0c6e5279fca8db6bd609cd3499fafafc01598 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-string-parser@npm:7.22.5" + checksum: 10c0/6b0ff8af724377ec41e5587fffa7605198da74cb8e7d8d48a36826df0c0ba210eb9fedb3d9bef4d541156e0bd11040f021945a6cbb731ccec4aefb4affa17aa4 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/helper-validator-identifier@npm:7.19.1" + checksum: 10c0/f978ecfea840f65b64ab9e17fac380625a45f4fe1361eeb29867fcfd1c9eaa72abd7023f2f40ac3168587d7e5153660d16cfccb352a557be2efd347a051b4b20 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-validator-option@npm:7.18.6" + checksum: 10c0/7a1452725b87e6b0d26e8a981ad1e19a24d3bb8b17fb25d1254d6d1f3f2f2efd675135417d44f704ea4dd88f854e7a0a31967322dcb3e06fa80fc4fec71853a5 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helpers@npm:7.20.7" + dependencies: + "@babel/template": "npm:^7.20.7" + "@babel/traverse": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + checksum: 10c0/3b84879d243c64c7ce5abf2f1a845236f443a3c70beb5897075641a9a1deaa841697b0aeaf9963c471a7e817ca4bed8a8af7677cc3d65904eb7bdffed3e8bcf9 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/highlight@npm:7.18.6" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.18.6" + chalk: "npm:^2.0.0" + js-tokens: "npm:^4.0.0" + checksum: 10c0/a6a6928d25099ef04c337fcbb829fab8059bb67d31ac37212efd611bdbe247d0e71a5096c4524272cb56399f40251fac57c025e42d3bc924db0183a6435a60ac + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.22.13": + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.22.20" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + checksum: 10c0/f3c3a193afad23434297d88e81d1d6c0c2cf02423de2139ada7ce0a7fc62d8559abf4cc996533c1a9beca7fc990010eb8d544097f75e818ac113bf39ed810aa2 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/parser@npm:7.20.7" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/fd75ef65d5b98b88f8cfa14b72909473ddb783d536399a8a911eff4b3a5022b71d12725ddf6ee796de7b3d2243ce33b991efaab3921a28ece91668c7887dce18 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/parser@npm:7.23.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/ab4ea9360ed4ba3c728c5a9bf33035103ebde20a7e943c4ae1d42becb02a313d731d12a93c795c5a19777031e4022e64b92a52262eda902522a1a18649826283 + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8 + languageName: node + linkType: hard + +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/686891b81af2bc74c39013655da368a480f17dd237bf9fbc32048e5865cb706d5a8f65438030da535b332b1d6b22feba336da8fa931f663b6b34e13147d12dde + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.8.3": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.12.13" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0b08b5e4c3128523d8e346f8cfc86824f0da2697b1be12d71af50a31aff7a56ceb873ed28779121051475010c28d6146a6bfea8518b150b71eeb4e46190172ee + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.18.6 + resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d6d88b16e727bfe75c6ad6674bf7171bd5b2007ebab3f785eff96a98889cc2dd9d9b05a9ad8a265e04e67eddee81d63fcade27db033bb5aa5cc73f45cc450d6d + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81 + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.8.3": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.20.0 + resolution: "@babel/plugin-syntax-typescript@npm:7.20.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.19.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c57bb9b717b3b7324cc0c094d411bac23f6d78ed5e4e06fb89e3e8de37437e649c53440d8c29ecb3875f398ad1a9e8acc96e3af6b3802e83f7eab855de319e80 + languageName: node + linkType: hard + +"@babel/template@npm:^7.20.7, @babel/template@npm:^7.3.3": + version: 7.20.7 + resolution: "@babel/template@npm:7.20.7" + dependencies: + "@babel/code-frame": "npm:^7.18.6" + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + checksum: 10c0/1c6dcf9ac92769e6ab5e3d9048975537d26ab00b869646462ab4583d45e419c01db5144715ec0d70548835a3098c5d5416148c4a0b996a95e8e0b9dc8d042dd3 + languageName: node + linkType: hard + +"@babel/template@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" + dependencies: + "@babel/code-frame": "npm:^7.22.13" + "@babel/parser": "npm:^7.22.15" + "@babel/types": "npm:^7.22.15" + checksum: 10c0/9312edd37cf1311d738907003f2aa321a88a42ba223c69209abe4d7111db019d321805504f606c7fd75f21c6cf9d24d0a8223104cd21ebd207e241b6c551f454 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.20.10, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.7.2": + version: 7.23.2 + resolution: "@babel/traverse@npm:7.23.2" + dependencies: + "@babel/code-frame": "npm:^7.22.13" + "@babel/generator": "npm:^7.23.0" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.23.0" + "@babel/types": "npm:^7.23.0" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: 10c0/d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3": + version: 7.20.7 + resolution: "@babel/types@npm:7.20.7" + dependencies: + "@babel/helper-string-parser": "npm:^7.19.4" + "@babel/helper-validator-identifier": "npm:^7.19.1" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/df0061f306bd95389604075ba5a88e984a801635c70c77b3b6ae8ab44675064b9ef4088c6c78dbf786a28efc662ad37f9c09f8658ba44c12cb8dd6f450a8bde7 + languageName: node + linkType: hard + +"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/types@npm:7.23.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.22.5" + "@babel/helper-validator-identifier": "npm:^7.22.20" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/70e4db41acb6793d0eb8d81a2fa88f19ee661219b84bd5f703dbdb54eb3a4d3c0dfc55e69034c945b479df9f43fd4b1376480aaccfc19797ce5af1c5d2576b36 + languageName: node + linkType: hard + +"@babel/types@npm:^7.8.3": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 + languageName: node + linkType: hard + +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 10c0/6b80ae4cb3db53f486da2dc63b6e190a74c8c3cca16bb2733f234a0b6a9382b09b146488ae08e2b22cf00f6c83e20f3e040a2f7894f05c045c946d6a090b1d52 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: "npm:^5.3.1" + find-up: "npm:^4.1.0" + get-package-type: "npm:^0.1.0" + js-yaml: "npm:^3.13.1" + resolve-from: "npm:^5.0.0" + checksum: 10c0/dd2a8b094887da5a1a2339543a4933d06db2e63cbbc2e288eb6431bd832065df0c099d091b6a67436e71b7d6bf85f01ce7c15f9253b4cbebcc3b9a496165ba42 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a + languageName: node + linkType: hard + +"@jest/console@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/console@npm:29.3.1" + dependencies: + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + jest-message-util: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + slash: "npm:^3.0.0" + checksum: 10c0/f4773d50b6588eb44daffdf808891f32a827e3f99ae8cca74efb5a9fc117655e418e97e13fcbbf530062321fa940ba88d028e66d27bdf97e41231b2e5b114626 + languageName: node + linkType: hard + +"@jest/core@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/core@npm:29.3.1" + dependencies: + "@jest/console": "npm:^29.3.1" + "@jest/reporters": "npm:^29.3.1" + "@jest/test-result": "npm:^29.3.1" + "@jest/transform": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-changed-files: "npm:^29.2.0" + jest-config: "npm:^29.3.1" + jest-haste-map: "npm:^29.3.1" + jest-message-util: "npm:^29.3.1" + jest-regex-util: "npm:^29.2.0" + jest-resolve: "npm:^29.3.1" + jest-resolve-dependencies: "npm:^29.3.1" + jest-runner: "npm:^29.3.1" + jest-runtime: "npm:^29.3.1" + jest-snapshot: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + jest-validate: "npm:^29.3.1" + jest-watcher: "npm:^29.3.1" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.3.1" + slash: "npm:^3.0.0" + strip-ansi: "npm:^6.0.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10c0/06a930365498e9cf902537746090c6ce2d98c1c394d81a458f0a74c287a5321306cad25c1aec1f55222b9e3d514d7f8de6e8d44eea3bc6d63ae75b618eb473bc + languageName: node + linkType: hard + +"@jest/environment@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/environment@npm:29.3.1" + dependencies: + "@jest/fake-timers": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + jest-mock: "npm:^29.3.1" + checksum: 10c0/46982c52649854e7766b8129a81a59fefefb898f853fe2a1394e72c5492a183f4e596eb91f3d4ba614a7117869ccf2c509ba190747c96085de4fa8300bb65226 + languageName: node + linkType: hard + +"@jest/expect-utils@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/expect-utils@npm:29.3.1" + dependencies: + jest-get-type: "npm:^29.2.0" + checksum: 10c0/dc58ff9c5c7e893c056f3560cb1445771dcc1555df0b5aeff4808c6425ca9b921eae5b4f92b433b89c401e445694f5484b352f06620bac9e7cb97b8f56ee3e21 + languageName: node + linkType: hard + +"@jest/expect@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/expect@npm:29.3.1" + dependencies: + expect: "npm:^29.3.1" + jest-snapshot: "npm:^29.3.1" + checksum: 10c0/705bdad3f5af7c87d252a26dab890ac7f560d53439b364b4260f68b2dba271464bd7de7cfe2b03db7abaccc409da4da338075f870a1c31a1b4770bab6e67c53f + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/fake-timers@npm:29.3.1" + dependencies: + "@jest/types": "npm:^29.3.1" + "@sinonjs/fake-timers": "npm:^9.1.2" + "@types/node": "npm:*" + jest-message-util: "npm:^29.3.1" + jest-mock: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + checksum: 10c0/b2fe1ea5d8ff3aa9ef099550d5897adba0ed53f8971e134ad589a52346b1f6914df986ef5c847264f7446a7dcae66946f4107cb1087b630a447cf13ad334b59b + languageName: node + linkType: hard + +"@jest/globals@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/globals@npm:29.3.1" + dependencies: + "@jest/environment": "npm:^29.3.1" + "@jest/expect": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + jest-mock: "npm:^29.3.1" + checksum: 10c0/cda0fc6e1f8fd5a72f576c227db7a0b5ec47baa168e7aae0aca2b8f8d08d97b0c563a154460b96dcbaf3991584111a852ce783ceb66fc526cf440faa668b3893 + languageName: node + linkType: hard + +"@jest/reporters@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/reporters@npm:29.3.1" + dependencies: + "@bcoe/v8-coverage": "npm:^0.2.3" + "@jest/console": "npm:^29.3.1" + "@jest/test-result": "npm:^29.3.1" + "@jest/transform": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@jridgewell/trace-mapping": "npm:^0.3.15" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + collect-v8-coverage: "npm:^1.0.0" + exit: "npm:^0.1.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^5.1.0" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.1.3" + jest-message-util: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + jest-worker: "npm:^29.3.1" + slash: "npm:^3.0.0" + string-length: "npm:^4.0.1" + strip-ansi: "npm:^6.0.0" + v8-to-istanbul: "npm:^9.0.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10c0/c961d44d868d019f6a722e31370785ffe91f1746ee65337c5bb1c557cc053bfc0a54fc07d703c6d3d2ad16e87241f2d22ee59895161049fafd4f94f893cdb9bf + languageName: node + linkType: hard + +"@jest/schemas@npm:^29.0.0": + version: 29.0.0 + resolution: "@jest/schemas@npm:29.0.0" + dependencies: + "@sinclair/typebox": "npm:^0.24.1" + checksum: 10c0/08c2f6b0237f52ab9448eb6633561ee1e499871082ac41a51b581e91571f6da317b4be0529307caf4cb3fd50798f7c096665db6bb2b5dde999a2c0c08b8775c9 + languageName: node + linkType: hard + +"@jest/source-map@npm:^29.2.0": + version: 29.2.0 + resolution: "@jest/source-map@npm:29.2.0" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.15" + callsites: "npm:^3.0.0" + graceful-fs: "npm:^4.2.9" + checksum: 10c0/6b63d7a1deb59f59fdd7c6f5700069401ec6228e788f3446a6f9ead2e4926c394e1d00eced3f77296a218089c0a173d2aeb5c7b9fd6205ddb160a9f28e644ea8 + languageName: node + linkType: hard + +"@jest/test-result@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/test-result@npm:29.3.1" + dependencies: + "@jest/console": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + collect-v8-coverage: "npm:^1.0.0" + checksum: 10c0/6433a278119d5cdca1f92d1727850c9092a816a95bd5f3efb86b413599f1281d3f4e44ce564e25428ee1759c46cf8916e86fe077c0d94026a4b9ca40cb6722ed + languageName: node + linkType: hard + +"@jest/test-sequencer@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/test-sequencer@npm:29.3.1" + dependencies: + "@jest/test-result": "npm:^29.3.1" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.3.1" + slash: "npm:^3.0.0" + checksum: 10c0/30399c44fcbacbe2b538b720d4857f2edf5be29b7ce7ea9c1a4af87d7526b5a0896d379bcf7a61608f18f86732edfbade24ec3b7091f9e26bb4bd0fe8a68fb79 + languageName: node + linkType: hard + +"@jest/transform@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/transform@npm:29.3.1" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/types": "npm:^29.3.1" + "@jridgewell/trace-mapping": "npm:^0.3.15" + babel-plugin-istanbul: "npm:^6.1.1" + chalk: "npm:^4.0.0" + convert-source-map: "npm:^2.0.0" + fast-json-stable-stringify: "npm:^2.1.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.3.1" + jest-regex-util: "npm:^29.2.0" + jest-util: "npm:^29.3.1" + micromatch: "npm:^4.0.4" + pirates: "npm:^4.0.4" + slash: "npm:^3.0.0" + write-file-atomic: "npm:^4.0.1" + checksum: 10c0/5e43dea16b6985f7f28bb7f1d8f7c8e1a980dd3325265ef48e8bbc7ba02530e26094541693ac1fb8dd791b7615adf3ef0b537d60ee8fe8299b1ab84f445451e0 + languageName: node + linkType: hard + +"@jest/types@npm:^29.3.1": + version: 29.3.1 + resolution: "@jest/types@npm:29.3.1" + dependencies: + "@jest/schemas": "npm:^29.0.0" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + "@types/istanbul-reports": "npm:^3.0.0" + "@types/node": "npm:*" + "@types/yargs": "npm:^17.0.8" + chalk: "npm:^4.0.0" + checksum: 10c0/c1ae1a66fbe403c82578d55cc5a061bffce2426f830c9365d0ab033f48580f3beb378631efe85e420709ff898fca6f7dd8fca9eb412dfed3d88a80c422065188 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.1.0": + version: 0.1.1 + resolution: "@jridgewell/gen-mapping@npm:0.1.1" + dependencies: + "@jridgewell/set-array": "npm:^1.0.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10c0/3d784d87aee604bc4d48d3d9e547e0466d9f4a432cd9b3a4f3e55d104313bf3945e7e970cd5fa767bc145df11f1d568a01ab6659696be41f0ed2a817f3b583a3 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.2 + resolution: "@jridgewell/gen-mapping@npm:0.3.2" + dependencies: + "@jridgewell/set-array": "npm:^1.0.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.9" + checksum: 10c0/82685c8735c63fe388badee45e2970a6bc83eed1c84d46d8652863bafeca22a6c6cc15812f5999a4535366f4668ccc9ba6d5c67dfb72e846fa8a063806f10afd + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:3.1.0": + version: 3.1.0 + resolution: "@jridgewell/resolve-uri@npm:3.1.0" + checksum: 10c0/78055e2526108331126366572045355051a930f017d1904a4f753d3f4acee8d92a14854948095626f6163cffc24ea4e3efa30637417bb866b84743dec7ef6fd9 + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: 10c0/0dbc9e29bc640bbbdc5b9876d2859c69042bfcf1423c1e6421bcca53e826660bff4e41c7d4bcb8dbea696404231a6f902f76ba41835d049e20f2dd6cffb713bf + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": + version: 1.1.2 + resolution: "@jridgewell/set-array@npm:1.1.2" + checksum: 10c0/bc7ab4c4c00470de4e7562ecac3c0c84f53e7ee8a711e546d67c47da7febe7c45cd67d4d84ee3c9b2c05ae8e872656cdded8a707a283d30bd54fbc65aef821ab + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": + version: 1.4.14 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" + checksum: 10c0/3fbaff1387c1338b097eeb6ff92890d7838f7de0dde259e4983763b44540bfd5ca6a1f7644dc8ad003a57f7e80670d5b96a8402f1386ba9aee074743ae9bad51 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: 10c0/0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.17 + resolution: "@jridgewell/trace-mapping@npm:0.3.17" + dependencies: + "@jridgewell/resolve-uri": "npm:3.1.0" + "@jridgewell/sourcemap-codec": "npm:1.4.14" + checksum: 10c0/40b65fcbdd7cc5a60dbe0a2780b6670ebbc1a31c96e43833e0bf2fee0773b1ba5137ab7d137b28fc3f215567bd5f9d06b7b30634ba15636c13bd8a863c20ae9a + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.17": + version: 0.3.20 + resolution: "@jridgewell/trace-mapping@npm:0.3.20" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/0ea0b2675cf513ec44dc25605616a3c9b808b9832e74b5b63c44260d66b58558bba65764f81928fc1033ead911f8718dca1134049c3e7a93937faf436671df31 + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.24.1": + version: 0.24.51 + resolution: "@sinclair/typebox@npm:0.24.51" + checksum: 10c0/458131e83ca59ad3721f0abeef2aa5220aff2083767e1143d75c67c85d55ef7a212f48f394471ee6bdd2e860ba30f09a489cdd2a28a2824d5b0d1014bdfb2552 + languageName: node + linkType: hard + +"@sinonjs/commons@npm:^1.7.0": + version: 1.8.6 + resolution: "@sinonjs/commons@npm:1.8.6" + dependencies: + type-detect: "npm:4.0.8" + checksum: 10c0/93b4d4e27e93652b83467869c2fe09cbd8f37cd5582327f0e081fbf9b93899e2d267db7b668c96810c63dc229867614ced825e5512b47db96ca6f87cb3ec0f61 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^9.1.2": + version: 9.1.2 + resolution: "@sinonjs/fake-timers@npm:9.1.2" + dependencies: + "@sinonjs/commons": "npm:^1.7.0" + checksum: 10c0/d9187f9130f03272562ff9845867299c6f7cf15157bbb3e6aca4a1f06d885b0eef54259d0ad41e2f8043dc530b4db730b6c9415b169033e7ba8fed0ad449ceec + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.1.14": + version: 7.1.20 + resolution: "@types/babel__core@npm:7.1.20" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10c0/f88025726047188c9ee96790294d5bb56bf452f6b65f80389788e8b11c16aab77fd709e2d1c07117ddee4e8a267615a88434b0570318301554daf304e20d7ad3 + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.4 + resolution: "@types/babel__generator@npm:7.6.4" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10c0/e0051b450e4ba2df0a7e386f08df902a4e920f6f8d6f185d69ddbe9b0e2e2d3ae434bb51e437bc0fca2a9a0f5dc4ca44d3a1941ef75e74371e8be5bf64416fe4 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.1 + resolution: "@types/babel__template@npm:7.4.1" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10c0/6f180e96c39765487f27e861d43eebed341ec7a2fc06cdf5a52c22872fae67f474ca165d149c708f4fd9d5482beb66c0a92f77411b234bb30262ed2303e50b1a + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.18.3 + resolution: "@types/babel__traverse@npm:7.18.3" + dependencies: + "@babel/types": "npm:^7.3.0" + checksum: 10c0/4214fd3e95925d9a7efa01142969a310263430d4f5de89be6c9c193110666677415161b474fa627d751dfd0f1eb7dc1c84c48f8b53098625c6bc78917683215a + languageName: node + linkType: hard + +"@types/css@npm:^0.0.33": + version: 0.0.33 + resolution: "@types/css@npm:0.0.33" + checksum: 10c0/6beba4b3b372872b082f20929c4f5bf408ffa53db9173b7654a7873479e7c080ec534a0635f985119d9ad5e33e211b009aefaf5209eb18ea7779b1e8cac84431 + languageName: node + linkType: hard + +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.5 + resolution: "@types/graceful-fs@npm:4.1.5" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/537cff67c75f25b86df8909131b4c2100028bb73368125cef1358b41ba016377d0fc86e9e6101c2d3860cb83aff1be27953616a918de5b318b5fb18c8f4de09d + languageName: node + linkType: hard + +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": + version: 2.0.4 + resolution: "@types/istanbul-lib-coverage@npm:2.0.4" + checksum: 10c0/af5f6b64e788331ed3f7b2e2613cb6ca659c58b8500be94bbda8c995ad3da9216c006f1cfe6f66b321c39392b1bda18b16e63cef090a77d24a00b4bd5ba3b018 + languageName: node + linkType: hard + +"@types/istanbul-lib-report@npm:*": + version: 3.0.0 + resolution: "@types/istanbul-lib-report@npm:3.0.0" + dependencies: + "@types/istanbul-lib-coverage": "npm:*" + checksum: 10c0/7ced458631276a28082ee40645224c3cdd8b861961039ff811d841069171c987ec7e50bc221845ec0d04df0022b2f457a21fb2f816dab2fbe64d59377b32031f + languageName: node + linkType: hard + +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.1 + resolution: "@types/istanbul-reports@npm:3.0.1" + dependencies: + "@types/istanbul-lib-report": "npm:*" + checksum: 10c0/e147f0db9346a0cae9a359220bc76f7c78509fb6979a2597feb24d64b6e8328d2d26f9d152abbd59c6bca721e4ea2530af20116d01df50815efafd1e151fd777 + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 18.11.18 + resolution: "@types/node@npm:18.11.18" + checksum: 10c0/1a308a03a7c1cfced411fc3187e49a507ab2b3ce7cdf0794b7511c8843aae5a8dbe52b16ba4217d2da1c8e3c50920c272b45fecff4cccc26606be7f42c33f4f5 + languageName: node + linkType: hard + +"@types/prettier@npm:^2.1.5": + version: 2.7.2 + resolution: "@types/prettier@npm:2.7.2" + checksum: 10c0/16ffbd1135c10027f118517d3b12aaaf3936be1f3c6e4c6c9c03d26d82077c2d86bf0dcad545417896f29e7d90faf058aae5c9db2e868be64298c644492ea29e + languageName: node + linkType: hard + +"@types/stack-utils@npm:^2.0.0": + version: 2.0.1 + resolution: "@types/stack-utils@npm:2.0.1" + checksum: 10c0/3327ee919a840ffe907bbd5c1d07dfd79137dd9732d2d466cf717ceec5bb21f66296173c53bb56cff95fae4185b9cd6770df3e9745fe4ba528bbc4975f54d13f + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.0 + resolution: "@types/yargs-parser@npm:21.0.0" + checksum: 10c0/cb89f3bb2e8002f1479a65a934e825be4cc18c50b350bbc656405d41cf90b8a299b105e7da497d7eb1aa460472a07d1e5a389f3af0862f1d1252279cfcdd017c + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.8": + version: 17.0.18 + resolution: "@types/yargs@npm:17.0.18" + dependencies: + "@types/yargs-parser": "npm:*" + checksum: 10c0/bbc5cb5ce68c547f1c5349d1352f6dbfef3a963e223b82f17d53771a689f879ee427042be57ec3aa35a10af643bd4e603aa6e35d1bd8b5bcf80396226c9c9c7b + languageName: node + linkType: hard + +"Lepton@workspace:.": + version: 0.0.0-use.local + resolution: "Lepton@workspace:." + dependencies: + csstree-validator: "npm:^3.0.0" + fast-glob: "npm:^3.2.12" + jest: "npm:^29.3.1" + jest-environment-node-single-context: "npm:^29.0.0" + prettier: "npm:^2.8.1" + sass: "npm:^1.57.1" + sass-true: "npm:^7.0.0" + languageName: unknown + linkType: soft + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: "npm:^4.3.4" + checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.1": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: "npm:^0.21.3" + checksum: 10c0/da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac + languageName: node + linkType: hard + +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: "npm:~1.0.2" + checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de + languageName: node + linkType: hard + +"atob@npm:^2.1.2": + version: 2.1.2 + resolution: "atob@npm:2.1.2" + bin: + atob: bin/atob.js + checksum: 10c0/ada635b519dc0c576bb0b3ca63a73b50eefacf390abb3f062558342a8d68f2db91d0c8db54ce81b0d89de3b0f000de71f3ae7d761fd7d8cc624278fe443d6c7e + languageName: node + linkType: hard + +"babel-jest@npm:^29.3.1": + version: 29.3.1 + resolution: "babel-jest@npm:29.3.1" + dependencies: + "@jest/transform": "npm:^29.3.1" + "@types/babel__core": "npm:^7.1.14" + babel-plugin-istanbul: "npm:^6.1.1" + babel-preset-jest: "npm:^29.2.0" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + slash: "npm:^3.0.0" + peerDependencies: + "@babel/core": ^7.8.0 + checksum: 10c0/0ac669113d54a331e43cf3a5f39895bb8feadaad76c741027197c9c63dedff1835f1414877931dcb2daca614d8b50bc3c9c671fd44b46dca365fbec1c42e661a + languageName: node + linkType: hard + +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-instrument: "npm:^5.0.4" + test-exclude: "npm:^6.0.0" + checksum: 10c0/1075657feb705e00fd9463b329921856d3775d9867c5054b449317d39153f8fbcebd3e02ebf00432824e647faff3683a9ca0a941325ef1afe9b3c4dd51b24beb + languageName: node + linkType: hard + +"babel-plugin-jest-hoist@npm:^29.2.0": + version: 29.2.0 + resolution: "babel-plugin-jest-hoist@npm:29.2.0" + dependencies: + "@babel/template": "npm:^7.3.3" + "@babel/types": "npm:^7.3.3" + "@types/babel__core": "npm:^7.1.14" + "@types/babel__traverse": "npm:^7.0.6" + checksum: 10c0/37888f5161cfefefebe7f81c6fb3cc3a38ff793f1b1d6196a5b5b3a72f778476cdfb78eb4a4e1bc09903f952bfc28c4854a88433e2dd31366512c85e493e32f9 + languageName: node + linkType: hard + +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.0.1 + resolution: "babel-preset-current-node-syntax@npm:1.0.1" + dependencies: + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-bigint": "npm:^7.8.3" + "@babel/plugin-syntax-class-properties": "npm:^7.8.3" + "@babel/plugin-syntax-import-meta": "npm:^7.8.3" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.8.3" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-top-level-await": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/5ba39a3a0e6c37d25e56a4fb843be632dac98d54706d8a0933f9bcb1a07987a96d55c2b5a6c11788a74063fb2534fe68c1f1dbb6c93626850c785e0938495627 + languageName: node + linkType: hard + +"babel-preset-jest@npm:^29.2.0": + version: 29.2.0 + resolution: "babel-preset-jest@npm:29.2.0" + dependencies: + babel-plugin-jest-hoist: "npm:^29.2.0" + babel-preset-current-node-syntax: "npm:^1.0.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/bc72a6a64dd77b1075cbeaa53ee925b33e78d32e44fe3676c57941baa3ae8f59f6e2f399cef5b2d3ce2eecefb41e401ed4e276f4310f36519f4821c57227fb16 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.2.0 + resolution: "binary-extensions@npm:2.2.0" + checksum: 10c0/d73d8b897238a2d3ffa5f59c0241870043aa7471335e89ea5e1ff48edb7c2d0bb471517a3e4c5c3f4c043615caa2717b5f80a5e61e07503d51dc85cb848e665d + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f + languageName: node + linkType: hard + +"braces@npm:^3.0.2, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 + languageName: node + linkType: hard + +"browserslist@npm:^4.21.3": + version: 4.21.4 + resolution: "browserslist@npm:4.21.4" + dependencies: + caniuse-lite: "npm:^1.0.30001400" + electron-to-chromium: "npm:^1.4.251" + node-releases: "npm:^2.0.6" + update-browserslist-db: "npm:^1.0.9" + bin: + browserslist: cli.js + checksum: 10c0/bbc5fe2b4280a590cb40b110cd282f18f4542d75ddb559dfe0a174fda0263d2a7dd5b1634d0f795d617d69cb5f9716479c4a90d9a954a7ef16bc0a2878965af8 + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: "npm:^0.4.0" + checksum: 10c0/24d8dfb7b6d457d73f32744e678a60cc553e4ec0e9e1a01cf614b44d85c3c87e188d3cc78ef0442ce5032ee6818de20a0162ba1074725c0d08908f62ea979227 + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 + languageName: node + linkType: hard + +"camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: 10c0/92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001400": + version: 1.0.30001441 + resolution: "caniuse-lite@npm:1.0.30001441" + checksum: 10c0/4b91bfc03cdbb9cf54225bbc36c2c568879d05ff8f2a34bdafbd7e5acc578d913b2d169bab4bf8a0992678e308779cd5603be0928d6552acefebfc52ded73aa1 + languageName: node + linkType: hard + +"chalk@npm:^2.0.0, chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: 10c0/57a09a86371331e0be35d9083ba429e86c4f4648ecbe27455dbfb343037c16ee6fdc7f6b61f433a57cc5ded5561d71c56a150e018f40c2ffb7bc93a26dae341e + languageName: node + linkType: hard + +"chokidar@npm:>=3.0.0 <4.0.0": + version: 3.5.3 + resolution: "chokidar@npm:3.5.3" + dependencies: + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.7.0 + resolution: "ci-info@npm:3.7.0" + checksum: 10c0/d2432ba9da65ae26e9599451638bf82d994008b9e231e4d29871d7c53346a744d4969e5aca93aa71465cb4cc08a7406c3e8c2dfa368ac80da4e87e22d94c32b5 + languageName: node + linkType: hard + +"cjs-module-lexer@npm:^1.0.0": + version: 1.2.2 + resolution: "cjs-module-lexer@npm:1.2.2" + checksum: 10c0/83330e1feda2e3699b8c305bfa8f841b41822049393f5eefeb574e60bde556e2a251ee9b7971cde0cb47ac4f7823bf4ab4a6005b8471f86ad9f5509eefb66cbd + languageName: node + linkType: hard + +"clap@npm:^3.0.0": + version: 3.1.1 + resolution: "clap@npm:3.1.1" + dependencies: + ansi-colors: "npm:^4.1.1" + checksum: 10c0/c89b15e105b67a765f8eedcfceb7a2ef9126b74264ee7f121aeaaaeaa6f470dcfef44906dcd8f34bbcb40ace40b15fc13aadf33b9dbb683e11e93cd02eabab9b + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 + languageName: node + linkType: hard + +"co@npm:^4.6.0": + version: 4.6.0 + resolution: "co@npm:4.6.0" + checksum: 10c0/c0e85ea0ca8bf0a50cbdca82efc5af0301240ca88ebe3644a6ffb8ffe911f34d40f8fbcf8f1d52c5ddd66706abd4d3bfcd64259f1e8e2371d4f47573b0dc8c28 + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.1 + resolution: "collect-v8-coverage@npm:1.0.1" + checksum: 10c0/df8192811a773d10978fd25060124e4228d9a86bab40de3f18df5ce1a3730832351a52ba1c0e3915d5bd638298fc7bc9723760d25f534462746e269a6f0ac91c + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f + languageName: node + linkType: hard + +"convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + languageName: node + linkType: hard + +"css-tree@npm:^2.0.2": + version: 2.3.1 + resolution: "css-tree@npm:2.3.1" + dependencies: + mdn-data: "npm:2.0.30" + source-map-js: "npm:^1.0.1" + checksum: 10c0/6f8c1a11d5e9b14bf02d10717fc0351b66ba12594166f65abfbd8eb8b5b490dd367f5c7721db241a3c792d935fc6751fbc09f7e1598d421477ad9fadc30f4f24 + languageName: node + linkType: hard + +"css@npm:^3.0.0": + version: 3.0.0 + resolution: "css@npm:3.0.0" + dependencies: + inherits: "npm:^2.0.4" + source-map: "npm:^0.6.1" + source-map-resolve: "npm:^0.6.0" + checksum: 10c0/c17cb4a46a39c11b00225f1314158a892828af34cdf3badc7e88084882e9f414e4902a1d59231c0854f310af30bde343fd8a9e79c6001426fe88af45d3312fe2 + languageName: node + linkType: hard + +"csstree-validator@npm:^3.0.0": + version: 3.0.0 + resolution: "csstree-validator@npm:3.0.0" + dependencies: + clap: "npm:^3.0.0" + css-tree: "npm:^2.0.2" + resolve: "npm:^1.20.0" + bin: + csstree-validator: bin/validate.js + checksum: 10c0/73ce07f7642e5709c501f2114ee9833122996c1ba94f476874415917da0e58592f23ac0ac2918913a512f0bbb637702be4f113c188ea18899a036af3cab2e38a + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.3.4": + version: 4.3.7 + resolution: "debug@npm:4.3.7" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b + languageName: node + linkType: hard + +"debug@npm:^4.1.0, debug@npm:^4.1.1": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 + languageName: node + linkType: hard + +"decode-uri-component@npm:^0.2.0": + version: 0.2.2 + resolution: "decode-uri-component@npm:0.2.2" + checksum: 10c0/1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31 + languageName: node + linkType: hard + +"dedent@npm:^0.7.0": + version: 0.7.0 + resolution: "dedent@npm:0.7.0" + checksum: 10c0/7c3aa00ddfe3e5fcd477958e156156a5137e3bb6ff1493ca05edff4decf29a90a057974cc77e75951f8eb801c1816cb45aea1f52d628cdd000b82b36ab839d1b + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2": + version: 4.2.2 + resolution: "deepmerge@npm:4.2.2" + checksum: 10c0/d6136eee869057fea7a829aa2d10073ed49db5216e42a77cc737dd385334aab9b68dae22020a00c24c073d5f79cbbdd3f11b8d4fc87700d112ddaa0e1f968ef2 + languageName: node + linkType: hard + +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: 10c0/c38cfc8eeb9fda09febb44bcd85e467c970d4e3bf526095394e5a4f18bc26dd0cf6b22c69c1fa9969261521c593836db335c2795218f6d781a512aea2fb8209d + languageName: node + linkType: hard + +"diff-sequences@npm:^29.3.1": + version: 29.3.1 + resolution: "diff-sequences@npm:29.3.1" + checksum: 10c0/adbacc8d56c42f73c12a90e253c2b7024d2cd52c30bd81a3960a9cfd35164f8ecd3d8dd82ded38b0e48585923b56bd28f9aae942e6d1b23f444213b9d786b925 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.251": + version: 1.4.284 + resolution: "electron-to-chromium@npm:1.4.284" + checksum: 10c0/33a7509755efbc0e13e81cdf0486ed37ea354857213b92a987a81e229083c1b2ee5f663c1103db9e5ec142a611e0daeeee02f757f7184833866f8aecb7046c2b + languageName: node + linkType: hard + +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 10c0/1573d0ae29ab34661b6c63251ff8f5facd24ccf6a823f19417ae8ba8c88ea450325788c67f16c99edec8de4b52ce93a10fe441ece389fd156e88ee7dab9bfa35 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: "npm:^0.2.1" + checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: 10c0/afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 10c0/2530479fe8db57eace5e8646c9c2a9c80fa279614986d16dcc6bcaceb63ae77f05a851ba6c43756d816c61d7f4534baf56e3c705e3e0d884818a46808811c507 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.0" + human-signals: "npm:^2.1.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.1" + onetime: "npm:^5.1.2" + signal-exit: "npm:^3.0.3" + strip-final-newline: "npm:^2.0.0" + checksum: 10c0/c8e615235e8de4c5addf2fa4c3da3e3aa59ce975a3e83533b4f6a71750fb816a2e79610dc5f1799b6e28976c9ae86747a36a606655bf8cb414a74d8d507b304f + languageName: node + linkType: hard + +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: 10c0/71d2ad9b36bc25bb8b104b17e830b40a08989be7f7d100b13269aaae7c3784c3e6e1e88a797e9e87523993a25ba27c8958959a554535370672cfb4d824af8989 + languageName: node + linkType: hard + +"expect@npm:^29.3.1": + version: 29.3.1 + resolution: "expect@npm:29.3.1" + dependencies: + "@jest/expect-utils": "npm:^29.3.1" + jest-get-type: "npm:^29.2.0" + jest-matcher-utils: "npm:^29.3.1" + jest-message-util: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + checksum: 10c0/0662836949648b65ea80c0fc4777818bd384c00d2ad3d442ec1bea69a604097f94673a432245ae750b09bc8d292f381a31dcc59cf0433a9b2adfba501e257d63 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.12": + version: 3.2.12 + resolution: "fast-glob@npm:3.2.12" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.4" + checksum: 10c0/08604fb8ef6442ce74068bef3c3104382bb1f5ab28cf75e4ee904662778b60ad620e1405e692b7edea598ef445f5d387827a965ba034e1892bf54b1dfde97f26 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.1.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.14.0 + resolution: "fastq@npm:1.14.0" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10c0/11d27499021965f51db44f258085d84686920318f9a7f778567b097729c01a8e96ecd2ccfca33f1dbc0e01e26a4e48188a2d772c789071abd43d3ad96cdac3ec + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: "npm:2.1.1" + checksum: 10c0/feae89ac148adb8f6ae8ccd87632e62b13563e6fb114cacb5265c51f585b17e2e268084519fb2edd133872f1d47a18e6bfd7e5e08625c0d41b93149694187581 + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 + languageName: node + linkType: hard + +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 + languageName: node + linkType: hard + +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/be78a3efa3e181cda3cf7a4637cb527bcebb0bd0ea0440105a3bb45b86f9245b307dc10a2507e8f4498a7d4ec349d1910f4d73e4d4495b16103106e07eee735b + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.1": + version: 1.1.1 + resolution: "function-bind@npm:1.1.1" + checksum: 10c0/60b74b2407e1942e1ed7f8c284f8ef714d0689dcfce5319985a5b7da3fc727f40b4a59ec72dc55aa83365ad7b8fa4fac3a30d93c850a2b452f29ae03dbc10a1e + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: 10c0/e34cdf447fdf1902a1f6d5af737eaadf606d2ee3518287abde8910e04159368c268568174b2e71102b87b26c2020486f126bfca9c4fb1ceb986ff99b52ecd1be + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.9": + version: 4.2.10 + resolution: "graceful-fs@npm:4.2.10" + checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952 + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: "npm:^1.1.1" + checksum: 10c0/e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b + languageName: node + linkType: hard + +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: 10c0/208e8a12de1a6569edbb14544f4567e6ce8ecc30b9394fcaa4e7bb1e60c12a7c9a1ed27e31290817157e8626f3a4f29e76c8747030822eb84a6abb15c255f0a0 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:4" + checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: 10c0/695edb3edfcfe9c8b52a76926cd31b36978782062c0ed9b1192b36bebc75c4c87c82e178dfcb0ed0fc27ca59d434198aac0bd0be18f5781ded775604db22304a + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"immutable@npm:^4.0.0": + version: 4.2.1 + resolution: "immutable@npm:4.2.1" + checksum: 10c0/27b29dbbd5ca722a973c688c0ad91f2d09ea12058ff763045730abf12e20b6171da45379722c0bfb0220103a535244fbff9030fe73854eb22f017526643b1cc0 + languageName: node + linkType: hard + +"import-local@npm:^3.0.2": + version: 3.1.0 + resolution: "import-local@npm:3.1.0" + dependencies: + pkg-dir: "npm:^4.2.0" + resolve-cwd: "npm:^3.0.0" + bin: + import-local-fixture: fixtures/cli.js + checksum: 10c0/c67ecea72f775fe8684ca3d057e54bdb2ae28c14bf261d2607c269c18ea0da7b730924c06262eca9aed4b8ab31e31d65bc60b50e7296c85908a56e2f7d41ecd2 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: "npm:^2.0.0" + checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 + languageName: node + linkType: hard + +"is-core-module@npm:^2.9.0": + version: 2.11.0 + resolution: "is-core-module@npm:2.11.0" + dependencies: + has: "npm:^1.0.3" + checksum: 10c0/fd8f78ef4e243c295deafa809f89381d89aff5aaf38bb63266b17ee6e34b6a051baa5bdc2365456863336d56af6a59a4c1df1256b4eff7d6b4afac618586b004 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: 10c0/2957cab387997a466cd0bf5c1b6047bd21ecb32bdcfd8996b15747aa01002c1c88731802f1b3d34ac99f4f6874b626418bd118658cf39380fe5fff32a3af9c4d + languageName: node + linkType: hard + +"is-glob@npm:^4.0.1, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.0 + resolution: "istanbul-lib-coverage@npm:3.2.0" + checksum: 10c0/10ecb00a50cac2f506af8231ce523ffa1ac1310db0435c8ffaabb50c1d72539906583aa13c84f8835dc103998b9989edc3c1de989d2e2a96a91a9ba44e5db6b9 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" + dependencies: + "@babel/core": "npm:^7.12.3" + "@babel/parser": "npm:^7.14.7" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^6.3.0" + checksum: 10c0/8a1bdf3e377dcc0d33ec32fe2b6ecacdb1e4358fd0eb923d4326bb11c67622c0ceb99600a680f3dad5d29c66fc1991306081e339b4d43d0b8a2ab2e1d910a6ee + languageName: node + linkType: hard + +"istanbul-lib-report@npm:^3.0.0": + version: 3.0.0 + resolution: "istanbul-lib-report@npm:3.0.0" + dependencies: + istanbul-lib-coverage: "npm:^3.0.0" + make-dir: "npm:^3.0.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/81b0d5187c7603ed71bdea0b701a7329f8146549ca19aa26d91b4a163aea756f9d55c1a6dc1dcd087e24dfcb99baa69e266a68644fbfd5dc98107d6f6f5948d2 + languageName: node + linkType: hard + +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: "npm:^4.1.1" + istanbul-lib-coverage: "npm:^3.0.0" + source-map: "npm:^0.6.1" + checksum: 10c0/19e4cc405016f2c906dff271a76715b3e881fa9faeb3f09a86cb99b8512b3a5ed19cadfe0b54c17ca0e54c1142c9c6de9330d65506e35873994e06634eebeb66 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.3": + version: 3.1.5 + resolution: "istanbul-reports@npm:3.1.5" + dependencies: + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: 10c0/3a147171bffdbd3034856410b6ec81637871d17d10986513328fec23df6b666f66bd08ea480f5b7a5b9f7e8abc30f3e3c2e7d1b661fc57cdc479aaaa677b1011 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + +"jest-changed-files@npm:^29.2.0": + version: 29.2.0 + resolution: "jest-changed-files@npm:29.2.0" + dependencies: + execa: "npm:^5.0.0" + p-limit: "npm:^3.1.0" + checksum: 10c0/2d3ed094ff26e6c3d5151d3bc6314c352c96f2070a3c92278711a214eeae2a6f931d619843f9e3a796c066a2ad1a7cc22f30f9e21c8bbde2fbaddbd10a64f8b8 + languageName: node + linkType: hard + +"jest-circus@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-circus@npm:29.3.1" + dependencies: + "@jest/environment": "npm:^29.3.1" + "@jest/expect": "npm:^29.3.1" + "@jest/test-result": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + co: "npm:^4.6.0" + dedent: "npm:^0.7.0" + is-generator-fn: "npm:^2.0.0" + jest-each: "npm:^29.3.1" + jest-matcher-utils: "npm:^29.3.1" + jest-message-util: "npm:^29.3.1" + jest-runtime: "npm:^29.3.1" + jest-snapshot: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + p-limit: "npm:^3.1.0" + pretty-format: "npm:^29.3.1" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10c0/01f706a16b2a89fc1af2df984c4bae5286a2540f0ddc3a252c165825161a3c234c11d85d73856693ac3a5789d199fe6574899323cad1b0905a23e4a8a1af5a56 + languageName: node + linkType: hard + +"jest-cli@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-cli@npm:29.3.1" + dependencies: + "@jest/core": "npm:^29.3.1" + "@jest/test-result": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + chalk: "npm:^4.0.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + import-local: "npm:^3.0.2" + jest-config: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + jest-validate: "npm:^29.3.1" + prompts: "npm:^2.0.1" + yargs: "npm:^17.3.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10c0/df1beb004be8913bcabe536b3071ec6568524b8d94ba480423ad4c89c03660163a54615c0e6e557a7894b24ea2c68bf556ee1af06f2cbf5e4e0c9ac6ae223b90 + languageName: node + linkType: hard + +"jest-config@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-config@npm:29.3.1" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/test-sequencer": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + babel-jest: "npm:^29.3.1" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + deepmerge: "npm:^4.2.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-circus: "npm:^29.3.1" + jest-environment-node: "npm:^29.3.1" + jest-get-type: "npm:^29.2.0" + jest-regex-util: "npm:^29.2.0" + jest-resolve: "npm:^29.3.1" + jest-runner: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + jest-validate: "npm:^29.3.1" + micromatch: "npm:^4.0.4" + parse-json: "npm:^5.2.0" + pretty-format: "npm:^29.3.1" + slash: "npm:^3.0.0" + strip-json-comments: "npm:^3.1.1" + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 10c0/395f9057cc93e59ea433901c1edc9660eb18e3543c214f4064e2be6e193f8e3db452995d91267fc21b6e53ab85b4f6fbb94db31c5543ec5db1c6dc44b157f950 + languageName: node + linkType: hard + +"jest-diff@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-diff@npm:29.3.1" + dependencies: + chalk: "npm:^4.0.0" + diff-sequences: "npm:^29.3.1" + jest-get-type: "npm:^29.2.0" + pretty-format: "npm:^29.3.1" + checksum: 10c0/6bbe1fc91f9e7351e995f725029d984392fd0fe2374e64953c2b38a8d857f93b845fcf5d9421cccf2be077f651374f6b7ca6c5970687b2b6521452c15c1e3286 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.2.0": + version: 29.2.0 + resolution: "jest-docblock@npm:29.2.0" + dependencies: + detect-newline: "npm:^3.0.0" + checksum: 10c0/2e5ac2ce86475afa4b0f15fa388206f187d936d0612e45ad29e0aa18158ee951c1d83b1f1ec7deee535f7afa80dbbc875d79398879703045a262dbf8344280de + languageName: node + linkType: hard + +"jest-each@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-each@npm:29.3.1" + dependencies: + "@jest/types": "npm:^29.3.1" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.2.0" + jest-util: "npm:^29.3.1" + pretty-format: "npm:^29.3.1" + checksum: 10c0/c40262f290cf396406289d1a3884a02048b155e3d55da061f0b5d32b385cc6030799c88998733392335dd69c78da8aa6bed82399f5e8db642f5ef9e370425fc3 + languageName: node + linkType: hard + +"jest-environment-node-single-context@npm:^29.0.0": + version: 29.0.0 + resolution: "jest-environment-node-single-context@npm:29.0.0" + dependencies: + jest-environment-node: "npm:^29.0.1" + checksum: 10c0/e041082d0a91693b2159abcf749d25bcd168d84e6b4d82eca063fde7f2988ef654b369850dbef07cb681a3fd0cd42c5a9ffa8e0967faaca854f78b190be0d52a + languageName: node + linkType: hard + +"jest-environment-node@npm:^29.0.1, jest-environment-node@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-environment-node@npm:29.3.1" + dependencies: + "@jest/environment": "npm:^29.3.1" + "@jest/fake-timers": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + jest-mock: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + checksum: 10c0/b74e1ed332eaab4a15384ddfceb340867aa98cc2c4387d8001fe13087a3586e91f89c79f830f3f4a72547c08283b030cc4267d1a91456ab69b9e29602773b280 + languageName: node + linkType: hard + +"jest-get-type@npm:^29.2.0": + version: 29.2.0 + resolution: "jest-get-type@npm:29.2.0" + checksum: 10c0/6466631b344ff8e9d3fa6a47bafa4fc2baf42ec8b4f5de5c99fa1edda128af869da319af4cf770662776e4ed7a3e44656eba690cf5b662c664605b0331762bc7 + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-haste-map@npm:29.3.1" + dependencies: + "@jest/types": "npm:^29.3.1" + "@types/graceful-fs": "npm:^4.1.3" + "@types/node": "npm:*" + anymatch: "npm:^3.0.3" + fb-watchman: "npm:^2.0.0" + fsevents: "npm:^2.3.2" + graceful-fs: "npm:^4.2.9" + jest-regex-util: "npm:^29.2.0" + jest-util: "npm:^29.3.1" + jest-worker: "npm:^29.3.1" + micromatch: "npm:^4.0.4" + walker: "npm:^1.0.8" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/9f1309a727cf91ac15e329ce8f266c289bc9df4ccf1577f2187cd90ef6dbe4d7e2872432e5a8054a500340458e8c0a03f12a50e415cf305720dbd1e229531e08 + languageName: node + linkType: hard + +"jest-leak-detector@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-leak-detector@npm:29.3.1" + dependencies: + jest-get-type: "npm:^29.2.0" + pretty-format: "npm:^29.3.1" + checksum: 10c0/d9d6e107a49cf44d748936a60a3190175b76e5d9aabd9c40c0196dafa8941fd6cb3ef60e57a85f65f5ce466d28b14ad7fceea83f81ec1e8769ae9cde5ceb901a + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-matcher-utils@npm:29.3.1" + dependencies: + chalk: "npm:^4.0.0" + jest-diff: "npm:^29.3.1" + jest-get-type: "npm:^29.2.0" + pretty-format: "npm:^29.3.1" + checksum: 10c0/4efdcc2fa33a403285e26521f795c9c7ad537a30e5b4183a8d97fd9f05251107ef2ef1397dbb420a2517fa91606655cb1103a0c60a52b1f003d928dbea3963e3 + languageName: node + linkType: hard + +"jest-message-util@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-message-util@npm:29.3.1" + dependencies: + "@babel/code-frame": "npm:^7.12.13" + "@jest/types": "npm:^29.3.1" + "@types/stack-utils": "npm:^2.0.0" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.3.1" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10c0/09291af22383d14a6ac0e4faea6382e07e38a89b67985ac48fd4604037572c847021d471f11f1866fd696875218996740a10a176acc26fbe072e4394d52129e0 + languageName: node + linkType: hard + +"jest-mock@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-mock@npm:29.3.1" + dependencies: + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + jest-util: "npm:^29.3.1" + checksum: 10c0/d36a54364721e80a95f9af43358e25513d6f052a53b6625bd5238948d9d297ea3c180893cedbcc9e68c1e7b2e9326ac6ae08195b9c0578692a278323fe493ae4 + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: 10c0/86eec0c78449a2de733a6d3e316d49461af6a858070e113c97f75fb742a48c2396ea94150cbca44159ffd4a959f743a47a8b37a792ef6fdad2cf0a5cba973fac + languageName: node + linkType: hard + +"jest-regex-util@npm:^29.2.0": + version: 29.2.0 + resolution: "jest-regex-util@npm:29.2.0" + checksum: 10c0/7e500f4f6fcbf5f46d284e83c9ade2e47707ee51e90d82e531fe10de05924a13dff89280d7184f1050129a070ce6db6336b41e2fd3bd07b8c32a91e8235f9840 + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-resolve-dependencies@npm:29.3.1" + dependencies: + jest-regex-util: "npm:^29.2.0" + jest-snapshot: "npm:^29.3.1" + checksum: 10c0/93c23ac52ec60bc7c5f672acc19dbed113bf152f36f416e59c6f5cf94266349aeb963657dfd7bddcf29eee4c7151aa8a8b4856e47ee07afda56c02fdea0e19cf + languageName: node + linkType: hard + +"jest-resolve@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-resolve@npm:29.3.1" + dependencies: + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.3.1" + jest-pnp-resolver: "npm:^1.2.2" + jest-util: "npm:^29.3.1" + jest-validate: "npm:^29.3.1" + resolve: "npm:^1.20.0" + resolve.exports: "npm:^1.1.0" + slash: "npm:^3.0.0" + checksum: 10c0/61aca0adae54fa62262f31e98ee5c8be19a9704d3c5684604a8308fa724b4dca54dd82be2d68307d7e95153dbdb459c19bab57fdc8a26da96d966823e97d4d1e + languageName: node + linkType: hard + +"jest-runner@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-runner@npm:29.3.1" + dependencies: + "@jest/console": "npm:^29.3.1" + "@jest/environment": "npm:^29.3.1" + "@jest/test-result": "npm:^29.3.1" + "@jest/transform": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + graceful-fs: "npm:^4.2.9" + jest-docblock: "npm:^29.2.0" + jest-environment-node: "npm:^29.3.1" + jest-haste-map: "npm:^29.3.1" + jest-leak-detector: "npm:^29.3.1" + jest-message-util: "npm:^29.3.1" + jest-resolve: "npm:^29.3.1" + jest-runtime: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + jest-watcher: "npm:^29.3.1" + jest-worker: "npm:^29.3.1" + p-limit: "npm:^3.1.0" + source-map-support: "npm:0.5.13" + checksum: 10c0/ba1edbf662cd5a8b63a0b58842a6daa3e1fbb98dd30bdd1636ec0662c460b49fd3bd6d0851c5b6a899c952b7cffb649ba7d2b25cabcfe9097efbde49123a1694 + languageName: node + linkType: hard + +"jest-runtime@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-runtime@npm:29.3.1" + dependencies: + "@jest/environment": "npm:^29.3.1" + "@jest/fake-timers": "npm:^29.3.1" + "@jest/globals": "npm:^29.3.1" + "@jest/source-map": "npm:^29.2.0" + "@jest/test-result": "npm:^29.3.1" + "@jest/transform": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + cjs-module-lexer: "npm:^1.0.0" + collect-v8-coverage: "npm:^1.0.0" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.3.1" + jest-message-util: "npm:^29.3.1" + jest-mock: "npm:^29.3.1" + jest-regex-util: "npm:^29.2.0" + jest-resolve: "npm:^29.3.1" + jest-snapshot: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + slash: "npm:^3.0.0" + strip-bom: "npm:^4.0.0" + checksum: 10c0/585cfbfc45280c673ff4137f432f7713284d976a7b769a0a2b520527a93bc15ee59e166255fcbc518387f073019d05eff3b373e33e8d94117ffc98d8ec700ff0 + languageName: node + linkType: hard + +"jest-snapshot@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-snapshot@npm:29.3.1" + dependencies: + "@babel/core": "npm:^7.11.6" + "@babel/generator": "npm:^7.7.2" + "@babel/plugin-syntax-jsx": "npm:^7.7.2" + "@babel/plugin-syntax-typescript": "npm:^7.7.2" + "@babel/traverse": "npm:^7.7.2" + "@babel/types": "npm:^7.3.3" + "@jest/expect-utils": "npm:^29.3.1" + "@jest/transform": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/babel__traverse": "npm:^7.0.6" + "@types/prettier": "npm:^2.1.5" + babel-preset-current-node-syntax: "npm:^1.0.0" + chalk: "npm:^4.0.0" + expect: "npm:^29.3.1" + graceful-fs: "npm:^4.2.9" + jest-diff: "npm:^29.3.1" + jest-get-type: "npm:^29.2.0" + jest-haste-map: "npm:^29.3.1" + jest-matcher-utils: "npm:^29.3.1" + jest-message-util: "npm:^29.3.1" + jest-util: "npm:^29.3.1" + natural-compare: "npm:^1.4.0" + pretty-format: "npm:^29.3.1" + semver: "npm:^7.3.5" + checksum: 10c0/ca65a637fc9547dea580342247f6adcdd83cf9bacc0af7ad2ff2b8a0d3310a09b983708071382f16957d717b90670b22cbf3849c46e2ec0f2c45d769826e12f3 + languageName: node + linkType: hard + +"jest-util@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-util@npm:29.3.1" + dependencies: + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + graceful-fs: "npm:^4.2.9" + picomatch: "npm:^2.2.3" + checksum: 10c0/c03606c389cf6f454962e4670fcb5d346e0cef166d71a6d70cde2ffaff9a0744fbf7b0651a01ac07e5ade790e95937bcaa604601ebb4c8dbf3e4c641027e61d0 + languageName: node + linkType: hard + +"jest-validate@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-validate@npm:29.3.1" + dependencies: + "@jest/types": "npm:^29.3.1" + camelcase: "npm:^6.2.0" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.2.0" + leven: "npm:^3.1.0" + pretty-format: "npm:^29.3.1" + checksum: 10c0/5398f1c324582f290a99f6d68d9345ff9d16bbdcce06dfa4a81b0115aeeef6f9252cb64396c9ab968dafddbe762f68c8874b6c993a991b1c7f6f5e55cccb31a9 + languageName: node + linkType: hard + +"jest-watcher@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-watcher@npm:29.3.1" + dependencies: + "@jest/test-result": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + jest-util: "npm:^29.3.1" + string-length: "npm:^4.0.1" + checksum: 10c0/d3d029762c2d431bcff21635d959eb0aa000cc480e2a47277e8d36c57b8a76f6deab721015948cb8448238331813edcb44bec20f29670f80621709b0c0ca30ef + languageName: node + linkType: hard + +"jest-worker@npm:^29.3.1": + version: 29.3.1 + resolution: "jest-worker@npm:29.3.1" + dependencies: + "@types/node": "npm:*" + jest-util: "npm:^29.3.1" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10c0/8f089e3283c2a84d70d24caacfcf9986592ebde6757d938aa43a2a9d59607724da16a148d9dee93197a25c2fe4f2ee84ade105a88edc4c168ca2ad7881a56837 + languageName: node + linkType: hard + +"jest@npm:^29.3.1": + version: 29.3.1 + resolution: "jest@npm:29.3.1" + dependencies: + "@jest/core": "npm:^29.3.1" + "@jest/types": "npm:^29.3.1" + import-local: "npm:^3.0.2" + jest-cli: "npm:^29.3.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10c0/97dae1a4346280c7ba6aa361b48d37e6776d338e308c2f188b4493f435d9c87c923658084b86e6c51f7a48bf5000e3879afee46141c8ee6a4275994cabd3a29a + languageName: node + linkType: hard + +"js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 + languageName: node + linkType: hard + +"json5@npm:^2.2.1": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c + languageName: node + linkType: hard + +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: 10c0/cd3a0b8878e7d6d3799e54340efe3591ca787d9f95f109f28129bdd2915e37807bf8918bb295ab86afb8c82196beec5a1adcaf29042ce3f2bd932b038fe3aa4b + languageName: node + linkType: hard + +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 10c0/cd778ba3fbab0f4d0500b7e87d1f6e1f041507c56fdcd47e8256a3012c98aaee371d4c15e0a76e0386107af2d42e2b7466160a2d80688aaa03e66e49949f42df + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: "npm:^4.1.0" + checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 + languageName: node + linkType: hard + +"lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 + languageName: node + linkType: hard + +"make-dir@npm:^3.0.0": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: "npm:^6.0.0" + checksum: 10c0/56aaafefc49c2dfef02c5c95f9b196c4eb6988040cf2c712185c7fe5c99b4091591a7fc4d4eafaaefa70ff763a26f6ab8c3ff60b9e75ea19876f49b18667ecaa + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" + dependencies: + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" + is-lambda: "npm:^1.0.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + proc-log: "npm:^4.2.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^10.0.0" + checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e + languageName: node + linkType: hard + +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: "npm:1.0.5" + checksum: 10c0/b0e6e599780ce6bab49cc413eba822f7d1f0dfebd1c103eaa3785c59e43e22c59018323cf9e1708f0ef5329e94a745d163fcbb6bff8e4c6742f9be9e86f3500c + languageName: node + linkType: hard + +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: 10c0/a2c472ea16cee3911ae742593715aa4c634eb3d4b9f1e6ada0902aa90df13dcbb7285d19435f3ff213ebaa3b2e0c0265c1eb0e3fb278fda7f8919f046a410cd9 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: "npm:^3.0.2" + picomatch: "npm:^2.3.1" + checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.1.2" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc + languageName: node + linkType: hard + +"ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^4.1.0" + semver: "npm:^7.3.5" + tar: "npm:^6.2.1" + which: "npm:^4.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: 10c0/a6a4d8369e2f2720e9c645255ffde909c0fbd41c92ea92a5607fc17055955daac99c1ff589d421eee12a0d24e99f7bfc2aabfeb1a4c14742f6c099a51863f31a + languageName: node + linkType: hard + +"node-releases@npm:^2.0.6": + version: 2.0.8 + resolution: "node-releases@npm:2.0.8" + checksum: 10c0/4b58f44de428b630fae7e8bcd7bf8e4030dab628122acff3ce2df6bb480c00b97319bb9408e3be23b258329350c31e1cb27a232ba548c35f3bce2d647717be58 + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10c0/6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: "npm:^2.1.0" + checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 + languageName: node + linkType: hard + +"p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b + languageName: node + linkType: hard + +"parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": "npm:^7.0.0" + error-ex: "npm:^1.3.1" + json-parse-even-better-errors: "npm:^2.3.0" + lines-and-columns: "npm:^1.1.6" + checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be + languageName: node + linkType: hard + +"pirates@npm:^4.0.4": + version: 4.0.5 + resolution: "pirates@npm:4.0.5" + checksum: 10c0/58b6ff0f137a3d70ff34ac4802fd19819cdc19b53e9c95adecae6c7cfc77719a11f561ad85d46e79e520ef57c31145a564c8bc3bee8cfee75d441fab2928a51d + languageName: node + linkType: hard + +"pkg-dir@npm:^4.2.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: "npm:^4.0.0" + checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 + languageName: node + linkType: hard + +"prettier@npm:^2.8.1": + version: 2.8.1 + resolution: "prettier@npm:2.8.1" + bin: + prettier: bin-prettier.js + checksum: 10c0/66a2967780f7ebb724e0470c61b97ac19d2e91258f26288e4920138621a845958d86df23ec37c9342ddf475872396f2c458e9fbabb095631b03e436f315002b2 + languageName: node + linkType: hard + +"pretty-format@npm:^29.3.1": + version: 29.3.1 + resolution: "pretty-format@npm:29.3.1" + dependencies: + "@jest/schemas": "npm:^29.0.0" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^18.0.0" + checksum: 10c0/8c0b27a7f31c678a382de70217c524b752b14c6aaf56f94098b04208d91965e4b4f92c268e6c1124c20c3cf8de146dd4ba6a4d1f1033ae67c0dcccd4de23e98b + languageName: node + linkType: hard + +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"prompts@npm:^2.0.1": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: "npm:^3.0.3" + sisteransi: "npm:^1.0.5" + checksum: 10c0/16f1ac2977b19fe2cf53f8411cc98db7a3c8b115c479b2ca5c82b5527cd937aa405fa04f9a5960abeb9daef53191b53b4d13e35c1f5d50e8718c76917c5f1ea4 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 + languageName: node + linkType: hard + +"react-is@npm:^18.0.0": + version: 18.2.0 + resolution: "react-is@npm:18.2.0" + checksum: 10c0/6eb5e4b28028c23e2bfcf73371e72cd4162e4ac7ab445ddae2afe24e347a37d6dc22fae6e1748632cd43c6d4f9b8f86dcf26bf9275e1874f436d129952528ae0 + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: "npm:^2.2.1" + checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 + languageName: node + linkType: hard + +"resolve-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-cwd@npm:3.0.0" + dependencies: + resolve-from: "npm:^5.0.0" + checksum: 10c0/e608a3ebd15356264653c32d7ecbc8fd702f94c6703ea4ac2fb81d9c359180cba0ae2e6b71faa446631ed6145454d5a56b227efc33a2d40638ac13f8beb20ee4 + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 + languageName: node + linkType: hard + +"resolve.exports@npm:^1.1.0": + version: 1.1.0 + resolution: "resolve.exports@npm:1.1.0" + checksum: 10c0/7e21c22ad129b934d5cc0b6aefd07f377a92e0b9699f49ac33eac1736a85e3aeb9270c85aac47f7070b5975739623ed007aac318d6bc5f036504b2b7a407fd31 + languageName: node + linkType: hard + +"resolve@npm:^1.20.0": + version: 1.22.1 + resolution: "resolve@npm:1.22.1" + dependencies: + is-core-module: "npm:^2.9.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/6d58b1cb40f3fc80b9e45dd799d84cdc3829a993e4b9fa3b59d331e1dfacd0870e1851f4d0eb549d68c796e0b7087b43d1aec162653ccccff9e18191221a6e7d + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.20.0#optional!builtin": + version: 1.22.1 + resolution: "resolve@patch:resolve@npm%3A1.22.1#optional!builtin::version=1.22.1&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.9.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/0d8ccceba5537769c42aa75e4aa75ae854aac866a11d7e9ffdb1663f0158ee646a0d48fc2818ed5e7fb364d64220a1fb9092a160e11e00cbdd5fbab39a13092c + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"sass-true@npm:^7.0.0": + version: 7.0.0 + resolution: "sass-true@npm:7.0.0" + dependencies: + "@types/css": "npm:^0.0.33" + css: "npm:^3.0.0" + jest-diff: "npm:^29.3.1" + lodash: "npm:^4.17.21" + peerDependencies: + sass: ">=1.45.0" + checksum: 10c0/4fe7fd34e920869560b996f5e087237f2148026a4f2081e1e264d0b598129328d458a524b55b2819c0b540466b1584f3271ad3d7d929a4a99d8f1891ed42ed12 + languageName: node + linkType: hard + +"sass@npm:^1.57.1": + version: 1.57.1 + resolution: "sass@npm:1.57.1" + dependencies: + chokidar: "npm:>=3.0.0 <4.0.0" + immutable: "npm:^4.0.0" + source-map-js: "npm:>=0.6.2 <2.0.0" + bin: + sass: sass.js + checksum: 10c0/de8ab22b4b4b962df8629d0a6e3ff1397c37406a8c422b23a2c3c82cb25f18f3fd2dceff0cbb679e600af1b17e331e5517bd7b4fa02cf068556128f2a45b5569 + languageName: node + linkType: hard + +"semver@npm:^6.0.0, semver@npm:^6.3.0": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: "npm:^6.0.0" + bin: + semver: bin/semver.js + checksum: 10c0/5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: 10c0/230ac975cca485b7f6fe2b96a711aa62a6a26ead3e6fb8ba17c5a00d61b8bed0d7adc21f5626b70d7c33c62ff4e63933017a6462942c719d1980bb0b1207ad46 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.4 + resolution: "socks-proxy-agent@npm:8.0.4" + dependencies: + agent-base: "npm:^7.1.1" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 + languageName: node + linkType: hard + +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: 10c0/32f2dfd1e9b7168f9a9715eb1b4e21905850f3b50cf02cf476e47e4eebe8e6b762b63a64357896aa29b37e24922b4282df0f492e0d2ace572b43d15525976ff8 + languageName: node + linkType: hard + +"source-map-resolve@npm:^0.6.0": + version: 0.6.0 + resolution: "source-map-resolve@npm:0.6.0" + dependencies: + atob: "npm:^2.1.2" + decode-uri-component: "npm:^0.2.0" + checksum: 10c0/bc2a94af3d2417196195eecf0130925b3558726726504a7c7bd1b9e383c4a789fa3f4616c4c673cf8bd7930ddd2e80481f203422282aeae342dbd56b91995188 + languageName: node + linkType: hard + +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10c0/137539f8c453fa0f496ea42049ab5da4569f96781f6ac8e5bfda26937be9494f4e8891f523c5f98f0e85f71b35d74127a00c46f83f6a4f54672b58d53202565e + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:^0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 + languageName: node + linkType: hard + +"stack-utils@npm:^2.0.3": + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" + dependencies: + escape-string-regexp: "npm:^2.0.0" + checksum: 10c0/651c9f87667e077584bbe848acaecc6049bc71979f1e9a46c7b920cad4431c388df0f51b8ad7cfd6eed3db97a2878d0fc8b3122979439ea8bac29c61c95eec8a + languageName: node + linkType: hard + +"string-length@npm:^4.0.1": + version: 4.0.2 + resolution: "string-length@npm:4.0.2" + dependencies: + char-regex: "npm:^1.0.2" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/1cd77409c3d7db7bc59406f6bcc9ef0783671dcbabb23597a1177c166906ef2ee7c8290f78cae73a8aec858768f189d2cb417797df5e15ec4eb5e16b3346340c + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 10c0/26abad1172d6bc48985ab9a5f96c21e440f6e7e476686de49be813b5a59b3566dccb5c525b831ec54fe348283b47f3ffb8e080bc3f965fde12e84df23f6bb7ef + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10c0/bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 + languageName: node + linkType: hard + +"test-exclude@npm:^6.0.0": + version: 6.0.0 + resolution: "test-exclude@npm:6.0.0" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^7.1.4" + minimatch: "npm:^3.0.4" + checksum: 10c0/019d33d81adff3f9f1bfcff18125fb2d3c65564f437d9be539270ee74b994986abb8260c7c2ce90e8f30162178b09dbbce33c6389273afac4f36069c48521f57 + languageName: node + linkType: hard + +"tmpl@npm:1.0.5": + version: 1.0.5 + resolution: "tmpl@npm:1.0.5" + checksum: 10c0/f935537799c2d1922cb5d6d3805f594388f75338fe7a4a9dac41504dd539704ca4db45b883b52e7b0aa5b2fd5ddadb1452bf95cd23a69da2f793a843f9451cc9 + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 + languageName: node + linkType: hard + +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: 10c0/902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: "npm:^4.0.0" + checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.9": + version: 1.0.10 + resolution: "update-browserslist-db@npm:1.0.10" + dependencies: + escalade: "npm:^3.1.1" + picocolors: "npm:^1.0.0" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + browserslist-lint: cli.js + checksum: 10c0/e6fa55b515a674cc3b6c045d1f37f72780ddbbbb48b3094391fb2e43357b859ca5cee4c7d3055fd654d442ef032777d0972494a9a2e6c30d3660ee57b7138ae9 + languageName: node + linkType: hard + +"v8-to-istanbul@npm:^9.0.1": + version: 9.0.1 + resolution: "v8-to-istanbul@npm:9.0.1" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.12" + "@types/istanbul-lib-coverage": "npm:^2.0.1" + convert-source-map: "npm:^1.6.0" + checksum: 10c0/aaa6491ee0505010a818a98bd7abdb30c0136a93eac12106b836e1afb519759ea4da795cceaf7fe871d26ed6cb669e46fd48533d6f8107a23213d723a028f805 + languageName: node + linkType: hard + +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: "npm:1.0.12" + checksum: 10c0/a17e037bccd3ca8a25a80cb850903facdfed0de4864bd8728f1782370715d679fa72e0a0f5da7c1c1379365159901e5935f35be531229da53bbfc0efdabdb48e + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.1": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" + dependencies: + imurmurhash: "npm:^0.1.4" + signal-exit: "npm:^3.0.7" + checksum: 10c0/a2c282c95ef5d8e1c27b335ae897b5eca00e85590d92a3fd69a437919b7b93ff36a69ea04145da55829d2164e724bc62202cdb5f4b208b425aba0807889375c7 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 + languageName: node + linkType: hard + +"yargs@npm:^17.3.1": + version: 17.6.2 + resolution: "yargs@npm:17.6.2" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10c0/dd5c89aa8186d2a18625b26b68beb635df648617089135e9661107a92561056427bbd41dbfa228db5a7d968ea1043d96c036c2eb978acf7b61a0ae48bf3be206 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f + languageName: node + linkType: hard