🔥 Sync 2026-08-29 17:03:28
Merge-upstream / merge (push) Canceled after 0s

This commit is contained in:
github-actions[bot]
2026-08-29 17:03:28 +08:00
parent e1f8fcd79e
commit 28e8ae5ca9
9 changed files with 35 additions and 21 deletions
+3 -3
View File
@@ -5,10 +5,10 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dae
PKG_VERSION:=2026.08.26
PKG_RELEASE:=38
PKG_VERSION:=2026.08.28
PKG_RELEASE:=39
PKG_SOURCE:=dae-src-2026.08.26-936105a87a65.tar.gz
PKG_SOURCE:=dae-src-2026.08.28-cc57c26ba484.tar.gz
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/dae-src
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_HASH:=skip
+3 -3
View File
@@ -5,10 +5,10 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=daed
PKG_VERSION:=2026.08.26
PKG_RELEASE:=49
PKG_VERSION:=2026.08.28
PKG_RELEASE:=50
PKG_SOURCE:=daed-src-2026.08.26-003da3d0a669.tar.gz
PKG_SOURCE:=daed-src-2026.08.28-943c54572fb6.tar.gz
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/daed-src
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_HASH:=skip
+1 -1
View File
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Argon Theme
LUCI_DEPENDS:=+USE_APK:wget-any +!USE_APK:wget +jsonfilter
PKG_VERSION:=2.4.7
PKG_RELEASE:=13
PKG_RELEASE:=14
CONFIG_LUCI_CSSTIDY:=
@@ -115,11 +115,12 @@
<!-- Video Player End -->
{% else %}
<!-- Image Background Start -->
<div class="main-bg" id="main-bg" {% if (cfg.get_first('argon', 'global', 'online_wallpaper') != "default"): %}style="background-image:url({{ bgArry.bgUrl }})"{% endif %}></div>
{% online_wallpaper = cfg.get_first('argon', 'global', 'online_wallpaper') ?? 'default' %}
<div class="main-bg" id="main-bg" {% if (online_wallpaper != 'default'): %}style="background-image:url({{ bgArry.bgUrl }})"{% endif %}></div>
<!-- Image Background End -->
{% endif %}
<!-- Login Container Start -->
<div class="login-container">
<div class="login-container" {% if (online_wallpaper == 'default'): %} style="backdrop-filter: blur(0px)"{% endif %}>
<div class="login-form">
<!-- Logo Start -->
<a class="brand" href="/"><img src="{{ media }}/img/argon.svg" class="icon">
@@ -2,11 +2,7 @@
/* Radius matches `.cbi-section` (16px): the alert sits in the content layer,
same width and edge alignment as the sections it stacks above. The larger
radii in this theme belong to overlays (24px) and pills (32px). */
@apply bg-surface-sunken text-text border-hairline sticky top-14 z-30 mb-4 rounded-2xl border p-6 max-md:mx-0 max-md:mb-3 max-md:p-4;
&.modal {
@apply static top-auto;
}
@apply bg-surface-sunken text-text border-hairline mb-4 rounded-2xl border p-6 max-md:mx-0 max-md:mb-3 max-md:p-4;
.modal & {
@apply mb-0;
+2 -2
View File
@@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Aurora Theme (A modern browser theme built with Vite and Tailwind CSS)
LUCI_DEPENDS:=+luci-base
PKG_VERSION:=1.2.7
PKG_RELEASE:=74
PKG_VERSION:=1.2.8
PKG_RELEASE:=75
PKG_LICENSE:=Apache-2.0
LUCI_MINIFY_CSS:=
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -17,7 +17,7 @@ LUCI_NAME:=luci-theme-footstrap
FOOTSTRAP_VERSION?=
ifneq ($(FOOTSTRAP_VERSION),)
PKG_VERSION:=$(FOOTSTRAP_VERSION)
PKG_RELEASE:=41
PKG_RELEASE:=42
endif
LUCI_TITLE:=Footstrap Theme
@@ -99,6 +99,11 @@ function run() {
*
* Wrapping `dom.content()` itself also works, at the price of patching a luci-base API every app
* shares and up to seven read/write pairs per call. */
/* The three things `dom.content()` is called on: a section body, a table, and a TABLE'S BODY. The
* third was missing and cost a release: on 24.10's Overview the section is a table, so nothing here
* matched, the floor held nothing, and a poll emptying it took 58px off the document under the
* reader on ImmortalWrt 24.10 with a webkit engine, where no CI job looks. tools/scroll-anchor.mjs
* looks for the same three and says why. */
const SHRINKS = '.cbi-section > div, .table';
/* The floor is the height the next tick may not go below, one per container. Cleared before the
@@ -521,12 +526,19 @@ function anchorEnabled() {
* reports zero and this does nothing. Same guards as the main correction not while the reader
* scrolls, not across a navigation, never more than a viewport. */
let _lateFrame = 0;
function lateDrift(ref) {
/* the reference from BEFORE this tick, captured by the caller: one taken after the mutation
* describes the page as the mutation left it, so its drift is zero by construction */
if (_lateFrame || !ref) return;
_lateFrame = requestAnimationFrame(() => {
_lateFrame = requestAnimationFrame(() => {
const seen = scrollTop();
/* STILL FOR SCROLL_IDLE, the interval this file already calls a page nobody is scrolling.
* A frame is not long enough to tell a flick from a still page: a flick moves the offset in
* steps of tens of milliseconds and two rAFs (~16 ms) fall inside one step, so the offset
* reads the same twice while the page is plainly moving. 120 ms was still short enough to
* let one 160px correction through on a loaded runner. */
_lateFrame = window.setTimeout(() => {
_lateFrame = 0;
if (!anchorEnabled() || Date.now() < _userUntil) return;
if (_restPage !== pageStamp()) return;
@@ -543,7 +555,12 @@ function lateDrift(ref) {
* and where the sampler has not started yet WebKit again that re-take records the
* offset the reader has already flicked to, so comparing against it compares a value
* with itself and lets the correction through (320px, @1440 side, .fs-main scrolling). */
if (scrollTop() !== ref.at) return;
/* Still, not equal to the reference. An anchoring engine moves the offset ITSELF to keep
* the reader over content that grew measured on webkit/Overview, +658px of offset
* against 600px of growth so an offset that merely differs is the engine working, and
* refusing on that leaves the engine's own residual (58px) uncorrected. What must not be
* touched is a page still in motion, which is asked directly instead. */
if (scrollTop() !== seen) return;
/* the tick usually replaces the element this was taken on, so without the section
* fallback the correction does nothing on the tick it exists for */
let el = ref.el, was = ref.top;
@@ -563,7 +580,7 @@ function lateDrift(ref) {
* it is re-read rather than assumed; `rememberRest()` cannot do it, since the write
* starts the motion sampler and that function returns early while the page moves. */
_restAt = scrollTop();
});
}, SCROLL_IDLE);
});
}