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>
207 lines
4.0 KiB
CSS
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}
|