mediawiki/extensions/ReadingLists: main (log #2505180)

sourcepatches

This run took 80 seconds.

From d68f95a55493795c33211a02a642c840e38ae53f Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sun, 14 Jun 2026 15:23:42 +0000
Subject: [PATCH] build: Updating @wikimedia/codex to 2.6.0

Change-Id: If1bf2f911d71bb3f83f06a7d809c795949ee6cd1
---
 package-lock.json                             | 20 ++++----
 package.json                                  |  2 +-
 .../__snapshots__/CtaDialog.test.js.snap      |  5 +-
 .../OnboardingPopover.test.js.snap            |  5 +-
 .../__snapshots__/Entries.test.js.snap        | 50 +++++++++++--------
 .../__snapshots__/Lists.test.js.snap          | 50 +++++++++++--------
 6 files changed, 69 insertions(+), 63 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 8fc2287..26c7b2b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
 				"@babel/preset-env": "7.28.5",
 				"@vue/test-utils": "2.4.6",
 				"@vue/vue3-jest": "29.2.6",
-				"@wikimedia/codex": "2.4.0",
+				"@wikimedia/codex": "2.6.0",
 				"@wikimedia/types-wikimedia": "0.5.0",
 				"api-testing": "1.7.3",
 				"eslint-config-wikimedia": "0.32.4",
@@ -3764,16 +3764,16 @@
 			}
 		},
 		"node_modules/@wikimedia/codex": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.4.0.tgz",
-			"integrity": "sha512-j/I1gGbTo6pttjmwyYw9/3CeInK6mpBm2FVfABJk+B1Ylw5DskX+TqeCdKghwxSkxBt0ODbUTBYdFyafk+7ajg==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.6.0.tgz",
+			"integrity": "sha512-ul/WXyxZbMV3PrWd0tGATuhTwUijRhHQxEJ+k+NukzcbY4MTItU3zEiw0Ye3wgNGQBMcCDt34pRGF3tXQwwDgA==",
 			"dev": true,
 			"dependencies": {
 				"@floating-ui/vue": "1.0.6",
-				"@wikimedia/codex-icons": "2.4.0"
+				"@wikimedia/codex-icons": "2.6.0"
 			},
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.2"
 			},
 			"peerDependencies": {
@@ -3781,12 +3781,12 @@
 			}
 		},
 		"node_modules/@wikimedia/codex-icons": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.4.0.tgz",
-			"integrity": "sha512-BBtrzLR7r9ShxCMYfsx9XaKJu/peqt5Y/jtvWx3E2G5aL/Y/pIWAkv8NIvU+ztKklbHySLH5jSvVZVKxxvU0Ew==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.6.0.tgz",
+			"integrity": "sha512-U0FK8kxhIrX5hAkFGZ0uWsR4arYjWw6GLCMZmrG1qvbX7+CFoVrhJQL7alogRdCrBiQBr8CUQOquOP5fUXPIBQ==",
 			"dev": true,
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.2"
 			}
 		},
diff --git a/package.json b/package.json
index 6fe5b1a..8727fb4 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,7 @@
 		"@babel/preset-env": "7.28.5",
 		"@vue/test-utils": "2.4.6",
 		"@vue/vue3-jest": "29.2.6",
-		"@wikimedia/codex": "2.4.0",
+		"@wikimedia/codex": "2.6.0",
 		"@wikimedia/types-wikimedia": "0.5.0",
 		"api-testing": "1.7.3",
 		"eslint-config-wikimedia": "0.32.4",
diff --git a/tests/jest/ext.readingLists.bookmark.anonymous/__snapshots__/CtaDialog.test.js.snap b/tests/jest/ext.readingLists.bookmark.anonymous/__snapshots__/CtaDialog.test.js.snap
index 2167f3e..d57a84e 100644
--- a/tests/jest/ext.readingLists.bookmark.anonymous/__snapshots__/CtaDialog.test.js.snap
+++ b/tests/jest/ext.readingLists.bookmark.anonymous/__snapshots__/CtaDialog.test.js.snap
@@ -59,10 +59,7 @@ exports[`CtaDialog matches the snapshot 1`] = `
                 <!--v-if-->
                 <g>
                   <path
-                    d="m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z"
-                  />
-                  <path
-                    d="M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z"
+                    d="M16.707 4.707 11.414 10l5.293 5.293-1.414 1.414L10 11.414l-5.293 5.293-1.414-1.414L8.586 10 3.293 4.707l1.414-1.414L10 8.586l5.293-5.293z"
                   />
                 </g>
               </svg>
diff --git a/tests/jest/ext.readingLists.onboarding.desktop/__snapshots__/OnboardingPopover.test.js.snap b/tests/jest/ext.readingLists.onboarding.desktop/__snapshots__/OnboardingPopover.test.js.snap
index 90e647d..12a8ef1 100644
--- a/tests/jest/ext.readingLists.onboarding.desktop/__snapshots__/OnboardingPopover.test.js.snap
+++ b/tests/jest/ext.readingLists.onboarding.desktop/__snapshots__/OnboardingPopover.test.js.snap
@@ -34,10 +34,7 @@ exports[`OnboardingPopover rendering behavior matches the snapshot 1`] = `
             <!--v-if-->
             <g>
               <path
-                d="m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z"
-              />
-              <path
-                d="M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z"
+                d="M16.707 4.707 11.414 10l5.293 5.293-1.414 1.414L10 11.414l-5.293 5.293-1.414-1.414L8.586 10 3.293 4.707l1.414-1.414L10 8.586l5.293-5.293z"
               />
             </g>
           </svg>
diff --git a/tests/jest/ext.readingLists.special/__snapshots__/Entries.test.js.snap b/tests/jest/ext.readingLists.special/__snapshots__/Entries.test.js.snap
index 76c735b..ecdf60d 100644
--- a/tests/jest/ext.readingLists.special/__snapshots__/Entries.test.js.snap
+++ b/tests/jest/ext.readingLists.special/__snapshots__/Entries.test.js.snap
@@ -140,6 +140,7 @@ exports[`Entries renders with toolbar disabled 1`] = `
   </p>
   <!--v-if-->
   <!--v-if-->
+  
   <div
     aria-disabled="false"
     aria-label="Please wait..."
@@ -150,6 +151,8 @@ exports[`Entries renders with toolbar disabled 1`] = `
       class="cdx-progress-bar__bar"
     />
   </div>
+  <!--v-if-->
+  
   
 </div>
 `;
@@ -170,13 +173,13 @@ exports[`Entries renders with toolbar enabled 1`] = `
       class="cdx-menu-button"
     >
       <button
-        aria-controls="v-1"
+        aria-controls="v-2"
         aria-expanded="false"
         aria-haspopup="menu"
         aria-label="Display menu"
         class="cdx-button cdx-button--action-default cdx-button--weight-quiet cdx-button--size-medium cdx-button--icon-only"
         disabled=""
-        id="v-0"
+        id="v-1"
       >
         
         
@@ -193,7 +196,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
             <!--v-if-->
             <g>
               <path
-                d="M10 0 3 8h14zm0 18-7-8h14z"
+                d="M14 14.5 10 18l-4-3.5V12h8zm0-9V8H6V5.5L10 2z"
               />
             </g>
           </svg>
@@ -210,10 +213,10 @@ exports[`Entries renders with toolbar enabled 1`] = `
           style="display: none; visibility: hidden; position: absolute; top: 0px; left: 0px; transform: translate(0px, 0px);"
         >
           <ul
-            aria-labelledby="v-0"
+            aria-labelledby="v-1"
             aria-multiselectable="true"
             class="cdx-menu__listbox"
-            id="v-1"
+            id="v-2"
             role="menu"
             tabindex="-1"
           >
@@ -225,8 +228,8 @@ exports[`Entries renders with toolbar enabled 1`] = `
               class="cdx-menu__group-wrapper"
             >
               <ul
-                aria-describedby="v-2-1-description"
-                aria-labelledby="v-2-1-label"
+                aria-describedby="v-3-1-description"
+                aria-labelledby="v-3-1-label"
                 class="cdx-menu__group"
                 role="group"
               >
@@ -239,7 +242,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                   >
                     <span
                       class="cdx-menu__group__label"
-                      id="v-2-1-label"
+                      id="v-3-1-label"
                     >
                       Sort by
                     </span>
@@ -251,7 +254,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                   aria-checked="true"
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-2"
+                  id="v-3-2"
                   role="option"
                 >
                   
@@ -271,7 +274,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M17.66 18h-2a.85.85 0 01-.56-.17 1.1 1.1 0 01-.32-.43l-1.33-3.53h-6.9L5.22 17.4a1.06 1.06 0 01-.31.41.83.83 0 01-.56.19h-2L8.68 2h2.63zm-4.92-6-2.2-5.84A16 16 0 0110 4.43q-.12.52-.27 1t-.27.77L7.26 12z"
+                            d="m15.692 18-2.174-5H6.481l-2.173 5h-2.18L9.082 2.002h1.834L17.873 18zm-8.34-7h5.296L10 4.907z"
                           />
                         </g>
                       </svg>
@@ -303,7 +306,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
+                            d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                           />
                         </g>
                       </svg>
@@ -314,7 +317,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                 <li
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-3"
+                  id="v-3-3"
                   role="option"
                 >
                   
@@ -334,10 +337,10 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z"
+                            d="M10 1a9 9 0 011 17.945V16.93A7.001 7.001 0 0010 3a7 7 0 00-4 12.743V13h2.001L8 18l-1 1H2v-2l2.346-.001A8.97 8.97 0 011 10a9 9 0 019-9"
                           />
                           <path
-                            d="M10 1a9 9 0 00-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1110 17v2a9 9 0 000-18"
+                            d="M11 10h3.5v2H9V6h2z"
                           />
                         </g>
                       </svg>
@@ -369,8 +372,8 @@ exports[`Entries renders with toolbar enabled 1`] = `
               class="cdx-menu__group-wrapper"
             >
               <ul
-                aria-describedby="v-2-4-description"
-                aria-labelledby="v-2-4-label"
+                aria-describedby="v-3-4-description"
+                aria-labelledby="v-3-4-label"
                 class="cdx-menu__group"
                 role="group"
               >
@@ -383,7 +386,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                   >
                     <span
                       class="cdx-menu__group__label"
-                      id="v-2-4-label"
+                      id="v-3-4-label"
                     >
                       Direction
                     </span>
@@ -395,7 +398,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                   aria-checked="true"
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-5"
+                  id="v-3-5"
                   role="option"
                 >
                   
@@ -415,7 +418,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="m2 10 1.42 1.41L9 5.83V18h2V5.83l5.59 5.58L18 10l-8-8z"
+                            d="M16.414 7.71 15 9.124l-4-4V19H9V5.124l-4 4L3.586 7.71l5.707-5.707h1.414z"
                           />
                         </g>
                       </svg>
@@ -447,7 +450,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
+                            d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                           />
                         </g>
                       </svg>
@@ -458,7 +461,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                 <li
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-6"
+                  id="v-3-6"
                   role="option"
                 >
                   
@@ -478,7 +481,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="m2 10 1.42-1.41L9 14.17V2h2v12.17l5.59-5.58L18 10l-8 8z"
+                            d="M11 1v13.876l4-4 1.414 1.414-5.707 5.707H9.293L3.586 12.29 5 10.876l4 4V1z"
                           />
                         </g>
                       </svg>
@@ -514,6 +517,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
     </div>
   </div>
   <!--v-if-->
+  
   <div
     aria-disabled="false"
     aria-label="Please wait..."
@@ -524,6 +528,8 @@ exports[`Entries renders with toolbar enabled 1`] = `
       class="cdx-progress-bar__bar"
     />
   </div>
+  <!--v-if-->
+  
   
 </div>
 `;
diff --git a/tests/jest/ext.readingLists.special/__snapshots__/Lists.test.js.snap b/tests/jest/ext.readingLists.special/__snapshots__/Lists.test.js.snap
index d01e0c2..79d8090 100644
--- a/tests/jest/ext.readingLists.special/__snapshots__/Lists.test.js.snap
+++ b/tests/jest/ext.readingLists.special/__snapshots__/Lists.test.js.snap
@@ -14,6 +14,7 @@ exports[`Lists renders with toolbar disabled 1`] = `
     
   </div>
   <!--v-if-->
+  
   <div
     aria-disabled="false"
     aria-label="Please wait..."
@@ -24,6 +25,8 @@ exports[`Lists renders with toolbar disabled 1`] = `
       class="cdx-progress-bar__bar"
     />
   </div>
+  <!--v-if-->
+  
   
 </div>
 `;
@@ -41,13 +44,13 @@ exports[`Lists renders with toolbar enabled 1`] = `
       style="display: none;"
     >
       <button
-        aria-controls="v-1"
+        aria-controls="v-2"
         aria-expanded="false"
         aria-haspopup="menu"
         aria-label="Display menu"
         class="cdx-button cdx-button--action-default cdx-button--weight-quiet cdx-button--size-medium cdx-button--icon-only"
         disabled=""
-        id="v-0"
+        id="v-1"
       >
         
         
@@ -64,7 +67,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
             <!--v-if-->
             <g>
               <path
-                d="M10 0 3 8h14zm0 18-7-8h14z"
+                d="M14 14.5 10 18l-4-3.5V12h8zm0-9V8H6V5.5L10 2z"
               />
             </g>
           </svg>
@@ -81,10 +84,10 @@ exports[`Lists renders with toolbar enabled 1`] = `
           style="display: none; visibility: hidden; position: absolute; top: 0px; left: 0px; transform: translate(0px, 0px);"
         >
           <ul
-            aria-labelledby="v-0"
+            aria-labelledby="v-1"
             aria-multiselectable="true"
             class="cdx-menu__listbox"
-            id="v-1"
+            id="v-2"
             role="menu"
             tabindex="-1"
           >
@@ -96,8 +99,8 @@ exports[`Lists renders with toolbar enabled 1`] = `
               class="cdx-menu__group-wrapper"
             >
               <ul
-                aria-describedby="v-2-1-description"
-                aria-labelledby="v-2-1-label"
+                aria-describedby="v-3-1-description"
+                aria-labelledby="v-3-1-label"
                 class="cdx-menu__group"
                 role="group"
               >
@@ -110,7 +113,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                   >
                     <span
                       class="cdx-menu__group__label"
-                      id="v-2-1-label"
+                      id="v-3-1-label"
                     >
                       Sort by
                     </span>
@@ -122,7 +125,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                   aria-checked="true"
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-2"
+                  id="v-3-2"
                   role="option"
                 >
                   
@@ -142,7 +145,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M17.66 18h-2a.85.85 0 01-.56-.17 1.1 1.1 0 01-.32-.43l-1.33-3.53h-6.9L5.22 17.4a1.06 1.06 0 01-.31.41.83.83 0 01-.56.19h-2L8.68 2h2.63zm-4.92-6-2.2-5.84A16 16 0 0110 4.43q-.12.52-.27 1t-.27.77L7.26 12z"
+                            d="m15.692 18-2.174-5H6.481l-2.173 5h-2.18L9.082 2.002h1.834L17.873 18zm-8.34-7h5.296L10 4.907z"
                           />
                         </g>
                       </svg>
@@ -174,7 +177,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
+                            d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                           />
                         </g>
                       </svg>
@@ -185,7 +188,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                 <li
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-3"
+                  id="v-3-3"
                   role="option"
                 >
                   
@@ -205,10 +208,10 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z"
+                            d="M10 1a9 9 0 011 17.945V16.93A7.001 7.001 0 0010 3a7 7 0 00-4 12.743V13h2.001L8 18l-1 1H2v-2l2.346-.001A8.97 8.97 0 011 10a9 9 0 019-9"
                           />
                           <path
-                            d="M10 1a9 9 0 00-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1110 17v2a9 9 0 000-18"
+                            d="M11 10h3.5v2H9V6h2z"
                           />
                         </g>
                       </svg>
@@ -240,8 +243,8 @@ exports[`Lists renders with toolbar enabled 1`] = `
               class="cdx-menu__group-wrapper"
             >
               <ul
-                aria-describedby="v-2-4-description"
-                aria-labelledby="v-2-4-label"
+                aria-describedby="v-3-4-description"
+                aria-labelledby="v-3-4-label"
                 class="cdx-menu__group"
                 role="group"
               >
@@ -254,7 +257,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                   >
                     <span
                       class="cdx-menu__group__label"
-                      id="v-2-4-label"
+                      id="v-3-4-label"
                     >
                       Direction
                     </span>
@@ -266,7 +269,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                   aria-checked="true"
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-5"
+                  id="v-3-5"
                   role="option"
                 >
                   
@@ -286,7 +289,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="m2 10 1.42 1.41L9 5.83V18h2V5.83l5.59 5.58L18 10l-8-8z"
+                            d="M16.414 7.71 15 9.124l-4-4V19H9V5.124l-4 4L3.586 7.71l5.707-5.707h1.414z"
                           />
                         </g>
                       </svg>
@@ -318,7 +321,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
+                            d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                           />
                         </g>
                       </svg>
@@ -329,7 +332,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                 <li
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-6"
+                  id="v-3-6"
                   role="option"
                 >
                   
@@ -349,7 +352,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="m2 10 1.42-1.41L9 14.17V2h2v12.17l5.59-5.58L18 10l-8 8z"
+                            d="M11 1v13.876l4-4 1.414 1.414-5.707 5.707H9.293L3.586 12.29 5 10.876l4 4V1z"
                           />
                         </g>
                       </svg>
@@ -392,6 +395,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
     
   </div>
   <!--v-if-->
+  
   <div
     aria-disabled="false"
     aria-label="Please wait..."
@@ -402,6 +406,8 @@ exports[`Lists renders with toolbar enabled 1`] = `
       class="cdx-progress-bar__bar"
     />
   </div>
+  <!--v-if-->
+  
   
 </div>
 `;
-- 
2.47.3

$ date
--- stdout ---
Sun Jun 14 15:22:25 UTC 2026

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-ReadingLists.git /src/repo --depth=1 -b master
--- stderr ---
Cloning into '/src/repo'...
--- stdout ---

--- end ---
$ git config user.name libraryupgrader
--- stdout ---

--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---

--- end ---
$ git submodule update --init
--- stdout ---

--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
2b1c72484e1ebd2d4aa02912a10f533a2f767f97 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {},
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 0,
      "high": 0,
      "critical": 0,
      "total": 0
    },
    "dependencies": {
      "prod": 1,
      "dev": 830,
      "optional": 3,
      "peer": 29,
      "peerOptional": 0,
      "total": 830
    }
  }
}

--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 39 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.4.0)
  - Locking composer/semver (3.4.4)
  - Locking composer/spdx-licenses (1.6.0)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking danog/advanced-json-rpc (v3.2.3)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.1)
  - Locking doctrine/deprecations (1.1.6)
  - Locking mediawiki/mediawiki-codesniffer (v51.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.20.0)
  - Locking mediawiki/minus-x (2.0.1)
  - Locking mediawiki/phan-taint-check-plugin (9.1.0)
  - Locking netresearch/jsonmapper (v5.0.1)
  - Locking phan/phan (6.0.2)
  - Locking phan/tolerant-php-parser (v0.2.0)
  - Locking phan/var_representation_polyfill (0.1.4)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.5.0)
  - Locking phpcsstandards/phpcsutils (1.2.2)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (6.0.3)
  - Locking phpdocumentor/type-resolver (2.0.0)
  - Locking phpstan/phpdoc-parser (2.3.2)
  - Locking pleonasm/bloom-filter (1.0.4)
  - Locking psr/container (2.0.2)
  - Locking psr/log (3.0.2)
  - Locking sabre/event (6.1.0)
  - Locking squizlabs/php_codesniffer (3.13.5)
  - Locking symfony/console (v8.1.0)
  - Locking symfony/deprecation-contracts (v3.7.0)
  - Locking symfony/polyfill-ctype (v1.37.0)
  - Locking symfony/polyfill-intl-grapheme (v1.38.1)
  - Locking symfony/polyfill-intl-normalizer (v1.38.0)
  - Locking symfony/polyfill-mbstring (v1.38.2)
  - Locking symfony/polyfill-php85 (v1.38.1)
  - Locking symfony/service-contracts (v3.7.0)
  - Locking symfony/string (v8.1.0)
  - Locking webmozart/assert (2.4.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 39 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing squizlabs/php_codesniffer (3.13.5): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.1): Extracting archive
  - Installing composer/pcre (3.4.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.2.2): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.5.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.38.2): Extracting archive
  - Installing composer/spdx-licenses (1.6.0): Extracting archive
  - Installing composer/semver (3.4.4): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v51.0.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.38.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.38.1): Extracting archive
  - Installing symfony/polyfill-ctype (v1.37.0): Extracting archive
  - Installing symfony/string (v8.1.0): Extracting archive
  - Installing symfony/deprecation-contracts (v3.7.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.7.0): Extracting archive
  - Installing symfony/polyfill-php85 (v1.38.1): Extracting archive
  - Installing symfony/console (v8.1.0): Extracting archive
  - Installing sabre/event (6.1.0): Extracting archive
  - Installing phan/var_representation_polyfill (0.1.4): Extracting archive
  - Installing phan/tolerant-php-parser (v0.2.0): Extracting archive
  - Installing netresearch/jsonmapper (v5.0.1): Extracting archive
  - Installing webmozart/assert (2.4.0): Extracting archive
  - Installing phpstan/phpdoc-parser (2.3.2): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.6): Extracting archive
  - Installing phpdocumentor/type-resolver (2.0.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (6.0.3): Extracting archive
  - Installing danog/advanced-json-rpc (v3.2.3): Extracting archive
  - Installing psr/log (3.0.2): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (6.0.2): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (9.1.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.20.0): Extracting archive
  - Installing mediawiki/minus-x (2.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  - Installing pleonasm/bloom-filter (1.0.4): Extracting archive
  0/37 [>---------------------------]   0%
 29/37 [=====================>------]  78%
 37/37 [============================] 100%
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
Upgrading n:@wikimedia/codex from 2.4.0 -> 2.6.0
$ /usr/bin/npm install
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.6.0',
npm WARN EBADENGINE   required: { npm: '>=10.8.2', node: '>=20.20.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.6.0',
npm WARN EBADENGINE   required: { npm: '>=10.8.2', node: '>=20.20.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 829 packages, and audited 830 packages in 10s

164 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json

--- end ---
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 829 packages, and audited 830 packages in 13s

164 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

--- end ---
$ /usr/bin/npm test
--- stderr ---
14 sources checked
  /src/repo/resources/ext.readingLists.bookmark.anonymous/CtaDialog.vue
  /src/repo/resources/ext.readingLists.bookmark.anonymous/pulsatingDot.less
  /src/repo/resources/ext.readingLists.bookmark.confirmPopover/ConfirmUnsavePopover.vue
  /src/repo/resources/ext.readingLists.onboarding.desktop/OnboardingPopover.vue
  /src/repo/resources/ext.readingLists.onboarding.mobile/MobileOnboardingPopover.vue
  /src/repo/resources/ext.readingLists.special/styles.less
  /src/repo/resources/ext.readingLists.special/components/DisplayButton.vue
  /src/repo/resources/ext.readingLists.special/components/EmptyList.vue
  /src/repo/resources/ext.readingLists.special/components/EntryItem.vue
  /src/repo/resources/ext.readingLists.special/components/ImportDialog.vue
  /src/repo/resources/ext.readingLists.special/components/ListItem.vue
  /src/repo/resources/ext.readingLists.special/components/Survey.vue
  /src/repo/resources/ext.readingLists.special/pages/Entries.vue
  /src/repo/resources/ext.readingLists.special/pages/Lists.vue

0 problems found

PASS tests/jest/ext.readingLists.bookmark/index.test.js
  ext.readingLists.bookmark index
    ✓ shows onboarding on the current article read view (35 ms)
    ✓ shows mobile onboarding on Minerva article read view (6 ms)
    ✓ does not show onboarding on main page (8 ms)
    ✓ does not show onboarding on edit action (5 ms)
    ✓ does not show onboarding on submit action (5 ms)
    ✓ does not show onboarding on history action (4 ms)
    ✓ does not show onboarding on visual editor (4 ms)
    ✓ does not show onboarding on visual editor source mode (5 ms)
    ✓ does not show onboarding on diff view (52 ms)
    ✓ does not show onboarding on old revision (4 ms)

PASS tests/jest/ext.readingLists.api/index.test.js
  setup
    ✓ returns inserted list (9 ms)
  getLists
    ✓ returns array of multiple lists (3 ms)
    ✓ paginates with continue token (1 ms)
    ✓ sets up default list if missing (2 ms)
    ✓ throws on unhandled error (1 ms)
  getList
    ✓ returns metadata of one list (1 ms)
    ✓ translates default list name/description (1 ms)
    ✓ sets up default list if missing (1 ms)
    ✓ throws on unhandled error (1 ms)
  getEntries
    ✓ returns array of list entries (16 ms)
    ✓ paginates with continue token (2 ms)
    ✓ sets up default list if missing (2 ms)
    ✓ throws on unhandled error (1 ms)
  getPagesFromManifest
    ✓ returns array of page metadata (2 ms)
    ✓ transforms language code to url (2 ms)
    ✓ resolves page ids to titles (4 ms)
    ✓ matches entries by title when API response has no normalized or redirects data (1 ms)
    ✓ resolves entry title through normalization and redirect (1 ms)
    ✓ returns fallback on error (2 ms)
  createEntry
    ✓ returns inserted entry (1 ms)
  deleteEntry
    ✓ returns success message (1 ms)
  deleteEntryByPageTitle
    ✓ returns success message
  fromBase64
    ✓ returns entries with resolved pages (2 ms)
    ✓ returns error message (1 ms)
    ✓ preserves name when already present in encoded data (1 ms)
  toBase64
    ✓ returns a base64 string that decodes to the original values (1 ms)
    ✓ throws on characters outside Latin-1 range in name (1 ms)
    ✓ produces output that fromBase64 can parse back (1 ms)

PASS tests/jest/ext.readingLists.bookmark.confirmPopover/ConfirmUnsavePopover.test.js
  ConfirmUnsavePopover
    ConfirmUnsavePopover rendering
      ✓ matches the snapshot (67 ms)
    ConfirmUnsavePopover props
      ✓ primaryAction has a destructive action type (6 ms)
      ✓ placement is bottom-start when isMinerva is true (5 ms)
    ConfirmUnsavePopover actions
      ✓ calls onConfirm when the primary action is clicked (19 ms)
      ✓ calls onCancel when the default action is clicked (7 ms)
      ✓ calls onCancel when the popover is closed externally (8 ms)
      ✓ does not call onCancel when the popover emits open (4 ms)

FAIL tests/jest/ext.readingLists.onboarding.desktop/OnboardingPopover.test.js
  OnboardingPopover
    rendering behavior
      ✕ matches the snapshot (100 ms)
      ✓ renders with custom title, body message keys, and banner image (41 ms)
      ✓ renders close button with aria-label (32 ms)
    popover dismiss behavior
      ✓ closes popover and calls onDismiss when close button is clicked (15 ms)
      ✓ calls onDismiss when popover is closed externally (10 ms)

  ● OnboardingPopover › rendering behavior › matches the snapshot

    expect(received).toMatchSnapshot()

    Snapshot name: `OnboardingPopover rendering behavior matches the snapshot 1`

    - Snapshot  - 4
    + Received  + 1

    @@ -29,14 +29,11 @@
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <!--v-if-->
                  <g>
                    <path
    -                 d="m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z"
    -               />
    -               <path
    -                 d="M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z"
    +                 d="M16.707 4.707 11.414 10l5.293 5.293-1.414 1.414L10 11.414l-5.293 5.293-1.414-1.414L8.586 10 3.293 4.707l1.414-1.414L10 8.586l5.293-5.293z"
                    />
                  </g>
                </svg>
              </span>

      58 | 			await wrapper.vm.$nextTick();
      59 |
    > 60 | 			expect( wrapper.element ).toMatchSnapshot();
         | 			                          ^
      61 | 		} );
      62 |
      63 | 		test( 'renders with custom title, body message keys, and banner image', async () => {

                
      at Object.<anonymous> (tests/jest/ext.readingLists.onboarding.desktop/OnboardingPopover.test.js:60:30)

 › 1 snapshot failed.
PASS tests/jest/ext.readingLists.bookmark/bookmark.test.js
  initBookmark
    initialization
      Vector skin initBookmark
        ✓ sets outline icon and add bookmark label for unsaved page (599 ms)
        ✓ sets solid icon and remove bookmark label for saved page (9 ms)
      Minerva skin initBookmark
        ✓ uses Minerva icon classes (6 ms)
        ✓ sets solid icon and remove bookmark label for saved page (22 ms)
    click bookmark button to save page
      Vector skin bookmark click to save
        ✓ calls createEntry, updates icon, fires hook (15 ms)
        ✓ triggers onboarding popover on first save when not yet seen (852 ms)
        ✓ shows notify success when onboarding already seen (7 ms)
      Minerva skin bookmark button click to save
        ✓ calls createEntry, updates icon, fires hook (8 ms)
        ✓ triggers onboarding popover on first save when not yet seen (106 ms)
        ✓ shows notify success when onboarding already seen (6 ms)
    click bookmark button to unsave page
      ✓ calls deleteEntryByPageTitle, updates icon, fires hook on Vector skin (7 ms)
      ✓ calls deleteEntryByPageTitle, updates icon, fires hook on Minerva skin (18 ms)
      ✓ loads confirm popover before removing page from a custom list (7 ms)
      ✓ does not remove page when custom list confirmation is cancelled (6 ms)
    ReadingLists list setup flow
      ✓ calls api.setup() first when no listId, then calls createEntry on Vector skin (8 ms)
    error handling
      ✓ shows error notification when createEntry rejects on Vector skin (6 ms)
      ✓ shows error notification when deleteEntryByPageTitle rejects with unexpected error on Vector skin (5 ms)
  initOnboardingPopover
    ✓ returns early if anchor element not found in DOM (4 ms)
    ✓ returns early if storage key already set (4 ms)
    ✓ loads onboarding popover module after timer and idle callback (26 ms)
    ✓ defers loading onboarding popover if the homepage tour hasn't been seen yet (4 ms)

PASS tests/jest/ext.readingLists.onboarding.mobile/MobileOnboardingPopover.test.js
  MobileOnboardingPopover
    rendering behavior
      ✓ matches the snapshot (52 ms)
      ✓ renders popover content when the popover is open (11 ms)
    popover dismiss behavior
      ✓ closes popover and calls onDismiss when user clicks the primary action (5 ms)
      ✓ calls onDismiss when user clicks outside the popover (3 ms)

PASS tests/jest/ext.readingLists.onboarding/mountApp.test.js
  mountApp
    onboarding popover mounting
      ✓ mounts the popover with correct component and props and sets local storage key (8 ms)
      ✓ bannerImagePath is passed as prop when provided (2 ms)
    popover not in viewport
      ✓ does not mount when target is above the viewport (1 ms)

PASS tests/jest/ext.readingLists.bookmark.confirmPopover/index.test.js
  confirmUnsaveFromCustomList
    ✓ mounts the app with the anchor element and isMinerva prop (7 ms)
    ✓ resolves with true and unmounts when onConfirm is called (1 ms)
    ✓ resolves with false and unmounts when onCancel is called (1 ms)

PASS tests/jest/ext.readingLists.special/Survey.test.js
  Survey
    ✓ matches the snapshot (25 ms)
    when the positive button is clicked
      ✓ opens the dialog and renders dialog content (74 ms)
    when the negative button is clicked
      ✓ opens the dialog (30 ms)
    when the dialog is closed
      via the primary action button
        ✓ closes the dialog and shows the thank you message (94 ms)
      via the close button
        ✓ closes the dialog and shows the thank you message (64 ms)
    when the survey is completed
      ✓ contains the correct (39 ms)

PASS tests/jest/ext.readingLists.bookmark.anonymous/index.test.js
  Anonymous bookmark button
    ✓ throws error when bookmark element is not found (267 ms)
    ✓ mounts CtaDialog when bookmark is clicked (9 ms)

FAIL tests/jest/ext.readingLists.bookmark.anonymous/CtaDialog.test.js
  CtaDialog
    ✕ matches the snapshot (59 ms)

  ● CtaDialog › matches the snapshot

    expect(received).toMatchSnapshot()

    Snapshot name: `CtaDialog matches the snapshot 1`

    - Snapshot  - 4
    + Received  + 1

    @@ -54,14 +54,11 @@
                      xmlns="http://www.w3.org/2000/svg"
                    >
                      <!--v-if-->
                      <g>
                        <path
    -                     d="m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z"
    -                   />
    -                   <path
    -                     d="M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z"
    +                     d="M16.707 4.707 11.414 10l5.293 5.293-1.414 1.414L10 11.414l-5.293 5.293-1.414-1.414L8.586 10 3.293 4.707l1.414-1.414L10 8.586l5.293-5.293z"
                        />
                      </g>
                    </svg>
                  </span>

      14 | 		const wrapper = mount( CtaDialog );
      15 |
    > 16 | 		expect( wrapper.element ).toMatchSnapshot();
         | 		                          ^
      17 | 	} );
      18 | } );
      19 |

                    
      at Object.<anonymous> (tests/jest/ext.readingLists.bookmark.anonymous/CtaDialog.test.js:16:29)

 › 1 snapshot failed.
FAIL tests/jest/ext.readingLists.special/Entries.test.js
  Entries
    ✕ renders with toolbar disabled (659 ms)
    ✕ renders with toolbar enabled (133 ms)
    ✓ renders all items from all lists on special page (62 ms)

  ● Entries › renders with toolbar disabled

    expect(received).toMatchSnapshot()

    Snapshot name: `Entries renders with toolbar disabled 1`

    - Snapshot  - 0
    + Received  + 3

    @@ -10,17 +10,20 @@
        >
          Sorted by most recent.
        </p>
        <!--v-if-->
        <!--v-if-->
    +   
        <div
          aria-disabled="false"
          aria-label="Please wait..."
          class="cdx-progress-bar cdx-progress-bar--block cdx-progress-bar--enabled"
          role="progressbar"
        >
          <div
            class="cdx-progress-bar__bar"
          />
        </div>
    +   <!--v-if-->
    +   
        
      </div>

      70 | 		await wrapper.vm.$nextTick();
      71 |
    > 72 | 		expect( wrapper.element ).toMatchSnapshot();
         | 		                          ^
      73 | 	} );
      74 |
      75 | 	test( 'renders with toolbar enabled', async () => {

      at Object.<anonymous> (tests/jest/ext.readingLists.special/Entries.test.js:72:29)

  ● Entries › renders with toolbar enabled

    expect(received).toMatchSnapshot()

    Snapshot name: `Entries renders with toolbar enabled 1`

    - Snapshot  - 22
    + Received  + 25

    @@ -11,17 +11,17 @@
        >
          <div
            class="cdx-menu-button"
          >
            <button
    -         aria-controls="v-1"
    +         aria-controls="v-2"
              aria-expanded="false"
              aria-haspopup="menu"
              aria-label="Display menu"
              class="cdx-button cdx-button--action-default cdx-button--weight-quiet cdx-button--size-medium cdx-button--icon-only"
              disabled=""
    -         id="v-0"
    +         id="v-1"
            >
              
              
              <span
                class="cdx-icon cdx-icon--medium"
    @@ -34,11 +34,11 @@
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <!--v-if-->
                  <g>
                    <path
    -                 d="M10 0 3 8h14zm0 18-7-8h14z"
    +                 d="M14 14.5 10 18l-4-3.5V12h8zm0-9V8H6V5.5L10 2z"
                    />
                  </g>
                </svg>
              </span>
              
    @@ -51,14 +51,14 @@
              <div
                class="cdx-menu cdx-menu-button__menu"
                style="display: none; visibility: hidden; position: absolute; top: 0px; left: 0px; transform: translate(0px, 0px);"
              >
                <ul
    -             aria-labelledby="v-0"
    +             aria-labelledby="v-1"
                  aria-multiselectable="true"
                  class="cdx-menu__listbox"
    -             id="v-1"
    +             id="v-2"
                  role="menu"
                  tabindex="-1"
                >
                  <!--v-if-->
                  <!--v-if-->
    @@ -66,12 +66,12 @@
                  
                  <li
                    class="cdx-menu__group-wrapper"
                  >
                    <ul
    -                 aria-describedby="v-2-1-description"
    -                 aria-labelledby="v-2-1-label"
    +                 aria-describedby="v-3-1-description"
    +                 aria-labelledby="v-3-1-label"
                      class="cdx-menu__group"
                      role="group"
                    >
                      <span
                        class="cdx-menu__group__meta"
    @@ -80,11 +80,11 @@
                        <span
                          class="cdx-menu__group__meta__text"
                        >
                          <span
                            class="cdx-menu__group__label"
    -                       id="v-2-1-label"
    +                       id="v-3-1-label"
                          >
                            Sort by
                          </span>
                          <!--v-if-->
                        </span>
    @@ -92,11 +92,11 @@
                      
                      <li
                        aria-checked="true"
                        aria-disabled="false"
                        class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
    -                   id="v-2-2"
    +                   id="v-3-2"
                        role="option"
                      >
                        
                        <span
                          class="cdx-menu-item__content"
    @@ -112,11 +112,11 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="M17.66 18h-2a.85.85 0 01-.56-.17 1.1 1.1 0 01-.32-.43l-1.33-3.53h-6.9L5.22 17.4a1.06 1.06 0 01-.31.41.83.83 0 01-.56.19h-2L8.68 2h2.63zm-4.92-6-2.2-5.84A16 16 0 0110 4.43q-.12.52-.27 1t-.27.77L7.26 12z"
    +                             d="m15.692 18-2.174-5H6.481l-2.173 5h-2.18L9.082 2.002h1.834L17.873 18zm-8.34-7h5.296L10 4.907z"
                                />
                              </g>
                            </svg>
                          </span>
                          <span
    @@ -144,22 +144,22 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
    +                             d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                                />
                              </g>
                            </svg>
                          </span>
                        </span>
                        
                      </li>
                      <li
                        aria-disabled="false"
                        class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
    -                   id="v-2-3"
    +                   id="v-3-3"
                        role="option"
                      >
                        
                        <span
                          class="cdx-menu-item__content"
    @@ -175,14 +175,14 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z"
    +                             d="M10 1a9 9 0 011 17.945V16.93A7.001 7.001 0 0010 3a7 7 0 00-4 12.743V13h2.001L8 18l-1 1H2v-2l2.346-.001A8.97 8.97 0 011 10a9 9 0 019-9"
                                />
                                <path
    -                             d="M10 1a9 9 0 00-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1110 17v2a9 9 0 000-18"
    +                             d="M11 10h3.5v2H9V6h2z"
                                />
                              </g>
                            </svg>
                          </span>
                          <span
    @@ -210,12 +210,12 @@
                  
                  <li
                    class="cdx-menu__group-wrapper"
                  >
                    <ul
    -                 aria-describedby="v-2-4-description"
    -                 aria-labelledby="v-2-4-label"
    +                 aria-describedby="v-3-4-description"
    +                 aria-labelledby="v-3-4-label"
                      class="cdx-menu__group"
                      role="group"
                    >
                      <span
                        class="cdx-menu__group__meta"
    @@ -224,11 +224,11 @@
                        <span
                          class="cdx-menu__group__meta__text"
                        >
                          <span
                            class="cdx-menu__group__label"
    -                       id="v-2-4-label"
    +                       id="v-3-4-label"
                          >
                            Direction
                          </span>
                          <!--v-if-->
                        </span>
    @@ -236,11 +236,11 @@
                      
                      <li
                        aria-checked="true"
                        aria-disabled="false"
                        class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
    -                   id="v-2-5"
    +                   id="v-3-5"
                        role="option"
                      >
                        
                        <span
                          class="cdx-menu-item__content"
    @@ -256,11 +256,11 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="m2 10 1.42 1.41L9 5.83V18h2V5.83l5.59 5.58L18 10l-8-8z"
    +                             d="M16.414 7.71 15 9.124l-4-4V19H9V5.124l-4 4L3.586 7.71l5.707-5.707h1.414z"
                                />
                              </g>
                            </svg>
                          </span>
                          <span
    @@ -288,22 +288,22 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
    +                             d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                                />
                              </g>
                            </svg>
                          </span>
                        </span>
                        
                      </li>
                      <li
                        aria-disabled="false"
                        class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
    -                   id="v-2-6"
    +                   id="v-3-6"
                        role="option"
                      >
                        
                        <span
                          class="cdx-menu-item__content"
    @@ -319,11 +319,11 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="m2 10 1.42-1.41L9 14.17V2h2v12.17l5.59-5.58L18 10l-8 8z"
    +                             d="M11 1v13.876l4-4 1.414 1.414-5.707 5.707H9.293L3.586 12.29 5 10.876l4 4V1z"
                                />
                              </g>
                            </svg>
                          </span>
                          <span
    @@ -355,17 +355,20 @@
              <!--teleport end-->
            </div>
          </div>
        </div>
        <!--v-if-->
    +   
        <div
          aria-disabled="false"
          aria-label="Please wait..."
          class="cdx-progress-bar cdx-progress-bar--block cdx-progress-bar--enabled"
          role="progressbar"
        >
          <div
            class="cdx-progress-bar__bar"
          />
        </div>
    +   <!--v-if-->
    +   
        
      </div>

      88 | 		await wrapper.vm.$nextTick();
      89 |
    > 90 | 		expect( wrapper.element ).toMatchSnapshot();
         | 		                          ^
      91 | 	} );
      92 |
      93 | 	test( 'renders all items from all lists on special page', async () => {

      at Object.<anonymous> (tests/jest/ext.readingLists.special/Entries.test.js:90:29)

 › 2 snapshots failed.
FAIL tests/jest/ext.readingLists.special/Lists.test.js
  Lists
    ✕ renders with toolbar disabled (461 ms)
    ✕ renders with toolbar enabled (167 ms)

  ● Lists › renders with toolbar disabled

    expect(received).toMatchSnapshot()

    Snapshot name: `Lists renders with toolbar disabled 1`

    - Snapshot  - 0
    + Received  + 3

    @@ -9,17 +9,20 @@
        >
          
          
        </div>
        <!--v-if-->
    +   
        <div
          aria-disabled="false"
          aria-label="Please wait..."
          class="cdx-progress-bar cdx-progress-bar--block cdx-progress-bar--enabled"
          role="progressbar"
        >
          <div
            class="cdx-progress-bar__bar"
          />
        </div>
    +   <!--v-if-->
    +   
        
      </div>

      28 | 		await wrapper.vm.$nextTick();
      29 |
    > 30 | 		expect( wrapper.element ).toMatchSnapshot();
         | 		                          ^
      31 | 	} );
      32 |
      33 | 	test( 'renders with toolbar enabled', async () => {

      at Object.<anonymous> (tests/jest/ext.readingLists.special/Lists.test.js:30:29)

  ● Lists › renders with toolbar enabled

    expect(received).toMatchSnapshot()

    Snapshot name: `Lists renders with toolbar enabled 1`

    - Snapshot  - 22
    + Received  + 25

    @@ -8,17 +8,17 @@
          <div
            class="cdx-menu-button"
            style="display: none;"
          >
            <button
    -         aria-controls="v-1"
    +         aria-controls="v-2"
              aria-expanded="false"
              aria-haspopup="menu"
              aria-label="Display menu"
              class="cdx-button cdx-button--action-default cdx-button--weight-quiet cdx-button--size-medium cdx-button--icon-only"
              disabled=""
    -         id="v-0"
    +         id="v-1"
            >
              
              
              <span
                class="cdx-icon cdx-icon--medium"
    @@ -31,11 +31,11 @@
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <!--v-if-->
                  <g>
                    <path
    -                 d="M10 0 3 8h14zm0 18-7-8h14z"
    +                 d="M14 14.5 10 18l-4-3.5V12h8zm0-9V8H6V5.5L10 2z"
                    />
                  </g>
                </svg>
              </span>
              
    @@ -48,14 +48,14 @@
              <div
                class="cdx-menu cdx-menu-button__menu"
                style="display: none; visibility: hidden; position: absolute; top: 0px; left: 0px; transform: translate(0px, 0px);"
              >
                <ul
    -             aria-labelledby="v-0"
    +             aria-labelledby="v-1"
                  aria-multiselectable="true"
                  class="cdx-menu__listbox"
    -             id="v-1"
    +             id="v-2"
                  role="menu"
                  tabindex="-1"
                >
                  <!--v-if-->
                  <!--v-if-->
    @@ -63,12 +63,12 @@
                  
                  <li
                    class="cdx-menu__group-wrapper"
                  >
                    <ul
    -                 aria-describedby="v-2-1-description"
    -                 aria-labelledby="v-2-1-label"
    +                 aria-describedby="v-3-1-description"
    +                 aria-labelledby="v-3-1-label"
                      class="cdx-menu__group"
                      role="group"
                    >
                      <span
                        class="cdx-menu__group__meta"
    @@ -77,11 +77,11 @@
                        <span
                          class="cdx-menu__group__meta__text"
                        >
                          <span
                            class="cdx-menu__group__label"
    -                       id="v-2-1-label"
    +                       id="v-3-1-label"
                          >
                            Sort by
                          </span>
                          <!--v-if-->
                        </span>
    @@ -89,11 +89,11 @@
                      
                      <li
                        aria-checked="true"
                        aria-disabled="false"
                        class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
    -                   id="v-2-2"
    +                   id="v-3-2"
                        role="option"
                      >
                        
                        <span
                          class="cdx-menu-item__content"
    @@ -109,11 +109,11 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="M17.66 18h-2a.85.85 0 01-.56-.17 1.1 1.1 0 01-.32-.43l-1.33-3.53h-6.9L5.22 17.4a1.06 1.06 0 01-.31.41.83.83 0 01-.56.19h-2L8.68 2h2.63zm-4.92-6-2.2-5.84A16 16 0 0110 4.43q-.12.52-.27 1t-.27.77L7.26 12z"
    +                             d="m15.692 18-2.174-5H6.481l-2.173 5h-2.18L9.082 2.002h1.834L17.873 18zm-8.34-7h5.296L10 4.907z"
                                />
                              </g>
                            </svg>
                          </span>
                          <span
    @@ -141,22 +141,22 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
    +                             d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                                />
                              </g>
                            </svg>
                          </span>
                        </span>
                        
                      </li>
                      <li
                        aria-disabled="false"
                        class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
    -                   id="v-2-3"
    +                   id="v-3-3"
                        role="option"
                      >
                        
                        <span
                          class="cdx-menu-item__content"
    @@ -172,14 +172,14 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z"
    +                             d="M10 1a9 9 0 011 17.945V16.93A7.001 7.001 0 0010 3a7 7 0 00-4 12.743V13h2.001L8 18l-1 1H2v-2l2.346-.001A8.97 8.97 0 011 10a9 9 0 019-9"
                                />
                                <path
    -                             d="M10 1a9 9 0 00-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1110 17v2a9 9 0 000-18"
    +                             d="M11 10h3.5v2H9V6h2z"
                                />
                              </g>
                            </svg>
                          </span>
                          <span
    @@ -207,12 +207,12 @@
                  
                  <li
                    class="cdx-menu__group-wrapper"
                  >
                    <ul
    -                 aria-describedby="v-2-4-description"
    -                 aria-labelledby="v-2-4-label"
    +                 aria-describedby="v-3-4-description"
    +                 aria-labelledby="v-3-4-label"
                      class="cdx-menu__group"
                      role="group"
                    >
                      <span
                        class="cdx-menu__group__meta"
    @@ -221,11 +221,11 @@
                        <span
                          class="cdx-menu__group__meta__text"
                        >
                          <span
                            class="cdx-menu__group__label"
    -                       id="v-2-4-label"
    +                       id="v-3-4-label"
                          >
                            Direction
                          </span>
                          <!--v-if-->
                        </span>
    @@ -233,11 +233,11 @@
                      
                      <li
                        aria-checked="true"
                        aria-disabled="false"
                        class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
    -                   id="v-2-5"
    +                   id="v-3-5"
                        role="option"
                      >
                        
                        <span
                          class="cdx-menu-item__content"
    @@ -253,11 +253,11 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="m2 10 1.42 1.41L9 5.83V18h2V5.83l5.59 5.58L18 10l-8-8z"
    +                             d="M16.414 7.71 15 9.124l-4-4V19H9V5.124l-4 4L3.586 7.71l5.707-5.707h1.414z"
                                />
                              </g>
                            </svg>
                          </span>
                          <span
    @@ -285,22 +285,22 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
    +                             d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                                />
                              </g>
                            </svg>
                          </span>
                        </span>
                        
                      </li>
                      <li
                        aria-disabled="false"
                        class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
    -                   id="v-2-6"
    +                   id="v-3-6"
                        role="option"
                      >
                        
                        <span
                          class="cdx-menu-item__content"
    @@ -316,11 +316,11 @@
                              xmlns="http://www.w3.org/2000/svg"
                            >
                              <!--v-if-->
                              <g>
                                <path
    -                             d="m2 10 1.42-1.41L9 14.17V2h2v12.17l5.59-5.58L18 10l-8 8z"
    +                             d="M11 1v13.876l4-4 1.414 1.414-5.707 5.707H9.293L3.586 12.29 5 10.876l4 4V1z"
                                />
                              </g>
                            </svg>
                          </span>
                          <span
    @@ -359,17 +359,20 @@
        >
          
          
        </div>
        <!--v-if-->
    +   
        <div
          aria-disabled="false"
          aria-label="Please wait..."
          class="cdx-progress-bar cdx-progress-bar--block cdx-progress-bar--enabled"
          role="progressbar"
        >
          <div
            class="cdx-progress-bar__bar"
          />
        </div>
    +   <!--v-if-->
    +   
        
      </div>

      44 | 		await wrapper.vm.$nextTick();
      45 |
    > 46 | 		expect( wrapper.element ).toMatchSnapshot();
         | 		                          ^
      47 | 	} );
      48 | } );
      49 |

      at Object.<anonymous> (tests/jest/ext.readingLists.special/Lists.test.js:46:29)

 › 2 snapshots failed.
Snapshot Summary
 › 6 snapshots failed from 4 test suites. Inspect your code changes or run `npm run test:unit -- -u` to update them.

Test Suites: 4 failed, 9 passed, 13 total
Tests:       6 failed, 89 passed, 95 total
Snapshots:   6 failed, 4 passed, 10 total
Time:        6.7 s
Ran all test suites.
--- stdout ---

> test
> npm run lint && npm run test:unit


> lint
> npm run lint:i18n && npm run lint:scripts && npm run lint:scripts:tests && npm run lint:styles


> lint:i18n
> banana-checker i18n/ i18n/api/

Checked 2 message directories.

> lint:scripts
> eslint --cache --ignore-pattern tests/api-testing .


> lint:scripts:tests
> eslint --cache --no-ignore --config tests/api-testing/.eslintrc.json tests/api-testing


> lint:styles
> stylelint --cache -f verbose "resources/**/*.{css,less,vue}"


> test:unit
> jest --verbose

------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------
File                                      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                            
------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------
All files                                 |   82.19 |    68.02 |   76.43 |    81.9 |                                                              
 ext.readingLists.api                     |     100 |    93.75 |     100 |     100 |                                                              
  index.js                                |     100 |    93.75 |     100 |     100 | 108,251-263                                                  
 ext.readingLists.bookmark                |   91.58 |    85.48 |     100 |    91.5 |                                                              
  bookmark.js                             |   91.58 |    85.48 |     100 |    91.5 | 13-17,88,164,245,270-275,374                                 
 ext.readingLists.bookmark.anonymous      |   77.27 |    51.72 |   58.06 |      75 |                                                              
  CtaDialog.vue                           |   81.25 |    38.88 |      65 |    77.5 | 54-55,66-76,115,128-134                                      
  index.js                                |   85.71 |       75 |      60 |   85.71 | 23,28-29                                                     
  pulsatingDot.js                         |   57.89 |    71.42 |   33.33 |   57.89 | 11,21-24,38-43                                               
 ext.readingLists.bookmark.confirmPopover |     100 |      100 |     100 |     100 |                                                              
  ConfirmUnsavePopover.vue                |     100 |      100 |     100 |     100 |                                                              
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.onboarding              |   64.28 |    66.66 |   42.85 |   64.28 |                                                              
  index.js                                |     100 |      100 |     100 |     100 |                                                              
  mountApp.js                             |   63.63 |    66.66 |   42.85 |   63.63 | 15,23,45,49,53,57,61,65,69,73,104-105,112-126                
 ext.readingLists.onboarding.desktop      |   97.29 |       75 |    90.9 |   97.14 |                                                              
  OnboardingPopover.vue                   |   96.96 |       75 |      90 |   96.77 | 93                                                           
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.onboarding.mobile       |   96.66 |       75 |      90 |   96.29 |                                                              
  MobileOnboardingPopover.vue             |   96.15 |       75 |   88.88 |   95.65 | 68                                                           
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.special/components      |   75.91 |    45.65 |    64.1 |   77.03 |                                                              
  DisplayButton.vue                       |   51.51 |       25 |    62.5 |   54.83 | 73-89,110                                                    
  EmptyList.vue                           |   81.81 |      100 |       0 |   81.81 | 4,27                                                         
  EntryItem.vue                           |   91.66 |      100 |      75 |   91.66 | 13                                                           
  ImportDialog.vue                        |   45.83 |        0 |       0 |   45.83 | 19-41,56-77                                                  
  ListItem.vue                            |     100 |    66.66 |     100 |     100 | 34,36-58,70                                                  
  Survey.vue                              |   97.56 |     87.5 |    92.3 |   97.56 | 66                                                           
 ext.readingLists.special/pages           |   69.14 |    52.89 |    62.5 |   69.54 |                                                              
  Entries.vue                             |   63.24 |    54.02 |    61.9 |   63.79 | 74-86,95,105,119-127,136,143-144,155-158,170-180,191-207,259 
  Lists.vue                               |   81.03 |       50 |   63.63 |   81.03 | 42-46,72,78,88-89,98-99,130                                  
------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------

--- end ---
$ node_modules/.bin/jest -u
--- stderr ---
PASS tests/jest/ext.readingLists.onboarding.desktop/OnboardingPopover.test.js
 › 1 snapshot updated.
PASS tests/jest/ext.readingLists.bookmark.anonymous/CtaDialog.test.js
 › 1 snapshot updated.
PASS tests/jest/ext.readingLists.special/Entries.test.js
 › 2 snapshots updated.
PASS tests/jest/ext.readingLists.special/Lists.test.js
 › 2 snapshots updated.
PASS tests/jest/ext.readingLists.api/index.test.js
PASS tests/jest/ext.readingLists.bookmark.confirmPopover/ConfirmUnsavePopover.test.js
PASS tests/jest/ext.readingLists.bookmark/bookmark.test.js
PASS tests/jest/ext.readingLists.bookmark/index.test.js
PASS tests/jest/ext.readingLists.bookmark.anonymous/index.test.js
PASS tests/jest/ext.readingLists.special/Survey.test.js
PASS tests/jest/ext.readingLists.onboarding.mobile/MobileOnboardingPopover.test.js
PASS tests/jest/ext.readingLists.onboarding/mountApp.test.js
PASS tests/jest/ext.readingLists.bookmark.confirmPopover/index.test.js

Snapshot Summary
 › 6 snapshots updated from 4 test suites.

Test Suites: 13 passed, 13 total
Tests:       95 passed, 95 total
Snapshots:   6 updated, 4 passed, 10 total
Time:        3.765 s, estimated 4 s
Ran all test suites.
--- stdout ---
------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------
File                                      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                            
------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------
All files                                 |   82.19 |    68.02 |   76.43 |    81.9 |                                                              
 ext.readingLists.api                     |     100 |    93.75 |     100 |     100 |                                                              
  index.js                                |     100 |    93.75 |     100 |     100 | 108,251-263                                                  
 ext.readingLists.bookmark                |   91.58 |    85.48 |     100 |    91.5 |                                                              
  bookmark.js                             |   91.58 |    85.48 |     100 |    91.5 | 13-17,88,164,245,270-275,374                                 
 ext.readingLists.bookmark.anonymous      |   77.27 |    51.72 |   58.06 |      75 |                                                              
  CtaDialog.vue                           |   81.25 |    38.88 |      65 |    77.5 | 54-55,66-76,115,128-134                                      
  index.js                                |   85.71 |       75 |      60 |   85.71 | 23,28-29                                                     
  pulsatingDot.js                         |   57.89 |    71.42 |   33.33 |   57.89 | 11,21-24,38-43                                               
 ext.readingLists.bookmark.confirmPopover |     100 |      100 |     100 |     100 |                                                              
  ConfirmUnsavePopover.vue                |     100 |      100 |     100 |     100 |                                                              
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.onboarding              |   64.28 |    66.66 |   42.85 |   64.28 |                                                              
  index.js                                |     100 |      100 |     100 |     100 |                                                              
  mountApp.js                             |   63.63 |    66.66 |   42.85 |   63.63 | 15,23,45,49,53,57,61,65,69,73,104-105,112-126                
 ext.readingLists.onboarding.desktop      |   97.29 |       75 |    90.9 |   97.14 |                                                              
  OnboardingPopover.vue                   |   96.96 |       75 |      90 |   96.77 | 93                                                           
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.onboarding.mobile       |   96.66 |       75 |      90 |   96.29 |                                                              
  MobileOnboardingPopover.vue             |   96.15 |       75 |   88.88 |   95.65 | 68                                                           
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.special/components      |   75.91 |    45.65 |    64.1 |   77.03 |                                                              
  DisplayButton.vue                       |   51.51 |       25 |    62.5 |   54.83 | 73-89,110                                                    
  EmptyList.vue                           |   81.81 |      100 |       0 |   81.81 | 4,27                                                         
  EntryItem.vue                           |   91.66 |      100 |      75 |   91.66 | 13                                                           
  ImportDialog.vue                        |   45.83 |        0 |       0 |   45.83 | 19-41,56-77                                                  
  ListItem.vue                            |     100 |    66.66 |     100 |     100 | 34,36-58,70                                                  
  Survey.vue                              |   97.56 |     87.5 |    92.3 |   97.56 | 66                                                           
 ext.readingLists.special/pages           |   69.14 |    52.89 |    62.5 |   69.54 |                                                              
  Entries.vue                             |   63.24 |    54.02 |    61.9 |   63.79 | 74-86,95,105,119-127,136,143-144,155-158,170-180,191-207,259 
  Lists.vue                               |   81.03 |       50 |   63.63 |   81.03 | 42-46,72,78,88-89,98-99,130                                  
------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------

--- end ---
$ /usr/bin/npm test
--- stderr ---
0 of 14 sources checked
  /src/repo/resources/ext.readingLists.bookmark.anonymous/CtaDialog.vue (ignored)
  /src/repo/resources/ext.readingLists.bookmark.anonymous/pulsatingDot.less (ignored)
  /src/repo/resources/ext.readingLists.bookmark.confirmPopover/ConfirmUnsavePopover.vue (ignored)
  /src/repo/resources/ext.readingLists.onboarding.desktop/OnboardingPopover.vue (ignored)
  /src/repo/resources/ext.readingLists.onboarding.mobile/MobileOnboardingPopover.vue (ignored)
  /src/repo/resources/ext.readingLists.special/styles.less (ignored)
  /src/repo/resources/ext.readingLists.special/components/DisplayButton.vue (ignored)
  /src/repo/resources/ext.readingLists.special/components/EmptyList.vue (ignored)
  /src/repo/resources/ext.readingLists.special/components/EntryItem.vue (ignored)
  /src/repo/resources/ext.readingLists.special/components/ImportDialog.vue (ignored)
  /src/repo/resources/ext.readingLists.special/components/ListItem.vue (ignored)
  /src/repo/resources/ext.readingLists.special/components/Survey.vue (ignored)
  /src/repo/resources/ext.readingLists.special/pages/Entries.vue (ignored)
  /src/repo/resources/ext.readingLists.special/pages/Lists.vue (ignored)

0 problems found

PASS tests/jest/ext.readingLists.onboarding.desktop/OnboardingPopover.test.js
  OnboardingPopover
    rendering behavior
      ✓ matches the snapshot (109 ms)
      ✓ renders with custom title, body message keys, and banner image (26 ms)
      ✓ renders close button with aria-label (36 ms)
    popover dismiss behavior
      ✓ closes popover and calls onDismiss when close button is clicked (14 ms)
      ✓ calls onDismiss when popover is closed externally (9 ms)

PASS tests/jest/ext.readingLists.bookmark/bookmark.test.js
  initBookmark
    initialization
      Vector skin initBookmark
        ✓ sets outline icon and add bookmark label for unsaved page (18 ms)
        ✓ sets solid icon and remove bookmark label for saved page (5 ms)
      Minerva skin initBookmark
        ✓ uses Minerva icon classes (4 ms)
        ✓ sets solid icon and remove bookmark label for saved page (5 ms)
    click bookmark button to save page
      Vector skin bookmark click to save
        ✓ calls createEntry, updates icon, fires hook (9 ms)
        ✓ triggers onboarding popover on first save when not yet seen (45 ms)
        ✓ shows notify success when onboarding already seen (6 ms)
      Minerva skin bookmark button click to save
        ✓ calls createEntry, updates icon, fires hook (4 ms)
        ✓ triggers onboarding popover on first save when not yet seen (39 ms)
        ✓ shows notify success when onboarding already seen (4 ms)
    click bookmark button to unsave page
      ✓ calls deleteEntryByPageTitle, updates icon, fires hook on Vector skin (5 ms)
      ✓ calls deleteEntryByPageTitle, updates icon, fires hook on Minerva skin (6 ms)
      ✓ loads confirm popover before removing page from a custom list (6 ms)
      ✓ does not remove page when custom list confirmation is cancelled (4 ms)
    ReadingLists list setup flow
      ✓ calls api.setup() first when no listId, then calls createEntry on Vector skin (15 ms)
    error handling
      ✓ shows error notification when createEntry rejects on Vector skin (7 ms)
      ✓ shows error notification when deleteEntryByPageTitle rejects with unexpected error on Vector skin (4 ms)
  initOnboardingPopover
    ✓ returns early if anchor element not found in DOM (3 ms)
    ✓ returns early if storage key already set (4 ms)
    ✓ loads onboarding popover module after timer and idle callback (24 ms)
    ✓ defers loading onboarding popover if the homepage tour hasn't been seen yet (4 ms)

PASS tests/jest/ext.readingLists.special/Lists.test.js
  Lists
    ✓ renders with toolbar disabled (210 ms)
    ✓ renders with toolbar enabled (144 ms)

PASS tests/jest/ext.readingLists.special/Entries.test.js
  Entries
    ✓ renders with toolbar disabled (323 ms)
    ✓ renders with toolbar enabled (177 ms)
    ✓ renders all items from all lists on special page (69 ms)

PASS tests/jest/ext.readingLists.bookmark.confirmPopover/ConfirmUnsavePopover.test.js
  ConfirmUnsavePopover
    ConfirmUnsavePopover rendering
      ✓ matches the snapshot (54 ms)
    ConfirmUnsavePopover props
      ✓ primaryAction has a destructive action type (4 ms)
      ✓ placement is bottom-start when isMinerva is true (4 ms)
    ConfirmUnsavePopover actions
      ✓ calls onConfirm when the primary action is clicked (12 ms)
      ✓ calls onCancel when the default action is clicked (6 ms)
      ✓ calls onCancel when the popover is closed externally (5 ms)
      ✓ does not call onCancel when the popover emits open (3 ms)

PASS tests/jest/ext.readingLists.special/Survey.test.js
  Survey
    ✓ matches the snapshot (24 ms)
    when the positive button is clicked
      ✓ opens the dialog and renders dialog content (47 ms)
    when the negative button is clicked
      ✓ opens the dialog (22 ms)
    when the dialog is closed
      via the primary action button
        ✓ closes the dialog and shows the thank you message (74 ms)
      via the close button
        ✓ closes the dialog and shows the thank you message (44 ms)
    when the survey is completed
      ✓ contains the correct (21 ms)

PASS tests/jest/ext.readingLists.bookmark.anonymous/CtaDialog.test.js
  CtaDialog
    ✓ matches the snapshot (44 ms)

PASS tests/jest/ext.readingLists.bookmark/index.test.js
  ext.readingLists.bookmark index
    ✓ shows onboarding on the current article read view (12 ms)
    ✓ shows mobile onboarding on Minerva article read view (7 ms)
    ✓ does not show onboarding on main page (5 ms)
    ✓ does not show onboarding on edit action (5 ms)
    ✓ does not show onboarding on submit action (12 ms)
    ✓ does not show onboarding on history action (10 ms)
    ✓ does not show onboarding on visual editor (8 ms)
    ✓ does not show onboarding on visual editor source mode (4 ms)
    ✓ does not show onboarding on diff view (4 ms)
    ✓ does not show onboarding on old revision (3 ms)

PASS tests/jest/ext.readingLists.bookmark.confirmPopover/index.test.js
  confirmUnsaveFromCustomList
    ✓ mounts the app with the anchor element and isMinerva prop (3 ms)
    ✓ resolves with true and unmounts when onConfirm is called (1 ms)
    ✓ resolves with false and unmounts when onCancel is called (1 ms)

PASS tests/jest/ext.readingLists.bookmark.anonymous/index.test.js
  Anonymous bookmark button
    ✓ throws error when bookmark element is not found (37 ms)
    ✓ mounts CtaDialog when bookmark is clicked (6 ms)

PASS tests/jest/ext.readingLists.onboarding.mobile/MobileOnboardingPopover.test.js
  MobileOnboardingPopover
    rendering behavior
      ✓ matches the snapshot (13 ms)
      ✓ renders popover content when the popover is open (6 ms)
    popover dismiss behavior
      ✓ closes popover and calls onDismiss when user clicks the primary action (4 ms)
      ✓ calls onDismiss when user clicks outside the popover (3 ms)

PASS tests/jest/ext.readingLists.api/index.test.js
  setup
    ✓ returns inserted list (1 ms)
  getLists
    ✓ returns array of multiple lists (2 ms)
    ✓ paginates with continue token (1 ms)
    ✓ sets up default list if missing
    ✓ throws on unhandled error (1 ms)
  getList
    ✓ returns metadata of one list (1 ms)
    ✓ translates default list name/description
    ✓ sets up default list if missing (1 ms)
    ✓ throws on unhandled error
  getEntries
    ✓ returns array of list entries (2 ms)
    ✓ paginates with continue token (1 ms)
    ✓ sets up default list if missing (1 ms)
    ✓ throws on unhandled error (7 ms)
  getPagesFromManifest
    ✓ returns array of page metadata (2 ms)
    ✓ transforms language code to url (2 ms)
    ✓ resolves page ids to titles (1 ms)
    ✓ matches entries by title when API response has no normalized or redirects data (1 ms)
    ✓ resolves entry title through normalization and redirect
    ✓ returns fallback on error (1 ms)
  createEntry
    ✓ returns inserted entry (1 ms)
  deleteEntry
    ✓ returns success message
  deleteEntryByPageTitle
    ✓ returns success message (1 ms)
  fromBase64
    ✓ returns entries with resolved pages (2 ms)
    ✓ returns error message (2 ms)
    ✓ preserves name when already present in encoded data
  toBase64
    ✓ returns a base64 string that decodes to the original values
    ✓ throws on characters outside Latin-1 range in name (1 ms)
    ✓ produces output that fromBase64 can parse back (1 ms)

PASS tests/jest/ext.readingLists.onboarding/mountApp.test.js
  mountApp
    onboarding popover mounting
      ✓ mounts the popover with correct component and props and sets local storage key (6 ms)
      ✓ bannerImagePath is passed as prop when provided (2 ms)
    popover not in viewport
      ✓ does not mount when target is above the viewport (1 ms)

Test Suites: 13 passed, 13 total
Tests:       95 passed, 95 total
Snapshots:   10 passed, 10 total
Time:        3.301 s
Ran all test suites.
--- stdout ---

> test
> npm run lint && npm run test:unit


> lint
> npm run lint:i18n && npm run lint:scripts && npm run lint:scripts:tests && npm run lint:styles


> lint:i18n
> banana-checker i18n/ i18n/api/

Checked 2 message directories.

> lint:scripts
> eslint --cache --ignore-pattern tests/api-testing .


> lint:scripts:tests
> eslint --cache --no-ignore --config tests/api-testing/.eslintrc.json tests/api-testing


> lint:styles
> stylelint --cache -f verbose "resources/**/*.{css,less,vue}"


> test:unit
> jest --verbose

------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------
File                                      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                            
------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------
All files                                 |   82.19 |    68.02 |   76.43 |    81.9 |                                                              
 ext.readingLists.api                     |     100 |    93.75 |     100 |     100 |                                                              
  index.js                                |     100 |    93.75 |     100 |     100 | 108,251-263                                                  
 ext.readingLists.bookmark                |   91.58 |    85.48 |     100 |    91.5 |                                                              
  bookmark.js                             |   91.58 |    85.48 |     100 |    91.5 | 13-17,88,164,245,270-275,374                                 
 ext.readingLists.bookmark.anonymous      |   77.27 |    51.72 |   58.06 |      75 |                                                              
  CtaDialog.vue                           |   81.25 |    38.88 |      65 |    77.5 | 54-55,66-76,115,128-134                                      
  index.js                                |   85.71 |       75 |      60 |   85.71 | 23,28-29                                                     
  pulsatingDot.js                         |   57.89 |    71.42 |   33.33 |   57.89 | 11,21-24,38-43                                               
 ext.readingLists.bookmark.confirmPopover |     100 |      100 |     100 |     100 |                                                              
  ConfirmUnsavePopover.vue                |     100 |      100 |     100 |     100 |                                                              
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.onboarding              |   64.28 |    66.66 |   42.85 |   64.28 |                                                              
  index.js                                |     100 |      100 |     100 |     100 |                                                              
  mountApp.js                             |   63.63 |    66.66 |   42.85 |   63.63 | 15,23,45,49,53,57,61,65,69,73,104-105,112-126                
 ext.readingLists.onboarding.desktop      |   97.29 |       75 |    90.9 |   97.14 |                                                              
  OnboardingPopover.vue                   |   96.96 |       75 |      90 |   96.77 | 93                                                           
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.onboarding.mobile       |   96.66 |       75 |      90 |   96.29 |                                                              
  MobileOnboardingPopover.vue             |   96.15 |       75 |   88.88 |   95.65 | 68                                                           
  index.js                                |     100 |      100 |     100 |     100 |                                                              
 ext.readingLists.special/components      |   75.91 |    45.65 |    64.1 |   77.03 |                                                              
  DisplayButton.vue                       |   51.51 |       25 |    62.5 |   54.83 | 73-89,110                                                    
  EmptyList.vue                           |   81.81 |      100 |       0 |   81.81 | 4,27                                                         
  EntryItem.vue                           |   91.66 |      100 |      75 |   91.66 | 13                                                           
  ImportDialog.vue                        |   45.83 |        0 |       0 |   45.83 | 19-41,56-77                                                  
  ListItem.vue                            |     100 |    66.66 |     100 |     100 | 34,36-58,70                                                  
  Survey.vue                              |   97.56 |     87.5 |    92.3 |   97.56 | 66                                                           
 ext.readingLists.special/pages           |   69.14 |    52.89 |    62.5 |   69.54 |                                                              
  Entries.vue                             |   63.24 |    54.02 |    61.9 |   63.79 | 74-86,95,105,119-127,136,143-144,155-158,170-180,191-207,259 
  Lists.vue                               |   81.03 |       50 |   63.63 |   81.03 | 42-46,72,78,88-89,98-99,130                                  
------------------------------------------|---------|----------|---------|---------|--------------------------------------------------------------

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {},
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 0,
      "high": 0,
      "critical": 0,
      "total": 0
    },
    "dependencies": {
      "prod": 1,
      "dev": 830,
      "optional": 3,
      "peer": 29,
      "peerOptional": 0,
      "total": 830
    }
  }
}

--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json

--- end ---
build: Updating @wikimedia/codex to 2.6.0

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpbg018pex
--- stdout ---
[master d68f95a] build: Updating @wikimedia/codex to 2.6.0
 6 files changed, 69 insertions(+), 63 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From d68f95a55493795c33211a02a642c840e38ae53f Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sun, 14 Jun 2026 15:23:42 +0000
Subject: [PATCH] build: Updating @wikimedia/codex to 2.6.0

Change-Id: If1bf2f911d71bb3f83f06a7d809c795949ee6cd1
---
 package-lock.json                             | 20 ++++----
 package.json                                  |  2 +-
 .../__snapshots__/CtaDialog.test.js.snap      |  5 +-
 .../OnboardingPopover.test.js.snap            |  5 +-
 .../__snapshots__/Entries.test.js.snap        | 50 +++++++++++--------
 .../__snapshots__/Lists.test.js.snap          | 50 +++++++++++--------
 6 files changed, 69 insertions(+), 63 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 8fc2287..26c7b2b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
 				"@babel/preset-env": "7.28.5",
 				"@vue/test-utils": "2.4.6",
 				"@vue/vue3-jest": "29.2.6",
-				"@wikimedia/codex": "2.4.0",
+				"@wikimedia/codex": "2.6.0",
 				"@wikimedia/types-wikimedia": "0.5.0",
 				"api-testing": "1.7.3",
 				"eslint-config-wikimedia": "0.32.4",
@@ -3764,16 +3764,16 @@
 			}
 		},
 		"node_modules/@wikimedia/codex": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.4.0.tgz",
-			"integrity": "sha512-j/I1gGbTo6pttjmwyYw9/3CeInK6mpBm2FVfABJk+B1Ylw5DskX+TqeCdKghwxSkxBt0ODbUTBYdFyafk+7ajg==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.6.0.tgz",
+			"integrity": "sha512-ul/WXyxZbMV3PrWd0tGATuhTwUijRhHQxEJ+k+NukzcbY4MTItU3zEiw0Ye3wgNGQBMcCDt34pRGF3tXQwwDgA==",
 			"dev": true,
 			"dependencies": {
 				"@floating-ui/vue": "1.0.6",
-				"@wikimedia/codex-icons": "2.4.0"
+				"@wikimedia/codex-icons": "2.6.0"
 			},
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.2"
 			},
 			"peerDependencies": {
@@ -3781,12 +3781,12 @@
 			}
 		},
 		"node_modules/@wikimedia/codex-icons": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.4.0.tgz",
-			"integrity": "sha512-BBtrzLR7r9ShxCMYfsx9XaKJu/peqt5Y/jtvWx3E2G5aL/Y/pIWAkv8NIvU+ztKklbHySLH5jSvVZVKxxvU0Ew==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.6.0.tgz",
+			"integrity": "sha512-U0FK8kxhIrX5hAkFGZ0uWsR4arYjWw6GLCMZmrG1qvbX7+CFoVrhJQL7alogRdCrBiQBr8CUQOquOP5fUXPIBQ==",
 			"dev": true,
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.2"
 			}
 		},
diff --git a/package.json b/package.json
index 6fe5b1a..8727fb4 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,7 @@
 		"@babel/preset-env": "7.28.5",
 		"@vue/test-utils": "2.4.6",
 		"@vue/vue3-jest": "29.2.6",
-		"@wikimedia/codex": "2.4.0",
+		"@wikimedia/codex": "2.6.0",
 		"@wikimedia/types-wikimedia": "0.5.0",
 		"api-testing": "1.7.3",
 		"eslint-config-wikimedia": "0.32.4",
diff --git a/tests/jest/ext.readingLists.bookmark.anonymous/__snapshots__/CtaDialog.test.js.snap b/tests/jest/ext.readingLists.bookmark.anonymous/__snapshots__/CtaDialog.test.js.snap
index 2167f3e..d57a84e 100644
--- a/tests/jest/ext.readingLists.bookmark.anonymous/__snapshots__/CtaDialog.test.js.snap
+++ b/tests/jest/ext.readingLists.bookmark.anonymous/__snapshots__/CtaDialog.test.js.snap
@@ -59,10 +59,7 @@ exports[`CtaDialog matches the snapshot 1`] = `
                 <!--v-if-->
                 <g>
                   <path
-                    d="m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z"
-                  />
-                  <path
-                    d="M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z"
+                    d="M16.707 4.707 11.414 10l5.293 5.293-1.414 1.414L10 11.414l-5.293 5.293-1.414-1.414L8.586 10 3.293 4.707l1.414-1.414L10 8.586l5.293-5.293z"
                   />
                 </g>
               </svg>
diff --git a/tests/jest/ext.readingLists.onboarding.desktop/__snapshots__/OnboardingPopover.test.js.snap b/tests/jest/ext.readingLists.onboarding.desktop/__snapshots__/OnboardingPopover.test.js.snap
index 90e647d..12a8ef1 100644
--- a/tests/jest/ext.readingLists.onboarding.desktop/__snapshots__/OnboardingPopover.test.js.snap
+++ b/tests/jest/ext.readingLists.onboarding.desktop/__snapshots__/OnboardingPopover.test.js.snap
@@ -34,10 +34,7 @@ exports[`OnboardingPopover rendering behavior matches the snapshot 1`] = `
             <!--v-if-->
             <g>
               <path
-                d="m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z"
-              />
-              <path
-                d="M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z"
+                d="M16.707 4.707 11.414 10l5.293 5.293-1.414 1.414L10 11.414l-5.293 5.293-1.414-1.414L8.586 10 3.293 4.707l1.414-1.414L10 8.586l5.293-5.293z"
               />
             </g>
           </svg>
diff --git a/tests/jest/ext.readingLists.special/__snapshots__/Entries.test.js.snap b/tests/jest/ext.readingLists.special/__snapshots__/Entries.test.js.snap
index 76c735b..ecdf60d 100644
--- a/tests/jest/ext.readingLists.special/__snapshots__/Entries.test.js.snap
+++ b/tests/jest/ext.readingLists.special/__snapshots__/Entries.test.js.snap
@@ -140,6 +140,7 @@ exports[`Entries renders with toolbar disabled 1`] = `
   </p>
   <!--v-if-->
   <!--v-if-->
+  
   <div
     aria-disabled="false"
     aria-label="Please wait..."
@@ -150,6 +151,8 @@ exports[`Entries renders with toolbar disabled 1`] = `
       class="cdx-progress-bar__bar"
     />
   </div>
+  <!--v-if-->
+  
   
 </div>
 `;
@@ -170,13 +173,13 @@ exports[`Entries renders with toolbar enabled 1`] = `
       class="cdx-menu-button"
     >
       <button
-        aria-controls="v-1"
+        aria-controls="v-2"
         aria-expanded="false"
         aria-haspopup="menu"
         aria-label="Display menu"
         class="cdx-button cdx-button--action-default cdx-button--weight-quiet cdx-button--size-medium cdx-button--icon-only"
         disabled=""
-        id="v-0"
+        id="v-1"
       >
         
         
@@ -193,7 +196,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
             <!--v-if-->
             <g>
               <path
-                d="M10 0 3 8h14zm0 18-7-8h14z"
+                d="M14 14.5 10 18l-4-3.5V12h8zm0-9V8H6V5.5L10 2z"
               />
             </g>
           </svg>
@@ -210,10 +213,10 @@ exports[`Entries renders with toolbar enabled 1`] = `
           style="display: none; visibility: hidden; position: absolute; top: 0px; left: 0px; transform: translate(0px, 0px);"
         >
           <ul
-            aria-labelledby="v-0"
+            aria-labelledby="v-1"
             aria-multiselectable="true"
             class="cdx-menu__listbox"
-            id="v-1"
+            id="v-2"
             role="menu"
             tabindex="-1"
           >
@@ -225,8 +228,8 @@ exports[`Entries renders with toolbar enabled 1`] = `
               class="cdx-menu__group-wrapper"
             >
               <ul
-                aria-describedby="v-2-1-description"
-                aria-labelledby="v-2-1-label"
+                aria-describedby="v-3-1-description"
+                aria-labelledby="v-3-1-label"
                 class="cdx-menu__group"
                 role="group"
               >
@@ -239,7 +242,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                   >
                     <span
                       class="cdx-menu__group__label"
-                      id="v-2-1-label"
+                      id="v-3-1-label"
                     >
                       Sort by
                     </span>
@@ -251,7 +254,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                   aria-checked="true"
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-2"
+                  id="v-3-2"
                   role="option"
                 >
                   
@@ -271,7 +274,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M17.66 18h-2a.85.85 0 01-.56-.17 1.1 1.1 0 01-.32-.43l-1.33-3.53h-6.9L5.22 17.4a1.06 1.06 0 01-.31.41.83.83 0 01-.56.19h-2L8.68 2h2.63zm-4.92-6-2.2-5.84A16 16 0 0110 4.43q-.12.52-.27 1t-.27.77L7.26 12z"
+                            d="m15.692 18-2.174-5H6.481l-2.173 5h-2.18L9.082 2.002h1.834L17.873 18zm-8.34-7h5.296L10 4.907z"
                           />
                         </g>
                       </svg>
@@ -303,7 +306,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
+                            d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                           />
                         </g>
                       </svg>
@@ -314,7 +317,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                 <li
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-3"
+                  id="v-3-3"
                   role="option"
                 >
                   
@@ -334,10 +337,10 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z"
+                            d="M10 1a9 9 0 011 17.945V16.93A7.001 7.001 0 0010 3a7 7 0 00-4 12.743V13h2.001L8 18l-1 1H2v-2l2.346-.001A8.97 8.97 0 011 10a9 9 0 019-9"
                           />
                           <path
-                            d="M10 1a9 9 0 00-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1110 17v2a9 9 0 000-18"
+                            d="M11 10h3.5v2H9V6h2z"
                           />
                         </g>
                       </svg>
@@ -369,8 +372,8 @@ exports[`Entries renders with toolbar enabled 1`] = `
               class="cdx-menu__group-wrapper"
             >
               <ul
-                aria-describedby="v-2-4-description"
-                aria-labelledby="v-2-4-label"
+                aria-describedby="v-3-4-description"
+                aria-labelledby="v-3-4-label"
                 class="cdx-menu__group"
                 role="group"
               >
@@ -383,7 +386,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                   >
                     <span
                       class="cdx-menu__group__label"
-                      id="v-2-4-label"
+                      id="v-3-4-label"
                     >
                       Direction
                     </span>
@@ -395,7 +398,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                   aria-checked="true"
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-5"
+                  id="v-3-5"
                   role="option"
                 >
                   
@@ -415,7 +418,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="m2 10 1.42 1.41L9 5.83V18h2V5.83l5.59 5.58L18 10l-8-8z"
+                            d="M16.414 7.71 15 9.124l-4-4V19H9V5.124l-4 4L3.586 7.71l5.707-5.707h1.414z"
                           />
                         </g>
                       </svg>
@@ -447,7 +450,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
+                            d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                           />
                         </g>
                       </svg>
@@ -458,7 +461,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                 <li
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-6"
+                  id="v-3-6"
                   role="option"
                 >
                   
@@ -478,7 +481,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="m2 10 1.42-1.41L9 14.17V2h2v12.17l5.59-5.58L18 10l-8 8z"
+                            d="M11 1v13.876l4-4 1.414 1.414-5.707 5.707H9.293L3.586 12.29 5 10.876l4 4V1z"
                           />
                         </g>
                       </svg>
@@ -514,6 +517,7 @@ exports[`Entries renders with toolbar enabled 1`] = `
     </div>
   </div>
   <!--v-if-->
+  
   <div
     aria-disabled="false"
     aria-label="Please wait..."
@@ -524,6 +528,8 @@ exports[`Entries renders with toolbar enabled 1`] = `
       class="cdx-progress-bar__bar"
     />
   </div>
+  <!--v-if-->
+  
   
 </div>
 `;
diff --git a/tests/jest/ext.readingLists.special/__snapshots__/Lists.test.js.snap b/tests/jest/ext.readingLists.special/__snapshots__/Lists.test.js.snap
index d01e0c2..79d8090 100644
--- a/tests/jest/ext.readingLists.special/__snapshots__/Lists.test.js.snap
+++ b/tests/jest/ext.readingLists.special/__snapshots__/Lists.test.js.snap
@@ -14,6 +14,7 @@ exports[`Lists renders with toolbar disabled 1`] = `
     
   </div>
   <!--v-if-->
+  
   <div
     aria-disabled="false"
     aria-label="Please wait..."
@@ -24,6 +25,8 @@ exports[`Lists renders with toolbar disabled 1`] = `
       class="cdx-progress-bar__bar"
     />
   </div>
+  <!--v-if-->
+  
   
 </div>
 `;
@@ -41,13 +44,13 @@ exports[`Lists renders with toolbar enabled 1`] = `
       style="display: none;"
     >
       <button
-        aria-controls="v-1"
+        aria-controls="v-2"
         aria-expanded="false"
         aria-haspopup="menu"
         aria-label="Display menu"
         class="cdx-button cdx-button--action-default cdx-button--weight-quiet cdx-button--size-medium cdx-button--icon-only"
         disabled=""
-        id="v-0"
+        id="v-1"
       >
         
         
@@ -64,7 +67,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
             <!--v-if-->
             <g>
               <path
-                d="M10 0 3 8h14zm0 18-7-8h14z"
+                d="M14 14.5 10 18l-4-3.5V12h8zm0-9V8H6V5.5L10 2z"
               />
             </g>
           </svg>
@@ -81,10 +84,10 @@ exports[`Lists renders with toolbar enabled 1`] = `
           style="display: none; visibility: hidden; position: absolute; top: 0px; left: 0px; transform: translate(0px, 0px);"
         >
           <ul
-            aria-labelledby="v-0"
+            aria-labelledby="v-1"
             aria-multiselectable="true"
             class="cdx-menu__listbox"
-            id="v-1"
+            id="v-2"
             role="menu"
             tabindex="-1"
           >
@@ -96,8 +99,8 @@ exports[`Lists renders with toolbar enabled 1`] = `
               class="cdx-menu__group-wrapper"
             >
               <ul
-                aria-describedby="v-2-1-description"
-                aria-labelledby="v-2-1-label"
+                aria-describedby="v-3-1-description"
+                aria-labelledby="v-3-1-label"
                 class="cdx-menu__group"
                 role="group"
               >
@@ -110,7 +113,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                   >
                     <span
                       class="cdx-menu__group__label"
-                      id="v-2-1-label"
+                      id="v-3-1-label"
                     >
                       Sort by
                     </span>
@@ -122,7 +125,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                   aria-checked="true"
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-2"
+                  id="v-3-2"
                   role="option"
                 >
                   
@@ -142,7 +145,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M17.66 18h-2a.85.85 0 01-.56-.17 1.1 1.1 0 01-.32-.43l-1.33-3.53h-6.9L5.22 17.4a1.06 1.06 0 01-.31.41.83.83 0 01-.56.19h-2L8.68 2h2.63zm-4.92-6-2.2-5.84A16 16 0 0110 4.43q-.12.52-.27 1t-.27.77L7.26 12z"
+                            d="m15.692 18-2.174-5H6.481l-2.173 5h-2.18L9.082 2.002h1.834L17.873 18zm-8.34-7h5.296L10 4.907z"
                           />
                         </g>
                       </svg>
@@ -174,7 +177,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
+                            d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                           />
                         </g>
                       </svg>
@@ -185,7 +188,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                 <li
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-3"
+                  id="v-3-3"
                   role="option"
                 >
                   
@@ -205,10 +208,10 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z"
+                            d="M10 1a9 9 0 011 17.945V16.93A7.001 7.001 0 0010 3a7 7 0 00-4 12.743V13h2.001L8 18l-1 1H2v-2l2.346-.001A8.97 8.97 0 011 10a9 9 0 019-9"
                           />
                           <path
-                            d="M10 1a9 9 0 00-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1110 17v2a9 9 0 000-18"
+                            d="M11 10h3.5v2H9V6h2z"
                           />
                         </g>
                       </svg>
@@ -240,8 +243,8 @@ exports[`Lists renders with toolbar enabled 1`] = `
               class="cdx-menu__group-wrapper"
             >
               <ul
-                aria-describedby="v-2-4-description"
-                aria-labelledby="v-2-4-label"
+                aria-describedby="v-3-4-description"
+                aria-labelledby="v-3-4-label"
                 class="cdx-menu__group"
                 role="group"
               >
@@ -254,7 +257,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                   >
                     <span
                       class="cdx-menu__group__label"
-                      id="v-2-4-label"
+                      id="v-3-4-label"
                     >
                       Direction
                     </span>
@@ -266,7 +269,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                   aria-checked="true"
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--selected cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-5"
+                  id="v-3-5"
                   role="option"
                 >
                   
@@ -286,7 +289,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="m2 10 1.42 1.41L9 5.83V18h2V5.83l5.59 5.58L18 10l-8-8z"
+                            d="M16.414 7.71 15 9.124l-4-4V19H9V5.124l-4 4L3.586 7.71l5.707-5.707h1.414z"
                           />
                         </g>
                       </svg>
@@ -318,7 +321,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="M7 14.17 2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"
+                            d="M18.154 3.837 8.034 16.62l-1.384.18-4.8-3.6 1.2-1.6 4.02 3.015 9.517-12.02z"
                           />
                         </g>
                       </svg>
@@ -329,7 +332,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                 <li
                   aria-disabled="false"
                   class="cdx-menu-item cdx-menu-item--enabled cdx-menu__group__item"
-                  id="v-2-6"
+                  id="v-3-6"
                   role="option"
                 >
                   
@@ -349,7 +352,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
                         <!--v-if-->
                         <g>
                           <path
-                            d="m2 10 1.42-1.41L9 14.17V2h2v12.17l5.59-5.58L18 10l-8 8z"
+                            d="M11 1v13.876l4-4 1.414 1.414-5.707 5.707H9.293L3.586 12.29 5 10.876l4 4V1z"
                           />
                         </g>
                       </svg>
@@ -392,6 +395,7 @@ exports[`Lists renders with toolbar enabled 1`] = `
     
   </div>
   <!--v-if-->
+  
   <div
     aria-disabled="false"
     aria-label="Please wait..."
@@ -402,6 +406,8 @@ exports[`Lists renders with toolbar enabled 1`] = `
       class="cdx-progress-bar__bar"
     />
   </div>
+  <!--v-if-->
+  
   
 </div>
 `;
-- 
2.47.3


--- end ---
Source code is licensed under the AGPL.