Commit Graph

326 Commits

Author SHA1 Message Date
Mega Yu
d6bc0b75ec Merge branch 'master' into enhance/i18n 2026-04-17 20:26:15 +08:00
megayu
76285de44b refactor: toolchain upgrade (#12517)
* 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>
2026-04-17 19:40:01 +08:00
Mega Yu
69b7a0e893 improve i18n 2026-04-13 14:39:53 +08:00
Mega Yu
de1a7a9c6e enhance i18n 2026-04-09 16:22:42 +08:00
Mega Yu
e9d3c8da00 enhance i18n 2026-04-08 09:32:18 +08:00
Charlie
cdab06f984 enhance(ux): set icon within the block context menu (#12458) 2026-03-26 20:41:34 +08:00
megayu
d6403b7746 dependencies upgrade (#12460) 2026-03-23 21:32:28 +08:00
scheinriese
57adfb144a Assorted code quality cleanups
- Remove unused clojure.string require in core_test.cljs
- Replace promesa.core p/delay with js/setTimeout, remove import
- Remove redundant final-result binding in print-shortcut-key
- Flatten nested if chain to cond for raw-binding
- Fix nested button inside button (keystroke-active → div)
- Remove dead .cp__shortcut-table-wrap CSS
- Align global-handlers set in get-cross-context-conflicts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
8d62b4d6bc Use cond-> for container-attrs in shortcut badge components
Replace chained if/assoc rebindings with idiomatic cond-> in
combo-keys, separate-keys, and compact-keys.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
e02810f983 Show readable PgUp/PgDn labels in shortcut kbd badges
The page-up and page-down keys were mapped to Private Use Area Unicode
characters (U+F571, U+F572) that don't exist in any font loaded by the
kbd elements, rendering as invisible/empty badges.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
19c878cba0 Fix Option key recording and show ⌥ symbol on macOS
On macOS, Option+key combos in the shortcut recording dialog were
silently dropped because Google Closure's KeyHandler corrupts the
keyCode (merging keydown/keypress produces Unicode charCodes like ç
instead of the base key). Fall back to the native KeyboardEvent.code
property when the primary key-names lookup fails and a modifier is
held — works cross-platform (also helps AltGr on Windows).

Also replace "Opt" text with the standard ⌥ symbol in shortcut badges,
matching ⌘ and ⇧, and update all round-trip paths (decorate, undecorate,
canonicalize, normalize) to handle the new symbol.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
4dcdbcc44c Replace flat row flash with accent shimmer sweep and fix combo key press animation
- 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>
2026-03-13 20:45:58 +08:00
scheinriese
f6668aef37 Fix row highlight for keymap shortcut press animation
highlight-row! was looking for .shui-shortcut-row but keymap rows use
.shortcut-row, so the row highlight silently failed. Widen the selector
and add a visible background style for keymap rows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
93ae5648be Fix React key warning, binding normalization mismatch, and focus return
- Add ^{:key} metadata to fragment in shortcut-keymap-x for loop
- Normalize "cmd"/"command" → "meta" and "opt"/"option" → "alt" in
  normalize-binding so cmdk shortcut-press! calls match rendered
  data-shortcut-binding attributes
- Remove onCloseAutoFocus preventDefault from both popovers so Radix
  returns focus to the trigger button on close

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
c3df1d857d Internationalize all hardcoded English strings in shortcut redesign
Replace 24 hardcoded English UI strings with (t :keymap/...) translation
calls and add corresponding keys to en.edn. Thread a :chord-separator
prop through the shui shortcut component so chord sequence "then" text
is translatable without adding i18n awareness to the presentation layer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
5b08feecfa Fix chord sequence display, add polish and resilience improvements
- Add chord-sequence-keys component to shui shortcut for multi-step
  bindings (e.g. ⌘C then ⌘R) that were previously truncated to just
  the first key. Detects nested binding groups and renders each combo
  with a "then" separator and proper glow styling.
- Update normalize-binding to handle chord sequences by joining groups
  with spaces instead of flattening into a single combo string.
- Cap keystroke recording at 5 keys to prevent app crashes from
  excessively long bindings being persisted to localStorage.
- Add try/catch around localStorage shortcut reads for resilience
  against corrupt data on startup.
- Fix vertical centering of shortcut badges using display:contents
  wrappers and removing padding-top from label-wrap/action-wrap.
- Style Reset button with accent color and underline-on-hover.
- Add white-space:nowrap to button reset block to prevent text wrapping.
- Use gap instead of margin for shortcut-input-binding spacing.
- Minor CSS refinements: search input padding, keystroke border color,
  empty state sizing, toolbar action specificity.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
4c5b7ca511 Address remaining should-fix items from pr-review
- 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>
2026-03-13 20:45:58 +08:00
scheinriese
def3dfb233 Implement V3 shortcut customization popover with two-tier conflict detection
Rewrite the shortcut customization UI from a modal dialog to an inline
popover with a state machine (idle → recording → accepted/conflict).
Add cross-context conflict awareness with amber warnings for non-blocking
conflicts across handler groups, while keeping red blocking conflicts for
same-context collisions. Redesign Esc/Backspace semantics for consistency:
Esc always closes, Backspace always removes. Add Radix tooltip on Reassign
button and polish spacing, animations, and feedback banners.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
7f8c11680a Polish shortcut redesign: remove interactive prop, wire up press animations
- 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>
2026-03-13 20:45:58 +08:00
scheinriese
67c123b4ed Redesign keyboard shortcut component with 3 display modes
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
2026-03-13 20:45:58 +08:00
megayu
adbaf10abc chore: tech stack upgrade (#12448)
* 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>
2026-03-13 13:20:49 +08:00
charlie
e203d0465c fix(ui): incorrect sticky position for the table header 2026-03-02 16:36:11 +08:00
Tienson Qin
f927ae8b72 fix: e2ee password confirm inconsistent
fixes https://github.com/logseq/db-test/issues/681
2025-12-24 15:44:04 +08:00
Tienson Qin
8f4a6d962b chore: remove silkhq components 2025-12-09 20:53:38 +08:00
Tienson Qin
08ce89f248 Rename tab to End-to-end encryption 2025-11-24 11:40:18 +08:00
Tienson Qin
e6090dc4c5 enhance(ux): show current password input
also enables toggle view password
2025-11-24 11:40:18 +08:00
Tienson Qin
4c0708013c fix: recursive calls to dialog :on-close 2025-11-24 11:40:18 +08:00
rcmerci
e12a42eb49 feat(rtc,e2ee): add e2ee settings 2025-11-24 11:40:18 +08:00
Tienson Qin
b263b1cb8a enhance: long press + to start audio record 2025-09-18 22:28:58 +08:00
Tienson Qin
77722216d6 fix: smooth sticky header 2025-09-03 19:31:32 +08:00
Tienson Qin
8a862b7a0d fix: buggy sticky header when there're multiple tables 2025-09-03 18:06:31 +08:00
charlie
c2d4b200dd fix(mobile): incorrect animation for the stack depth sheet 2025-08-15 16:31:21 +08:00
Tienson Qin
4960790857 add silk sidebar and persistent sheet 2025-08-05 22:09:36 +08:00
Tienson Qin
a4d41f63ef Merge branch 'master' into enhance/mobile-silk 2025-08-05 19:27:16 +08:00
charlie
546d54ed5f enhance(mobile): add custom silk topbar component 2025-07-14 13:02:23 +08:00
charlie
315941c05c enhance(mobile): add page component 2025-07-13 15:49:00 +08:00
Tienson Qin
2d50ca5ce2 Merge branch 'master' into feat/hnswlib+transformer-js 2025-07-11 18:15:33 +08:00
charlie
1828fbbdbc enhance(mobile): add root page component 2025-07-10 15:34:17 +08:00
charlie
e1db8e958d enhance(mobile): adapt silkhq page components 2025-07-10 11:49:12 +08:00
charlie
0b8277bea4 enhance(mobile): add silk stacking sheet component 2025-07-09 23:22:00 +08:00
charlie
1995da3ae1 enhance(mobile): add silkhq components 2025-07-09 11:19:00 +08:00
charlie
0b2bb2b3f3 enhance(mobile): add more silkhq components 2025-07-08 21:49:25 +08:00
charlie
dff4aa64bb enhance(mobile): add silkhq basic components 2025-07-08 17:23:05 +08:00
Tienson Qin
1f18aeb8c9 fix(mobile): table view scroll container 2025-07-01 10:33:16 +08:00
Tienson Qin
3c52bced5c Merge branch 'master' into feat/capacitor-new 2025-06-22 21:39:37 +08:00
Tienson Qin
b348b031e4 enhance(ux): able to move existing pages to Library 2025-06-16 19:00:53 +08:00
charlie
018a18253d Merge branch 'master' into feat/capacitor-new 2025-06-12 11:21:27 +08:00
Tienson Qin
be66270a49 fix: filters not work for linked references (#11937)
* fix: linked references

* Using datascript query for linked references

* don't render blocks children that have excluded refs

* fix: set persistent width for reference filter

* fix: duplicated refs

* fix: separate queries for children refs and non-children refs

* refactor: move reference fns to logseq.db.common.reference

* fix: set matched children ids even if it's empty

* add tests

* add unlinked reference test

* add transit files to typos ignore

* don't memoize on node

* add comment
2025-06-12 01:56:13 +08:00
Tienson Qin
c4e4e28bea fix: table crash 2025-06-07 11:59:21 +08:00
Tienson Qin
184add530b enhance(ux): show editor popups at the top left corner 2025-06-05 07:57:48 +08:00