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>
49 lines
1.1 KiB
Vue
49 lines
1.1 KiB
Vue
<template>
|
|
<!-- FA class value -->
|
|
<i v-if="isFaValue(value)" :class="faClass" aria-hidden="true"></i>
|
|
<!-- Built-in sprite value -->
|
|
<span
|
|
v-else-if="isJiosvgValue(value)"
|
|
class="jio-icon-value__svg"
|
|
v-html="jiosvgMarkup(value)"
|
|
></span>
|
|
<!-- Inline custom SVG value -->
|
|
<span
|
|
v-else-if="isCustomSvgValue(value)"
|
|
class="jio-icon-value__svg"
|
|
v-html="cleanSvg(value.slice(10))"
|
|
></span>
|
|
</template>
|
|
|
|
<script setup>
|
|
/**
|
|
* IconValue — renders any icon-picker value ("fa fas fa-star", "jiosvg-key",
|
|
* "customsvg-<svg>") as inline preview markup.
|
|
*/
|
|
import { computed } from 'vue'
|
|
import { cleanSvg, isFaValue, isJiosvgValue, isCustomSvgValue, jiosvgMarkup } from '@/utils/icons.js'
|
|
|
|
const props = defineProps({
|
|
value: { type: String, default: '' },
|
|
})
|
|
|
|
const faClass = computed(() => {
|
|
const raw = String(props.value || '').trim()
|
|
if (raw.startsWith('fa-')) return `fa fas ${raw}`
|
|
return raw
|
|
})
|
|
</script>
|
|
|
|
<style scoped>
|
|
.jio-icon-value__svg {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.jio-icon-value__svg :deep(svg),
|
|
.jio-icon-value__svg svg {
|
|
width: 1em;
|
|
height: 1em;
|
|
fill: currentColor;
|
|
}
|
|
</style>
|