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>
Introduces a comprehensive icon picker system supporting 5 icon types:
emoji, tabler icons, text (SVG viewBox), avatar, and image assets.
Key features:
- Text icons rendered as crisp SVG with smart text splitting
- Image asset picker with grid view, drag-and-drop upload
- Wikipedia Commons image search with license confirmation
- URL-based asset import with validation
- Recently used assets tracking
- Unified icon format with normalize-icon for consistent storage
- DB migrations for default-icon, wikidata-id, property-key-width properties
- Context menu "Set icon" / "Change icon" entry points
- Bordered tooltip arrows for web image info
- Photo-icon sizing in CMD+K and page title contexts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* enhance(ui): login form
* enhance(ui): add localization support with translate and locale management
* enhance(ui): WIP implement new authentication forms with context management
* enhance(ui): add password visibility toggle to input row
* enhance(ui): adjust padding for password visibility toggle
* enhance(i18n): implement internationalization support for authentication UI
* enhance(ui): implement sign in and sign up functionality with loading state
* enhance(ui): add session management and error handling in login form
* enhance(ui): add confirm code form and enhance authentication flow
* enhance(ui): improve sign-in flow and confirm code handling
* enhance(ui): add warning variant to alerts and improve error handling
* enhance(ui): implement countdown timer for code resend functionality
* enhance(ui): implement countdown timer for password reset and enhance login flow
* enhance(ui): export authentication and enhance UI components
* enhance(ui): integrate new login component and refresh token handling
* chore: clear amplify related codes
* enhance(i18n): normalize language codes and update locale handling
* enhance(auth): add multilingual support for signup and password reset flows
* enhance(ui): update login styles to inherit text color
* enhance(ui): adjust input color variables for improved accessibility
* enhance(auth): add password policy validation and tips in multiple languages
* enhance(ui): improve localization handling and update alert styles
* enhance(mobile): enhance login modal styling and accessibility
* fix(ui): update password validation regex for special characters
* enhance(ui): add padding to card header in login dialog
---------
Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
* chore(ui): add sidebar related components
* chore(shui): add sidebar core
* enhance(ui): WIP polish left sidebar
* enhance(ui): polish opacity value
* enhance(ui): remove unnecessary css
* enhance(ui): simplify the left sidebar related css
* enhance(ui): polish left sidebar navigations
* enhance(ui): polish navigations items
* enhance(ui): polish graphs picker from the left sidebar
* enhance(ui): polish graphs selector
* enhance(ui): graphs dropdown content
* enhance(ux): create new page for the graphs selector section
* enhance(ui): remote icon for the graphs selector
* enhance(ui): polish sidebar navigations filter
* fix(ui): background color for the left sidebar
* enhance(ui): refactor names related with the left sidebar
* enhance(ux): WIP configurable navigations from the left sidebar
* enhance(ux): configurable navigations popup
* enhance(ux): persist user navigations from the left sidebar
* fix(ui): bad graph selector type icon
* fix: lint
* fix: lint
* enhance(ui): polish details for the left sidebar
* chore: remove shadcn sidebar component
* chore: remove shadcn sidebar related component
* fix(ui): text overflow for the page name item