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

@@ -329,7 +329,7 @@
background: $es-slate-200;
}
.material-icons {
> i {
color: $es-slate-400;
font-size: 20px;
}
@@ -357,7 +357,7 @@
border-radius: $es-radius-full;
white-space: nowrap;
.material-icons {
> i {
font-size: 14px;
opacity: 0.7;
}