Files
kate522andClaude Opus 5 427968a721 chore(branding): remove leftover upstream theme identifiers
The theme was renamed Zibll/子比 → AKSRT → Jio, but upstream branding
survived the sweeps in CSS classes, the SVG sprite prefix, a persisted
widget field ID, JS events, admin Vue class names, test infrastructure
and docblocks.

Renames:
- zib-widget / zib-widget-wrap / zib-slider → jio-widget-box /
  jio-widget-box-wrap / jio-slider-box (jio-widget is taken by the modern
  widget shell, jio-box-* by the card primitives)
- zib-partners-scroll + zps-* → jio-partners-scroll + jps-*
- zib-combo-info-card + zci-* → jio-combo-info-card + jci-*
- zibsvg- → jiosvg-, including the exported picker helpers and the
  fa-zibsvg- family-prefix guard
- zibpay_type → pay_type; the dual-read fallback in PostQuery collapses
  to a single key
- [zibajax="submit"] dropped (no PHP emitter); zib_ajax.success →
  jio_ajax.success
- aks-* admin Vue classes → jio-*
- zib_palette() → palette()

User-facing vendor traces are gone: the floating "more" button default no
longer ships a zibll.com link or 子比主题 marketing copy, the notice
widget ships no preset promo entries, and the four 官网教程 links are
removed from the post-list admin schema.

Test infrastructure renamed to neutral names (docker-compose.reference.yml,
Caddyfile, article-baseline.json, modern-widgets-contract.test.cjs) with
their DB/volume/env/slug identifiers following.

Kept intentionally, documented in tests/fixtures/README.md: the golden
fixture reference fingerprint (a SHA-256 record of an external directory,
read by validate-widget-golden / generate-widget-golden-fixture /
audit-widget-system), the doesNotMatch guards that prove the old tokens are
gone, and the reference theme's own meta key in the visual fixtures.

No backward-compat or data migration: saved widget configs holding old
icon keys or the old field ID silently lose them, per the project's
rewrite-over-compatibility rule.

Verified: 132/132 node contract tests, php tests/widget-system/run.php
(146 assertions), audit-admin-contracts, audit-psr4-paths and
validate-widget-golden all green; tracked bundles regenerated and in sync.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-11-02 00:06:54 +08:00

207 lines
4.0 KiB
CSS

/* Jio universal icon picker (admin) */
#jio-modal-icon.jio-icon-modal {
display: none;
}
#jio-modal-icon.jio-icon-modal:not(.hidden) {
display: flex;
position: fixed;
inset: 0;
z-index: 100100;
align-items: center;
justify-content: center;
}
/* Tab/search switching toggles the [hidden] attribute, but the explicit
display rules below would beat the UA's [hidden] rule — re-assert it. */
#jio-modal-icon [hidden] {
display: none !important;
}
#jio-modal-icon .jio-icon-modal__overlay {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.55);
}
#jio-modal-icon .jio-icon-modal__inner {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
width: min(720px, calc(100vw - 32px));
max-height: min(76vh, 640px);
background: #fff;
border-radius: 8px;
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28);
overflow: hidden;
}
#jio-modal-icon .jio-icon-modal__header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px 16px;
border-bottom: 1px solid #e2e4e7;
font-size: 14px;
}
#jio-modal-icon .jio-icon-modal__close {
font-size: 20px;
line-height: 1;
text-decoration: none;
cursor: pointer;
}
#jio-modal-icon .jio-icon-modal__toolbar {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
padding: 10px 16px;
border-bottom: 1px solid #e2e4e7;
}
#jio-modal-icon .jio-icon-modal__tabs {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
#jio-modal-icon .jio-icon-modal__tab.is-active {
border-color: #2271b1;
color: #2271b1;
}
#jio-modal-icon .jio-icon-modal__body {
position: relative;
overflow-y: auto;
padding: 12px 16px 16px;
}
#jio-modal-icon .jio-icon-modal__loading {
padding: 24px 0;
text-align: center;
}
#jio-modal-icon .jio-icon-modal__error {
color: #b32d2e;
}
#jio-modal-icon .jio-icon-modal__grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(42px, 1fr));
gap: 4px;
margin-top: 8px;
}
#jio-modal-icon .jio-icon-picker__item {
display: flex;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
padding: 0;
border: 1px solid transparent;
border-radius: 6px;
background: #f6f7f7;
font-size: 18px;
color: #3c434a;
cursor: pointer;
}
#jio-modal-icon .jio-icon-picker__item:hover {
border-color: #2271b1;
color: #2271b1;
}
#jio-modal-icon .jio-icon-picker__item .icon {
width: 20px;
height: 20px;
fill: currentColor;
}
#jio-modal-icon .jio-icon-picker__empty {
grid-column: 1 / -1;
padding: 20px 0;
color: #787c82;
text-align: center;
}
/* Custom SVG tab */
#jio-modal-icon .jio-icon-modal__custom {
margin-top: 4px;
}
#jio-modal-icon .jio-icon-modal__custom textarea {
margin-top: 4px;
}
#jio-modal-icon .jio-icon-modal__custom-actions {
display: flex;
align-items: center;
gap: 10px;
margin-top: 8px;
}
#jio-modal-icon .jio-icon-modal__custom-preview {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
border: 1px dashed #c3c4c7;
border-radius: 4px;
font-size: 18px;
}
#jio-modal-icon .jio-icon-modal__custom-preview svg {
width: 20px;
height: 20px;
}
#jio-modal-icon .jio-icon-modal__grid--session {
margin-top: 12px;
padding-top: 8px;
border-top: 1px solid #e2e4e7;
}
/* Field markup (widgets, nav menus, meta boxes) */
.jio-icon-picker {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
}
.jio-icon-picker .jio-icon-picker__preview {
display: inline-flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
border: 1px solid #dcdcde;
border-radius: 4px;
background: #f6f7f7;
font-size: 16px;
}
.jio-icon-picker .jio-icon-picker__preview svg {
width: 18px;
height: 18px;
fill: currentColor;
}
.jio-icon-picker .jio-icon-picker__value {
flex: 1 1 160px;
min-width: 0;
}
/* A legacy "fa fab / fa far" double-prefix beats FA5's own single-class
declarations in the cascade — re-assert the brand family/regular weight. */
.fa.fab{font-family:"Font Awesome 5 Brands";font-weight:400}
.fa.far{font-weight:400}