From e317ba31668fcff696d13e8502234a08447d6494 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 11 Jan 2026 16:04:20 -0500 Subject: [PATCH 01/69] chore(deps): update dependency eslint-plugin-vue to v10 --- package-lock.json | 175 ++++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 108 insertions(+), 69 deletions(-) diff --git a/package-lock.json b/package-lock.json index e281386..9bad58d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^10.0.0", "eslint-plugin-import": "^2.27.5", - "eslint-plugin-vue": "^9.12.0", + "eslint-plugin-vue": "^10.0.0", "prettier": "2.8.8" } }, @@ -177,10 +177,11 @@ "license": "ISC" }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -599,12 +600,13 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1043,26 +1045,35 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.33.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz", - "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==", + "version": "10.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.6.2.tgz", + "integrity": "sha512-nA5yUs/B1KmKzvC42fyD0+l9Yd+LtEpVhWRbXuDj0e+ZURcTtyRbMDWUeJmTAh2wC6jC83raS63anNM2YT3NPw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "globals": "^13.24.0", "natural-compare": "^1.4.0", "nth-check": "^2.1.1", - "postcss-selector-parser": "^6.0.15", + "postcss-selector-parser": "^7.1.0", "semver": "^7.6.3", - "vue-eslint-parser": "^9.4.3", "xml-name-validator": "^4.0.0" }, "engines": { - "node": "^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + "@stylistic/eslint-plugin": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "@typescript-eslint/parser": "^7.0.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "vue-eslint-parser": "^10.0.0" + }, + "peerDependenciesMeta": { + "@stylistic/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/parser": { + "optional": true + } } }, "node_modules/eslint-plugin-vue/node_modules/semver": { @@ -1126,10 +1137,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -2080,30 +2092,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -2136,10 +2130,11 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", @@ -2400,9 +2395,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", "dependencies": { @@ -3085,38 +3080,88 @@ "dev": true }, "node_modules/vue-eslint-parser": { - "version": "9.4.3", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", - "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.2.0.tgz", + "integrity": "sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" + "debug": "^4.4.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.6.0", + "semver": "^7.6.3" }, "engines": { - "node": "^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { - "eslint": ">=6.0.0" + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -3243,12 +3288,6 @@ "node": ">=12" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 81686af..1760c5d 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^10.0.0", "eslint-plugin-import": "^2.27.5", - "eslint-plugin-vue": "^9.12.0", + "eslint-plugin-vue": "^10.0.0", "prettier": "2.8.8" } } -- 2.40.1 From ce1e6b82211fc842fb10ced6fa8b9425d7cc848c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 11 Jan 2026 19:07:40 -0500 Subject: [PATCH 02/69] chore(deps): update dependency prettier to v3 --- package-lock.json | 13 +++++++------ package.json | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9bad58d..be5c991 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "eslint-config-prettier": "^10.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-vue": "^10.0.0", - "prettier": "2.8.8" + "prettier": "3.7.4" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -2418,15 +2418,16 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, + "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" diff --git a/package.json b/package.json index 1760c5d..a8558cb 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,6 @@ "eslint-config-prettier": "^10.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-vue": "^10.0.0", - "prettier": "2.8.8" + "prettier": "3.7.4" } } -- 2.40.1 From bea3f5b11ea7dc49239b1c0ba5e40d0ea4241ac0 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 13 Jan 2026 21:55:06 -0500 Subject: [PATCH 03/69] chore(deps): update dependency eslint to v9 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a8558cb..91b1702 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "author": "", "license": "ISC", "devDependencies": { - "eslint": "^8.40.0", + "eslint": "^9.0.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^10.0.0", "eslint-plugin-import": "^2.27.5", -- 2.40.1 From db172cdc8bb020dd2f762c35598aa6393c23b713 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 14 Jan 2026 19:04:53 -0500 Subject: [PATCH 04/69] chore(deps): update dependency prettier to v3.8.0 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index be5c991..cba794a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "eslint-config-prettier": "^10.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-vue": "^10.0.0", - "prettier": "3.7.4" + "prettier": "3.8.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -2418,9 +2418,9 @@ } }, "node_modules/prettier": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", - "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.0.tgz", + "integrity": "sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==", "dev": true, "license": "MIT", "bin": { diff --git a/package.json b/package.json index a8558cb..81ec38f 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,6 @@ "eslint-config-prettier": "^10.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-vue": "^10.0.0", - "prettier": "3.7.4" + "prettier": "3.8.0" } } -- 2.40.1 From cef5a6c904dbfa727035a2de165dd4d6ee6b0d2b Mon Sep 17 00:00:00 2001 From: Mark Eaton Date: Mon, 19 Jan 2026 13:29:24 -0500 Subject: [PATCH 05/69] fix nav bar problems created by accessibility improvements --- groups/home/bootstrap3/Vue3-v.7-css.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/groups/home/bootstrap3/Vue3-v.7-css.html b/groups/home/bootstrap3/Vue3-v.7-css.html index a7c525c..5ea3979 100644 --- a/groups/home/bootstrap3/Vue3-v.7-css.html +++ b/groups/home/bootstrap3/Vue3-v.7-css.html @@ -162,6 +162,10 @@ font-size: 1.4em; color: var(--text); border-radius: 0; + padding: 10px 0; + } + .main-nav-dropdown { + margin: 0 8px; } .nav .open > a, .nav .open > a:focus, @@ -181,6 +185,8 @@ } .ga-main-navbar { font-size: 1.3em; + background-color: transparent; + border: none; } #dropdownMenu1 { border-radius: 0; -- 2.40.1 From e262c39c8216a96293683bce68b4ea4902537579 Mon Sep 17 00:00:00 2001 From: Mark Eaton Date: Mon, 19 Jan 2026 14:09:06 -0500 Subject: [PATCH 06/69] fix header padding problem --- groups/home/bootstrap3/Vue3-v.7-css.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/groups/home/bootstrap3/Vue3-v.7-css.html b/groups/home/bootstrap3/Vue3-v.7-css.html index 5ea3979..f15122f 100644 --- a/groups/home/bootstrap3/Vue3-v.7-css.html +++ b/groups/home/bootstrap3/Vue3-v.7-css.html @@ -228,6 +228,8 @@ #onesearch-header { font-size: 10em; margin-bottom: 0; + line-height: 1; + padding-top: 30px; } .form-width { width: 100%; -- 2.40.1 From 9e7391648db0cd082acda454b050ccf0fd7b3640 Mon Sep 17 00:00:00 2001 From: Mark Eaton Date: Mon, 19 Jan 2026 14:11:47 -0500 Subject: [PATCH 07/69] small change in wording, for spacing purposes --- groups/home/bootstrap3/Vue3-v.7.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groups/home/bootstrap3/Vue3-v.7.html b/groups/home/bootstrap3/Vue3-v.7.html index 68c6f2f..342bb04 100644 --- a/groups/home/bootstrap3/Vue3-v.7.html +++ b/groups/home/bootstrap3/Vue3-v.7.html @@ -210,7 +210,7 @@ class="ga-library-links" aria-label="NY Times Free Pass (opens in new tab)" > - NY Times Free Pass + NY Times Pass -- 2.40.1 From b6939ebeb2183ba3c049f81c783faf11a7bd1f0f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 23 Jan 2026 22:59:55 -0500 Subject: [PATCH 08/69] chore(deps): update dependency prettier to v3.8.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 80fc406..065e1ab 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,6 @@ "eslint-config-prettier": "^10.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-vue": "^10.0.0", - "prettier": "3.8.0" + "prettier": "3.8.1" } } -- 2.40.1 From 49cd85fa60b8c970e3acb2dc35a0446387621d52 Mon Sep 17 00:00:00 2001 From: Mark Eaton Date: Fri, 23 Jan 2026 23:51:46 -0500 Subject: [PATCH 09/69] tweak renovate config to prevent errors in pull requests --- renovate.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 7190a60..45b3ec1 100644 --- a/renovate.json +++ b/renovate.json @@ -1,3 +1,6 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "lockFileMaintenance": { + "enabled": true + } } -- 2.40.1 From 7b18219029bb3eccc3dbf5e08cb6917bd40f3635 Mon Sep 17 00:00:00 2001 From: Mark Eaton Date: Wed, 4 Feb 2026 23:46:01 -0500 Subject: [PATCH 10/69] first bootstrap5 version of homepage --- groups/home/bootstrap5/home1.css | 667 ++++++++++++++++++++++++++++++ groups/home/bootstrap5/home1.html | 373 +++++++++++++++++ groups/home/bootstrap5/home1.js | 438 ++++++++++++++++++++ 3 files changed, 1478 insertions(+) create mode 100644 groups/home/bootstrap5/home1.css create mode 100644 groups/home/bootstrap5/home1.html create mode 100644 groups/home/bootstrap5/home1.js diff --git a/groups/home/bootstrap5/home1.css b/groups/home/bootstrap5/home1.css new file mode 100644 index 0000000..b1f56fa --- /dev/null +++ b/groups/home/bootstrap5/home1.css @@ -0,0 +1,667 @@ + + + + + + + + + + + + + + + diff --git a/groups/home/bootstrap5/home1.html b/groups/home/bootstrap5/home1.html new file mode 100644 index 0000000..a2ebb8e --- /dev/null +++ b/groups/home/bootstrap5/home1.html @@ -0,0 +1,373 @@ + + + + + + + + + +
+ +

Robert J. Kibbee Library - Kingsborough Community College

+ +
+
+ +
+
+
+ + + +
Login
+
+
+ + {{content_box_33471502}} +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+
+
+
+ +
+
+
+
+ + + + + + + + + + +
+
+
+
+ +
+
+
+ +

Featured in the Library

+
+
+
{{content_box_25912431}}
+
+
+
+
+
+
+ +
+ + +
+
+
+ +
+
+
+
+ title + +
+
+ Loading... + +
+
+ +
+ + + + + + + + + + diff --git a/groups/home/bootstrap5/home1.js b/groups/home/bootstrap5/home1.js new file mode 100644 index 0000000..fa36c00 --- /dev/null +++ b/groups/home/bootstrap5/home1.js @@ -0,0 +1,438 @@ +const hamburgerComponent = { + template: `
+ + {{ item.description }} +
`, + props: ["item"], +}; + +const navigComponent = { + // Fixed: Removed invalid nested elements (WCAG 4.1.1) + // Changed outer to + `, + props: ["navlistofmenus"], + methods: { + toggleDropdown(navmenu) { + // Toggle the isOpen state for aria-expanded + navmenu.isOpen = !navmenu.isOpen; + }, + closeDropdown(navmenu) { + navmenu.isOpen = false; + } + } +}; + +const onesearchComponent = { + // Fixed: Added autocomplete="off" to search input (WCAG 1.3.5) + // Note: autocomplete="off" is appropriate here as this is a library search, not a standard web search + template: ``, + methods: { + selectradio(radiooutputfacet, radiooutputmfacet) { + this.facet = radiooutputfacet; // store the data from the radio selection + this.mfacet = radiooutputmfacet; + }, + submitSearch() { + this.$refs.primoQueryString.value = `any,contains,${this.$refs.primoQueryTempString.value.replace( + /[,]/g, + " " + )}`; // vueified OLS widget code + this.$refs.oneSearchForm.submit(); // submit the form + }, + }, + data() { + return { + facet: "", // initialize the data from the radio selection + mfacet: "", + }; + }, +}; + +const { createApp } = Vue; + +const app1 = createApp({ + components: { + "navig-component": navigComponent, + "hamburger-component": hamburgerComponent, + }, + data() { + return { + hamburger: [ + { + link: "https://cuny-kb.primo.exlibrisgroup.com/discovery/search?tab=Everything&vid=01CUNY_KB:CUNY_KB&lang=en", + icon: "fas fa-search fa-fw bigger-icon", + description: "OneSearch", + target_blank: "", + id: 1, + }, + { + link: "https://library.kbcc.cuny.edu/az.php", + icon: "fas fa-database fa-fw bigger-icon", + description: "Databases A to Z", + target_blank: "", + id: 2, + }, + { + link: "https://library.kbcc.cuny.edu/guides", + icon: "fas fa-telescope fa-fw bigger-icon", + description: "Research Guides", + target_blank: "", + id: 3, + }, + { + link: "https://library.kbcc.cuny.edu/faq", + icon: "fas fa-question-circle fa-fw bigger-icon", + description: "FAQ", + target_blank: "", + id: 4, + }, + { + link: "https://library.kbcc.cuny.edu/calendar", + icon: "fas fa-clock fa-fw bigger-icon", + description: "Library Hours", + target_blank: "", + id: 5, + }, + { + link: "https://library.kbcc.cuny.edu/sitemap", + icon: "fas fa-location-arrow fa-fw bigger-icon", + description: "Site Map", + target_blank: "", + id: 6, + }, + ], + navlistofmenus: { + "Find It": { + id: 1, + isOpen: false, // Added for dynamic aria-expanded (WCAG 4.1.2) + data: [ + { + link: "https://library.kbcc.cuny.edu/az.php", + icon: "fas fa-database fa-fw bigger-icon", + description: "Databases A to Z", + target_blank: "", + id: 1, + }, + { + link: "https://cuny-kb.primo.exlibrisgroup.com/discovery/npsearch?vid=01CUNY_KB:CUNY_KB&search_scope=all", + icon: "fas fa-newspaper fa-fw bigger-icon", + description: "Newspaper Search", + target_blank: "", + id: 2, + }, + { + link: "https://cuny-kb.primo.exlibrisgroup.com/discovery/search?vid=01CUNY_KB:CUNY_KB&tab=CourseReserves&search_scope=CourseReserves", + icon: "fas fa-cloud-download-alt fa-fw bigger-icon", + description: "Course Reserves", + target_blank: "", + id: 3, + }, + { + link: "https://cuny-kb.primo.exlibrisgroup.com/discovery/jsearch?vid=01CUNY_KB:CUNY_KB", + icon: "fas fa-book fa-fw bigger-icon", + description: "Search for Specific Journals", + target_blank: "", + id: 4, + }, + { + link: "https://library.kbcc.cuny.edu/academicworks", + icon: "fas fa-archive fa-fw bigger-icon", + description: "CUNY Academic Works", + target_blank: "_blank", + id: 5, + }, + { + link: "https://kbcc.textbookx.com/institutional/index.php", + icon: "fas fa-cash-register fa-fw bigger-icon", + description: "KBCC Bookstore", + target_blank: "_blank", + id: 6, + }, + ], + }, + Services: { + id: 2, + isOpen: false, // Added for dynamic aria-expanded (WCAG 4.1.2) + data: [ + { + link: "https://kbcc-cuny.illiad.oclc.org/illiad/logon.html", + icon: "fas fa-books fa-fw bigger-icon", + description: "Interlibrary Loan", + target_blank: "_blank", + id: 1, + }, + { + link: "https://library.kbcc.cuny.edu/libraryservices/informationliteracy", + icon: "fas fa-chalkboard-teacher fa-fw bigger-icon", + description: "Book a Library Instruction Session", + target_blank: "", + id: 2, + }, + { + link: "https://library.kbcc.cuny.edu/mediaservices", + icon: "fas fa-photo-video fa-fw bigger-icon", + description: "Media Services", + target_blank: "", + id: 3, + }, + { + link: "https://kbcc-cuny.libanswers.com/form?queue_id=6967", + icon: "fas fa-shopping-basket fa-fw bigger-icon", + description: "Suggest a Book for Purchase", + target_blank: "", + id: 4, + }, + { + link: "https://kbcc-cuny.libwizard.com/id/8cdb3f1a787de3c307a8cf5d75cad406", + icon: "fas fa-bookmark fa-fw bigger-icon", + description: "Suggest an Item to Add to Reserves", + target_blank: "", + id: 5, + }, + ], + }, + "About Us": { + id: 3, + isOpen: false, // Added for dynamic aria-expanded (WCAG 4.1.2) + data: [ + { + link: "https://library.kbcc.cuny.edu/about-us/directory", + icon: "fas fa-address-book fa-fw bigger-icon", + description: "Faculty & Staff Directory", + target_blank: "", + id: 1, + }, + { + link: "https://library.kbcc.cuny.edu/newarrivals", + icon: "far fa-mail-bulk fa-fw bigger-icon", + description: "New Arrivals", + target_blank: "", + id: 2, + }, + { + link: "https://library.kbcc.cuny.edu/about-us/liaisons", + icon: "fas fa-theater-masks fa-fw bigger-icon", + description: "Subject Liaisons", + target_blank: "", + id: 3, + }, + { + link: "https://library.kbcc.cuny.edu/social", + icon: "far fa-hashtag fa-fw bigger-icon", + description: "Social Media", + target_blank: "", + id: 4, + }, + { + link: "https://cuny-kb.alma.exlibrisgroup.com/discovery/collectionDiscovery?vid=01CUNY_KB:CUNY_KB", + icon: "fa-solid fa-star fa-fw bigger-icon", + description: "Featured Collections", + target_blank: "", + id: 5, + }, + ], + }, + "Location & Hours": { + id: 4, + isOpen: false, // Added for dynamic aria-expanded (WCAG 4.1.2) + data: [ + { + link: "https://tour.kingsborough.edu/", + icon: "fas fa-map-marked-alt fa-fw bigger-icon", + description: "Campus Map", + target_blank: "", + id: 1, + }, + { + link: "https://library.kbcc.cuny.edu/calendar", + icon: "fas fa-clock fa-fw bigger-icon", + description: "Library Hours", + target_blank: "", + id: 2, + }, + ], + }, + Help: { + id: 5, + isOpen: false, // Added for dynamic aria-expanded (WCAG 4.1.2) + data: [ + { + link: "https://library.kbcc.cuny.edu/askalibrarian", + icon: "fas fa-book-reader fa-fw bigger-icon", + description: "Ask A Librarian", + target_blank: "", + id: 1, + }, + { + link: "https://library.kbcc.cuny.edu/faq", + icon: "fas fa-question-circle fa-fw bigger-icon", + description: "FAQ", + target_blank: "", + id: 2, + }, + { + link: "https://library.kbcc.cuny.edu/guides", + icon: "fas fa-telescope fa-fw bigger-icon", + description: "Research Guides and Tutorials", + target_blank: "", + id: 3, + }, + { + link: "https://library.kbcc.cuny.edu/ENGLISH24", + icon: "fas fa-question fa-fw bigger-icon", + description: "How to Use the Library", + target_blank: "", + id: 4, + }, + ], + }, + }, + }; + }, + mounted() { + // Dynamic aria-expanded for hamburger menu (WCAG 4.1.2) + const hamburger = document.getElementById('hamburger'); + const hamburgerContainer = document.getElementById('hamburger-container'); + + if (hamburger && hamburgerContainer) { + // Update aria-expanded when dropdown opens/closes (BS5 native events) + hamburgerContainer.addEventListener('shown.bs.dropdown', function() { + hamburger.setAttribute('aria-expanded', 'true'); + }); + hamburgerContainer.addEventListener('hidden.bs.dropdown', function() { + hamburger.setAttribute('aria-expanded', 'false'); + }); + } + } +}); +app1.mount("#app1"); + +const app2 = createApp({ + components: { + "onesearch-component": onesearchComponent, + }, +}); +app2.mount("#app2"); + -- 2.40.1 From 36847a4660c9e1deb9171537386be8f2346d2a5e Mon Sep 17 00:00:00 2001 From: Mark Eaton Date: Thu, 5 Feb 2026 14:00:55 -0500 Subject: [PATCH 11/69] bug fixes on bs5 version --- groups/home/bootstrap5/home1.css | 17 ++++++++--------- groups/home/bootstrap5/home1.js | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/groups/home/bootstrap5/home1.css b/groups/home/bootstrap5/home1.css index b1f56fa..2c673c9 100644 --- a/groups/home/bootstrap5/home1.css +++ b/groups/home/bootstrap5/home1.css @@ -72,6 +72,8 @@ opacity: 0; pointer-events: none; position: absolute; + top: 100%; + margin-top: 0; } .show > .dropdown-menu.fade, .dropdown-menu.fade.show { @@ -151,7 +153,8 @@ /* style navbar */ nav.navbar-light.main-nav-container { - background-color: white; + background-color: white !important; + background: white !important; border: none; font-size: 1.4em; color: var(--text); @@ -211,7 +214,7 @@ padding: 20px 0; border-radius: 5px; background-size: cover; - margin: -30px 0 30px 0; + margin: 0 0 30px 0; } /* style jumbotron */ @@ -441,13 +444,9 @@ margin-left: 8px; color: var(--kbccorange); } - .show > button > .fancy-caret { - margin-bottom: -4px; - vertical-align: -4px; - display: inline-block; - } - .show > button > .caret-text { - vertical-align: -1px; + button.show > .fancy-caret { + position: relative; + top: 4px; } /* style footer */ diff --git a/groups/home/bootstrap5/home1.js b/groups/home/bootstrap5/home1.js index fa36c00..4d2edcb 100644 --- a/groups/home/bootstrap5/home1.js +++ b/groups/home/bootstrap5/home1.js @@ -9,7 +9,7 @@ const hamburgerComponent = { const navigComponent = { // Fixed: Removed invalid nested elements (WCAG 4.1.1) // Changed outer to
and made dropdown-toggle a - -
- - -
Login
-
-
- - {{content_box_33471502}} - - - - -
-
- -
- -
- - - - -
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -

Featured in the Library

-
-
-
{{content_box_25912431}}
-
-
-
-
-
-
- -
- - -
-
- - -
-
-
-
- title - -
-
- Loading... - -
-
- - - - -
- - - - - - - - - -- 2.40.1 From a978df4af9453563b4bb1fd0c7793a0ff5222cc9 Mon Sep 17 00:00:00 2001 From: Mark Eaton Date: Sat, 21 Feb 2026 23:27:53 -0500 Subject: [PATCH 21/69] add dark/light mode toggle with OS preference detection Uses Bootstrap 5.3 data-bs-theme attribute for automatic component theming. Adds CSS custom properties for dark mode, a toggle button in the header, localStorage persistence, and a flash-prevention script. Background image overlay adjusts per theme. Co-Authored-By: Claude Opus 4.6 --- groups/home/bootstrap5/home1.css | 76 +++++++++++++++++++++++++++---- groups/home/bootstrap5/home1.html | 19 ++++++++ groups/home/bootstrap5/home1.js | 57 ++++++++++++++++++++++- 3 files changed, 142 insertions(+), 10 deletions(-) diff --git a/groups/home/bootstrap5/home1.css b/groups/home/bootstrap5/home1.css index 5f7a6ce..dd9aa35 100644 --- a/groups/home/bootstrap5/home1.css +++ b/groups/home/bootstrap5/home1.css @@ -3,11 +3,27 @@ --kbccblue: #003466; --kbccorange: #ff4e00; --text: #111; + --bg: #fff; + --bg-surface: #fff; + --hover-dark: #444; + --focus-outline: #0056b3; + --link-color: black; + } + + [data-bs-theme="dark"] { + --text: #e0e0e0; + --bg: #1a1a2e; + --bg-surface: #25253e; + --hover-dark: #555; + --focus-outline: #6ea8fe; + --link-color: #ccc; } body { color: var(--text); + background-color: var(--bg); overflow-x: hidden; + transition: background-color 0.3s ease, color 0.3s ease; } a, @@ -53,14 +69,14 @@ #hamburger:active { border: none; outline: none; - background-color: #fff; + background-color: var(--bg-surface); color: var(--kbccblue); } #hamburger::after { display: none; } #hamburger-ul > li > .searchmenu { - background-color: #fff; + background-color: var(--bg-surface); } #hamburger-ul { padding: 25px 0; @@ -133,7 +149,7 @@ /* Navigation dropdown toggles */ .dropdown-toggle:focus, .dropdown-toggle:focus-visible { - outline: 3px solid #0056b3; /* high-contrast blue */ + outline: 3px solid var(--focus-outline); /* high-contrast blue */ outline-offset: 2px; } @@ -153,8 +169,8 @@ /* style navbar */ nav.navbar-light.main-nav-container { - background-color: white !important; - background: white !important; + background-color: var(--bg-surface) !important; + background: var(--bg-surface) !important; border: none; font-size: 1.4em; color: var(--text); @@ -167,7 +183,7 @@ .nav .show > a, .nav .show > a:focus, .nav .show > a:hover { - background-color: #fff; + background-color: var(--bg-surface); } .nav > li > a:hover { outline: none; @@ -252,7 +268,7 @@ margin-top: 10px; } #advanced > strong > a { - color: black; + color: var(--link-color); } /* add flex so that blue box-shadows line up */ #flex-search-form { @@ -310,7 +326,7 @@ margin-top: 4px; } .nav-divs-by-jumbotron:hover { - background-color: #444; + background-color: var(--hover-dark); } #eq_32886 { background-color: var(--kbccblue); @@ -318,7 +334,7 @@ } .nav-divs-by-jumbotron:hover > h2 > #eq_32886, #eq_32886:hover { - background-color: #444; + background-color: var(--hover-dark); } #bookastudyroom { cursor: pointer; @@ -473,6 +489,48 @@ max-width: 150px; } + /* dark mode toggle button */ + #theme-toggle { + float: right; + background: none; + border: 2px solid var(--kbccblue); + color: var(--kbccblue); + border-radius: 50%; + width: 40px; + height: 40px; + font-size: 1.2em; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; + margin-top: 5px; + } + #theme-toggle:hover { + background-color: var(--kbccblue); + color: #fff; + } + [data-bs-theme="dark"] #theme-toggle { + border-color: #ffc107; + color: #ffc107; + } + [data-bs-theme="dark"] #theme-toggle:hover { + background-color: #ffc107; + color: #1a1a2e; + } + + /* card body dark mode background */ + .card-body { + background-color: var(--bg-surface); + transition: background-color 0.3s ease; + } + + /* dropdown menu dark mode background */ + .dropdown-menu { + background-color: var(--bg-surface); + transition: background-color 0.3s ease; + } + /* media queries */ @media only screen and (min-width: 1px) { diff --git a/groups/home/bootstrap5/home1.html b/groups/home/bootstrap5/home1.html index 522bf90..320e8a7 100644 --- a/groups/home/bootstrap5/home1.html +++ b/groups/home/bootstrap5/home1.html @@ -1,4 +1,15 @@ +