mirror of
https://github.com/logseq/logseq.git
synced 2026-05-15 00:12:35 +00:00
Adds a Shape dimension to avatar icons (circle | rounded-rect) with inheritance through `:logseq.property.class/default-icon`. Surfaced via a tap-the-preview customize band in the asset-picker (avatar mode) with a Shape dropdown and a keymap-style Reset/Done rail. Animates open/close. Highlights: - normalize-icon defaults `:shape :circle` for legacy data on both the slow path and the already-shaped fast path. - get-node-icon extends class-default `select-keys` to propagate :shape. - avatar.tsx accepts `data-shape`; CSS in icon.css drives the radius via `[data-shape="rounded-rect"]` selectors (avoiding Tailwind JIT issues with conditional arbitrary-value classes). - Customize band: preview tile + Shape dropdown + Reset/Done rail. All blocks always rendered so CSS transitions can interpolate height, gradient, and the cue badge crossfade. Layout matches Paper artboard 99K-1 / 97A-1 (344px inner content inside 380px band, inset rail separator, gradient flush against topbar). - Fixes `keep-popup?` plumbing at three forwarding wrappers (asset- picker, icon-search, icon-picker) and the topmost on-chosen handler in property/value.cljs. Single click now produces a single write instead of the prior triple-write race. - icon-row (property/value.cljs) and icon-search (icon.cljs) both made reactive via model/sub-block — so in-popup commits update the picker preview/chip live, not just the page-header avatar. - Lazy `*text-measure-ctx` so the namespace loads in the Node test runner (was previously blocking all icon tests). - New `.lx-toolbar-action` / `.lx-toolbar-reset-link` utility CSS mirrors Settings → Keymap shortcut popover footer styling. - 10 new test assertions for shape default, preservation, fast-path handling, and field independence. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>