* chore(deps): upgrade Clojure version to 1.12.4 across multiple dependency files
* chore: bump shadow-cljs to 3.3.6
* chore: bump org.clojure/clojurescript to 1.12.134
* chore(deps): upgrade Clojure version to 1.12.4 in workflow files
* chore(deps): upgrade Java version to 21 in workflow files
* chore(deps): upgrade Node.js version to 24 in workflow files
* chore(deps): upgrade Node.js version to 24 in Dockerfile
* feat(updater): migrate electron-forge to electron-builder
* fix wrong android app version
* fix workflow
* feat(dependency-upgrade): add max-update-interval option for dependency audits
* chore(deps): upgrade electron-builder and electron-updater
* fix: update manual verification instructions for Electron shim cache
* chore: update shadow-cljs version to 3.4.4 across all dependencies
* chore: upgrade electron version to 41.2.1
* chore: update metosin/malli dependency to latest
* chore: upgrade cider-nrepl version to 0.59.0 in dependencies
* chore: upgrade clj-kondo version to 2026.04.15 and fix warning
* chore: move Electron windows build configuration from yml to ci
* chore: update Electron signing configuration to extend from base config
* fix: replace icon file for NSIS compatibility
* chore: resolve metosin/malli version conflicts
* chore: upgrade jdk to 21 in e2e workflow
---------
Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
This pull request refactors the plugin library infrastructure and adds new experimental features for hosted/sidebar renderers. The main changes include:
Purpose: Refactor plugin communication library (Postmate) to support MessageChannel for improved performance, add support for hosted/sidebar renderers in plugins, add new debug APIs, and consolidate helper functions.
Changes:
Added MessageChannel support to Postmate for optimized plugin-host communication with backward compatibility
Introduced hosted renderer and sidebar renderer APIs for plugins to register custom UI components
Added new app APIs: get_current_route, export_debug_log_db, reset_debug_log_db
Refactored helper functions from helpers.ts to common.ts and updated all import paths
Extended block property APIs to include class properties with default values
Added comprehensive documentation for experiments APIs and plugin development
Added E2E test for plugin marketplace installation
Version bump from 0.2.12 to 0.3.1
The white-on-white highlight was invisible yet shifted perceived letter
center downward. Variable is preserved so custom themes can still set it.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace hardcoded rgba shadow colors with --kbd-glow-top/--kbd-glow-bottom
CSS variables, tuned per theme (light: stronger top highlight, dark: deeper
bottom shadow)
- Use filter: brightness(0.92) for pressed state instead of manipulating
box-shadow layers with outer drop shadows — theme-agnostic and physically
correct (depressed key = in shadow = darker)
- Keep top inset highlight shift (1px → 2px) and bottom inset compression
(1px → 0.5px) for realistic keycap depression alongside brightness
- Fix bottom clipping on press: change .action-wrap overflow from hidden
to visible so translateY(1px) doesn't get chopped
- Remove non-glow pressed shadow rules (brightness handles all cases)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Row highlight on shortcut trigger now uses a horizontal gradient sweep
(background-position animation) instead of a static background flash,
providing a distinct visual language from the focus ring
- Shimmer uses theme-aware accent color via color-mix on keymap page,
with a neutral fallback in shui.css base styles
- Guard against animation spam: clearTimeout+reset pattern prevents
stale timeout accumulation during rapid key repeat; reflow only
forced on first trigger, class stays applied until last trigger ends
- Fix combo key press animation: animate the container (the keycap)
instead of individual kbd elements, so translateY and box-shadow
follow the container's border-radius correctly
- Scope row shimmer to .shui-shortcut-row/.shortcut-row elements
to prevent accidental shimmer on standalone badge containers
- Respect prefers-reduced-motion for all new animations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The settings article has a fixed CSS width (44rem) for dialog intrinsic
sizing, but when the viewport constrains the dialog, the inner flex
container overflows and gets clipped. CSS percentages resolve against
the declared width, not the rendered width, so a JS solution is needed.
A ResizeObserver on the dialog element measures its actual clientWidth,
subtracts the aside (only in row layout), and sets an explicit max-width
on the shortcut container. Also makes inner elements flexible: removes
flex-shrink-0 and min-width constraints on keystroke buttons, adds
flex-wrap to toolbar and shortcut rows, and adds min-width: 0 to
shortcut badge containers in shui.css.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The inner glow uses white-on-top / black-on-bottom to simulate 3D keycap lighting.
Theme variables would swap these in dark mode, destroying the effect. Row-pressed
highlight still uses theme variable (accent tint, not physical light).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Extract animate-element!/highlight-row! helpers in shortcut-press! (was 4x duplication)
- Extract matches-keystroke? predicate (was duplicated in count + render)
- Replace <a> tags with <button> for all interactive elements (remove, clear, reset, undo, toggle, refresh)
- Add aria-label to icon-only buttons for screen reader support
- Add button reset CSS for elements changed from <a> to <button>
- Replace hardcoded rgba colors in CSS glow/shadow/row-pressed with theme variables
- Define press-animation-ms constant (was magic number 160)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ensure shortcut component and shui shortcut badges work across both
Radix and legacy Logseq color themes by adding proper fallback chains:
- shortcut.css: Add --lx-* → --rx-* fallbacks for gray scale (08-12),
--lx-* → --ls-* → --rx-* for background steps (01-04, 06), use
opacity-based row dimming instead of color-based for theme-agnostic
muting, and use --color-level-6 for icon link color
- shui.css: Add --rx-* fallbacks to bare --lx-* variables on shortcut
key badges (background, border, text color, separator)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove unused `interactive?` prop from shortcut component and all call sites
- Trigger `shortcut-press!` animation when shortcuts are invoked
- Update shortcut settings UI to use `shui/shortcut` instead of raw `<code>` elements
- Fix shortcut key min-width (fit-content → 20px) for consistent sizing
- Pass raw-binding through `render-keyboard-shortcut` for data attribute matching
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the single-style shortcut renderer with a new component
supporting combo (simultaneous keys), separate (sequential keys),
and compact (text-only) display styles with auto-detection.
- Add shortcut-press! for triggering key press animations via DOM
- Add CSS for all 3 styles with glow effects and reduced-motion support
- Update CMD+K to use v2 styles and press animations on Enter/Cmd+C
- Add accessibility defaults (interactive?/aria-hidden?) to consumers
- Remove old v1 namespace, consolidate under logseq.shui.shortcut
- Remove unused size/theme/animate-on-press? params from API
* fix(lint): make worker/frontend separation lint work on Windows
* chore: update cljs:electron-watch script to include test flag
* chore: remove dead root dependencies
* chore(deps): converge better-sqlite3 to 12.6.2 across deps packages
* chore(deps): converge fs-extra to ^11.3.0 across package roots
* fix(test): correct parameters for create-if-not-exists function
* chore(deps): converge cljs-bean to 1.9.0 across deps roots
* fix(tests): escape regex in cljs:run-test script
* chore: pin root packageManager to yarn 1.22.22
* chore(build): replace del with fs.rmSync in gulp clean
* chore(build): replace npm-run-all with npm-run-all2
* chore(security): upgrade dompurify and unify sanitizer path
* chore(observability): upgrade web sentry to 8.x
* chore: remove unused react-draggable dependencies
* chore(ci): fix windows release artifact collection
* fix(build): create static dir before gulp clean scans it
* fix: update nbb-logseq dependency to version feat-db-v33
* fix(test): move start-time initialization after clone repo
* fix(deps): update nbb dependencies and adjust test script paths to compatible with windows path delimiter
* chore(deps): remove dead meander dependency
---------
Co-authored-by: Tienson Qin <tiensonqin@gmail.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>