feat: icon abstraction layer for PS 1.6-9.x compatibility

Add esIcon() JS helper and renderIcon() PHP helper that auto-detect
the icon framework (Material Icons on PS 8+/9+, FontAwesome 4 on PS
1.6/1.7) and render appropriate HTML. Includes bidirectional mapping
between FA4 class names and Material Icons names.

- Replace all hardcoded <i class="material-icons"> with esIcon()/renderIcon()
- Add FA4_MAP (Material→FA4) and reverse FA4→Material mapping in both JS and PHP
- Add detectIconMode() with PHP data-attribute hint and font-family probe fallback
- Fix 4 self/this scope bugs in esIcon calls across _methods.js, _tree.js, _preview.js
- Add esIconUpdate() for dynamically updating existing icon elements
- Add normalizeIconName() to handle both FA4 and Material input formats

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-01 14:47:50 +01:00
parent 55e3135903
commit 1945da88b2
82 changed files with 56654 additions and 5364 deletions

View File

@@ -24,8 +24,8 @@
}
}
// Modal container
.mpr-modal {
// Modal container (exclude Bootstrap .modal to prevent collision)
.mpr-modal:not(.modal) {
position: fixed;
top: 50%;
left: 50%;
@@ -337,7 +337,7 @@
color: $es-text-primary;
margin: 0;
i.material-icons {
i> i {
font-size: 20px;
color: $es-primary;
}
@@ -392,7 +392,7 @@
padding: $es-spacing-xl 0;
color: $es-text-muted;
i.material-icons {
i> i {
font-size: 48px;
opacity: 0.5;
margin-bottom: $es-spacing-md;