refactor: rename the theme brand and every identifier from AKSRT to Jio

Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.

Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
  cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
  window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)

Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
  so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
  (dropped 3 stale entries, added the 17 missing ones)

Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
  get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
  when it is empty

Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.

Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Opus 5 committed 2026-11-01 20:05:04 +08:00
1 parent 5b16bc6e15
commit 35bb96e82f
997 files changed
+28216 -28188

No files matched your search

+37 -37
View File
@@ -5,7 +5,7 @@
* ============================================================ */
/* ---------- 顶部资料卡入口(legacy user-medal-info parity) ---------- */
.aksrt-medal-entry,
.jio-medal-entry,
.uc-header__meta-item {
display: inline-flex;
align-items: center;
@@ -23,29 +23,29 @@
line-height: 1.44;
white-space: nowrap;
}
.aksrt-medal-entry {
.jio-medal-entry {
cursor: pointer;
transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.aksrt-medal-entry:hover,
.aksrt-medal-entry:focus-visible {
.jio-medal-entry:hover,
.jio-medal-entry:focus-visible {
border-color: var(--focus-color-opacity3, var(--focus-color));
background: var(--focus-color-opacity1, rgba(59, 130, 246, .1));
box-shadow: var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, .1));
color: var(--focus-color);
opacity: 1;
}
.aksrt-medal-entry:focus-visible {
.jio-medal-entry:focus-visible {
outline: 2px solid var(--focus-color);
outline-offset: 2px;
}
.aksrt-medal-entry__icons {
.jio-medal-entry__icons {
display: inline-flex;
align-items: center;
flex: none;
min-width: 0;
}
.aksrt-medal-entry__icon {
.jio-medal-entry__icon {
width: auto;
height: 1.45em;
max-width: 2.2em;
@@ -53,8 +53,8 @@
object-fit: contain;
vertical-align: middle;
}
.aksrt-medal-entry__icon + .aksrt-medal-entry__icon { margin-left: -1px; }
.aksrt-medal-entry__fallback {
.jio-medal-entry__icon + .jio-medal-entry__icon { margin-left: -1px; }
.jio-medal-entry__fallback {
display: inline-flex;
align-items: center;
justify-content: center;
@@ -64,11 +64,11 @@
background: var(--focus-color-opacity1);
border-radius: 50%;
}
.aksrt-medal-entry__count { margin-left: 2px; }
.aksrt-medal-entry__arrow { margin-left: 1px; font-size: .9em; }
.jio-medal-entry__count { margin-left: 2px; }
.jio-medal-entry__arrow { margin-left: 1px; font-size: .9em; }
@media (max-width: 767px) {
.aksrt-medal-entry,
.jio-medal-entry,
.uc-header__meta-item {
margin-right: 4px;
max-width: 100%;
@@ -76,7 +76,7 @@
}
/* 参考主题 modal-body:只适配共享运行时,列表/卡片由 main.css 定义。 */
.aksrt-modal-runtime.aksrt-badge-modal .aksrt-modal-runtime__dialog {
.jio-modal-runtime.jio-badge-modal .jio-modal-runtime__dialog {
width: 600px;
max-width: calc(100% - 20px);
max-height: calc(100vh - 20px);
@@ -88,17 +88,17 @@
-webkit-font-smoothing: auto;
text-rendering: auto;
}
.aksrt-modal-runtime.aksrt-badge-modal--single .aksrt-modal-runtime__dialog {
.jio-modal-runtime.jio-badge-modal--single .jio-modal-runtime__dialog {
width: 400px;
}
.aksrt-badge-modal:not(.aksrt-modal-runtime--bottom) .aksrt-modal-runtime__dialog {
.jio-badge-modal:not(.jio-modal-runtime--bottom) .jio-modal-runtime__dialog {
transform: scale(.9);
transition: transform .5s cubic-bezier(.32, .85, .45, 1.18), width .3s;
}
.aksrt-badge-modal.is-open .aksrt-modal-runtime__dialog { transform: scale(1); }
.aksrt-badge-modal .aksrt-modal-runtime__content { padding: 0; }
.aksrt-badge-modal .modal-body { padding: 15px; }
.aksrt-badge-modal .aksrt-modal-runtime__loading {
.jio-badge-modal.is-open .jio-modal-runtime__dialog { transform: scale(1); }
.jio-badge-modal .jio-modal-runtime__content { padding: 0; }
.jio-badge-modal .modal-body { padding: 15px; }
.jio-badge-modal .jio-modal-runtime__loading {
position: absolute;
inset: 0;
min-height: inherit;
@@ -109,7 +109,7 @@
}
/* 参考主题的徽章图标无资源时保留同尺寸占位。 */
.aksrt-badge-modal .medal-icon--fa {
.jio-badge-modal .medal-icon--fa {
display: inline-flex;
align-items: center;
justify-content: center;
@@ -117,52 +117,52 @@
font-size: 34px;
color: var(--focus-color);
}
.aksrt-badge-modal .medal-single-card .medal-icon--fa { font-size: 72px; }
.aksrt-badge-modal .medal-list > a { display: block; }
.aksrt-badge-modal .medal-list > a:focus-visible {
.jio-badge-modal .medal-single-card .medal-icon--fa { font-size: 72px; }
.jio-badge-modal .medal-list > a { display: block; }
.jio-badge-modal .medal-list > a:focus-visible {
outline: 2px solid var(--focus-color);
outline-offset: 2px;
}
.aksrt-badge-modal .aksrt-null__img { display: inline-block; }
.jio-badge-modal .jio-null__img { display: inline-block; }
/* 公共运行时的按钮网格需还原为参考主题的平均分栏操作区。 */
.aksrt-modal-runtime.aksrt-badge-modal .modal-buts.but-average {
.jio-modal-runtime.jio-badge-modal .modal-buts.but-average {
display: flex;
gap: 0;
margin: 0 -15px -15px;
border-radius: 0 0 var(--main-radius) var(--main-radius);
}
.aksrt-badge-modal .modal-buts.but-average > .but {
.jio-badge-modal .modal-buts.but-average > .but {
min-height: 0;
padding: .8em;
}
/* 与参考主题 mobile_bottom 一致,保留非 full-sm 子窗的底部留白。 */
.aksrt-modal-runtime--bottom.aksrt-badge-modal .aksrt-modal-runtime__dialog {
.jio-modal-runtime--bottom.jio-badge-modal .jio-modal-runtime__dialog {
margin-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
box-shadow: 0 -10px 50px rgba(0, 0, 0, .15);
transform: translateY(110%);
transition: transform .4s;
overflow: visible;
}
.aksrt-modal-runtime--bottom.aksrt-badge-modal .aksrt-modal-runtime__content {
.jio-modal-runtime--bottom.jio-badge-modal .jio-modal-runtime__content {
max-height: calc(100vh - 20px);
overflow: auto;
border-radius: inherit;
}
.aksrt-modal-runtime--bottom.aksrt-badge-modal.is-open .aksrt-modal-runtime__dialog {
.jio-modal-runtime--bottom.jio-badge-modal.is-open .jio-modal-runtime__dialog {
transform: translateY(0);
transition: transform .6s cubic-bezier(.28, .9, .34, .99);
}
.aksrt-modal-runtime--bottom.aksrt-badge-modal .modal-colorful-header {
.jio-modal-runtime--bottom.jio-badge-modal .modal-colorful-header {
border-radius: inherit;
}
.aksrt-badge-modal .touch-close {
.jio-badge-modal .touch-close {
position: absolute;
top: -24px;
width: 100%;
}
.aksrt-badge-modal .touch-close::before {
.jio-badge-modal .touch-close::before {
content: ' ';
display: block;
width: 40px;
@@ -173,16 +173,16 @@
opacity: .8;
}
@media (max-width: 767px) {
.aksrt-modal-runtime.aksrt-badge-modal:not(.aksrt-badge-modal--single) .aksrt-modal-runtime__dialog { width: 100%; }
.jio-modal-runtime.jio-badge-modal:not(.jio-badge-modal--single) .jio-modal-runtime__dialog { width: 100%; }
}
@media (max-width: 640px) {
.aksrt-badge-modal.aksrt-modal-runtime--bottom.aksrt-modal-runtime--parent { perspective: 1000px; }
.aksrt-modal-runtime.aksrt-badge-modal.aksrt-modal-runtime--bottom.aksrt-modal-runtime--parent.is-open .aksrt-modal-runtime__dialog {
.jio-badge-modal.jio-modal-runtime--bottom.jio-modal-runtime--parent { perspective: 1000px; }
.jio-modal-runtime.jio-badge-modal.jio-modal-runtime--bottom.jio-modal-runtime--parent.is-open .jio-modal-runtime__dialog {
transform: rotateX(11deg) scale(.95);
padding-bottom: 0;
}
.aksrt-modal-runtime.aksrt-badge-modal--single .aksrt-modal-runtime__dialog { width: 100%; }
.aksrt-modal-runtime--bottom.aksrt-badge-modal--overview .aksrt-modal-runtime__dialog {
.jio-modal-runtime.jio-badge-modal--single .jio-modal-runtime__dialog { width: 100%; }
.jio-modal-runtime--bottom.jio-badge-modal--overview .jio-modal-runtime__dialog {
max-width: 100%;
margin-bottom: -1px;
border-radius: 16px 16px 0 0;