fix(icons): render FA glyphs in the SPA picker grid and harden item clicks

The server catalog ships bare glyph names, but the SPA grid preview
composed "fas home" instead of "fas fa-home" — every FA icon rendered
blank (the old curated lists carried the fa- prefix, so the regression
appeared with the catalog switch).

Item clicks move from per-element @click to a delegated panel handler
reading data-icon (immunity to DOM-replacing extensions/userscripts,
matching the PHP picker's pattern), and selecting now closes the
popover so the choice is visible in the field immediately.
This commit is contained in:
2026-09-06 15:48:52 +08:00
parent 27d8a9ea71
commit 39bafb65c4
12 changed files with 33 additions and 20 deletions
+1 -1
View File
@@ -1 +1 @@
.aksrt-icon-value__svg[data-v-127de8f8]{display:inline-flex}.aksrt-icon-value__svg[data-v-127de8f8] svg,.aksrt-icon-value__svg svg[data-v-127de8f8]{width:1em;height:1em;fill:currentColor}.aksrt-icon-picker__panel[data-v-b3172250]{padding:12px}.aksrt-icon-picker__search[data-v-b3172250],.aksrt-icon-picker__tabs[data-v-b3172250]{margin-bottom:10px}.aksrt-icon-picker__tabs[data-v-b3172250] .n-radio-group{flex-wrap:wrap}.aksrt-icon-picker__grid[data-v-b3172250]{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-height:260px;overflow-y:auto}.aksrt-icon-picker__item[data-v-b3172250]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;cursor:pointer;font-size:16px;color:var(--aksrt-color-text-secondary);transition:all .15s}.aksrt-icon-picker__item[data-v-b3172250]:hover{background:var(--aksrt-color-primary-soft);color:var(--aksrt-color-primary)}.aksrt-icon-picker__item.is-active[data-v-b3172250]{background:var(--aksrt-color-primary);color:#fff}.aksrt-icon-picker__item[data-v-b3172250] svg,.aksrt-icon-picker__preview-svg[data-v-b3172250] svg,.aksrt-icon-picker__preview-svg svg[data-v-b3172250]{width:18px;height:18px;fill:currentColor}.aksrt-icon-picker__preview-svg[data-v-b3172250]{display:inline-flex}.aksrt-icon-picker__empty[data-v-b3172250]{grid-column:1 / -1;text-align:center;padding:20px;color:var(--aksrt-color-muted);font-size:13px}.aksrt-icon-picker__custom-actions[data-v-b3172250]{display:flex;align-items:center;gap:10px;margin-top:8px}.aksrt-icon-picker__custom-preview[data-v-b3172250]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px dashed var(--aksrt-color-muted);border-radius:4px}.aksrt-icon-picker__grid--session[data-v-b3172250]{margin-top:10px;padding-top:8px;border-top:1px solid var(--aksrt-color-muted)}
.aksrt-icon-value__svg[data-v-127de8f8]{display:inline-flex}.aksrt-icon-value__svg[data-v-127de8f8] svg,.aksrt-icon-value__svg svg[data-v-127de8f8]{width:1em;height:1em;fill:currentColor}.aksrt-icon-picker__panel[data-v-ff0f92a9]{padding:12px}.aksrt-icon-picker__search[data-v-ff0f92a9],.aksrt-icon-picker__tabs[data-v-ff0f92a9]{margin-bottom:10px}.aksrt-icon-picker__tabs[data-v-ff0f92a9] .n-radio-group{flex-wrap:wrap}.aksrt-icon-picker__grid[data-v-ff0f92a9]{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-height:260px;overflow-y:auto}.aksrt-icon-picker__item[data-v-ff0f92a9]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;cursor:pointer;font-size:16px;color:var(--aksrt-color-text-secondary);transition:all .15s}.aksrt-icon-picker__item[data-v-ff0f92a9]:hover{background:var(--aksrt-color-primary-soft);color:var(--aksrt-color-primary)}.aksrt-icon-picker__item.is-active[data-v-ff0f92a9]{background:var(--aksrt-color-primary);color:#fff}.aksrt-icon-picker__item[data-v-ff0f92a9] svg,.aksrt-icon-picker__preview-svg[data-v-ff0f92a9] svg,.aksrt-icon-picker__preview-svg svg[data-v-ff0f92a9]{width:18px;height:18px;fill:currentColor}.aksrt-icon-picker__preview-svg[data-v-ff0f92a9]{display:inline-flex}.aksrt-icon-picker__empty[data-v-ff0f92a9]{grid-column:1 / -1;text-align:center;padding:20px;color:var(--aksrt-color-muted);font-size:13px}.aksrt-icon-picker__custom-actions[data-v-ff0f92a9]{display:flex;align-items:center;gap:10px;margin-top:8px}.aksrt-icon-picker__custom-preview[data-v-ff0f92a9]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px dashed var(--aksrt-color-muted);border-radius:4px}.aksrt-icon-picker__grid--session[data-v-ff0f92a9]{margin-top:10px;padding-top:8px;border-top:1px solid var(--aksrt-color-muted)}