diff --git a/src/main/frontend/components/icon.cljs b/src/main/frontend/components/icon.cljs index 4d981e122b..fe586cbe6b 100644 --- a/src/main/frontend/components/icon.cljs +++ b/src/main/frontend/components/icon.cljs @@ -3755,7 +3755,17 @@ (.closest ".asset-picker"))] (when-let [btn (.querySelector cnt ".is-ghost-highlighted")] (util/stop e) - (.click btn)))))))})]]] + (.click btn)))))))}) + ;; Rounded-circle clear button (matches icon-search). Visible + ;; only when the input has content; shares the same on-brand + ;; affordance instead of letting the browser render its native + ;; cancel-X (hidden via CSS). + (when-not (string/blank? search-q) + [:a.x {:on-click (fn [_] + (reset! *search-q "") + (update-web-query! "") + (some-> (rum/deref *search-input-ref) (.focus)))} + (shui/tabler-icon "x" {:size 14})])]]] ;; Body - scrollable content area with top/bottom margin (let [;; Get recently used asset UUIDs and resolve to asset entities @@ -4091,35 +4101,44 @@ ;; conditional render would mount/unmount on toggle and CSS would ;; have nothing to interpolate from. [:div.avatar-customize-zone {:data-expanded (when expanded? "true")} + ;; Single click target spanning the resting row (avatar + + ;; meta + Edit). Sits as an invisible overlay above + ;; `.cb-content` so the avatar and banner text remain a + ;; clean visual layer underneath while clicks anywhere on + ;; the row hit one accessible-named